*/
#include "archive_platform.h"
+#undef HAVE_BZLIB_H
__FBSDID("$FreeBSD: src/lib/libarchive/archive_write_set_compression_bzip2.c,v 1.13 2007/12/30 04:58:21 kientzle Exp $");
#ifndef HAVE_BZLIB_H
int
-archive_write_set_compression_bzip2(struct archive *_a)
+archive_write_set_compression_bzip2(struct archive *a)
{
- /* Unsupported bzip2 compression, we don't have bzlib */
+ archive_set_error(a, ARCHIVE_ERRNO_MISC,
+ "bzip2 compression not supported on this platform");
return (ARCHIVE_FATAL);
}
#else
*/
#include "archive_platform.h"
+#undef HAVE_ZLIB_H
__FBSDID("$FreeBSD: src/lib/libarchive/archive_write_set_compression_gzip.c,v 1.16 2008/02/21 03:21:50 kientzle Exp $");
#ifndef HAVE_ZLIB_H
int
-archive_write_set_compression_gzip(struct archive *_a)
+archive_write_set_compression_gzip(struct archive *a)
{
- /* Unsupported gzip compression, we don't have zlib */
+ archive_set_error(a, ARCHIVE_ERRNO_MISC,
+ "gzip compression not supported on this platform");
return (ARCHIVE_FATAL);
}
#else
config = (struct private_config *)a->compressor.config;
- a->archive.compression_code = ARCHIVE_COMPRESSION_GZIP;
- a->archive.compression_name = "gzip";
-
if (a->client_opener != NULL) {
ret = (a->client_opener)(&a->archive, a->client_data);
if (ret != ARCHIVE_OK)
size_t buffsize, datasize;
char path[16];
size_t used1, used2;
- int i;
+ int i, r;
buffsize = 2000000;
assert(NULL != (buff = (char *)malloc(buffsize)));
*/
assert((a = archive_write_new()) != NULL);
assertA(0 == archive_write_set_format_ustar(a));
- assertA(0 == archive_write_set_compression_bzip2(a));
+ r = archive_write_set_compression_bzip2(a);
+ if (r == ARCHIVE_FATAL) {
+ skipping("bzip2 writing not supported on this platform");
+ assertEqualInt(ARCHIVE_OK, archive_write_finish(a));
+ return;
+ }
assertEqualIntA(a, ARCHIVE_OK,
archive_write_set_bytes_per_block(a, 10));
assertEqualInt(ARCHIVE_COMPRESSION_BZIP2, archive_compression(a));
*/
assert((a = archive_write_new()) != NULL);
assertA(0 == archive_write_set_format_ustar(a));
- assertA(0 == archive_write_set_compression_gzip(a));
+ r = archive_write_set_compression_gzip(a);
+ if (r == ARCHIVE_FATAL) {
+ skipping("gzip writing not supported on this platform");
+ assertEqualInt(ARCHIVE_OK, archive_write_finish(a));
+ return;
+ }
assertEqualIntA(a, ARCHIVE_OK,
archive_write_set_bytes_per_block(a, 10));
assertEqualInt(ARCHIVE_COMPRESSION_GZIP, archive_compression(a));
r = archive_read_support_compression_gzip(a);
if (r == ARCHIVE_WARN) {
skipping("Can't verify gzip writing by reading back;"
- " gzip reading not fully supported");
+ " gzip reading not fully supported on this platform");
} else {
assertEqualIntA(a, ARCHIVE_OK,
archive_read_support_compression_all(a));
assertEqualIntA(a, ARCHIVE_OK, archive_read_support_format_all(a));
r = archive_read_support_compression_gzip(a);
if (r == ARCHIVE_WARN) {
- skipping("gzip decompression not fully supported");
+ skipping("gzip reading not fully supported on this platform");
} else {
assertEqualIntA(a, ARCHIVE_OK,
archive_read_support_compression_all(a));
assertA(0 == archive_read_support_compression_all(a));
r = archive_read_support_compression_gzip(a);
if (r == ARCHIVE_WARN) {
- skipping("gzip decompression not fully supported");
+ skipping("gzip reading not fully supported on this platform");
} else {
assertEqualIntA(a, ARCHIVE_OK,
archive_read_open_memory(a, buff, used2));