|  | typedef struct ZipHead	ZipHead; | 
|  |  | 
|  | enum | 
|  | { | 
|  | /* | 
|  | * magic numbers | 
|  | */ | 
|  | ZHeader		= 0x04034b50, | 
|  | ZCHeader	= 0x02014b50, | 
|  | ZECHeader	= 0x06054b50, | 
|  |  | 
|  | /* | 
|  | * "general purpose flag" bits | 
|  | */ | 
|  | ZEncrypted	= 1 << 0, | 
|  | ZTrailInfo	= 1 << 3,	/* uncsize, csize, and crc are in trailer */ | 
|  | ZCompPatch	= 1 << 5,	/* compression patched data */ | 
|  |  | 
|  | /*	ZCrcPoly	= 0xedb88320, */ | 
|  | #define	ZCrcPoly	0xedb88320 | 
|  |  | 
|  | /* | 
|  | * compression method | 
|  | */ | 
|  | ZDeflate	= 8, | 
|  |  | 
|  | /* | 
|  | * internal file attributes | 
|  | */ | 
|  | ZIsText		= 1 << 0, | 
|  |  | 
|  | /* | 
|  | * file attribute interpretation, from high byte of version | 
|  | */ | 
|  | ZDos		= 0, | 
|  | ZAmiga		= 1, | 
|  | ZVMS		= 2, | 
|  | ZUnix		= 3, | 
|  | ZVMCMS		= 4, | 
|  | ZAtariST	= 5, | 
|  | ZOS2HPFS	= 6, | 
|  | ZMac		= 7, | 
|  | ZZsys		= 8, | 
|  | ZCPM		= 9, | 
|  | ZNtfs		= 10, | 
|  |  | 
|  | /* | 
|  | * external attribute flags for ZDos | 
|  | */ | 
|  | ZDROnly		= 0x01, | 
|  | ZDHidden	= 0x02, | 
|  | ZDSystem	= 0x04, | 
|  | ZDVLable	= 0x08, | 
|  | ZDDir		= 0x10, | 
|  | ZDArch		= 0x20, | 
|  |  | 
|  | ZHeadSize	= 4 + 2 + 2 + 2 + 2 + 2 + 4 + 4 + 4 + 2 + 2, | 
|  | ZHeadCrc	= 4 + 2 + 2 + 2 + 2 + 2, | 
|  | ZTrailSize	= 4 + 4 + 4, | 
|  | ZCHeadSize	= 4 + 2 + 2 + 2 + 2 + 2 + 2 + 4 + 4 + 4 + 2 + 2 + 2 + 2 + 2 + 4 + 4, | 
|  | ZECHeadSize	= 4 + 2 + 2 + 2 + 2 + 4 + 4 + 2 | 
|  | }; | 
|  |  | 
|  | /* | 
|  | * interesting info from a zip header | 
|  | */ | 
|  | struct ZipHead | 
|  | { | 
|  | int	madeos;			/* version made by */ | 
|  | int	madevers; | 
|  | int	extos;			/* version needed to extract */ | 
|  | int	extvers; | 
|  | int	flags;			/* general purpose bit flag */ | 
|  | int	meth; | 
|  | int	modtime; | 
|  | int	moddate; | 
|  | ulong	crc; | 
|  | ulong	csize; | 
|  | ulong	uncsize; | 
|  | int	iattr; | 
|  | ulong	eattr; | 
|  | ulong	off; | 
|  | char	*file; | 
|  | }; |