summaryrefslogtreecommitdiff
path: root/sys/src/cmd/disk/9660/uid.c
diff options
context:
space:
mode:
authorTaru Karttunen <taruti@taruti.net>2011-03-30 15:46:40 +0300
committerTaru Karttunen <taruti@taruti.net>2011-03-30 15:46:40 +0300
commite5888a1ffdae813d7575f5fb02275c6bb07e5199 (patch)
treed8d51eac403f07814b9e936eed0c9a79195e2450 /sys/src/cmd/disk/9660/uid.c
Import sources from 2011-03-30 iso image
Diffstat (limited to 'sys/src/cmd/disk/9660/uid.c')
-rwxr-xr-xsys/src/cmd/disk/9660/uid.c41
1 files changed, 41 insertions, 0 deletions
diff --git a/sys/src/cmd/disk/9660/uid.c b/sys/src/cmd/disk/9660/uid.c
new file mode 100755
index 000000000..a63484249
--- /dev/null
+++ b/sys/src/cmd/disk/9660/uid.c
@@ -0,0 +1,41 @@
+#include <u.h>
+#include <libc.h>
+
+/*
+ * /adm/users is
+ * id:user/group:head member:other members
+ *
+ * /etc/{passwd,group}
+ * name:x:nn:other stuff
+ */
+
+static int isnumber(char *s);
+
+sniff(Biobuf *b)
+{
+ read first line of file into p;
+
+ nf = getfields(p, f, nelem(f), ":");
+ if(nf < 4)
+ return nil;
+
+ if(isnumber(f[0]) && !isnumber(f[2]))
+ return _plan9;
+
+ if(!isnumber(f[0]) && isnumber(f[2]))
+ return _unix;
+
+ return nil;
+}
+
+
+int
+isnumber(char *s)
+{
+ char *q;
+
+ strtol(s, &q, 10);
+ return *q == '\0';
+}
+
+/* EOF */