Fixes with help from Stefan, Typo in prerm script, and when reinstall a package the...
[oweals/busybox.git] / archival / gunzip.c
index 6f5e63d4b824bfb8124bd8621d4f3de414c6321a..430bc630efc80daef9949eac46ab431d4fa9ab18 100644 (file)
@@ -68,7 +68,8 @@ static char *license_msg[] = {
 
 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;
@@ -110,14 +111,16 @@ 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 */
                in_file = xfopen(if_name, "r");
 
+               /* set the buffer size */
+               setvbuf(in_file, NULL, _IOFBF, 0x8000);
+
                /* Get the time stamp on the input file. */
                if (stat(if_name, &stat_buf) < 0) {
                        error_msg_and_die("Couldn't stat file %s", if_name);