regen
diff --git a/man/libzip.html b/man/libzip.html
index fabeff0..e58adec 100644
--- a/man/libzip.html
+++ b/man/libzip.html
@@ -115,10 +115,10 @@
   <li><a class="Xr" href="zip_fopen_index.html">zip_fopen_index(3)</a></li>
   <li><a class="Xr" href="zip_fopen_index_encrypted.html">zip_fopen_index_encrypted(3)</a></li>
   <li><a class="Xr" href="zip_fread.html">zip_fread(3)</a></li>
+  <li><a class="Xr" href="zip_file_is_seekable.html">zip_file_is_seekable(3)</a></li>
   <li><a class="Xr" href="zip_fseek.html">zip_fseek(3)</a> (uncompressed files
       only)</li>
-  <li><a class="Xr" href="zip_ftell.html">zip_ftell(3)</a> (uncompressed files
-      only)</li>
+  <li><a class="Xr" href="zip_ftell.html">zip_ftell(3)</a></li>
   <li><a class="Xr" href="zip_fclose.html">zip_fclose(3)</a></li>
 </ul>
 </section>
@@ -258,7 +258,7 @@
 </div>
 <table class="foot">
   <tr>
-    <td class="foot-date">April 6, 2021</td>
+    <td class="foot-date">October 15, 2021</td>
     <td class="foot-os">NiH</td>
   </tr>
 </table>
diff --git a/man/libzip.man b/man/libzip.man
index 62c6bbf..0ae44e4 100644
--- a/man/libzip.man
+++ b/man/libzip.man
@@ -30,7 +30,7 @@
 .\" OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN
 .\" IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
 .\"
-.TH "LIBZIP" "3" "April 6, 2021" "NiH" "Library Functions Manual"
+.TH "LIBZIP" "3" "October 15, 2021" "NiH" "Library Functions Manual"
 .nh
 .if n .ad l
 .SH "NAME"
