summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorXavier Roche <xroche@users.noreply.github.com>2014-05-24 08:37:21 +0000
committerXavier Roche <xroche@users.noreply.github.com>2014-05-24 08:37:21 +0000
commit033ce293b8f80652bdfbdfa07196389393e35866 (patch)
tree7a461fedb6afeb7f76ef09e7f1c2aed8fadda0d6
parentd1913325e49894c60348daf7bfbd6ec54e8b2e87 (diff)
Fixed minizip.
-rw-r--r--src/minizip/ioapi.c2
-rw-r--r--src/minizip/ioapi.c.diff26
-rw-r--r--src/minizip/ioapi.h3
-rw-r--r--src/minizip/ioapi.h.diff14
-rw-r--r--src/minizip/mztools.c22
-rw-r--r--src/minizip/zip.c11
-rw-r--r--src/minizip/zip.c.diff17
-rw-r--r--src/minizip/zip.h.diff4
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
*/