xref: /original-bsd/lib/libc/string/strtok.c (revision 5839a6df)
1 /*
2  * Copyright (c) 1980 Regents of the University of California.
3  * All rights reserved.  The Berkeley software License Agreement
4  * specifies the terms and conditions for redistribution.
5  */
6 
7 /*
8  * Sys5 compat routine
9  */
10 
11 #ifndef lint
12 static char sccsid[] = "@(#)strtok.c	5.1 (Berkeley) 85/08/05";
13 #endif
14 
15 char *
16 strtok(s, sep)
17 	register char *s, *sep;
18 {
19 	register char *p;
20 	register c;
21 	static char *lasts;
22 
23 	if (s == 0)
24 		s = lasts;
25 	if (s == 0)
26 		return (0);
27 
28 	while (c = *s) {
29 		if (!index(sep, c))
30 			break;
31 		s++;
32 	}
33 
34 	if (c == '\0') {
35 		lasts = 0;
36 		return (0);
37 	}
38 
39 	for (p = s; c = *++p; )
40 		if (index(sep, c))
41 			break;
42 
43 	if (c == '\0')
44 		lasts = 0;
45 	else {
46 		*p++ = '\0';
47 		lasts = p;
48 	}
49 	return (s);
50 }
51