From 7ac868460a90e1de4a2f45229f22f1cd07370c05 Mon Sep 17 00:00:00 2001 From: Robert Griebl Date: Wed, 15 May 2002 21:57:42 +0000 Subject: [PATCH] gunzip'ing many files to stdout works now Fixed a missing initialisation and made a for loop more readable. --- archival/gunzip.c | 15 +++++++++------ 1 file changed, 9 insertions(+), 6 deletions(-) diff --git a/archival/gunzip.c b/archival/gunzip.c index 032b43c..83ed5e8 100644 --- a/archival/gunzip.c +++ b/archival/gunzip.c @@ -75,7 +75,7 @@ static int gunzip_file (const char *path, int flags) { FILE *in_file, *out_file; struct stat stat_buf; - const char *delete_path; + const char *delete_path = NULL; char *out_path = NULL; if (path == NULL || strcmp (path, "-") == 0) { @@ -142,8 +142,10 @@ static int gunzip_file (const char *path, int flags) delete_path = out_path; } - fclose(out_file); - fclose(in_file); + if (out_file != stdout) + fclose(out_file); + if (in_file != stdin) + fclose(in_file); if (delete_path && !(flags & gunzip_test)) { if (unlink(delete_path) < 0) { @@ -194,10 +196,11 @@ extern int gunzip_main(int argc, char **argv) if (optind == argc) { if (gunzip_file (NULL, flags) < 0) status = EXIT_FAILURE; - } else - for (i = optind; i < argc; i++) + } else { + for (i = optind; i < argc; i++) { if (gunzip_file (argv[i], flags) < 0) status = EXIT_FAILURE; - + } + } return status; } -- 2.7.4