xref: /plan9/sys/src/libc/port/tokenize.c (revision 219b2ee8daee37f4aad58d63f21287faa8e4ffdc)
1*219b2ee8SDavid du Colombier #include <u.h>
2*219b2ee8SDavid du Colombier #include <libc.h>
3*219b2ee8SDavid du Colombier 
4*219b2ee8SDavid du Colombier int
5*219b2ee8SDavid du Colombier tokenize(char *str, char **args, int max)
6*219b2ee8SDavid du Colombier {
7*219b2ee8SDavid du Colombier 	int na;
8*219b2ee8SDavid du Colombier 
9*219b2ee8SDavid du Colombier 	na = 0;
10*219b2ee8SDavid du Colombier 	while (na < max) {
11*219b2ee8SDavid du Colombier 		while(*str == ' ' && *str != '\0')
12*219b2ee8SDavid du Colombier 			str++;
13*219b2ee8SDavid du Colombier 		args[na++] = str;
14*219b2ee8SDavid du Colombier 		while(!(*str == ' ') && *str != '\0')
15*219b2ee8SDavid du Colombier 			str++;
16*219b2ee8SDavid du Colombier 
17*219b2ee8SDavid du Colombier 		if(*str == '\n')
18*219b2ee8SDavid du Colombier 			*str = '\0';
19*219b2ee8SDavid du Colombier 
20*219b2ee8SDavid du Colombier 		if(*str == '\0')
21*219b2ee8SDavid du Colombier 			break;
22*219b2ee8SDavid du Colombier 
23*219b2ee8SDavid du Colombier 		*str++ = '\0';
24*219b2ee8SDavid du Colombier 	}
25*219b2ee8SDavid du Colombier 	return na;
26*219b2ee8SDavid du Colombier }
27