ReactOS  0.4.14-dev-49-gfb4591c
unzip.c File Reference
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include "zlib.h"
#include "unzip.h"
#include <errno.h>
#include "crypt.h"
Include dependency graph for unzip.c:

Go to the source code of this file.

Classes

struct  unz_file_info64_internal_s
 
struct  file_in_zip64_read_info_s
 
struct  unz64_s
 

Macros

#define local   static
 
#define CASESENSITIVITYDEFAULT_NO
 
#define UNZ_BUFSIZE   (16384)
 
#define UNZ_MAXFILENAMEINZIP   (256)
 
#define ALLOC(size)   (malloc(size))
 
#define TRYFREE(p)   {if (p) free(p);}
 
#define SIZECENTRALDIRITEM   (0x2e)
 
#define SIZEZIPLOCALHEADER   (0x1e)
 
#define CASESENSITIVITYDEFAULTVALUE   2
 
#define STRCMPCASENOSENTIVEFUNCTION   strcmpcasenosensitive_internal
 
#define BUFREADCOMMENT   (0x400)
 

Typedefs

typedef struct unz_file_info64_internal_s unz_file_info64_internal
 

Functions

int unz64local_getByte OF ((const zlib_filefunc64_32_def *pzlib_filefunc_def, voidpf filestream, int *pi))
 
int unz64local_getByte (const zlib_filefunc64_32_def *pzlib_filefunc_def, voidpf filestream, int *pi)
 
int unz64local_getShort OF ((const zlib_filefunc64_32_def *pzlib_filefunc_def, voidpf filestream, uLong *pX))
 
int unz64local_getShort (const zlib_filefunc64_32_def *pzlib_filefunc_def, voidpf filestream, uLong *pX)
 
int unz64local_getLong (const zlib_filefunc64_32_def *pzlib_filefunc_def, voidpf filestream, uLong *pX)
 
int unz64local_getLong64 OF ((const zlib_filefunc64_32_def *pzlib_filefunc_def, voidpf filestream, ZPOS64_T *pX))
 
int unz64local_getLong64 (const zlib_filefunc64_32_def *pzlib_filefunc_def, voidpf filestream, ZPOS64_T *pX)
 
int strcmpcasenosensitive_internal (const char *fileName1, const char *fileName2)
 
int ZEXPORT unzStringFileNameCompare (const char *fileName1, const char *fileName2, int iCaseSensitivity)
 
ZPOS64_T unz64local_SearchCentralDir OF ((const zlib_filefunc64_32_def *pzlib_filefunc_def, voidpf filestream))
 
ZPOS64_T unz64local_SearchCentralDir (const zlib_filefunc64_32_def *pzlib_filefunc_def, voidpf filestream)
 
ZPOS64_T unz64local_SearchCentralDir64 (const zlib_filefunc64_32_def *pzlib_filefunc_def, voidpf filestream)
 
unzFile unzOpenInternal (const void *path, zlib_filefunc64_32_def *pzlib_filefunc64_32_def, int is64bitOpenFunction)
 
unzFile ZEXPORT unzOpen2 (const char *path, zlib_filefunc_def *pzlib_filefunc32_def)
 
unzFile ZEXPORT unzOpen2_64 (const void *path, zlib_filefunc64_def *pzlib_filefunc_def)
 
unzFile ZEXPORT unzOpen (const char *path)
 
unzFile ZEXPORT unzOpen64 (const void *path)
 
int ZEXPORT unzClose (unzFile file)
 
int ZEXPORT unzGetGlobalInfo64 (unzFile file, unz_global_info64 *pglobal_info)
 
int ZEXPORT unzGetGlobalInfo (unzFile file, unz_global_info *pglobal_info32)
 
void unz64local_DosDateToTmuDate (ZPOS64_T ulDosDate, tm_unz *ptm)
 
int unz64local_GetCurrentFileInfoInternal OF ((unzFile file, unz_file_info64 *pfile_info, unz_file_info64_internal *pfile_info_internal, char *szFileName, uLong fileNameBufferSize, void *extraField, uLong extraFieldBufferSize, char *szComment, uLong commentBufferSize))
 
int unz64local_GetCurrentFileInfoInternal (unzFile file, unz_file_info64 *pfile_info, unz_file_info64_internal *pfile_info_internal, char *szFileName, uLong fileNameBufferSize, void *extraField, uLong extraFieldBufferSize, char *szComment, uLong commentBufferSize)
 
int ZEXPORT unzGetCurrentFileInfo64 (unzFile file, unz_file_info64 *pfile_info, char *szFileName, uLong fileNameBufferSize, void *extraField, uLong extraFieldBufferSize, char *szComment, uLong commentBufferSize)
 
int ZEXPORT unzGetCurrentFileInfo (unzFile file, unz_file_info *pfile_info, char *szFileName, uLong fileNameBufferSize, void *extraField, uLong extraFieldBufferSize, char *szComment, uLong commentBufferSize)
 
int ZEXPORT unzGoToFirstFile (unzFile file)
 
int ZEXPORT unzGoToNextFile (unzFile file)
 
int ZEXPORT unzLocateFile (unzFile file, const char *szFileName, int iCaseSensitivity)
 
int ZEXPORT unzGetFilePos64 (unzFile file, unz64_file_pos *file_pos)
 
int ZEXPORT unzGetFilePos (unzFile file, unz_file_pos *file_pos)
 
int ZEXPORT unzGoToFilePos64 (unzFile file, const unz64_file_pos *file_pos)
 
int ZEXPORT unzGoToFilePos (unzFile file, unz_file_pos *file_pos)
 
int unz64local_CheckCurrentFileCoherencyHeader (unz64_s *s, uInt *piSizeVar, ZPOS64_T *poffset_local_extrafield, uInt *psize_local_extrafield)
 
int ZEXPORT unzOpenCurrentFile3 (unzFile file, int *method, int *level, int raw, const char *password)
 
int ZEXPORT unzOpenCurrentFile (unzFile file)
 
int ZEXPORT unzOpenCurrentFilePassword (unzFile file, const char *password)
 
int ZEXPORT unzOpenCurrentFile2 (unzFile file, int *method, int *level, int raw)
 
ZPOS64_T ZEXPORT unzGetCurrentFileZStreamPos64 (unzFile file)
 
int ZEXPORT unzReadCurrentFile (unzFile file, voidp buf, unsigned len)
 
z_off_t ZEXPORT unztell (unzFile file)
 
ZPOS64_T ZEXPORT unztell64 (unzFile file)
 
int ZEXPORT unzeof (unzFile file)
 
int ZEXPORT unzGetLocalExtrafield (unzFile file, voidp buf, unsigned len)
 
int ZEXPORT unzCloseCurrentFile (unzFile file)
 
int ZEXPORT unzGetGlobalComment (unzFile file, char *szComment, uLong uSizeBuf)
 
ZPOS64_T ZEXPORT unzGetOffset64 (unzFile file)
 
uLong ZEXPORT unzGetOffset (unzFile file)
 
int ZEXPORT unzSetOffset64 (unzFile file, ZPOS64_T pos)
 
int ZEXPORT unzSetOffset (unzFile file, uLong pos)
 

Variables

const char unz_copyright []
 

Macro Definition Documentation

◆ ALLOC

#define ALLOC (   size)    (malloc(size))

Definition at line 109 of file unzip.c.

◆ BUFREADCOMMENT

#define BUFREADCOMMENT   (0x400)

Definition at line 402 of file unzip.c.

◆ CASESENSITIVITYDEFAULT_NO

#define CASESENSITIVITYDEFAULT_NO

Definition at line 95 of file unzip.c.

◆ CASESENSITIVITYDEFAULTVALUE

#define CASESENSITIVITYDEFAULTVALUE   2

Definition at line 369 of file unzip.c.

◆ local

#define local   static

Definition at line 88 of file unzip.c.

◆ SIZECENTRALDIRITEM

#define SIZECENTRALDIRITEM   (0x2e)

Definition at line 115 of file unzip.c.

◆ SIZEZIPLOCALHEADER

#define SIZEZIPLOCALHEADER   (0x1e)

Definition at line 116 of file unzip.c.

◆ STRCMPCASENOSENTIVEFUNCTION

#define STRCMPCASENOSENTIVEFUNCTION   strcmpcasenosensitive_internal

Definition at line 375 of file unzip.c.

◆ TRYFREE

#define TRYFREE (   p)    {if (p) free(p);}

Definition at line 112 of file unzip.c.

◆ UNZ_BUFSIZE

#define UNZ_BUFSIZE   (16384)

Definition at line 101 of file unzip.c.

◆ UNZ_MAXFILENAMEINZIP

#define UNZ_MAXFILENAMEINZIP   (256)

Definition at line 105 of file unzip.c.

Typedef Documentation

◆ unz_file_info64_internal

Function Documentation

◆ OF() [1/5]

