Implement suggestion from Adam Slattery, (don't default to killing closing bug #1190.
[oweals/busybox.git] / gunzip.c
index e6f6bdfc1a40093af0e16e64c3f00648d24b0005..c4e84260b20c9c6559003a7fb8c8e91453f9743d 100644 (file)
--- a/gunzip.c
+++ b/gunzip.c
@@ -65,14 +65,11 @@ static char *license_msg[] = {
 #include <unistd.h>
 #include <getopt.h>
 #include "busybox.h"
-#define BB_DECLARE_EXTERN
-#define bb_need_memory_exhausted
-#define bb_need_name_too_long
-#include "messages.c"
 
 extern int gunzip_main(int argc, char **argv)
 {
-       FILE *in_file, *out_file;
+       FILE *in_file = stdin;
+       FILE *out_file = NULL;
        struct stat stat_buf;
 
        char *if_name = NULL;
@@ -91,7 +88,7 @@ extern int gunzip_main(int argc, char **argv)
        if (strcmp(applet_name, "zcat") == 0)
                flags |= gunzip_to_stdout;
 
-       while ((opt = getopt(argc, argv, "ctfh")) != -1) {
+       while ((opt = getopt(argc, argv, "ctfhdq")) != -1) {
                switch (opt) {
                case 'c':
                        flags |= gunzip_to_stdout;
@@ -102,6 +99,11 @@ extern int gunzip_main(int argc, char **argv)
                case 't':
                        flags |= gunzip_test;
                        break;
+               case 'd': /* Used to convert gzip to gunzip. */
+                       break;
+               case 'q':
+                       error_msg("-q option not supported, ignored");
+                       break;
                case 'h':
                default:
                        show_usage(); /* exit's inside usage */
@@ -109,9 +111,8 @@ extern int gunzip_main(int argc, char **argv)
        }
 
        /* Set input filename and number */
-       if (argv[optind] == NULL) {
+       if (argv[optind] == NULL || strcmp(argv[optind], "-") == 0) {
                flags |= gunzip_to_stdout;
-               in_file = stdin;
        } else {
                if_name = strdup(argv[optind]);
                /* Open input file */