Update zip structs
This commit is contained in:
parent
4c6972b961
commit
8bb984e61a
1 changed files with 47 additions and 14 deletions
|
|
@ -1,9 +1,12 @@
|
|||
#ifndef LIBMINEZIPER_ZIP_H
|
||||
#define LIBMINEZIPER_ZIP_H
|
||||
|
||||
#define START_CDH_SEARCH 22
|
||||
#define CDH_MB "PK\05\06"
|
||||
#define LFH_MB "PK\03\04"
|
||||
#pragma pack(1)
|
||||
|
||||
#define START_EOCD_SEARCH 22
|
||||
#define EOCD_SIG "PK\05\06"
|
||||
#define LFH_SIG "PK\03\04"
|
||||
#define CDH_SIG "PK\01\02"
|
||||
|
||||
typedef struct raw
|
||||
{
|
||||
|
|
@ -13,26 +16,56 @@ typedef struct raw
|
|||
|
||||
typedef struct LFH
|
||||
{
|
||||
char mb[4]; // CDH_MB "PK\03\04"
|
||||
void* crc32; // TODO TYPE?
|
||||
int size_compressed_data;
|
||||
int size_uncompressed_data;
|
||||
void* filename; // TODO TYPE?
|
||||
void* data;
|
||||
int sig; // LFH_SIG "PK\03\04"
|
||||
short version;
|
||||
short f;
|
||||
short compression_method;
|
||||
short last_mod_time;
|
||||
short last_mod_date;
|
||||
int crc32;
|
||||
int compressed_size;
|
||||
int uncompressed_size;
|
||||
short filename_length;
|
||||
short extra_field_length;
|
||||
char* filename;
|
||||
} LFH;
|
||||
|
||||
typedef struct CDH
|
||||
{
|
||||
char mb[4]; // CDH_MB "PK\05\06"
|
||||
void* crc32; // TODO TYPE?
|
||||
LFH* lfh;
|
||||
void* filename; // TODO TYPE?
|
||||
int sig; // CDH_SIG "PK\01\02"
|
||||
short v1;
|
||||
short v2;
|
||||
short f;
|
||||
short compression_method;
|
||||
short last_mod_time;
|
||||
short last_mod_date;
|
||||
int crc32;
|
||||
int compressed_size;
|
||||
int uncompressed_size;
|
||||
short filename_length;
|
||||
short extra_field_length;
|
||||
short file_comment_length;
|
||||
short disk_number_start;
|
||||
short internal_file_attributes;
|
||||
int external_file_attributes;
|
||||
int off_lfh;
|
||||
} CDH;
|
||||
|
||||
typedef struct EOCD
|
||||
{
|
||||
int sig; // CDH_SIG "PK\05\06"
|
||||
char d[6];
|
||||
short number_of_entries;
|
||||
int size_cdh;
|
||||
int off_cdh;
|
||||
} EOCD;
|
||||
|
||||
typedef struct zip
|
||||
{
|
||||
// compression type
|
||||
CDH* cd;
|
||||
char* cd;
|
||||
CDH** cdh;
|
||||
EOCD* eocd;
|
||||
} zip;
|
||||
|
||||
void find_cdh(raw* raw, zip* out);
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue