Subversion Repositories planix.SVN

Rev

Rev 2 | Details | Compare with Previous | Last modification | View Log | RSS feed

Rev Author Line No. Line
2 - 1
typedef struct ZipHead	ZipHead;
2
 
3
enum
4
{
5
	/*
6
	 * magic numbers
7
	 */
8
	ZHeader		= 0x04034b50,
9
	ZCHeader	= 0x02014b50,
10
	ZECHeader	= 0x06054b50,
11
 
12
	/*
13
	 * "general purpose flag" bits
14
	 */
15
	ZEncrypted	= 1 << 0,
16
	ZTrailInfo	= 1 << 3,	/* uncsize, csize, and crc are in trailer */
17
	ZCompPatch	= 1 << 5,	/* compression patched data */
18
 
19
	ZCrcPoly	= 0xedb88320,
20
 
21
	/*
22
	 * compression method
23
	 */
24
	ZDeflate	= 8,
25
 
26
	/*
27
	 * internal file attributes
28
	 */
29
	ZIsText		= 1 << 0,
30
 
31
	/*
32
	 * file attribute interpretation, from high byte of version
33
	 */
34
	ZDos		= 0,
35
	ZAmiga		= 1,
36
	ZVMS		= 2,
37
	ZUnix		= 3,
38
	ZVMCMS		= 4,
39
	ZAtariST	= 5,
40
	ZOS2HPFS	= 6,
41
	ZMac		= 7,
42
	ZZsys		= 8,
43
	ZCPM		= 9,
44
	ZNtfs		= 10,
45
 
46
	/*
47
	 * external attribute flags for ZDos
48
	 */
49
	ZDROnly		= 0x01,
50
	ZDHidden	= 0x02,
51
	ZDSystem	= 0x04,
52
	ZDVLable	= 0x08,
53
	ZDDir		= 0x10,
54
	ZDArch		= 0x20,
55
 
56
	ZHeadSize	= 4 + 2 + 2 + 2 + 2 + 2 + 4 + 4 + 4 + 2 + 2,
57
	ZHeadCrc	= 4 + 2 + 2 + 2 + 2 + 2,
58
	ZTrailSize	= 4 + 4 + 4,
59
	ZCHeadSize	= 4 + 2 + 2 + 2 + 2 + 2 + 2 + 4 + 4 + 4 + 2 + 2 + 2 + 2 + 2 + 4 + 4,
60
	ZECHeadSize	= 4 + 2 + 2 + 2 + 2 + 4 + 4 + 2,
61
};
62
 
63
/*
64
 * interesting info from a zip header
65
 */
66
struct ZipHead
67
{
68
	int	madeos;			/* version made by */
69
	int	madevers;
70
	int	extos;			/* version needed to extract */
71
	int	extvers;
72
	int	flags;			/* general purpose bit flag */
73
	int	meth;
74
	int	modtime;
75
	int	moddate;
76
	ulong	crc;
77
	ulong	csize;
78
	ulong	uncsize;
79
	int	iattr;
80
	ulong	eattr;
81
	ulong	off;
82
	char	*file;
83
};