int unz64local_getByte OF ( (const zlib_filefunc64_32_def *pzlib_filefunc_def, voidpf filestream, int *pi )

◆ OF() [2/5]

int unz64local_getShort OF ( (const zlib_filefunc64_32_def *pzlib_filefunc_def, voidpf filestream, uLong *pX)  )

◆ OF() [3/5]

int unz64local_getLong64 OF ( (const zlib_filefunc64_32_def *pzlib_filefunc_def, voidpf filestream, ZPOS64_T *pX)  )

◆ OF() [4/5]

ZPOS64_T unz64local_SearchCentralDir OF ( (const zlib_filefunc64_32_def *pzlib_filefunc_def, voidpf filestream)  )

◆ OF() [5/5]

int unz64local_GetCurrentFileInfoInternal OF ( (unzFile file, unz_file_info64 *pfile_info, unz_file_info64_internal *pfile_info_internal, char *szFileName, uLong fileNameBufferSize, void *extraField, uLong extraFieldBufferSize, char *szComment, uLong commentBufferSize)  )

◆ strcmpcasenosensitive_internal()

int strcmpcasenosensitive_internal ( const char fileName1,
const char fileName2 
)

Definition at line 346 of file unzip.c.

347 {
348  for (;;)
349  {
350  char c1=*(fileName1++);
351  char c2=*(fileName2++);
352  if ((c1>='a') && (c1<='z'))
353  c1 -= 0x20;
354  if ((c2>='a') && (c2<='z'))
355  c2 -= 0x20;
356  if (c1=='\0')
357  return ((c2=='\0') ? 0 : -1);
358  if (c2=='\0')
359  return 1;
360  if (c1<c2)
361  return -1;
362  if (c1>c2)
363  return 1;
364  }
365 }

◆ unz64local_CheckCurrentFileCoherencyHeader()

int unz64local_CheckCurrentFileCoherencyHeader ( unz64_s s,
uInt piSizeVar,
ZPOS64_T poffset_local_extrafield,
uInt psize_local_extrafield 
)

Definition at line 1385 of file unzip.c.

1388 {
1389  uLong uMagic,uData,uFlags;
1390  uLong size_filename;
1391  uLong size_extra_field;
1392  int err=UNZ_OK;
1393 
1394  *piSizeVar = 0;
1395  *poffset_local_extrafield = 0;
1396  *psize_local_extrafield = 0;
1397 
1398  if (ZSEEK64(s->z_filefunc, s->filestream,s->cur_file_info_internal.offset_curfile +
1399  s->byte_before_the_zipfile,ZLIB_FILEFUNC_SEEK_SET)!=0)
1400  return UNZ_ERRNO;
1401 
1402 
1403  if (err==UNZ_OK)
1404  {
1405  if (unz64local_getLong(&s->z_filefunc, s->filestream,&uMagic) != UNZ_OK)
1406  err=UNZ_ERRNO;
1407  else if (uMagic!=0x04034b50)
1409  }
1410 
1411  if (unz64local_getShort(&s->z_filefunc, s->filestream,&uData) != UNZ_OK)
1412  err=UNZ_ERRNO;
1413 /*
1414  else if ((err==UNZ_OK) && (uData!=s->cur_file_info.wVersion))
1415  err=UNZ_BADZIPFILE;
1416 */
1417  if (unz64local_getShort(&s->z_filefunc, s->filestream,&uFlags) != UNZ_OK)
1418  err=UNZ_ERRNO;
1419 
1420  if (unz64local_getShort(&s->z_filefunc, s->filestream,&uData) != UNZ_OK)
1421  err=UNZ_ERRNO;
1422  else if ((err==UNZ_OK) && (uData!=s->cur_file_info.compression_method))
1424 
1425  if ((err==UNZ_OK) && (s->cur_file_info.compression_method!=0) &&
1426 /* #ifdef HAVE_BZIP2 */
1427  (s->cur_file_info.compression_method!=Z_BZIP2ED) &&
1428 /* #endif */
1429  (s->cur_file_info.compression_method!=Z_DEFLATED))
1431 
1432  if (unz64local_getLong(&s->z_filefunc, s->filestream,&uData) != UNZ_OK) /* date/time */
1433  err=UNZ_ERRNO;
1434 
1435  if (unz64local_getLong(&s->z_filefunc, s->filestream,&uData) != UNZ_OK) /* crc */
1436  err=UNZ_ERRNO;
1437  else if ((err==UNZ_OK) && (uData!=s->cur_file_info.crc) && ((uFlags & 8)==0))
1439 
1440  if (unz64local_getLong(&s->z_filefunc, s->filestream,&uData) != UNZ_OK) /* size compr */
1441  err=UNZ_ERRNO;
1442  else if (uData != 0xFFFFFFFF && (err==UNZ_OK) && (uData!=s->cur_file_info.compressed_size) && ((uFlags & 8)==0))
1444 
1445  if (unz64local_getLong(&s->z_filefunc, s->filestream,&uData) != UNZ_OK) /* size uncompr */
1446  err=UNZ_ERRNO;
1447  else if (uData != 0xFFFFFFFF && (err==UNZ_OK) && (uData!=s->cur_file_info.uncompressed_size) && ((uFlags & 8)==0))
1449 
1450  if (unz64local_getShort(&s->z_filefunc, s->filestream,&size_filename) != UNZ_OK)
1451  err=UNZ_ERRNO;
1452  else if ((err==UNZ_OK) && (size_filename!=s->cur_file_info.size_filename))
1454 
1455  *piSizeVar += (uInt)size_filename;
1456 
1457  if (unz64local_getShort(&s->z_filefunc, s->filestream,&size_extra_field) != UNZ_OK)
1458  err=UNZ_ERRNO;
1459  *poffset_local_extrafield= s->cur_file_info_internal.offset_curfile +
1460  SIZEZIPLOCALHEADER + size_filename;
1461  *psize_local_extrafield = (uInt)size_extra_field;
1462 
1463  *piSizeVar += (uInt)size_extra_field;
1464 
1465  return err;
1466 }
#define UNZ_OK
Definition: unzip.h:74
#define UNZ_BADZIPFILE
Definition: unzip.h:79
int unz64local_getLong(const zlib_filefunc64_32_def *pzlib_filefunc_def, voidpf filestream, uLong *pX)
Definition: unzip.c:263
UINT uFlags
Definition: api.c:60
#define Z_DEFLATED
Definition: zlib.h:209
#define Z_BZIP2ED
Definition: unzip.h:62
unsigned long uLong
Definition: zconf.h:394
GLdouble s
Definition: gl.h:2039
#define err(...)
#define UNZ_ERRNO
Definition: unzip.h:76
#define ZSEEK64(filefunc, filestream, pos, mode)
Definition: ioapi.h:202
int unz64local_getShort(const zlib_filefunc64_32_def *pzlib_filefunc_def, voidpf filestream, uLong *pX)
Definition: unzip.c:236
#define ZLIB_FILEFUNC_SEEK_SET
Definition: ioapi.h:114
#define SIZEZIPLOCALHEADER
Definition: unzip.c:116
unsigned int uInt
Definition: zconf.h:393

Referenced by unzOpenCurrentFile3().

◆ unz64local_DosDateToTmuDate()

void unz64local_DosDateToTmuDate ( ZPOS64_T  ulDosDate,
tm_unz ptm 
)

Definition at line 852 of file unzip.c.

853 {
854  ZPOS64_T uDate;
855  uDate = (ZPOS64_T)(ulDosDate>>16);
856  ptm->tm_mday = (uInt)(uDate&0x1f) ;
857  ptm->tm_mon = (uInt)((((uDate)&0x1E0)/0x20)-1) ;
858  ptm->tm_year = (uInt)(((uDate&0x0FE00)/0x0200)+1980) ;
859 
860  ptm->tm_hour = (uInt) ((ulDosDate &0xF800)/0x800);
861  ptm->tm_min = (uInt) ((ulDosDate&0x7E0)/0x20) ;
862  ptm->tm_sec = (uInt) (2*(ulDosDate&0x1f)) ;
863 }
uInt tm_mon
Definition: unzip.h:90
uInt tm_mday
Definition: unzip.h:89
uInt tm_hour
Definition: unzip.h:88
uInt tm_min
Definition: unzip.h:87
uInt tm_sec
Definition: unzip.h:86
unsigned long long int ZPOS64_T
Definition: ioapi.h:100
uInt tm_year
Definition: unzip.h:91
unsigned int uInt
Definition: zconf.h:393

Referenced by unz64local_GetCurrentFileInfoInternal().

◆ unz64local_getByte()

int unz64local_getByte ( const zlib_filefunc64_32_def pzlib_filefunc_def,
voidpf  filestream,
int pi 
)

Definition at line 209 of file unzip.c.

210 {
211  unsigned char c;
212  int err = (int)ZREAD64(*pzlib_filefunc_def,filestream,&c,1);
213  if (err==1)
214  {
215  *pi = (int)c;
216  return UNZ_OK;
217  }
218  else
219  {
220  if (ZERROR64(*pzlib_filefunc_def,filestream))
221  return UNZ_ERRNO;
222  else
223  return UNZ_EOF;
224  }
225 }
#define UNZ_OK
Definition: unzip.h:74
#define ZERROR64(filefunc, filestream)
Definition: ioapi.h:192
#define ZREAD64(filefunc, filestream, buf, size)
Definition: ioapi.h:187
const GLubyte * c
Definition: glext.h:8905
static DWORD pi
Definition: protocol.c:150
#define UNZ_EOF
Definition: unzip.h:77
#define err(...)
#define UNZ_ERRNO
Definition: unzip.h:76
#define c
Definition: ke_i.h:80
unsigned int(__cdecl typeof(jpeg_read_scanlines))(struct jpeg_decompress_struct *
Definition: typeof.h:31

Referenced by unz64local_getLong(), unz64local_getLong64(), and unz64local_getShort().

◆ unz64local_GetCurrentFileInfoInternal()

int unz64local_GetCurrentFileInfoInternal ( unzFile  file,
unz_file_info64 pfile_info,
unz_file_info64_internal pfile_info_internal,
char szFileName,
uLong  fileNameBufferSize,
void extraField,
uLong  extraFieldBufferSize,
char szComment,
uLong  commentBufferSize 
)

Definition at line 879 of file unzip.c.

889 {
890  unz64_s* s;
892  unz_file_info64_internal file_info_internal;
893  int err=UNZ_OK;
894  uLong uMagic;
895  long lSeek=0;
896  uLong uL;
897 
898  if (file==NULL)
899  return UNZ_PARAMERROR;
900  s=(unz64_s*)file;
901  if (ZSEEK64(s->z_filefunc, s->filestream,
902  s->pos_in_central_dir+s->byte_before_the_zipfile,
904  err=UNZ_ERRNO;
905 
906 
907  /* we check the magic */
908  if (err==UNZ_OK)
909  {
910  if (unz64local_getLong(&s->z_filefunc, s->filestream,&uMagic) != UNZ_OK)
911  err=UNZ_ERRNO;
912  else if (uMagic!=0x02014b50)
914  }
915 
916  if (unz64local_getShort(&s->z_filefunc, s->filestream,&file_info.version) != UNZ_OK)
917  err=UNZ_ERRNO;
918 
919  if (unz64local_getShort(&s->z_filefunc, s->filestream,&file_info.version_needed) != UNZ_OK)
920  err=UNZ_ERRNO;
921 
922  if (unz64local_getShort(&s->z_filefunc, s->filestream,&file_info.flag) != UNZ_OK)
923  err=UNZ_ERRNO;
924 
925  if (unz64local_getShort(&s->z_filefunc, s->filestream,&file_info.compression_method) != UNZ_OK)
926  err=UNZ_ERRNO;
927 
928  if (unz64local_getLong(&s->z_filefunc, s->filestream,&file_info.dosDate) != UNZ_OK)
929  err=UNZ_ERRNO;
930 
932 
933  if (unz64local_getLong(&s->z_filefunc, s->filestream,&file_info.crc) != UNZ_OK)
934  err=UNZ_ERRNO;
935 
936  if (unz64local_getLong(&s->z_filefunc, s->filestream,&uL) != UNZ_OK)
937  err=UNZ_ERRNO;
938  file_info.compressed_size = uL;
939 
940  if (unz64local_getLong(&s->z_filefunc, s->filestream,&uL) != UNZ_OK)
941  err=UNZ_ERRNO;
942  file_info.uncompressed_size = uL;
943 
944  if (unz64local_getShort(&s->z_filefunc, s->filestream,&file_info.size_filename) != UNZ_OK)
945  err=UNZ_ERRNO;
946 
947  if (unz64local_getShort(&s->z_filefunc, s->filestream,&file_info.size_file_extra) != UNZ_OK)
948  err=UNZ_ERRNO;
949 
950  if (unz64local_getShort(&s->z_filefunc, s->filestream,&file_info.size_file_comment) != UNZ_OK)
951  err=UNZ_ERRNO;
952 
953  if (unz64local_getShort(&s->z_filefunc, s->filestream,&file_info.disk_num_start) != UNZ_OK)
954  err=UNZ_ERRNO;
955 
956  if (unz64local_getShort(&s->z_filefunc, s->filestream,&file_info.internal_fa) != UNZ_OK)
957  err=UNZ_ERRNO;
958 
959  if (unz64local_getLong(&s->z_filefunc, s->filestream,&file_info.external_fa) != UNZ_OK)
960  err=UNZ_ERRNO;
961 
962  // relative offset of local header
963  if (unz64local_getLong(&s->z_filefunc, s->filestream,&uL) != UNZ_OK)
964  err=UNZ_ERRNO;
965  file_info_internal.offset_curfile = uL;
966 
967  lSeek+=file_info.size_filename;
968  if ((err==UNZ_OK) && (szFileName!=NULL))
969  {
970  uLong uSizeRead ;
971  if (file_info.size_filename<fileNameBufferSize)
972  {
973  *(szFileName+file_info.size_filename)='\0';
974  uSizeRead = file_info.size_filename;
975  }
976  else
977  uSizeRead = fileNameBufferSize;
978 
979  if ((file_info.size_filename>0) && (fileNameBufferSize>0))
980  if (ZREAD64(s->z_filefunc, s->filestream,szFileName,uSizeRead)!=uSizeRead)
981  err=UNZ_ERRNO;
982  lSeek -= uSizeRead;
983  }
984 
985  // Read extrafield
986  if ((err==UNZ_OK) && (extraField!=NULL))
987  {
988  ZPOS64_T uSizeRead ;
989  if (file_info.size_file_extra<extraFieldBufferSize)
990  uSizeRead = file_info.size_file_extra;
991  else
992  uSizeRead = extraFieldBufferSize;
993 
994  if (lSeek!=0)
995  {
996  if (ZSEEK64(s->z_filefunc, s->filestream,lSeek,ZLIB_FILEFUNC_SEEK_CUR)==0)
997  lSeek=0;
998  else
999  err=UNZ_ERRNO;
1000  }
1001 
1002  if ((file_info.size_file_extra>0) && (extraFieldBufferSize>0))
1003  if (ZREAD64(s->z_filefunc, s->filestream,extraField,(uLong)uSizeRead)!=uSizeRead)
1004  err=UNZ_ERRNO;
1005 
1006  lSeek += file_info.size_file_extra - (uLong)uSizeRead;
1007  }
1008  else
1009  lSeek += file_info.size_file_extra;
1010 
1011 
1012  if ((err==UNZ_OK) && (file_info.size_file_extra != 0))
1013  {
1014  uLong acc = 0;
1015 
1016  // since lSeek now points to after the extra field we need to move back
1017  lSeek -= file_info.size_file_extra;
1018 
1019  if (lSeek!=0)
1020  {
1021  if (ZSEEK64(s->z_filefunc, s->filestream,lSeek,ZLIB_FILEFUNC_SEEK_CUR)==0)
1022  lSeek=0;
1023  else
1024  err=UNZ_ERRNO;
1025  }
1026 
1027  while(acc < file_info.size_file_extra)
1028  {
1029  uLong headerId;
1030  uLong dataSize;
1031 
1032  if (unz64local_getShort(&s->z_filefunc, s->filestream,&headerId) != UNZ_OK)
1033  err=UNZ_ERRNO;
1034 
1035  if (unz64local_getShort(&s->z_filefunc, s->filestream,&dataSize) != UNZ_OK)
1036  err=UNZ_ERRNO;
1037 
1038  /* ZIP64 extra fields */
1039  if (headerId == 0x0001)
1040  {
1041  uLong uL;
1042 
1043  if(file_info.uncompressed_size == MAXU32)
1044  {
1045  if (unz64local_getLong64(&s->z_filefunc, s->filestream,&file_info.uncompressed_size) != UNZ_OK)
1046  err=UNZ_ERRNO;
1047  }
1048 
1049  if(file_info.compressed_size == MAXU32)
1050  {
1051  if (unz64local_getLong64(&s->z_filefunc, s->filestream,&file_info.compressed_size) != UNZ_OK)
1052  err=UNZ_ERRNO;
1053  }
1054 
1055  if(file_info_internal.offset_curfile == MAXU32)
1056  {
1057  /* Relative Header offset */
1058  if (unz64local_getLong64(&s->z_filefunc, s->filestream,&file_info_internal.offset_curfile) != UNZ_OK)
1059  err=UNZ_ERRNO;
1060  }
1061 
1062  if(file_info.disk_num_start == MAXU32)
1063  {
1064  /* Disk Start Number */
1065  if (unz64local_getLong(&s->z_filefunc, s->filestream,&uL) != UNZ_OK)
1066  err=UNZ_ERRNO;
1067  }
1068 
1069  }
1070  else
1071  {
1072  if (ZSEEK64(s->z_filefunc, s->filestream,dataSize,ZLIB_FILEFUNC_SEEK_CUR)!=0)
1073  err=UNZ_ERRNO;
1074  }
1075 
1076  acc += 2 + 2 + dataSize;
1077  }
1078  }
1079 
1080  if ((err==UNZ_OK) && (szComment!=NULL))
1081  {
1082  uLong uSizeRead ;
1083  if (file_info.size_file_comment<commentBufferSize)
1084  {
1085  *(szComment+file_info.size_file_comment)='\0';
1086  uSizeRead = file_info.size_file_comment;
1087  }
1088  else
1089  uSizeRead = commentBufferSize;
1090 
1091  if (lSeek!=0)
1092  {
1093  if (ZSEEK64(s->z_filefunc, s->filestream,lSeek,ZLIB_FILEFUNC_SEEK_CUR)==0)
1094  lSeek=0;
1095  else
1096  err=UNZ_ERRNO;
1097  }
1098 
1099  if ((file_info.size_file_comment>0) && (commentBufferSize>0))
1100  if (ZREAD64(s->z_filefunc, s->filestream,szComment,uSizeRead)!=uSizeRead)
1101  err=UNZ_ERRNO;
1102  lSeek+=file_info.size_file_comment - uSizeRead;
1103  }
1104  else
1105  lSeek+=file_info.size_file_comment;
1106 
1107 
1108  if ((err==UNZ_OK) && (pfile_info!=NULL))
1109  *pfile_info=file_info;
1110 
1111  if ((err==UNZ_OK) && (pfile_info_internal!=NULL))
1112  *pfile_info_internal=file_info_internal;
1113 
1114  return err;
1115 }
#define UNZ_PARAMERROR
Definition: unzip.h:78
#define UNZ_OK
Definition: unzip.h:74
#define UNZ_BADZIPFILE
Definition: unzip.h:79
int unz64local_getLong(const zlib_filefunc64_32_def *pzlib_filefunc_def, voidpf filestream, uLong *pX)
Definition: unzip.c:263
void unz64local_DosDateToTmuDate(ZPOS64_T ulDosDate, tm_unz *ptm)
Definition: unzip.c:852
#define ZLIB_FILEFUNC_SEEK_CUR
Definition: ioapi.h:112
smooth NULL
Definition: ftsmooth.c:416
unsigned long uLong
Definition: zconf.h:394
#define ZREAD64(filefunc, filestream, buf, size)
Definition: ioapi.h:187
int unz64local_getLong64(const zlib_filefunc64_32_def *pzlib_filefunc_def, voidpf filestream, ZPOS64_T *pX)
Definition: unzip.c:299
unsigned long long int ZPOS64_T
Definition: ioapi.h:100
GLdouble s
Definition: gl.h:2039
#define err(...)
#define UNZ_ERRNO
Definition: unzip.h:76
GLenum GLsizei dataSize
Definition: glext.h:11123
#define ZSEEK64(filefunc, filestream, pos, mode)
Definition: ioapi.h:202
#define MAXU32
Definition: ioapi.h:95
int unz64local_getShort(const zlib_filefunc64_32_def *pzlib_filefunc_def, voidpf filestream, uLong *pX)
Definition: unzip.c:236
#define ZLIB_FILEFUNC_SEEK_SET
Definition: ioapi.h:114
Definition: unzip.c:162
static const WCHAR szComment[]
Definition: domdoc.c:1167
Definition: fci.c:126

Referenced by unzGetCurrentFileInfo(), unzGetCurrentFileInfo64(), unzGoToFilePos64(), unzGoToFirstFile(), unzGoToNextFile(), and unzSetOffset64().

◆ unz64local_getLong()

int unz64local_getLong ( const zlib_filefunc64_32_def pzlib_filefunc_def,
voidpf  filestream,
uLong pX 
)

Definition at line 263 of file unzip.c.

266 {
267  uLong x ;
268  int i = 0;
269  int err;
270 
271  err = unz64local_getByte(pzlib_filefunc_def,filestream,&i);
272  x = (uLong)i;
273 
274  if (err==UNZ_OK)
275  err = unz64local_getByte(pzlib_filefunc_def,filestream,&i);
276  x |= ((uLong)i)<<8;
277 
278  if (err==UNZ_OK)
279  err = unz64local_getByte(pzlib_filefunc_def,filestream,&i);
280  x |= ((uLong)i)<<16;
281 
282  if (err==UNZ_OK)
283  err = unz64local_getByte(pzlib_filefunc_def,filestream,&i);
284  x += ((uLong)i)<<24;
285 
286  if (err==UNZ_OK)
287  *pX = x;
288  else
289  *pX = 0;
290  return err;
291 }
#define UNZ_OK
Definition: unzip.h:74
GLint GLint GLint GLint GLint x
Definition: gl.h:1548
GLsizei GLenum const GLvoid GLsizei GLenum GLbyte GLbyte GLbyte GLdouble GLdouble GLdouble GLfloat GLfloat GLfloat GLint GLint GLint GLshort GLshort GLshort GLubyte GLubyte GLubyte GLuint GLuint GLuint GLushort GLushort GLushort GLbyte GLbyte GLbyte GLbyte GLdouble GLdouble GLdouble GLdouble GLfloat GLfloat GLfloat GLfloat GLint GLint GLint GLint GLshort GLshort GLshort GLshort GLubyte GLubyte GLubyte GLubyte GLuint GLuint GLuint GLuint GLushort GLushort GLushort GLushort GLboolean const GLdouble const GLfloat const GLint const GLshort const GLbyte const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLdouble const GLfloat const GLfloat const GLint const GLint const GLshort const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort GLenum GLenum GLenum GLfloat GLenum GLint GLenum GLenum GLenum GLfloat GLenum GLenum GLint GLenum GLfloat GLenum GLint GLint GLushort GLenum GLenum GLfloat GLenum GLenum GLint GLfloat const GLubyte GLenum GLenum GLenum const GLfloat GLenum GLenum const GLint GLenum GLint GLint GLsizei GLsizei GLint GLenum GLenum const GLvoid GLenum GLenum const GLfloat GLenum GLenum const GLint GLenum GLenum const GLdouble GLenum GLenum const GLfloat GLenum GLenum const GLint GLsizei GLuint GLfloat GLuint GLbitfield GLfloat GLint GLuint GLboolean GLenum GLfloat GLenum GLbitfield GLenum GLfloat GLfloat GLint GLint const GLfloat GLenum GLfloat GLfloat GLint GLint GLfloat GLfloat GLint GLint const GLfloat GLint GLfloat GLfloat GLint GLfloat GLfloat GLint GLfloat GLfloat const GLdouble const GLfloat const GLdouble const GLfloat GLint i
Definition: glfuncs.h:248
unsigned long uLong
Definition: zconf.h:394
#define err(...)
int unz64local_getByte(const zlib_filefunc64_32_def *pzlib_filefunc_def, voidpf filestream, int *pi)
Definition: unzip.c:209

Referenced by unz64local_CheckCurrentFileCoherencyHeader(), unz64local_GetCurrentFileInfoInternal(), unz64local_SearchCentralDir64(), and unzOpenInternal().

◆ unz64local_getLong64()

int unz64local_getLong64 ( const zlib_filefunc64_32_def pzlib_filefunc_def,
voidpf  filestream,
ZPOS64_T pX 
)

Definition at line 299 of file unzip.c.

302 {
303  ZPOS64_T x ;
304  int i = 0;
305  int err;
306 
307  err = unz64local_getByte(pzlib_filefunc_def,filestream,&i);
308  x = (ZPOS64_T)i;
309 
310  if (err==UNZ_OK)
311  err = unz64local_getByte(pzlib_filefunc_def,filestream,&i);
312  x |= ((ZPOS64_T)i)<<8;
313 
314  if (err==UNZ_OK)
315  err = unz64local_getByte(pzlib_filefunc_def,filestream,&i);
316  x |= ((ZPOS64_T)i)<<16;
317 
318  if (err==UNZ_OK)
319  err = unz64local_getByte(pzlib_filefunc_def,filestream,&i);
320  x |= ((ZPOS64_T)i)<<24;
321 
322  if (err==UNZ_OK)
323  err = unz64local_getByte(pzlib_filefunc_def,filestream,&i);
324  x |= ((ZPOS64_T)i)<<32;
325 
326  if (err==UNZ_OK)
327  err = unz64local_getByte(pzlib_filefunc_def,filestream,&i);
328  x |= ((ZPOS64_T)i)<<40;
329 
330  if (err==UNZ_OK)
331  err = unz64local_getByte(pzlib_filefunc_def,filestream,&i);
332  x |= ((ZPOS64_T)i)<<48;
333 
334  if (err==UNZ_OK)
335  err = unz64local_getByte(pzlib_filefunc_def,filestream,&i);
336  x |= ((ZPOS64_T)i)<<56;
337 
338  if (err==UNZ_OK)
339  *pX = x;
340  else
341  *pX = 0;
342  return err;
343 }
#define UNZ_OK
Definition: unzip.h:74
GLint GLint GLint GLint GLint x
Definition: gl.h:1548
GLsizei GLenum const GLvoid GLsizei GLenum GLbyte GLbyte GLbyte GLdouble GLdouble GLdouble GLfloat GLfloat GLfloat GLint GLint GLint GLshort GLshort GLshort GLubyte GLubyte GLubyte GLuint GLuint GLuint GLushort GLushort GLushort GLbyte GLbyte GLbyte GLbyte GLdouble GLdouble GLdouble GLdouble GLfloat GLfloat GLfloat GLfloat GLint GLint GLint GLint GLshort GLshort GLshort GLshort GLubyte GLubyte GLubyte GLubyte GLuint GLuint GLuint GLuint GLushort GLushort GLushort GLushort GLboolean const GLdouble const GLfloat const GLint const GLshort const GLbyte const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLdouble const GLfloat const GLfloat const GLint const GLint const GLshort const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort GLenum GLenum GLenum GLfloat GLenum GLint GLenum GLenum GLenum GLfloat GLenum GLenum GLint GLenum GLfloat GLenum GLint GLint GLushort GLenum GLenum GLfloat GLenum GLenum GLint GLfloat const GLubyte GLenum GLenum GLenum const GLfloat GLenum GLenum const GLint GLenum GLint GLint GLsizei GLsizei GLint GLenum GLenum const GLvoid GLenum GLenum const GLfloat GLenum GLenum const GLint GLenum GLenum const GLdouble GLenum GLenum const GLfloat GLenum GLenum const GLint GLsizei GLuint GLfloat GLuint GLbitfield GLfloat GLint GLuint GLboolean GLenum GLfloat GLenum GLbitfield GLenum GLfloat GLfloat GLint GLint const GLfloat GLenum GLfloat GLfloat GLint GLint GLfloat GLfloat GLint GLint const GLfloat GLint GLfloat GLfloat GLint GLfloat GLfloat GLint GLfloat GLfloat const GLdouble const GLfloat const GLdouble const GLfloat GLint i
Definition: glfuncs.h:248
unsigned long long int ZPOS64_T
Definition: ioapi.h:100
#define err(...)
int unz64local_getByte(const zlib_filefunc64_32_def *pzlib_filefunc_def, voidpf filestream, int *pi)
Definition: unzip.c:209

Referenced by unz64local_GetCurrentFileInfoInternal(), unz64local_SearchCentralDir64(), and unzOpenInternal().

◆ unz64local_getShort()

int unz64local_getShort ( const zlib_filefunc64_32_def pzlib_filefunc_def,
voidpf  filestream,
uLong pX 
)

Definition at line 236 of file unzip.c.

239 {
240  uLong x ;
241  int i = 0;
242  int err;
243 
244  err = unz64local_getByte(pzlib_filefunc_def,filestream,&i);
245  x = (uLong)i;
246 
247  if (err==UNZ_OK)
248  err = unz64local_getByte(pzlib_filefunc_def,filestream,&i);
249  x |= ((uLong)i)<<8;
250 
251  if (err==UNZ_OK)
252  *pX = x;
253  else
254  *pX = 0;
255  return err;
256 }
#define UNZ_OK
Definition: unzip.h:74
GLint GLint GLint GLint GLint x
Definition: gl.h:1548
GLsizei GLenum const GLvoid GLsizei GLenum GLbyte GLbyte GLbyte GLdouble GLdouble GLdouble GLfloat GLfloat GLfloat GLint GLint GLint GLshort GLshort GLshort GLubyte GLubyte GLubyte GLuint GLuint GLuint GLushort GLushort GLushort GLbyte GLbyte GLbyte GLbyte GLdouble GLdouble GLdouble GLdouble GLfloat GLfloat GLfloat GLfloat GLint GLint GLint GLint GLshort GLshort GLshort GLshort GLubyte GLubyte GLubyte GLubyte GLuint GLuint GLuint GLuint GLushort GLushort GLushort GLushort GLboolean const GLdouble const GLfloat const GLint const GLshort const GLbyte const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLdouble const GLfloat const GLfloat const GLint const GLint const GLshort const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort GLenum GLenum GLenum GLfloat GLenum GLint GLenum GLenum GLenum GLfloat GLenum GLenum GLint GLenum GLfloat GLenum GLint GLint GLushort GLenum GLenum GLfloat GLenum GLenum GLint GLfloat const GLubyte GLenum GLenum GLenum const GLfloat GLenum GLenum const GLint GLenum GLint GLint GLsizei GLsizei GLint GLenum GLenum const GLvoid GLenum GLenum const GLfloat GLenum GLenum const GLint GLenum GLenum const GLdouble GLenum GLenum const GLfloat GLenum GLenum const GLint GLsizei GLuint GLfloat GLuint GLbitfield GLfloat GLint GLuint GLboolean GLenum GLfloat GLenum GLbitfield GLenum GLfloat GLfloat GLint GLint const GLfloat GLenum GLfloat GLfloat GLint GLint GLfloat GLfloat GLint GLint const GLfloat GLint GLfloat GLfloat GLint GLfloat GLfloat GLint GLfloat GLfloat const GLdouble const GLfloat const GLdouble const GLfloat GLint i
Definition: glfuncs.h:248
unsigned long uLong
Definition: zconf.h:394
#define err(...)
int unz64local_getByte(const zlib_filefunc64_32_def *pzlib_filefunc_def, voidpf filestream, int *pi)
Definition: unzip.c:209

Referenced by unz64local_CheckCurrentFileCoherencyHeader(), unz64local_GetCurrentFileInfoInternal(), and unzOpenInternal().

◆ unz64local_SearchCentralDir()

ZPOS64_T unz64local_SearchCentralDir ( const zlib_filefunc64_32_def pzlib_filefunc_def,
voidpf  filestream 
)

Definition at line 410 of file unzip.c.

411 {
412  unsigned char* buf;
413  ZPOS64_T uSizeFile;
414  ZPOS64_T uBackRead;
415  ZPOS64_T uMaxBack=0xffff; /* maximum size of global comment */
416  ZPOS64_T uPosFound=0;
417 
418  if (ZSEEK64(*pzlib_filefunc_def,filestream,0,ZLIB_FILEFUNC_SEEK_END) != 0)
419  return 0;
420 
421 
422  uSizeFile = ZTELL64(*pzlib_filefunc_def,filestream);
423 
424  if (uMaxBack>uSizeFile)
425  uMaxBack = uSizeFile;
426 
427  buf = (unsigned char*)ALLOC(BUFREADCOMMENT+4);
428  if (buf==NULL)
429  return 0;
430 
431  uBackRead = 4;
432  while (uBackRead<uMaxBack)
433  {
434  uLong uReadSize;
435  ZPOS64_T uReadPos ;
436  int i;
437  if (uBackRead+BUFREADCOMMENT>uMaxBack)
438  uBackRead = uMaxBack;
439  else
440  uBackRead+=BUFREADCOMMENT;
441  uReadPos = uSizeFile-uBackRead ;
442 
443  uReadSize = ((BUFREADCOMMENT+4) < (uSizeFile-uReadPos)) ?
444  (BUFREADCOMMENT+4) : (uLong)(uSizeFile-uReadPos);
445  if (ZSEEK64(*pzlib_filefunc_def,filestream,uReadPos,ZLIB_FILEFUNC_SEEK_SET)!=0)
446  break;
447 
448  if (ZREAD64(*pzlib_filefunc_def,filestream,buf,uReadSize)!=uReadSize)
449  break;
450 
451  for (i=(int)uReadSize-3; (i--)>0;)
452  if (((*(buf+i))==0x50) && ((*(buf+i+1))==0x4b) &&
453  ((*(buf+i+2))==0x05) && ((*(buf+i+3))==0x06))
454  {
455  uPosFound = uReadPos+i;
456  break;
457  }
458 
459  if (uPosFound!=0)
460  break;
461  }
462  TRYFREE(buf);
463  return uPosFound;
464 }
GLenum GLuint GLenum GLsizei const GLchar * buf
Definition: glext.h:7751
#define BUFREADCOMMENT
Definition: unzip.c:402
GLsizei GLenum const GLvoid GLsizei GLenum GLbyte GLbyte GLbyte GLdouble GLdouble GLdouble GLfloat GLfloat GLfloat GLint GLint GLint GLshort GLshort GLshort GLubyte GLubyte GLubyte GLuint GLuint GLuint GLushort GLushort GLushort GLbyte GLbyte GLbyte GLbyte GLdouble GLdouble GLdouble GLdouble GLfloat GLfloat GLfloat GLfloat GLint GLint GLint GLint GLshort GLshort GLshort GLshort GLubyte GLubyte GLubyte GLubyte GLuint GLuint GLuint GLuint GLushort GLushort GLushort GLushort GLboolean const GLdouble const GLfloat const GLint const GLshort const GLbyte const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLdouble const GLfloat const GLfloat const GLint const GLint const GLshort const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort GLenum GLenum GLenum GLfloat GLenum GLint GLenum GLenum GLenum GLfloat GLenum GLenum GLint GLenum GLfloat GLenum GLint GLint GLushort GLenum GLenum GLfloat GLenum GLenum GLint GLfloat const GLubyte GLenum GLenum GLenum const GLfloat GLenum GLenum const GLint GLenum GLint GLint GLsizei GLsizei GLint GLenum GLenum const GLvoid GLenum GLenum const GLfloat GLenum GLenum const GLint GLenum GLenum const GLdouble GLenum GLenum const GLfloat GLenum GLenum const GLint GLsizei GLuint GLfloat GLuint GLbitfield GLfloat GLint GLuint GLboolean GLenum GLfloat GLenum GLbitfield GLenum GLfloat GLfloat GLint GLint const GLfloat GLenum GLfloat GLfloat GLint GLint GLfloat GLfloat GLint GLint const GLfloat GLint GLfloat GLfloat GLint GLfloat GLfloat GLint GLfloat GLfloat const GLdouble const GLfloat const GLdouble const GLfloat GLint i
Definition: glfuncs.h:248
smooth NULL
Definition: ftsmooth.c:416
unsigned long uLong
Definition: zconf.h:394
#define ZREAD64(filefunc, filestream, buf, size)
Definition: ioapi.h:187
unsigned long long int ZPOS64_T
Definition: ioapi.h:100
#define ZTELL64(filefunc, filestream)
Definition: ioapi.h:201
#define ZSEEK64(filefunc, filestream, pos, mode)
Definition: ioapi.h:202
#define ZLIB_FILEFUNC_SEEK_END
Definition: ioapi.h:113
#define ZLIB_FILEFUNC_SEEK_SET
Definition: ioapi.h:114
#define TRYFREE(p)
Definition: unzip.c:112
#define ALLOC(size)
Definition: unzip.c:109

Referenced by unzOpenInternal().

◆ unz64local_SearchCentralDir64()

ZPOS64_T unz64local_SearchCentralDir64 ( const zlib_filefunc64_32_def pzlib_filefunc_def,
voidpf  filestream 
)

Definition at line 475 of file unzip.c.

477 {
478  unsigned char* buf;
479  ZPOS64_T uSizeFile;
480  ZPOS64_T uBackRead;
481  ZPOS64_T uMaxBack=0xffff; /* maximum size of global comment */
482  ZPOS64_T uPosFound=0;
483  uLong uL;
484  ZPOS64_T relativeOffset;
485 
486  if (ZSEEK64(*pzlib_filefunc_def,filestream,0,ZLIB_FILEFUNC_SEEK_END) != 0)
487  return 0;
488 
489 
490  uSizeFile = ZTELL64(*pzlib_filefunc_def,filestream);
491 
492  if (uMaxBack>uSizeFile)
493  uMaxBack = uSizeFile;
494 
495  buf = (unsigned char*)ALLOC(BUFREADCOMMENT+4);
496  if (buf==NULL)
497  return 0;
498 
499  uBackRead = 4;
500  while (uBackRead<uMaxBack)
501  {
502  uLong uReadSize;
503  ZPOS64_T uReadPos;
504  int i;
505  if (uBackRead+BUFREADCOMMENT>uMaxBack)
506  uBackRead = uMaxBack;
507  else
508  uBackRead+=BUFREADCOMMENT;
509  uReadPos = uSizeFile-uBackRead ;
510 
511  uReadSize = ((BUFREADCOMMENT+4) < (uSizeFile-uReadPos)) ?
512  (BUFREADCOMMENT+4) : (uLong)(uSizeFile-uReadPos);
513  if (ZSEEK64(*pzlib_filefunc_def,filestream,uReadPos,ZLIB_FILEFUNC_SEEK_SET)!=0)
514  break;
515 
516  if (ZREAD64(*pzlib_filefunc_def,filestream,buf,uReadSize)!=uReadSize)
517  break;
518 
519  for (i=(int)uReadSize-3; (i--)>0;)
520  if (((*(buf+i))==0x50) && ((*(buf+i+1))==0x4b) &&
521  ((*(buf+i+2))==0x06) && ((*(buf+i+3))==0x07))
522  {
523  uPosFound = uReadPos+i;
524  break;
525  }
526 
527  if (uPosFound!=0)
528  break;
529  }
530  TRYFREE(buf);
531  if (uPosFound == 0)
532  return 0;
533 
534  /* Zip64 end of central directory locator */
535  if (ZSEEK64(*pzlib_filefunc_def,filestream, uPosFound,ZLIB_FILEFUNC_SEEK_SET)!=0)
536  return 0;
537 
538  /* the signature, already checked */
539  if (unz64local_getLong(pzlib_filefunc_def,filestream,&uL)!=UNZ_OK)
540  return 0;
541 
542  /* number of the disk with the start of the zip64 end of central directory */
543  if (unz64local_getLong(pzlib_filefunc_def,filestream,&uL)!=UNZ_OK)
544  return 0;
545  if (uL != 0)
546  return 0;
547 
548  /* relative offset of the zip64 end of central directory record */
549  if (unz64local_getLong64(pzlib_filefunc_def,filestream,&relativeOffset)!=UNZ_OK)
550  return 0;
551 
552  /* total number of disks */
553  if (unz64local_getLong(pzlib_filefunc_def,filestream,&uL)!=UNZ_OK)
554  return 0;
555  if (uL != 1)
556  return 0;
557 
558  /* Goto end of central directory record */
559  if (ZSEEK64(*pzlib_filefunc_def,filestream, relativeOffset,ZLIB_FILEFUNC_SEEK_SET)!=0)
560  return 0;
561 
562  /* the signature */
563  if (unz64local_getLong(pzlib_filefunc_def,filestream,&uL)!=UNZ_OK)
564  return 0;
565 
566  if (uL != 0x06064b50)
567  return 0;
568 
569  return relativeOffset;
570 }
GLenum GLuint GLenum GLsizei const GLchar * buf
Definition: glext.h:7751
#define UNZ_OK
Definition: unzip.h:74
int unz64local_getLong(const zlib_filefunc64_32_def *pzlib_filefunc_def, voidpf filestream, uLong *pX)
Definition: unzip.c:263
#define BUFREADCOMMENT
Definition: unzip.c:402
GLsizei GLenum const GLvoid GLsizei GLenum GLbyte GLbyte GLbyte GLdouble GLdouble GLdouble GLfloat GLfloat GLfloat GLint GLint GLint GLshort GLshort GLshort GLubyte GLubyte GLubyte GLuint GLuint GLuint GLushort GLushort GLushort GLbyte GLbyte GLbyte GLbyte GLdouble GLdouble GLdouble GLdouble GLfloat GLfloat GLfloat GLfloat GLint GLint GLint GLint GLshort GLshort GLshort GLshort GLubyte GLubyte GLubyte GLubyte GLuint GLuint GLuint GLuint GLushort GLushort GLushort GLushort GLboolean const GLdouble const GLfloat const GLint const GLshort const GLbyte const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLdouble const GLfloat const GLfloat const GLint const GLint const GLshort const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort GLenum GLenum GLenum GLfloat GLenum GLint GLenum GLenum GLenum GLfloat GLenum GLenum GLint GLenum GLfloat GLenum GLint GLint GLushort GLenum GLenum GLfloat GLenum GLenum GLint GLfloat const GLubyte GLenum GLenum GLenum const GLfloat GLenum GLenum const GLint GLenum GLint GLint GLsizei GLsizei GLint GLenum GLenum const GLvoid GLenum GLenum const GLfloat GLenum GLenum const GLint GLenum GLenum const GLdouble GLenum GLenum const GLfloat GLenum GLenum const GLint GLsizei GLuint GLfloat GLuint GLbitfield GLfloat GLint GLuint GLboolean GLenum GLfloat GLenum GLbitfield GLenum GLfloat GLfloat GLint GLint const GLfloat GLenum GLfloat GLfloat GLint GLint GLfloat GLfloat GLint GLint const GLfloat GLint GLfloat GLfloat GLint GLfloat GLfloat GLint GLfloat GLfloat const GLdouble const GLfloat const GLdouble const GLfloat GLint i
Definition: glfuncs.h:248
smooth NULL
Definition: ftsmooth.c:416
unsigned long uLong
Definition: zconf.h:394
#define ZREAD64(filefunc, filestream, buf, size)
Definition: ioapi.h:187
int unz64local_getLong64(const zlib_filefunc64_32_def *pzlib_filefunc_def, voidpf filestream, ZPOS64_T *pX)
Definition: unzip.c:299
unsigned long long int ZPOS64_T
Definition: ioapi.h:100
#define ZTELL64(filefunc, filestream)
Definition: ioapi.h:201
#define ZSEEK64(filefunc, filestream, pos, mode)
Definition: ioapi.h:202
#define ZLIB_FILEFUNC_SEEK_END
Definition: ioapi.h:113
#define ZLIB_FILEFUNC_SEEK_SET
Definition: ioapi.h:114
#define TRYFREE(p)
Definition: unzip.c:112
#define ALLOC(size)
Definition: unzip.c:109

Referenced by unzOpenInternal().

◆ unzClose()

int ZEXPORT unzClose ( unzFile  file)

Definition at line 808 of file unzip.c.

809 {
810  unz64_s* s;
811  if (file==NULL)
812  return UNZ_PARAMERROR;
813  s=(unz64_s*)file;
814 
815  if (s->pfile_in_zip_read!=NULL)
817 
818  ZCLOSE64(s->z_filefunc, s->filestream);
819  TRYFREE(s);
820  return UNZ_OK;
821 }
#define UNZ_PARAMERROR
Definition: unzip.h:78
#define UNZ_OK
Definition: unzip.h:74
smooth NULL
Definition: ftsmooth.c:416
#define ZCLOSE64(filefunc, filestream)
Definition: ioapi.h:191
int ZEXPORT unzCloseCurrentFile(unzFile file)
Definition: unzip.c:2004
GLdouble s
Definition: gl.h:2039
Definition: unzip.c:162
#define TRYFREE(p)
Definition: unzip.c:112
Definition: fci.c:126

Referenced by CZipExtract::Close(), and CZipFolder::Close().

◆ unzCloseCurrentFile()

int ZEXPORT unzCloseCurrentFile ( unzFile  file)

Definition at line 2004 of file unzip.c.

2005 {
2006  int err=UNZ_OK;
2007 
2008  unz64_s* s;
2009  file_in_zip64_read_info_s* pfile_in_zip_read_info;
2010  if (file==NULL)
2011  return UNZ_PARAMERROR;
2012  s=(unz64_s*)file;
2013  pfile_in_zip_read_info=s->pfile_in_zip_read;
2014 
2015  if (pfile_in_zip_read_info==NULL)
2016  return UNZ_PARAMERROR;
2017 
2018 
2019  if ((pfile_in_zip_read_info->rest_read_uncompressed == 0) &&
2020  (!pfile_in_zip_read_info->raw))
2021  {
2022  if (pfile_in_zip_read_info->crc32 != pfile_in_zip_read_info->crc32_wait)
2023  err=UNZ_CRCERROR;
2024  }
2025 
2026 
2027  TRYFREE(pfile_in_zip_read_info->read_buffer);
2028  pfile_in_zip_read_info->read_buffer = NULL;
2029  if (pfile_in_zip_read_info->stream_initialised == Z_DEFLATED)
2030  inflateEnd(&pfile_in_zip_read_info->stream);
2031 #ifdef HAVE_BZIP2
2032  else if (pfile_in_zip_read_info->stream_initialised == Z_BZIP2ED)
2033  BZ2_bzDecompressEnd(&pfile_in_zip_read_info->bstream);
2034 #endif
2035 
2036 
2037  pfile_in_zip_read_info->stream_initialised = 0;
2038  TRYFREE(pfile_in_zip_read_info);
2039 
2040  s->pfile_in_zip_read=NULL;
2041 
2042  return err;
2043 }
#define UNZ_PARAMERROR
Definition: unzip.h:78
#define UNZ_OK
Definition: unzip.h:74
int ZEXPORT inflateEnd(z_streamp strm)
Definition: inflate.c:1277
smooth NULL
Definition: ftsmooth.c:416
#define Z_DEFLATED
Definition: zlib.h:209
#define Z_BZIP2ED
Definition: unzip.h:62
ZPOS64_T rest_read_uncompressed
Definition: unzip.c:151
GLdouble s
Definition: gl.h:2039
#define err(...)
int BZ_API() BZ2_bzDecompressEnd(bz_stream *strm)
Definition: bzlib.c:877
#define UNZ_CRCERROR
Definition: unzip.h:81
Definition: unzip.c:162
#define TRYFREE(p)
Definition: unzip.c:112
Definition: fci.c:126

Referenced by CZipExtract::Extract(), unzClose(), and unzOpenCurrentFile3().

◆ unzeof()

int ZEXPORT unzeof ( unzFile  file)

Definition at line 1924 of file unzip.c.

1925 {
1926  unz64_s* s;
1927  file_in_zip64_read_info_s* pfile_in_zip_read_info;
1928  if (file==NULL)
1929  return UNZ_PARAMERROR;
1930  s=(unz64_s*)file;
1931  pfile_in_zip_read_info=s->pfile_in_zip_read;
1932 
1933  if (pfile_in_zip_read_info==NULL)
1934  return UNZ_PARAMERROR;
1935 
1936  if (pfile_in_zip_read_info->rest_read_uncompressed == 0)
1937  return 1;
1938  else
1939  return 0;
1940 }
#define UNZ_PARAMERROR
Definition: unzip.h:78
smooth NULL
Definition: ftsmooth.c:416
ZPOS64_T rest_read_uncompressed
Definition: unzip.c:151
GLdouble s
Definition: gl.h:2039
Definition: unzip.c:162
Definition: fci.c:126

◆ unzGetCurrentFileInfo()

int ZEXPORT unzGetCurrentFileInfo ( unzFile  file,
unz_file_info pfile_info,
char szFileName,
uLong  fileNameBufferSize,
void extraField,
uLong  extraFieldBufferSize,
char szComment,
uLong  commentBufferSize 
)

Definition at line 1136 of file unzip.c.

1141 {
1142  int err;
1143  unz_file_info64 file_info64;
1145  szFileName,fileNameBufferSize,
1146  extraField,extraFieldBufferSize,
1147  szComment,commentBufferSize);
1148  if ((err==UNZ_OK) && (pfile_info != NULL))
1149  {
1150  pfile_info->version = file_info64.version;
1151  pfile_info->version_needed = file_info64.version_needed;
1152  pfile_info->flag = file_info64.flag;
1153  pfile_info->compression_method = file_info64.compression_method;
1154  pfile_info->dosDate = file_info64.dosDate;
1155  pfile_info->crc = file_info64.crc;
1156 
1157  pfile_info->size_filename = file_info64.size_filename;
1158  pfile_info->size_file_extra = file_info64.size_file_extra;
1159  pfile_info->size_file_comment = file_info64.size_file_comment;
1160 
1161  pfile_info->disk_num_start = file_info64.disk_num_start;
1162  pfile_info->internal_fa = file_info64.internal_fa;
1163  pfile_info->external_fa = file_info64.external_fa;
1164 
1165  pfile_info->tmu_date = file_info64.tmu_date,
1166 
1167 
1168  pfile_info->compressed_size = (uLong)file_info64.compressed_size;
1169  pfile_info->uncompressed_size = (uLong)file_info64.uncompressed_size;
1170 
1171  }
1172  return err;
1173 }
uLong version_needed
Definition: unzip.h:114
uLong size_filename
Definition: unzip.h:121
uLong disk_num_start
Definition: unzip.h:125
#define UNZ_OK
Definition: unzip.h:74
tm_unz tmu_date
Definition: unzip.h:150
uLong size_file_extra
Definition: unzip.h:143
uLong uncompressed_size
Definition: unzip.h:141
int unz64local_GetCurrentFileInfoInternal(unzFile file, unz_file_info64 *pfile_info, unz_file_info64_internal *pfile_info_internal, char *szFileName, uLong fileNameBufferSize, void *extraField, uLong extraFieldBufferSize, char *szComment, uLong commentBufferSize)
Definition: unzip.c:879
uLong size_file_comment
Definition: unzip.h:144
smooth NULL
Definition: ftsmooth.c:416
uLong size_filename
Definition: unzip.h:142
ZPOS64_T compressed_size
Definition: unzip.h:119
uLong external_fa
Definition: unzip.h:127
unsigned long uLong
Definition: zconf.h:394
uLong internal_fa
Definition: unzip.h:147
uLong disk_num_start
Definition: unzip.h:146
uLong compression_method
Definition: unzip.h:137
uLong version
Definition: unzip.h:134
uLong internal_fa
Definition: unzip.h:126
tm_unz tmu_date
Definition: unzip.h:129
uLong size_file_extra
Definition: unzip.h:122
uLong crc
Definition: unzip.h:139
#define err(...)
uLong version
Definition: unzip.h:113
uLong version_needed
Definition: unzip.h:135
uLong compressed_size
Definition: unzip.h:140
uLong size_file_comment
Definition: unzip.h:123
ZPOS64_T uncompressed_size
Definition: unzip.h:120
uLong dosDate
Definition: unzip.h:138
uLong compression_method
Definition: unzip.h:116
uLong flag
Definition: unzip.h:136
uLong external_fa
Definition: unzip.h:148
static const WCHAR szComment[]
Definition: domdoc.c:1167
uLong dosDate
Definition: unzip.h:117
Definition: fci.c:126

◆ unzGetCurrentFileInfo64()

int ZEXPORT unzGetCurrentFileInfo64 ( unzFile  file,
unz_file_info64 pfile_info,
char szFileName,
uLong  fileNameBufferSize,
void extraField,
uLong  extraFieldBufferSize,
char szComment,
uLong  commentBufferSize 
)

Definition at line 1124 of file unzip.c.

1129 {
1131  szFileName,fileNameBufferSize,
1132  extraField,extraFieldBufferSize,
1133  szComment,commentBufferSize);
1134 }
int unz64local_GetCurrentFileInfoInternal(unzFile file, unz_file_info64 *pfile_info, unz_file_info64_internal *pfile_info_internal, char *szFileName, uLong fileNameBufferSize, void *extraField, uLong extraFieldBufferSize, char *szComment, uLong commentBufferSize)
Definition: unzip.c:879
smooth NULL
Definition: ftsmooth.c:416
static const WCHAR szComment[]
Definition: domdoc.c:1167
Definition: fci.c:126

Referenced by CZipEnumerator::next(), and unzLocateFile().

◆ unzGetCurrentFileZStreamPos64()

ZPOS64_T ZEXPORT unzGetCurrentFileZStreamPos64 ( unzFile  file)

Addition for GDAL : START

Definition at line 1658 of file unzip.c.

1659 {
1660  unz64_s* s;
1661  file_in_zip64_read_info_s* pfile_in_zip_read_info;
1662  s=(unz64_s*)file;
1663  if (file==NULL)
1664  return 0; //UNZ_PARAMERROR;
1665  pfile_in_zip_read_info=s->pfile_in_zip_read;
1666  if (pfile_in_zip_read_info==NULL)
1667  return 0; //UNZ_PARAMERROR;
1668  return pfile_in_zip_read_info->pos_in_zipfile +
1669  pfile_in_zip_read_info->byte_before_the_zipfile;
1670 }
smooth NULL
Definition: ftsmooth.c:416
ZPOS64_T byte_before_the_zipfile
Definition: unzip.c:155
GLdouble s
Definition: gl.h:2039
ZPOS64_T pos_in_zipfile
Definition: unzip.c:140
Definition: unzip.c:162
Definition: fci.c:126

◆ unzGetFilePos()

int ZEXPORT unzGetFilePos ( unzFile  file,
unz_file_pos file_pos 
)

Definition at line 1324 of file unzip.c.

1327 {
1328  unz64_file_pos file_pos64;
1329  int err = unzGetFilePos64(file,&file_pos64);
1330  if (err==UNZ_OK)
1331  {
1332  file_pos->pos_in_zip_directory = (uLong)file_pos64.pos_in_zip_directory;
1333  file_pos->num_of_file = (uLong)file_pos64.num_of_file;
1334  }
1335  return err;
1336 }
ZPOS64_T num_of_file
Definition: unzip.h:275
#define UNZ_OK
Definition: unzip.h:74
int ZEXPORT unzGetFilePos64(unzFile file, unz64_file_pos *file_pos)
Definition: unzip.c:1308
uLong pos_in_zip_directory
Definition: unzip.h:260
ZPOS64_T pos_in_zip_directory
Definition: unzip.h:274
unsigned long uLong
Definition: zconf.h:394
#define err(...)
uLong num_of_file
Definition: unzip.h:261
Definition: fci.c:126

◆ unzGetFilePos64()

int ZEXPORT unzGetFilePos64 ( unzFile  file,
unz64_file_pos file_pos 
)

Definition at line 1308 of file unzip.c.

1309 {
1310  unz64_s* s;
1311 
1312  if (file==NULL || file_pos==NULL)
1313  return UNZ_PARAMERROR;
1314  s=(unz64_s*)file;
1315  if (!s->current_file_ok)
1316  return UNZ_END_OF_LIST_OF_FILE;
1317 
1318  file_pos->pos_in_zip_directory = s->pos_in_central_dir;
1319  file_pos->num_of_file = s->num_file;
1320 
1321  return UNZ_OK;
1322 }
#define UNZ_PARAMERROR
Definition: unzip.h:78
ZPOS64_T num_of_file
Definition: unzip.h:275
#define UNZ_OK
Definition: unzip.h:74
smooth NULL
Definition: ftsmooth.c:416
ZPOS64_T pos_in_zip_directory
Definition: unzip.h:274
GLdouble s
Definition: gl.h:2039
#define UNZ_END_OF_LIST_OF_FILE
Definition: unzip.h:75
Definition: unzip.c:162
Definition: fci.c:126

Referenced by unzGetFilePos().

◆ unzGetGlobalComment()

int ZEXPORT unzGetGlobalComment ( unzFile  file,
char szComment,
uLong  uSizeBuf 
)

Definition at line 2051 of file unzip.c.

2052 {
2053  unz64_s* s;
2054  uLong uReadThis ;
2055  if (file==NULL)
2056  return (int)UNZ_PARAMERROR;
2057  s=(unz64_s*)file;
2058 
2059  uReadThis = uSizeBuf;
2060  if (uReadThis>s->gi.size_comment)
2061  uReadThis = s->gi.size_comment;
2062 
2063  if (ZSEEK64(s->z_filefunc,s->filestream,s->central_pos+22,ZLIB_FILEFUNC_SEEK_SET)!=0)
2064  return UNZ_ERRNO;
2065 
2066  if (uReadThis>0)
2067  {
2068  *szComment='\0';
2069  if (ZREAD64(s->z_filefunc,s->filestream,szComment,uReadThis)!=uReadThis)
2070  return UNZ_ERRNO;
2071  }
2072 
2073  if ((szComment != NULL) && (uSizeBuf > s->gi.size_comment))
2074  *(szComment+s->gi.size_comment)='\0';
2075  return (int)uReadThis;
2076 }
#define UNZ_PARAMERROR
Definition: unzip.h:78
smooth NULL
Definition: ftsmooth.c:416
unsigned long uLong
Definition: zconf.h:394
#define ZREAD64(filefunc, filestream, buf, size)
Definition: ioapi.h:187
GLdouble s
Definition: gl.h:2039
#define UNZ_ERRNO
Definition: unzip.h:76
#define ZSEEK64(filefunc, filestream, pos, mode)
Definition: ioapi.h:202
#define ZLIB_FILEFUNC_SEEK_SET
Definition: ioapi.h:114
Definition: unzip.c:162
static const WCHAR szComment[]
Definition: domdoc.c:1167
Definition: fci.c:126

◆ unzGetGlobalInfo()

int ZEXPORT unzGetGlobalInfo ( unzFile  file,
unz_global_info pglobal_info32 
)

Definition at line 838 of file unzip.c.

839 {
840  unz64_s* s;
841  if (file==NULL)
842  return UNZ_PARAMERROR;
843  s=(unz64_s*)file;
844  /* to do : check if number_entry is not truncated */
845  pglobal_info32->number_entry = (uLong)s->gi.number_entry;
846  pglobal_info32->size_comment = s->gi.size_comment;
847  return UNZ_OK;
848 }
#define UNZ_PARAMERROR
Definition: unzip.h:78
#define UNZ_OK
Definition: unzip.h:74
smooth NULL
Definition: ftsmooth.c:416
unsigned long uLong
Definition: zconf.h:394
GLdouble s
Definition: gl.h:2039
uLong number_entry
Definition: unzip.h:105
Definition: unzip.c:162
uLong size_comment
Definition: unzip.h:107
Definition: fci.c:126

◆ unzGetGlobalInfo64()

int ZEXPORT unzGetGlobalInfo64 ( unzFile  file,
unz_global_info64 pglobal_info 
)

Definition at line 828 of file unzip.c.

829 {
830  unz64_s* s;
831  if (file==NULL)
832  return UNZ_PARAMERROR;
833  s=(unz64_s*)file;
834  *pglobal_info=s->gi;
835  return UNZ_OK;
836 }
#define UNZ_PARAMERROR
Definition: unzip.h:78
#define UNZ_OK
Definition: unzip.h:74
smooth NULL
Definition: ftsmooth.c:416
GLdouble s
Definition: gl.h:2039
Definition: unzip.c:162
Definition: fci.c:126

Referenced by CZipExtract::Extract().

◆ unzGetLocalExtrafield()

int ZEXPORT unzGetLocalExtrafield ( unzFile  file,
voidp  buf,
unsigned  len 
)

Definition at line 1956 of file unzip.c.

1957 {
1958  unz64_s* s;
1959  file_in_zip64_read_info_s* pfile_in_zip_read_info;
1960  uInt read_now;
1961  ZPOS64_T size_to_read;
1962 
1963  if (file==NULL)
1964  return UNZ_PARAMERROR;
1965  s=(unz64_s*)file;
1966  pfile_in_zip_read_info=s->pfile_in_zip_read;
1967 
1968  if (pfile_in_zip_read_info==NULL)
1969  return UNZ_PARAMERROR;
1970 
1971  size_to_read = (pfile_in_zip_read_info->size_local_extrafield -
1972  pfile_in_zip_read_info->pos_local_extrafield);
1973 
1974  if (buf==NULL)
1975  return (int)size_to_read;
1976 
1977  if (len>size_to_read)
1978  read_now = (uInt)size_to_read;
1979  else
1980  read_now = (uInt)len ;
1981 
1982  if (read_now==0)
1983  return 0;
1984 
1985  if (ZSEEK64(pfile_in_zip_read_info->z_filefunc,
1986  pfile_in_zip_read_info->filestream,
1987  pfile_in_zip_read_info->offset_local_extrafield +
1988  pfile_in_zip_read_info->pos_local_extrafield,
1990  return UNZ_ERRNO;
1991 
1992  if (ZREAD64(pfile_in_zip_read_info->z_filefunc,
1993  pfile_in_zip_read_info->filestream,
1994  buf,read_now)!=read_now)
1995  return UNZ_ERRNO;
1996 
1997  return (int)read_now;
1998 }
#define UNZ_PARAMERROR
Definition: unzip.h:78
GLenum GLuint GLenum GLsizei const GLchar * buf
Definition: glext.h:7751
ZPOS64_T pos_local_extrafield
Definition: unzip.c:145
smooth NULL
Definition: ftsmooth.c:416
#define ZREAD64(filefunc, filestream, buf, size)
Definition: ioapi.h:187
ZPOS64_T offset_local_extrafield
Definition: unzip.c:143
unsigned long long int ZPOS64_T
Definition: ioapi.h:100
zlib_filefunc64_32_def z_filefunc
Definition: unzip.c:152
GLenum GLsizei len
Definition: glext.h:6722
GLdouble s
Definition: gl.h:2039
#define UNZ_ERRNO
Definition: unzip.h:76
#define ZSEEK64(filefunc, filestream, pos, mode)
Definition: ioapi.h:202
#define ZLIB_FILEFUNC_SEEK_SET
Definition: ioapi.h:114
Definition: unzip.c:162
unsigned int uInt
Definition: zconf.h:393
Definition: fci.c:126

◆ unzGetOffset()

uLong ZEXPORT unzGetOffset ( unzFile  file)

Definition at line 2094 of file unzip.c.

2095 {
2096  ZPOS64_T offset64;
2097 
2098  if (file==NULL)
2099  return 0; //UNZ_PARAMERROR;
2100  offset64 = unzGetOffset64(file);
2101  return (uLong)offset64;
2102 }
smooth NULL
Definition: ftsmooth.c:416
unsigned long uLong
Definition: zconf.h:394
unsigned long long int ZPOS64_T
Definition: ioapi.h:100
ZPOS64_T ZEXPORT unzGetOffset64(unzFile file)
Definition: unzip.c:2079
Definition: fci.c:126

◆ unzGetOffset64()

ZPOS64_T ZEXPORT unzGetOffset64 ( unzFile  file)

Definition at line 2079 of file unzip.c.

2080 {
2081  unz64_s* s;
2082 
2083  if (file==NULL)
2084  return 0; //UNZ_PARAMERROR;
2085  s=(unz64_s*)file;
2086  if (!s->current_file_ok)
2087  return 0;
2088  if (s->gi.number_entry != 0 && s->gi.number_entry != 0xffff)
2089  if (s->num_file==s->gi.number_entry)
2090  return 0;
2091  return s->pos_in_central_dir;
2092 }
smooth NULL
Definition: ftsmooth.c:416
GLdouble s
Definition: gl.h:2039
Definition: unzip.c:162
Definition: fci.c:126

Referenced by unzGetOffset().

◆ unzGoToFilePos()

int ZEXPORT unzGoToFilePos ( unzFile  file,
unz_file_pos file_pos 
)

Definition at line 1360 of file unzip.c.

1363 {
1364  unz64_file_pos file_pos64;
1365  if (file_pos == NULL)
1366  return UNZ_PARAMERROR;
1367 
1368  file_pos64.pos_in_zip_directory = file_pos->pos_in_zip_directory;
1369  file_pos64.num_of_file = file_pos->num_of_file;
1370  return unzGoToFilePos64(file,&file_pos64);
1371 }
#define UNZ_PARAMERROR
Definition: unzip.h:78
ZPOS64_T num_of_file
Definition: unzip.h:275
int ZEXPORT unzGoToFilePos64(unzFile file, const unz64_file_pos *file_pos)
Definition: unzip.c:1338
uLong pos_in_zip_directory
Definition: unzip.h:260
smooth NULL
Definition: ftsmooth.c:416
ZPOS64_T pos_in_zip_directory
Definition: unzip.h:274
uLong num_of_file
Definition: unzip.h:261
Definition: fci.c:126

◆ unzGoToFilePos64()

int ZEXPORT unzGoToFilePos64 ( unzFile  file,
const unz64_file_pos file_pos 
)

Definition at line 1338 of file unzip.c.

1339 {
1340  unz64_s* s;
1341  int err;
1342 
1343  if (file==NULL || file_pos==NULL)
1344  return UNZ_PARAMERROR;
1345  s=(unz64_s*)file;
1346 
1347  /* jump to the right spot */
1348  s->pos_in_central_dir = file_pos->pos_in_zip_directory;
1349  s->num_file = file_pos->num_of_file;
1350 
1351  /* set the current file */
1352  err = unz64local_GetCurrentFileInfoInternal(file,&s->cur_file_info,
1353  &s->cur_file_info_internal,
1354  NULL,0,NULL,0,NULL,0);
1355  /* return results */
1356  s->current_file_ok = (err == UNZ_OK);
1357  return err;
1358 }
#define UNZ_PARAMERROR
Definition: unzip.h:78
ZPOS64_T num_of_file
Definition: unzip.h:275
#define UNZ_OK
Definition: unzip.h:74
int unz64local_GetCurrentFileInfoInternal(unzFile file, unz_file_info64 *pfile_info, unz_file_info64_internal *pfile_info_internal, char *szFileName, uLong fileNameBufferSize, void *extraField, uLong extraFieldBufferSize, char *szComment, uLong commentBufferSize)
Definition: unzip.c:879
smooth NULL
Definition: ftsmooth.c:416
ZPOS64_T pos_in_zip_directory
Definition: unzip.h:274
GLdouble s
Definition: gl.h:2039
#define err(...)
Definition: unzip.c:162
Definition: fci.c:126

Referenced by unzGoToFilePos().

◆ unzGoToFirstFile()

int ZEXPORT unzGoToFirstFile ( unzFile  file)

Definition at line 1178 of file unzip.c.

1179 {
1180  int err=UNZ_OK;
1181  unz64_s* s;
1182  if (file==NULL)
1183  return UNZ_PARAMERROR;
1184  s=(unz64_s*)file;
1185  s->pos_in_central_dir=s->offset_central_dir;
1186  s->num_file=0;
1188  &s->cur_file_info_internal,
1189  NULL,0,NULL,0,NULL,0);
1190  s->current_file_ok = (err == UNZ_OK);
1191  return err;
1192 }
#define UNZ_PARAMERROR
Definition: unzip.h:78
#define UNZ_OK
Definition: unzip.h:74
int unz64local_GetCurrentFileInfoInternal(unzFile file, unz_file_info64 *pfile_info, unz_file_info64_internal *pfile_info_internal, char *szFileName, uLong fileNameBufferSize, void *extraField, uLong extraFieldBufferSize, char *szComment, uLong commentBufferSize)
Definition: unzip.c:879
smooth NULL
Definition: ftsmooth.c:416
GLdouble s
Definition: gl.h:2039
#define err(...)
Definition: unzip.c:162
Definition: fci.c:126

Referenced by CZipEnumerator::reset(), unzLocateFile(), and unzOpenInternal().

◆ unzGoToNextFile()

int ZEXPORT unzGoToNextFile ( unzFile  file)

Definition at line 1199 of file unzip.c.

1200 {
1201  unz64_s* s;
1202  int err;
1203 
1204  if (file==NULL)
1205  return UNZ_PARAMERROR;
1206  s=(unz64_s*)file;
1207  if (!s->current_file_ok)
1208  return UNZ_END_OF_LIST_OF_FILE;
1209  if (s->gi.number_entry != 0xffff) /* 2^16 files overflow hack */
1210  if (s->num_file+1==s->gi.number_entry)
1211  return UNZ_END_OF_LIST_OF_FILE;
1212 
1213  s->pos_in_central_dir += SIZECENTRALDIRITEM + s->cur_file_info.size_filename +
1214  s->cur_file_info.size_file_extra + s->cur_file_info.size_file_comment ;
1215  s->num_file++;
1216  err = unz64local_GetCurrentFileInfoInternal(file,&s->cur_file_info,
1217  &s->cur_file_info_internal,
1218  NULL,0,NULL,0,NULL,0);
1219  s->current_file_ok = (err == UNZ_OK);
1220  return err;
1221 }
#define UNZ_PARAMERROR
Definition: unzip.h:78
#define UNZ_OK
Definition: unzip.h:74
int unz64local_GetCurrentFileInfoInternal(unzFile file, unz_file_info64 *pfile_info, unz_file_info64_internal *pfile_info_internal, char *szFileName, uLong fileNameBufferSize, void *extraField, uLong extraFieldBufferSize, char *szComment, uLong commentBufferSize)
Definition: unzip.c:879
smooth NULL
Definition: ftsmooth.c:416
GLdouble s
Definition: gl.h:2039
#define err(...)
#define SIZECENTRALDIRITEM
Definition: unzip.c:115
#define UNZ_END_OF_LIST_OF_FILE
Definition: unzip.h:75
Definition: unzip.c:162
Definition: fci.c:126

Referenced by CZipEnumerator::next(), and unzLocateFile().

◆ unzLocateFile()

int ZEXPORT unzLocateFile ( unzFile  file,
const char szFileName,
int  iCaseSensitivity 
)

Definition at line 1232 of file unzip.c.

1233 {
1234  unz64_s* s;
1235  int err;
1236 
1237  /* We remember the 'current' position in the file so that we can jump
1238  * back there if we fail.
1239  */
1240  unz_file_info64 cur_file_infoSaved;
1241  unz_file_info64_internal cur_file_info_internalSaved;
1242  ZPOS64_T num_fileSaved;
1243  ZPOS64_T pos_in_central_dirSaved;
1244 
1245 
1246  if (file==NULL)
1247  return UNZ_PARAMERROR;
1248 
1249  if (strlen(szFileName)>=UNZ_MAXFILENAMEINZIP)
1250  return UNZ_PARAMERROR;
1251 
1252  s=(unz64_s*)file;
1253  if (!s->current_file_ok)
1254  return UNZ_END_OF_LIST_OF_FILE;
1255 
1256  /* Save the current state */
1257  num_fileSaved = s->num_file;
1258  pos_in_central_dirSaved = s->pos_in_central_dir;
1259  cur_file_infoSaved = s->cur_file_info;
1260  cur_file_info_internalSaved = s->cur_file_info_internal;
1261 
1263 
1264  while (err == UNZ_OK)
1265  {
1266  char szCurrentFileName[UNZ_MAXFILENAMEINZIP+1];
1268  szCurrentFileName,sizeof(szCurrentFileName)-1,
1269  NULL,0,NULL,0);
1270  if (err == UNZ_OK)
1271  {
1272  if (unzStringFileNameCompare(szCurrentFileName,
1273  szFileName,iCaseSensitivity)==0)
1274  return UNZ_OK;
1276  }
1277  }
1278 
1279  /* We failed, so restore the state of the 'current file' to where we
1280  * were.
1281  */
1282  s->num_file = num_fileSaved ;
1283  s->pos_in_central_dir = pos_in_central_dirSaved ;
1284  s->cur_file_info = cur_file_infoSaved;
1285  s->cur_file_info_internal = cur_file_info_internalSaved;
1286  return err;
1287 }
#define UNZ_PARAMERROR
Definition: unzip.h:78
int ZEXPORT unzGoToFirstFile(unzFile file)
Definition: unzip.c:1178
ACPI_SIZE strlen(const char *String)
Definition: utclib.c:269
#define UNZ_OK
Definition: unzip.h:74
int ZEXPORT unzGoToNextFile(unzFile file)
Definition: unzip.c:1199
smooth NULL
Definition: ftsmooth.c:416
unsigned long long int ZPOS64_T
Definition: ioapi.h:100
GLdouble s
Definition: gl.h:2039
int ZEXPORT unzGetCurrentFileInfo64(unzFile file, unz_file_info64 *pfile_info, char *szFileName, uLong fileNameBufferSize, void *extraField, uLong extraFieldBufferSize, char *szComment, uLong commentBufferSize)
Definition: unzip.c:1124
#define err(...)
int ZEXPORT unzStringFileNameCompare(const char *fileName1, const char *fileName2, int iCaseSensitivity)
Definition: unzip.c:387
#define UNZ_MAXFILENAMEINZIP
Definition: unzip.c:105
#define UNZ_END_OF_LIST_OF_FILE
Definition: unzip.h:75
Definition: unzip.c:162
Definition: fci.c:126

◆ unzOpen()

unzFile ZEXPORT unzOpen ( const char path)

Definition at line 793 of file unzip.c.

794 {
795  return unzOpenInternal(path, NULL, 0);
796 }
unzFile unzOpenInternal(const void *path, zlib_filefunc64_32_def *pzlib_filefunc64_32_def, int is64bitOpenFunction)
Definition: unzip.c:581
smooth NULL
Definition: ftsmooth.c:416
Definition: services.c:325

◆ unzOpen2()

unzFile ZEXPORT unzOpen2 ( const char path,
zlib_filefunc_def pzlib_filefunc32_def 
)

Definition at line 764 of file unzip.c.

766 {
767  if (pzlib_filefunc32_def != NULL)
768  {
769  zlib_filefunc64_32_def zlib_filefunc64_32_def_fill;
770  fill_zlib_filefunc64_32_def_from_filefunc32(&zlib_filefunc64_32_def_fill,pzlib_filefunc32_def);
771  return unzOpenInternal(path, &zlib_filefunc64_32_def_fill, 0);
772  }
773  else
774  return unzOpenInternal(path, NULL, 0);
775 }
unzFile unzOpenInternal(const void *path, zlib_filefunc64_32_def *pzlib_filefunc64_32_def, int is64bitOpenFunction)
Definition: unzip.c:581
smooth NULL
Definition: ftsmooth.c:416
Definition: services.c:325
void fill_zlib_filefunc64_32_def_from_filefunc32(zlib_filefunc64_32_def *p_filefunc64_32, const zlib_filefunc_def *p_filefunc32)
Definition: ioapi.c:70

◆ unzOpen2_64()

unzFile ZEXPORT unzOpen2_64 ( const void path,
zlib_filefunc64_def pzlib_filefunc_def 
)

Definition at line 778 of file unzip.c.

780 {
781  if (pzlib_filefunc_def != NULL)
782  {
783  zlib_filefunc64_32_def zlib_filefunc64_32_def_fill;
784  zlib_filefunc64_32_def_fill.zfile_func64 = *pzlib_filefunc_def;
785  zlib_filefunc64_32_def_fill.ztell32_file = NULL;
786  zlib_filefunc64_32_def_fill.zseek32_file = NULL;
787  return unzOpenInternal(path, &zlib_filefunc64_32_def_fill, 1);
788  }
789  else
790  return unzOpenInternal(path, NULL, 1);
791 }
unzFile unzOpenInternal(const void *path, zlib_filefunc64_32_def *pzlib_filefunc64_32_def, int is64bitOpenFunction)
Definition: unzip.c:581
seek_file_func zseek32_file
Definition: ioapi.h:183
smooth NULL
Definition: ftsmooth.c:416
zlib_filefunc64_def zfile_func64
Definition: ioapi.h:180
tell_file_func ztell32_file
Definition: ioapi.h:182
Definition: services.c:325

Referenced by CZipExtract::Extract(), and CZipFolder::STDMETHODIMP_().

◆ unzOpen64()

unzFile ZEXPORT unzOpen64 ( const void path)

Definition at line 798 of file unzip.c.

799 {
800  return unzOpenInternal(path, NULL, 1);
801 }
unzFile unzOpenInternal(const void *path, zlib_filefunc64_32_def *pzlib_filefunc64_32_def, int is64bitOpenFunction)
Definition: unzip.c:581
smooth NULL
Definition: ftsmooth.c:416
Definition: services.c:325

◆ unzOpenCurrentFile()

int ZEXPORT unzOpenCurrentFile ( unzFile  file)

Definition at line 1641 of file unzip.c.

1642 {
1643  return unzOpenCurrentFile3(file, NULL, NULL, 0, NULL);
1644 }
int ZEXPORT unzOpenCurrentFile3(unzFile file, int *method, int *level, int raw, const char *password)
Definition: unzip.c:1472
smooth NULL
Definition: ftsmooth.c:416
Definition: fci.c:126

Referenced by CZipExtract::Extract().

◆ unzOpenCurrentFile2()

int ZEXPORT unzOpenCurrentFile2 ( unzFile  file,
int method,
int level,
int  raw 
)

Definition at line 1651 of file unzip.c.

1652 {
1653  return unzOpenCurrentFile3(file, method, level, raw, NULL);
1654 }
GLint level
Definition: gl.h:1546
int ZEXPORT unzOpenCurrentFile3(unzFile file, int *method, int *level, int raw, const char *password)
Definition: unzip.c:1472
smooth NULL
Definition: ftsmooth.c:416
method
Definition: dragdrop.c:53
Definition: fci.c:126

◆ unzOpenCurrentFile3()

int ZEXPORT unzOpenCurrentFile3 ( unzFile  file,
int method,
int level,
int  raw,
const char password 
)

Definition at line 1472 of file unzip.c.

1474 {
1475  int err=UNZ_OK;
1476  uInt iSizeVar;
1477  unz64_s* s;
1478  file_in_zip64_read_info_s* pfile_in_zip_read_info;
1479  ZPOS64_T offset_local_extrafield; /* offset of the local extra field */
1480  uInt size_local_extrafield; /* size of the local extra field */
1481 # ifndef NOUNCRYPT
1482  char source[12];
1483 # else
1484  if (password != NULL)
1485  return UNZ_PARAMERROR;
1486 # endif
1487 
1488  if (file==NULL)
1489  return UNZ_PARAMERROR;
1490  s=(unz64_s*)file;
1491  if (!s->current_file_ok)
1492  return UNZ_PARAMERROR;
1493 
1494  if (s->pfile_in_zip_read != NULL)
1496 
1497  if (unz64local_CheckCurrentFileCoherencyHeader(s,&iSizeVar, &offset_local_extrafield,&size_local_extrafield)!=UNZ_OK)
1498  return UNZ_BADZIPFILE;
1499 
1500  pfile_in_zip_read_info = (file_in_zip64_read_info_s*)ALLOC(sizeof(file_in_zip64_read_info_s));
1501  if (pfile_in_zip_read_info==NULL)
1502  return UNZ_INTERNALERROR;
1503 
1504  pfile_in_zip_read_info->read_buffer=(char*)ALLOC(UNZ_BUFSIZE);
1505  pfile_in_zip_read_info->offset_local_extrafield = offset_local_extrafield;
1506  pfile_in_zip_read_info->size_local_extrafield = size_local_extrafield;
1507  pfile_in_zip_read_info->pos_local_extrafield=0;
1508  pfile_in_zip_read_info->raw=raw;
1509 
1510  if (pfile_in_zip_read_info->read_buffer==NULL)
1511  {
1512  TRYFREE(pfile_in_zip_read_info);
1513  return UNZ_INTERNALERROR;
1514  }
1515 
1516  pfile_in_zip_read_info->stream_initialised=0;
1517 
1518  if (method!=NULL)
1519  *method = (int)s->cur_file_info.compression_method;
1520 
1521  if (level!=NULL)
1522  {
1523  *level = 6;
1524  switch (s->cur_file_info.flag & 0x06)
1525  {
1526  case 6 : *level = 1; break;
1527  case 4 : *level = 2; break;
1528  case 2 : *level = 9; break;
1529  }
1530  }
1531 
1532  if ((s->cur_file_info.compression_method!=0) &&
1533 /* #ifdef HAVE_BZIP2 */
1534  (s->cur_file_info.compression_method!=Z_BZIP2ED) &&
1535 /* #endif */
1536  (s->cur_file_info.compression_method!=Z_DEFLATED))
1537 
1539 
1540  pfile_in_zip_read_info->crc32_wait=s->cur_file_info.crc;
1541  pfile_in_zip_read_info->crc32=0;
1542  pfile_in_zip_read_info->total_out_64=0;
1543  pfile_in_zip_read_info->compression_method = s->cur_file_info.compression_method;
1544  pfile_in_zip_read_info->filestream=s->filestream;
1545  pfile_in_zip_read_info->z_filefunc=s->z_filefunc;
1546  pfile_in_zip_read_info->byte_before_the_zipfile=s->byte_before_the_zipfile;
1547 
1548  pfile_in_zip_read_info->stream.total_out = 0;
1549 
1550  if ((s->cur_file_info.compression_method==Z_BZIP2ED) && (!raw))
1551  {
1552 #ifdef HAVE_BZIP2
1553  pfile_in_zip_read_info->bstream.bzalloc = (void *(*) (void *, int, int))0;
1554  pfile_in_zip_read_info->bstream.bzfree = (free_func)0;
1555  pfile_in_zip_read_info->bstream.opaque = (voidpf)0;
1556  pfile_in_zip_read_info->bstream.state = (voidpf)0;
1557 
1558  pfile_in_zip_read_info->stream.zalloc = (alloc_func)0;
1559  pfile_in_zip_read_info->stream.zfree = (free_func)0;
1560  pfile_in_zip_read_info->stream.opaque = (voidpf)0;
1561  pfile_in_zip_read_info->stream.next_in = (voidpf)0;
1562  pfile_in_zip_read_info->stream.avail_in = 0;
1563 
1564  err=BZ2_bzDecompressInit(&pfile_in_zip_read_info->bstream, 0, 0);
1565  if (err == Z_OK)
1566  pfile_in_zip_read_info->stream_initialised=Z_BZIP2ED;
1567  else
1568  {
1569  TRYFREE(pfile_in_zip_read_info);
1570  return err;
1571  }
1572 #else
1573  pfile_in_zip_read_info->raw=1;
1574 #endif
1575  }
1576  else if ((s->cur_file_info.compression_method==Z_DEFLATED) && (!raw))
1577  {
1578  pfile_in_zip_read_info->stream.zalloc = (alloc_func)0;
1579  pfile_in_zip_read_info->stream.zfree = (free_func)0;
1580  pfile_in_zip_read_info->stream.opaque = (voidpf)0;
1581  pfile_in_zip_read_info->stream.next_in = 0;
1582  pfile_in_zip_read_info->stream.avail_in = 0;
1583 
1584  err=inflateInit2(&pfile_in_zip_read_info->stream, -MAX_WBITS);
1585  if (err == Z_OK)
1586  pfile_in_zip_read_info->stream_initialised=Z_DEFLATED;
1587  else
1588  {
1589  TRYFREE(pfile_in_zip_read_info);
1590  return err;
1591  }
1592  /* windowBits is passed < 0 to tell that there is no zlib header.
1593  * Note that in this case inflate *requires* an extra "dummy" byte
1594  * after the compressed stream in order to complete decompression and
1595  * return Z_STREAM_END.
1596  * In unzip, i don't wait absolutely Z_STREAM_END because I known the
1597  * size of both compressed and uncompressed data
1598  */
1599  }
1600  pfile_in_zip_read_info->rest_read_compressed =
1601  s->cur_file_info.compressed_size ;
1602  pfile_in_zip_read_info->rest_read_uncompressed =
1603  s->cur_file_info.uncompressed_size ;
1604 
1605 
1606  pfile_in_zip_read_info->pos_in_zipfile =
1607  s->cur_file_info_internal.offset_curfile + SIZEZIPLOCALHEADER +
1608  iSizeVar;
1609 
1610  pfile_in_zip_read_info->stream.avail_in = (uInt)0;
1611 
1612  s->pfile_in_zip_read = pfile_in_zip_read_info;
1613  s->encrypted = 0;
1614 
1615 # ifndef NOUNCRYPT
1616  if (password != NULL)
1617  {
1618  int i;
1619  s->pcrc_32_tab = get_crc_table();
1620  init_keys(password,s->keys,s->pcrc_32_tab);
1621  if (ZSEEK64(s->z_filefunc, s->filestream,
1622  s->pfile_in_zip_read->pos_in_zipfile +
1623  s->pfile_in_zip_read->byte_before_the_zipfile,
1624  SEEK_SET)!=0)
1625  return UNZ_INTERNALERROR;
1626  if(ZREAD64(s->z_filefunc, s->filestream,source, 12)<12)
1627  return UNZ_INTERNALERROR;
1628 
1629  for (i = 0; i<12; i++)
1630  zdecode(s->keys,s->pcrc_32_tab,source[i]);
1631 
1632  s->pfile_in_zip_read->pos_in_zipfile+=12;
1633  s->encrypted=1;
1634  }
1635 # endif
1636 
1637 
1638  return UNZ_OK;
1639 }
GLint level
Definition: gl.h:1546
#define UNZ_PARAMERROR
Definition: unzip.h:78
ZPOS64_T rest_read_compressed
Definition: unzip.c:150
#define UNZ_OK
Definition: unzip.h:74
uInt avail_in
Definition: zlib.h:88
#define UNZ_BADZIPFILE
Definition: unzip.h:79
#define UNZ_INTERNALERROR
Definition: unzip.h:80
const z_crc_t FAR *ZEXPORT get_crc_table()
Definition: crc32.c:188
voidpf opaque
Definition: zlib.h:100
ZPOS64_T pos_local_extrafield
Definition: unzip.c:145
GLsizei GLenum const GLvoid GLsizei GLenum GLbyte GLbyte GLbyte GLdouble GLdouble GLdouble GLfloat GLfloat GLfloat GLint GLint GLint GLshort GLshort GLshort GLubyte GLubyte GLubyte GLuint GLuint GLuint GLushort GLushort GLushort GLbyte GLbyte GLbyte GLbyte GLdouble GLdouble GLdouble GLdouble GLfloat GLfloat GLfloat GLfloat GLint GLint GLint GLint GLshort GLshort GLshort GLshort GLubyte GLubyte GLubyte GLubyte GLuint GLuint GLuint GLuint GLushort GLushort GLushort GLushort GLboolean const GLdouble const GLfloat const GLint const GLshort const GLbyte const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLdouble const GLfloat const GLfloat const GLint const GLint const GLshort const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort GLenum GLenum GLenum GLfloat GLenum GLint GLenum GLenum GLenum GLfloat GLenum GLenum GLint GLenum GLfloat GLenum GLint GLint GLushort GLenum GLenum GLfloat GLenum GLenum GLint GLfloat const GLubyte GLenum GLenum GLenum const GLfloat GLenum GLenum const GLint GLenum GLint GLint GLsizei GLsizei GLint GLenum GLenum const GLvoid GLenum GLenum const GLfloat GLenum GLenum const GLint GLenum GLenum const GLdouble GLenum GLenum const GLfloat GLenum GLenum const GLint GLsizei GLuint GLfloat GLuint GLbitfield GLfloat GLint GLuint GLboolean GLenum GLfloat GLenum GLbitfield GLenum GLfloat GLfloat GLint GLint const GLfloat GLenum GLfloat GLfloat GLint GLint GLfloat GLfloat GLint GLint const GLfloat GLint GLfloat GLfloat GLint GLfloat GLfloat GLint GLfloat GLfloat const GLdouble const GLfloat const GLdouble const GLfloat GLint i
Definition: glfuncs.h:248
free_func zfree
Definition: zlib.h:99
#define Z_OK
Definition: zlib.h:177
smooth NULL
Definition: ftsmooth.c:416
#define Z_DEFLATED
Definition: zlib.h:209
#define Z_BZIP2ED
Definition: unzip.h:62
#define SEEK_SET
Definition: jmemansi.c:26
#define ZREAD64(filefunc, filestream, buf, size)
Definition: ioapi.h:187
int ZEXPORT unzCloseCurrentFile(unzFile file)
Definition: unzip.c:2004
if(!(yy_init))
Definition: macro.lex.yy.c:714
ZPOS64_T offset_local_extrafield
Definition: unzip.c:143
alloc_func zalloc
Definition: zlib.h:98
#define inflateInit2(strm, windowBits)
Definition: zlib.h:1800
unsigned long long int ZPOS64_T
Definition: ioapi.h:100
ZPOS64_T rest_read_uncompressed
Definition: unzip.c:151
int BZ_API() BZ2_bzDecompressInit(bz_stream *strm, int verbosity, int small)
Definition: bzlib.c:501
ZPOS64_T byte_before_the_zipfile
Definition: unzip.c:155
method
Definition: dragdrop.c:53
#define zdecode(pkeys, pcrc_32_tab, c)
Definition: crypt.h:76
zlib_filefunc64_32_def z_filefunc
Definition: unzip.c:152
T1_FIELD_DICT_PRIVATE password
Definition: t1tokens.h:64
GLdouble s
Definition: gl.h:2039
#define err(...)
uLong total_out
Definition: zlib.h:93
Byte FAR * voidpf
Definition: zconf.h:413
int unz64local_CheckCurrentFileCoherencyHeader(unz64_s *s, uInt *piSizeVar, ZPOS64_T *poffset_local_extrafield, uInt *psize_local_extrafield)
Definition: unzip.c:1385
z_const Bytef * next_in
Definition: zlib.h:87
#define ZSEEK64(filefunc, filestream, pos, mode)
Definition: ioapi.h:202
#define UNZ_BUFSIZE
Definition: unzip.c:101
ZPOS64_T pos_in_zipfile
Definition: unzip.c:140
#define MAX_WBITS
Definition: zconf.h:270
Definition: unzip.c:162
#define SIZEZIPLOCALHEADER
Definition: unzip.c:116
#define TRYFREE(p)
Definition: unzip.c:112
unsigned int uInt
Definition: zconf.h:393
#define ALLOC(size)
Definition: unzip.c:109
unsigned int(__cdecl typeof(jpeg_read_scanlines))(struct jpeg_decompress_struct *
Definition: typeof.h:31
static void init_keys(void)
Definition: nanoxwin.c:1097
Definition: fci.c:126

Referenced by unzOpenCurrentFile(), unzOpenCurrentFile2(), and unzOpenCurrentFilePassword().

◆ unzOpenCurrentFilePassword()

int ZEXPORT unzOpenCurrentFilePassword ( unzFile  file,
const char password 
)

Definition at line 1646 of file unzip.c.

1647 {
1648  return unzOpenCurrentFile3(file, NULL, NULL, 0, password);
1649 }
int ZEXPORT unzOpenCurrentFile3(unzFile file, int *method, int *level, int raw, const char *password)
Definition: unzip.c:1472
smooth NULL
Definition: ftsmooth.c:416
T1_FIELD_DICT_PRIVATE password
Definition: t1tokens.h:64
Definition: fci.c:126

Referenced by CZipExtract::Extract().

◆ unzOpenInternal()

unzFile unzOpenInternal ( const void path,
zlib_filefunc64_32_def pzlib_filefunc64_32_def,
int  is64bitOpenFunction 
)

Definition at line 581 of file unzip.c.

584 {
585  unz64_s us;
586  unz64_s *s;
587  ZPOS64_T central_pos;
588  uLong uL;
589 
590  uLong number_disk; /* number of the current dist, used for
591  spaning ZIP, unsupported, always 0*/
592  uLong number_disk_with_CD; /* number the the disk with central dir, used
593  for spaning ZIP, unsupported, always 0*/
594  ZPOS64_T number_entry_CD; /* total number of entries in
595  the central dir
596  (same than number_entry on nospan) */
597 
598  int err=UNZ_OK;
599 
600  if (unz_copyright[0]!=' ')
601  return NULL;
602 
603  us.z_filefunc.zseek32_file = NULL;
604  us.z_filefunc.ztell32_file = NULL;
605 #ifndef __REACTOS__
606  if (pzlib_filefunc64_32_def==NULL)
607  fill_fopen64_filefunc(&us.z_filefunc.zfile_func64);
608  else
609 #endif
610  us.z_filefunc = *pzlib_filefunc64_32_def;
611  us.is64bitOpenFunction = is64bitOpenFunction;
612 
613 
614 
615  us.filestream = ZOPEN64(us.z_filefunc,
616  path,
619  if (us.filestream==NULL)
620  return NULL;
621 
622  central_pos = unz64local_SearchCentralDir64(&us.z_filefunc,us.filestream);
623  if (central_pos)
624  {
625  uLong uS;
626  ZPOS64_T uL64;
627 
628  us.isZip64 = 1;
629 
630  if (ZSEEK64(us.z_filefunc, us.filestream,
631  central_pos,ZLIB_FILEFUNC_SEEK_SET)!=0)
632  err=UNZ_ERRNO;
633 
634  /* the signature, already checked */
635  if (unz64local_getLong(&us.z_filefunc, us.filestream,&uL)!=UNZ_OK)
636  err=UNZ_ERRNO;
637 
638  /* size of zip64 end of central directory record */
639  if (unz64local_getLong64(&us.z_filefunc, us.filestream,&uL64)!=UNZ_OK)
640  err=UNZ_ERRNO;
641 
642  /* version made by */
643  if (unz64local_getShort(&us.z_filefunc, us.filestream,&uS)!=UNZ_OK)
644  err=UNZ_ERRNO;
645 
646  /* version needed to extract */
647  if (unz64local_getShort(&us.z_filefunc, us.filestream,&uS)!=UNZ_OK)
648  err=UNZ_ERRNO;
649 
650  /* number of this disk */
651  if (unz64local_getLong(&us.z_filefunc, us.filestream,&number_disk)!=UNZ_OK)
652  err=UNZ_ERRNO;
653 
654  /* number of the disk with the start of the central directory */
655  if (unz64local_getLong(&us.z_filefunc, us.filestream,&number_disk_with_CD)!=UNZ_OK)
656  err=UNZ_ERRNO;
657 
658  /* total number of entries in the central directory on this disk */
659  if (unz64local_getLong64(&us.z_filefunc, us.filestream,&us.gi.number_entry)!=UNZ_OK)
660  err=UNZ_ERRNO;
661 
662  /* total number of entries in the central directory */
663  if (unz64local_getLong64(&us.z_filefunc, us.filestream,&number_entry_CD)!=UNZ_OK)
664  err=UNZ_ERRNO;
665 
666  if ((number_entry_CD!=us.gi.number_entry) ||
667  (number_disk_with_CD!=0) ||
668  (number_disk!=0))
670 
671  /* size of the central directory */
672  if (unz64local_getLong64(&us.z_filefunc, us.filestream,&us.size_central_dir)!=UNZ_OK)
673  err=UNZ_ERRNO;
674 
675  /* offset of start of central directory with respect to the
676  starting disk number */
677  if (unz64local_getLong64(&us.z_filefunc, us.filestream,&us.offset_central_dir)!=UNZ_OK)
678  err=UNZ_ERRNO;
679 
680  us.gi.size_comment = 0;
681  }
682  else
683  {
684  central_pos = unz64local_SearchCentralDir(&us.z_filefunc,us.filestream);
685  if (central_pos==0)
686  err=UNZ_ERRNO;
687 
688  us.isZip64 = 0;
689 
690  if (ZSEEK64(us.z_filefunc, us.filestream,
691  central_pos,ZLIB_FILEFUNC_SEEK_SET)!=0)
692  err=UNZ_ERRNO;
693 
694  /* the signature, already checked */
695  if (unz64local_getLong(&us.z_filefunc, us.filestream,&uL)!=UNZ_OK)
696  err=UNZ_ERRNO;
697 
698  /* number of this disk */
699  if (unz64local_getShort(&us.z_filefunc, us.filestream,&number_disk)!=UNZ_OK)
700  err=UNZ_ERRNO;
701 
702  /* number of the disk with the start of the central directory */
703  if (unz64local_getShort(&us.z_filefunc, us.filestream,&number_disk_with_CD)!=UNZ_OK)
704  err=UNZ_ERRNO;
705 
706  /* total number of entries in the central dir on this disk */
707  if (unz64local_getShort(&us.z_filefunc, us.filestream,&uL)!=UNZ_OK)
708  err=UNZ_ERRNO;
709  us.gi.number_entry = uL;
710 
711  /* total number of entries in the central dir */
712  if (unz64local_getShort(&us.z_filefunc, us.filestream,&uL)!=UNZ_OK)
713  err=UNZ_ERRNO;
714  number_entry_CD = uL;
715 
716  if ((number_entry_CD!=us.gi.number_entry) ||
717  (number_disk_with_CD!=0) ||
718  (number_disk!=0))
720 
721  /* size of the central directory */
722  if (unz64local_getLong(&us.z_filefunc, us.filestream,&uL)!=UNZ_OK)
723  err=UNZ_ERRNO;
724  us.size_central_dir = uL;
725 
726  /* offset of start of central directory with respect to the
727  starting disk number */
728  if (unz64local_getLong(&us.z_filefunc, us.filestream,&uL)!=UNZ_OK)
729  err=UNZ_ERRNO;
730  us.offset_central_dir = uL;
731 
732  /* zipfile comment length */
733  if (unz64local_getShort(&us.z_filefunc, us.filestream,&us.gi.size_comment)!=UNZ_OK)
734  err=UNZ_ERRNO;
735  }
736 
737  if ((central_pos<us.offset_central_dir+us.size_central_dir) &&
738  (err==UNZ_OK))
740 
741  if (err!=UNZ_OK)
742  {
743  ZCLOSE64(us.z_filefunc, us.filestream);
744  return NULL;
745  }
746 
747  us.byte_before_the_zipfile = central_pos -
748  (us.offset_central_dir+us.size_central_dir);
749  us.central_pos = central_pos;
750  us.pfile_in_zip_read = NULL;
751  us.encrypted = 0;
752 
753 
754  s=(unz64_s*)ALLOC(sizeof(unz64_s));
755  if( s != NULL)
756  {
757  *s=us;
759  }
760  return (unzFile)s;
761 }
int ZEXPORT unzGoToFirstFile(unzFile file)
Definition: unzip.c:1178
static const BYTE us[]
Definition: encode.c:689
voidp unzFile
Definition: unzip.h:70
#define UNZ_OK
Definition: unzip.h:74
#define UNZ_BADZIPFILE
Definition: unzip.h:79
int unz64local_getLong(const zlib_filefunc64_32_def *pzlib_filefunc_def, voidpf filestream, uLong *pX)
Definition: unzip.c:263
#define ZLIB_FILEFUNC_MODE_READ
Definition: ioapi.h:116
smooth NULL
Definition: ftsmooth.c:416
ZPOS64_T unz64local_SearchCentralDir(const zlib_filefunc64_32_def *pzlib_filefunc_def, voidpf filestream)
Definition: unzip.c:410
#define ZCLOSE64(filefunc, filestream)
Definition: ioapi.h:191
unsigned long uLong
Definition: zconf.h:394
#define ZOPEN64(filefunc, filename, mode)
Definition: ioapi.h:200
ZPOS64_T unz64local_SearchCentralDir64(const zlib_filefunc64_32_def *pzlib_filefunc_def, voidpf filestream)
Definition: unzip.c:475
const char unz_copyright[]
Definition: unzip.c:119
int unz64local_getLong64(const zlib_filefunc64_32_def *pzlib_filefunc_def, voidpf filestream, ZPOS64_T *pX)
Definition: unzip.c:299
unsigned long long int ZPOS64_T
Definition: ioapi.h:100
void fill_fopen64_filefunc(zlib_filefunc64_def *pzlib_filefunc_def)
Definition: ioapi.c:238
#define ZLIB_FILEFUNC_MODE_EXISTING
Definition: ioapi.h:120
GLdouble s
Definition: gl.h:2039
#define err(...)
Definition: services.c:325
#define UNZ_ERRNO
Definition: unzip.h:76
#define ZSEEK64(filefunc, filestream, pos, mode)
Definition: ioapi.h:202
int unz64local_getShort(const zlib_filefunc64_32_def *pzlib_filefunc_def, voidpf filestream, uLong *pX)
Definition: unzip.c:236
#define ZLIB_FILEFUNC_SEEK_SET
Definition: ioapi.h:114
Definition: unzip.c:162
#define ALLOC(size)
Definition: unzip.c:109

Referenced by unzOpen(), unzOpen2(), unzOpen2_64(), and unzOpen64().

◆ unzReadCurrentFile()

int ZEXPORT unzReadCurrentFile ( unzFile  file,
voidp  buf,
unsigned  len 
)

Addition for GDAL : END

Definition at line 1684 of file unzip.c.

1685 {
1686  int err=UNZ_OK;
1687  uInt iRead = 0;
1688  unz64_s* s;
1689  file_in_zip64_read_info_s* pfile_in_zip_read_info;
1690  if (file==NULL)
1691  return UNZ_PARAMERROR;
1692  s=(unz64_s*)file;
1693  pfile_in_zip_read_info=s->pfile_in_zip_read;
1694 
1695  if (pfile_in_zip_read_info==NULL)
1696  return UNZ_PARAMERROR;
1697 
1698 
1699  if (pfile_in_zip_read_info->read_buffer == NULL)
1700  return UNZ_END_OF_LIST_OF_FILE;
1701  if (len==0)
1702  return 0;
1703 
1704  pfile_in_zip_read_info->stream.next_out = (Bytef*)buf;
1705 
1706  pfile_in_zip_read_info->stream.avail_out = (uInt)len;
1707 
1708  if ((len>pfile_in_zip_read_info->rest_read_uncompressed) &&
1709  (!(pfile_in_zip_read_info->raw)))
1710  pfile_in_zip_read_info->stream.avail_out =
1711  (uInt)pfile_in_zip_read_info->rest_read_uncompressed;
1712 
1713  if ((len>pfile_in_zip_read_info->rest_read_compressed+
1714  pfile_in_zip_read_info->stream.avail_in) &&
1715  (pfile_in_zip_read_info->raw))
1716  pfile_in_zip_read_info->stream.avail_out =
1717  (uInt)pfile_in_zip_read_info->rest_read_compressed+
1718  pfile_in_zip_read_info->stream.avail_in;
1719 
1720  while (pfile_in_zip_read_info->stream.avail_out>0)
1721  {
1722  if ((pfile_in_zip_read_info->stream.avail_in==0) &&
1723  (pfile_in_zip_read_info->rest_read_compressed>0))
1724  {
1725  uInt uReadThis = UNZ_BUFSIZE;
1726  if (pfile_in_zip_read_info->rest_read_compressed<uReadThis)
1727  uReadThis = (uInt)pfile_in_zip_read_info->rest_read_compressed;
1728  if (uReadThis == 0)
1729  return UNZ_EOF;
1730  if (ZSEEK64(pfile_in_zip_read_info->z_filefunc,
1731  pfile_in_zip_read_info->filestream,
1732  pfile_in_zip_read_info->pos_in_zipfile +
1733  pfile_in_zip_read_info->byte_before_the_zipfile,
1735  return UNZ_ERRNO;
1736  if (ZREAD64(pfile_in_zip_read_info->z_filefunc,
1737  pfile_in_zip_read_info->filestream,
1738  pfile_in_zip_read_info->read_buffer,
1739  uReadThis)!=uReadThis)
1740  return UNZ_ERRNO;
1741 
1742 
1743 # ifndef NOUNCRYPT
1744  if(s->encrypted)
1745  {
1746  uInt i;
1747  for(i=0;i<uReadThis;i++)
1748  pfile_in_zip_read_info->read_buffer[i] =
1749  zdecode(s->keys,s->pcrc_32_tab,
1750  pfile_in_zip_read_info->read_buffer[i]);
1751  }
1752 # endif
1753 
1754 
1755  pfile_in_zip_read_info->pos_in_zipfile += uReadThis;
1756 
1757  pfile_in_zip_read_info->rest_read_compressed-=uReadThis;
1758 
1759  pfile_in_zip_read_info->stream.next_in =
1760  (Bytef*)pfile_in_zip_read_info->read_buffer;
1761  pfile_in_zip_read_info->stream.avail_in = (uInt)uReadThis;
1762  }
1763 
1764  if ((pfile_in_zip_read_info->compression_method==0) || (pfile_in_zip_read_info->raw))
1765  {
1766  uInt uDoCopy,i ;
1767 
1768  if ((pfile_in_zip_read_info->stream.avail_in == 0) &&
1769  (pfile_in_zip_read_info->rest_read_compressed == 0))
1770  return (iRead==0) ? UNZ_EOF : iRead;
1771 
1772  if (pfile_in_zip_read_info->stream.avail_out <
1773  pfile_in_zip_read_info->stream.avail_in)
1774  uDoCopy = pfile_in_zip_read_info->stream.avail_out ;
1775  else
1776  uDoCopy = pfile_in_zip_read_info->stream.avail_in ;
1777 
1778  for (i=0;i<uDoCopy;i++)
1779  *(pfile_in_zip_read_info->stream.next_out+i) =
1780  *(pfile_in_zip_read_info->stream.next_in+i);
1781 
1782  pfile_in_zip_read_info->total_out_64 = pfile_in_zip_read_info->total_out_64 + uDoCopy;
1783 
1784  pfile_in_zip_read_info->crc32 = crc32(pfile_in_zip_read_info->crc32,
1785  pfile_in_zip_read_info->stream.next_out,
1786  uDoCopy);
1787  pfile_in_zip_read_info->rest_read_uncompressed-=uDoCopy;
1788  pfile_in_zip_read_info->stream.avail_in -= uDoCopy;
1789  pfile_in_zip_read_info->stream.avail_out -= uDoCopy;
1790  pfile_in_zip_read_info->stream.next_out += uDoCopy;
1791  pfile_in_zip_read_info->stream.next_in += uDoCopy;
1792  pfile_in_zip_read_info->stream.total_out += uDoCopy;
1793  iRead += uDoCopy;
1794  }
1795  else if (pfile_in_zip_read_info->compression_method==Z_BZIP2ED)
1796  {
1797 #ifdef HAVE_BZIP2
1798  uLong uTotalOutBefore,uTotalOutAfter;
1799  const Bytef *bufBefore;
1800  uLong uOutThis;
1801 
1802  pfile_in_zip_read_info->bstream.next_in = (char*)pfile_in_zip_read_info->stream.next_in;
1803  pfile_in_zip_read_info->bstream.avail_in = pfile_in_zip_read_info->stream.avail_in;
1804  pfile_in_zip_read_info->bstream.total_in_lo32 = pfile_in_zip_read_info->stream.total_in;
1805  pfile_in_zip_read_info->bstream.total_in_hi32 = 0;
1806  pfile_in_zip_read_info->bstream.next_out = (char*)pfile_in_zip_read_info->stream.next_out;
1807  pfile_in_zip_read_info->bstream.avail_out = pfile_in_zip_read_info->stream.avail_out;
1808  pfile_in_zip_read_info->bstream.total_out_lo32 = pfile_in_zip_read_info->stream.total_out;
1809  pfile_in_zip_read_info->bstream.total_out_hi32 = 0;
1810 
1811  uTotalOutBefore = pfile_in_zip_read_info->bstream.total_out_lo32;
1812  bufBefore = (const Bytef *)pfile_in_zip_read_info->bstream.next_out;
1813 
1814  err=BZ2_bzDecompress(&pfile_in_zip_read_info->bstream);
1815 
1816  uTotalOutAfter = pfile_in_zip_read_info->bstream.total_out_lo32;
1817  uOutThis = uTotalOutAfter-uTotalOutBefore;
1818 
1819  pfile_in_zip_read_info->total_out_64 = pfile_in_zip_read_info->total_out_64 + uOutThis;
1820 
1821  pfile_in_zip_read_info->crc32 = crc32(pfile_in_zip_read_info->crc32,bufBefore, (uInt)(uOutThis));
1822  pfile_in_zip_read_info->rest_read_uncompressed -= uOutThis;
1823  iRead += (uInt)(uTotalOutAfter - uTotalOutBefore);
1824 
1825  pfile_in_zip_read_info->stream.next_in = (Bytef*)pfile_in_zip_read_info->bstream.next_in;
1826  pfile_in_zip_read_info->stream.avail_in = pfile_in_zip_read_info->bstream.avail_in;
1827  pfile_in_zip_read_info->stream.total_in = pfile_in_zip_read_info->bstream.total_in_lo32;
1828  pfile_in_zip_read_info->stream.next_out = (Bytef*)pfile_in_zip_read_info->bstream.next_out;
1829  pfile_in_zip_read_info->stream.avail_out = pfile_in_zip_read_info->bstream.avail_out;
1830  pfile_in_zip_read_info->stream.total_out = pfile_in_zip_read_info->bstream.total_out_lo32;
1831 
1832  if (err==BZ_STREAM_END)
1833  return (iRead==0) ? UNZ_EOF : iRead;
1834  if (err!=BZ_OK)
1835  break;
1836 #endif
1837  } // end Z_BZIP2ED
1838  else
1839  {
1840  ZPOS64_T uTotalOutBefore,uTotalOutAfter;
1841  const Bytef *bufBefore;
1842  ZPOS64_T uOutThis;
1843  int flush=Z_SYNC_FLUSH;
1844 
1845  uTotalOutBefore = pfile_in_zip_read_info->stream.total_out;
1846  bufBefore = pfile_in_zip_read_info->stream.next_out;
1847 
1848  /*
1849  if ((pfile_in_zip_read_info->rest_read_uncompressed ==
1850  pfile_in_zip_read_info->stream.avail_out) &&
1851  (pfile_in_zip_read_info->rest_read_compressed == 0))
1852  flush = Z_FINISH;
1853  */
1854  err=inflate(&pfile_in_zip_read_info->stream,flush);
1855 
1856  if ((err>=0) && (pfile_in_zip_read_info->stream.msg!=NULL))
1857  err = Z_DATA_ERROR;
1858 
1859  uTotalOutAfter = pfile_in_zip_read_info->stream.total_out;
1860  uOutThis = uTotalOutAfter-uTotalOutBefore;
1861 
1862  pfile_in_zip_read_info->total_out_64 = pfile_in_zip_read_info->total_out_64 + uOutThis;
1863 
1864  pfile_in_zip_read_info->crc32 =
1865  crc32(pfile_in_zip_read_info->crc32,bufBefore,
1866  (uInt)(uOutThis));
1867 
1868  pfile_in_zip_read_info->rest_read_uncompressed -=
1869  uOutThis;
1870 
1871  iRead += (uInt)(uTotalOutAfter - uTotalOutBefore);
1872 
1873  if (err==Z_STREAM_END)
1874  return (iRead==0) ? UNZ_EOF : iRead;
1875  if (err!=Z_OK)
1876  break;
1877  }
1878  }
1879 
1880  if (err==Z_OK)
1881  return iRead;
1882  return err;
1883 }
int BZ_API() BZ2_bzDecompress(bz_stream *strm)
Definition: bzlib.c:818
#define UNZ_PARAMERROR
Definition: unzip.h:78
ZPOS64_T rest_read_compressed
Definition: unzip.c:150
GLenum GLuint GLenum GLsizei const GLchar * buf
Definition: glext.h:7751
#define UNZ_OK
Definition: unzip.h:74
uInt avail_in
Definition: zlib.h:88
uint32_t crc32
Definition: btrfs.c:4163
#define Z_STREAM_END
Definition: zlib.h:178
Byte FAR Bytef
Definition: zconf.h:400
while(1)
Definition: macro.lex.yy.c:740
GLsizei GLenum const GLvoid GLsizei GLenum GLbyte GLbyte GLbyte GLdouble GLdouble GLdouble GLfloat GLfloat GLfloat GLint GLint GLint GLshort GLshort GLshort GLubyte GLubyte GLubyte GLuint GLuint GLuint GLushort GLushort GLushort GLbyte GLbyte GLbyte GLbyte GLdouble GLdouble GLdouble GLdouble GLfloat GLfloat GLfloat GLfloat GLint GLint GLint GLint GLshort GLshort GLshort GLshort GLubyte GLubyte GLubyte GLubyte GLuint GLuint GLuint GLuint GLushort GLushort GLushort GLushort GLboolean const GLdouble const GLfloat const GLint const GLshort const GLbyte const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLdouble const GLfloat const GLfloat const GLint const GLint const GLshort const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort GLenum GLenum GLenum GLfloat GLenum GLint GLenum GLenum GLenum GLfloat GLenum GLenum GLint GLenum GLfloat GLenum GLint GLint GLushort GLenum GLenum GLfloat GLenum GLenum GLint GLfloat const GLubyte GLenum GLenum GLenum const GLfloat GLenum GLenum const GLint GLenum GLint GLint GLsizei GLsizei GLint GLenum GLenum const GLvoid GLenum GLenum const GLfloat GLenum GLenum const GLint GLenum GLenum const GLdouble GLenum GLenum const GLfloat GLenum GLenum const GLint GLsizei GLuint GLfloat GLuint GLbitfield GLfloat GLint GLuint GLboolean GLenum GLfloat GLenum GLbitfield GLenum GLfloat GLfloat GLint GLint const GLfloat GLenum GLfloat GLfloat GLint GLint GLfloat GLfloat GLint GLint const GLfloat GLint GLfloat GLfloat GLint GLfloat GLfloat GLint GLfloat GLfloat const GLdouble const GLfloat const GLdouble const GLfloat GLint i
Definition: glfuncs.h:248
#define Z_OK
Definition: zlib.h:177
smooth NULL
Definition: ftsmooth.c:416
#define Z_BZIP2ED
Definition: unzip.h:62
#define BZ_OK
Definition: bzlib.h:33
unsigned long uLong
Definition: zconf.h:394
#define ZREAD64(filefunc, filestream, buf, size)
Definition: ioapi.h:187
z_const char * msg
Definition: zlib.h:95
uLong total_in
Definition: zlib.h:89
if(!(yy_init))
Definition: macro.lex.yy.c:714
#define BZ_STREAM_END
Definition: bzlib.h:37
int flush
Definition: zlib.h:309
unsigned long long int ZPOS64_T
Definition: ioapi.h:100
#define Z_DATA_ERROR
Definition: zlib.h:182
ZPOS64_T rest_read_uncompressed
Definition: unzip.c:151
ZPOS64_T byte_before_the_zipfile
Definition: unzip.c:155
int ZEXPORT inflate(z_streamp strm, int flush)
Definition: inflate.c:622
#define UNZ_EOF
Definition: unzip.h:77
#define zdecode(pkeys, pcrc_32_tab, c)
Definition: crypt.h:76
zlib_filefunc64_32_def z_filefunc
Definition: unzip.c:152
#define Z_SYNC_FLUSH
Definition: zlib.h:170
GLenum GLsizei len
Definition: glext.h:6722
GLdouble s
Definition: gl.h:2039
#define err(...)
uLong total_out
Definition: zlib.h:93
#define UNZ_ERRNO
Definition: unzip.h:76
uInt avail_out
Definition: zlib.h:92
z_const Bytef * next_in
Definition: zlib.h:87
#define ZSEEK64(filefunc, filestream, pos, mode)
Definition: ioapi.h:202
#define UNZ_BUFSIZE
Definition: unzip.c:101
ZPOS64_T pos_in_zipfile
Definition: unzip.c:140
Bytef * next_out
Definition: zlib.h:91
#define ZLIB_FILEFUNC_SEEK_SET
Definition: ioapi.h:114
#define UNZ_END_OF_LIST_OF_FILE
Definition: unzip.h:75
Definition: unzip.c:162
unsigned int uInt
Definition: zconf.h:393
Definition: fci.c:126

Referenced by CZipExtract::Extract().

◆ unzSetOffset()

int ZEXPORT unzSetOffset ( unzFile  file,
uLong  pos 
)

Definition at line 2122 of file unzip.c.

2123 {
2124  return unzSetOffset64(file,pos);
2125 }
int ZEXPORT unzSetOffset64(unzFile file, ZPOS64_T pos)
Definition: unzip.c:2104
Definition: fci.c:126

◆ unzSetOffset64()

int ZEXPORT unzSetOffset64 ( unzFile  file,
ZPOS64_T  pos 
)

Definition at line 2104 of file unzip.c.

2105 {
2106  unz64_s* s;
2107  int err;
2108 
2109  if (file==NULL)
2110  return UNZ_PARAMERROR;
2111  s=(unz64_s*)file;
2112 
2113  s->pos_in_central_dir = pos;
2114  s->num_file = s->gi.number_entry; /* hack */
2115  err = unz64local_GetCurrentFileInfoInternal(file,&s->cur_file_info,
2116  &s->cur_file_info_internal,
2117  NULL,0,NULL,0,NULL,0);
2118  s->current_file_ok = (err == UNZ_OK);
2119  return err;
2120 }
#define UNZ_PARAMERROR
Definition: unzip.h:78
#define UNZ_OK
Definition: unzip.h:74
int unz64local_GetCurrentFileInfoInternal(unzFile file, unz_file_info64 *pfile_info, unz_file_info64_internal *pfile_info_internal, char *szFileName, uLong fileNameBufferSize, void *extraField, uLong extraFieldBufferSize, char *szComment, uLong commentBufferSize)
Definition: unzip.c:879
smooth NULL
Definition: ftsmooth.c:416
GLdouble s
Definition: gl.h:2039
#define err(...)
Definition: unzip.c:162
Definition: fci.c:126

Referenced by unzSetOffset().

◆ unzStringFileNameCompare()

int ZEXPORT unzStringFileNameCompare ( const char fileName1,
const char fileName2,
int  iCaseSensitivity 
)

Definition at line 387 of file unzip.c.

391 {
392  if (iCaseSensitivity==0)
393  iCaseSensitivity=CASESENSITIVITYDEFAULTVALUE;
394 
395  if (iCaseSensitivity==1)
396  return strcmp(fileName1,fileName2);
397 
398  return STRCMPCASENOSENTIVEFUNCTION(fileName1,fileName2);
399 }
#define STRCMPCASENOSENTIVEFUNCTION
Definition: unzip.c:375
#define CASESENSITIVITYDEFAULTVALUE
Definition: unzip.c:369
int strcmp(const char *String1, const char *String2)
Definition: utclib.c:469

Referenced by unzLocateFile().

◆ unztell()

z_off_t ZEXPORT unztell ( unzFile  file)

Definition at line 1889 of file unzip.c.

1890 {
1891  unz64_s* s;
1892  file_in_zip64_read_info_s* pfile_in_zip_read_info;
1893  if (file==NULL)
1894  return UNZ_PARAMERROR;
1895  s=(unz64_s*)file;
1896  pfile_in_zip_read_info=s->pfile_in_zip_read;
1897 
1898  if (pfile_in_zip_read_info==NULL)
1899  return UNZ_PARAMERROR;
1900 
1901  return (z_off_t)pfile_in_zip_read_info->stream.total_out;
1902 }
#define UNZ_PARAMERROR
Definition: unzip.h:78
#define z_off_t
Definition: zconf.h:504
smooth NULL
Definition: ftsmooth.c:416
GLdouble s
Definition: gl.h:2039
uLong total_out
Definition: zlib.h:93
Definition: unzip.c:162
Definition: fci.c:126

◆ unztell64()

ZPOS64_T ZEXPORT unztell64 ( unzFile  file)

Definition at line 1904 of file unzip.c.

1905 {
1906 
1907  unz64_s* s;
1908  file_in_zip64_read_info_s* pfile_in_zip_read_info;
1909  if (file==NULL)
1910  return (ZPOS64_T)-1;
1911  s=(unz64_s*)file;
1912  pfile_in_zip_read_info=s->pfile_in_zip_read;
1913 
1914  if (pfile_in_zip_read_info==NULL)
1915  return (ZPOS64_T)-1;
1916 
1917  return pfile_in_zip_read_info->total_out_64;
1918 }
smooth NULL
Definition: ftsmooth.c:416
unsigned long long int ZPOS64_T
Definition: ioapi.h:100
GLdouble s
Definition: gl.h:2039
Definition: unzip.c:162
Definition: fci.c:126

Variable Documentation

◆ unz_copyright

const char unz_copyright[]
Initial value:
=
" unzip 1.01 Copyright 1998-2004 Gilles Vollant - http://www.winimage.com/zLibDll"

Definition at line 119 of file unzip.c.

Referenced by unzOpenInternal().