From c9ed52730b352448c7c644f6942d310dd3509bf6 Mon Sep 17 00:00:00 2001 From: Russ Cox Date: Mon, 17 Nov 2014 11:21:06 -0500 Subject: cmd: rename *.C to *.c These were *.C back in 2003, before the 9 script, to avoid conflicts with the system utilities. A later change renamed them, but that change seems to have been lost during the hg->git conversion because I ran the conversion on a case-insensitive file system. Change-Id: Id32c99cb9571ef0e185c3cc9e8c8d6d5b48ca195 --- src/cmd/du.C | 194 ----------------------------------- src/cmd/du.c | 194 +++++++++++++++++++++++++++++++++++ src/cmd/ls.C | 308 ------------------------------------------------------- src/cmd/ls.c | 308 +++++++++++++++++++++++++++++++++++++++++++++++++++++++ src/cmd/md5sum.C | 61 ----------- src/cmd/md5sum.c | 61 +++++++++++ src/cmd/mkdir.C | 80 --------------- src/cmd/mkdir.c | 80 +++++++++++++++ 8 files changed, 643 insertions(+), 643 deletions(-) delete mode 100644 src/cmd/du.C create mode 100644 src/cmd/du.c delete mode 100644 src/cmd/ls.C create mode 100644 src/cmd/ls.c delete mode 100644 src/cmd/md5sum.C create mode 100644 src/cmd/md5sum.c delete mode 100644 src/cmd/mkdir.C create mode 100644 src/cmd/mkdir.c (limited to 'src') diff --git a/src/cmd/du.C b/src/cmd/du.C deleted file mode 100644 index f62c45b7..00000000 --- a/src/cmd/du.C +++ /dev/null @@ -1,194 +0,0 @@ -#include -#include - -extern vlong du(char*, Dir*); -extern vlong k(vlong); -extern void err(char*); -extern int warn(char*); -extern int seen(Dir*); - -int aflag; -int fflag; -int nflag; -int sflag; -int tflag; -int uflag; -int qflag; -char *fmt = "%llud\t%s\n"; -vlong blocksize = 1024LL; - -void -main(int argc, char *argv[]) -{ - int i; - char *s, *ss; - - ARGBEGIN { - case 'a': /* all files */ - aflag = 1; - break; - case 's': /* only top level */ - sflag = 1; - break; - case 'f': /* ignore errors */ - fflag = 1; - break; - case 'n': /* all files, number of bytes */ - aflag = 1; - nflag = 1; - break; - case 't': /* return modified/accessed time */ - tflag = 1; - break; - case 'u': /* accessed time */ - uflag = 1; - break; - case 'q': /* qid */ - fmt = "%.16llux\t%s\n"; - qflag = 1; - break; - case 'b': /* block size */ - s = ARGF(); - if(s) { - blocksize = strtoul(s, &ss, 0); - if(s == ss) - blocksize = 1; - if(*ss == 'k') - blocksize *= 1024; - } - break; - } ARGEND - if(argc==0) - print(fmt, du(".", dirstat(".")), "."); - else - for(i=0; iqid.type&QTDIR) == 0) - nk = k(dir->length); - else{ - nk = 0; - while((n=dirread(fd, &buf)) > 0) { - d = buf; - for(i=0; iqid.type&QTDIR) == 0) { - t = k(d->length); - nk += t; - if(aflag) { - sprint(file, "%s/%s", name, d->name); - if(tflag) { - t = d->mtime; - if(uflag) - t = d->atime; - } - if(qflag) - t = d->qid.path; - print(fmt, t, file); - } - continue; - } - if(strcmp(d->name, ".") == 0 || - strcmp(d->name, "..") == 0 || - seen(d)) - continue; - sprint(file, "%s/%s", name, d->name); - t = du(file, d); - nk += t; - if(tflag) { - t = d->mtime; - if(uflag) - t = d->atime; - } - if(qflag) - t = d->qid.path; - if(!sflag) - print(fmt, t, file); - } - free(buf); - } - if(n < 0) - warn(name); - } - close(fd); - if(tflag) { - if(uflag) - return dir->atime; - return dir->mtime; - } - if(qflag) - return dir->qid.path; - return nk; -} - -#define NCACHE 128 /* must be power of two */ -typedef struct Cache Cache; -struct Cache -{ - Dir* cache; - int n; - int max; -} cache[NCACHE]; - -int -seen(Dir *dir) -{ - Dir *dp; - int i; - Cache *c; - - c = &cache[dir->qid.path&(NCACHE-1)]; - dp = c->cache; - for(i=0; in; i++, dp++) - if(dir->qid.path == dp->qid.path && - dir->type == dp->type && - dir->dev == dp->dev) - return 1; - if(c->n == c->max){ - c->cache = realloc(c->cache, (c->max+=20)*sizeof(Dir)); - if(c->cache == 0) - err("malloc failure"); - } - c->cache[c->n++] = *dir; - return 0; -} - -void -err(char *s) -{ - fprint(2, "du: %s: %r\n", s); - exits(s); -} - -int -warn(char *s) -{ - if(fflag == 0) - fprint(2, "du: %s: %r\n", s); - return 0; -} - -vlong -k(vlong n) -{ - if(nflag) - return n; - n = (n+blocksize-1)/blocksize; - return n*blocksize/1024LL; -} diff --git a/src/cmd/du.c b/src/cmd/du.c new file mode 100644 index 00000000..f62c45b7 --- /dev/null +++ b/src/cmd/du.c @@ -0,0 +1,194 @@ +#include +#include + +extern vlong du(char*, Dir*); +extern vlong k(vlong); +extern void err(char*); +extern int warn(char*); +extern int seen(Dir*); + +int aflag; +int fflag; +int nflag; +int sflag; +int tflag; +int uflag; +int qflag; +char *fmt = "%llud\t%s\n"; +vlong blocksize = 1024LL; + +void +main(int argc, char *argv[]) +{ + int i; + char *s, *ss; + + ARGBEGIN { + case 'a': /* all files */ + aflag = 1; + break; + case 's': /* only top level */ + sflag = 1; + break; + case 'f': /* ignore errors */ + fflag = 1; + break; + case 'n': /* all files, number of bytes */ + aflag = 1; + nflag = 1; + break; + case 't': /* return modified/accessed time */ + tflag = 1; + break; + case 'u': /* accessed time */ + uflag = 1; + break; + case 'q': /* qid */ + fmt = "%.16llux\t%s\n"; + qflag = 1; + break; + case 'b': /* block size */ + s = ARGF(); + if(s) { + blocksize = strtoul(s, &ss, 0); + if(s == ss) + blocksize = 1; + if(*ss == 'k') + blocksize *= 1024; + } + break; + } ARGEND + if(argc==0) + print(fmt, du(".", dirstat(".")), "."); + else + for(i=0; iqid.type&QTDIR) == 0) + nk = k(dir->length); + else{ + nk = 0; + while((n=dirread(fd, &buf)) > 0) { + d = buf; + for(i=0; iqid.type&QTDIR) == 0) { + t = k(d->length); + nk += t; + if(aflag) { + sprint(file, "%s/%s", name, d->name); + if(tflag) { + t = d->mtime; + if(uflag) + t = d->atime; + } + if(qflag) + t = d->qid.path; + print(fmt, t, file); + } + continue; + } + if(strcmp(d->name, ".") == 0 || + strcmp(d->name, "..") == 0 || + seen(d)) + continue; + sprint(file, "%s/%s", name, d->name); + t = du(file, d); + nk += t; + if(tflag) { + t = d->mtime; + if(uflag) + t = d->atime; + } + if(qflag) + t = d->qid.path; + if(!sflag) + print(fmt, t, file); + } + free(buf); + } + if(n < 0) + warn(name); + } + close(fd); + if(tflag) { + if(uflag) + return dir->atime; + return dir->mtime; + } + if(qflag) + return dir->qid.path; + return nk; +} + +#define NCACHE 128 /* must be power of two */ +typedef struct Cache Cache; +struct Cache +{ + Dir* cache; + int n; + int max; +} cache[NCACHE]; + +int +seen(Dir *dir) +{ + Dir *dp; + int i; + Cache *c; + + c = &cache[dir->qid.path&(NCACHE-1)]; + dp = c->cache; + for(i=0; in; i++, dp++) + if(dir->qid.path == dp->qid.path && + dir->type == dp->type && + dir->dev == dp->dev) + return 1; + if(c->n == c->max){ + c->cache = realloc(c->cache, (c->max+=20)*sizeof(Dir)); + if(c->cache == 0) + err("malloc failure"); + } + c->cache[c->n++] = *dir; + return 0; +} + +void +err(char *s) +{ + fprint(2, "du: %s: %r\n", s); + exits(s); +} + +int +warn(char *s) +{ + if(fflag == 0) + fprint(2, "du: %s: %r\n", s); + return 0; +} + +vlong +k(vlong n) +{ + if(nflag) + return n; + n = (n+blocksize-1)/blocksize; + return n*blocksize/1024LL; +} diff --git a/src/cmd/ls.C b/src/cmd/ls.C deleted file mode 100644 index 60615059..00000000 --- a/src/cmd/ls.C +++ /dev/null @@ -1,308 +0,0 @@ -#include -#include -#include - -#define dirbuf p9dirbuf /* avoid conflict on sun */ - -typedef struct NDir NDir; -struct NDir -{ - Dir *d; - char *prefix; -}; - -int errs = 0; -int dflag; -int lflag; -int mflag; -int nflag; -int pflag; -int qflag; -int Qflag; -int rflag; -int sflag; -int tflag; -int uflag; -int Fflag; -int ndirbuf; -int ndir; -NDir* dirbuf; -int ls(char*, int); -int compar(NDir*, NDir*); -char* asciitime(long); -char* darwx(long); -void rwx(long, char*); -void growto(long); -void dowidths(Dir*); -void format(Dir*, char*); -void output(void); -ulong clk; -int swidth; /* max width of -s size */ -int qwidth; /* max width of -q version */ -int vwidth; /* max width of dev */ -int uwidth; /* max width of userid */ -int mwidth; /* max width of muid */ -int glwidth; /* max width of groupid and length */ -Biobuf bin; - -void -main(int argc, char *argv[]) -{ - int i; - - Binit(&bin, 1, OWRITE); - ARGBEGIN{ - case 'F': Fflag++; break; - case 'd': dflag++; break; - case 'l': lflag++; break; - case 'm': mflag++; break; - case 'n': nflag++; break; - case 'p': pflag++; break; - case 'q': qflag++; break; - case 'Q': Qflag++; break; - case 'r': rflag++; break; - case 's': sflag++; break; - case 't': tflag++; break; - case 'u': uflag++; break; - default: fprint(2, "usage: ls [-dlmnpqrstuFQ] [file ...]\n"); - exits("usage"); - }ARGEND - - doquote = needsrcquote; - quotefmtinstall(); - fmtinstall('M', dirmodefmt); - - if(lflag) - clk = time(0); - if(argc == 0) - errs = ls(".", 0); - else for(i=0; iqid.type&QTDIR && dflag==0){ - free(db); - db = nil; - output(); - fd = open(s, OREAD); - if(fd == -1) - goto error; - n = dirreadall(fd, &db); - if(n < 0) - goto error; - growto(ndir+n); - for(i=0; iname = strdup(p+1); - } - ndir++; - } - return 0; -} - -void -output(void) -{ - int i; - char buf[4096]; - char *s; - - if(!nflag) - qsort(dirbuf, ndir, sizeof dirbuf[0], (int (*)(const void*, const void*))compar); - for(i=0; iname); - format(dirbuf[i].d, buf); - } else - format(dirbuf[i].d, dirbuf[i].d->name); - } - ndir = 0; - Bflush(&bin); -} - -void -dowidths(Dir *db) -{ - char buf[256]; - int n; - - if(sflag) { - n = sprint(buf, "%llud", (db->length+1023)/1024); - if(n > swidth) - swidth = n; - } - if(qflag) { - n = sprint(buf, "%lud", db->qid.vers); - if(n > qwidth) - qwidth = n; - } - if(mflag) { - n = snprint(buf, sizeof buf, "[%s]", db->muid); - if(n > mwidth) - mwidth = n; - } - if(lflag) { - n = sprint(buf, "%ud", db->dev); - if(n > vwidth) - vwidth = n; - n = strlen(db->uid); - if(n > uwidth) - uwidth = n; - n = sprint(buf, "%llud", db->length); - n += strlen(db->gid); - if(n > glwidth) - glwidth = n; - } -} - -char* -fileflag(Dir *db) -{ - if(Fflag == 0) - return ""; - if(QTDIR & db->qid.type) - return "/"; - if(0111 & db->mode) - return "*"; - return ""; -} - -void -format(Dir *db, char *name) -{ - int i; - - if(sflag) - Bprint(&bin, "%*llud ", - swidth, (db->length+1023)/1024); - if(mflag){ - Bprint(&bin, "[%s] ", db->muid); - for(i=2+strlen(db->muid); iqid.path, - qwidth, db->qid.vers, - db->qid.type); - if(lflag) - Bprint(&bin, - "%M %C %*ud %*s %s %*llud %s ", - db->mode, db->type, - vwidth, db->dev, - -uwidth, db->uid, - db->gid, - (int)(glwidth-strlen(db->gid)), db->length, - asciitime(uflag? db->atime : db->mtime)); - Bprint(&bin, - Qflag? "%s%s\n" : "%q%s\n", - name, fileflag(db)); -} - -void -growto(long n) -{ - if(n <= ndirbuf) - return; - ndirbuf = n; - dirbuf=(NDir *)realloc(dirbuf, ndirbuf*sizeof(NDir)); - if(dirbuf == 0){ - fprint(2, "ls: malloc fail\n"); - exits("malloc fail"); - } -} - -int -compar(NDir *a, NDir *b) -{ - long i; - Dir *ad, *bd; - - ad = a->d; - bd = b->d; - - if(tflag){ - if(uflag) - i = bd->atime-ad->atime; - else - i = bd->mtime-ad->mtime; - }else{ - if(a->prefix && b->prefix){ - i = strcmp(a->prefix, b->prefix); - if(i == 0) - i = strcmp(ad->name, bd->name); - }else if(a->prefix){ - i = strcmp(a->prefix, bd->name); - if(i == 0) - i = 1; /* a is longer than b */ - }else if(b->prefix){ - i = strcmp(ad->name, b->prefix); - if(i == 0) - i = -1; /* b is longer than a */ - }else - i = strcmp(ad->name, bd->name); - } - if(i == 0) - i = (ad +#include +#include + +#define dirbuf p9dirbuf /* avoid conflict on sun */ + +typedef struct NDir NDir; +struct NDir +{ + Dir *d; + char *prefix; +}; + +int errs = 0; +int dflag; +int lflag; +int mflag; +int nflag; +int pflag; +int qflag; +int Qflag; +int rflag; +int sflag; +int tflag; +int uflag; +int Fflag; +int ndirbuf; +int ndir; +NDir* dirbuf; +int ls(char*, int); +int compar(NDir*, NDir*); +char* asciitime(long); +char* darwx(long); +void rwx(long, char*); +void growto(long); +void dowidths(Dir*); +void format(Dir*, char*); +void output(void); +ulong clk; +int swidth; /* max width of -s size */ +int qwidth; /* max width of -q version */ +int vwidth; /* max width of dev */ +int uwidth; /* max width of userid */ +int mwidth; /* max width of muid */ +int glwidth; /* max width of groupid and length */ +Biobuf bin; + +void +main(int argc, char *argv[]) +{ + int i; + + Binit(&bin, 1, OWRITE); + ARGBEGIN{ + case 'F': Fflag++; break; + case 'd': dflag++; break; + case 'l': lflag++; break; + case 'm': mflag++; break; + case 'n': nflag++; break; + case 'p': pflag++; break; + case 'q': qflag++; break; + case 'Q': Qflag++; break; + case 'r': rflag++; break; + case 's': sflag++; break; + case 't': tflag++; break; + case 'u': uflag++; break; + default: fprint(2, "usage: ls [-dlmnpqrstuFQ] [file ...]\n"); + exits("usage"); + }ARGEND + + doquote = needsrcquote; + quotefmtinstall(); + fmtinstall('M', dirmodefmt); + + if(lflag) + clk = time(0); + if(argc == 0) + errs = ls(".", 0); + else for(i=0; iqid.type&QTDIR && dflag==0){ + free(db); + db = nil; + output(); + fd = open(s, OREAD); + if(fd == -1) + goto error; + n = dirreadall(fd, &db); + if(n < 0) + goto error; + growto(ndir+n); + for(i=0; iname = strdup(p+1); + } + ndir++; + } + return 0; +} + +void +output(void) +{ + int i; + char buf[4096]; + char *s; + + if(!nflag) + qsort(dirbuf, ndir, sizeof dirbuf[0], (int (*)(const void*, const void*))compar); + for(i=0; iname); + format(dirbuf[i].d, buf); + } else + format(dirbuf[i].d, dirbuf[i].d->name); + } + ndir = 0; + Bflush(&bin); +} + +void +dowidths(Dir *db) +{ + char buf[256]; + int n; + + if(sflag) { + n = sprint(buf, "%llud", (db->length+1023)/1024); + if(n > swidth) + swidth = n; + } + if(qflag) { + n = sprint(buf, "%lud", db->qid.vers); + if(n > qwidth) + qwidth = n; + } + if(mflag) { + n = snprint(buf, sizeof buf, "[%s]", db->muid); + if(n > mwidth) + mwidth = n; + } + if(lflag) { + n = sprint(buf, "%ud", db->dev); + if(n > vwidth) + vwidth = n; + n = strlen(db->uid); + if(n > uwidth) + uwidth = n; + n = sprint(buf, "%llud", db->length); + n += strlen(db->gid); + if(n > glwidth) + glwidth = n; + } +} + +char* +fileflag(Dir *db) +{ + if(Fflag == 0) + return ""; + if(QTDIR & db->qid.type) + return "/"; + if(0111 & db->mode) + return "*"; + return ""; +} + +void +format(Dir *db, char *name) +{ + int i; + + if(sflag) + Bprint(&bin, "%*llud ", + swidth, (db->length+1023)/1024); + if(mflag){ + Bprint(&bin, "[%s] ", db->muid); + for(i=2+strlen(db->muid); iqid.path, + qwidth, db->qid.vers, + db->qid.type); + if(lflag) + Bprint(&bin, + "%M %C %*ud %*s %s %*llud %s ", + db->mode, db->type, + vwidth, db->dev, + -uwidth, db->uid, + db->gid, + (int)(glwidth-strlen(db->gid)), db->length, + asciitime(uflag? db->atime : db->mtime)); + Bprint(&bin, + Qflag? "%s%s\n" : "%q%s\n", + name, fileflag(db)); +} + +void +growto(long n) +{ + if(n <= ndirbuf) + return; + ndirbuf = n; + dirbuf=(NDir *)realloc(dirbuf, ndirbuf*sizeof(NDir)); + if(dirbuf == 0){ + fprint(2, "ls: malloc fail\n"); + exits("malloc fail"); + } +} + +int +compar(NDir *a, NDir *b) +{ + long i; + Dir *ad, *bd; + + ad = a->d; + bd = b->d; + + if(tflag){ + if(uflag) + i = bd->atime-ad->atime; + else + i = bd->mtime-ad->mtime; + }else{ + if(a->prefix && b->prefix){ + i = strcmp(a->prefix, b->prefix); + if(i == 0) + i = strcmp(ad->name, bd->name); + }else if(a->prefix){ + i = strcmp(a->prefix, bd->name); + if(i == 0) + i = 1; /* a is longer than b */ + }else if(b->prefix){ + i = strcmp(ad->name, b->prefix); + if(i == 0) + i = -1; /* b is longer than a */ + }else + i = strcmp(ad->name, bd->name); + } + if(i == 0) + i = (ad -#include -#include -#include - -static int -digestfmt(Fmt *fmt) -{ - char buf[MD5dlen*2+1]; - uchar *p; - int i; - - p = va_arg(fmt->args, uchar*); - for(i=0; i 0) - md5(buf, n, nil, s); - md5(nil, 0, digest, s); - if(name == nil) - print("%M\n", digest); - else - print("%M\t%s\n", digest, name); -} - -void -main(int argc, char *argv[]) -{ - int i, fd; - - ARGBEGIN{ - default: - fprint(2, "usage: md5sum [file...]\n"); - exits("usage"); - }ARGEND - - fmtinstall('M', digestfmt); - - if(argc == 0) - sum(0, nil); - else for(i = 0; i < argc; i++){ - fd = open(argv[i], OREAD); - if(fd < 0){ - fprint(2, "md5sum: can't open %s: %r\n", argv[i]); - continue; - } - sum(fd, argv[i]); - close(fd); - } - exits(nil); -} diff --git a/src/cmd/md5sum.c b/src/cmd/md5sum.c new file mode 100644 index 00000000..8eabbf62 --- /dev/null +++ b/src/cmd/md5sum.c @@ -0,0 +1,61 @@ +#include +#include +#include +#include + +static int +digestfmt(Fmt *fmt) +{ + char buf[MD5dlen*2+1]; + uchar *p; + int i; + + p = va_arg(fmt->args, uchar*); + for(i=0; i 0) + md5(buf, n, nil, s); + md5(nil, 0, digest, s); + if(name == nil) + print("%M\n", digest); + else + print("%M\t%s\n", digest, name); +} + +void +main(int argc, char *argv[]) +{ + int i, fd; + + ARGBEGIN{ + default: + fprint(2, "usage: md5sum [file...]\n"); + exits("usage"); + }ARGEND + + fmtinstall('M', digestfmt); + + if(argc == 0) + sum(0, nil); + else for(i = 0; i < argc; i++){ + fd = open(argv[i], OREAD); + if(fd < 0){ + fprint(2, "md5sum: can't open %s: %r\n", argv[i]); + continue; + } + sum(fd, argv[i]); + close(fd); + } + exits(nil); +} diff --git a/src/cmd/mkdir.C b/src/cmd/mkdir.C deleted file mode 100644 index 1c16565d..00000000 --- a/src/cmd/mkdir.C +++ /dev/null @@ -1,80 +0,0 @@ -#include -#include - -char *e; -ulong mode = 0777L; - -void -usage(void) -{ - fprint(2, "usage: mkdir [-p] [-m mode] dir...\n"); - exits("usage"); -} - -int -makedir(char *s) -{ - int f; - - if(access(s, AEXIST) == 0){ - fprint(2, "mkdir: %s already exists\n", s); - e = "error"; - return -1; - } - f = create(s, OREAD, DMDIR | mode); - if(f < 0){ - fprint(2, "mkdir: can't create %s: %r\n", s); - e = "error"; - return -1; - } - close(f); - return 0; -} - -void -mkdirp(char *s) -{ - char *p; - - for(p=strchr(s+1, '/'); p; p=strchr(p+1, '/')){ - *p = 0; - if(access(s, AEXIST) != 0 && makedir(s) < 0) - return; - *p = '/'; - } - if(access(s, AEXIST) != 0) - makedir(s); -} - - -void -main(int argc, char *argv[]) -{ - int i, pflag; - char *m; - - pflag = 0; - ARGBEGIN{ - default: - usage(); - case 'm': - m = ARGF(); - if(m == nil) - usage(); - mode = strtoul(m, &m, 8); - if(mode > 0777) - usage(); - break; - case 'p': - pflag = 1; - break; - }ARGEND - - for(i=0; i +#include + +char *e; +ulong mode = 0777L; + +void +usage(void) +{ + fprint(2, "usage: mkdir [-p] [-m mode] dir...\n"); + exits("usage"); +} + +int +makedir(char *s) +{ + int f; + + if(access(s, AEXIST) == 0){ + fprint(2, "mkdir: %s already exists\n", s); + e = "error"; + return -1; + } + f = create(s, OREAD, DMDIR | mode); + if(f < 0){ + fprint(2, "mkdir: can't create %s: %r\n", s); + e = "error"; + return -1; + } + close(f); + return 0; +} + +void +mkdirp(char *s) +{ + char *p; + + for(p=strchr(s+1, '/'); p; p=strchr(p+1, '/')){ + *p = 0; + if(access(s, AEXIST) != 0 && makedir(s) < 0) + return; + *p = '/'; + } + if(access(s, AEXIST) != 0) + makedir(s); +} + + +void +main(int argc, char *argv[]) +{ + int i, pflag; + char *m; + + pflag = 0; + ARGBEGIN{ + default: + usage(); + case 'm': + m = ARGF(); + if(m == nil) + usage(); + mode = strtoul(m, &m, 8); + if(mode > 0777) + usage(); + break; + case 'p': + pflag = 1; + break; + }ARGEND + + for(i=0; i