90 ctx->end_valid =
false;
94 ctx->end_valid =
true;
122 src->source_archive =
za;
130 src->source_closed = 1;
158 if (
ctx->source_archive) {
174 if (!
ctx->needs_seek) {
211 if (
ctx->needs_seek) {
226 if (
ctx->end_valid &&
ctx->offset <
ctx->end) {
236 if (!
ctx->end_valid) {
248 if (new_offset < 0) {
264 if (new_offset < 0) {
284 if (
len <
sizeof(
ctx->attributes)) {
289 memcpy(data, &
ctx->attributes,
sizeof(
ctx->attributes));
290 return sizeof(
ctx->attributes);
293 return ctx->supports;
327 if (open_source ==
NULL) {
static static sync static getppid static getegid const char static filename char static len const char char static bufsiz static mask static vfork const void static prot static getpgrp const char static swapflags static arg static fd static protocol static who struct sockaddr static addrlen static backlog struct timeval struct timezone static tz const struct iovec static count static mode const void const struct sockaddr static tolen const char static pathname void static offset struct stat static buf void long static basep static whence static length const void static len static semflg const void static shmflg const struct timespec struct timespec static rem const char static group const void start
static static sync static getppid static getegid const char static filename char static len const char char static bufsiz static mask static vfork const void static prot static getpgrp const char static swapflags cmd
static static sync static getppid static getegid const char static filename char static len const char char static bufsiz static mask static vfork const void static prot static getpgrp const char static swapflags static arg static fd static protocol static who struct sockaddr static addrlen static backlog struct timeval struct timezone static tz const struct iovec static count static mode const void const struct sockaddr static tolen const char static pathname void static offset struct stat static buf void long static basep static whence static length const void static len static semflg const void static shmflg const struct timespec struct timespec static rem const char static group const void length
RZ_API void Ht_() free(HtName_(Ht) *ht)
memcpy(mem, inblock.get(), min(CONTAINING_RECORD(inblock.get(), MEMBLOCK, data) ->size, size))
ZIP_EXTERN void zip_error_set(zip_error_t *_Nullable, int, int)
#define ZIP_SOURCE_SUPPORTS_SEEKABLE
ZIP_EXTERN void zip_file_attributes_init(zip_file_attributes_t *_Nonnull)
ZIP_EXTERN zip_int64_t zip_source_read(zip_source_t *_Nonnull, void *_Nonnull, zip_uint64_t)
ZIP_EXTERN zip_int64_t zip_source_seek_compute_offset(zip_uint64_t, zip_uint64_t, void *_Nonnull, zip_uint64_t, zip_error_t *_Nullable)
ZIP_EXTERN int zip_source_seek(zip_source_t *_Nonnull, zip_int64_t, int)
ZIP_EXTERN zip_int64_t zip_source_tell(zip_source_t *_Nonnull)
ZIP_EXTERN void zip_stat_init(zip_stat_t *_Nonnull)
ZIP_EXTERN void zip_error_init(zip_error_t *_Nonnull)
enum zip_source_cmd zip_source_cmd_t
#define ZIP_SOURCE_MAKE_COMMAND_BITMASK(cmd)
@ ZIP_SOURCE_GET_FILE_ATTRIBUTES
ZIP_EXTERN zip_int64_t zip_source_make_command_bitmap(zip_source_cmd_t,...)
ZIP_EXTERN int zip_error_code_zip(const zip_error_t *_Nonnull)
ZIP_EXTERN zip_int64_t zip_error_to_data(const zip_error_t *_Nonnull, void *_Nonnull, zip_uint64_t)
#define ZIP_SOURCE_GET_ARGS(type, data, len, error)
void * realloc(void *ptr, size_t size)
void * malloc(size_t size)
zip_uint64_t source_index
zip_file_attributes_t attributes
zip_source_t ** open_source
unsigned int nopen_source
unsigned int nopen_source_alloc
void error(const char *msg)
void _zip_error_set_from_source(zip_error_t *err, zip_source_t *src)
zip_uint64_t _zip_file_get_offset(const zip_t *za, zip_uint64_t idx, zip_error_t *error)
zip_source_t * zip_source_layered_create(zip_source_t *src, zip_source_layered_callback cb, void *ud, zip_error_t *error)
zip_int64_t zip_source_supports(zip_source_t *src)
static zip_int64_t window_read(zip_source_t *, void *, void *, zip_uint64_t, zip_source_cmd_t)
ZIP_EXTERN zip_source_t * zip_source_window_create(zip_source_t *src, zip_uint64_t start, zip_int64_t len, zip_error_t *error)
int _zip_source_set_source_archive(zip_source_t *src, zip_t *za)
void _zip_source_invalidate(zip_source_t *src)
zip_source_t * _zip_source_window_new(zip_source_t *src, zip_uint64_t start, zip_int64_t length, zip_stat_t *st, zip_file_attributes_t *attributes, zip_t *source_archive, zip_uint64_t source_index, zip_error_t *error)
void _zip_deregister_source(zip_t *za, zip_source_t *src)
int _zip_register_source(zip_t *za, zip_source_t *src)
int _zip_stat_merge(zip_stat_t *dst, const zip_stat_t *src, zip_error_t *error)
#define MAKE_DETAIL_WITH_INDEX(error, index)
#define byte_array_fini(buf)
#define byte_array_init(buf, size)
#define DEFINE_BYTE_ARRAY(buf, size)
#define ZIP_ER_DETAIL_CDIR_ENTRY_INVALID