ZIP_EXTERN zip_source_t * zip_source_file(zip_t *za, const char *fname, zip_uint64_t start, zip_int64_t len) { if (za == NULL) return NULL; return zip_source_file_create(fname, start, len, &za->error); }
ZIP_EXTERN zip_t * zip_open(const char *fn, int _flags, int *zep) { zip_t *za; zip_source_t *src; struct zip_error error; zip_error_init(&error); if ((src = zip_source_file_create(fn, 0, -1, &error)) == NULL) { _zip_set_open_error(zep, &error, 0); zip_error_fini(&error); return NULL; } if ((za = zip_open_from_source(src, _flags, &error)) == NULL) { zip_source_free(src); _zip_set_open_error(zep, &error, 0); zip_error_fini(&error); return NULL; } zip_error_fini(&error); return za; }