git: 9front

Download patch

ref: 7fe84c4ea9d77842c68b039a8c0211c7e9bbb75a
parent: b1e550890f8b4cf87ec9c720854dda6b112fcd59
author: aiju <aiju@phicode.de>
date: Sat Jun 25 17:48:28 EDT 2011

5e: changed argument behaviour

--- a/sys/src/cmd/5e/5e.c
+++ b/sys/src/cmd/5e/5e.c
@@ -80,6 +80,22 @@
 	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 @@
 	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)
--