create zip data source overlay

libzip (-lzip)

#include <zip.h>

zip_source_t *
zip_source_window_create(zip_source_t *source, zip_uint64_t start, zip_int64_t len, zip_error_t *error);

The zip_source_window_create() function create a zip source from an underlying zip source, restricting access to a particular window starting at byte start and having size len. If len is -1, the window spans to the end of the underlying source.

Upon successful completion, the created source is returned. Otherwise, NULL is returned and the error code in error is set to indicate the error.

zip_source_window_create() fails if:
src is NULL; there is an integer overflow adding start and len; or len is less than -1.
Required memory could not be allocated.

libzip(3), zip_source(3) zip_source(3)

zip_source_window_create() was added in libzip 1.8.0.

Dieter Baron <> and Thomas Klausner <>