/* This Source Code Form is subject to the terms of the Mozilla Public * License, v. 2.0. If a copy of the MPL was not distributed with this * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ /* * JARFILE.H * * Certain constants and structures for the archive format. * */ /* ZIP */ struct ZipLocal { /* 30 bytes */ char signature[4]; char word[2]; char bitflag[2]; char method[2]; char time[2]; char date[2]; char crc32[4]; char size[4]; char orglen[4]; char filename_len[2]; char extrafield_len[2]; }; struct ZipCentral { /* 46 bytes */ char signature[4]; char version_made_by[2]; char version[2]; char bitflag[2]; char method[2]; char time[2]; char date[2]; char crc32[4]; char size[4]; char orglen[4]; char filename_len[2]; char extrafield_len[2]; char commentfield_len[2]; char diskstart_number[2]; char internal_attributes[2]; char external_attributes[4]; char localhdr_offset[4]; }; struct ZipEnd { /* 22 bytes */ char signature[4]; char disk_nr[2]; char start_central_dir[2]; char total_entries_disk[2]; char total_entries_archive[2]; char central_dir_size[4]; char offset_central_dir[4]; char commentfield_len[2]; }; #define LSIG 0x04034B50l #define CSIG 0x02014B50l #define ESIG 0x06054B50l /* TAR */ union TarEntry { /* 512 bytes */ struct header { /* 257 bytes */ char filename[100]; char mode[8]; char uid[8]; char gid[8]; char size[12]; char time[12]; char checksum[8]; char linkflag; char linkname[100]; } val; char buffer[512]; };