diff options
author | martin-s <martin-s@ffa7fe5e-494d-0410-b361-a75ebd5db220> | 2010-06-28 08:35:30 +0000 |
---|---|---|
committer | martin-s <martin-s@ffa7fe5e-494d-0410-b361-a75ebd5db220> | 2010-06-28 08:35:30 +0000 |
commit | 098901c8cb08c1d6b90afd8bcff9515c0a54c6ed (patch) | |
tree | cfe0cc2d7143b60421041d1a678c4a72ed7f1ea9 /navit/maptool/zip.c | |
parent | be80d9106cd40998253440a51381464fb1d9bd29 (diff) | |
download | navit-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.c | 28 |
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; |