15821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)/* unzip.h -- IO for uncompress .zip files using zlib 25821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) Version 1.1, February 14h, 2010 35821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) part of the MiniZip project - ( http://www.winimage.com/zLibDll/minizip.html ) 45821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 55821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) Copyright (C) 1998-2010 Gilles Vollant (minizip) ( http://www.winimage.com/zLibDll/minizip.html ) 65821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 75821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) Modifications of Unzip for Zip64 85821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) Copyright (C) 2007-2008 Even Rouault 95821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 105821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) Modifications for Zip64 support on both zip and unzip 115821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) Copyright (C) 2009-2010 Mathias Svensson ( http://result42.com ) 125821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 135821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) For more info read MiniZip_info.txt 145821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 155821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) --------------------------------------------------------------------------------- 165821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 175821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) Condition of use and distribution are the same than zlib : 185821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 195821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) This software is provided 'as-is', without any express or implied 205821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) warranty. In no event will the authors be held liable for any damages 215821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) arising from the use of this software. 225821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 235821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) Permission is granted to anyone to use this software for any purpose, 245821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) including commercial applications, and to alter it and redistribute it 255821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) freely, subject to the following restrictions: 265821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 275821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 1. The origin of this software must not be misrepresented; you must not 285821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) claim that you wrote the original software. If you use this software 295821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) in a product, an acknowledgment in the product documentation would be 305821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) appreciated but is not required. 315821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 2. Altered source versions must be plainly marked as such, and must not be 325821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) misrepresented as being the original software. 335821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 3. This notice may not be removed or altered from any source distribution. 345821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 355821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) --------------------------------------------------------------------------------- 365821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 375821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) Changes 385821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 395821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) See header of unzip64.c 405821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 415821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)*/ 425821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 435821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#ifndef _unz64_H 445821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#define _unz64_H 455821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 465821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#ifdef __cplusplus 475821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)extern "C" { 485821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#endif 495821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 505821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#ifndef _ZLIB_H 515821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#include "third_party/zlib/zlib.h" 525821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#endif 535821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 545821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#ifndef _ZLIBIOAPI_H 555821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#include "ioapi.h" 565821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#endif 575821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 585821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#ifdef HAVE_BZIP2 595821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#include "bzlib.h" 605821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#endif 615821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 625821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#define Z_BZIP2ED 12 635821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 645821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#if defined(STRICTUNZIP) || defined(STRICTZIPUNZIP) 655821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)/* like the STRICT of WIN32, we define a pointer that cannot be converted 665821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) from (void*) without cast */ 675821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)typedef struct TagunzFile__ { int unused; } unzFile__; 685821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)typedef unzFile__ *unzFile; 695821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#else 705821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)typedef voidp unzFile; 715821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#endif 725821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 735821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 745821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#define UNZ_OK (0) 755821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#define UNZ_END_OF_LIST_OF_FILE (-100) 765821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#define UNZ_ERRNO (Z_ERRNO) 775821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#define UNZ_EOF (0) 785821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#define UNZ_PARAMERROR (-102) 795821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#define UNZ_BADZIPFILE (-103) 805821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#define UNZ_INTERNALERROR (-104) 815821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#define UNZ_CRCERROR (-105) 825821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 835821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)/* tm_unz contain date/time info */ 845821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)typedef struct tm_unz_s 855821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles){ 865821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) uInt tm_sec; /* seconds after the minute - [0,59] */ 875821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) uInt tm_min; /* minutes after the hour - [0,59] */ 885821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) uInt tm_hour; /* hours since midnight - [0,23] */ 895821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) uInt tm_mday; /* day of the month - [1,31] */ 905821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) uInt tm_mon; /* months since January - [0,11] */ 915821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) uInt tm_year; /* years - [1980..2044] */ 925821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)} tm_unz; 935821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 945821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)/* unz_global_info structure contain global data about the ZIPfile 955821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) These data comes from the end of central dir */ 965821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)typedef struct unz_global_info64_s 975821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles){ 985821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) ZPOS64_T number_entry; /* total number of entries in 995821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) the central dir on this disk */ 1005821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) uLong size_comment; /* size of the global comment of the zipfile */ 1015821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)} unz_global_info64; 1025821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 1035821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)typedef struct unz_global_info_s 1045821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles){ 1055821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) uLong number_entry; /* total number of entries in 1065821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) the central dir on this disk */ 1075821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) uLong size_comment; /* size of the global comment of the zipfile */ 1085821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)} unz_global_info; 1095821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 1105821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)/* unz_file_info contain information about a file in the zipfile */ 1115821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)typedef struct unz_file_info64_s 1125821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles){ 1135821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) uLong version; /* version made by 2 bytes */ 1145821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) uLong version_needed; /* version needed to extract 2 bytes */ 1155821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) uLong flag; /* general purpose bit flag 2 bytes */ 1165821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) uLong compression_method; /* compression method 2 bytes */ 1175821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) uLong dosDate; /* last mod file date in Dos fmt 4 bytes */ 1185821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) uLong crc; /* crc-32 4 bytes */ 1195821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) ZPOS64_T compressed_size; /* compressed size 8 bytes */ 1205821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) ZPOS64_T uncompressed_size; /* uncompressed size 8 bytes */ 1215821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) uLong size_filename; /* filename length 2 bytes */ 1225821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) uLong size_file_extra; /* extra field length 2 bytes */ 1235821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) uLong size_file_comment; /* file comment length 2 bytes */ 1245821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 1255821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) uLong disk_num_start; /* disk number start 2 bytes */ 1265821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) uLong internal_fa; /* internal file attributes 2 bytes */ 1275821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) uLong external_fa; /* external file attributes 4 bytes */ 1285821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 1295821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) tm_unz tmu_date; 1305821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)} unz_file_info64; 1315821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 1325821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)typedef struct unz_file_info_s 1335821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles){ 1345821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) uLong version; /* version made by 2 bytes */ 1355821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) uLong version_needed; /* version needed to extract 2 bytes */ 1365821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) uLong flag; /* general purpose bit flag 2 bytes */ 1375821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) uLong compression_method; /* compression method 2 bytes */ 1385821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) uLong dosDate; /* last mod file date in Dos fmt 4 bytes */ 1395821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) uLong crc; /* crc-32 4 bytes */ 1405821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) uLong compressed_size; /* compressed size 4 bytes */ 1415821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) uLong uncompressed_size; /* uncompressed size 4 bytes */ 1425821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) uLong size_filename; /* filename length 2 bytes */ 1435821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) uLong size_file_extra; /* extra field length 2 bytes */ 1445821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) uLong size_file_comment; /* file comment length 2 bytes */ 1455821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 1465821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) uLong disk_num_start; /* disk number start 2 bytes */ 1475821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) uLong internal_fa; /* internal file attributes 2 bytes */ 1485821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) uLong external_fa; /* external file attributes 4 bytes */ 1495821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 1505821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) tm_unz tmu_date; 1515821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)} unz_file_info; 1525821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 1535821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)extern int ZEXPORT unzStringFileNameCompare OF ((const char* fileName1, 1545821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) const char* fileName2, 1555821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) int iCaseSensitivity)); 1565821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)/* 1575821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) Compare two filename (fileName1,fileName2). 1585821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) If iCaseSenisivity = 1, comparision is case sensitivity (like strcmp) 1595821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) If iCaseSenisivity = 2, comparision is not case sensitivity (like strcmpi 1605821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) or strcasecmp) 1615821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) If iCaseSenisivity = 0, case sensitivity is defaut of your operating system 1625821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) (like 1 on Unix, 2 on Windows) 1635821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)*/ 1645821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 1655821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 1665821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)extern unzFile ZEXPORT unzOpen OF((const char *path)); 1675821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)extern unzFile ZEXPORT unzOpen64 OF((const void *path)); 1685821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)/* 1695821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) Open a Zip file. path contain the full pathname (by example, 1705821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) on a Windows XP computer "c:\\zlib\\zlib113.zip" or on an Unix computer 1715821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) "zlib/zlib113.zip". 1725821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) If the zipfile cannot be opened (file don't exist or in not valid), the 1735821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) return value is NULL. 1745821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) Else, the return value is a unzFile Handle, usable with other function 1755821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) of this unzip package. 1765821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) the "64" function take a const void* pointer, because the path is just the 1775821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) value passed to the open64_file_func callback. 1785821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) Under Windows, if UNICODE is defined, using fill_fopen64_filefunc, the path 1795821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) is a pointer to a wide unicode string (LPCTSTR is LPCWSTR), so const char* 1805821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) does not describe the reality 1815821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)*/ 1825821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 1835821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 1845821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)extern unzFile ZEXPORT unzOpen2 OF((const char *path, 1855821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) zlib_filefunc_def* pzlib_filefunc_def)); 1865821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)/* 1875821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) Open a Zip file, like unzOpen, but provide a set of file low level API 1885821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) for read/write the zip file (see ioapi.h) 1895821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)*/ 1905821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 1915821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)extern unzFile ZEXPORT unzOpen2_64 OF((const void *path, 1925821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) zlib_filefunc64_def* pzlib_filefunc_def)); 1935821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)/* 1945821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) Open a Zip file, like unz64Open, but provide a set of file low level API 1955821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) for read/write the zip file (see ioapi.h) 1965821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)*/ 1975821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 1985821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)extern int ZEXPORT unzClose OF((unzFile file)); 1995821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)/* 2005821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) Close a ZipFile opened with unzipOpen. 2015821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) If there is files inside the .Zip opened with unzOpenCurrentFile (see later), 2025821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) these files MUST be closed with unzipCloseCurrentFile before call unzipClose. 2035821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) return UNZ_OK if there is no problem. */ 2045821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 2055821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)extern int ZEXPORT unzGetGlobalInfo OF((unzFile file, 2065821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) unz_global_info *pglobal_info)); 2075821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 2085821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)extern int ZEXPORT unzGetGlobalInfo64 OF((unzFile file, 2095821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) unz_global_info64 *pglobal_info)); 2105821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)/* 2115821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) Write info about the ZipFile in the *pglobal_info structure. 2125821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) No preparation of the structure is needed 2135821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) return UNZ_OK if there is no problem. */ 2145821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 2155821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 2165821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)extern int ZEXPORT unzGetGlobalComment OF((unzFile file, 2175821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) char *szComment, 2185821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) uLong uSizeBuf)); 2195821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)/* 2205821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) Get the global comment string of the ZipFile, in the szComment buffer. 2215821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) uSizeBuf is the size of the szComment buffer. 2225821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) return the number of byte copied or an error code <0 2235821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)*/ 2245821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 2255821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 2265821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)/***************************************************************************/ 2275821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)/* Unzip package allow you browse the directory of the zipfile */ 2285821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 2295821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)extern int ZEXPORT unzGoToFirstFile OF((unzFile file)); 2305821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)/* 2315821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) Set the current file of the zipfile to the first file. 2325821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) return UNZ_OK if there is no problem 2335821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)*/ 2345821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 2355821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)extern int ZEXPORT unzGoToNextFile OF((unzFile file)); 2365821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)/* 2375821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) Set the current file of the zipfile to the next file. 2385821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) return UNZ_OK if there is no problem 2395821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) return UNZ_END_OF_LIST_OF_FILE if the actual file was the latest. 2405821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)*/ 2415821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 2425821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)extern int ZEXPORT unzLocateFile OF((unzFile file, 2435821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) const char *szFileName, 2445821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) int iCaseSensitivity)); 2455821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)/* 2465821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) Try locate the file szFileName in the zipfile. 2475821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) For the iCaseSensitivity signification, see unzStringFileNameCompare 2485821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 2495821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) return value : 2505821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) UNZ_OK if the file is found. It becomes the current file. 2515821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) UNZ_END_OF_LIST_OF_FILE if the file is not found 2525821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)*/ 2535821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 2545821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 2555821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)/* ****************************************** */ 2565821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)/* Ryan supplied functions */ 2575821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)/* unz_file_info contain information about a file in the zipfile */ 2585821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)typedef struct unz_file_pos_s 2595821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles){ 2605821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) uLong pos_in_zip_directory; /* offset in zip file directory */ 2615821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) uLong num_of_file; /* # of file */ 2625821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)} unz_file_pos; 2635821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 2645821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)extern int ZEXPORT unzGetFilePos( 2655821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) unzFile file, 2665821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) unz_file_pos* file_pos); 2675821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 2685821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)extern int ZEXPORT unzGoToFilePos( 2695821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) unzFile file, 2705821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) unz_file_pos* file_pos); 2715821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 2725821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)typedef struct unz64_file_pos_s 2735821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles){ 2745821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) ZPOS64_T pos_in_zip_directory; /* offset in zip file directory */ 2755821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) ZPOS64_T num_of_file; /* # of file */ 2765821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)} unz64_file_pos; 2775821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 2785821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)extern int ZEXPORT unzGetFilePos64( 2795821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) unzFile file, 2805821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) unz64_file_pos* file_pos); 2815821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 2825821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)extern int ZEXPORT unzGoToFilePos64( 2835821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) unzFile file, 2845821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) const unz64_file_pos* file_pos); 2855821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 2865821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)/* ****************************************** */ 2875821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 2885821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)extern int ZEXPORT unzGetCurrentFileInfo64 OF((unzFile file, 2895821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) unz_file_info64 *pfile_info, 2905821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) char *szFileName, 2915821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) uLong fileNameBufferSize, 2925821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) void *extraField, 2935821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) uLong extraFieldBufferSize, 2945821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) char *szComment, 2955821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) uLong commentBufferSize)); 2965821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 2975821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)extern int ZEXPORT unzGetCurrentFileInfo OF((unzFile file, 2985821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) unz_file_info *pfile_info, 2995821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) char *szFileName, 3005821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) uLong fileNameBufferSize, 3015821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) void *extraField, 3025821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) uLong extraFieldBufferSize, 3035821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) char *szComment, 3045821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) uLong commentBufferSize)); 3055821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)/* 3065821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) Get Info about the current file 3075821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) if pfile_info!=NULL, the *pfile_info structure will contain somes info about 3085821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) the current file 3095821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) if szFileName!=NULL, the filemane string will be copied in szFileName 3105821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) (fileNameBufferSize is the size of the buffer) 3115821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) if extraField!=NULL, the extra field information will be copied in extraField 3125821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) (extraFieldBufferSize is the size of the buffer). 3135821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) This is the Central-header version of the extra field 3145821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) if szComment!=NULL, the comment string of the file will be copied in szComment 3155821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) (commentBufferSize is the size of the buffer) 3165821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)*/ 3175821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 3185821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 3195821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)/** Addition for GDAL : START */ 3205821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 3215821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)extern ZPOS64_T ZEXPORT unzGetCurrentFileZStreamPos64 OF((unzFile file)); 3225821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 3235821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)/** Addition for GDAL : END */ 3245821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 3255821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 3265821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)/***************************************************************************/ 3275821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)/* for reading the content of the current zipfile, you can open it, read data 3285821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) from it, and close it (you can close it before reading all the file) 3295821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) */ 3305821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 3315821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)extern int ZEXPORT unzOpenCurrentFile OF((unzFile file)); 3325821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)/* 3335821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) Open for reading data the current file in the zipfile. 3345821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) If there is no error, the return value is UNZ_OK. 3355821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)*/ 3365821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 3375821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)extern int ZEXPORT unzOpenCurrentFilePassword OF((unzFile file, 3385821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) const char* password)); 3395821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)/* 3405821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) Open for reading data the current file in the zipfile. 3415821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) password is a crypting password 3425821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) If there is no error, the return value is UNZ_OK. 3435821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)*/ 3445821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 3455821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)extern int ZEXPORT unzOpenCurrentFile2 OF((unzFile file, 3465821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) int* method, 3475821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) int* level, 3485821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) int raw)); 3495821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)/* 3505821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) Same than unzOpenCurrentFile, but open for read raw the file (not uncompress) 3515821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) if raw==1 3525821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) *method will receive method of compression, *level will receive level of 3535821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) compression 3545821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) note : you can set level parameter as NULL (if you did not want known level, 3555821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) but you CANNOT set method parameter as NULL 3565821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)*/ 3575821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 3585821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)extern int ZEXPORT unzOpenCurrentFile3 OF((unzFile file, 3595821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) int* method, 3605821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) int* level, 3615821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) int raw, 3625821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) const char* password)); 3635821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)/* 3645821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) Same than unzOpenCurrentFile, but open for read raw the file (not uncompress) 3655821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) if raw==1 3665821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) *method will receive method of compression, *level will receive level of 3675821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) compression 3685821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) note : you can set level parameter as NULL (if you did not want known level, 3695821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) but you CANNOT set method parameter as NULL 3705821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)*/ 3715821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 3725821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 3735821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)extern int ZEXPORT unzCloseCurrentFile OF((unzFile file)); 3745821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)/* 3755821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) Close the file in zip opened with unzOpenCurrentFile 3765821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) Return UNZ_CRCERROR if all the file was read but the CRC is not good 3775821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)*/ 3785821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 3795821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)extern int ZEXPORT unzReadCurrentFile OF((unzFile file, 3805821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) voidp buf, 3815821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) unsigned len)); 3825821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)/* 3835821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) Read bytes from the current file (opened by unzOpenCurrentFile) 3845821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) buf contain buffer where data must be copied 3855821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) len the size of buf. 3865821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 3875821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) return the number of byte copied if somes bytes are copied 3885821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) return 0 if the end of file was reached 3895821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) return <0 with error code if there is an error 3905821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) (UNZ_ERRNO for IO error, or zLib error for uncompress error) 3915821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)*/ 3925821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 3935821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)extern z_off_t ZEXPORT unztell OF((unzFile file)); 3945821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 3955821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)extern ZPOS64_T ZEXPORT unztell64 OF((unzFile file)); 3965821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)/* 3975821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) Give the current position in uncompressed data 3985821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)*/ 3995821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 4005821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)extern int ZEXPORT unzeof OF((unzFile file)); 4015821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)/* 4025821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) return 1 if the end of file was reached, 0 elsewhere 4035821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)*/ 4045821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 4055821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)extern int ZEXPORT unzGetLocalExtrafield OF((unzFile file, 4065821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) voidp buf, 4075821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) unsigned len)); 4085821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)/* 4095821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) Read extra field from the current file (opened by unzOpenCurrentFile) 4105821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) This is the local-header version of the extra field (sometimes, there is 4115821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) more info in the local-header version than in the central-header) 4125821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 4135821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) if buf==NULL, it return the size of the local extra field 4145821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 4155821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) if buf!=NULL, len is the size of the buffer, the extra header is copied in 4165821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) buf. 4175821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) the return value is the number of bytes copied in buf, or (if <0) 4185821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) the error code 4195821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)*/ 4205821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 4215821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)/***************************************************************************/ 4225821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 4235821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)/* Get the current file offset */ 4245821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)extern ZPOS64_T ZEXPORT unzGetOffset64 (unzFile file); 4255821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)extern uLong ZEXPORT unzGetOffset (unzFile file); 4265821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 4275821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)/* Set the current file offset */ 4285821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)extern int ZEXPORT unzSetOffset64 (unzFile file, ZPOS64_T pos); 4295821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)extern int ZEXPORT unzSetOffset (unzFile file, uLong pos); 4305821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 4315821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 4325821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 4335821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#ifdef __cplusplus 4345821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)} 4355821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#endif 4365821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 4375821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#endif /* _unz64_H */ 438