This commit is contained in:
Eric Andersen 1999-11-11 01:36:55 +00:00
parent d73dc5b073
commit c296b54827
3 changed files with 52 additions and 26 deletions

View File

@ -11,7 +11,12 @@
#error you need zcat to have gzip support! #error you need zcat to have gzip support!
#endif #endif
static const char gzip_usage[] = "gzip\nignores all command line arguments\ncompress stdin to stdout with -9 compression\n"; static const char gzip_usage[] =
"gzip [OPTION]... [FILE]...\n\n"
"Compress FILEs with maximum compression.\n\n"
"Options:\n"
"\t-c\tWrite output on standard output\n";
/* gzip.h -- common declarations for all gzip modules /* gzip.h -- common declarations for all gzip modules
* Copyright (C) 1992-1993 Jean-loup Gailly. * Copyright (C) 1992-1993 Jean-loup Gailly.
@ -210,7 +215,6 @@ extern int exit_code; /* program exit code */
extern int verbose; /* be verbose (-v) */ extern int verbose; /* be verbose (-v) */
extern int quiet; /* be quiet (-q) */ extern int quiet; /* be quiet (-q) */
extern int test; /* check .z file integrity */ extern int test; /* check .z file integrity */
extern int to_stdout; /* output to stdout (-c) */
extern int save_orig_name; /* set if original name must be saved */ extern int save_orig_name; /* set if original name must be saved */
#define get_byte() (inptr < insize ? inbuf[inptr++] : fill_inbuf(0)) #define get_byte() (inptr < insize ? inbuf[inptr++] : fill_inbuf(0))
@ -1726,8 +1730,8 @@ DECLARE(uch, window, 2L*WSIZE);
/* local variables */ /* local variables */
int ascii = 0; /* convert end-of-lines to local OS conventions */ int ascii = 0; /* convert end-of-lines to local OS conventions */
int to_stdout = 0; /* output to stdout (-c) */
int decompress = 0; /* decompress (-d) */ int decompress = 0; /* decompress (-d) */
int tostdout = 0; /* uncompress to stdout (-c) */
int no_name = -1; /* don't save or restore the original file name */ int no_name = -1; /* don't save or restore the original file name */
int no_time = -1; /* don't save or restore the original file time */ int no_time = -1; /* don't save or restore the original file time */
int foreground; /* set if program run in foreground */ int foreground; /* set if program run in foreground */
@ -1767,8 +1771,22 @@ static int (*work) OF((int infile, int outfile)) = zip; /* function to call */
// int main (argc, argv) // int main (argc, argv)
// int argc; // int argc;
// char **argv; // char **argv;
int gzip_main(int argc, char * * argv) int gzip_main(int argc, char ** argv)
{ {
/* Parse any options */
while (--argc > 0 && **(++argv) == '-') {
while (*(++(*argv))) {
switch (**argv) {
case 'c':
tostdout = 1;
break;
default:
usage(gzip_usage);
}
}
}
foreground = signal(SIGINT, SIG_IGN) != SIG_IGN; foreground = signal(SIGINT, SIG_IGN) != SIG_IGN;
if (foreground) { if (foreground) {
(void) signal (SIGINT, (sig_type)abort_gzip); (void) signal (SIGINT, (sig_type)abort_gzip);
@ -1787,8 +1805,6 @@ int gzip_main(int argc, char * * argv)
strncpy(z_suffix, Z_SUFFIX, sizeof(z_suffix)-1); strncpy(z_suffix, Z_SUFFIX, sizeof(z_suffix)-1);
z_len = strlen(z_suffix); z_len = strlen(z_suffix);
to_stdout = 1;
/* Allocate all global buffers (for DYN_ALLOC option) */ /* Allocate all global buffers (for DYN_ALLOC option) */
ALLOC(uch, inbuf, INBUFSIZ +INBUF_EXTRA); ALLOC(uch, inbuf, INBUFSIZ +INBUF_EXTRA);
ALLOC(uch, outbuf, OUTBUFSIZ+OUTBUF_EXTRA); ALLOC(uch, outbuf, OUTBUFSIZ+OUTBUF_EXTRA);
@ -1802,7 +1818,7 @@ int gzip_main(int argc, char * * argv)
#endif #endif
/* And get to work */ /* And get to work */
treat_stdin(); treat_stdin();
do_exit(exit_code); do_exit(exit_code);
return exit_code; /* just to avoid lint warning */ return exit_code; /* just to avoid lint warning */
} }
@ -1812,7 +1828,7 @@ int gzip_main(int argc, char * * argv)
*/ */
local void treat_stdin() local void treat_stdin()
{ {
SET_BINARY_MODE(fileno(stdout)); SET_BINARY_MODE(fileno(stdout));
strcpy(ifname, "stdin"); strcpy(ifname, "stdin");
strcpy(ofname, "stdout"); strcpy(ofname, "stdout");
@ -1822,12 +1838,11 @@ local void treat_stdin()
ifile_size = -1L; /* convention for unknown size */ ifile_size = -1L; /* convention for unknown size */
clear_bufs(); /* clear input and output buffers */ clear_bufs(); /* clear input and output buffers */
to_stdout = 1;
part_nb = 0; part_nb = 0;
/* Actually do the compression/decompression. Loop over zipped members. /* Actually do the compression/decompression. Loop over zipped members.
*/ */
if ((*work)(fileno(stdin), fileno(stdout)) != OK) return; if ((*work)(fileno(stdin), fileno(stdout)) != OK) return;
} }
/* ======================================================================== /* ========================================================================
@ -2941,8 +2956,6 @@ local void set_file_type()
extern int errno; extern int errno;
#endif #endif
extern ulg crc_32_tab[]; /* crc table, defined below */
/* =========================================================================== /* ===========================================================================
* Copy input to output unchanged: zcat == cat with --force. * Copy input to output unchanged: zcat == cat with --force.
* IN assertion: insize bytes have already been read in inbuf. * IN assertion: insize bytes have already been read in inbuf.

37
gzip.c
View File

@ -11,7 +11,12 @@
#error you need zcat to have gzip support! #error you need zcat to have gzip support!
#endif #endif
static const char gzip_usage[] = "gzip\nignores all command line arguments\ncompress stdin to stdout with -9 compression\n"; static const char gzip_usage[] =
"gzip [OPTION]... [FILE]...\n\n"
"Compress FILEs with maximum compression.\n\n"
"Options:\n"
"\t-c\tWrite output on standard output\n";
/* gzip.h -- common declarations for all gzip modules /* gzip.h -- common declarations for all gzip modules
* Copyright (C) 1992-1993 Jean-loup Gailly. * Copyright (C) 1992-1993 Jean-loup Gailly.
@ -210,7 +215,6 @@ extern int exit_code; /* program exit code */
extern int verbose; /* be verbose (-v) */ extern int verbose; /* be verbose (-v) */
extern int quiet; /* be quiet (-q) */ extern int quiet; /* be quiet (-q) */
extern int test; /* check .z file integrity */ extern int test; /* check .z file integrity */
extern int to_stdout; /* output to stdout (-c) */
extern int save_orig_name; /* set if original name must be saved */ extern int save_orig_name; /* set if original name must be saved */
#define get_byte() (inptr < insize ? inbuf[inptr++] : fill_inbuf(0)) #define get_byte() (inptr < insize ? inbuf[inptr++] : fill_inbuf(0))
@ -1726,8 +1730,8 @@ DECLARE(uch, window, 2L*WSIZE);
/* local variables */ /* local variables */
int ascii = 0; /* convert end-of-lines to local OS conventions */ int ascii = 0; /* convert end-of-lines to local OS conventions */
int to_stdout = 0; /* output to stdout (-c) */
int decompress = 0; /* decompress (-d) */ int decompress = 0; /* decompress (-d) */
int tostdout = 0; /* uncompress to stdout (-c) */
int no_name = -1; /* don't save or restore the original file name */ int no_name = -1; /* don't save or restore the original file name */
int no_time = -1; /* don't save or restore the original file time */ int no_time = -1; /* don't save or restore the original file time */
int foreground; /* set if program run in foreground */ int foreground; /* set if program run in foreground */
@ -1767,8 +1771,22 @@ static int (*work) OF((int infile, int outfile)) = zip; /* function to call */
// int main (argc, argv) // int main (argc, argv)
// int argc; // int argc;
// char **argv; // char **argv;
int gzip_main(int argc, char * * argv) int gzip_main(int argc, char ** argv)
{ {
/* Parse any options */
while (--argc > 0 && **(++argv) == '-') {
while (*(++(*argv))) {
switch (**argv) {
case 'c':
tostdout = 1;
break;
default:
usage(gzip_usage);
}
}
}
foreground = signal(SIGINT, SIG_IGN) != SIG_IGN; foreground = signal(SIGINT, SIG_IGN) != SIG_IGN;
if (foreground) { if (foreground) {
(void) signal (SIGINT, (sig_type)abort_gzip); (void) signal (SIGINT, (sig_type)abort_gzip);
@ -1787,8 +1805,6 @@ int gzip_main(int argc, char * * argv)
strncpy(z_suffix, Z_SUFFIX, sizeof(z_suffix)-1); strncpy(z_suffix, Z_SUFFIX, sizeof(z_suffix)-1);
z_len = strlen(z_suffix); z_len = strlen(z_suffix);
to_stdout = 1;
/* Allocate all global buffers (for DYN_ALLOC option) */ /* Allocate all global buffers (for DYN_ALLOC option) */
ALLOC(uch, inbuf, INBUFSIZ +INBUF_EXTRA); ALLOC(uch, inbuf, INBUFSIZ +INBUF_EXTRA);
ALLOC(uch, outbuf, OUTBUFSIZ+OUTBUF_EXTRA); ALLOC(uch, outbuf, OUTBUFSIZ+OUTBUF_EXTRA);
@ -1802,7 +1818,7 @@ int gzip_main(int argc, char * * argv)
#endif #endif
/* And get to work */ /* And get to work */
treat_stdin(); treat_stdin();
do_exit(exit_code); do_exit(exit_code);
return exit_code; /* just to avoid lint warning */ return exit_code; /* just to avoid lint warning */
} }
@ -1812,7 +1828,7 @@ int gzip_main(int argc, char * * argv)
*/ */
local void treat_stdin() local void treat_stdin()
{ {
SET_BINARY_MODE(fileno(stdout)); SET_BINARY_MODE(fileno(stdout));
strcpy(ifname, "stdin"); strcpy(ifname, "stdin");
strcpy(ofname, "stdout"); strcpy(ofname, "stdout");
@ -1822,12 +1838,11 @@ local void treat_stdin()
ifile_size = -1L; /* convention for unknown size */ ifile_size = -1L; /* convention for unknown size */
clear_bufs(); /* clear input and output buffers */ clear_bufs(); /* clear input and output buffers */
to_stdout = 1;
part_nb = 0; part_nb = 0;
/* Actually do the compression/decompression. Loop over zipped members. /* Actually do the compression/decompression. Loop over zipped members.
*/ */
if ((*work)(fileno(stdin), fileno(stdout)) != OK) return; if ((*work)(fileno(stdin), fileno(stdout)) != OK) return;
} }
/* ======================================================================== /* ========================================================================
@ -2941,8 +2956,6 @@ local void set_file_type()
extern int errno; extern int errno;
#endif #endif
extern ulg crc_32_tab[]; /* crc table, defined below */
/* =========================================================================== /* ===========================================================================
* Copy input to output unchanged: zcat == cat with --force. * Copy input to output unchanged: zcat == cat with --force.
* IN assertion: insize bytes have already been read in inbuf. * IN assertion: insize bytes have already been read in inbuf.

4
zcat.c
View File

@ -1025,7 +1025,7 @@ int unzip(in, out)
extern int errno; extern int errno;
#endif #endif
const ulg crc_32_tab[]; /* crc table, defined below */ static const ulg crc_32_tab[]; /* crc table, defined below */
/* =========================================================================== /* ===========================================================================
* Run a set of bytes through the crc shift register. If s is a NULL * Run a set of bytes through the crc shift register. If s is a NULL
@ -1239,7 +1239,7 @@ voidp xmalloc (size)
/* ======================================================================== /* ========================================================================
* Table of CRC-32's of all single-byte values (made by makecrc.c) * Table of CRC-32's of all single-byte values (made by makecrc.c)
*/ */
const ulg crc_32_tab[] = { static const ulg crc_32_tab[] = {
0x00000000L, 0x77073096L, 0xee0e612cL, 0x990951baL, 0x076dc419L, 0x00000000L, 0x77073096L, 0xee0e612cL, 0x990951baL, 0x076dc419L,
0x706af48fL, 0xe963a535L, 0x9e6495a3L, 0x0edb8832L, 0x79dcb8a4L, 0x706af48fL, 0xe963a535L, 0x9e6495a3L, 0x0edb8832L, 0x79dcb8a4L,
0xe0d5e91eL, 0x97d2d988L, 0x09b64c2bL, 0x7eb17cbdL, 0xe7b82d07L, 0xe0d5e91eL, 0x97d2d988L, 0x09b64c2bL, 0x7eb17cbdL, 0xe7b82d07L,