commit - e84044be84489b6f4f9ce69d0d6eba6cac66a9b6
commit + eb5d2a54d5ee79118c8081c7de3409f93e500b54
blob - c9446d6b9108992da4d2888d6d6f45204ab428a5
blob + b6c696abc6215676bd592f97d009fcc2cf55775b
--- src/cmd/diff/diffdir.c
+++ src/cmd/diff/diffdir.c
int nitems;
int fd, n;
- if ((fd = open(name, OREAD)) < 0)
- panic(2, "can't open %s\n", name);
+ if ((fd = open(name, OREAD)) < 0){
+ panic(mflag ? 0 : 2, "can't open %s\n", name);
+ return nil;
+ }
cp = 0;
nitems = 0;
if((n = dirreadall(fd, &db)) > 0){
dt = scandir(t);
dirf = df;
dirt = dt;
+ if(df == nil || dt == nil)
+ goto Out;
while (*df || *dt) {
from = *df;
to = *dt;
diff(fb, tb, level+1);
df++; dt++;
}
- for (df = dirf; *df; df++)
+Out:
+ for (df = dirf; df && *df; df++)
FREE(*df);
- for (dt = dirt; *dt; dt++)
+ for (dt = dirt; dt && *dt; dt++)
FREE(*dt);
FREE(dirf);
FREE(dirt);
blob - a80f76e10d3e723045050392107d1067247fe51c
blob + 408ad90f517c0bf6d19086b55542ce37de553fa8
--- src/cmd/diff/main.c
+++ src/cmd/diff/main.c
char *p;
int i;
Dir *fsb, *tsb;
-
+ extern int _p9usepwlibrary;
+
+ _p9usepwlibrary = 0;
Binit(&stdout, 1, OWRITE);
progname = *argv;
while (--argc && (*++argv)[0] == '-' && (*argv)[1]) {
case 'r':
rflag = 1;
+ mflag = 1;
break;
case 'm':