xref: /plan9/sys/src/cmd/disk/9660/uid.c (revision 80ee5cbfe36716af62da8896207e9763b8e3d760)
1*80ee5cbfSDavid du Colombier #include <u.h>
2*80ee5cbfSDavid du Colombier #include <libc.h>
3*80ee5cbfSDavid du Colombier 
4*80ee5cbfSDavid du Colombier /*
5*80ee5cbfSDavid du Colombier  * /adm/users is
6*80ee5cbfSDavid du Colombier  *	id:user/group:head member:other members
7*80ee5cbfSDavid du Colombier  *
8*80ee5cbfSDavid du Colombier  * /etc/{passwd,group}
9*80ee5cbfSDavid du Colombier  *	name:x:nn:other stuff
10*80ee5cbfSDavid du Colombier  */
11*80ee5cbfSDavid du Colombier 
12*80ee5cbfSDavid du Colombier static int isnumber(char *s);
13*80ee5cbfSDavid du Colombier 
sniff(Biobuf * b)14*80ee5cbfSDavid du Colombier sniff(Biobuf *b)
15*80ee5cbfSDavid du Colombier {
16*80ee5cbfSDavid du Colombier 	read first line of file into p;
17*80ee5cbfSDavid du Colombier 
18*80ee5cbfSDavid du Colombier 	nf = getfields(p, f, nelem(f), ":");
19*80ee5cbfSDavid du Colombier 	if(nf < 4)
20*80ee5cbfSDavid du Colombier 		return nil;
21*80ee5cbfSDavid du Colombier 
22*80ee5cbfSDavid du Colombier 	if(isnumber(f[0]) && !isnumber(f[2]))
23*80ee5cbfSDavid du Colombier 		return _plan9;
24*80ee5cbfSDavid du Colombier 
25*80ee5cbfSDavid du Colombier 	if(!isnumber(f[0]) && isnumber(f[2]))
26*80ee5cbfSDavid du Colombier 		return _unix;
27*80ee5cbfSDavid du Colombier 
28*80ee5cbfSDavid du Colombier 	return nil;
29*80ee5cbfSDavid du Colombier }
30*80ee5cbfSDavid du Colombier 
31*80ee5cbfSDavid du Colombier 
32*80ee5cbfSDavid du Colombier int
isnumber(char * s)33*80ee5cbfSDavid du Colombier isnumber(char *s)
34*80ee5cbfSDavid du Colombier {
35*80ee5cbfSDavid du Colombier 	char *q;
36*80ee5cbfSDavid du Colombier 
37*80ee5cbfSDavid du Colombier 	strtol(s, &q, 10);
38*80ee5cbfSDavid du Colombier 	return *q == '\0';
39*80ee5cbfSDavid du Colombier }
40*80ee5cbfSDavid du Colombier 
41*80ee5cbfSDavid du Colombier /* EOF */
42