From 7f12f9a3f6aeb2452acedced5a54c66c4a19382b Mon Sep 17 00:00:00 2001 From: Przemyslaw Pawelczyk Date: Thu, 18 Jun 2009 01:50:31 +0200 Subject: Fix tokenize function and test. Previous implementation was error-prone, because allowed returning empty tokens (mimiced strsep()), which is fine if there is a NULL semantic. Unfortunately SystemTap doesn't provide it in scripts and has only blank string (""), therefore testing against it was misleading. The solution is to return only non-empty tokens (mimic strtok()). * tapset/string.stp: Fix tokenize. * testsuite/systemtap.string/tokenize.stp: Improve and add case with more than one delimiter in the delim string. * testsuite/systemtap.string/tokenize.exp: Ditto. * stapfuncs.3stap.in: Update tokenize description. * doc/langref.tex: Ditto. Signed-off-by: Josh Stone --- stapfuncs.3stap.in | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) (limited to 'stapfuncs.3stap.in') diff --git a/stapfuncs.3stap.in b/stapfuncs.3stap.in index 518ff2bb..3d88b2ea 100644 --- a/stapfuncs.3stap.in +++ b/stapfuncs.3stap.in @@ -166,11 +166,11 @@ specified by base. For example, strtol("1000", 16) returns 4096. Returns 0 if string cannot be converted. .TP tokenize:string (str:string, delim:string) -Return the next token in the given str string, where the tokens are delimited -by one of the characters in the delim string. If the str string is not blank, +Return the next non-empty token in the given str string, where the tokens are +delimited by characters in the delim string. If the str string is not blank, it returns the first token. If the str string is blank, it returns the next token in the string passed in the previous call to tokenize. If no delimiter -is found, the entire remaining str string is returned. Returns blank when +is found, the entire remaining str string is returned. Returns blank when no more tokens are left. .SS TIMESTAMP -- cgit