remove temp files even from recursive call through diffdir (see the not much sense diff /boot /boot) Reference: /n/sources/patch/applied/diff-rec Date: Sat Nov 6 16:39:09 CET 2004 --- /sys/src/cmd/diff/main.c Sat Nov 6 16:39:09 2004 +++ /sys/src/cmd/diff/main.c Sat Nov 6 16:39:09 2004 @@ -136,10 +136,10 @@ Dir *fsb, *tsb; if ((fp = statfile(f, &fsb)) == 0) - return; + goto Return; if ((tp = statfile(t, &tsb)) == 0){ free(fsb); - return; + goto Return; } if (DIRECTORY(fsb) && DIRECTORY(tsb)) { if (rflag || level == 0) @@ -170,6 +170,8 @@ } free(fsb); free(tsb); +Return: + rmtmpfiles(); } void @@ -231,10 +233,8 @@ free(fsb); } free(tsb); - for (i = 0; i < argc-1; i++) { + for (i = 0; i < argc-1; i++) diff(argv[i], argv[argc-1], 0); - rmtmpfiles(); - } done(anychange); /*NOTREACHED*/ }