tbetter cleanup of tmp files - plan9port - [fork] Plan 9 from user space
 (HTM) git clone git://src.adamsgaard.dk/plan9port
 (DIR) Log
 (DIR) Files
 (DIR) Refs
 (DIR) README
 (DIR) LICENSE
       ---
 (DIR) commit 1c096fa40aa3a74e0886b62f8686f294968a1130
 (DIR) parent 8f3ba4782d3c6bd6711e247feb20ac6c7c808003
 (HTM) Author: rsc <devnull@localhost>
       Date:   Tue, 11 Jan 2005 20:57:00 +0000
       
       better cleanup of tmp files
       
       Diffstat:
         M src/cmd/diff/main.c                 |      14 ++++++++------
       
       1 file changed, 8 insertions(+), 6 deletions(-)
       ---
 (DIR) diff --git a/src/cmd/diff/main.c b/src/cmd/diff/main.c
       t@@ -138,10 +138,10 @@ diff(char *f, char *t, int level)
                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)
       t@@ -172,6 +172,9 @@ diff(char *f, char *t, int level)
                }
                free(fsb);
                free(tsb);
       +
       +Return:
       +        rmtmpfiles();
        }
        
        void
       t@@ -186,7 +189,7 @@ main(int argc, char *argv[])
                while (--argc && (*++argv)[0] == '-' && (*argv)[1]) {
                        for (p = *argv+1; *p; p++) {
                                switch (*p) {
       -
       +                        case 'c':
                                case 'e':
                                case 'f':
                                case 'n':
       t@@ -233,10 +236,9 @@ main(int argc, char *argv[])
                        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*/
        }