summaryrefslogtreecommitdiff
path: root/sys/src/cmd/5e
diff options
context:
space:
mode:
authoraiju <aiju@phicode.de>2011-06-25 21:48:28 +0200
committeraiju <aiju@phicode.de>2011-06-25 21:48:28 +0200
commitb05166304355fe3898794fea6c925aeb4d13a12f (patch)
tree5fdba7a918d11ea5443600e1a37a6210fb442982 /sys/src/cmd/5e
parentfb37e71a2e00a8519b7bd12328d01e389c0625bc (diff)
5e: changed argument behaviour
Diffstat (limited to 'sys/src/cmd/5e')
-rw-r--r--sys/src/cmd/5e/5e.c21
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)