Add zip_source(3) and use instead of links to all implementations.

These lists are not updated often, it seems.
diff --git a/man/Makefile.am b/man/Makefile.am
index 0ab45e9..f2c4c99 100644
--- a/man/Makefile.am
+++ b/man/Makefile.am
@@ -48,6 +48,7 @@
 	zip_set_default_password.mdoc \
 	zip_set_file_comment.mdoc \
 	zip_set_file_compression.mdoc \
+	zip_source.mdoc \
 	zip_source_buffer.mdoc \
 	zip_source_file.mdoc \
 	zip_source_filep.mdoc \
diff --git a/man/libzip.mdoc b/man/libzip.mdoc
index 6955d78..e9862af 100644
--- a/man/libzip.mdoc
+++ b/man/libzip.mdoc
@@ -1,5 +1,5 @@
 .\" libzip.mdoc -- general overview of available functions
-.\" Copyright (C) 2005-2012 Dieter Baron and Thomas Klausner
+.\" Copyright (C) 2005-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>
@@ -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 June 23, 2012
+.Dd August 2, 2014
 .Dt LIBZIP 3
 .Os
 .Sh NAME
@@ -81,9 +81,9 @@
 .Xr zip_source_buffer 3
 .Xr zip_source_file 3
 .Xr zip_source_filep 3
+.Xr zip_source_free 3
 .Xr zip_source_function 3
 .Xr zip_source_zip 3
-.Xr zip_source_free 3
 .Ss rename files
 .Xr zip_rename 3
 .Ss delete files
@@ -105,6 +105,7 @@
 .Ss miscellaneous
 .Xr zip_set_archive_comment 3
 .Xr zip_set_archive_flag 3
+.Xr zip_source 3
 .Sh ERROR HANDLING
 .Xr zip_error_to_str 3
 .Xr zip_strerror 3
diff --git a/man/zip_file_add.mdoc b/man/zip_file_add.mdoc
index 06b70aa..c653258 100644
--- a/man/zip_file_add.mdoc
+++ b/man/zip_file_add.mdoc
@@ -1,5 +1,5 @@
 .\" zip_file_add.mdoc -- add files to zip archive
-.\" Copyright (C) 2004-2012 Dieter Baron and Thomas Klausner
+.\" Copyright (C) 2004-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>
@@ -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 October 6, 2012
+.Dd August 2, 2014
 .Dt ZIP_FILE_ADD 3
 .Os
 .Sh NAME
@@ -89,11 +89,8 @@
 .El
 The data is obtained from the
 .Ar source
-argument.
-See the
-.Fn zip_source_*
-functions cited in
-.Sx SEE ALSO .
+argument, see
+.Xr zip_source 3 .
 .Sh RETURN VALUES
 Upon successful completion,
 .Fn zip_file_add
@@ -145,10 +142,7 @@
 .El
 .Sh SEE ALSO
 .Xr libzip 3 ,
-.Xr zip_source_file 3 ,
-.Xr zip_source_filep 3 ,
-.Xr zip_source_function 3 ,
-.Xr zip_source_zip 3
+.Xr zip_source 3
 .Sh AUTHORS
 .An -nosplit
 .An Dieter Baron Aq Mt dillo@nih.at
