From 86476a54f9bd352811dbacd9857efd23edeb25e3 Mon Sep 17 00:00:00 2001 From: kientzle Date: Sat, 7 Mar 2009 00:25:33 +0000 Subject: [PATCH] Merge r659 from libarchive.googlecode.com: Correctly report "none" as the compression name when no other read filter bid. Add some assertions to various tests to verify that read filters are properly setting the textual name as well as the compression code. --- lib/libarchive/archive_read.c | 6 ++---- lib/libarchive/test/test_compat_bzip2.c | 1 + lib/libarchive/test/test_compat_gzip.c | 1 + lib/libarchive/test/test_read_format_cpio_bin_Z.c | 1 + lib/libarchive/test/test_read_format_tar.c | 1 + 5 files changed, 6 insertions(+), 4 deletions(-) diff --git a/lib/libarchive/archive_read.c b/lib/libarchive/archive_read.c index 8346f6a02731..0cd805404fb6 100644 --- a/lib/libarchive/archive_read.c +++ b/lib/libarchive/archive_read.c @@ -289,12 +289,10 @@ archive_read_open2(struct archive *_a, void *client_data, filter->read = client_read_proxy; filter->skip = client_skip_proxy; filter->close = client_close_proxy; + filter->name = "none"; + filter->code = ARCHIVE_COMPRESSION_NONE; a->filter = filter; - /* In case there's no filter. */ - a->archive.compression_code = ARCHIVE_COMPRESSION_NONE; - a->archive.compression_name = "none"; - /* Build out the input pipeline. */ e = build_stream(a); if (e == ARCHIVE_OK) diff --git a/lib/libarchive/test/test_compat_bzip2.c b/lib/libarchive/test/test_compat_bzip2.c index 143d923c489f..f9d40290e842 100644 --- a/lib/libarchive/test/test_compat_bzip2.c +++ b/lib/libarchive/test/test_compat_bzip2.c @@ -69,6 +69,7 @@ compat_bzip2(const char *name) /* Verify that the format detection worked. */ assertEqualInt(archive_compression(a), ARCHIVE_COMPRESSION_BZIP2); + assertEqualString(archive_compression_name(a), "bzip2"); assertEqualInt(archive_format(a), ARCHIVE_FORMAT_TAR_USTAR); assertEqualInt(ARCHIVE_OK, archive_read_close(a)); diff --git a/lib/libarchive/test/test_compat_gzip.c b/lib/libarchive/test/test_compat_gzip.c index b1d9be3ea235..87dd23b28b9c 100644 --- a/lib/libarchive/test/test_compat_gzip.c +++ b/lib/libarchive/test/test_compat_gzip.c @@ -69,6 +69,7 @@ verify(const char *name) /* Verify that the format detection worked. */ assertEqualInt(archive_compression(a), ARCHIVE_COMPRESSION_GZIP); + assertEqualString(archive_compression_name(a), "gzip"); assertEqualInt(archive_format(a), ARCHIVE_FORMAT_TAR_USTAR); assertEqualInt(ARCHIVE_OK, archive_read_close(a)); diff --git a/lib/libarchive/test/test_read_format_cpio_bin_Z.c b/lib/libarchive/test/test_read_format_cpio_bin_Z.c index 749ff94fbe1d..097292508afb 100644 --- a/lib/libarchive/test/test_read_format_cpio_bin_Z.c +++ b/lib/libarchive/test/test_read_format_cpio_bin_Z.c @@ -46,6 +46,7 @@ DEFINE_TEST(test_read_format_cpio_bin_Z) failure("archive_compression_name(a)=\"%s\"", archive_compression_name(a)); assertEqualInt(archive_compression(a), ARCHIVE_COMPRESSION_COMPRESS); + assertEqualString(archive_compression_name(a), "compress (.Z)"); failure("archive_format_name(a)=\"%s\"", archive_format_name(a)); assertEqualInt(archive_format(a), ARCHIVE_FORMAT_CPIO_BIN_LE); diff --git a/lib/libarchive/test/test_read_format_tar.c b/lib/libarchive/test/test_read_format_tar.c index 812f90ebca24..e34da1bb1cda 100644 --- a/lib/libarchive/test/test_read_format_tar.c +++ b/lib/libarchive/test/test_read_format_tar.c @@ -71,6 +71,7 @@ static void verifyEmpty(void) assertA(0 == archive_read_open_memory(a, archiveEmpty, 512)); assertEqualIntA(a, ARCHIVE_EOF, archive_read_next_header(a, &ae)); assertEqualInt(archive_compression(a), ARCHIVE_COMPRESSION_NONE); + assertEqualString(archive_compression_name(a), "none"); failure("512 zero bytes should be recognized as a tar archive."); assertEqualInt(archive_format(a), ARCHIVE_FORMAT_TAR);