gz_open and gz_close were left in, even when BB_FEATURE_TAR_GZIP was disabled.
[oweals/busybox.git] / gunzip.c
index 93f7c351e6f8ad6a60f1d631ecf97992c7a56216..51541f15553ed8b66029b660d7786800c3782009 100644 (file)
--- a/gunzip.c
+++ b/gunzip.c
@@ -1017,6 +1017,7 @@ extern int unzip(FILE *l_in_file, FILE *l_out_file)
        return 0;
 }
 
+#ifdef BB_FEATURE_TAR_GZIP
 extern int gz_open(FILE *compressed_file, int *pid)
 {
        int unzip_pipe[2];
@@ -1056,6 +1057,7 @@ extern void gz_close(int gunzip_pid)
        free(window);
        free(crc_table);
 }
+#endif 
 
 extern int gunzip_main(int argc, char **argv)
 {
@@ -1074,38 +1076,35 @@ extern int gunzip_main(int argc, char **argv)
        int opt = 0;
        int delete_old_file = FALSE;
 
-#ifdef BB_ZCAT
        /* if called as zcat */
        if (strcmp(applet_name, "zcat") == 0) {
                if (argc != 2) {
                        show_usage();
                }
-               flags |= gunzip_force;
-               flags |= gunzip_to_stdout;
-       } else
-#endif
-       {
+               optind = 1;
+               flags |= (gunzip_force | gunzip_to_stdout);
+       } else {
                /* workout flags as regular gunzip */
                /* set default flags */
                if (argc == 1) {
                        flags |= (gunzip_from_stdin | gunzip_to_stdout);
-               }
-
-               /* Parse any options */
-               while ((opt = getopt(argc, argv, "ctfh")) != -1) {
-                       switch (opt) {
-                       case 'c':
-                               flags |= gunzip_to_stdout;
-                               break;
-                       case 'f':
-                               flags |= gunzip_force;
-                               break;
-                       case 't':
-                               flags |= gunzip_test;
-                               break;
-                       case 'h':
-                       default:
-                               show_usage(); /* exit's inside usage */
+               } else {
+                       /* Parse any options */
+                       while ((opt = getopt(argc, argv, "ctfh")) != -1) {
+                               switch (opt) {
+                               case 'c':
+                                       flags |= gunzip_to_stdout;
+                                       break;
+                               case 'f':
+                                       flags |= gunzip_force;
+                                       break;
+                               case 't':
+                                       flags |= gunzip_test;
+                                       break;
+                               case 'h':
+                               default:
+                                       show_usage(); /* exit's inside usage */
+                               }
                        }
                }
        }
@@ -1116,7 +1115,6 @@ extern int gunzip_main(int argc, char **argv)
                if ((flags & gunzip_force) == 0) {
                        error_msg_and_die("data not written to terminal. Use -f to force it.");
                }
-               strcpy(if_name, "stdin");
        } else {
                if_name = strdup(argv[optind]);
                /* Open input file */
@@ -1135,8 +1133,6 @@ extern int gunzip_main(int argc, char **argv)
                if (isatty(fileno(out_file)) && ((flags & gunzip_force) == 0)) {
                        error_msg_and_die("data not written to terminal. Use -f to force it.");
                }
-
-               strcpy(of_name, "stdout");
        } else if (flags & gunzip_test) {
                out_file = xfopen("/dev/null", "w"); /* why does test use filenum 2 ? */
        } else {