1381716e9396b55b1adb8235b020c37344f60ab07Elliott Hughes/* zip.h -- IO on .zip files using zlib 2381716e9396b55b1adb8235b020c37344f60ab07Elliott Hughes Version 1.1, February 14h, 2010 3381716e9396b55b1adb8235b020c37344f60ab07Elliott Hughes part of the MiniZip project - ( http://www.winimage.com/zLibDll/minizip.html ) 49e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project 5381716e9396b55b1adb8235b020c37344f60ab07Elliott Hughes Copyright (C) 1998-2010 Gilles Vollant (minizip) ( http://www.winimage.com/zLibDll/minizip.html ) 69e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project 7381716e9396b55b1adb8235b020c37344f60ab07Elliott Hughes Modifications for Zip64 support 8381716e9396b55b1adb8235b020c37344f60ab07Elliott Hughes Copyright (C) 2009-2010 Mathias Svensson ( http://result42.com ) 99e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project 10381716e9396b55b1adb8235b020c37344f60ab07Elliott Hughes For more info read MiniZip_info.txt 119e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project 12381716e9396b55b1adb8235b020c37344f60ab07Elliott Hughes --------------------------------------------------------------------------- 139e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project 149e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project Condition of use and distribution are the same than zlib : 159e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project 169e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project This software is provided 'as-is', without any express or implied 179e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project warranty. In no event will the authors be held liable for any damages 189e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project arising from the use of this software. 199e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project 209e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project Permission is granted to anyone to use this software for any purpose, 219e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project including commercial applications, and to alter it and redistribute it 229e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project freely, subject to the following restrictions: 239e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project 249e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project 1. The origin of this software must not be misrepresented; you must not 259e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project claim that you wrote the original software. If you use this software 269e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project in a product, an acknowledgment in the product documentation would be 279e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project appreciated but is not required. 289e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project 2. Altered source versions must be plainly marked as such, and must not be 299e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project misrepresented as being the original software. 309e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project 3. This notice may not be removed or altered from any source distribution. 319e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project 32381716e9396b55b1adb8235b020c37344f60ab07Elliott Hughes --------------------------------------------------------------------------- 339e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project 34381716e9396b55b1adb8235b020c37344f60ab07Elliott Hughes Changes 35381716e9396b55b1adb8235b020c37344f60ab07Elliott Hughes 36381716e9396b55b1adb8235b020c37344f60ab07Elliott Hughes See header of zip.h 379e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project 389e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project*/ 399e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project 40381716e9396b55b1adb8235b020c37344f60ab07Elliott Hughes#ifndef _zip12_H 41381716e9396b55b1adb8235b020c37344f60ab07Elliott Hughes#define _zip12_H 429e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project 439e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project#ifdef __cplusplus 449e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Projectextern "C" { 459e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project#endif 469e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project 47381716e9396b55b1adb8235b020c37344f60ab07Elliott Hughes//#define HAVE_BZIP2 48381716e9396b55b1adb8235b020c37344f60ab07Elliott Hughes 499e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project#ifndef _ZLIB_H 509e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project#include "zlib.h" 519e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project#endif 529e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project 539e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project#ifndef _ZLIBIOAPI_H 549e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project#include "ioapi.h" 559e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project#endif 569e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project 57381716e9396b55b1adb8235b020c37344f60ab07Elliott Hughes#ifdef HAVE_BZIP2 58381716e9396b55b1adb8235b020c37344f60ab07Elliott Hughes#include "bzlib.h" 59381716e9396b55b1adb8235b020c37344f60ab07Elliott Hughes#endif 60381716e9396b55b1adb8235b020c37344f60ab07Elliott Hughes 61381716e9396b55b1adb8235b020c37344f60ab07Elliott Hughes#define Z_BZIP2ED 12 62381716e9396b55b1adb8235b020c37344f60ab07Elliott Hughes 639e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project#if defined(STRICTZIP) || defined(STRICTZIPUNZIP) 649e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project/* like the STRICT of WIN32, we define a pointer that cannot be converted 659e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project from (void*) without cast */ 669e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Projecttypedef struct TagzipFile__ { int unused; } zipFile__; 679e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Projecttypedef zipFile__ *zipFile; 689e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project#else 699e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Projecttypedef voidp zipFile; 709e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project#endif 719e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project 729e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project#define ZIP_OK (0) 739e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project#define ZIP_EOF (0) 749e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project#define ZIP_ERRNO (Z_ERRNO) 759e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project#define ZIP_PARAMERROR (-102) 769e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project#define ZIP_BADZIPFILE (-103) 779e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project#define ZIP_INTERNALERROR (-104) 789e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project 799e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project#ifndef DEF_MEM_LEVEL 809e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project# if MAX_MEM_LEVEL >= 8 819e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project# define DEF_MEM_LEVEL 8 829e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project# else 839e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project# define DEF_MEM_LEVEL MAX_MEM_LEVEL 849e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project# endif 859e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project#endif 869e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project/* default memLevel */ 879e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project 889e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project/* tm_zip contain date/time info */ 899e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Projecttypedef struct tm_zip_s 909e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project{ 919e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project uInt tm_sec; /* seconds after the minute - [0,59] */ 929e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project uInt tm_min; /* minutes after the hour - [0,59] */ 939e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project uInt tm_hour; /* hours since midnight - [0,23] */ 949e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project uInt tm_mday; /* day of the month - [1,31] */ 959e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project uInt tm_mon; /* months since January - [0,11] */ 969e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project uInt tm_year; /* years - [1980..2044] */ 979e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project} tm_zip; 989e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project 999e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Projecttypedef struct 1009e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project{ 1019e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project tm_zip tmz_date; /* date in understandable format */ 1029e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project uLong dosDate; /* if dos_date == 0, tmu_date is used */ 1039e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project/* uLong flag; */ /* general purpose bit flag 2 bytes */ 1049e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project 1059e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project uLong internal_fa; /* internal file attributes 2 bytes */ 1069e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project uLong external_fa; /* external file attributes 4 bytes */ 1079e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project} zip_fileinfo; 1089e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project 1099e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Projecttypedef const char* zipcharpc; 1109e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project 1119e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project 1129e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project#define APPEND_STATUS_CREATE (0) 1139e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project#define APPEND_STATUS_CREATEAFTER (1) 1149e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project#define APPEND_STATUS_ADDINZIP (2) 1159e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project 1169e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Projectextern zipFile ZEXPORT zipOpen OF((const char *pathname, int append)); 117381716e9396b55b1adb8235b020c37344f60ab07Elliott Hughesextern zipFile ZEXPORT zipOpen64 OF((const void *pathname, int append)); 1189e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project/* 1199e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project Create a zipfile. 1209e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project pathname contain on Windows XP a filename like "c:\\zlib\\zlib113.zip" or on 1219e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project an Unix computer "zlib/zlib113.zip". 1229e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project if the file pathname exist and append==APPEND_STATUS_CREATEAFTER, the zip 1239e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project will be created at the end of the file. 1249e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project (useful if the file contain a self extractor code) 1259e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project if the file pathname exist and append==APPEND_STATUS_ADDINZIP, we will 1269e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project add files in existing zip (be sure you don't add file that doesn't exist) 1279e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project If the zipfile cannot be opened, the return value is NULL. 1289e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project Else, the return value is a zipFile Handle, usable with other function 1299e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project of this zip package. 1309e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project*/ 1319e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project 1329e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project/* Note : there is no delete function into a zipfile. 1339e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project If you want delete file into a zipfile, you must open a zipfile, and create another 1349e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project Of couse, you can use RAW reading and writing to copy the file you did not want delte 1359e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project*/ 1369e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project 1379e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Projectextern zipFile ZEXPORT zipOpen2 OF((const char *pathname, 1389e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project int append, 1399e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project zipcharpc* globalcomment, 1409e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project zlib_filefunc_def* pzlib_filefunc_def)); 1419e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project 142381716e9396b55b1adb8235b020c37344f60ab07Elliott Hughesextern zipFile ZEXPORT zipOpen2_64 OF((const void *pathname, 143381716e9396b55b1adb8235b020c37344f60ab07Elliott Hughes int append, 144381716e9396b55b1adb8235b020c37344f60ab07Elliott Hughes zipcharpc* globalcomment, 145381716e9396b55b1adb8235b020c37344f60ab07Elliott Hughes zlib_filefunc64_def* pzlib_filefunc_def)); 146381716e9396b55b1adb8235b020c37344f60ab07Elliott Hughes 1479e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Projectextern int ZEXPORT zipOpenNewFileInZip OF((zipFile file, 1489e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project const char* filename, 1499e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project const zip_fileinfo* zipfi, 1509e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project const void* extrafield_local, 1519e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project uInt size_extrafield_local, 1529e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project const void* extrafield_global, 1539e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project uInt size_extrafield_global, 1549e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project const char* comment, 1559e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project int method, 1569e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project int level)); 157381716e9396b55b1adb8235b020c37344f60ab07Elliott Hughes 158381716e9396b55b1adb8235b020c37344f60ab07Elliott Hughesextern int ZEXPORT zipOpenNewFileInZip64 OF((zipFile file, 159381716e9396b55b1adb8235b020c37344f60ab07Elliott Hughes const char* filename, 160381716e9396b55b1adb8235b020c37344f60ab07Elliott Hughes const zip_fileinfo* zipfi, 161381716e9396b55b1adb8235b020c37344f60ab07Elliott Hughes const void* extrafield_local, 162381716e9396b55b1adb8235b020c37344f60ab07Elliott Hughes uInt size_extrafield_local, 163381716e9396b55b1adb8235b020c37344f60ab07Elliott Hughes const void* extrafield_global, 164381716e9396b55b1adb8235b020c37344f60ab07Elliott Hughes uInt size_extrafield_global, 165381716e9396b55b1adb8235b020c37344f60ab07Elliott Hughes const char* comment, 166381716e9396b55b1adb8235b020c37344f60ab07Elliott Hughes int method, 167381716e9396b55b1adb8235b020c37344f60ab07Elliott Hughes int level, 168381716e9396b55b1adb8235b020c37344f60ab07Elliott Hughes int zip64)); 169381716e9396b55b1adb8235b020c37344f60ab07Elliott Hughes 1709e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project/* 1719e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project Open a file in the ZIP for writing. 1729e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project filename : the filename in zip (if NULL, '-' without quote will be used 1739e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project *zipfi contain supplemental information 1749e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project if extrafield_local!=NULL and size_extrafield_local>0, extrafield_local 1759e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project contains the extrafield data the the local header 1769e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project if extrafield_global!=NULL and size_extrafield_global>0, extrafield_global 1779e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project contains the extrafield data the the local header 1789e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project if comment != NULL, comment contain the comment string 1799e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project method contain the compression method (0 for store, Z_DEFLATED for deflate) 1809e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project level contain the level of compression (can be Z_DEFAULT_COMPRESSION) 181381716e9396b55b1adb8235b020c37344f60ab07Elliott Hughes zip64 is set to 1 if a zip64 extended information block should be added to the local file header. 182381716e9396b55b1adb8235b020c37344f60ab07Elliott Hughes this MUST be '1' if the uncompressed size is >= 0xffffffff. 183381716e9396b55b1adb8235b020c37344f60ab07Elliott Hughes 1849e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project*/ 1859e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project 1869e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project 1879e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Projectextern int ZEXPORT zipOpenNewFileInZip2 OF((zipFile file, 1889e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project const char* filename, 1899e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project const zip_fileinfo* zipfi, 1909e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project const void* extrafield_local, 1919e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project uInt size_extrafield_local, 1929e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project const void* extrafield_global, 1939e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project uInt size_extrafield_global, 1949e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project const char* comment, 1959e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project int method, 1969e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project int level, 1979e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project int raw)); 1989e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project 199381716e9396b55b1adb8235b020c37344f60ab07Elliott Hughes 200381716e9396b55b1adb8235b020c37344f60ab07Elliott Hughesextern int ZEXPORT zipOpenNewFileInZip2_64 OF((zipFile file, 201381716e9396b55b1adb8235b020c37344f60ab07Elliott Hughes const char* filename, 202381716e9396b55b1adb8235b020c37344f60ab07Elliott Hughes const zip_fileinfo* zipfi, 203381716e9396b55b1adb8235b020c37344f60ab07Elliott Hughes const void* extrafield_local, 204381716e9396b55b1adb8235b020c37344f60ab07Elliott Hughes uInt size_extrafield_local, 205381716e9396b55b1adb8235b020c37344f60ab07Elliott Hughes const void* extrafield_global, 206381716e9396b55b1adb8235b020c37344f60ab07Elliott Hughes uInt size_extrafield_global, 207381716e9396b55b1adb8235b020c37344f60ab07Elliott Hughes const char* comment, 208381716e9396b55b1adb8235b020c37344f60ab07Elliott Hughes int method, 209381716e9396b55b1adb8235b020c37344f60ab07Elliott Hughes int level, 210381716e9396b55b1adb8235b020c37344f60ab07Elliott Hughes int raw, 211381716e9396b55b1adb8235b020c37344f60ab07Elliott Hughes int zip64)); 2129e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project/* 2139e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project Same than zipOpenNewFileInZip, except if raw=1, we write raw file 2149e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project */ 2159e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project 2169e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Projectextern int ZEXPORT zipOpenNewFileInZip3 OF((zipFile file, 2179e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project const char* filename, 2189e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project const zip_fileinfo* zipfi, 2199e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project const void* extrafield_local, 2209e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project uInt size_extrafield_local, 2219e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project const void* extrafield_global, 2229e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project uInt size_extrafield_global, 2239e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project const char* comment, 2249e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project int method, 2259e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project int level, 2269e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project int raw, 2279e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project int windowBits, 2289e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project int memLevel, 2299e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project int strategy, 2309e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project const char* password, 231381716e9396b55b1adb8235b020c37344f60ab07Elliott Hughes uLong crcForCrypting)); 232381716e9396b55b1adb8235b020c37344f60ab07Elliott Hughes 233381716e9396b55b1adb8235b020c37344f60ab07Elliott Hughesextern int ZEXPORT zipOpenNewFileInZip3_64 OF((zipFile file, 234381716e9396b55b1adb8235b020c37344f60ab07Elliott Hughes const char* filename, 235381716e9396b55b1adb8235b020c37344f60ab07Elliott Hughes const zip_fileinfo* zipfi, 236381716e9396b55b1adb8235b020c37344f60ab07Elliott Hughes const void* extrafield_local, 237381716e9396b55b1adb8235b020c37344f60ab07Elliott Hughes uInt size_extrafield_local, 238381716e9396b55b1adb8235b020c37344f60ab07Elliott Hughes const void* extrafield_global, 239381716e9396b55b1adb8235b020c37344f60ab07Elliott Hughes uInt size_extrafield_global, 240381716e9396b55b1adb8235b020c37344f60ab07Elliott Hughes const char* comment, 241381716e9396b55b1adb8235b020c37344f60ab07Elliott Hughes int method, 242381716e9396b55b1adb8235b020c37344f60ab07Elliott Hughes int level, 243381716e9396b55b1adb8235b020c37344f60ab07Elliott Hughes int raw, 244381716e9396b55b1adb8235b020c37344f60ab07Elliott Hughes int windowBits, 245381716e9396b55b1adb8235b020c37344f60ab07Elliott Hughes int memLevel, 246381716e9396b55b1adb8235b020c37344f60ab07Elliott Hughes int strategy, 247381716e9396b55b1adb8235b020c37344f60ab07Elliott Hughes const char* password, 248381716e9396b55b1adb8235b020c37344f60ab07Elliott Hughes uLong crcForCrypting, 249381716e9396b55b1adb8235b020c37344f60ab07Elliott Hughes int zip64 250381716e9396b55b1adb8235b020c37344f60ab07Elliott Hughes )); 2519e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project 2529e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project/* 2539e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project Same than zipOpenNewFileInZip2, except 2549e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project windowBits,memLevel,,strategy : see parameter strategy in deflateInit2 2559e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project password : crypting password (NULL for no crypting) 256381716e9396b55b1adb8235b020c37344f60ab07Elliott Hughes crcForCrypting : crc of file to compress (needed for crypting) 257381716e9396b55b1adb8235b020c37344f60ab07Elliott Hughes */ 258381716e9396b55b1adb8235b020c37344f60ab07Elliott Hughes 259381716e9396b55b1adb8235b020c37344f60ab07Elliott Hughesextern int ZEXPORT zipOpenNewFileInZip4 OF((zipFile file, 260381716e9396b55b1adb8235b020c37344f60ab07Elliott Hughes const char* filename, 261381716e9396b55b1adb8235b020c37344f60ab07Elliott Hughes const zip_fileinfo* zipfi, 262381716e9396b55b1adb8235b020c37344f60ab07Elliott Hughes const void* extrafield_local, 263381716e9396b55b1adb8235b020c37344f60ab07Elliott Hughes uInt size_extrafield_local, 264381716e9396b55b1adb8235b020c37344f60ab07Elliott Hughes const void* extrafield_global, 265381716e9396b55b1adb8235b020c37344f60ab07Elliott Hughes uInt size_extrafield_global, 266381716e9396b55b1adb8235b020c37344f60ab07Elliott Hughes const char* comment, 267381716e9396b55b1adb8235b020c37344f60ab07Elliott Hughes int method, 268381716e9396b55b1adb8235b020c37344f60ab07Elliott Hughes int level, 269381716e9396b55b1adb8235b020c37344f60ab07Elliott Hughes int raw, 270381716e9396b55b1adb8235b020c37344f60ab07Elliott Hughes int windowBits, 271381716e9396b55b1adb8235b020c37344f60ab07Elliott Hughes int memLevel, 272381716e9396b55b1adb8235b020c37344f60ab07Elliott Hughes int strategy, 273381716e9396b55b1adb8235b020c37344f60ab07Elliott Hughes const char* password, 274381716e9396b55b1adb8235b020c37344f60ab07Elliott Hughes uLong crcForCrypting, 275381716e9396b55b1adb8235b020c37344f60ab07Elliott Hughes uLong versionMadeBy, 276381716e9396b55b1adb8235b020c37344f60ab07Elliott Hughes uLong flagBase 277381716e9396b55b1adb8235b020c37344f60ab07Elliott Hughes )); 278381716e9396b55b1adb8235b020c37344f60ab07Elliott Hughes 279381716e9396b55b1adb8235b020c37344f60ab07Elliott Hughes 280381716e9396b55b1adb8235b020c37344f60ab07Elliott Hughesextern int ZEXPORT zipOpenNewFileInZip4_64 OF((zipFile file, 281381716e9396b55b1adb8235b020c37344f60ab07Elliott Hughes const char* filename, 282381716e9396b55b1adb8235b020c37344f60ab07Elliott Hughes const zip_fileinfo* zipfi, 283381716e9396b55b1adb8235b020c37344f60ab07Elliott Hughes const void* extrafield_local, 284381716e9396b55b1adb8235b020c37344f60ab07Elliott Hughes uInt size_extrafield_local, 285381716e9396b55b1adb8235b020c37344f60ab07Elliott Hughes const void* extrafield_global, 286381716e9396b55b1adb8235b020c37344f60ab07Elliott Hughes uInt size_extrafield_global, 287381716e9396b55b1adb8235b020c37344f60ab07Elliott Hughes const char* comment, 288381716e9396b55b1adb8235b020c37344f60ab07Elliott Hughes int method, 289381716e9396b55b1adb8235b020c37344f60ab07Elliott Hughes int level, 290381716e9396b55b1adb8235b020c37344f60ab07Elliott Hughes int raw, 291381716e9396b55b1adb8235b020c37344f60ab07Elliott Hughes int windowBits, 292381716e9396b55b1adb8235b020c37344f60ab07Elliott Hughes int memLevel, 293381716e9396b55b1adb8235b020c37344f60ab07Elliott Hughes int strategy, 294381716e9396b55b1adb8235b020c37344f60ab07Elliott Hughes const char* password, 295381716e9396b55b1adb8235b020c37344f60ab07Elliott Hughes uLong crcForCrypting, 296381716e9396b55b1adb8235b020c37344f60ab07Elliott Hughes uLong versionMadeBy, 297381716e9396b55b1adb8235b020c37344f60ab07Elliott Hughes uLong flagBase, 298381716e9396b55b1adb8235b020c37344f60ab07Elliott Hughes int zip64 299381716e9396b55b1adb8235b020c37344f60ab07Elliott Hughes )); 300381716e9396b55b1adb8235b020c37344f60ab07Elliott Hughes/* 301381716e9396b55b1adb8235b020c37344f60ab07Elliott Hughes Same than zipOpenNewFileInZip4, except 302381716e9396b55b1adb8235b020c37344f60ab07Elliott Hughes versionMadeBy : value for Version made by field 303381716e9396b55b1adb8235b020c37344f60ab07Elliott Hughes flag : value for flag field (compression level info will be added) 3049e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project */ 3059e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project 3069e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project 3079e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Projectextern int ZEXPORT zipWriteInFileInZip OF((zipFile file, 3089e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project const void* buf, 3099e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project unsigned len)); 3109e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project/* 3119e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project Write data in the zipfile 3129e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project*/ 3139e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project 3149e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Projectextern int ZEXPORT zipCloseFileInZip OF((zipFile file)); 3159e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project/* 3169e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project Close the current file in the zipfile 3179e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project*/ 3189e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project 3199e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Projectextern int ZEXPORT zipCloseFileInZipRaw OF((zipFile file, 3209e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project uLong uncompressed_size, 3219e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project uLong crc32)); 322381716e9396b55b1adb8235b020c37344f60ab07Elliott Hughes 323381716e9396b55b1adb8235b020c37344f60ab07Elliott Hughesextern int ZEXPORT zipCloseFileInZipRaw64 OF((zipFile file, 324381716e9396b55b1adb8235b020c37344f60ab07Elliott Hughes ZPOS64_T uncompressed_size, 325381716e9396b55b1adb8235b020c37344f60ab07Elliott Hughes uLong crc32)); 326381716e9396b55b1adb8235b020c37344f60ab07Elliott Hughes 3279e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project/* 328381716e9396b55b1adb8235b020c37344f60ab07Elliott Hughes Close the current file in the zipfile, for file opened with 3299e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project parameter raw=1 in zipOpenNewFileInZip2 3309e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project uncompressed_size and crc32 are value for the uncompressed size 3319e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project*/ 3329e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project 3339e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Projectextern int ZEXPORT zipClose OF((zipFile file, 3349e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project const char* global_comment)); 3359e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project/* 3369e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project Close the zipfile 3379e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project*/ 3389e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project 339381716e9396b55b1adb8235b020c37344f60ab07Elliott Hughes 340381716e9396b55b1adb8235b020c37344f60ab07Elliott Hughesextern int ZEXPORT zipRemoveExtraInfoBlock OF((char* pData, int* dataLen, short sHeader)); 341381716e9396b55b1adb8235b020c37344f60ab07Elliott Hughes/* 342381716e9396b55b1adb8235b020c37344f60ab07Elliott Hughes zipRemoveExtraInfoBlock - Added by Mathias Svensson 343381716e9396b55b1adb8235b020c37344f60ab07Elliott Hughes 344381716e9396b55b1adb8235b020c37344f60ab07Elliott Hughes Remove extra information block from a extra information data for the local file header or central directory header 345381716e9396b55b1adb8235b020c37344f60ab07Elliott Hughes 346381716e9396b55b1adb8235b020c37344f60ab07Elliott Hughes It is needed to remove ZIP64 extra information blocks when before data is written if using RAW mode. 347381716e9396b55b1adb8235b020c37344f60ab07Elliott Hughes 348381716e9396b55b1adb8235b020c37344f60ab07Elliott Hughes 0x0001 is the signature header for the ZIP64 extra information blocks 349381716e9396b55b1adb8235b020c37344f60ab07Elliott Hughes 350381716e9396b55b1adb8235b020c37344f60ab07Elliott Hughes usage. 351381716e9396b55b1adb8235b020c37344f60ab07Elliott Hughes Remove ZIP64 Extra information from a central director extra field data 352381716e9396b55b1adb8235b020c37344f60ab07Elliott Hughes zipRemoveExtraInfoBlock(pCenDirExtraFieldData, &nCenDirExtraFieldDataLen, 0x0001); 353381716e9396b55b1adb8235b020c37344f60ab07Elliott Hughes 354381716e9396b55b1adb8235b020c37344f60ab07Elliott Hughes Remove ZIP64 Extra information from a Local File Header extra field data 355381716e9396b55b1adb8235b020c37344f60ab07Elliott Hughes zipRemoveExtraInfoBlock(pLocalHeaderExtraFieldData, &nLocalHeaderExtraFieldDataLen, 0x0001); 356381716e9396b55b1adb8235b020c37344f60ab07Elliott Hughes*/ 357381716e9396b55b1adb8235b020c37344f60ab07Elliott Hughes 3589e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project#ifdef __cplusplus 3599e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project} 3609e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project#endif 3619e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project 362381716e9396b55b1adb8235b020c37344f60ab07Elliott Hughes#endif /* _zip64_H */ 363