@@ -112,12 +112,14 @@
 zip_fread(3)
 .TP 4n
 \fB\(bu\fR
+zip_file_is_seekable(3)
+.TP 4n
+\fB\(bu\fR
 zip_fseek(3)
 (uncompressed files only)
 .TP 4n
 \fB\(bu\fR
 zip_ftell(3)
-(uncompressed files only)
 .TP 4n
 \fB\(bu\fR
 zip_fclose(3)
diff --git a/man/zip_fread.html b/man/zip_fread.html
index eda3ebc..ceffbd1 100644
--- a/man/zip_fread.html
+++ b/man/zip_fread.html
@@ -66,15 +66,16 @@
 </section>
 <section class="Sh">
 <h1 class="Sh" id="DESCRIPTION"><a class="permalink" href="#DESCRIPTION">DESCRIPTION</a></h1>
-The <code class="Fn">zip_fread</code>() function reads at most
+The <code class="Fn">zip_fread</code>() function reads up to
   <var class="Ar">nbytes</var> bytes from <var class="Ar">file</var> into
   <var class="Ar">buf</var>.
 </section>
 <section class="Sh">
 <h1 class="Sh" id="RETURN_VALUES"><a class="permalink" href="#RETURN_VALUES">RETURN
   VALUES</a></h1>
-If successful, the number of bytes actually read is returned. Otherwise, -1 is
-  returned.
+If successful, the number of bytes actually read is returned. When
+  <code class="Fn">zip_fread</code>() is called after reaching the end of the
+  file, 0 is returned. In case of error, -1 is returned.
 </section>
 <section class="Sh">
 <h1 class="Sh" id="SEE_ALSO"><a class="permalink" href="#SEE_ALSO">SEE
@@ -102,7 +103,7 @@
 </div>
 <table class="foot">
   <tr>
-    <td class="foot-date">December 18, 2017</td>
+    <td class="foot-date">September 28, 2021</td>
     <td class="foot-os">NiH</td>
   </tr>
 </table>
diff --git a/man/zip_fread.man b/man/zip_fread.man
index d0eb517..5182a3d 100644
--- a/man/zip_fread.man
+++ b/man/zip_fread.man
@@ -30,7 +30,7 @@
 .\" OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN
 .\" IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
 .\"
-.TH "ZIP_FREAD" "3" "December 18, 2017" "NiH" "Library Functions Manual"
+.TH "ZIP_FREAD" "3" "September 28, 2021" "NiH" "Library Functions Manual"
 .nh
 .if n .ad l
 .SH "NAME"
@@ -50,7 +50,7 @@
 .SH "DESCRIPTION"
 The
 \fBzip_fread\fR()
-function reads at most
+function reads up to
 \fInbytes\fR
 bytes from
 \fIfile\fR
@@ -58,7 +58,10 @@
 \fIbuf\fR.
 .SH "RETURN VALUES"
 If successful, the number of bytes actually read is returned.
-Otherwise, \-1 is returned.
+When
+\fBzip_fread\fR()
+is called after reaching the end of the file, 0 is returned.
+In case of error, \-1 is returned.
 .SH "SEE ALSO"
 libzip(3),
 zip_fclose(3),
diff --git a/man/zip_fseek.html b/man/zip_fseek.html
index 4390065..f305615 100644
--- a/man/zip_fseek.html
+++ b/man/zip_fseek.html
@@ -48,7 +48,8 @@
 <div class="manual-text">
 <section class="Sh">
 <h1 class="Sh" id="NAME"><a class="permalink" href="#NAME">NAME</a></h1>
-<code class="Nm">zip_fseek</code> &#x2014;
+<code class="Nm">zip_fseek</code>, <code class="Nm">zip_file_is_seekable</code>
+  &#x2014;
 <div class="Nd">seek in file</div>
 </section>
 <section class="Sh">
@@ -64,6 +65,10 @@
     *file</var>, <var class="Fa" style="white-space: nowrap;">zip_int64_t
     offset</var>, <var class="Fa" style="white-space: nowrap;">int
     whence</var>);</p>
+<p class="Pp"><var class="Ft">int</var>
+  <br/>
+  <code class="Fn">zip_file_is_seekable</code>(<var class="Fa" style="white-space: nowrap;">zip_file_t
+    *file</var>);</p>
 </section>
 <section class="Sh">
 <h1 class="Sh" id="DESCRIPTION"><a class="permalink" href="#DESCRIPTION">DESCRIPTION</a></h1>
@@ -71,13 +76,18 @@
   <var class="Ar">offset</var> relative to <var class="Ar">whence</var>, just
   like <a class="Xr" href="http://pubs.opengroup.org/onlinepubs/9699919799/functions/fseek.html">fseek(3)</a>.
 <p class="Pp"><code class="Nm">zip_fseek</code> only works on uncompressed
-    (stored) data. When called on compressed data it will return an error.</p>
+    (stored), unencrypted data. When called on compressed or encrypted data it
+    will return an error.</p>
+<p class="Pp">The <code class="Fn">zip_file_is_seekable</code>() function
+    returns 1 if a file is seekable.</p>
 </section>
 <section class="Sh">
 <h1 class="Sh" id="RETURN_VALUES"><a class="permalink" href="#RETURN_VALUES">RETURN
   VALUES</a></h1>
-If successful, <code class="Nm">zip_fseek</code> returns 0. Otherwise, -1 is
+If successful, <code class="Fn">zip_fseek</code>() returns 0. Otherwise, -1 is
   returned.
+<p class="Pp"><code class="Fn">zip_file_is_seekable</code>() returns 1 if a file
+    is seekable and 0 if not. On an invalid argument, it returns -1.</p>
 </section>
 <section class="Sh">
 <h1 class="Sh" id="SEE_ALSO"><a class="permalink" href="#SEE_ALSO">SEE
@@ -91,6 +101,7 @@
 <section class="Sh">
 <h1 class="Sh" id="HISTORY"><a class="permalink" href="#HISTORY">HISTORY</a></h1>
 <code class="Fn">zip_fseek</code>() was added in libzip 1.2.0.
+  <code class="Fn">zip_file_is_seekable</code>() was added in libzip 1.9.0.
 </section>
 <section class="Sh">
 <h1 class="Sh" id="AUTHORS"><a class="permalink" href="#AUTHORS">AUTHORS</a></h1>
@@ -102,7 +113,7 @@
 </div>
 <table class="foot">
   <tr>
-    <td class="foot-date">December 18, 2017</td>
+    <td class="foot-date">November 13, 2021</td>
     <td class="foot-os">NiH</td>
   </tr>
 </table>
diff --git a/man/zip_fseek.man b/man/zip_fseek.man
index d69e0e6..6f2cb47 100644
--- a/man/zip_fseek.man
+++ b/man/zip_fseek.man
@@ -30,11 +30,12 @@
 .\" OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN
 .\" IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
 .\"
-.TH "ZIP_FSEEK" "3" "December 18, 2017" "NiH" "Library Functions Manual"
+.TH "ZIP_FSEEK" "3" "November 13, 2021" "NiH" "Library Functions Manual"
 .nh
 .if n .ad l
 .SH "NAME"
-\fBzip_fseek\fR
+\fBzip_fseek\fR,
+\fBzip_file_is_seekable\fR
 \- seek in file
 .SH "LIBRARY"
 libzip (-lzip)
@@ -47,6 +48,13 @@
 .HP 4n
 \fBzip_fseek\fR(\fIzip_file_t\ *file\fR, \fIzip_int64_t\ offset\fR, \fIint\ whence\fR);
 .PD
+.PP
+\fIint\fR
+.br
+.PD 0
+.HP 4n
+\fBzip_file_is_seekable\fR(\fIzip_file_t\ *file\fR);
+.PD
 .SH "DESCRIPTION"
 The
 \fBzip_fseek\fR()
@@ -58,13 +66,21 @@
 fseek(3).
 .PP
 \fBzip_fseek\fR
-only works on uncompressed (stored) data.
-When called on compressed data it will return an error.
+only works on uncompressed (stored), unencrypted data.
+When called on compressed or encrypted data it will return an error.
+.PP
+The
+\fBzip_file_is_seekable\fR()
+function returns 1 if a file is seekable.
 .SH "RETURN VALUES"
 If successful,
-\fBzip_fseek\fR
+\fBzip_fseek\fR()
 returns 0.
 Otherwise, \-1 is returned.
+.PP
+\fBzip_file_is_seekable\fR()
+returns 1 if a file is seekable and 0 if not.
+On an invalid argument, it returns \-1.
 .SH "SEE ALSO"
 libzip(3),
 zip_fclose(3),
@@ -74,6 +90,8 @@
 .SH "HISTORY"
 \fBzip_fseek\fR()
 was added in libzip 1.2.0.
+\fBzip_file_is_seekable\fR()
+was added in libzip 1.9.0.
 .SH "AUTHORS"
 Dieter Baron <\fIdillo@nih.at\fR>
 and
diff --git a/man/zip_source_read.html b/man/zip_source_read.html
index 1269a42..85a3ddb 100644
--- a/man/zip_source_read.html
+++ b/man/zip_source_read.html
@@ -77,9 +77,10 @@
 <section class="Sh">
 <h1 class="Sh" id="RETURN_VALUES"><a class="permalink" href="#RETURN_VALUES">RETURN
   VALUES</a></h1>
-Upon successful completion the number of bytes read is returned. Upon reading
-  end-of-file, zero is returned. Otherwise, -1 is returned and the error
-  information in <var class="Ar">source</var> is set to indicate the error.
+Upon successful completion the number of bytes read is returned. When
+  <code class="Fn">zip_source_read</code>() is called after reaching the end of
+  the file, 0 is returned. Otherwise, -1 is returned and the error information
+  in <var class="Ar">source</var> is set to indicate the error.
 </section>
 <section class="Sh">
 <h1 class="Sh" id="SEE_ALSO"><a class="permalink" href="#SEE_ALSO">SEE
@@ -104,7 +105,7 @@
 </div>
 <table class="foot">
   <tr>
-    <td class="foot-date">December 18, 2017</td>
+    <td class="foot-date">September 28, 2021</td>
     <td class="foot-os">NiH</td>
   </tr>
 </table>
diff --git a/man/zip_source_read.man b/man/zip_source_read.man
index 78ea1bf..2ca3d53 100644
--- a/man/zip_source_read.man
+++ b/man/zip_source_read.man
@@ -30,7 +30,7 @@
 .\" OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN
 .\" IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
 .\"
-.TH "ZIP_SOURCE_READ" "3" "December 18, 2017" "NiH" "Library Functions Manual"
+.TH "ZIP_SOURCE_READ" "3" "September 28, 2021" "NiH" "Library Functions Manual"
 .nh
 .if n .ad l
 .SH "NAME"
@@ -64,7 +64,9 @@
 first.
 .SH "RETURN VALUES"
 Upon successful completion the number of bytes read is returned.
-Upon reading end-of-file, zero is returned.
+When
+\fBzip_source_read\fR()
+is called after reaching the end of the file, 0 is returned.
 Otherwise, \-1 is returned and the error information in
 \fIsource\fR
 is set to indicate the error.
diff --git a/man/zip_source_rollback_write.html b/man/zip_source_rollback_write.html
index 9ba2695..fd9131d 100644
--- a/man/zip_source_rollback_write.html
+++ b/man/zip_source_rollback_write.html
@@ -71,13 +71,6 @@
   was called. Usually this removes temporary files or frees buffers.
 </section>
 <section class="Sh">
-<h1 class="Sh" id="RETURN_VALUES"><a class="permalink" href="#RETURN_VALUES">RETURN
-  VALUES</a></h1>
-Upon successful completion 0 is returned. Otherwise, -1 is returned and the
-  error information in <var class="Ar">source</var> is set to indicate the
-  error.
-</section>
-<section class="Sh">
 <h1 class="Sh" id="SEE_ALSO"><a class="permalink" href="#SEE_ALSO">SEE
   ALSO</a></h1>
 <a class="Xr" href="libzip.html">libzip(3)</a>,
@@ -102,7 +95,7 @@
 </div>
 <table class="foot">
   <tr>
-    <td class="foot-date">December 18, 2017</td>
+    <td class="foot-date">November 3, 2021</td>
     <td class="foot-os">NiH</td>
   </tr>
 </table>
diff --git a/man/zip_source_rollback_write.man b/man/zip_source_rollback_write.man
index 1665dbe..d9a264d 100644
--- a/man/zip_source_rollback_write.man
+++ b/man/zip_source_rollback_write.man
@@ -30,7 +30,7 @@
 .\" OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN
 .\" IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
 .\"
-.TH "ZIP_SOURCE_ROLLBACK_WRITE" "3" "December 18, 2017" "NiH" "Library Functions Manual"
+.TH "ZIP_SOURCE_ROLLBACK_WRITE" "3" "November 3, 2021" "NiH" "Library Functions Manual"
 .nh
 .if n .ad l
 .SH "NAME"
@@ -56,11 +56,6 @@
 zip_source_begin_write(3)
 was called.
 Usually this removes temporary files or frees buffers.
-.SH "RETURN VALUES"
-Upon successful completion 0 is returned.
-Otherwise, \-1 is returned and the error information in
-\fIsource\fR
-is set to indicate the error.
 .SH "SEE ALSO"
 libzip(3),
 zip_source(3),