diff options
author | Xavier Roche <xroche@users.noreply.github.com> | 2014-05-24 08:37:21 +0000 |
---|---|---|
committer | Xavier Roche <xroche@users.noreply.github.com> | 2014-05-24 08:37:21 +0000 |
commit | 033ce293b8f80652bdfbdfa07196389393e35866 (patch) | |
tree | 7a461fedb6afeb7f76ef09e7f1c2aed8fadda0d6 | |
parent | d1913325e49894c60348daf7bfbd6ec54e8b2e87 (diff) |
Fixed minizip.
-rw-r--r-- | src/minizip/ioapi.c | 2 | ||||
-rw-r--r-- | src/minizip/ioapi.c.diff | 26 | ||||
-rw-r--r-- | src/minizip/ioapi.h | 3 | ||||
-rw-r--r-- | src/minizip/ioapi.h.diff | 14 | ||||
-rw-r--r-- | src/minizip/mztools.c | 22 | ||||
-rw-r--r-- | src/minizip/zip.c | 11 | ||||
-rw-r--r-- | src/minizip/zip.c.diff | 17 | ||||
-rw-r--r-- | src/minizip/zip.h.diff | 4 |
8 files changed, 61 insertions, 38 deletions
diff --git a/src/minizip/ioapi.c b/src/minizip/ioapi.c index 06e830b..bbf3dd1 100644 --- a/src/minizip/ioapi.c +++ b/src/minizip/ioapi.c @@ -73,6 +73,7 @@ void fill_zlib_filefunc64_32_def_from_filefunc32(zlib_filefunc64_32_def* p_filef p_filefunc64_32->zfile_func64.zerror_file = p_filefunc32->zerror_file; p_filefunc64_32->zfile_func64.zread_file = p_filefunc32->zread_file; p_filefunc64_32->zfile_func64.zwrite_file = p_filefunc32->zwrite_file; + p_filefunc64_32->zfile_func64.zflush_file = p_filefunc32->zflush_file; p_filefunc64_32->zfile_func64.ztell64_file = NULL; p_filefunc64_32->zfile_func64.zseek64_file = NULL; p_filefunc64_32->zfile_func64.zclose_file = p_filefunc32->zclose_file; @@ -250,6 +251,7 @@ void fill_fopen64_filefunc (zlib_filefunc64_def* pzlib_filefunc_def) pzlib_filefunc_def->zwrite_file = fwrite_file_func; pzlib_filefunc_def->ztell64_file = ftell64_file_func; pzlib_filefunc_def->zseek64_file = fseek64_file_func; + pzlib_filefunc_def->zflush_file = fflush_file_func; pzlib_filefunc_def->zclose_file = fclose_file_func; pzlib_filefunc_def->zerror_file = ferror_file_func; pzlib_filefunc_def->opaque = NULL; diff --git a/src/minizip/ioapi.c.diff b/src/minizip/ioapi.c.diff index 17153cb..ee325e2 100644 --- a/src/minizip/ioapi.c.diff +++ b/src/minizip/ioapi.c.diff @@ -1,6 +1,14 @@ ---- ioapi.c.orig 2014-05-24 09:54:26.298884453 +0200 -+++ ioapi.c 2014-05-24 09:50:22.708762308 +0200 -@@ -89,6 +89,8 @@ +--- ioapi.c.orig 2012-01-21 20:58:45.000000000 +0100 ++++ ioapi.c 2014-05-24 10:30:08.688103848 +0200 +@@ -73,6 +73,7 @@ + p_filefunc64_32->zfile_func64.zerror_file = p_filefunc32->zerror_file; + p_filefunc64_32->zfile_func64.zread_file = p_filefunc32->zread_file; + p_filefunc64_32->zfile_func64.zwrite_file = p_filefunc32->zwrite_file; ++ p_filefunc64_32->zfile_func64.zflush_file = p_filefunc32->zflush_file; + p_filefunc64_32->zfile_func64.ztell64_file = NULL; + p_filefunc64_32->zfile_func64.zseek64_file = NULL; + p_filefunc64_32->zfile_func64.zclose_file = p_filefunc32->zclose_file; +@@ -89,6 +90,8 @@ static uLong ZCALLBACK fwrite_file_func OF((voidpf opaque, voidpf stream, const void* buf,uLong size)); static ZPOS64_T ZCALLBACK ftell64_file_func OF((voidpf opaque, voidpf stream)); static long ZCALLBACK fseek64_file_func OF((voidpf opaque, voidpf stream, ZPOS64_T offset, int origin)); @@ -9,7 +17,7 @@ static int ZCALLBACK fclose_file_func OF((voidpf opaque, voidpf stream)); static int ZCALLBACK ferror_file_func OF((voidpf opaque, voidpf stream)); -@@ -206,6 +208,12 @@ +@@ -206,6 +209,12 @@ return ret; } @@ -22,7 +30,7 @@ static int ZCALLBACK fclose_file_func (voidpf opaque, voidpf stream) { -@@ -229,6 +237,7 @@ +@@ -229,6 +238,7 @@ pzlib_filefunc_def->zwrite_file = fwrite_file_func; pzlib_filefunc_def->ztell_file = ftell_file_func; pzlib_filefunc_def->zseek_file = fseek_file_func; @@ -30,3 +38,11 @@ pzlib_filefunc_def->zclose_file = fclose_file_func; pzlib_filefunc_def->zerror_file = ferror_file_func; pzlib_filefunc_def->opaque = NULL; +@@ -241,6 +251,7 @@ + pzlib_filefunc_def->zwrite_file = fwrite_file_func; + pzlib_filefunc_def->ztell64_file = ftell64_file_func; + pzlib_filefunc_def->zseek64_file = fseek64_file_func; ++ pzlib_filefunc_def->zflush_file = fflush_file_func; + pzlib_filefunc_def->zclose_file = fclose_file_func; + pzlib_filefunc_def->zerror_file = ferror_file_func; + pzlib_filefunc_def->opaque = NULL; diff --git a/src/minizip/ioapi.h b/src/minizip/ioapi.h index 3c40c53..e4462b8 100644 --- a/src/minizip/ioapi.h +++ b/src/minizip/ioapi.h @@ -166,6 +166,7 @@ typedef struct zlib_filefunc64_def_s open64_file_func zopen64_file; read_file_func zread_file; write_file_func zwrite_file; + flush_file_func zflush_file; tell64_file_func ztell64_file; seek64_file_func zseek64_file; close_file_func zclose_file; @@ -188,7 +189,7 @@ typedef struct zlib_filefunc64_32_def_s #define ZREAD64(filefunc,filestream,buf,size) ((*((filefunc).zfile_func64.zread_file)) ((filefunc).zfile_func64.opaque,filestream,buf,size)) #define ZWRITE64(filefunc,filestream,buf,size) ((*((filefunc).zfile_func64.zwrite_file)) ((filefunc).zfile_func64.opaque,filestream,buf,size)) -#define ZFLUSH(filefunc,filestream) ((*((filefunc).zflush_file)) ((filefunc).opaque,filestream)) +#define ZFLUSH64(filefunc,filestream) ((*((filefunc).zfile_func64.zflush_file)) ((filefunc).zfile_func64.opaque,filestream)) //#define ZTELL64(filefunc,filestream) ((*((filefunc).ztell64_file)) ((filefunc).opaque,filestream)) //#define ZSEEK64(filefunc,filestream,pos,mode) ((*((filefunc).zseek64_file)) ((filefunc).opaque,filestream,pos,mode)) #define ZCLOSE64(filefunc,filestream) ((*((filefunc).zfile_func64.zclose_file)) ((filefunc).zfile_func64.opaque,filestream)) diff --git a/src/minizip/ioapi.h.diff b/src/minizip/ioapi.h.diff index d652d6c..65558f6 100644 --- a/src/minizip/ioapi.h.diff +++ b/src/minizip/ioapi.h.diff @@ -1,5 +1,5 @@ --- ioapi.h.orig 2012-01-17 03:51:31.000000000 +0100 -+++ ioapi.h 2014-05-24 10:16:20.801709594 +0200 ++++ ioapi.h 2014-05-24 10:28:47.731394304 +0200 @@ -135,6 +135,7 @@ typedef voidpf (ZCALLBACK *open_file_func) OF((voidpf opaque, const char* filename, int mode)); typedef uLong (ZCALLBACK *read_file_func) OF((voidpf opaque, voidpf stream, void* buf, uLong size)); @@ -16,11 +16,19 @@ tell_file_func ztell_file; seek_file_func zseek_file; close_file_func zclose_file; -@@ -186,6 +188,7 @@ +@@ -164,6 +166,7 @@ + open64_file_func zopen64_file; + read_file_func zread_file; + write_file_func zwrite_file; ++ flush_file_func zflush_file; + tell64_file_func ztell64_file; + seek64_file_func zseek64_file; + close_file_func zclose_file; +@@ -186,6 +189,7 @@ #define ZREAD64(filefunc,filestream,buf,size) ((*((filefunc).zfile_func64.zread_file)) ((filefunc).zfile_func64.opaque,filestream,buf,size)) #define ZWRITE64(filefunc,filestream,buf,size) ((*((filefunc).zfile_func64.zwrite_file)) ((filefunc).zfile_func64.opaque,filestream,buf,size)) -+#define ZFLUSH(filefunc,filestream) ((*((filefunc).zflush_file)) ((filefunc).opaque,filestream)) ++#define ZFLUSH64(filefunc,filestream) ((*((filefunc).zfile_func64.zflush_file)) ((filefunc).zfile_func64.opaque,filestream)) //#define ZTELL64(filefunc,filestream) ((*((filefunc).ztell64_file)) ((filefunc).opaque,filestream)) //#define ZSEEK64(filefunc,filestream,pos,mode) ((*((filefunc).zseek64_file)) ((filefunc).opaque,filestream,pos,mode)) #define ZCLOSE64(filefunc,filestream) ((*((filefunc).zfile_func64.zclose_file)) ((filefunc).zfile_func64.opaque,filestream)) diff --git a/src/minizip/mztools.c b/src/minizip/mztools.c index 96891c2..078c190 100644 --- a/src/minizip/mztools.c +++ b/src/minizip/mztools.c @@ -10,6 +10,7 @@ #include <string.h> #include "zlib.h" #include "unzip.h" +#include "mztools.h" #define READ_8(adr) ((unsigned char)*(adr)) #define READ_16(adr) ( READ_8(adr) | (READ_8(adr+1) << 8) ) @@ -27,12 +28,9 @@ WRITE_16((unsigned char*)(buff) + 2, (n) >> 16); \ } while(0) -extern int ZEXPORT unzRepair(file, fileOut, fileOutTmp, nRecovered, bytesRecovered) -const char* file; -const char* fileOut; -const char* fileOutTmp; -uLong* nRecovered; -uLong* bytesRecovered; +int ZEXPORT unzRepair(const char* file, const char* fileOut, + const char* fileOutTmp, uLong* nRecovered, + uLong* bytesRecovered) { int err = Z_OK; FILE* fpZip = fopen(file, "rb"); @@ -147,8 +145,8 @@ uLong* bytesRecovered; /* Central directory entry */ { char header[46]; - char* comment = ""; - int comsize = (int) strlen(comment); + const char* comment = ""; + const size_t comsize = strlen(comment); WRITE_32(header, 0x02014b50); WRITE_16(header + 4, version); WRITE_16(header + 6, version); @@ -195,7 +193,7 @@ uLong* bytesRecovered; /* Comment field */ if (comsize > 0) { - if ((int)fwrite(comment, 1, comsize, fpOutCD) == comsize) { + if (fwrite(comment, 1, comsize, fpOutCD) == comsize) { offsetCD += comsize; } else { err = Z_ERRNO; @@ -222,8 +220,8 @@ uLong* bytesRecovered; { int entriesZip = entries; char header[22]; - char* comment = ""; // "ZIP File recovered by zlib/minizip/mztools"; - int comsize = (int) strlen(comment); + const char* comment = ""; // "ZIP File recovered by zlib/minizip/mztools"; + const size_t comsize = strlen(comment); if (entriesZip > 0xffff) { entriesZip = 0xffff; } @@ -241,7 +239,7 @@ uLong* bytesRecovered; /* Comment field */ if (comsize > 0) { - if ((int)fwrite(comment, 1, comsize, fpOutCD) != comsize) { + if (fwrite(comment, 1, comsize, fpOutCD) != comsize) { err = Z_ERRNO; } } diff --git a/src/minizip/zip.c b/src/minizip/zip.c index a0a55e6..3164199 100644 --- a/src/minizip/zip.c +++ b/src/minizip/zip.c @@ -1881,15 +1881,14 @@ int Write_GlobalComment(zip64_internal* zi, const char* global_comment) extern int ZEXPORT zipFlush (zipFile file) { - zip_internal* zi; + zip64_internal* zi; + if (file == NULL) return ZIP_PARAMERROR; - zi = (zip_internal*)file; - if (zi->z_filefunc.zflush_file != NULL && zi->filestream != NULL) - return ZFLUSH(zi->z_filefunc,zi->filestream); - else - return EOF; + zi = (zip64_internal*)file; + + return ZFLUSH64(zi->z_filefunc,zi->filestream); } extern int ZEXPORT zipClose (zipFile file, const char* global_comment) diff --git a/src/minizip/zip.c.diff b/src/minizip/zip.c.diff index 423816f..e8c1bd4 100644 --- a/src/minizip/zip.c.diff +++ b/src/minizip/zip.c.diff @@ -1,20 +1,19 @@ ---- zip.c.orig 2014-05-24 09:54:26.314883072 +0200 -+++ zip.c 2014-05-24 09:52:59.338410979 +0200 -@@ -1879,6 +1879,19 @@ +--- zip.c.orig 2013-02-24 08:32:30.000000000 +0100 ++++ zip.c 2014-05-24 10:36:41.744297397 +0200 +@@ -1879,6 +1879,18 @@ return err; } +extern int ZEXPORT zipFlush (zipFile file) +{ -+ zip_internal* zi; ++ zip64_internal* zi; ++ + if (file == NULL) + return ZIP_PARAMERROR; -+ zi = (zip_internal*)file; + -+ if (zi->z_filefunc.zflush_file != NULL && zi->filestream != NULL) -+ return ZFLUSH(zi->z_filefunc,zi->filestream); -+ else -+ return EOF; ++ zi = (zip64_internal*)file; ++ ++ return ZFLUSH64(zi->z_filefunc,zi->filestream); +} + extern int ZEXPORT zipClose (zipFile file, const char* global_comment) diff --git a/src/minizip/zip.h.diff b/src/minizip/zip.h.diff index ef44917..3150788 100644 --- a/src/minizip/zip.h.diff +++ b/src/minizip/zip.h.diff @@ -1,5 +1,5 @@ ---- zip.h.orig 2014-05-24 09:54:26.318882685 +0200 -+++ zip.h 2014-05-24 09:53:48.600412340 +0200 +--- zip.h.orig 2010-02-15 12:58:22.000000000 +0100 ++++ zip.h 2014-05-24 09:56:28.285932357 +0200 @@ -311,6 +311,11 @@ Write data in the zipfile */ |