Introduction
Introduction Statistics Contact Development Disclaimer Help
tadd -n to ls; add rm and create - plan9port - [fork] Plan 9 from user space
git clone git://src.adamsgaard.dk/plan9port
Log
Files
Refs
README
LICENSE
---
commit 1b404fe6e4a50425853434086895517fbe2da4b3
parent 39e5957ace14f1dcff62014fd26f368e87c79c29
Author: rsc <devnull@localhost>
Date: Sun, 5 Feb 2006 15:34:46 +0000
add -n to ls; add rm and create
Diffstat:
M src/cmd/9p.c | 64 +++++++++++++++++++++++++++++…
1 file changed, 61 insertions(+), 3 deletions(-)
---
diff --git a/src/cmd/9p.c b/src/cmd/9p.c
t@@ -20,7 +20,7 @@ usage(void)
fprint(2, " writefd name\n");
fprint(2, " stat name\n");
fprint(2, " rdwr name\n");
- fprint(2, " ls [-ld] name\n");
+ fprint(2, " ls [-ldn] name\n");
fprint(2, "without -a, name elem/path means /path on server unix!$ns/e…
threadexitsall("usage");
}
t@@ -33,6 +33,8 @@ void xwritefd(int, char**);
void xstat(int, char**);
void xls(int, char**);
void xrdwr(int, char**);
+void xrm(int, char**);
+void xcreate(int, char**);
void xcon(int, char**);
struct {
t@@ -47,6 +49,8 @@ struct {
"stat", xstat,
"rdwr", xrdwr,
"ls", xls,
+ "rm", xrm,
+ "create", xcreate,
};
void
t@@ -321,6 +325,55 @@ xrdwr(int argc, char **argv)
}
void
+xcreate(int argc, char **argv)
+{
+ int i;
+ CFsys *fs;
+ CFid *fid;
+ char *p;
+
+ ARGBEGIN{
+ default:
+ usage();
+ }ARGEND
+
+ if(argc == 0)
+ usage();
+
+ for(i=0; i<argc; i++){
+ fs = xparse(argv[i], &p);
+ if((fid=fscreate(fs, p, OREAD, 0666)) == nil)
+ fprint(2, "create %s: %r\n", argv[i]);
+ else
+ fsclose(fid);
+ fsunmount(fs);
+ }
+}
+
+void
+xrm(int argc, char **argv)
+{
+ int i;
+ CFsys *fs;
+ char *p;
+
+ ARGBEGIN{
+ default:
+ usage();
+ }ARGEND
+
+ if(argc == 0)
+ usage();
+
+ for(i=0; i<argc; i++){
+ fs = xparse(argv[i], &p);
+ if(fsremove(fs, p) < 0)
+ fprint(2, "remove %s: %r\n", argv[i]);
+ fsunmount(fs);
+ }
+}
+
+void
rdcon(void *v)
{
int n;
t@@ -417,15 +470,19 @@ void
xls(int argc, char **argv)
{
char *err, *name, *xname, *f[4], buf[4096];
- int nf, i, j, l;
+ int nf, i, j, l, sort;
int lflag, dflag, n, len[4];
Dir *d;
CFid *fid;
CFsys *fs;
err = nil;
+ sort = 0;
lflag = dflag = 0;
ARGBEGIN{
+ case 'n':
+ sort = 0;
+ break;
case 'l':
lflag = 1;
break;
t@@ -465,7 +522,8 @@ xls(int argc, char **argv)
err = "errors";
continue;
}
- qsort(d, n, sizeof d[0], dircmp);
+ if(sort)
+ qsort(d, n, sizeof d[0], dircmp);
for(j=0; j<5; j++)
len[j] = 0;
for(i=0; i<n; i++){
You are viewing proxied material from mx1.adamsgaard.dk. The copyright of proxied material belongs to its original authors. Any comments or complaints in relation to proxied material should be directed to the original authors of the content concerned. Please see the disclaimer for more details.