ZIP_SOURCE_SEEK_COMPUTE_OFFSET(3) | Library Functions Manual | ZIP_SOURCE_SEEK_COMPUTE_OFFSET(3)

# NAME

`zip_source_seek_compute_offset` — validate arguments and compute offset

# LIBRARY

libzip (-lzip)

# SYNOPSIS

`#include <zip.h>`

zip_int64_t
`zip_source_seek_compute_offset`(zip_uint64_t offset, zip_uint64_t length, void *data, zip_uint64_t data_length, zip_error_t *error);

# DESCRIPTION

Use this function to compute the offset for a `ZIP_SOURCE_SEEK` or `ZIP_SOURCE_SEEK_WRITE` command. data and data_length are the arguments to the source callback, offset is the current offset and length is the length of the source data or, for `ZIP_SOURCE_SEEK_WRITE`, the amount of data written.

# RETURN VALUES

On success, it returns the new offset, on error it returns -1 and sets error.

# ERRORS

`zip_source_seek_compute_offset`() fails if:

[`ZIP_ER_INVAL`]
  One of the arguments is invalid or the seek would place the offset outside the data.

# SEE ALSO

zip_source_function(3)

# HISTORY

`zip_source_seek_compute_offset`() was added in libzip 1.0.

# AUTHORS

Dieter Baron <dillo@nih.at> and Thomas Klausner <wiz@gatalith.at>

December 18, 2017 | NiH