zip_source_seek_compute_offset —
validate arguments and compute offset
#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);
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.
On success, it returns the new offset, on error it returns -1 and sets
  error.
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.
zip_source_seek_compute_offset() was added in libzip
  1.0.