summaryrefslogtreecommitdiffstats
path: root/lib/libarchive/archive_write_set_compression_none.c
diff options
context:
space:
mode:
authorkientzle <kientzle@FreeBSD.org>2007-05-29 01:00:21 +0000
committerkientzle <kientzle@FreeBSD.org>2007-05-29 01:00:21 +0000
commit013be331bc10706807599a452a143f4744398e9f (patch)
tree793787ab8615d768ba51341dfd934a5fb3039728 /lib/libarchive/archive_write_set_compression_none.c
parentc611006e893ac2bf962cabe02743954e3b3c3314 (diff)
downloadFreeBSD-src-013be331bc10706807599a452a143f4744398e9f.zip
FreeBSD-src-013be331bc10706807599a452a143f4744398e9f.tar.gz
libarchive 2.2.3
* "compression_program" support uses an external program * Portability: no longer uses "struct stat" as a primary data interchange structure internally * Part of the above: refactor archive_entry to separate out copy_stat() and stat() functions * More complete tests for archive_entry * Finish archive_entry_clone() * Isolate major()/minor()/makedev() in archive_entry; remove these from everywhere else. * Bug fix: properly handle decompression look-ahead at end-of-data * Bug fixes to 'ar' support * Fix memory leak in ZIP reader * Portability: better timegm() emulation in iso9660 reader * New write_disk flags to suppress auto dir creation and not overwrite newer files (for future cpio front-end) * Simplify trailing-'/' fixup when writing tar and pax * Test enhancements: fix various compiler warnings, improve portability, add lots of new tests. * Documentation: document new functions, first draft of libarchive_internals.3 MFC after: 14 days Thanks to: Joerg Sonnenberger (compression_program) Thanks to: Kai Wang (ar) Thanks to: Colin Percival (many small fixes) Thanks to: Many others who sent me various patches and problem reports.
Diffstat (limited to 'lib/libarchive/archive_write_set_compression_none.c')
-rw-r--r--lib/libarchive/archive_write_set_compression_none.c21
1 files changed, 8 insertions, 13 deletions
diff --git a/lib/libarchive/archive_write_set_compression_none.c b/lib/libarchive/archive_write_set_compression_none.c
index b5093ce..1fc8f11 100644
--- a/lib/libarchive/archive_write_set_compression_none.c
+++ b/lib/libarchive/archive_write_set_compression_none.c
@@ -58,7 +58,7 @@ archive_write_set_compression_none(struct archive *_a)
struct archive_write *a = (struct archive_write *)_a;
__archive_check_magic(&a->archive, ARCHIVE_WRITE_MAGIC,
ARCHIVE_STATE_NEW, "archive_write_set_compression_none");
- a->compression_init = &archive_compressor_none_init;
+ a->compressor.init = &archive_compressor_none_init;
return (0);
}
@@ -102,9 +102,9 @@ archive_compressor_none_init(struct archive_write *a)
state->next = state->buffer;
state->avail = state->buffer_size;
- a->compression_data = state;
- a->compression_write = archive_compressor_none_write;
- a->compression_finish = archive_compressor_none_finish;
+ a->compressor.data = state;
+ a->compressor.write = archive_compressor_none_write;
+ a->compressor.finish = archive_compressor_none_finish;
return (ARCHIVE_OK);
}
@@ -120,7 +120,7 @@ archive_compressor_none_write(struct archive_write *a, const void *vbuff,
ssize_t bytes_written;
struct archive_none *state;
- state = (struct archive_none *)a->compression_data;
+ state = (struct archive_none *)a->compressor.data;
buff = (const char *)vbuff;
if (a->client_writer == NULL) {
archive_set_error(&a->archive, ARCHIVE_ERRNO_PROGRAMMER,
@@ -194,7 +194,7 @@ archive_compressor_none_finish(struct archive_write *a)
int ret2;
struct archive_none *state;
- state = (struct archive_none *)a->compression_data;
+ state = (struct archive_none *)a->compressor.data;
ret = ret2 = ARCHIVE_OK;
if (a->client_writer == NULL) {
archive_set_error(&a->archive, ARCHIVE_ERRNO_PROGRAMMER,
@@ -233,15 +233,10 @@ archive_compressor_none_finish(struct archive_write *a)
ret = ARCHIVE_OK;
}
}
-
- /* Close the output */
- if (a->client_closer != NULL)
- ret2 = (a->client_closer)(&a->archive, a->client_data);
-
if (state->buffer)
free(state->buffer);
free(state);
- a->compression_data = NULL;
+ a->compressor.data = NULL;
- return (ret != ARCHIVE_OK ? ret : ret2);
+ return (ret);
}
OpenPOWER on IntegriCloud