xref: /plan9/sys/src/cmd/9nfs/strparse.c (revision 9a747e4fd48b9f4522c70c07e8f882a15030f964)
1*9a747e4fSDavid du Colombier #include <u.h>
2*9a747e4fSDavid du Colombier #include <libc.h>
3*9a747e4fSDavid du Colombier 
4*9a747e4fSDavid du Colombier int	strcomment = '#';
5*9a747e4fSDavid du Colombier 
6*9a747e4fSDavid du Colombier int
strparse(char * p,int arsize,char ** arv)7*9a747e4fSDavid du Colombier strparse(char *p, int arsize, char **arv)
8*9a747e4fSDavid du Colombier {
9*9a747e4fSDavid du Colombier 	int arc = 0;
10*9a747e4fSDavid du Colombier 
11*9a747e4fSDavid du Colombier 	/*print("parse: 0x%lux = \"%s\"\n", p, p);/**/
12*9a747e4fSDavid du Colombier 	while(p){
13*9a747e4fSDavid du Colombier 		while(*p == ' ' || *p == '\t')
14*9a747e4fSDavid du Colombier 			p++;
15*9a747e4fSDavid du Colombier 		if(*p == 0 || *p == strcomment)
16*9a747e4fSDavid du Colombier 			break;
17*9a747e4fSDavid du Colombier 		if(arc >= arsize-1)
18*9a747e4fSDavid du Colombier 			break;
19*9a747e4fSDavid du Colombier 		arv[arc++] = p;
20*9a747e4fSDavid du Colombier 		while(*p && *p != ' ' && *p != '\t')
21*9a747e4fSDavid du Colombier 			p++;
22*9a747e4fSDavid du Colombier 		if(*p == 0)
23*9a747e4fSDavid du Colombier 			break;
24*9a747e4fSDavid du Colombier 		*p++ = 0;
25*9a747e4fSDavid du Colombier 	}
26*9a747e4fSDavid du Colombier 	arv[arc] = 0;
27*9a747e4fSDavid du Colombier 	/*while(*arv){
28*9a747e4fSDavid du Colombier 		print("\t0x%lux = \"%s\"\n", *arv, *arv);
29*9a747e4fSDavid du Colombier 		++arv;
30*9a747e4fSDavid du Colombier 	}/**/
31*9a747e4fSDavid du Colombier 	return arc;
32*9a747e4fSDavid du Colombier }
33