From: Tim Kientzle Date: Mon, 31 May 2010 18:37:17 +0000 (-0400) Subject: For internal APIs, we don't need to worry about the API version. X-Git-Tag: v3.0.0a~989 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=0187c5dd12cb9723aaa04819e389aeb52fcb6745;p=thirdparty%2Flibarchive.git For internal APIs, we don't need to worry about the API version. SVN-Revision: 2432 --- diff --git a/libarchive/archive_read.c b/libarchive/archive_read.c index dc8d31b0c..6b2f04c21 100644 --- a/libarchive/archive_read.c +++ b/libarchive/archive_read.c @@ -67,6 +67,10 @@ static int _archive_filter_count(struct archive *); static int _archive_read_close(struct archive *); static int _archive_read_free(struct archive *); static int64_t advance_file_pointer(struct archive_read_filter *, int64_t); +#if ARCHIVE_VERSION_NUMBER < 3000000 +static int archive_read_data_block64(struct archive *, + const void **, size_t *, int64_t *); +#endif static struct archive_vtable * archive_read_vtable(void) @@ -596,8 +600,13 @@ archive_read_data(struct archive *_a, void *buff, size_t s) while (s > 0) { if (a->read_data_remaining == 0) { read_buf = a->read_data_block; +#if ARCHIVE_VERSION_NUMBER < 3000000 + r = archive_read_data_block64(&a->archive, &read_buf, + &a->read_data_remaining, &a->read_data_offset); +#else r = archive_read_data_block(&a->archive, &read_buf, &a->read_data_remaining, &a->read_data_offset); +#endif a->read_data_block = read_buf; if (r == ARCHIVE_EOF) return (bytes_read); @@ -715,8 +724,21 @@ archive_read_data_skip(struct archive *_a) int archive_read_data_block(struct archive *_a, const void **buff, size_t *size, off_t *offset) +{ + int r; + int64_t offset64; + r = archive_read_data_block64(_a, buff, size, &offset64); + *offset = (off_t)offset64; + return (r); +} +#endif + +#if ARCHIVE_VERSION_NUMBER < 3000000 +static int +archive_read_data_block64(struct archive *_a, + const void **buff, size_t *size, int64_t *offset) #else -int +static int archive_read_data_block(struct archive *_a, const void **buff, size_t *size, int64_t *offset) #endif @@ -734,6 +756,7 @@ archive_read_data_block(struct archive *_a, return (a->format->read_data)(a, buff, size, offset); } +#endif static int close_filters(struct archive_read *a) @@ -765,7 +788,7 @@ free_filters(struct archive_read *a) } } -/* +/* * return the count of # of filters in use */ static int @@ -915,11 +938,7 @@ __archive_read_register_format(struct archive_read *a, int (*bid)(struct archive_read *), int (*options)(struct archive_read *, const char *, const char *), int (*read_header)(struct archive_read *, struct archive_entry *), -#if ARCHIVE_VERSION_NUMBER < 3000000 - int (*read_data)(struct archive_read *, const void **, size_t *, off_t *), -#else int (*read_data)(struct archive_read *, const void **, size_t *, int64_t *), -#endif int (*read_data_skip)(struct archive_read *), int (*cleanup)(struct archive_read *)) { diff --git a/libarchive/archive_read_data_into_fd.c b/libarchive/archive_read_data_into_fd.c index afe55a773..cfb63220c 100644 --- a/libarchive/archive_read_data_into_fd.c +++ b/libarchive/archive_read_data_into_fd.c @@ -57,7 +57,7 @@ archive_read_data_into_fd(struct archive *a, int fd) #else int64_t offset; #endif - off_t output_offset; + int64_t output_offset; archive_check_magic(a, ARCHIVE_READ_MAGIC, ARCHIVE_STATE_DATA, "archive_read_data_into_fd"); diff --git a/libarchive/archive_read_private.h b/libarchive/archive_read_private.h index d9448d773..cf25004a4 100644 --- a/libarchive/archive_read_private.h +++ b/libarchive/archive_read_private.h @@ -135,12 +135,8 @@ struct archive_read { * data to client buffers, filling gaps with zero bytes. */ const char *read_data_block; -#if ARCHIVE_VERSION_NUMBER < 3000000 - off_t read_data_offset; -#else int64_t read_data_offset; -#endif - off_t read_data_output_offset; + int64_t read_data_output_offset; size_t read_data_remaining; /* Callbacks to open/read/write/close client archive stream. */ @@ -153,7 +149,7 @@ struct archive_read { struct archive_read_filter *filter; /* File offset of beginning of most recently-read header. */ - off_t header_position; + int64_t header_position; /* * Format detection is mostly the same as compression @@ -170,11 +166,7 @@ struct archive_read { int (*options)(struct archive_read *, const char *key, const char *value); int (*read_header)(struct archive_read *, struct archive_entry *); -#if ARCHIVE_VERSION_NUMBER < 3000000 - int (*read_data)(struct archive_read *, const void **, size_t *, off_t *); -#else int (*read_data)(struct archive_read *, const void **, size_t *, int64_t *); -#endif int (*read_data_skip)(struct archive_read *); int (*cleanup)(struct archive_read *); } formats[9]; @@ -193,11 +185,7 @@ int __archive_read_register_format(struct archive_read *a, int (*bid)(struct archive_read *), int (*options)(struct archive_read *, const char *, const char *), int (*read_header)(struct archive_read *, struct archive_entry *), -#if ARCHIVE_VERSION_NUMBER < 3000000 - int (*read_data)(struct archive_read *, const void **, size_t *, off_t *), -#else int (*read_data)(struct archive_read *, const void **, size_t *, int64_t *), -#endif int (*read_data_skip)(struct archive_read *), int (*cleanup)(struct archive_read *)); diff --git a/libarchive/archive_read_support_format_ar.c b/libarchive/archive_read_support_format_ar.c index dcee9ba47..5e7b13629 100644 --- a/libarchive/archive_read_support_format_ar.c +++ b/libarchive/archive_read_support_format_ar.c @@ -78,13 +78,8 @@ struct ar { static int archive_read_format_ar_bid(struct archive_read *a); static int archive_read_format_ar_cleanup(struct archive_read *a); -#if ARCHIVE_VERSION_NUMBER < 3000000 -static int archive_read_format_ar_read_data(struct archive_read *a, - const void **buff, size_t *size, off_t *offset); -#else static int archive_read_format_ar_read_data(struct archive_read *a, const void **buff, size_t *size, int64_t *offset); -#endif static int archive_read_format_ar_skip(struct archive_read *a); static int archive_read_format_ar_read_header(struct archive_read *a, struct archive_entry *e); @@ -442,15 +437,9 @@ ar_parse_common_header(struct ar *ar, struct archive_entry *entry, return (ARCHIVE_OK); } -#if ARCHIVE_VERSION_NUMBER < 3000000 -static int -archive_read_format_ar_read_data(struct archive_read *a, - const void **buff, size_t *size, off_t *offset) -#else static int archive_read_format_ar_read_data(struct archive_read *a, const void **buff, size_t *size, int64_t *offset) -#endif { ssize_t bytes_read; struct ar *ar; diff --git a/libarchive/archive_read_support_format_cpio.c b/libarchive/archive_read_support_format_cpio.c index d3bd0275e..d3c1ee58b 100644 --- a/libarchive/archive_read_support_format_cpio.c +++ b/libarchive/archive_read_support_format_cpio.c @@ -142,13 +142,8 @@ static int64_t atol16(const char *, unsigned); static int64_t atol8(const char *, unsigned); static int archive_read_format_cpio_bid(struct archive_read *); static int archive_read_format_cpio_cleanup(struct archive_read *); -#if ARCHIVE_VERSION_NUMBER < 3000000 -static int archive_read_format_cpio_read_data(struct archive_read *, - const void **, size_t *, off_t *); -#else static int archive_read_format_cpio_read_data(struct archive_read *, const void **, size_t *, int64_t *); -#endif static int archive_read_format_cpio_read_header(struct archive_read *, struct archive_entry *); static int be4(const unsigned char *); @@ -322,15 +317,9 @@ archive_read_format_cpio_read_header(struct archive_read *a, return (r); } -#if ARCHIVE_VERSION_NUMBER < 3000000 -static int -archive_read_format_cpio_read_data(struct archive_read *a, - const void **buff, size_t *size, off_t *offset) -#else static int archive_read_format_cpio_read_data(struct archive_read *a, const void **buff, size_t *size, int64_t *offset) -#endif { ssize_t bytes_read; struct cpio *cpio; diff --git a/libarchive/archive_read_support_format_empty.c b/libarchive/archive_read_support_format_empty.c index 73f51b694..5186b1177 100644 --- a/libarchive/archive_read_support_format_empty.c +++ b/libarchive/archive_read_support_format_empty.c @@ -32,13 +32,8 @@ __FBSDID("$FreeBSD: head/lib/libarchive/archive_read_support_format_empty.c 1915 #include "archive_read_private.h" static int archive_read_format_empty_bid(struct archive_read *); -#if ARCHIVE_VERSION_NUMBER < 3000000 -static int archive_read_format_empty_read_data(struct archive_read *, - const void **, size_t *, off_t *); -#else static int archive_read_format_empty_read_data(struct archive_read *, const void **, size_t *, int64_t *); -#endif static int archive_read_format_empty_read_header(struct archive_read *, struct archive_entry *); int @@ -88,15 +83,9 @@ archive_read_format_empty_read_header(struct archive_read *a, return (ARCHIVE_EOF); } -#if ARCHIVE_VERSION_NUMBER < 3000000 -static int -archive_read_format_empty_read_data(struct archive_read *a, - const void **buff, size_t *size, off_t *offset) -#else static int archive_read_format_empty_read_data(struct archive_read *a, const void **buff, size_t *size, int64_t *offset) -#endif { (void)a; /* UNUSED */ (void)buff; /* UNUSED */ diff --git a/libarchive/archive_read_support_format_iso9660.c b/libarchive/archive_read_support_format_iso9660.c index 9ba687af0..84bdbb22e 100644 --- a/libarchive/archive_read_support_format_iso9660.c +++ b/libarchive/archive_read_support_format_iso9660.c @@ -358,13 +358,8 @@ static int archive_read_format_iso9660_bid(struct archive_read *); static int archive_read_format_iso9660_options(struct archive_read *, const char *, const char *); static int archive_read_format_iso9660_cleanup(struct archive_read *); -#if ARCHIVE_VERSION_NUMBER < 3000000 -static int archive_read_format_iso9660_read_data(struct archive_read *, - const void **, size_t *, off_t *); -#else static int archive_read_format_iso9660_read_data(struct archive_read *, const void **, size_t *, int64_t *); -#endif static int archive_read_format_iso9660_read_data_skip(struct archive_read *); static int archive_read_format_iso9660_read_header(struct archive_read *, struct archive_entry *); @@ -1343,15 +1338,9 @@ archive_read_format_iso9660_read_data_skip(struct archive_read *a) #ifdef HAVE_ZLIB_H -#if ARCHIVE_VERSION_NUMBER < 3000000 -static int -zisofs_read_data(struct archive_read *a, - const void **buff, size_t *size, off_t *offset) -#else static int zisofs_read_data(struct archive_read *a, const void **buff, size_t *size, int64_t *offset) -#endif { struct iso9660 *iso9660; struct zisofs *zisofs; @@ -1567,15 +1556,9 @@ next_data: #else /* HAVE_ZLIB_H */ -#if ARCHIVE_VERSION_NUMBER < 3000000 -static int -zisofs_read_data(struct archive_read *a, - const void **buff, size_t *size, off_t *offset) -#else static int zisofs_read_data(struct archive_read *a, const void **buff, size_t *size, int64_t *offset) -#endif { (void)buff;/* UNUSED */ @@ -1588,15 +1571,9 @@ zisofs_read_data(struct archive_read *a, #endif /* HAVE_ZLIB_H */ -#if ARCHIVE_VERSION_NUMBER < 3000000 -static int -archive_read_format_iso9660_read_data(struct archive_read *a, - const void **buff, size_t *size, off_t *offset) -#else static int archive_read_format_iso9660_read_data(struct archive_read *a, const void **buff, size_t *size, int64_t *offset) -#endif { ssize_t bytes_read; struct iso9660 *iso9660; diff --git a/libarchive/archive_read_support_format_mtree.c b/libarchive/archive_read_support_format_mtree.c index f938c07b8..5e687d331 100644 --- a/libarchive/archive_read_support_format_mtree.c +++ b/libarchive/archive_read_support_format_mtree.c @@ -110,13 +110,8 @@ static int parse_line(struct archive_read *, struct archive_entry *, struct mtree *, struct mtree_entry *, int *); static int parse_keyword(struct archive_read *, struct mtree *, struct archive_entry *, struct mtree_option *, int *); -#if ARCHIVE_VERSION_NUMBER < 3000000 -static int read_data(struct archive_read *a, - const void **buff, size_t *size, off_t *offset); -#else static int read_data(struct archive_read *a, const void **buff, size_t *size, int64_t *offset); -#endif static ssize_t readline(struct archive_read *, struct mtree *, char **, ssize_t); static int skip(struct archive_read *a); static int read_header(struct archive_read *, @@ -976,13 +971,8 @@ parse_keyword(struct archive_read *a, struct mtree *mtree, return (ARCHIVE_OK); } -#if ARCHIVE_VERSION_NUMBER < 3000000 -static int -read_data(struct archive_read *a, const void **buff, size_t *size, off_t *offset) -#else static int read_data(struct archive_read *a, const void **buff, size_t *size, int64_t *offset) -#endif { size_t bytes_to_read; ssize_t bytes_read; diff --git a/libarchive/archive_read_support_format_raw.c b/libarchive/archive_read_support_format_raw.c index 3cbb8f5d9..65d559fa2 100644 --- a/libarchive/archive_read_support_format_raw.c +++ b/libarchive/archive_read_support_format_raw.c @@ -45,13 +45,8 @@ struct raw_info { static int archive_read_format_raw_bid(struct archive_read *); static int archive_read_format_raw_cleanup(struct archive_read *); -#if ARCHIVE_VERSION_NUMBER < 3000000 -static int archive_read_format_raw_read_data(struct archive_read *, - const void **, size_t *, off_t *); -#else static int archive_read_format_raw_read_data(struct archive_read *, const void **, size_t *, int64_t *); -#endif static int archive_read_format_raw_read_data_skip(struct archive_read *); static int archive_read_format_raw_read_header(struct archive_read *, struct archive_entry *); @@ -125,15 +120,9 @@ archive_read_format_raw_read_header(struct archive_read *a, return (ARCHIVE_OK); } -#if ARCHIVE_VERSION_NUMBER < 3000000 -static int -archive_read_format_raw_read_data(struct archive_read *a, - const void **buff, size_t *size, off_t *offset) -#else static int archive_read_format_raw_read_data(struct archive_read *a, const void **buff, size_t *size, int64_t *offset) -#endif { struct raw_info *info; ssize_t avail; diff --git a/libarchive/archive_read_support_format_tar.c b/libarchive/archive_read_support_format_tar.c index 557439d09..f11fe19df 100644 --- a/libarchive/archive_read_support_format_tar.c +++ b/libarchive/archive_read_support_format_tar.c @@ -207,13 +207,8 @@ static int header_gnutar(struct archive_read *, struct tar *, struct archive_entry *, const void *h); static int archive_read_format_tar_bid(struct archive_read *); static int archive_read_format_tar_cleanup(struct archive_read *); -#if ARCHIVE_VERSION_NUMBER < 3000000 -static int archive_read_format_tar_read_data(struct archive_read *a, - const void **buff, size_t *size, off_t *offset); -#else static int archive_read_format_tar_read_data(struct archive_read *a, const void **buff, size_t *size, int64_t *offset); -#endif static int archive_read_format_tar_skip(struct archive_read *a); static int archive_read_format_tar_read_header(struct archive_read *, struct archive_entry *); @@ -455,15 +450,9 @@ archive_read_format_tar_read_header(struct archive_read *a, return (r); } -#if ARCHIVE_VERSION_NUMBER < 3000000 -static int -archive_read_format_tar_read_data(struct archive_read *a, - const void **buff, size_t *size, off_t *offset) -#else static int archive_read_format_tar_read_data(struct archive_read *a, const void **buff, size_t *size, int64_t *offset) -#endif { ssize_t bytes_read; struct tar *tar; diff --git a/libarchive/archive_read_support_format_xar.c b/libarchive/archive_read_support_format_xar.c index 669517d9f..32c6045ff 100644 --- a/libarchive/archive_read_support_format_xar.c +++ b/libarchive/archive_read_support_format_xar.c @@ -371,13 +371,8 @@ struct xmlattr_list { static int xar_bid(struct archive_read *); static int xar_read_header(struct archive_read *, struct archive_entry *); -#if ARCHIVE_VERSION_NUMBER < 3000000 -static int xar_read_data(struct archive_read *, - const void **, size_t *, off_t *); -#else static int xar_read_data(struct archive_read *, const void **, size_t *, int64_t *); -#endif static int xar_read_data_skip(struct archive_read *); static int xar_cleanup(struct archive_read *); static int move_reading_point(struct archive_read *, uint64_t); @@ -761,15 +756,9 @@ xar_read_header(struct archive_read *a, struct archive_entry *entry) return (r); } -#if ARCHIVE_VERSION_NUMBER < 3000000 -static int -xar_read_data(struct archive_read *a, - const void **buff, size_t *size, off_t *offset) -#else static int xar_read_data(struct archive_read *a, const void **buff, size_t *size, int64_t *offset) -#endif { struct xar *xar; size_t used; diff --git a/libarchive/archive_read_support_format_zip.c b/libarchive/archive_read_support_format_zip.c index a29407627..f43f3070d 100644 --- a/libarchive/archive_read_support_format_zip.c +++ b/libarchive/archive_read_support_format_zip.c @@ -123,27 +123,15 @@ static const char *compression_names[] = { static int archive_read_format_zip_bid(struct archive_read *); static int archive_read_format_zip_cleanup(struct archive_read *); -#if ARCHIVE_VERSION_NUMBER < 3000000 -static int archive_read_format_zip_read_data(struct archive_read *, - const void **, size_t *, off_t *); -#else static int archive_read_format_zip_read_data(struct archive_read *, const void **, size_t *, int64_t *); -#endif static int archive_read_format_zip_read_data_skip(struct archive_read *a); static int archive_read_format_zip_read_header(struct archive_read *, struct archive_entry *); -#if ARCHIVE_VERSION_NUMBER < 3000000 -static int zip_read_data_deflate(struct archive_read *a, const void **buff, - size_t *size, off_t *offset); -static int zip_read_data_none(struct archive_read *a, const void **buff, - size_t *size, off_t *offset); -#else static int zip_read_data_deflate(struct archive_read *a, const void **buff, size_t *size, int64_t *offset); static int zip_read_data_none(struct archive_read *a, const void **buff, size_t *size, int64_t *offset); -#endif static int zip_read_file_header(struct archive_read *a, struct archive_entry *entry, struct zip *zip); static time_t zip_time(const char *); @@ -501,15 +489,9 @@ zip_time(const char *p) return mktime(&ts); } -#if ARCHIVE_VERSION_NUMBER < 3000000 -static int -archive_read_format_zip_read_data(struct archive_read *a, - const void **buff, size_t *size, off_t *offset) -#else static int archive_read_format_zip_read_data(struct archive_read *a, const void **buff, size_t *size, int64_t *offset) -#endif { int r; struct zip *zip; @@ -619,15 +601,9 @@ archive_read_format_zip_read_data(struct archive_read *a, * Returns ARCHIVE_OK if successful, ARCHIVE_FATAL otherwise, sets * zip->end_of_entry if it consumes all of the data. */ -#if ARCHIVE_VERSION_NUMBER < 3000000 -static int -zip_read_data_none(struct archive_read *a, const void **buff, - size_t *size, off_t *offset) -#else static int zip_read_data_none(struct archive_read *a, const void **buff, size_t *size, int64_t *offset) -#endif { struct zip *zip; ssize_t bytes_avail; @@ -666,15 +642,9 @@ zip_read_data_none(struct archive_read *a, const void **buff, } #ifdef HAVE_ZLIB_H -#if ARCHIVE_VERSION_NUMBER < 3000000 -static int -zip_read_data_deflate(struct archive_read *a, const void **buff, - size_t *size, off_t *offset) -#else static int zip_read_data_deflate(struct archive_read *a, const void **buff, size_t *size, int64_t *offset) -#endif { struct zip *zip; ssize_t bytes_avail; @@ -770,15 +740,9 @@ zip_read_data_deflate(struct archive_read *a, const void **buff, return (ARCHIVE_OK); } #else -#if ARCHIVE_VERSION_NUMBER < 3000000 -static int -zip_read_data_deflate(struct archive_read *a, const void **buff, - size_t *size, off_t *offset) -#else static int zip_read_data_deflate(struct archive_read *a, const void **buff, size_t *size, int64_t *offset) -#endif { *buff = NULL; *size = 0; @@ -808,11 +772,7 @@ archive_read_format_zip_read_data_skip(struct archive_read *a) */ if (zip->flags & ZIP_LENGTH_AT_END) { size_t size; -#if ARCHIVE_VERSION_NUMBER < 3000000 - off_t offset; -#else int64_t offset; -#endif int r; do { r = archive_read_format_zip_read_data(a, &buff, diff --git a/libarchive/archive_windows.h b/libarchive/archive_windows.h index 90b138ca1..1b878c2a9 100644 --- a/libarchive/archive_windows.h +++ b/libarchive/archive_windows.h @@ -320,7 +320,7 @@ extern int __la_chdir(const char *path); extern int __la_chmod(const char *path, mode_t mode); extern int __la_fcntl(int fd, int cmd, int val); extern int __la_fstat(int fd, struct stat *st); -extern int __la_ftruncate(int fd, off_t length); +extern int __la_ftruncate(int fd, int64_t length); extern int __la_futimes(int fd, const struct __timeval *times); extern int __la_link(const char *src, const char *dst); extern __int64 __la_lseek(int fd, __int64 offset, int whence); diff --git a/libarchive/archive_write_set_format_zip.c b/libarchive/archive_write_set_format_zip.c index 1090e9b8d..0fda2a032 100644 --- a/libarchive/archive_write_set_format_zip.c +++ b/libarchive/archive_write_set_format_zip.c @@ -164,9 +164,9 @@ struct zip_extra_data_central { struct zip_file_header_link { struct zip_file_header_link *next; struct archive_entry *entry; - off_t offset; + int64_t offset; unsigned long crc32; - off_t compressed_size; + int64_t compressed_size; enum compression compression; }; @@ -499,7 +499,7 @@ archive_write_zip_close(struct archive_write *a) struct zip_file_header h; struct zip_central_directory_end end; struct zip_extra_data_central e; - off_t offset_start, offset_end; + int64_t offset_start, offset_end; int entries; int ret;