diff options
author | LibArchive Upstream <libarchive-discuss@googlegroups.com> | 2013-02-09 17:17:57 (GMT) |
---|---|---|
committer | Brad King <brad.king@kitware.com> | 2013-07-26 19:45:29 (GMT) |
commit | 35df7c8ba8854e97bd6994c4d1143f57535ed6f2 (patch) | |
tree | 53b9fc3871ba5fc74dcea98173cd05311704ddfc /libarchive/archive_write_set_options.c | |
parent | 4f4fe6e50bb3dbe59f9bc3cc848cbd07dead324d (diff) | |
download | CMake-35df7c8ba8854e97bd6994c4d1143f57535ed6f2.zip CMake-35df7c8ba8854e97bd6994c4d1143f57535ed6f2.tar.gz CMake-35df7c8ba8854e97bd6994c4d1143f57535ed6f2.tar.bz2 |
libarchive 3.1.2 (reduced)
Extract upstream libarchive using the following shell code.
url=git://github.com/libarchive/libarchive.git &&
v=3.1.2 &&
r=19f23e19 &&
paths="
CMakeLists.txt
COPYING
CTestConfig.cmake
build/cmake
build/pkgconfig
build/utils
build/version
libarchive/*.*
" &&
mkdir libarchive-$v-g$r-reduced &&
git clone $url libarchive-git &&
date=$(cd libarchive-git && git log -n 1 --format='%cd' $r) &&
(cd libarchive-git && git archive --format=tar $r -- $paths) |
(cd libarchive-$v-g$r-reduced && tar xv) &&
fromdos libarchive-$v-g$r-reduced/build/cmake/Find*.cmake &&
echo "g$r date: $date"
Diffstat (limited to 'libarchive/archive_write_set_options.c')
-rw-r--r-- | libarchive/archive_write_set_options.c | 14 |
1 files changed, 10 insertions, 4 deletions
diff --git a/libarchive/archive_write_set_options.c b/libarchive/archive_write_set_options.c index a8c2d23..962309a 100644 --- a/libarchive/archive_write_set_options.c +++ b/libarchive/archive_write_set_options.c @@ -78,11 +78,13 @@ archive_set_format_option(struct archive *_a, const char *m, const char *o, struct archive_write *a = (struct archive_write *)_a; if (a->format_name == NULL) - return (ARCHIVE_FAILED); + return (m == NULL)?ARCHIVE_FAILED:ARCHIVE_WARN - 1; + /* If the format name didn't match, return a special code for + * _archive_set_option[s]. */ if (m != NULL && strcmp(m, a->format_name) != 0) - return (ARCHIVE_FAILED); + return (ARCHIVE_WARN - 1); if (a->format_options == NULL) - return (ARCHIVE_FAILED); + return (ARCHIVE_WARN); return a->format_options(a, o, v); } @@ -92,7 +94,7 @@ archive_set_filter_option(struct archive *_a, const char *m, const char *o, { struct archive_write *a = (struct archive_write *)_a; struct archive_write_filter *filter; - int r, rv = ARCHIVE_FAILED; + int r, rv = ARCHIVE_WARN; for (filter = a->filter_first; filter != NULL; filter = filter->next_filter) { if (filter->options == NULL) @@ -111,6 +113,10 @@ archive_set_filter_option(struct archive *_a, const char *m, const char *o, if (r == ARCHIVE_OK) rv = ARCHIVE_OK; } + /* If the filter name didn't match, return a special code for + * _archive_set_option[s]. */ + if (rv == ARCHIVE_WARN && m != NULL) + rv = ARCHIVE_WARN - 1; return (rv); } |