+2004-11-19 Bruno Haible <bruno@clisp.org>
+
+ * strtok_r.c: Move comments from here...
+ * strtok_r.h: ... to here.
+
2004-11-17 Paul Eggert <eggert@cs.ucla.edu>
* realloc.c (rpl_realloc): Call 'free' if n==0, since realloc
x = strtok_r(NULL, "-=", &sp); // x = "def", sp = NULL
x = strtok_r(NULL, "=", &sp); // x = NULL
// s = "abc\0-def\0"
-
- For the POSIX documentation for this function, see:
- http://www.opengroup.org/onlinepubs/009695399/functions/strtok.html
-
- Caveat: It modifies the original string.
- Caveat: These functions cannot be used on constant strings.
- Caveat: The identity of the delimiting character is lost.
- Caveat: It doesn't work with multibyte strings unless all of the delimiter
- characters are ASCII characters < 0x30.
-
- See also strsep().
*/
char *
__strtok_r (char *s, const char *delim, char **save_ptr)
/* Get strtok_r declaration, if available. */
#include <string.h>
+/* Parse S into tokens separated by characters in DELIM.
+ If S is NULL, the saved pointer in SAVE_PTR is used as
+ the next starting point. For example:
+ char s[] = "-abc-=-def";
+ char *sp;
+ x = strtok_r(s, "-", &sp); // x = "abc", sp = "=-def"
+ x = strtok_r(NULL, "-=", &sp); // x = "def", sp = NULL
+ x = strtok_r(NULL, "=", &sp); // x = NULL
+ // s = "abc\0-def\0"
+
+ This is a variant of strtok() that is multithread-safe.
+
+ For the POSIX documentation for this function, see:
+ http://www.opengroup.org/onlinepubs/009695399/functions/strtok.html
+
+ Caveat: It modifies the original string.
+ Caveat: These functions cannot be used on constant strings.
+ Caveat: The identity of the delimiting character is lost.
+ Caveat: It doesn't work with multibyte strings unless all of the delimiter
+ characters are ASCII characters < 0x30.
+
+ See also strsep().
+*/
#if defined HAVE_DECL_STRTOK_R && !HAVE_DECL_STRTOK_R
-char *strtok_r(char *restrict s, const char *restrict sep,
- char **restrict lasts);
+extern char *strtok_r(char *restrict s, const char *restrict sep,
+ char **restrict lasts);
#endif
#endif /* STRTOK_R_H */