diff --git a/man/zip_source.mdoc b/man/zip_source.mdoc
new file mode 100644
index 0000000..bb768a6
--- /dev/null
+++ b/man/zip_source.mdoc
@@ -0,0 +1,78 @@
+.\" zip_source.mdoc -- description of zip data source
+.\" Copyright (C) 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.
+.\"
+.Dd August 2, 2014
+.Dt ZIP_SOURCE 3
+.Os
+.Sh NAME
+.Nm zip_source
+.Nd zip data source structure
+.Sh LIBRARY
+libzip (-lzip)
+.Sh SYNOPSIS
+.In zip.h
+.Vt struct zip_source *zs ;
+.Sh DESCRIPTION
+A
+.Vt struct zip_source
+is a data source used by
+.Xr libzip 3
+for adding or replacing file contents for a file in a zip archive.
+It is created by calling one of
+.Xr zip_source_buffer 3 ,
+.Xr zip_source_file 3 ,
+.Xr zip_source_filep 3 ,
+.Xr zip_source_free 3 ,
+.Xr zip_source_function 3 ,
+or
+.Xr zip_source_zip 3
+and passed to
+.Xr zip_file_add 3
+or
+.Xr zip_file_replace 3 .
+These functions will free the
+.Vt struct zip_source
+when they are done using it, so
+.Xr zip_source_free 3
+only needs to be called when these functions return an error.
+.Sh SEE ALSO
+.Xr libzip 3 ,
+.Xr zip_source_buffer 3 ,
+.Xr zip_source_file 3 ,
+.Xr zip_source_filep 3 ,
+.Xr zip_source_free 3 ,
+.Xr zip_source_function 3 ,
+.Xr zip_source_zip 3
+.Sh AUTHORS
+.An -nosplit
+.An Dieter Baron Aq Mt dillo@nih.at
+and
+.An Thomas Klausner Aq Mt tk@giga.or.at
diff --git a/man/zip_source_buffer.mdoc b/man/zip_source_buffer.mdoc
index 3bb9bc6..cdd09de 100644
--- a/man/zip_source_buffer.mdoc
+++ b/man/zip_source_buffer.mdoc
@@ -29,8 +29,8 @@
 .\" OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN
 .\" IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
 .\"
-.Dd April 27, 2014
-.Dt ZIP_SOURCE_DATA 3
+.Dd August 2, 2014
+.Dt ZIP_SOURCE_BUFFER 3
 .Os
 .Sh NAME
 .Nm zip_source_buffer
@@ -78,11 +78,7 @@
 .Xr libzip 3 ,
 .Xr zip_add 3 ,
 .Xr zip_replace 3 ,
-.Xr zip_source_file 3 ,
-.Xr zip_source_filep 3 ,
-.Xr zip_source_free 3 ,
-.Xr zip_source_function 3 ,
-.Xr zip_source_zip 3
+.Xr zip_source 3
 .Sh AUTHORS
 .An -nosplit
 .An Dieter Baron Aq Mt dillo@nih.at
diff --git a/man/zip_source_file.mdoc b/man/zip_source_file.mdoc
index 0f3ba20..5d13436 100644
--- a/man/zip_source_file.mdoc
+++ b/man/zip_source_file.mdoc
@@ -1,5 +1,5 @@
 .\" zip_source_file.mdoc -- create data source from a file
-.\" Copyright (C) 2004-2008 Dieter Baron and Thomas Klausner
+.\" Copyright (C) 2004-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>
@@ -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 August 1, 2008
+.Dd August 2, 2014
 .Dt ZIP_SOURCE_FILE 3
 .Os
 .Sh NAME
@@ -89,11 +89,7 @@
 .Xr libzip 3 ,
 .Xr zip_add 3 ,
 .Xr zip_replace 3 ,
-.Xr zip_source_buffer 3 ,
-.Xr zip_source_filep 3 ,
-.Xr zip_source_free 3 ,
-.Xr zip_source_function 3 ,
-.Xr zip_source_zip 3
+.Xr zip_source 3
 .Sh AUTHORS
 .An -nosplit
 .An Dieter Baron Aq Mt dillo@nih.at
diff --git a/man/zip_source_filep.mdoc b/man/zip_source_filep.mdoc
index 1a7347a..4ca9a69 100644
--- a/man/zip_source_filep.mdoc
+++ b/man/zip_source_filep.mdoc
@@ -1,5 +1,5 @@
 .\" zip_source_filep.mdoc -- create data source from a file stream
-.\" Copyright (C) 2004-2008 Dieter Baron and Thomas Klausner
+.\" Copyright (C) 2004-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>
@@ -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 August 1, 2008
+.Dd August 2, 2014
 .Dt ZIP_SOURCE_FILEP 3
 .Os
 .Sh NAME
