Add some man pages.

--HG--
branch : HEAD
diff --git a/man/zip_source_function.mdoc b/man/zip_source_function.mdoc
new file mode 100644
index 0000000..4498d63
--- /dev/null
+++ b/man/zip_source_function.mdoc
@@ -0,0 +1,114 @@
+.\" $NiH: zip_source.mdoc,v 1.2 2004/11/17 21:55:14 wiz Exp $
+.\"
+.\" zip_source_function.mdoc -- create data source from function
+.\" Copyright (C) 2004 Dieter Baron and Thomas Klausner
+.\"
+.\" This file is part of libzip, a library to manipulate ZIP archives.
+.\" The authors can be contacted at <nih@giga.or.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 November 4, 2004
+.Dt ZIP_SOURCE_FUNCTION 3
+.Os
+.Sh NAME
+.Nm zip_source_function
+.Nd create data source from function
+.Sh LIBRARY
+libzip (-lzip)
+.Sh SYNOPSIS
+.In zip.h
+.Ft int
+.Fn zip_source_function "struct zip *archive" "zip_read_func fn" "void *userdata"
+.Sh DESCRIPTION
+The function
+.Fn zip_source_function
+creates a zip source from an arbitrary given function
+.Ar fn .
+.Ar fn
+is a user-supplied function of the following type:
+.Bd -literal
+typedef ssize_t (*zip_read_func)(void *state,
+    void *data, size_t len, enum zip_cmd cmd);
+.Ed
+.Pp
+.Ar fn
+will be called by the library with the
+.Fn zip_source
+.Ar state
+argument as the first argument, a buffer
+.Ar data
+of size
+.Ar len
+for the data as second and third arguments when actually
+reading data, and
+.Ar cmd
+as the fourth argument.
+.Ar cmd
+can be any of the following:
+.Bl -tag -width XZIPXCMDXCLOSEXX -offset indent
+.It Dv ZIP_CMD_OPEN
+Prepare for reading.
+.It Dv ZIP_CMD_READ
+Read data into the buffer
+.Ar data
+of size
+.Ar len.
+.It Dv ZIP_CMD_CLOSE
+Reading is done, close the input file.
+.It Dv ZIP_CMD_STAT
+Get meta information for the input file.
+.\" XXX: format?
+.It Dv ZIP_CMD_ERROR
+Get error information.
+.\" XXX: more detail
+.It Dv ZIP_CMD_FREE
+Cleanup and free resources.
+.\" XXX: more detail when this is called
+.El
+.El
+.Sh RETURN VALUES
+Upon successful completion, the created source is returned.
+Otherwise,
+.Dv NULL
+is returned and the error code in
+.Ar archive
+is set to indicate the error.
+.Sh ERRORS
+.Fn zip_source_function
+fails if:
+.Bl -tag -width Er
+.It Bq Er ZIP_ER_MEMORY
+Required memory could not be allocated.
+.El
+.Sh SEE ALSO
+.Xr zip_add 3 ,
+.Xr zip_replace 3 ,
+.Xr zip_source_data 3 ,
+.Xr zip_source_file 3 ,
+.Xr zip_source_filep 3 ,
+.Xr zip_source_free 3 ,
+.Xr zip_source_zip 3