summaryrefslogtreecommitdiffstats
path: root/lib/libarchive/archive_write_set_compression_program.c
diff options
context:
space:
mode:
authorkientzle <kientzle@FreeBSD.org>2008-05-26 17:00:24 +0000
committerkientzle <kientzle@FreeBSD.org>2008-05-26 17:00:24 +0000
commita24d28f8e3d3892010c91baad77e2178c6a16ba2 (patch)
treed200bbdabe22d32b68a61172999be232d0c31d75 /lib/libarchive/archive_write_set_compression_program.c
parent268a4c430f25bc479b5e1e097f51394aa0f1fffb (diff)
downloadFreeBSD-src-a24d28f8e3d3892010c91baad77e2178c6a16ba2.zip
FreeBSD-src-a24d28f8e3d3892010c91baad77e2178c6a16ba2.tar.gz
MFp4: libarchive 2.5.4b. (Still 'b' until I get a bit more
feedback, but the 2.5 branch is shaping up nicely.) In addition to many small bug fixes and code improvements: * Another iteration of versioning; I think I've got it right now. * Portability: A lot of progress on Windows support (though I'm not committing all of the Windows support files to FreeBSD CVS) * Explicit tracking of MBS, WCS, and UTF-8 versions of strings in archive_entry; the archive_entry routines now correctly return NULL only when something is unset, setting NULL properly clears string values. Most charset conversions have been pushed down to archive_string. * Better handling of charset conversion failure when writing or reading UTF-8 headers in pax archives * archive_entry_linkify() provides multiple strategies for hardlink matching to suit different format expectations * More accurate bzip2 format detection * Joerg Sonnenberger's extensive improvements to mtree support * Rough support for self-extracting ZIP archives. Not an ideal approach, but it works for the archives I've tried. * New "sparsify" option in archive_write_disk converts blocks of nulls into seeks. * Better default behavior for the test harness; it now reports all failures by default instead of coredumping at the first one.
Diffstat (limited to 'lib/libarchive/archive_write_set_compression_program.c')
-rw-r--r--lib/libarchive/archive_write_set_compression_program.c19
1 files changed, 19 insertions, 0 deletions
diff --git a/lib/libarchive/archive_write_set_compression_program.c b/lib/libarchive/archive_write_set_compression_program.c
index 4f28a0f..b910ef6 100644
--- a/lib/libarchive/archive_write_set_compression_program.c
+++ b/lib/libarchive/archive_write_set_compression_program.c
@@ -27,6 +27,23 @@
__FBSDID("$FreeBSD$");
+/* This capability is only available on POSIX systems. */
+#if !defined(HAVE_PIPE) || !defined(HAVE_VFORK) || !defined(HAVE_FCNTL)
+
+/*
+ * On non-Posix systems, allow the program to build, but choke if
+ * this function is actually invoked.
+ */
+int
+archive_write_set_compression_program(struct archive *_a, const char *cmd)
+{
+ archive_set_error(_a, -1,
+ "External compression programs not supported on this platform");
+ return (ARCHIVE_FATAL);
+}
+
+#else
+
#ifdef HAVE_SYS_WAIT_H
# include <sys/wait.h>
#endif
@@ -320,3 +337,5 @@ cleanup:
free(state);
return (ret);
}
+
+#endif /* !defined(HAVE_PIPE) || !defined(HAVE_VFORK) || !defined(HAVE_FCNTL) */
OpenPOWER on IntegriCloud