summaryrefslogtreecommitdiff
path: root/lib/libarchive/archive_read_support_compression_program.c
diff options
context:
space:
mode:
authorTim Kientzle <kientzle@FreeBSD.org>2008-05-26 17:00:24 +0000
committerTim Kientzle <kientzle@FreeBSD.org>2008-05-26 17:00:24 +0000
commitfa07de5eeb36516701b3393f13acc1e1f702c634 (patch)
treed200bbdabe22d32b68a61172999be232d0c31d75 /lib/libarchive/archive_read_support_compression_program.c
parent037dab5792a349d02f4bb134d55e9402f3254c7c (diff)
Notes
Diffstat (limited to 'lib/libarchive/archive_read_support_compression_program.c')
-rw-r--r--lib/libarchive/archive_read_support_compression_program.c20
1 files changed, 20 insertions, 0 deletions
diff --git a/lib/libarchive/archive_read_support_compression_program.c b/lib/libarchive/archive_read_support_compression_program.c
index dfea568fee20..5f6cb463b21c 100644
--- a/lib/libarchive/archive_read_support_compression_program.c
+++ b/lib/libarchive/archive_read_support_compression_program.c
@@ -26,6 +26,24 @@
#include "archive_platform.h"
__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_read_support_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
@@ -313,3 +331,5 @@ archive_decompressor_program_finish(struct archive_read *a)
return (ARCHIVE_OK);
}
+
+#endif /* !defined(HAVE_PIPE) || !defined(HAVE_VFORK) || !defined(HAVE_FCNTL) */