Rename _zip_free to zip_discard and make it available in the public API.
It closes zip archives without saving changes.

--HG--
branch : HEAD
diff --git a/man/CMakeLists.txt b/man/CMakeLists.txt
index d723942..53d114b 100644
--- a/man/CMakeLists.txt
+++ b/man/CMakeLists.txt
@@ -4,6 +4,7 @@
   zip_add_dir.mdoc
   zip_close.mdoc
   zip_delete.mdoc
+  zip_discard.mdoc
   zip_error_clear.mdoc
   zip_error_get.mdoc
   zip_error_get_sys_type.mdoc
diff --git a/man/Makefile.am b/man/Makefile.am
index 43fdfc2..9e83698 100644
--- a/man/Makefile.am
+++ b/man/Makefile.am
@@ -11,6 +11,7 @@
 	zip_add_dir.mdoc \
 	zip_close.mdoc \
 	zip_delete.mdoc \
+	zip_discard.mdoc \
 	zip_error_clear.mdoc \
 	zip_error_get.mdoc \
 	zip_error_get_sys_type.mdoc \
diff --git a/man/libzip.man b/man/libzip.man
index 3fca6a3..fef5c4e 100644
--- a/man/libzip.man
+++ b/man/libzip.man
@@ -57,6 +57,7 @@
 zip_fclose(3)
 .SS "close archive"
 zip_close(3)
+zip_discard(3)
 .SS "miscellaneous"
 zip_stat(3)
 zip_get_archive_comment(3)
diff --git a/man/libzip.mdoc b/man/libzip.mdoc
index d1d8879..c3e598f 100644
--- a/man/libzip.mdoc
+++ b/man/libzip.mdoc
@@ -60,6 +60,7 @@
 .Xr zip_fclose 3
 .Ss close archive
 .Xr zip_close 3
+.Xr zip_discard 3
 .Ss miscellaneous
 .Xr zip_stat 3
 .Xr zip_get_archive_comment 3
diff --git a/man/zip_close.man b/man/zip_close.man
index 3fc9a2a..6e599f3 100644
--- a/man/zip_close.man
+++ b/man/zip_close.man
@@ -1,5 +1,5 @@
 .\" zip_close.mdoc \-- close zip archive
-.\" Copyright (C) 2003-2009 Dieter Baron and Thomas Klausner
+.\" Copyright (C) 2003-2012 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>
@@ -29,7 +29,7 @@
 .\" OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN
 .\" IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
 .\"
-.TH ZIP_CLOSE 3 "February 15, 2009" NiH
+.TH ZIP_CLOSE 3 "February 13, 2012" NiH
 .SH "NAME"
 zip_close \- close zip archive
 .SH "LIBRARY"
@@ -56,6 +56,9 @@
 \fBarchive\fR
 contains no files, the file is completely removed (no empty archive is
 written).
+.PP
+To close a zip file without saving changes, use
+zip_discard(3).
 .SH "RETURN VALUES"
 Upon successful completion 0 is returned.
 Otherwise, \-1 is returned and the error code in
@@ -108,6 +111,7 @@
 for added or replaced files will be passed back.
 .SH "SEE ALSO"
 libzip(3),
+zip_discard(3),
 zip_error_get(3),
 zip_fdopen(3),
 zip_open(3),
diff --git a/man/zip_close.mdoc b/man/zip_close.mdoc
index 0db9bb6..3896038 100644
--- a/man/zip_close.mdoc
+++ b/man/zip_close.mdoc
@@ -1,5 +1,5 @@
 .\" zip_close.mdoc -- close zip archive
-.\" Copyright (C) 2003-2009 Dieter Baron and Thomas Klausner
+.\" Copyright (C) 2003-2012 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>
@@ -29,7 +29,7 @@
 .\" OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN
 .\" IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
 .\"
-.Dd February 15, 2009
+.Dd February 13, 2012
 .Dt ZIP_CLOSE 3
 .Os
 .Sh NAME
@@ -58,6 +58,9 @@
 .Ar archive
 contains no files, the file is completely removed (no empty archive is
 written).
+.Pp
+To close a zip file without saving changes, use
+.Xr zip_discard 3 .
 .Sh RETURN VALUES
 Upon successful completion 0 is returned.
 Otherwise, \-1 is returned and the error code in
@@ -99,6 +102,7 @@
 for added or replaced files will be passed back.
 .Sh SEE ALSO
 .Xr libzip 3 ,
+.Xr zip_discard 3 ,
 .Xr zip_error_get 3 ,
 .Xr zip_fdopen 3 ,
 .Xr zip_open 3 ,
diff --git a/man/zip_discard.man b/man/zip_discard.man
new file mode 100644
index 0000000..1f2b2b5
--- /dev/null
+++ b/man/zip_discard.man
@@ -0,0 +1,56 @@
+.\" zip_discard.mdoc \-- close zip archive and discard changes
+.\" Copyright (C) 2012 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.
+.\"
+.TH ZIP_DISCARD 3 "February 13, 2012" NiH
+.SH "NAME"
+zip_discard \- close zip archive and discard changes
+.SH "LIBRARY"
+libzip (-lzip)
+.SH "SYNOPSIS"
+#include <zip.h>
+.PP
+void
+zip_discard(struct zip *archive);
+.SH "DESCRIPTION"
+The
+zip_discard
+function closes
+\fBarchive\fR
+and frees the memory allocated for it.
+Any changes to the archive are not written to disk and discarded.
+.SH "SEE ALSO"
+libzip(3),
+zip_close(3)
+.SH "AUTHORS"
+
+Dieter Baron <dillo@giga.or.at>
+and
+Thomas Klausner <tk@giga.or.at>
diff --git a/man/zip_discard.mdoc b/man/zip_discard.mdoc
new file mode 100644
index 0000000..8512ea7
--- /dev/null
+++ b/man/zip_discard.mdoc
@@ -0,0 +1,58 @@
+.\" zip_discard.mdoc -- close zip archive and discard changes
+.\" Copyright (C) 2012 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.
+.\"
+.Dd February 13, 2012
+.Dt ZIP_DISCARD 3
+.Os
+.Sh NAME
+.Nm zip_discard
+.Nd close zip archive and discard changes
+.Sh LIBRARY
+libzip (-lzip)
+.Sh SYNOPSIS
+.In zip.h
+.Ft void
+.Fn zip_discard "struct zip *archive"
+.Sh DESCRIPTION
+The
+.Fn zip_discard
+function closes
+.Ar archive
+and frees the memory allocated for it.
+Any changes to the archive are not written to disk and discarded.
+.Sh SEE ALSO
+.Xr libzip 3 ,
+.Xr zip_close 3
+.Sh AUTHORS
+.An -nosplit
+.An Dieter Baron Aq dillo@giga.or.at
+and
+.An Thomas Klausner Aq tk@giga.or.at