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.c34
1 files changed, 15 insertions, 19 deletions
diff --git a/src/lib/libc/string/strtok.c b/src/lib/libc/string/strtok.c
index 9f712579bf..4e963a019e 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 *
@@ -31,25 +27,25 @@
31 * SUCH DAMAGE. 27 * SUCH DAMAGE.
32 */ 28 */
33 29
34#if defined(LIBC_SCCS) && !defined(lint)
35/*static char *sccsid = "from: @(#)strtok.c 5.8 (Berkeley) 2/24/91";*/
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 */
38
39#include <string.h> 30#include <string.h>
40 31
41char * 32char *
42strtok(s, delim) 33strtok(char *s, const char *delim)
43 register char *s;
44 register const char *delim;
45{ 34{
46 register char *spanp;
47 register int c, sc;
48 char *tok;
49 static char *last; 35 static char *last;
50 36
37 return strtok_r(s, delim, &last);
38}
39
40char *
41strtok_r(char *s, const char *delim, char **last)
42{
43 char *spanp;
44 int c, sc;
45 char *tok;
46
51 47
52 if (s == NULL && (s = last) == NULL) 48 if (s == NULL && (s = *last) == NULL)
53 return (NULL); 49 return (NULL);
54 50
55 /* 51 /*
@@ -63,7 +59,7 @@ cont:
63 } 59 }
64 60
65 if (c == 0) { /* no non-delimiter characters */ 61 if (c == 0) { /* no non-delimiter characters */
66 last = NULL; 62 *last = NULL;
67 return (NULL); 63 return (NULL);
68 } 64 }
69 tok = s - 1; 65 tok = s - 1;
@@ -81,7 +77,7 @@ cont:
81 s = NULL; 77 s = NULL;
82 else 78 else
83 s[-1] = 0; 79 s[-1] = 0;
84 last = s; 80 *last = s;
85 return (tok); 81 return (tok);
86 } 82 }
87 } while (sc != 0); 83 } while (sc != 0);