git-svn-id: https://navit.svn.sourceforge.net/svnroot/navit/trunk/navit@2748
ffa7fe5e-494d-0410-b361-
a75ebd5db220
long long offset;
int compression_level;
int maxnamelen;
long long offset;
int compression_level;
int maxnamelen;
FILE *res;
FILE *index;
FILE *dir;
FILE *res;
FILE *index;
FILE *dir;
0x0,
zip_info->offset,
};
0x0,
zip_info->offset,
};
+ struct zip_cd_ext cd_ext = {
+ 0x1,
+ 0x8,
+ zip_info->offset,
+ };
char filename[filelen+1];
int error,crc,len,comp_size=data_size;
uLongf destlen=data_size+data_size/500+12;
char filename[filelen+1];
int error,crc,len,comp_size=data_size;
uLongf destlen=data_size+data_size/500+12;
cd.zipcsiz=comp_size;
cd.zipcunc=data_size;
cd.zipcmthd=zip_info->compression_level ? 8:0;
cd.zipcsiz=comp_size;
cd.zipcunc=data_size;
cd.zipcmthd=zip_info->compression_level ? 8:0;
+ if (zip_info->zip64) {
+ cd.zipofst=0xffffffff;
+ cd.zipcxtl=sizeof(cd_ext);
+ }
strcpy(filename, name);
len=strlen(filename);
while (len < filelen) {
strcpy(filename, name);
len=strlen(filename);
while (len < filelen) {
fwrite(&cd, sizeof(cd), 1, zip_info->dir);
fwrite(filename, filelen, 1, zip_info->dir);
zip_info->dir_size+=sizeof(cd)+filelen;
fwrite(&cd, sizeof(cd), 1, zip_info->dir);
fwrite(filename, filelen, 1, zip_info->dir);
zip_info->dir_size+=sizeof(cd)+filelen;
+ if (zip_info->zip64) {
+ fwrite(&cd_ext, sizeof(cd_ext), 1, zip_info->dir);
+ zip_info->dir_size+=sizeof(cd_ext);
+ }
#define zip_eoc_sig 0x6054b50
#define zip_eoc_sig 0x6054b50
+struct zip_cd_ext {
+ short tag;
+ short size;
+ unsigned long long zipofst;
+} __attribute__ ((packed));
+
struct zip_eoc {
int zipesig;
unsigned short zipedsk;
struct zip_eoc {
int zipesig;
unsigned short zipedsk;