X-Git-Url: http://wien.tomnetworks.com/gitweb/?a=blobdiff_plain;f=unzip.h;h=cf5f048f30ee3820148a0af79f191dcbb5c9679e;hb=c0aafa761ce099512c6b4899bc9e835c0c134a04;hp=98d00da33cb1b4b629b76a1eb346e1102a69dc36;hpb=4f2cf32bfd4a52dcc8bfb7cd8a0d5fd51a11af63;p=cacao.git diff --git a/unzip.h b/unzip.h index 98d00da33..cf5f048f3 100644 --- a/unzip.h +++ b/unzip.h @@ -120,6 +120,70 @@ typedef struct unz_file_info_s tm_unz tmu_date; } unz_file_info; + +/* unz_file_info_interntal contain internal info about a file in zipfile*/ +typedef struct unz_file_info_internal_s +{ + uLong offset_curfile;/* relative offset of local header 4 bytes */ +} unz_file_info_internal; + + +/* file_in_zip_read_info_s contain internal information about a file in zipfile, + when reading and decompress it */ +typedef struct +{ + char *read_buffer; /* internal buffer for compressed data */ + z_stream stream; /* zLib stream structure for inflate */ + + uLong pos_in_zipfile; /* position in byte on the zipfile, for fseek*/ + uLong stream_initialised; /* flag set if stream structure is initialised*/ + + uLong offset_local_extrafield;/* offset of the local extra field */ + uInt size_local_extrafield;/* size of the local extra field */ + uLong pos_local_extrafield; /* position in the local extra field in read*/ + + uLong crc32; /* crc32 of all data uncompressed */ + uLong crc32_wait; /* crc32 we must obtain after decompress all */ + uLong rest_read_compressed; /* number of byte to be decompressed */ + uLong rest_read_uncompressed;/*number of byte to be obtained after decomp*/ + FILE* file; /* io structore of the zipfile */ + uLong compression_method; /* compression method (0==store) */ + uLong byte_before_the_zipfile;/* byte before the zipfile, (>0 for sfx)*/ +} file_in_zip_read_info_s; + + +/*JOWENN*/ +typedef struct cacao_entry +{ + struct cacao_entry *next; + utf *name; + uLong pos; +} cacao_entry_s; + +/* unz_s contain internal information about the zipfile +*/ +typedef struct +{ + FILE* file; /* io structore of the zipfile */ + unz_global_info gi; /* public global information */ + uLong byte_before_the_zipfile;/* byte before the zipfile, (>0 for sfx)*/ + uLong num_file; /* number of the current file in the zipfile*/ + uLong pos_in_central_dir; /* pos of the current file in the central dir*/ + uLong current_file_ok; /* flag about the usability of the current file*/ + uLong central_pos; /* position of the beginning of the central dir*/ + + uLong size_central_dir; /* size of the central directory */ + uLong offset_central_dir; /* offset of start of central directory with + respect to the starting disk number */ + + unz_file_info cur_file_info; /* public info about the current file in zip*/ + unz_file_info_internal cur_file_info_internal; /* private info about it*/ + file_in_zip_read_info_s* pfile_in_zip_read; /* structure about the current + file if we are decompressing it */ + cacao_entry_s *cacao_dir_list; +} unz_s; + + int unzStringFileNameCompare OF ((const char* fileName1, const char* fileName2, int iCaseSensitivity));