diff options
author | aiju <aiju@phicode.de> | 2011-06-25 21:48:28 +0200 |
---|---|---|
committer | aiju <aiju@phicode.de> | 2011-06-25 21:48:28 +0200 |
commit | b05166304355fe3898794fea6c925aeb4d13a12f (patch) | |
tree | 5fdba7a918d11ea5443600e1a37a6210fb442982 /sys/src/cmd/5e/5e.c | |
parent | fb37e71a2e00a8519b7bd12328d01e389c0625bc (diff) |
5e: changed argument behaviour
Diffstat (limited to 'sys/src/cmd/5e/5e.c')
-rw-r--r-- | sys/src/cmd/5e/5e.c | 21 |
1 files changed, 18 insertions, 3 deletions
diff --git a/sys/src/cmd/5e/5e.c b/sys/src/cmd/5e/5e.c index fb589e54c..be0f8dabd 100644 --- a/sys/src/cmd/5e/5e.c +++ b/sys/src/cmd/5e/5e.c @@ -80,6 +80,22 @@ notehandler(void *, char *note) return 1; } +static void +dotext(int argc, char **argv) +{ + char *file; + + if(**argv == '/' || **argv == '.' || **argv == '#') { + if(loadtext(*argv, argc, argv) < 0) + sysfatal("loadtext: %r"); + return; + } + file = smprint("/bin/%s", *argv); + if(loadtext(file, argc, argv) < 0) + sysfatal("loadtext: %r"); + free(file); +} + void main(int argc, char **argv) { @@ -96,13 +112,12 @@ main(int argc, char **argv) if(rfork(RFREND | RFNAMEG | RFENVG) < 0) sysfatal("rfork: %r"); atexit(cleanup); - if(nflag) + if(!nflag) adjustns(); if(pflag) initfs("armproc", "/proc"); initproc(); - if(loadtext(argv[0], argc, argv) < 0) - sysfatal("%r"); + dotext(argc, argv); atnotify(notehandler, 1); for(;;) { if(ultraverbose) |