zzip_byte_t * zzip_disk_entry_to_data((ZZIP_DISK * disk, struct zzip_disk_entry * entry));
struct zzip_file_header * zzip_disk_entry_to_file_header((ZZIP_DISK * disk, struct zzip_disk_entry *entry));
zzip__new__ char * zzip_disk_entry_strdup_name((ZZIP_DISK * disk, struct zzip_disk_entry *entry));
zzip__new__ char * zzip_disk_entry_strdup_comment((ZZIP_DISK * disk, struct zzip_disk_entry *entry));
The zzip_disk_entry_to_data function augments the other zzip_disk_entry_* helpers: here we move a disk_entry pointer (as returned by _find* functions) into a pointer to the data block right after the file_header. Only disk->buffer would be needed to perform the seek but we check the mmapped range end as well.
The zzip_disk_entry_to_file_header function does half the job of zzip_disk_entry_to_data where it can augment with zzip_file_header_to_data helper from format/fetch.h
The zzip_disk_entry_strdup_name function is a big helper despite its little name: in a zip file the encoded filenames are usually NOT zero-terminated but for common usage with libc we need it that way. Secondly, the filename SHOULD be present in the zip central directory but if not then we fallback to the filename given in the file_header of each compressed data portion.
The zzip_disk_entry_strdup_comment function is similar creating a reference to a zero terminated string but it can only exist in the zip central directory entry.
o Guido Draheim <email@example.com>
Copyright (c) 2003,2004,2006 Guido Draheim All rights reserved, use under the restrictions of the Lesser GNU General Public License or alternatively the restrictions of the Mozilla Public License 1.1