ZIP_SOURCE_ZIP(3)

ZIP_SOURCE_ZIP(3) | Library Functions Manual | ZIP_SOURCE_ZIP(3)

# NAME

zip_source_zip — create data source from zip file

# LIBRARY

libzip (-lzip)

# SYNOPSIS

#include <zip.h>
zip_source_t *
zip_source_zip(zip_t *archive, zip_t *srcarchive, zip_uint64_t srcidx, zip_flags_t flags, zip_uint64_t start, zip_int64_t len);

# DESCRIPTION

The function zip_source_zip() creates a zip source from a file in a zip archive. The srcarchive argument is the (open) zip archive containing the source zip file at index srcidx. len bytes from offset start will be used in the zip_source. If len is 0 or -1, the rest of the file, starting from start, is used. If start is zero and len is -1, the whole file will be copied without decompressing it.
Supported flags are:

`ZIP_FL_UNCHANGED`
  Try to get the original data without any changes that may have been made to srcarchive after opening it.
`ZIP_FL_RECOMPRESS`
  When adding the data from srcarchive, re-compress it using the current settings instead of copying the compressed data.

# RETURN VALUES

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

# ERRORS

zip_source_zip() fails if:

[`ZIP_ER_CHANGED`]
  Unchanged data was requested, but it is not available.
[`ZIP_ER_INVAL`]
  srcarchive, srcidx, start, or len are invalid.
[`ZIP_ER_MEMORY`]
  Required memory could not be allocated.

Additionally, it can return all error codes from zip_stat_index() and zip_fopen_index().

# SEE ALSO

libzip(3), zip_add(3), zip_replace(3), zip_source(3)

# HISTORY

zip_source_zip() was added in libzip 1.0.

# AUTHORS

Dieter Baron <dillo@nih.at> and Thomas Klausner <tk@giga.or.at>

December 18, 2017 | NetBSD 8.99.14