mirror of
https://github.com/wnayes/macutils.git
synced 2024-12-22 01:30:15 +00:00
60 lines
1.2 KiB
C
60 lines
1.2 KiB
C
#define FILEHDRSIZE 22
|
|
#define TOTALSIZE 64
|
|
#define L_HSIZE 0
|
|
#define L_HCRC 1
|
|
#define L_METHOD 2
|
|
#define L_PSIZE 7
|
|
#define L_UPSIZE 11
|
|
#define L_LASTMOD 15
|
|
#define L_ATTRIBUTE 19
|
|
|
|
/* Level 0 and level 1 headers */
|
|
#define L_NLENGTH 21
|
|
#define L_NAME 22
|
|
/* Offset after name */
|
|
#define L_CRC 0
|
|
#define L_ETYPE 2
|
|
#define L_EXTENDSZ 3
|
|
#define L_EXTEND 4
|
|
|
|
/* Level 2 header */
|
|
#define L_2CRC 21
|
|
#define L_2ETYPE 23
|
|
#define L_2EXTENDSZ 24
|
|
#define L_2EXTEND 25
|
|
|
|
/* Extension definition, EXTEND defines the size of the extension. */
|
|
#define L_KIND 0 /* After EXTEND */
|
|
#define L_ENAME 2 /* Extension name, EXTEND-3 bytes long */
|
|
/* Offset after name */
|
|
#define L_EEXTENDSZ 0
|
|
#define L_EEXTEND 1
|
|
|
|
typedef struct fileHdr { /* 58 bytes */
|
|
unsigned char hsize;
|
|
unsigned char hcrc;
|
|
char method[5];
|
|
unsigned long psize;
|
|
unsigned long upsize;
|
|
unsigned long lastmod;
|
|
unsigned short attribute;
|
|
unsigned char nlength;
|
|
char name[32];
|
|
unsigned short crc;
|
|
unsigned char etype;
|
|
unsigned char extendsize;
|
|
char *extend;
|
|
char *data;
|
|
} fileHdr;
|
|
|
|
/* Currently known methods: */
|
|
#define lh0 0
|
|
#define lh1 1
|
|
#define lh2 2
|
|
#define lh3 3
|
|
#define lh4 4
|
|
#define lh5 5
|
|
#define lz4 6
|
|
#define lz5 7
|
|
#define lzs 8
|