diff options
author | mm <mm@FreeBSD.org> | 2012-02-08 12:53:14 +0000 |
---|---|---|
committer | mm <mm@FreeBSD.org> | 2012-02-08 12:53:14 +0000 |
commit | 2f6e434fe4c652da1969314fa57ae21936cec85d (patch) | |
tree | 28a8e9d81eb7ed48e286dfc384e2e0ffccc238b5 /libarchive/archive_virtual.c | |
parent | 5ae64fdbb237eec1fbe1362330190b974b1a1061 (diff) | |
download | FreeBSD-src-2f6e434fe4c652da1969314fa57ae21936cec85d.zip FreeBSD-src-2f6e434fe4c652da1969314fa57ae21936cec85d.tar.gz |
Update vendor libarchive dist to new "release" branch (post 3.0.3)
Git branch: release
Git commit: 9af87742342aa4f37a22ec12c4cc1c82e00ffa2f
Obtained from: https://github.com/libarchive/libarchive.git
Diffstat (limited to 'libarchive/archive_virtual.c')
-rw-r--r-- | libarchive/archive_virtual.c | 59 |
1 files changed, 56 insertions, 3 deletions
diff --git a/libarchive/archive_virtual.c b/libarchive/archive_virtual.c index 8368862..83089f2 100644 --- a/libarchive/archive_virtual.c +++ b/libarchive/archive_virtual.c @@ -31,6 +31,30 @@ __FBSDID("$FreeBSD: head/lib/libarchive/archive_virtual.c 201098 2009-12-28 02:5 #include "archive_private.h" int +archive_filter_code(struct archive *a, int n) +{ + return ((a->vtable->archive_filter_code)(a, n)); +} + +int +archive_filter_count(struct archive *a) +{ + return ((a->vtable->archive_filter_count)(a)); +} + +const char * +archive_filter_name(struct archive *a, int n) +{ + return ((a->vtable->archive_filter_name)(a, n)); +} + +int64_t +archive_filter_bytes(struct archive *a, int n) +{ + return ((a->vtable->archive_filter_bytes)(a, n)); +} + +int archive_write_close(struct archive *a) { return ((a->vtable->archive_close)(a)); @@ -45,6 +69,8 @@ archive_read_close(struct archive *a) int archive_write_free(struct archive *a) { + if (a == NULL) + return (ARCHIVE_OK); return ((a->vtable->archive_free)(a)); } @@ -53,13 +79,15 @@ archive_write_free(struct archive *a) int archive_write_finish(struct archive *a) { - return ((a->vtable->archive_free)(a)); + return archive_write_free(a); } #endif int archive_read_free(struct archive *a) { + if (a == NULL) + return (ARCHIVE_OK); return ((a->vtable->archive_free)(a)); } @@ -68,7 +96,7 @@ archive_read_free(struct archive *a) int archive_read_finish(struct archive *a) { - return ((a->vtable->archive_free)(a)); + return archive_read_free(a); } #endif @@ -92,7 +120,32 @@ archive_write_data(struct archive *a, const void *buff, size_t s) } ssize_t -archive_write_data_block(struct archive *a, const void *buff, size_t s, off_t o) +archive_write_data_block(struct archive *a, const void *buff, size_t s, int64_t o) { + if (a->vtable->archive_write_data_block == NULL) { + archive_set_error(a, ARCHIVE_ERRNO_MISC, + "archive_write_data_block not supported"); + a->state = ARCHIVE_STATE_FATAL; + return (ARCHIVE_FATAL); + } return ((a->vtable->archive_write_data_block)(a, buff, s, o)); } + +int +archive_read_next_header(struct archive *a, struct archive_entry **entry) +{ + return ((a->vtable->archive_read_next_header)(a, entry)); +} + +int +archive_read_next_header2(struct archive *a, struct archive_entry *entry) +{ + return ((a->vtable->archive_read_next_header2)(a, entry)); +} + +int +archive_read_data_block(struct archive *a, + const void **buff, size_t *s, int64_t *o) +{ + return ((a->vtable->archive_read_data_block)(a, buff, s, o)); +} |