Blame


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