summaryrefslogtreecommitdiff
path: root/src/lib/libc/string/strtok.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/lib/libc/string/strtok.c')
-rw-r--r--src/lib/libc/string/strtok.c32
1 files changed, 16 insertions, 16 deletions
diff --git a/src/lib/libc/string/strtok.c b/src/lib/libc/string/strtok.c
index 9f712579bf..6498eac8cc 100644
--- a/src/lib/libc/string/strtok.c
+++ b/src/lib/libc/string/strtok.c
@@ -10,11 +10,7 @@
10 * 2. Redistributions in binary form must reproduce the above copyright 10 * 2. Redistributions in binary form must reproduce the above copyright
11 * notice, this list of conditions and the following disclaimer in the 11 * notice, this list of conditions and the following disclaimer in the
12 * documentation and/or other materials provided with the distribution. 12 * documentation and/or other materials provided with the distribution.
13 * 3. All advertising materials mentioning features or use of this software 13 * 3. Neither the name of the University nor the names of its contributors
14 * must display the following acknowledgement:
15 * This product includes software developed by the University of
16 * California, Berkeley and its contributors.
17 * 4. Neither the name of the University nor the names of its contributors
18 * may be used to endorse or promote products derived from this software 14 * may be used to endorse or promote products derived from this software
19 * without specific prior written permission. 15 * without specific prior written permission.
20 * 16 *
@@ -32,24 +28,28 @@
32 */ 28 */
33 29
34#if defined(LIBC_SCCS) && !defined(lint) 30#if defined(LIBC_SCCS) && !defined(lint)
35/*static char *sccsid = "from: @(#)strtok.c 5.8 (Berkeley) 2/24/91";*/ 31static char *rcsid = "$OpenBSD: strtok.c,v 1.5 2003/06/11 21:08:16 deraadt Exp $";
36static char *rcsid = "$Id: strtok.c,v 1.1.1.1 1995/10/18 08:42:23 deraadt Exp $";
37#endif /* LIBC_SCCS and not lint */ 32#endif /* LIBC_SCCS and not lint */
38 33
39#include <string.h> 34#include <string.h>
40 35
41char * 36char *
42strtok(s, delim) 37strtok(char *s, const char *delim)
43 register char *s;
44 register const char *delim;
45{ 38{
46 register char *spanp;
47 register int c, sc;
48 char *tok;
49 static char *last; 39 static char *last;
50 40
41 return strtok_r(s, delim, &last);
42}
43
44char *
45strtok_r(char *s, const char *delim, char **last)
46{
47 char *spanp;
48 int c, sc;
49 char *tok;
50
51 51
52 if (s == NULL && (s = last) == NULL) 52 if (s == NULL && (s = *last) == NULL)
53 return (NULL); 53 return (NULL);
54 54
55 /* 55 /*
@@ -63,7 +63,7 @@ cont:
63 } 63 }
64 64
65 if (c == 0) { /* no non-delimiter characters */ 65 if (c == 0) { /* no non-delimiter characters */
66 last = NULL; 66 *last = NULL;
67 return (NULL); 67 return (NULL);
68 } 68 }
69 tok = s - 1; 69 tok = s - 1;
@@ -81,7 +81,7 @@ cont:
81 s = NULL; 81 s = NULL;
82 else 82 else
83 s[-1] = 0; 83 s[-1] = 0;
84 last = s; 84 *last = s;
85 return (tok); 85 return (tok);
86 } 86 }
87 } while (sc != 0); 87 } while (sc != 0);