Add 'unchange_all' command to modify, and adapt a test case to use it. Remove a now unnecessary test program. Adapt hgignore for some other removed files/programs; add man/*.man.
diff --git a/regress/CMakeLists.txt b/regress/CMakeLists.txt index 4bbc622..95b334c 100644 --- a/regress/CMakeLists.txt +++ b/regress/CMakeLists.txt
@@ -14,7 +14,6 @@ # fread name_locate set_comment_all - set_comment_revert ) SET(HELPER_TEST_PROGRAMS
diff --git a/regress/Makefile.am b/regress/Makefile.am index 79da7e8..4db2320 100644 --- a/regress/Makefile.am +++ b/regress/Makefile.am
@@ -11,7 +11,6 @@ modify \ name_locate \ set_comment_all \ - set_comment_revert \ set_compression \ tryopen
diff --git a/regress/modify.c b/regress/modify.c index dc426ce..af72f2f 100644 --- a/regress/modify.c +++ b/regress/modify.c
@@ -497,6 +497,15 @@ } static int +unchange_all(int argc, char *argv[]) { + if (zip_unchange_all(za) < 0) { + fprintf(stderr, "can't revert changes to archive: %s\n", zip_strerror(za)); + return -1; + } + return 0; +} + +static int zin_close(int argc, char *argv[]) { if (zip_close(z_in) < 0) { fprintf(stderr, "can't close source archive: %s\n", zip_strerror(z_in)); @@ -787,6 +796,7 @@ { "set_file_compression", 3, "index method flags", "set file compression method", set_file_compression }, { "set_file_mtime", 2, "index timestamp", "set file modification time", set_file_mtime }, { "stat", 1, "index", "print information about entry", zstat }, + { "unchange_all", 0, "", "revert all changes", unchange_all }, { "zin_close", 0, "", "close input zip_source (for internal tests)", zin_close } };
diff --git a/regress/set_comment_revert.c b/regress/set_comment_revert.c deleted file mode 100644 index b13f7c7..0000000 --- a/regress/set_comment_revert.c +++ /dev/null
@@ -1,97 +0,0 @@ -/* - set_comment_revert.c -- set global and file comments, but revert - Copyright (C) 2006-2014 Dieter Baron and Thomas Klausner - - This file is part of libzip, a library to manipulate ZIP archives. - The authors can be contacted at <libzip@nih.at> - - 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. - 3. The names of the authors may not be used to endorse or promote - products derived from this software without specific prior - written permission. - - THIS SOFTWARE IS PROVIDED BY THE AUTHORS ``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 AUTHORS 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 <errno.h> -#include <stdio.h> -#include <stdlib.h> -#include <string.h> - -#include "zip.h" -#include "compat.h" - -const char *prg; -const char *new_archive_comment="This is the new,\r\n" -"multiline archive comment.\r\n" -"Ain't it nice?"; - -int -main(int argc, char *argv[]) -{ - const char *archive; - zip_t *za; - char buf[100]; - int err; - zip_int64_t i; - - prg = argv[0]; - - if (argc != 2) { - fprintf(stderr, "usage: %s archive\n", prg); - return 1; - } - - archive = argv[1]; - - if ((za=zip_open(archive, 0, &err)) == NULL) { - zip_error_t error; - zip_error_init_with_code(&error, err); - fprintf(stderr, "%s: can't open zip archive '%s': %s\n", prg, archive, zip_error_strerror(&error)); - zip_error_fini(&error); - return 1; - } - - if (zip_set_archive_comment(za, new_archive_comment, - (zip_uint16_t)strlen(new_archive_comment)) < 0) { - fprintf(stderr, "%s: zip_set_archive_comment failed: %s\n", prg, zip_strerror(za)); - } - - for (i=0; i<zip_get_num_entries(za, 0); i++) { - snprintf(buf, sizeof(buf), "File comment no %" PRId64, i); - if (zip_file_set_comment(za, (zip_uint64_t)i, buf, (zip_uint16_t)strlen(buf), 0) < 0) { - fprintf(stderr, "%s: zip_set_file_comment on file %" PRId64 " failed: %s\n", prg, i, zip_strerror(za)); - } - } - - if (zip_unchange_all(za) == -1) { - fprintf(stderr, "%s: can't revert changes to archive '%s'\n", prg, archive); - return 1; - } - - if (zip_close(za) == -1) { - fprintf(stderr, "%s: can't close zip archive '%s': %s\n", prg, archive, zip_strerror(za)); - return 1; - } - - return 0; -}
diff --git a/regress/set_comment_revert.test b/regress/set_comment_revert.test index 6d921b5..10baf5a 100644 --- a/regress/set_comment_revert.test +++ b/regress/set_comment_revert.test
@@ -1,5 +1,5 @@ # start changing local and global comments, but revert before closing -program set_comment_revert +program modify return 0 -args testcomment.zip +args testcomment.zip set_archive_comment "some long string, a bit longer than this at least" set_file_comment 0 "File comment no 0" set_file_comment 1 "File comment no 1" set_file_comment 3 "File comment no 3" set_file_comment 2 "" unchange_all file testcomment.zip testcomment.zip testcomment.zip