shithub: patch

ref: e08f7ebb67ac129e475e57f95e69617eb523846f
dir: /patch-multi/

View raw version
diff d5938c597328adb8abb8785b4ac820ca0f094b6b uncommitted
--- a/sys/src/cmd/patch.c
+++ b/sys/src/cmd/patch.c
@@ -503,6 +503,8 @@
 		free(c->new);
 	}
 	free(changed);
+	changed = nil;
+	nchanged = 0;
 }
 
 void
@@ -723,8 +725,9 @@
 		}
 		freepatch(p);
 		Bterm(f);
+		finish(ok);
 	}else{
-		for(i = 0; i < argc; i++){
+		for(i = 0; ok && i < argc; i++){
 			if((f = Bopen(argv[i], OREAD)) == nil)
 				sysfatal("open %s: %r", argv[i]);
 			if((p = parse(f, argv[i])) == nil)
@@ -735,8 +738,8 @@
 			}
 			freepatch(p);
 			Bterm(f);
+			finish(ok);
 		}
 	}
-	finish(ok);
 	exits(nil);
 }