Blame zlib/contrib/minizip/zip.h

Packit Service a43483
/* zip.h -- IO on .zip files using zlib
Packit Service a43483
   Version 1.1, February 14h, 2010
Packit Service a43483
   part of the MiniZip project - ( http://www.winimage.com/zLibDll/minizip.html )
Packit Service a43483
Packit Service a43483
         Copyright (C) 1998-2010 Gilles Vollant (minizip) ( http://www.winimage.com/zLibDll/minizip.html )
Packit Service a43483
Packit Service a43483
         Modifications for Zip64 support
Packit Service a43483
         Copyright (C) 2009-2010 Mathias Svensson ( http://result42.com )
Packit Service a43483
Packit Service a43483
         For more info read MiniZip_info.txt
Packit Service a43483
Packit Service a43483
         ---------------------------------------------------------------------------
Packit Service a43483
Packit Service a43483
   Condition of use and distribution are the same than zlib :
Packit Service a43483
Packit Service a43483
  This software is provided 'as-is', without any express or implied
Packit Service a43483
  warranty.  In no event will the authors be held liable for any damages
Packit Service a43483
  arising from the use of this software.
Packit Service a43483
Packit Service a43483
  Permission is granted to anyone to use this software for any purpose,
Packit Service a43483
  including commercial applications, and to alter it and redistribute it
Packit Service a43483
  freely, subject to the following restrictions:
Packit Service a43483
Packit Service a43483
  1. The origin of this software must not be misrepresented; you must not
Packit Service a43483
     claim that you wrote the original software. If you use this software
Packit Service a43483
     in a product, an acknowledgment in the product documentation would be
Packit Service a43483
     appreciated but is not required.
Packit Service a43483
  2. Altered source versions must be plainly marked as such, and must not be
Packit Service a43483
     misrepresented as being the original software.
Packit Service a43483
  3. This notice may not be removed or altered from any source distribution.
Packit Service a43483
Packit Service a43483
        ---------------------------------------------------------------------------
Packit Service a43483
Packit Service a43483
        Changes
Packit Service a43483
Packit Service a43483
        See header of zip.h
Packit Service a43483
Packit Service a43483
*/
Packit Service a43483
Packit Service a43483
#ifndef _zip12_H
Packit Service a43483
#define _zip12_H
Packit Service a43483
Packit Service a43483
#ifdef __cplusplus
Packit Service a43483
extern "C" {
Packit Service a43483
#endif
Packit Service a43483
Packit Service a43483
//#define HAVE_BZIP2
Packit Service a43483
Packit Service a43483
#ifndef _ZLIB_H
Packit Service a43483
#include "zlib.h"
Packit Service a43483
#endif
Packit Service a43483
Packit Service a43483
#ifndef _ZLIBIOAPI_H
Packit Service a43483
#include "ioapi.h"
Packit Service a43483
#endif
Packit Service a43483
Packit Service a43483
#ifdef HAVE_BZIP2
Packit Service a43483
#include "bzlib.h"
Packit Service a43483
#endif
Packit Service a43483
Packit Service a43483
#define Z_BZIP2ED 12
Packit Service a43483
Packit Service a43483
#if defined(STRICTZIP) || defined(STRICTZIPUNZIP)
Packit Service a43483
/* like the STRICT of WIN32, we define a pointer that cannot be converted
Packit Service a43483
    from (void*) without cast */
Packit Service a43483
typedef struct TagzipFile__ { int unused; } zipFile__;
Packit Service a43483
typedef zipFile__ *zipFile;
Packit Service a43483
#else
Packit Service a43483
typedef voidp zipFile;
Packit Service a43483
#endif
Packit Service a43483
Packit Service a43483
#define ZIP_OK                          (0)
Packit Service a43483
#define ZIP_EOF                         (0)
Packit Service a43483
#define ZIP_ERRNO                       (Z_ERRNO)
Packit Service a43483
#define ZIP_PARAMERROR                  (-102)
Packit Service a43483
#define ZIP_BADZIPFILE                  (-103)
Packit Service a43483
#define ZIP_INTERNALERROR               (-104)
Packit Service a43483
Packit Service a43483
#ifndef DEF_MEM_LEVEL
Packit Service a43483
#  if MAX_MEM_LEVEL >= 8
Packit Service a43483
#    define DEF_MEM_LEVEL 8
Packit Service a43483
#  else
Packit Service a43483
#    define DEF_MEM_LEVEL  MAX_MEM_LEVEL
Packit Service a43483
#  endif
Packit Service a43483
#endif
Packit Service a43483
/* default memLevel */
Packit Service a43483
Packit Service a43483
/* tm_zip contain date/time info */
Packit Service a43483
typedef struct tm_zip_s
Packit Service a43483
{
Packit Service a43483
    uInt tm_sec;            /* seconds after the minute - [0,59] */
Packit Service a43483
    uInt tm_min;            /* minutes after the hour - [0,59] */
Packit Service a43483
    uInt tm_hour;           /* hours since midnight - [0,23] */
Packit Service a43483
    uInt tm_mday;           /* day of the month - [1,31] */
Packit Service a43483
    uInt tm_mon;            /* months since January - [0,11] */
Packit Service a43483
    uInt tm_year;           /* years - [1980..2044] */
Packit Service a43483
} tm_zip;
Packit Service a43483
Packit Service a43483
typedef struct
Packit Service a43483
{
Packit Service a43483
    tm_zip      tmz_date;       /* date in understandable format           */
Packit Service a43483
    uLong       dosDate;       /* if dos_date == 0, tmu_date is used      */
Packit Service a43483
/*    uLong       flag;        */   /* general purpose bit flag        2 bytes */
Packit Service a43483
Packit Service a43483
    uLong       internal_fa;    /* internal file attributes        2 bytes */
Packit Service a43483
    uLong       external_fa;    /* external file attributes        4 bytes */
Packit Service a43483
} zip_fileinfo;
Packit Service a43483
Packit Service a43483
typedef const char* zipcharpc;
Packit Service a43483
Packit Service a43483
Packit Service a43483
#define APPEND_STATUS_CREATE        (0)
Packit Service a43483
#define APPEND_STATUS_CREATEAFTER   (1)
Packit Service a43483
#define APPEND_STATUS_ADDINZIP      (2)
Packit Service a43483
Packit Service a43483
extern zipFile ZEXPORT zipOpen OF((const char *pathname, int append));
Packit Service a43483
extern zipFile ZEXPORT zipOpen64 OF((const void *pathname, int append));
Packit Service a43483
/*
Packit Service a43483
  Create a zipfile.
Packit Service a43483
     pathname contain on Windows XP a filename like "c:\\zlib\\zlib113.zip" or on
Packit Service a43483
       an Unix computer "zlib/zlib113.zip".
Packit Service a43483
     if the file pathname exist and append==APPEND_STATUS_CREATEAFTER, the zip
Packit Service a43483
       will be created at the end of the file.
Packit Service a43483
         (useful if the file contain a self extractor code)
Packit Service a43483
     if the file pathname exist and append==APPEND_STATUS_ADDINZIP, we will
Packit Service a43483
       add files in existing zip (be sure you don't add file that doesn't exist)
Packit Service a43483
     If the zipfile cannot be opened, the return value is NULL.
Packit Service a43483
     Else, the return value is a zipFile Handle, usable with other function
Packit Service a43483
       of this zip package.
Packit Service a43483
*/
Packit Service a43483
Packit Service a43483
/* Note : there is no delete function into a zipfile.
Packit Service a43483
   If you want delete file into a zipfile, you must open a zipfile, and create another
Packit Service a43483
   Of couse, you can use RAW reading and writing to copy the file you did not want delte
Packit Service a43483
*/
Packit Service a43483
Packit Service a43483
extern zipFile ZEXPORT zipOpen2 OF((const char *pathname,
Packit Service a43483
                                   int append,
Packit Service a43483
                                   zipcharpc* globalcomment,
Packit Service a43483
                                   zlib_filefunc_def* pzlib_filefunc_def));
Packit Service a43483
Packit Service a43483
extern zipFile ZEXPORT zipOpen2_64 OF((const void *pathname,
Packit Service a43483
                                   int append,
Packit Service a43483
                                   zipcharpc* globalcomment,
Packit Service a43483
                                   zlib_filefunc64_def* pzlib_filefunc_def));
Packit Service a43483
Packit Service a43483
extern int ZEXPORT zipOpenNewFileInZip OF((zipFile file,
Packit Service a43483
                       const char* filename,
Packit Service a43483
                       const zip_fileinfo* zipfi,
Packit Service a43483
                       const void* extrafield_local,
Packit Service a43483
                       uInt size_extrafield_local,
Packit Service a43483
                       const void* extrafield_global,
Packit Service a43483
                       uInt size_extrafield_global,
Packit Service a43483
                       const char* comment,
Packit Service a43483
                       int method,
Packit Service a43483
                       int level));
Packit Service a43483
Packit Service a43483
extern int ZEXPORT zipOpenNewFileInZip64 OF((zipFile file,
Packit Service a43483
                       const char* filename,
Packit Service a43483
                       const zip_fileinfo* zipfi,
Packit Service a43483
                       const void* extrafield_local,
Packit Service a43483
                       uInt size_extrafield_local,
Packit Service a43483
                       const void* extrafield_global,
Packit Service a43483
                       uInt size_extrafield_global,
Packit Service a43483
                       const char* comment,
Packit Service a43483
                       int method,
Packit Service a43483
                       int level,
Packit Service a43483
                       int zip64));
Packit Service a43483
Packit Service a43483
/*
Packit Service a43483
  Open a file in the ZIP for writing.
Packit Service a43483
  filename : the filename in zip (if NULL, '-' without quote will be used
Packit Service a43483
  *zipfi contain supplemental information
Packit Service a43483
  if extrafield_local!=NULL and size_extrafield_local>0, extrafield_local
Packit Service a43483
    contains the extrafield data the the local header
Packit Service a43483
  if extrafield_global!=NULL and size_extrafield_global>0, extrafield_global
Packit Service a43483
    contains the extrafield data the the local header
Packit Service a43483
  if comment != NULL, comment contain the comment string
Packit Service a43483
  method contain the compression method (0 for store, Z_DEFLATED for deflate)
Packit Service a43483
  level contain the level of compression (can be Z_DEFAULT_COMPRESSION)
Packit Service a43483
  zip64 is set to 1 if a zip64 extended information block should be added to the local file header.
Packit Service a43483
                    this MUST be '1' if the uncompressed size is >= 0xffffffff.
Packit Service a43483
Packit Service a43483
*/
Packit Service a43483
Packit Service a43483
Packit Service a43483
extern int ZEXPORT zipOpenNewFileInZip2 OF((zipFile file,
Packit Service a43483
                                            const char* filename,
Packit Service a43483
                                            const zip_fileinfo* zipfi,
Packit Service a43483
                                            const void* extrafield_local,
Packit Service a43483
                                            uInt size_extrafield_local,
Packit Service a43483
                                            const void* extrafield_global,
Packit Service a43483
                                            uInt size_extrafield_global,
Packit Service a43483
                                            const char* comment,
Packit Service a43483
                                            int method,
Packit Service a43483
                                            int level,
Packit Service a43483
                                            int raw));
Packit Service a43483
Packit Service a43483
Packit Service a43483
extern int ZEXPORT zipOpenNewFileInZip2_64 OF((zipFile file,
Packit Service a43483
                                            const char* filename,
Packit Service a43483
                                            const zip_fileinfo* zipfi,
Packit Service a43483
                                            const void* extrafield_local,
Packit Service a43483
                                            uInt size_extrafield_local,
Packit Service a43483
                                            const void* extrafield_global,
Packit Service a43483
                                            uInt size_extrafield_global,
Packit Service a43483
                                            const char* comment,
Packit Service a43483
                                            int method,
Packit Service a43483
                                            int level,
Packit Service a43483
                                            int raw,
Packit Service a43483
                                            int zip64));
Packit Service a43483
/*
Packit Service a43483
  Same than zipOpenNewFileInZip, except if raw=1, we write raw file
Packit Service a43483
 */
Packit Service a43483
Packit Service a43483
extern int ZEXPORT zipOpenNewFileInZip3 OF((zipFile file,
Packit Service a43483
                                            const char* filename,
Packit Service a43483
                                            const zip_fileinfo* zipfi,
Packit Service a43483
                                            const void* extrafield_local,
Packit Service a43483
                                            uInt size_extrafield_local,
Packit Service a43483
                                            const void* extrafield_global,
Packit Service a43483
                                            uInt size_extrafield_global,
Packit Service a43483
                                            const char* comment,
Packit Service a43483
                                            int method,
Packit Service a43483
                                            int level,
Packit Service a43483
                                            int raw,
Packit Service a43483
                                            int windowBits,
Packit Service a43483
                                            int memLevel,
Packit Service a43483
                                            int strategy,
Packit Service a43483
                                            const char* password,
Packit Service a43483
                                            uLong crcForCrypting));
Packit Service a43483
Packit Service a43483
extern int ZEXPORT zipOpenNewFileInZip3_64 OF((zipFile file,
Packit Service a43483
                                            const char* filename,
Packit Service a43483
                                            const zip_fileinfo* zipfi,
Packit Service a43483
                                            const void* extrafield_local,
Packit Service a43483
                                            uInt size_extrafield_local,
Packit Service a43483
                                            const void* extrafield_global,
Packit Service a43483
                                            uInt size_extrafield_global,
Packit Service a43483
                                            const char* comment,
Packit Service a43483
                                            int method,
Packit Service a43483
                                            int level,
Packit Service a43483
                                            int raw,
Packit Service a43483
                                            int windowBits,
Packit Service a43483
                                            int memLevel,
Packit Service a43483
                                            int strategy,
Packit Service a43483
                                            const char* password,
Packit Service a43483
                                            uLong crcForCrypting,
Packit Service a43483
                                            int zip64
Packit Service a43483
                                            ));
Packit Service a43483
Packit Service a43483
/*
Packit Service a43483
  Same than zipOpenNewFileInZip2, except
Packit Service a43483
    windowBits,memLevel,,strategy : see parameter strategy in deflateInit2
Packit Service a43483
    password : crypting password (NULL for no crypting)
Packit Service a43483
    crcForCrypting : crc of file to compress (needed for crypting)
Packit Service a43483
 */
Packit Service a43483
Packit Service a43483
extern int ZEXPORT zipOpenNewFileInZip4 OF((zipFile file,
Packit Service a43483
                                            const char* filename,
Packit Service a43483
                                            const zip_fileinfo* zipfi,
Packit Service a43483
                                            const void* extrafield_local,
Packit Service a43483
                                            uInt size_extrafield_local,
Packit Service a43483
                                            const void* extrafield_global,
Packit Service a43483
                                            uInt size_extrafield_global,
Packit Service a43483
                                            const char* comment,
Packit Service a43483
                                            int method,
Packit Service a43483
                                            int level,
Packit Service a43483
                                            int raw,
Packit Service a43483
                                            int windowBits,
Packit Service a43483
                                            int memLevel,
Packit Service a43483
                                            int strategy,
Packit Service a43483
                                            const char* password,
Packit Service a43483
                                            uLong crcForCrypting,
Packit Service a43483
                                            uLong versionMadeBy,
Packit Service a43483
                                            uLong flagBase
Packit Service a43483
                                            ));
Packit Service a43483
Packit Service a43483
Packit Service a43483
extern int ZEXPORT zipOpenNewFileInZip4_64 OF((zipFile file,
Packit Service a43483
                                            const char* filename,
Packit Service a43483
                                            const zip_fileinfo* zipfi,
Packit Service a43483
                                            const void* extrafield_local,
Packit Service a43483
                                            uInt size_extrafield_local,
Packit Service a43483
                                            const void* extrafield_global,
Packit Service a43483
                                            uInt size_extrafield_global,
Packit Service a43483
                                            const char* comment,
Packit Service a43483
                                            int method,
Packit Service a43483
                                            int level,
Packit Service a43483
                                            int raw,
Packit Service a43483
                                            int windowBits,
Packit Service a43483
                                            int memLevel,
Packit Service a43483
                                            int strategy,
Packit Service a43483
                                            const char* password,
Packit Service a43483
                                            uLong crcForCrypting,
Packit Service a43483
                                            uLong versionMadeBy,
Packit Service a43483
                                            uLong flagBase,
Packit Service a43483
                                            int zip64
Packit Service a43483
                                            ));
Packit Service a43483
/*
Packit Service a43483
  Same than zipOpenNewFileInZip4, except
Packit Service a43483
    versionMadeBy : value for Version made by field
Packit Service a43483
    flag : value for flag field (compression level info will be added)
Packit Service a43483
 */
Packit Service a43483
Packit Service a43483
Packit Service a43483
extern int ZEXPORT zipWriteInFileInZip OF((zipFile file,
Packit Service a43483
                       const void* buf,
Packit Service a43483
                       unsigned len));
Packit Service a43483
/*
Packit Service a43483
  Write data in the zipfile
Packit Service a43483
*/
Packit Service a43483
Packit Service a43483
extern int ZEXPORT zipCloseFileInZip OF((zipFile file));
Packit Service a43483
/*
Packit Service a43483
  Close the current file in the zipfile
Packit Service a43483
*/
Packit Service a43483
Packit Service a43483
extern int ZEXPORT zipCloseFileInZipRaw OF((zipFile file,
Packit Service a43483
                                            uLong uncompressed_size,
Packit Service a43483
                                            uLong crc32));
Packit Service a43483
Packit Service a43483
extern int ZEXPORT zipCloseFileInZipRaw64 OF((zipFile file,
Packit Service a43483
                                            ZPOS64_T uncompressed_size,
Packit Service a43483
                                            uLong crc32));
Packit Service a43483
Packit Service a43483
/*
Packit Service a43483
  Close the current file in the zipfile, for file opened with
Packit Service a43483
    parameter raw=1 in zipOpenNewFileInZip2
Packit Service a43483
  uncompressed_size and crc32 are value for the uncompressed size
Packit Service a43483
*/
Packit Service a43483
Packit Service a43483
extern int ZEXPORT zipClose OF((zipFile file,
Packit Service a43483
                const char* global_comment));
Packit Service a43483
/*
Packit Service a43483
  Close the zipfile
Packit Service a43483
*/
Packit Service a43483
Packit Service a43483
Packit Service a43483
extern int ZEXPORT zipRemoveExtraInfoBlock OF((char* pData, int* dataLen, short sHeader));
Packit Service a43483
/*
Packit Service a43483
  zipRemoveExtraInfoBlock -  Added by Mathias Svensson
Packit Service a43483
Packit Service a43483
  Remove extra information block from a extra information data for the local file header or central directory header
Packit Service a43483
Packit Service a43483
  It is needed to remove ZIP64 extra information blocks when before data is written if using RAW mode.
Packit Service a43483
Packit Service a43483
  0x0001 is the signature header for the ZIP64 extra information blocks
Packit Service a43483
Packit Service a43483
  usage.
Packit Service a43483
                        Remove ZIP64 Extra information from a central director extra field data
Packit Service a43483
              zipRemoveExtraInfoBlock(pCenDirExtraFieldData, &nCenDirExtraFieldDataLen, 0x0001);
Packit Service a43483
Packit Service a43483
                        Remove ZIP64 Extra information from a Local File Header extra field data
Packit Service a43483
        zipRemoveExtraInfoBlock(pLocalHeaderExtraFieldData, &nLocalHeaderExtraFieldDataLen, 0x0001);
Packit Service a43483
*/
Packit Service a43483
Packit Service a43483
#ifdef __cplusplus
Packit Service a43483
}
Packit Service a43483
#endif
Packit Service a43483
Packit Service a43483
#endif /* _zip64_H */