Commit Diff


commit - 0faf0f0baa92349a203a419f8e1db76104e42313
commit + 134c20c60516eb6b6a4f1148a5a24767d38de3a4
blob - c11bf9bb0ad6775d729660572efe1ffb897a22ec
blob + 387fbbb8d94ce186de0a3c203c17b2a52a50d9a6
--- src/cmd/rc/plan9ish.c
+++ src/cmd/rc/plan9ish.c
@@ -459,8 +459,8 @@ int Creat(char *file)
 int Dup(int a, int b){
 	return dup(a, b);
 }
-int Dup1(int unused0){
-	return -1;
+int Dup1(int a){
+	return dup(a, -1);
 }
 void Exit(char *stat)
 {
blob - 6ac02d5947ca87784c00bcc32e32bcd2053cc1c2
blob + 154678f64c99860c3d9313cde809403363b5ff22
--- src/cmd/rc/simple.c
+++ src/cmd/rc/simple.c
@@ -316,11 +316,11 @@ void execdot(void){
 		strcpy(file, path->word);
 		if(file[0]) strcat(file, "/");
 		strcat(file, zero);
-		if((fd=open(file, 0))>=0) break;
 		if(strcmp(file, "/dev/stdin")==0){	/* for sun & ucb */
 			fd=Dup1(0);
 			if(fd>=0) break;
 		}
+		if((fd=open(file, 0))>=0) break;
 	}
 	if(fd<0){
 		pfmt(err, "%s: ", zero);