changeset 5470:f8136ad2eda3

Move comments from strtok_r.c to strtok_r.h.
author Bruno Haible <bruno@clisp.org>
date Fri, 19 Nov 2004 13:46:41 +0000
parents 9a6a573f635e
children 34d0e91f6403
files lib/ChangeLog lib/strtok_r.c lib/strtok_r.h
diffstat 3 files changed, 30 insertions(+), 13 deletions(-) [+]
line wrap: on
line diff
--- a/lib/ChangeLog
+++ b/lib/ChangeLog
@@ -1,3 +1,8 @@
+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
--- a/lib/strtok_r.c
+++ b/lib/strtok_r.c
@@ -41,17 +41,6 @@
 	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)
--- a/lib/strtok_r.h
+++ b/lib/strtok_r.h
@@ -22,9 +22,32 @@
 /* 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 */