Source-Changes-HG archive
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]
[src/netbsd-2-0]: src/usr.bin/gzip Pull up revision 1.5 (requested by mrg in ...
details: https://anonhg.NetBSD.org/src/rev/6363a1f43f21
branches: netbsd-2-0
changeset: 561230:6363a1f43f21
user: tron <tron%NetBSD.org@localhost>
date: Sun May 30 14:48:32 2004 +0000
description:
Pull up revision 1.5 (requested by mrg in ticket #420):
- fix "gzip -t" to not output anything by default. PR#25507
- fix any decompression on corrupted gzip files. PR#25508
- ask to overwrite files if we have a tty, rather than failing the
operation. PR#25509.
- clean up maybe_err()/maybe_warn(): use maybe_err() only for fatal
errors. maybe_warn() is for processing errors. this allows
"gzip -d file1.gz file2.gz" to decompress file2.gz even if file1.gz
is corrupted, etc.
- change the internal compressor/decompressor API to return "-1" on
failure, not 0. this allows for 0-sized files to be decompressed
correctly.
diffstat:
usr.bin/gzip/unbzip2.c | 30 ++++++++++++++++++------------
1 files changed, 18 insertions(+), 12 deletions(-)
diffs (79 lines):
diff -r 40e08fe5c51f -r 6363a1f43f21 usr.bin/gzip/unbzip2.c
--- a/usr.bin/gzip/unbzip2.c Sun May 30 14:48:27 2004 +0000
+++ b/usr.bin/gzip/unbzip2.c Sun May 30 14:48:32 2004 +0000
@@ -1,4 +1,4 @@
-/* $NetBSD: unbzip2.c,v 1.1.2.3 2004/04/29 04:48:40 jmc Exp $ */
+/* $NetBSD: unbzip2.c,v 1.1.2.4 2004/05/30 14:48:32 tron Exp $ */
/* This file is #included by gzip.c */
@@ -12,9 +12,9 @@
static char *inbuf, *outbuf;
if (inbuf == NULL && (inbuf = malloc(BUFLEN)) == NULL)
- maybe_err(1, "malloc");
+ maybe_err("malloc");
if (outbuf == NULL && (outbuf = malloc(BUFLEN)) == NULL)
- maybe_err(1, "malloc");
+ maybe_err("malloc");
bzs.bzalloc = NULL;
bzs.bzfree = NULL;
@@ -23,7 +23,7 @@
end_of_file = 0;
ret = BZ2_bzDecompressInit(&bzs, 0, 0);
if (ret != BZ_OK)
- maybe_errx(1, "bzip2 init");
+ maybe_errx("bzip2 init");
/* Prepend. */
bzs.avail_in = prelen;
@@ -36,7 +36,7 @@
if (bzs.avail_in == 0 && !end_of_file) {
n = read(in, inbuf, BUFLEN);
if (n < 0)
- maybe_err(1, "read");
+ maybe_err("read");
if (n == 0)
end_of_file = 1;
bzs.next_in = inbuf;
@@ -53,26 +53,32 @@
case BZ_STREAM_END:
case BZ_OK:
if (ret == BZ_OK && end_of_file)
- maybe_err(1, "read");
+ maybe_err("read");
if (!tflag) {
n = write(out, outbuf, BUFLEN - bzs.avail_out);
if (n < 0)
- maybe_err(1, "write");
+ maybe_err("write");
}
bytes_out += n;
break;
case BZ_DATA_ERROR:
- maybe_errx(1, "bzip2 data integrity error");
+ maybe_warn("bzip2 data integrity error");
+ break;
+
case BZ_DATA_ERROR_MAGIC:
- maybe_errx(1, "bzip2 magic number error");
+ maybe_warn("bzip2 magic number error");
+ break;
+
case BZ_MEM_ERROR:
- maybe_errx(1, "bzip2 out of memory");
+ maybe_warn("bzip2 out of memory");
+ break;
+
}
}
- if (BZ2_bzDecompressEnd(&bzs) != BZ_OK)
- return (0);
+ if (ret != BZ_STREAM_END || BZ2_bzDecompressEnd(&bzs) != BZ_OK)
+ return (-1);
return (bytes_out);
}
Home |
Main Index |
Thread Index |
Old Index