regen man pages
diff --git a/man/zip_source_begin_write.man b/man/zip_source_begin_write.man
index 674baa4..edfdb74 100644
--- a/man/zip_source_begin_write.man
+++ b/man/zip_source_begin_write.man
@@ -1,8 +1,9 @@
-.TH "ZIP_SOURCE_BEGIN_WRITE" "3" "December 18, 2017" "Darwin 17.3.0" "Library Functions Manual"
+.TH "ZIP_SOURCE_BEGIN_WRITE" "3" "December 18, 2017" "NiH" "Library Functions Manual"
 .nh
 .if n .ad l
 .SH "NAME"
-\fBzip_source_begin_write\fR
+\fBzip_source_begin_write\fR,
+\fBzip_source_begin_write_cloning\fR
 \- prepare zip source for writing
 .SH "LIBRARY"
 libzip (-lzip)
@@ -10,14 +11,12 @@
 \fB#include <zip.h>\fR
 .sp
 \fIint\fR
-.br
 .PD 0
 .HP 4n
 \fBzip_source_begin_write\fR(\fIzip_source_t\ *source\fR);
 .PD
 .PP
 \fIint\fR
-.br
 .PD 0
 .HP 4n
 \fBzip_source_begin_write_cloning\fR(\fIzip_source_t\ *source\fR, \fIzip_uint64_t\ offset\fR);
@@ -56,7 +55,7 @@
 zip_source_write(3)
 .SH "HISTORY"
 \fBzip_source_begin_write_cloning\fR()
-first appreard in libzip 1.4.0.
+first appeared in libzip 1.4.0.
 .SH "AUTHORS"
 Dieter Baron <\fIdillo@nih.at\fR>
 and
diff --git a/man/zip_source_buffer_fragment.man b/man/zip_source_buffer_fragment.man
new file mode 100644
index 0000000..9496183
--- /dev/null
+++ b/man/zip_source_buffer_fragment.man
@@ -0,0 +1,91 @@
+.TH "ZIP_SOURCE_BUFFER_FRAGMENT" "3" "December 10, 2017" "NiH" "Library Functions Manual"
+.nh
+.if n .ad l
+.SH "NAME"
+\fBzip_source_buffer_fragment\fR,
+\fBzip_source_buffer_fragment_create\fR
+\- create zip data source from multiple buffer
+.SH "LIBRARY"
+libzip (-lzip)
+.SH "SYNOPSIS"
+\fB#include <zip.h>\fR
+.sp
+\fIzip_source_t *\fR
+.PD 0
+.HP 4n
+\fBzip_source_buffer_fragment\fR(\fIzip_t\ *archive\fR, \fIzip_buffer_fragment_t\ *fragments\fR, \fIzip_uint64_t\ nfragments\fR, \fIint\ freep\fR);
+.PD
+.PP
+\fIzip_source_t *\fR
+.PD 0
+.HP 4n
+\fBzip_source_buffer_fragment_create\fR(\fIzip_buffer_fragment_t\ *fragments\fR, \fIzip_uint64_t\ nfragments\fR, \fIint\ freep\fR, \fIzip_error_t\ *error\fR);
+.PD
+.SH "DESCRIPTION"
+The functions
+\fBzip_source_buffer_fragment\fR()
+and
+\fBzip_source_buffer_fragment_create\fR()
+create a zip source from the data in
+\fIfragments\fR.
+\fInfragments\fR
+specifies the number of fragments.
+If
+\fIfreep\fR
+is non-zero, the data will be freed when it is no longer needed.
+.nf
+.sp
+.RS 0n
+struct zip_stat {
+    zip_uint8_t *data;    /* pointer to the actual data */
+    zip_uint64_t length;  /* length of this fragment */
+};
+.RE
+.fi
+.PP
+The data
+\fIfragments\fR
+point to must remain valid for the lifetime of the created source.
+\fIfragments\fR
+itself can be discarded once the source is created.
+.PP
+The source can be used to open a zip archive from.
+.SH "RETURN VALUES"
+Upon successful completion, the created source is returned.
+Otherwise,
+\fRNULL\fR
+is returned and the error code in
+\fIarchive\fR
+or
+\fIerror\fR
+is set to indicate the error.
+.SH "ERRORS"
+\fBzip_source_buffer\fR()
+and
+\fBzip_source_buffer_create\fR()
+fail if:
+.TP 19n
+[\fRZIP_ER_INVAL\fR]
+\fInfragments\fR
+is greater than zero and
+\fIfragments\fR
+is
+\fRNULL\fR.
+.TP 19n
+[\fRZIP_ER_MEMORY\fR]
+Required memory could not be allocated.
+.SH "SEE ALSO"
+libzip(3),
+zip_add(3),
+zip_open_from_source(3),
+zip_replace(3),
+zip_source(3)
+.SH "HISTORY"
+\fBzip_source_buffer_fragment\fR()
+and
+\fBzip_source_buffer_fragment_create\fR()
+first appeared in libzip 1.4.0.
+.SH "AUTHORS"
+Dieter Baron <\fIdillo@nih.at\fR>
+and
+Thomas Klausner <\fItk@giga.or.at\fR>
diff --git a/man/zip_source_function.man b/man/zip_source_function.man
index a90e6e0..bb212bf 100644
--- a/man/zip_source_function.man
+++ b/man/zip_source_function.man
@@ -1,8 +1,9 @@
-.TH "ZIP_SOURCE_FUNCTION" "3" "November 6, 2017" "Darwin 17.3.0" "Library Functions Manual"
+.TH "ZIP_SOURCE_FUNCTION" "3" "December 11, 2017" "NiH" "Library Functions Manual"
 .nh
 .if n .ad l
 .SH "NAME"
-\fBzip_source_function\fR
+\fBzip_source_function\fR,
+\fBzip_source_function_create\fR
 \- create data source from function
 .SH "LIBRARY"
 libzip (-lzip)
@@ -10,14 +11,12 @@
 \fB#include <zip.h>\fR
 .sp
 \fIzip_source_t *\fR
-.br
 .PD 0
 .HP 4n
 \fBzip_source_function\fR(\fIzip_t\ *archive\fR, \fIzip_source_callback\ fn\fR, \fIvoid\ *userdata\fR);
 .PD
 .PP
 \fIzip_source_t *\fR
-.br
 .PD 0
 .HP 4n
 \fBzip_source_function_create\fR(\fIzip_source_callback\ fn\fR, \fIvoid\ *userdata\fR, \fIzip_error_t\ *error\fR);
@@ -98,6 +97,9 @@
 data, and if it does not destructively overwrite the original file
 (you still have to be able to execute
 \fRZIP_SOURCE_ROLLBACK_WRITE\fR).
+.PP
+The next write should happen at byte
+\fIoffset\fR.
 .SS "\fRZIP_SOURCE_CLOSE\fR"
 Reading is done.
 .SS "\fRZIP_SOURCE_COMMIT_WRITE\fR"