--- zip.c.orig 2014-06-10 18:55:32.778807408 +0200 +++ zip.c 2014-06-10 22:24:28.372483395 +0200 @@ -33,6 +33,7 @@ # include # include # include +# include #endif #ifdef NO_ERRNO_H extern int errno; @@ -186,7 +187,7 @@ #include "crypt.h" #endif -local linkedlist_datablock_internal* allocate_new_datablock() +local linkedlist_datablock_internal* allocate_new_datablock(void) { linkedlist_datablock_internal* ldi; ldi = (linkedlist_datablock_internal*) @@ -238,7 +239,7 @@ } ldi = ll->last_block; - from_copy = (unsigned char*)buf; + from_copy = (const unsigned char*)buf; while (len>0) { @@ -637,7 +638,7 @@ return relativeOffset; } -int LoadCentralDirectoryRecord(zip64_internal* pziinit) +local int LoadCentralDirectoryRecord(zip64_internal* pziinit) { int err=ZIP_OK; ZPOS64_T byte_before_the_zipfile;/* byte before the zipfile, (>0 for sfx)*/ @@ -955,7 +956,7 @@ return zipOpen3(pathname,append,NULL,NULL); } -int Write_LocalFileHeader(zip64_internal* zi, const char* filename, uInt size_extrafield_local, const void* extrafield_local) +local int Write_LocalFileHeader(zip64_internal* zi, const char* filename, uInt size_extrafield_local, const void* extrafield_local) { /* write the local header */ int err; @@ -1450,7 +1451,7 @@ else #endif { - zi->ci.stream.next_in = (Bytef*)buf; + zi->ci.stream.next_in = (void*) (uintptr_t) buf; zi->ci.stream.avail_in = len; while ((err==ZIP_OK) && (zi->ci.stream.avail_in>0)) @@ -1752,7 +1753,7 @@ return zipCloseFileInZipRaw (file,0,0); } -int Write_Zip64EndOfCentralDirectoryLocator(zip64_internal* zi, ZPOS64_T zip64eocd_pos_inzip) +local int Write_Zip64EndOfCentralDirectoryLocator(zip64_internal* zi, ZPOS64_T zip64eocd_pos_inzip) { int err = ZIP_OK; ZPOS64_T pos = zip64eocd_pos_inzip - zi->add_position_when_writting_offset; @@ -1774,7 +1775,7 @@ return err; } -int Write_Zip64EndOfCentralDirectoryRecord(zip64_internal* zi, uLong size_centraldir, ZPOS64_T centraldir_pos_inzip) +local int Write_Zip64EndOfCentralDirectoryRecord(zip64_internal* zi, uLong size_centraldir, ZPOS64_T centraldir_pos_inzip) { int err = ZIP_OK; @@ -1813,7 +1814,8 @@ } return err; } -int Write_EndOfCentralDirectoryRecord(zip64_internal* zi, uLong size_centraldir, ZPOS64_T centraldir_pos_inzip) + +local int Write_EndOfCentralDirectoryRecord(zip64_internal* zi, uLong size_centraldir, ZPOS64_T centraldir_pos_inzip) { int err = ZIP_OK; @@ -1861,7 +1863,7 @@ return err; } -int Write_GlobalComment(zip64_internal* zi, const char* global_comment) +local int Write_GlobalComment(zip64_internal* zi, const char* global_comment) { int err = ZIP_OK; uInt size_global_comment = 0; @@ -1879,6 +1881,18 @@ return err; } +extern int ZEXPORT zipFlush (zipFile file) +{ + zip64_internal* zi; + + if (file == NULL) + return ZIP_PARAMERROR; + + zi = (zip64_internal*)file; + + return ZFLUSH64(zi->z_filefunc,zi->filestream); +} + extern int ZEXPORT zipClose (zipFile file, const char* global_comment) { zip64_internal* zi;