summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorcperciva <cperciva@FreeBSD.org>2007-01-05 10:48:18 +0000
committercperciva <cperciva@FreeBSD.org>2007-01-05 10:48:18 +0000
commitf583eee6e15beb870cee2e61468804ac5017cfd2 (patch)
treea8fbd9a8f7d676f70ed6b0db08db229718f48ade
parent872ebc62d77854d9b1f45266568982a51ba268a4 (diff)
downloadFreeBSD-src-f583eee6e15beb870cee2e61468804ac5017cfd2.zip
FreeBSD-src-f583eee6e15beb870cee2e61468804ac5017cfd2.tar.gz
Change the client skipper API to use off_t instead of size_t/ssize_t; but
wrap this within #if/#else/#endif so that it will only take effect once ARCHIVE_API_VERSION is increased (which should happen on HEAD some time between now and when RELENG_7 is branched).
-rw-r--r--lib/libarchive/archive.h.in5
-rw-r--r--lib/libarchive/archive_read.35
-rw-r--r--lib/libarchive/archive_read_open_fd.c9
-rw-r--r--lib/libarchive/archive_read_open_file.c9
-rw-r--r--lib/libarchive/archive_read_open_filename.c9
-rw-r--r--lib/libarchive/archive_read_open_memory.c9
6 files changed, 46 insertions, 0 deletions
diff --git a/lib/libarchive/archive.h.in b/lib/libarchive/archive.h.in
index 95a9915..dc16c58 100644
--- a/lib/libarchive/archive.h.in
+++ b/lib/libarchive/archive.h.in
@@ -112,8 +112,13 @@ struct archive_entry;
typedef ssize_t archive_read_callback(struct archive *, void *_client_data,
const void **_buffer);
/* Skips at most request bytes from archive and returns the skipped amount */
+#if ARCHIVE_API_VERSION < 2
typedef ssize_t archive_skip_callback(struct archive *, void *_client_data,
size_t request);
+#else
+typedef off_t archive_skip_callback(struct archive *, void *_client_data,
+ off_t request);
+#endif
/* Returns size actually written, zero on EOF, -1 on error. */
typedef ssize_t archive_write_callback(struct archive *, void *_client_data,
const void *_buffer, size_t _length);
diff --git a/lib/libarchive/archive_read.3 b/lib/libarchive/archive_read.3
index cde80c9..0079be0 100644
--- a/lib/libarchive/archive_read.3
+++ b/lib/libarchive/archive_read.3
@@ -321,8 +321,13 @@ The callback functions must match the following prototypes:
.Ft typedef ssize_t
.Fn archive_read_callback "struct archive *" "void *client_data" "const void **buffer"
.It
+.\" #if ARCHIVE_API_VERSION < 2
.Ft typedef int
.Fn archive_skip_callback "struct archive *" "void *client_data" "size_t request"
+.\" #else
+.\" .Ft typedef off_t
+.\" .Fn archive_skip_callback "struct archive *" "void *client_data" "off_t request"
+.\" #endif
.It
.Ft typedef int
.Fn archive_open_callback "struct archive *" "void *client_data"
diff --git a/lib/libarchive/archive_read_open_fd.c b/lib/libarchive/archive_read_open_fd.c
index a28a191..038943c 100644
--- a/lib/libarchive/archive_read_open_fd.c
+++ b/lib/libarchive/archive_read_open_fd.c
@@ -54,7 +54,11 @@ struct read_fd_data {
static int file_close(struct archive *, void *);
static int file_open(struct archive *, void *);
static ssize_t file_read(struct archive *, void *, const void **buff);
+#if ARCHIVE_API_VERSION < 2
static ssize_t file_skip(struct archive *, void *, size_t request);
+#else
+static off_t file_skip(struct archive *, void *, off_t request);
+#endif
int
archive_read_open_fd(struct archive *a, int fd, size_t block_size)
@@ -107,8 +111,13 @@ file_read(struct archive *a, void *client_data, const void **buff)
return (bytes_read);
}
+#if ARCHIVE_API_VERSION < 2
static ssize_t
file_skip(struct archive *a, void *client_data, size_t request)
+#else
+static off_t
+file_skip(struct archive *a, void *client_data, off_t request)
+#endif
{
struct read_fd_data *mine = (struct read_fd_data *)client_data;
off_t old_offset, new_offset;
diff --git a/lib/libarchive/archive_read_open_file.c b/lib/libarchive/archive_read_open_file.c
index cb18fc3..e7d514b 100644
--- a/lib/libarchive/archive_read_open_file.c
+++ b/lib/libarchive/archive_read_open_file.c
@@ -57,7 +57,11 @@ struct read_FILE_data {
static int file_close(struct archive *, void *);
static int file_open(struct archive *, void *);
static ssize_t file_read(struct archive *, void *, const void **buff);
+#if ARCHIVE_API_VERSION < 2
static ssize_t file_skip(struct archive *, void *, size_t request);
+#else
+static off_t file_skip(struct archive *, void *, off_t request);
+#endif
int
archive_read_open_FILE(struct archive *a, FILE *f)
@@ -112,8 +116,13 @@ file_read(struct archive *a, void *client_data, const void **buff)
return (bytes_read);
}
+#if ARCHIVE_API_VERSION < 2
static ssize_t
file_skip(struct archive *a, void *client_data, size_t request)
+#else
+static off_t
+file_skip(struct archive *a, void *client_data, off_t request)
+#endif
{
struct read_FILE_data *mine = (struct read_FILE_data *)client_data;
diff --git a/lib/libarchive/archive_read_open_filename.c b/lib/libarchive/archive_read_open_filename.c
index cefc286..2355f19 100644
--- a/lib/libarchive/archive_read_open_filename.c
+++ b/lib/libarchive/archive_read_open_filename.c
@@ -59,7 +59,11 @@ struct read_file_data {
static int file_close(struct archive *, void *);
static int file_open(struct archive *, void *);
static ssize_t file_read(struct archive *, void *, const void **buff);
+#if ARCHIVE_API_VERSION < 2
static ssize_t file_skip(struct archive *, void *, size_t request);
+#else
+static off_t file_skip(struct archive *, void *, off_t request);
+#endif
int
archive_read_open_file(struct archive *a, const char *filename,
@@ -151,8 +155,13 @@ file_read(struct archive *a, void *client_data, const void **buff)
return (bytes_read);
}
+#if ARCHIVE_API_VERSION < 2
static ssize_t
file_skip(struct archive *a, void *client_data, size_t request)
+#else
+static off_t
+file_skip(struct archive *a, void *client_data, off_t request)
+#endif
{
struct read_file_data *mine = (struct read_file_data *)client_data;
off_t old_offset, new_offset;
diff --git a/lib/libarchive/archive_read_open_memory.c b/lib/libarchive/archive_read_open_memory.c
index a639d85..01975cf 100644
--- a/lib/libarchive/archive_read_open_memory.c
+++ b/lib/libarchive/archive_read_open_memory.c
@@ -48,7 +48,11 @@ struct read_memory_data {
static int memory_read_close(struct archive *, void *);
static int memory_read_open(struct archive *, void *);
+#if ARCHIVE_API_VERSION < 2
static ssize_t memory_read_skip(struct archive *, void *, size_t request);
+#else
+static off_t memory_read_skip(struct archive *, void *, off_t request);
+#endif
static ssize_t memory_read(struct archive *, void *, const void **buff);
int
@@ -119,8 +123,13 @@ memory_read(struct archive *a, void *client_data, const void **buff)
* necessary in order to better exercise internal code when used
* as a test harness.
*/
+#if ARCHIVE_API_VERSION < 2
static ssize_t
memory_read_skip(struct archive *a, void *client_data, size_t skip)
+#else
+static off_t
+memory_read_skip(struct archive *a, void *client_data, off_t skip)
+#endif
{
struct read_memory_data *mine = (struct read_memory_data *)client_data;
OpenPOWER on IntegriCloud