pkgsrc-Changes archive
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]
CVS commit: pkgsrc/archivers/libarchive/files/libarchive
Module Name: pkgsrc
Committed By: joerg
Date: Sun Sep 22 10:03:51 UTC 2019
Modified Files:
pkgsrc/archivers/libarchive/files/libarchive:
archive_read_support_filter_gzip.c
Log Message:
Merge 64333cef68d7bcc67bef6ecf177fbeaa549b9139 from upstream to unbreak
build without zlib.
To generate a diff of this commit:
cvs rdiff -u -r1.2 -r1.3 \
pkgsrc/archivers/libarchive/files/libarchive/archive_read_support_filter_gzip.c
Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.
Modified files:
Index: pkgsrc/archivers/libarchive/files/libarchive/archive_read_support_filter_gzip.c
diff -u pkgsrc/archivers/libarchive/files/libarchive/archive_read_support_filter_gzip.c:1.2 pkgsrc/archivers/libarchive/files/libarchive/archive_read_support_filter_gzip.c:1.3
--- pkgsrc/archivers/libarchive/files/libarchive/archive_read_support_filter_gzip.c:1.2 Sun Sep 22 09:55:08 2019
+++ pkgsrc/archivers/libarchive/files/libarchive/archive_read_support_filter_gzip.c Sun Sep 22 10:03:51 2019
@@ -131,12 +131,20 @@ archive_read_support_filter_gzip(struct
*/
static ssize_t
peek_at_header(struct archive_read_filter *filter, int *pbits,
- struct private_data *state)
+#ifdef HAVE_ZLIB_H
+ struct private_data *state
+#else
+ void *state
+#endif
+ )
{
const unsigned char *p;
ssize_t avail, len;
int bits = 0;
int header_flags;
+#ifndef HAVE_ZLIB_H
+ (void)state; /* UNUSED */
+#endif
/* Start by looking at the first ten bytes of the header, which
* is all fixed layout. */
@@ -153,8 +161,10 @@ peek_at_header(struct archive_read_filte
bits += 3;
header_flags = p[3];
/* Bytes 4-7 are mod time in little endian. */
+#ifdef HAVE_ZLIB_H
if (state)
state->mtime = archive_le32dec(p + 4);
+#endif
/* Byte 8 is deflate flags. */
/* XXXX TODO: return deflate flags back to consume_header for use
in initializing the decompressor. */
@@ -171,7 +181,9 @@ peek_at_header(struct archive_read_filte
/* Null-terminated optional filename. */
if (header_flags & 8) {
+#ifdef HAVE_ZLIB_H
ssize_t file_start = len;
+#endif
do {
++len;
if (avail < len)
@@ -181,11 +193,13 @@ peek_at_header(struct archive_read_filte
return (0);
} while (p[len - 1] != 0);
+#ifdef HAVE_ZLIB_H
if (state) {
/* Reset the name in case of repeat header reads. */
free(state->name);
state->name = strdup((const char *)&p[file_start]);
}
+#endif
}
/* Null-terminated optional comment. */
@@ -236,24 +250,6 @@ gzip_bidder_bid(struct archive_read_filt
return (0);
}
-static int
-gzip_read_header(struct archive_read_filter *self, struct archive_entry *entry)
-{
- struct private_data *state;
-
- state = (struct private_data *)self->data;
-
- /* A mtime of 0 is considered invalid/missing. */
- if (state->mtime != 0)
- archive_entry_set_mtime(entry, state->mtime, 0);
-
- /* If the name is available, extract it. */
- if (state->name)
- archive_entry_set_pathname(entry, state->name);
-
- return (ARCHIVE_OK);
-}
-
#ifndef HAVE_ZLIB_H
/*
@@ -277,6 +273,24 @@ gzip_bidder_init(struct archive_read_fil
#else
+static int
+gzip_read_header(struct archive_read_filter *self, struct archive_entry *entry)
+{
+ struct private_data *state;
+
+ state = (struct private_data *)self->data;
+
+ /* A mtime of 0 is considered invalid/missing. */
+ if (state->mtime != 0)
+ archive_entry_set_mtime(entry, state->mtime, 0);
+
+ /* If the name is available, extract it. */
+ if (state->name)
+ archive_entry_set_pathname(entry, state->name);
+
+ return (ARCHIVE_OK);
+}
+
/*
* Initialize the filter object.
*/
@@ -306,7 +320,9 @@ gzip_bidder_init(struct archive_read_fil
self->read = gzip_filter_read;
self->skip = NULL; /* not supported */
self->close = gzip_filter_close;
+#ifdef HAVE_ZLIB_H
self->read_header = gzip_read_header;
+#endif
state->in_stream = 0; /* We're not actually within a stream yet. */
Home |
Main Index |
Thread Index |
Old Index