aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorColin Percival <cperciva@FreeBSD.org>2007-04-05 15:51:19 +0000
committerColin Percival <cperciva@FreeBSD.org>2007-04-05 15:51:19 +0000
commitceb38a3142bdcc9d2bcec97970c41453ecd0c50e (patch)
tree01fd418bd79b9b11b87128809b14ef6642cf0729
parent56c62ab69c70e0946fc856178084bae9d3c94de7 (diff)
Notes
-rw-r--r--lib/libarchive/Makefile1
-rw-r--r--lib/libarchive/archive_read.311
-rw-r--r--lib/libarchive/archive_read.c16
-rw-r--r--lib/libarchive/archive_read_data_into_buffer.c50
4 files changed, 23 insertions, 55 deletions
diff --git a/lib/libarchive/Makefile b/lib/libarchive/Makefile
index fdf4a70c54c9..c6468befab1d 100644
--- a/lib/libarchive/Makefile
+++ b/lib/libarchive/Makefile
@@ -46,7 +46,6 @@ SRCS= archive.h \
archive_check_magic.c \
archive_entry.c \
archive_read.c \
- archive_read_data_into_buffer.c \
archive_read_data_into_fd.c \
archive_read_extract.c \
archive_read_open_fd.c \
diff --git a/lib/libarchive/archive_read.3 b/lib/libarchive/archive_read.3
index 46be4d4af141..21256b2589b8 100644
--- a/lib/libarchive/archive_read.3
+++ b/lib/libarchive/archive_read.3
@@ -50,7 +50,9 @@
.Nm archive_read_data ,
.Nm archive_read_data_block ,
.Nm archive_read_data_skip ,
+.\" #if ARCHIVE_API_VERSION < 3
.Nm archive_read_data_into_buffer ,
+.\" #endif
.Nm archive_read_data_into_fd ,
.Nm archive_read_extract ,
.Nm archive_read_extract_set_progress_callback ,
@@ -103,8 +105,10 @@
.Fn archive_read_data_block "struct archive *" "const void **buff" "size_t *len" "off_t *offset"
.Ft int
.Fn archive_read_data_skip "struct archive *"
+.\" #if ARCHIVE_API_VERSION < 3
.Ft int
.Fn archive_read_data_into_buffer "struct archive *" "void *" "ssize_t len"
+.\" #endif
.Ft int
.Fn archive_read_data_into_fd "struct archive *" "int fd"
.Ft int
@@ -224,11 +228,10 @@ and internal buffer optimizations.
A convenience function that repeatedly calls
.Fn archive_read_data_block
to skip all of the data for this archive entry.
+.\" #if ARCHIVE_API_VERSION < 3
.It Fn archive_read_data_into_buffer
-A convenience function that repeatedly calls
-.Fn archive_read_data_block
-to copy the entire entry into the client-supplied buffer.
-Note that the client is responsible for sizing the buffer appropriately.
+This function is deprecated and should not be used.
+.\" #endif
.It Fn archive_read_data_into_fd
A convenience function that repeatedly calls
.Fn archive_read_data_block
diff --git a/lib/libarchive/archive_read.c b/lib/libarchive/archive_read.c
index 2c0c66192689..4a62a9949281 100644
--- a/lib/libarchive/archive_read.c
+++ b/lib/libarchive/archive_read.c
@@ -506,6 +506,22 @@ archive_read_data(struct archive *_a, void *buff, size_t s)
return (bytes_read);
}
+#if ARCHIVE_API_VERSION < 3
+/*
+ * Obsolete function provided for compatibility only. Note that the API
+ * of this function doesn't allow the caller to detect if the remaining
+ * data from the archive entry is shorter than the buffer provided, or
+ * even if an error occurred while reading data.
+ */
+int
+archive_read_data_into_buffer(struct archive *a, void *d, ssize_t len)
+{
+
+ archive_read_data(a, d, len);
+ return (ARCHIVE_OK);
+}
+#endif
+
/*
* Skip over all remaining data in this entry.
*/
diff --git a/lib/libarchive/archive_read_data_into_buffer.c b/lib/libarchive/archive_read_data_into_buffer.c
deleted file mode 100644
index 2fa0d7ad89c7..000000000000
--- a/lib/libarchive/archive_read_data_into_buffer.c
+++ /dev/null
@@ -1,50 +0,0 @@
-/*-
- * Copyright (c) 2003-2007 Tim Kientzle
- * All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- * 1. Redistributions of source code must retain the above copyright
- * notice, this list of conditions and the following disclaimer.
- * 2. Redistributions in binary form must reproduce the above copyright
- * notice, this list of conditions and the following disclaimer in the
- * documentation and/or other materials provided with the distribution.
- *
- * THIS SOFTWARE IS PROVIDED BY THE AUTHOR(S) ``AS IS'' AND ANY EXPRESS OR
- * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
- * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
- * IN NO EVENT SHALL THE AUTHOR(S) BE LIABLE FOR ANY DIRECT, INDIRECT,
- * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
- * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
- * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
- * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
- * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
- * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- */
-
-#include "archive_platform.h"
-__FBSDID("$FreeBSD$");
-
-#ifdef HAVE_STRING_H
-#include <string.h>
-#endif
-
-#include "archive.h"
-
-int
-archive_read_data_into_buffer(struct archive *a, void *d, ssize_t len)
-{
- char *dest;
- ssize_t bytes_read, total_bytes;
-
- dest = (char *)d;
- total_bytes = 0;
- bytes_read = archive_read_data(a, dest, len);
- while (bytes_read > 0) {
- total_bytes += bytes_read;
- bytes_read = archive_read_data(a, dest + total_bytes,
- len - total_bytes);
- }
- return (ARCHIVE_OK);
-}