@@ -81,11 +81,7 @@
 .Xr libzip 3 ,
 .Xr zip_add 3 ,
 .Xr zip_replace 3 ,
-.Xr zip_source_buffer 3 ,
-.Xr zip_source_file 3 ,
-.Xr zip_source_free 3 ,
-.Xr zip_source_function 3 ,
-.Xr zip_source_zip 3
+.Xr zip_source 3
 .Sh AUTHORS
 .An -nosplit
 .An Dieter Baron Aq Mt dillo@nih.at
diff --git a/man/zip_source_free.mdoc b/man/zip_source_free.mdoc
index e820705..c264491 100644
--- a/man/zip_source_free.mdoc
+++ b/man/zip_source_free.mdoc
@@ -1,5 +1,5 @@
 .\" zip_source_free.mdoc -- free zip data source
-.\" Copyright (C) 2004, 2005, 2006 Dieter Baron and Thomas Klausner
+.\" Copyright (C) 2004-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>
@@ -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 April 23, 2006
+.Dd August 2, 2014
 .Dt ZIP_SOURCE_FREE 3
 .Os
 .Sh NAME
@@ -62,11 +62,7 @@
 call.
 .Sh SEE ALSO
 .Xr libzip 3 ,
-.Xr zip_source_buffer 3 ,
-.Xr zip_source_file 3 ,
-.Xr zip_source_filep 3 ,
-.Xr zip_source_function 3 ,
-.Xr zip_source_zip 3
+.Xr zip_source 3
 .Sh AUTHORS
 .An -nosplit
 .An Dieter Baron Aq Mt dillo@nih.at
diff --git a/man/zip_source_function.mdoc b/man/zip_source_function.mdoc
index 81403aa..ae00975 100644
--- a/man/zip_source_function.mdoc
+++ b/man/zip_source_function.mdoc
@@ -1,5 +1,5 @@
 .\" zip_source_function.mdoc -- create data source from function
-.\" Copyright (C) 2004-2013 Dieter Baron and Thomas Klausner
+.\" Copyright (C) 2004-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>
@@ -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 September 22, 2013
+.Dd August 2, 2014
 .Dt ZIP_SOURCE_FUNCTION 3
 .Os
 .Sh NAME
@@ -154,11 +154,7 @@
 .Xr libzip 3 ,
 .Xr zip_add 3 ,
 .Xr zip_replace 3 ,
-.Xr zip_source_buffer 3 ,
-.Xr zip_source_file 3 ,
-.Xr zip_source_filep 3 ,
-.Xr zip_source_free 3 ,
-.Xr zip_source_zip 3 ,
+.Xr zip_source 3 ,
 .Xr zip_stat_init 3
 .Sh AUTHORS
 .An -nosplit
diff --git a/man/zip_source_zip.mdoc b/man/zip_source_zip.mdoc
index 712a9ba..9ccbb52 100644
--- a/man/zip_source_zip.mdoc
+++ b/man/zip_source_zip.mdoc
@@ -1,5 +1,5 @@
 .\" zip_source_zip.mdoc -- create data source from zip file
-.\" Copyright (C) 2004-2012 Dieter Baron and Thomas Klausner
+.\" Copyright (C) 2004-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>
@@ -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 July 22, 2012
+.Dd August 2, 2014
 .Dt ZIP_SOURCE_ZIP 3
 .Os
 .Sh NAME
@@ -110,11 +110,7 @@
 .Xr libzip 3 ,
 .Xr zip_add 3 ,
 .Xr zip_replace 3 ,
-.Xr zip_source_buffer 3 ,
-.Xr zip_source_file 3 ,
-.Xr zip_source_filep 3 ,
-.Xr zip_source_free 3 ,
-.Xr zip_source_function 3
+.Xr zip_source 3
 .Sh AUTHORS
 .An -nosplit
 .An Dieter Baron Aq Mt dillo@nih.at