File:
[ELWIX - Embedded LightWeight unIX -] /
embedaddon /
php /
TSRM /
tsrm_strtok_r.c
Revision
1.1.1.1 (vendor branch):
download - view:
text,
annotated -
select for diffs -
revision graph
Tue Feb 21 23:47:52 2012 UTC (12 years, 4 months ago) by
misho
Branches:
php,
MAIN
CVS tags:
v5_4_3elwix,
v5_4_29p0,
v5_4_29,
v5_4_20p0,
v5_4_20,
v5_4_17p0,
v5_4_17,
v5_3_10,
HEAD
php
1: #include <stdio.h>
2:
3: #include "tsrm_config_common.h"
4: #include "tsrm_strtok_r.h"
5:
6: static inline int in_character_class(char ch, const char *delim)
7: {
8: while (*delim) {
9: if (*delim == ch) {
10: return 1;
11: }
12: delim++;
13: }
14: return 0;
15: }
16:
17: char *tsrm_strtok_r(char *s, const char *delim, char **last)
18: {
19: char *token;
20:
21: if (s == NULL) {
22: s = *last;
23: }
24:
25: while (*s && in_character_class(*s, delim)) {
26: s++;
27: }
28: if (!*s) {
29: return NULL;
30: }
31:
32: token = s;
33:
34: while (*s && !in_character_class(*s, delim)) {
35: s++;
36: }
37: if (!*s) {
38: *last = s;
39: } else {
40: *s = '\0';
41: *last = s + 1;
42: }
43: return token;
44: }
45:
46: #if 0
47:
48: main()
49: {
50: char foo[] = "/foo/bar//\\barbara";
51: char *last;
52: char *token;
53:
54: token = tsrm_strtok_r(foo, "/\\", &last);
55: while (token) {
56: printf ("Token = '%s'\n", token);
57: token = tsrm_strtok_r(NULL, "/\\", &last);
58: }
59:
60: return 0;
61: }
62:
63: #endif
FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>