aboutsummaryrefslogtreecommitdiff
path: root/usr.bin/gzip
diff options
context:
space:
mode:
authorTom Jones <thj@FreeBSD.org>2022-01-27 17:24:45 +0000
committerTom Jones <thj@FreeBSD.org>2022-01-27 17:27:21 +0000
commit4669f23ef76bd5ff7d122546ca5ed3e8575f1c73 (patch)
tree7b2d3d1474cddb71f8051012a5e208c858f2dfda /usr.bin/gzip
parentc9afc7680f3e1f0510518de9de4264553a31aade (diff)
downloadsrc-4669f23ef76bd5ff7d122546ca5ed3e8575f1c73.tar.gz
src-4669f23ef76bd5ff7d122546ca5ed3e8575f1c73.zip
Diffstat (limited to 'usr.bin/gzip')
-rw-r--r--usr.bin/gzip/gzip.c136
1 files changed, 0 insertions, 136 deletions
diff --git a/usr.bin/gzip/gzip.c b/usr.bin/gzip/gzip.c
index f31f744b93f6..bdafb9e0b457 100644
--- a/usr.bin/gzip/gzip.c
+++ b/usr.bin/gzip/gzip.c
@@ -144,7 +144,6 @@ typedef struct {
static suffixes_t suffixes[] = {
#define SUFFIX(Z, N) {Z, sizeof Z - 1, N}
SUFFIX(GZ_SUFFIX, ""), /* Overwritten by -S .xxx */
-#ifndef SMALL
SUFFIX(GZ_SUFFIX, ""),
SUFFIX(".z", ""),
SUFFIX("-gz", ""),
@@ -167,7 +166,6 @@ static suffixes_t suffixes[] = {
SUFFIX(LZ_SUFFIX, ""),
#endif
SUFFIX(GZ_SUFFIX, ""), /* Overwritten by -S "" */
-#endif /* SMALL */
#undef SUFFIX
};
#define NUM_SUFFIXES (nitems(suffixes))
@@ -175,7 +173,6 @@ static suffixes_t suffixes[] = {
static const char gzip_version[] = "FreeBSD gzip 20190107";
-#ifndef SMALL
static const char gzip_copyright[] = \
" Copyright (c) 1997, 1998, 2003, 2004, 2006 Matthew R. Green\n"
" All rights reserved.\n"
@@ -200,7 +197,6 @@ static const char gzip_copyright[] = \
" OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY\n"
" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF\n"
" SUCH DAMAGE.";
-#endif
static int cflag; /* stdout mode */
static int dflag; /* decompress mode */
@@ -210,7 +206,6 @@ static int numflag = 6; /* gzip -1..-9 value */
static const char *remove_file = NULL; /* file to be removed upon SIGINT */
static int fflag; /* force mode */
-#ifndef SMALL
static int kflag; /* don't delete input files */
static int nflag; /* don't save name/timestamp */
static int Nflag; /* don't restore name/timestamp */
@@ -219,10 +214,6 @@ static int rflag; /* recursive mode */
static int tflag; /* test */
static int vflag; /* verbose mode */
static sig_atomic_t print_info = 0;
-#else
-#define qflag 0
-#define tflag 0
-#endif
static int exit_value = 0; /* exit value */
@@ -236,9 +227,6 @@ static void maybe_errx(const char *fmt, ...) __printflike(1, 2) __dead2;
static void maybe_warn(const char *fmt, ...) __printflike(1, 2);
static void maybe_warnx(const char *fmt, ...) __printflike(1, 2);
static enum filetype file_gettype(u_char *);
-#ifdef SMALL
-#define gz_compress(if, of, sz, fn, tm) gz_compress(if, of, sz)
-#endif
static off_t gz_compress(int, int, off_t *, const char *, uint32_t);
static off_t gz_uncompress(int, int, char *, size_t, off_t *, const char *);
static off_t file_compress(char *, char *, size_t);
@@ -251,25 +239,14 @@ static void print_ratio(off_t, off_t, FILE *);
static void print_list(int fd, off_t, const char *, time_t);
static void usage(void) __dead2;
static void display_version(void) __dead2;
-#ifndef SMALL
static void display_license(void);
-#endif
static const suffixes_t *check_suffix(char *, int);
static ssize_t read_retry(int, void *, size_t);
static ssize_t write_retry(int, const void *, size_t);
static void print_list_out(off_t, off_t, const char*);
-#ifdef SMALL
-#define infile_set(f,t) infile_set(f)
-#endif
static void infile_set(const char *newinfile, off_t total);
-#ifdef SMALL
-#define unlink_input(f, sb) unlink(f)
-#define check_siginfo() /* nothing */
-#define setup_signals() /* nothing */
-#define infile_newdata(t) /* nothing */
-#else
static off_t infile_total; /* total expected to read/write */
static off_t infile_current; /* current read/write */
@@ -284,7 +261,6 @@ static int check_outfile(const char *outfile);
static void setup_signals(void);
static void infile_newdata(size_t newdata);
static void infile_clear(void);
-#endif
#ifndef NO_BZIP2_SUPPORT
static off_t unbzip2(int, int, char *, size_t, off_t *);
@@ -308,9 +284,6 @@ static off_t unxz_len(int);
static off_t unlz(int, int, char *, size_t, off_t *);
#endif
-#ifdef SMALL
-#define getopt_long(a,b,c,d,e) getopt(a,b,c)
-#else
static const struct option longopts[] = {
{ "stdout", no_argument, 0, 'c' },
{ "to-stdout", no_argument, 0, 'c' },
@@ -334,24 +307,19 @@ static const struct option longopts[] = {
{ "license", no_argument, 0, 'L' },
{ NULL, no_argument, 0, 0 },
};
-#endif
int
main(int argc, char **argv)
{
const char *progname = getprogname();
-#ifndef SMALL
char *gzip;
int len;
-#endif
int ch;
setup_signals();
-#ifndef SMALL
if ((gzip = getenv("GZIP")) != NULL)
prepend_gzip(gzip, &argc, &argv);
-#endif
/*
* XXX
@@ -363,11 +331,7 @@ main(int argc, char **argv)
strcmp(progname, "gzcat") == 0)
dflag = cflag = 1;
-#ifdef SMALL
-#define OPT_LIST "123456789cdhlV"
-#else
#define OPT_LIST "123456789acdfhklLNnqrS:tVv"
-#endif
while ((ch = getopt_long(argc, argv, OPT_LIST, longopts, NULL)) != -1) {
switch (ch) {
@@ -389,7 +353,6 @@ main(int argc, char **argv)
case 'V':
display_version();
/* NOTREACHED */
-#ifndef SMALL
case 'a':
fprintf(stderr, "%s: option --ascii ignored on this system\n", progname);
break;
@@ -436,7 +399,6 @@ main(int argc, char **argv)
case 'v':
vflag = 1;
break;
-#endif
default:
usage();
/* NOTREACHED */
@@ -455,10 +417,8 @@ main(int argc, char **argv)
handle_pathname(argv[0]);
} while (*++argv);
}
-#ifndef SMALL
if (qflag == 0 && lflag && argc > 1)
print_list(-1, 0, "(totals)", 0);
-#endif
exit(exit_value);
}
@@ -523,7 +483,6 @@ maybe_errx(const char *fmt, ...)
}
#endif
-#ifndef SMALL
/* split up $GZIP and prepend it to the argument list */
static void
prepend_gzip(char *gzip, int *argc, char ***argv)
@@ -587,7 +546,6 @@ copy_done:
nargv[i++] = *(ac++);
nargv[i] = NULL;
}
-#endif
/* compress input to output. Return bytes read, -1 on error */
static off_t
@@ -599,11 +557,6 @@ gz_compress(int in, int out, off_t *gsizep, const char *origname, uint32_t mtime
ssize_t in_size;
int i, error;
uLong crc;
-#ifdef SMALL
- static char header[] = { GZIP_MAGIC0, GZIP_MAGIC1, Z_DEFLATED, 0,
- 0, 0, 0, 0,
- 0, OS_CODE };
-#endif
outbufp = malloc(BUFLEN);
inbufp = malloc(BUFLEN);
@@ -617,10 +570,6 @@ gz_compress(int in, int out, off_t *gsizep, const char *origname, uint32_t mtime
z.zfree = Z_NULL;
z.opaque = 0;
-#ifdef SMALL
- memcpy(outbufp, header, sizeof header);
- i = sizeof header;
-#else
if (nflag != 0) {
mtime = 0;
origname = "";
@@ -640,7 +589,6 @@ gz_compress(int in, int out, off_t *gsizep, const char *origname, uint32_t mtime
maybe_err("snprintf");
if (*origname)
i++;
-#endif
z.next_out = (unsigned char *)outbufp + i;
z.avail_out = BUFLEN - i;
@@ -1000,10 +948,8 @@ gz_uncompress(int in, int out, char *pre, size_t prelen, off_t *gsizep,
if (wr != 0) {
crc = crc32(crc, (const Bytef *)outbufp, (unsigned)wr);
if (
-#ifndef SMALL
/* don't write anything with -t */
tflag == 0 &&
-#endif
write_retry(out, outbufp, wr) != wr) {
maybe_warn("error writing to output");
goto stop_and_fail;
@@ -1099,7 +1045,6 @@ out2:
return (out_tot);
}
-#ifndef SMALL
/*
* set the owner, mode, flags & utimes using the given file descriptor.
* file is only used in possible warning messages.
@@ -1144,7 +1089,6 @@ copymodes(int fd, const struct stat *sbp, const char *file)
if (sb.st_flags != 0 && fchflags(fd, sb.st_flags) < 0)
maybe_warn("couldn't fchflags: %s", file);
}
-#endif
/* what sort of file is this? */
static enum filetype
@@ -1184,7 +1128,6 @@ file_gettype(u_char *buf)
return FT_UNKNOWN;
}
-#ifndef SMALL
/* check the outfile is OK. */
static int
check_outfile(const char *outfile)
@@ -1260,7 +1203,6 @@ infile_newdata(size_t newdata)
infile_current += newdata;
}
-#endif
static void
infile_set(const char *newinfile, off_t total)
@@ -1268,9 +1210,7 @@ infile_set(const char *newinfile, off_t total)
if (newinfile)
infile = newinfile;
-#ifndef SMALL
infile_total = total;
-#endif
}
static void
@@ -1278,9 +1218,7 @@ infile_clear(void)
{
infile = NULL;
-#ifndef SMALL
infile_total = infile_current = 0;
-#endif
}
static const suffixes_t *
@@ -1314,10 +1252,8 @@ file_compress(char *file, char *outfile, size_t outsize)
int in;
int out;
off_t size, in_size;
-#ifndef SMALL
struct stat isb, osb;
const suffixes_t *suff;
-#endif
in = open(file, O_RDONLY);
if (in == -1) {
@@ -1325,25 +1261,20 @@ file_compress(char *file, char *outfile, size_t outsize)
return (-1);
}
-#ifndef SMALL
if (fstat(in, &isb) != 0) {
maybe_warn("couldn't stat: %s", file);
close(in);
return (-1);
}
-#endif
-#ifndef SMALL
if (fstat(in, &isb) != 0) {
close(in);
maybe_warn("can't stat %s", file);
return -1;
}
infile_set(file, isb.st_size);
-#endif
if (cflag == 0) {
-#ifndef SMALL
if (isb.st_nlink > 1 && fflag == 0) {
maybe_warnx("%s has %ju other link%s -- "
"skipping", file,
@@ -1360,7 +1291,6 @@ file_compress(char *file, char *outfile, size_t outsize)
close(in);
return (-1);
}
-#endif
/* Add (usually) .gz to filename */
if ((size_t)snprintf(outfile, outsize, "%s%s",
@@ -1368,12 +1298,10 @@ file_compress(char *file, char *outfile, size_t outsize)
memcpy(outfile + outsize - suffixes[0].ziplen - 1,
suffixes[0].zipped, suffixes[0].ziplen + 1);
-#ifndef SMALL
if (check_outfile(outfile) == 0) {
close(in);
return (-1);
}
-#endif
}
if (cflag == 0) {
@@ -1383,9 +1311,7 @@ file_compress(char *file, char *outfile, size_t outsize)
fclose(stdin);
return (-1);
}
-#ifndef SMALL
remove_file = outfile;
-#endif
} else
out = STDOUT_FILENO;
@@ -1403,7 +1329,6 @@ file_compress(char *file, char *outfile, size_t outsize)
if (cflag != 0)
return in_size == -1 ? -1 : size;
-#ifndef SMALL
if (fstat(out, &osb) != 0) {
maybe_warn("couldn't stat: %s", outfile);
goto bad_outfile;
@@ -1417,7 +1342,6 @@ file_compress(char *file, char *outfile, size_t outsize)
copymodes(out, &isb, outfile);
remove_file = NULL;
-#endif
if (close(out) == -1)
maybe_warn("couldn't close output");
@@ -1425,7 +1349,6 @@ file_compress(char *file, char *outfile, size_t outsize)
unlink_input(file, &isb);
return (size);
-#ifndef SMALL
bad_outfile:
if (close(out) == -1)
maybe_warn("couldn't close output");
@@ -1433,7 +1356,6 @@ file_compress(char *file, char *outfile, size_t outsize)
maybe_warnx("leaving original %s", file);
unlink(outfile);
return (size);
-#endif
}
/* uncompress the given file and remove the original */
@@ -1448,11 +1370,9 @@ file_uncompress(char *file, char *outfile, size_t outsize)
int fd, ofd, zfd = -1;
int error;
size_t in_size;
-#ifndef SMALL
ssize_t rv;
time_t timestamp = 0;
char name[PATH_MAX + 1];
-#endif
/* gather the old name info */
@@ -1480,10 +1400,8 @@ file_uncompress(char *file, char *outfile, size_t outsize)
rbytes = read(fd, fourbytes, sizeof fourbytes);
if (rbytes != sizeof fourbytes) {
/* we don't want to fail here. */
-#ifndef SMALL
if (fflag)
goto lose;
-#endif
if (rbytes == -1)
maybe_warn("can't read %s", file);
else
@@ -1493,15 +1411,12 @@ file_uncompress(char *file, char *outfile, size_t outsize)
infile_newdata(rbytes);
method = file_gettype(fourbytes);
-#ifndef SMALL
if (fflag == 0 && method == FT_UNKNOWN) {
maybe_warnx("%s: not in gzip format", file);
goto lose;
}
-#endif
-#ifndef SMALL
if (method == FT_GZIP && Nflag) {
unsigned char ts[4]; /* timestamp */
@@ -1547,11 +1462,9 @@ file_uncompress(char *file, char *outfile, size_t outsize)
}
}
}
-#endif
lseek(fd, 0, SEEK_SET);
if (cflag == 0 || lflag) {
-#ifndef SMALL
if (isb.st_nlink > 1 && lflag == 0 && fflag == 0) {
maybe_warnx("%s has %ju other links -- skipping",
file, (uintmax_t)isb.st_nlink - 1);
@@ -1561,7 +1474,6 @@ file_uncompress(char *file, char *outfile, size_t outsize)
isb.st_mtime = timestamp;
if (check_outfile(outfile) == 0)
goto lose;
-#endif
}
if (cflag)
@@ -1674,7 +1586,6 @@ file_uncompress(char *file, char *outfile, size_t outsize)
size = unlz(fd, zfd, NULL, 0, NULL);
break;
#endif
-#ifndef SMALL
case FT_UNKNOWN:
if (lflag) {
maybe_warnx("no -l for unknown filetypes");
@@ -1682,7 +1593,6 @@ file_uncompress(char *file, char *outfile, size_t outsize)
}
size = cat_fd(NULL, 0, NULL, fd);
break;
-#endif
default:
if (lflag) {
print_list(fd, in_size, outfile, isb.st_mtime);
@@ -1709,10 +1619,8 @@ file_uncompress(char *file, char *outfile, size_t outsize)
}
/* if testing, or we uncompressed to stdout, this is all we need */
-#ifndef SMALL
if (tflag)
return size;
-#endif
/* if we are uncompressing to stdin, don't remove the file. */
if (cflag)
return size;
@@ -1743,10 +1651,8 @@ file_uncompress(char *file, char *outfile, size_t outsize)
unlink(outfile);
return -1;
}
-#ifndef SMALL
copymodes(ofd, &isb, outfile);
remove_file = NULL;
-#endif
close(ofd);
unlink_input(file, &isb);
return size;
@@ -1761,7 +1667,6 @@ file_uncompress(char *file, char *outfile, size_t outsize)
return -1;
}
-#ifndef SMALL
static void
check_siginfo(void)
{
@@ -1817,7 +1722,6 @@ cat_fd(unsigned char * prepend, size_t count, off_t *gsizep, int fd)
*gsizep = in_tot;
return (in_tot);
}
-#endif
static void
handle_stdin(void)
@@ -1832,12 +1736,10 @@ handle_stdin(void)
FILE *in;
#endif
-#ifndef SMALL
if (fflag == 0 && lflag == 0 && isatty(STDIN_FILENO)) {
maybe_warnx("standard input is a terminal -- ignoring");
goto out;
}
-#endif
if (fstat(STDIN_FILENO, &isb) < 0) {
maybe_warn("fstat");
@@ -1866,14 +1768,12 @@ handle_stdin(void)
method = file_gettype(fourbytes);
switch (method) {
default:
-#ifndef SMALL
if (fflag == 0) {
maybe_warnx("unknown compression format");
goto out;
}
usize = cat_fd(fourbytes, sizeof fourbytes, &gsize, STDIN_FILENO);
break;
-#endif
case FT_GZIP:
usize = gz_uncompress(STDIN_FILENO, STDOUT_FILENO,
(char *)fourbytes, sizeof fourbytes, &gsize, "(stdin)");
@@ -1916,14 +1816,10 @@ handle_stdin(void)
#endif
}
-#ifndef SMALL
if (vflag && !tflag && usize != -1 && gsize != -1)
print_verbage(NULL, NULL, usize, gsize);
if (vflag && tflag)
print_test("(stdin)", usize != -1);
-#else
- (void)&usize;
-#endif
out:
infile_clear();
@@ -1933,7 +1829,6 @@ static void
handle_stdout(void)
{
off_t gsize;
-#ifndef SMALL
off_t usize;
struct stat sb;
time_t systime;
@@ -1967,12 +1862,9 @@ handle_stdout(void)
}
usize =
-#endif
gz_compress(STDIN_FILENO, STDOUT_FILENO, &gsize, "", mtime);
-#ifndef SMALL
if (vflag && !tflag && usize != -1 && gsize != -1)
print_verbage(NULL, NULL, usize, gsize);
-#endif
}
/* do what is asked for, for the path name */
@@ -2013,11 +1905,9 @@ retry:
}
if (S_ISDIR(sb.st_mode)) {
-#ifndef SMALL
if (rflag)
handle_dir(path);
else
-#endif
maybe_warnx("%s is a directory", path);
goto out;
}
@@ -2042,10 +1932,8 @@ handle_file(char *file, struct stat *sbp)
infile_set(file, sbp->st_size);
if (dflag) {
usize = file_uncompress(file, outfile, sizeof(outfile));
-#ifndef SMALL
if (vflag && tflag)
print_test(file, usize != -1);
-#endif
if (usize == -1)
return;
gsize = sbp->st_size;
@@ -2057,13 +1945,10 @@ handle_file(char *file, struct stat *sbp)
}
infile_clear();
-#ifndef SMALL
if (vflag && !tflag)
print_verbage(file, (cflag) ? NULL : outfile, usize, gsize);
-#endif
}
-#ifndef SMALL
/* this is used with -r to recursively descend directories */
static void
handle_dir(char *dir)
@@ -2099,7 +1984,6 @@ handle_dir(char *dir)
warn("error with fts_read %s", dir);
(void)fts_close(fts);
}
-#endif
/* print a ratio - size reduction as a fraction of uncompressed size */
static void
@@ -2141,7 +2025,6 @@ print_ratio(off_t in, off_t out, FILE *where)
fprintf(where, "%5s%%", buff);
}
-#ifndef SMALL
/* print compression statistics, and the new name (if there is one!) */
static void
print_verbage(const char *file, const char *nfile, off_t usize, off_t gsize)
@@ -2167,7 +2050,6 @@ print_test(const char *file, int ok)
strlen(file) < 7 ? "\t\t" : "\t", ok ? "OK" : "NOT OK");
fflush(stderr);
}
-#endif
/* print a file's info ala --list */
/* eg:
@@ -2178,17 +2060,13 @@ static void
print_list(int fd, off_t out, const char *outfile, time_t ts)
{
static int first = 1;
-#ifndef SMALL
static off_t in_tot, out_tot;
uint32_t crc = 0;
-#endif
off_t in = 0, rv;
if (first) {
-#ifndef SMALL
if (vflag)
printf("method crc date time ");
-#endif
if (qflag == 0)
printf(" compressed uncompressed "
"ratio uncompressed_name\n");
@@ -2196,12 +2074,10 @@ print_list(int fd, off_t out, const char *outfile, time_t ts)
first = 0;
/* print totals? */
-#ifndef SMALL
if (fd == -1) {
in = in_tot;
out = out_tot;
} else
-#endif
{
/* read the last 4 bytes - this is the uncompressed size */
rv = lseek(fd, (off_t)(-8), SEEK_END);
@@ -2218,14 +2094,11 @@ print_list(int fd, off_t out, const char *outfile, time_t ts)
else {
usize = le32dec(&buf[4]);
in = (off_t)usize;
-#ifndef SMALL
crc = le32dec(&buf[0]);
-#endif
}
}
}
-#ifndef SMALL
if (vflag && fd == -1)
printf(" ");
else if (vflag) {
@@ -2238,9 +2111,6 @@ print_list(int fd, off_t out, const char *outfile, time_t ts)
}
in_tot += in;
out_tot += out;
-#else
- (void)&ts; /* XXX */
-#endif
print_list_out(out, in, outfile);
}
@@ -2259,9 +2129,6 @@ usage(void)
fprintf(stderr, "%s\n", gzip_version);
fprintf(stderr,
-#ifdef SMALL
- "usage: %s [-" OPT_LIST "] [<file> [<file> ...]]\n",
-#else
"usage: %s [-123456789acdfhklLNnqrtVv] [-S .suffix] [<file> [<file> ...]]\n"
" -1 --fast fastest (worst) compression\n"
" -2 .. -8 set compression level\n"
@@ -2283,12 +2150,10 @@ usage(void)
" -t --test test compressed file\n"
" -V --version display program version\n"
" -v --verbose print extra statistics\n",
-#endif
getprogname());
exit(0);
}
-#ifndef SMALL
/* display the license information of FreeBSD gzip */
static void
display_license(void)
@@ -2298,7 +2163,6 @@ display_license(void)
fprintf(stderr, "%s\n", gzip_copyright);
exit(0);
}
-#endif
/* display the version of NetBSD gzip */
static void