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*/
}