summaryrefslogtreecommitdiff
path: root/navit/maptool/zip.c
diff options
context:
space:
mode:
authormartin-s <martin-s@ffa7fe5e-494d-0410-b361-a75ebd5db220>2010-06-28 08:35:30 +0000
committermartin-s <martin-s@ffa7fe5e-494d-0410-b361-a75ebd5db220>2010-06-28 08:35:30 +0000
commit098901c8cb08c1d6b90afd8bcff9515c0a54c6ed (patch)
treecfe0cc2d7143b60421041d1a678c4a72ed7f1ea9 /navit/maptool/zip.c
parentbe80d9106cd40998253440a51381464fb1d9bd29 (diff)
downloadnavit-098901c8cb08c1d6b90afd8bcff9515c0a54c6ed.tar.gz
Fix:maptool:64 bit support
git-svn-id: http://svn.code.sf.net/p/navit/code/trunk/navit@3428 ffa7fe5e-494d-0410-b361-a75ebd5db220
Diffstat (limited to 'navit/maptool/zip.c')
-rw-r--r--navit/maptool/zip.c28
1 files changed, 28 insertions, 0 deletions
diff --git a/navit/maptool/zip.c b/navit/maptool/zip.c
index 9fde88250..5229f3642 100644
--- a/navit/maptool/zip.c
+++ b/navit/maptool/zip.c
@@ -266,9 +266,37 @@ zip_write_directory(struct zip_info *info)
0x0,
0x0,
};
+ struct zip64_eoc eoc64 = {
+ 0x06064b50,
+ 0x0,
+ 0x0,
+ 0x0403,
+ 0x0,
+ 0x0,
+ 0x0,
+ 0x0,
+ 0x0,
+ 0x0,
+ };
+ struct zip64_eocl eocl = {
+ 0x07064b50,
+ 0x0,
+ 0x0,
+ 0x0,
+ };
fseek(info->dir, 0, SEEK_SET);
cat(info->dir, info->res);
+ if (info->zip64) {
+ eoc64.zip64esize=sizeof(eoc64)-12;
+ eoc64.zip64enum=info->zipnum;
+ eoc64.zip64ecenn=info->zipnum;
+ eoc64.zip64ecsz=info->dir_size;
+ eoc64.zip64eofst=info->offset;
+ fwrite(&eoc64, sizeof(eoc64), 1, info->res);
+ eocl.zip64lofst=info->offset+info->dir_size;
+ fwrite(&eocl, sizeof(eocl), 1, info->res);
+ }
eoc.zipenum=info->zipnum;
eoc.zipecenn=info->zipnum;
eoc.zipecsz=info->dir_size;