Skip to content
Projects
Groups
Snippets
Help
This project
Loading...
Sign in / Register
Toggle navigation
godot
Project
Overview
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
community
godot
Commits
7e563f75
Commit
7e563f75
authored
May 16, 2018
by
volzhs
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Update minizip to 1.2.11
parent
3b8bd50b
Hide whitespace changes
Inline
Side-by-side
Showing
8 changed files
with
68 additions
and
45 deletions
+68
-45
README.md
thirdparty/README.md
+1
-1
crypt.h
thirdparty/minizip/crypt.h
+4
-4
godot-zlib-1.2.4-minizip-seek.patch
thirdparty/minizip/godot-zlib-1.2.4-minizip-seek.patch
+3
-3
ioapi.c
thirdparty/minizip/ioapi.c
+17
-5
ioapi.h
thirdparty/minizip/ioapi.h
+9
-1
unzip.c
thirdparty/minizip/unzip.c
+13
-13
unzip.h
thirdparty/minizip/unzip.h
+2
-2
zip.c
thirdparty/minizip/zip.c
+19
-16
No files found.
thirdparty/README.md
View file @
7e563f75
...
...
@@ -267,7 +267,7 @@ File extracted from upstream release tarball `mbedtls-2.8.0-apache.tgz`:
## minizip
-
Upstream: http://www.zlib.net
-
Version: 1.2.
4
(zlib contrib)
-
Version: 1.2.
11
(zlib contrib)
-
License: zlib
Files extracted from the upstream source:
...
...
thirdparty/minizip/crypt.h
View file @
7e563f75
...
...
@@ -32,7 +32,7 @@
/***********************************************************************
* Return the next byte in the pseudo-random sequence
*/
static
int
decrypt_byte
(
unsigned
long
*
pkeys
,
const
unsigned
long
*
pcrc_32_tab
)
static
int
decrypt_byte
(
unsigned
long
*
pkeys
,
const
z_crc_t
*
pcrc_32_tab
)
{
unsigned
temp
;
/* POTENTIAL BUG: temp*(temp^1) may overflow in an
* unpredictable manner on 16-bit systems; not a problem
...
...
@@ -45,7 +45,7 @@ static int decrypt_byte(unsigned long* pkeys, const unsigned long* pcrc_32_tab)
/***********************************************************************
* Update the encryption keys with the next byte of plain text
*/
static
int
update_keys
(
unsigned
long
*
pkeys
,
const
unsigned
long
*
pcrc_32_tab
,
int
c
)
static
int
update_keys
(
unsigned
long
*
pkeys
,
const
z_crc_t
*
pcrc_32_tab
,
int
c
)
{
(
*
(
pkeys
+
0
))
=
CRC32
((
*
(
pkeys
+
0
)),
c
);
(
*
(
pkeys
+
1
))
+=
(
*
(
pkeys
+
0
))
&
0xff
;
...
...
@@ -62,7 +62,7 @@ static int update_keys(unsigned long* pkeys,const unsigned long* pcrc_32_tab,int
* Initialize the encryption keys and the random header according to
* the given password.
*/
static
void
init_keys
(
const
char
*
passwd
,
unsigned
long
*
pkeys
,
const
unsigned
long
*
pcrc_32_tab
)
static
void
init_keys
(
const
char
*
passwd
,
unsigned
long
*
pkeys
,
const
z_crc_t
*
pcrc_32_tab
)
{
*
(
pkeys
+
0
)
=
305419896L
;
*
(
pkeys
+
1
)
=
591751049L
;
...
...
@@ -91,7 +91,7 @@ static int crypthead(const char* passwd, /* password string */
unsigned
char
*
buf
,
/* where to write header */
int
bufSize
,
unsigned
long
*
pkeys
,
const
unsigned
long
*
pcrc_32_tab
,
const
z_crc_t
*
pcrc_32_tab
,
unsigned
long
crcForCrypting
)
{
int
n
;
/* index in random header */
...
...
thirdparty/minizip/godot-zlib-1.2.4-minizip-seek.patch
View file @
7e563f75
...
...
@@ -96,8 +96,8 @@ index 7617f41f1..32e27bd65 100644
+/* GODOT end */
+
/*
Close a ZipFile opened with unz
ip
Open.
If there is files inside the .Zip opened with unz
ip
OpenCurrentFile (see later),
Close a ZipFile opened with unzOpen.
If there is files inside the .Zip opened with unzOpenCurrentFile (see later),
@@ -1018,10 +1034,20 @@ local int unz64local_GetCurrentFileInfoInternal (unzFile file,
if (lSeek!=0)
...
...
@@ -237,7 +237,7 @@ index 3183968b7..54e65ad8a 100644
--- a/thirdparty/minizip/unzip.h
+++ b/thirdparty/minizip/unzip.h
@@ -202,6 +202,10 @@ extern int ZEXPORT unzClose OF((unzFile file));
these files MUST be closed with unz
ipCloseCurrentFile before call unzip
Close.
these files MUST be closed with unz
CloseCurrentFile before call unz
Close.
return UNZ_OK if there is no problem. */
+/* GODOT start */
...
...
thirdparty/minizip/ioapi.c
View file @
7e563f75
...
...
@@ -10,10 +10,22 @@
*/
#if
(defined(_WIN32
))
#if
defined(_WIN32) && (!(defined(_CRT_SECURE_NO_WARNINGS)
))
#define _CRT_SECURE_NO_WARNINGS
#endif
#if defined(__APPLE__) || defined(IOAPI_NO_64)
// In darwin and perhaps other BSD variants off_t is a 64 bit value, hence no need for specific 64 bit functions
#define FOPEN_FUNC(filename, mode) fopen(filename, mode)
#define FTELLO_FUNC(stream) ftello(stream)
#define FSEEKO_FUNC(stream, offset, origin) fseeko(stream, offset, origin)
#else
#define FOPEN_FUNC(filename, mode) fopen64(filename, mode)
#define FTELLO_FUNC(stream) ftello64(stream)
#define FSEEKO_FUNC(stream, offset, origin) fseeko64(stream, offset, origin)
#endif
#include "ioapi.h"
voidpf
call_zopen64
(
const
zlib_filefunc64_32_def
*
pfilefunc
,
const
void
*
filename
,
int
mode
)
...
...
@@ -47,7 +59,7 @@ ZPOS64_T call_ztell64 (const zlib_filefunc64_32_def* pfilefunc,voidpf filestream
else
{
uLong
tell_uLong
=
(
*
(
pfilefunc
->
ztell32_file
))(
pfilefunc
->
zfile_func64
.
opaque
,
filestream
);
if
((
tell_uLong
)
==
((
uLong
)
-
1
)
)
if
((
tell_uLong
)
==
MAXU32
)
return
(
ZPOS64_T
)
-
1
;
else
return
tell_uLong
;
...
...
@@ -119,7 +131,7 @@ static voidpf ZCALLBACK fopen64_file_func (voidpf opaque, const void* filename,
mode_fopen = "wb";
if ((filename!=NULL) && (mode_fopen != NULL))
file =
fopen64
((const char*)filename, mode_fopen);
file =
FOPEN_FUNC
((const char*)filename, mode_fopen);
return file;
}
...
...
@@ -149,7 +161,7 @@ static long ZCALLBACK ftell_file_func (voidpf opaque, voidpf stream)
static ZPOS64_T ZCALLBACK ftell64_file_func (voidpf opaque, voidpf stream)
{
ZPOS64_T ret;
ret =
ftello64
((FILE *)stream);
ret =
FTELLO_FUNC
((FILE *)stream);
return ret;
}
...
...
@@ -195,7 +207,7 @@ static long ZCALLBACK fseek64_file_func (voidpf opaque, voidpf stream, ZPOS64_T
}
ret = 0;
if(
fseeko64
((FILE *)stream, offset, fseek_origin) != 0)
if(
FSEEKO_FUNC
((FILE *)stream, offset, fseek_origin) != 0)
ret = -1;
return ret;
...
...
thirdparty/minizip/ioapi.h
View file @
7e563f75
...
...
@@ -21,7 +21,7 @@
#ifndef _ZLIBIOAPI64_H
#define _ZLIBIOAPI64_H
#if (!defined(_WIN32)) && (!defined(WIN32))
#if (!defined(_WIN32)) && (!defined(WIN32))
&& (!defined(__APPLE__))
// Linux needs this to support file operation on files larger then 4+GB
// But might need better if/def to select just the platforms that needs them.
...
...
@@ -38,6 +38,7 @@
#ifndef _FILE_OFFSET_BIT
#define _FILE_OFFSET_BIT 64
#endif
#endif
#include <stdio.h>
...
...
@@ -65,6 +66,11 @@
#define ftello64 ftell
#define fseeko64 fseek
#else
#ifdef __FreeBSD__
#define fopen64 fopen
#define ftello64 ftello
#define fseeko64 fseeko
#endif
#ifdef _MSC_VER
#define fopen64 fopen
#if (_MSC_VER >= 1400) && (!(defined(NO_MSCVER_FILE64_FUNC)))
...
...
@@ -101,6 +107,8 @@ typedef 64BIT_INT_CUSTOM_TYPE ZPOS64_T;
typedef
uint64_t
ZPOS64_T
;
#else
/* Maximum unsigned 32-bit value used as placeholder for zip64 */
#define MAXU32 0xffffffff
#if defined(_MSC_VER) || defined(__BORLANDC__)
typedef
unsigned
__int64
ZPOS64_T
;
...
...
thirdparty/minizip/unzip.c
View file @
7e563f75
...
...
@@ -191,7 +191,7 @@ typedef struct
# ifndef NOUNCRYPT
unsigned
long
keys
[
3
];
/* keys defining the pseudo-random sequence */
const
unsigned
long
*
pcrc_32_tab
;
const
z_crc_t
*
pcrc_32_tab
;
# endif
}
unz64_s
;
...
...
@@ -203,7 +203,7 @@ typedef struct
/* ===========================================================================
Read a byte from a gz_stream; update next_in and avail_in. Return EOF
for end of file.
IN assertion: the stream s has been sucessfully opened for reading.
IN assertion: the stream s has been suc
c
essfully opened for reading.
*/
...
...
@@ -817,9 +817,9 @@ extern void* unzGetOpaque(unzFile file) {
/* GODOT end */
/*
Close a ZipFile opened with unz
ip
Open.
If there is files inside the .Zip opened with unz
ip
OpenCurrentFile (see later),
these files MUST be closed with unz
ipCloseCurrentFile before call unzip
Close.
Close a ZipFile opened with unzOpen.
If there is files inside the .Zip opened with unzOpenCurrentFile (see later),
these files MUST be closed with unz
CloseCurrentFile before call unz
Close.
return UNZ_OK if there is no problem. */
extern
int
ZEXPORT
unzClose
(
unzFile
file
)
{
...
...
@@ -1066,26 +1066,26 @@ local int unz64local_GetCurrentFileInfoInternal (unzFile file,
{
uLong
uL
;
if
(
file_info
.
uncompressed_size
==
(
ZPOS64_T
)(
unsigned
long
)
-
1
)
if
(
file_info
.
uncompressed_size
==
MAXU32
)
{
if
(
unz64local_getLong64
(
&
s
->
z_filefunc
,
s
->
filestream
,
&
file_info
.
uncompressed_size
)
!=
UNZ_OK
)
err
=
UNZ_ERRNO
;
}
if
(
file_info
.
compressed_size
==
(
ZPOS64_T
)(
unsigned
long
)
-
1
)
if
(
file_info
.
compressed_size
==
MAXU32
)
{
if
(
unz64local_getLong64
(
&
s
->
z_filefunc
,
s
->
filestream
,
&
file_info
.
compressed_size
)
!=
UNZ_OK
)
err
=
UNZ_ERRNO
;
}
if
(
file_info_internal
.
offset_curfile
==
(
ZPOS64_T
)(
unsigned
long
)
-
1
)
if
(
file_info_internal
.
offset_curfile
==
MAXU32
)
{
/* Relative Header offset */
if
(
unz64local_getLong64
(
&
s
->
z_filefunc
,
s
->
filestream
,
&
file_info_internal
.
offset_curfile
)
!=
UNZ_OK
)
err
=
UNZ_ERRNO
;
}
if
(
file_info
.
disk_num_start
==
(
unsigned
long
)
-
1
)
if
(
file_info
.
disk_num_start
==
MAXU32
)
{
/* Disk Start Number */
if
(
unz64local_getLong
(
&
s
->
z_filefunc
,
s
->
filestream
,
&
uL
)
!=
UNZ_OK
)
...
...
@@ -1171,7 +1171,7 @@ extern int ZEXPORT unzGetCurrentFileInfo (unzFile file,
szFileName
,
fileNameBufferSize
,
extraField
,
extraFieldBufferSize
,
szComment
,
commentBufferSize
);
if
(
err
==
UNZ_OK
)
if
(
(
err
==
UNZ_OK
)
&&
(
pfile_info
!=
NULL
)
)
{
pfile_info
->
version
=
file_info64
.
version
;
pfile_info
->
version_needed
=
file_info64
.
version_needed
;
...
...
@@ -1249,7 +1249,7 @@ extern int ZEXPORT unzGoToNextFile (unzFile file)
/*
Try locate the file szFileName in the zipfile.
For the iCaseSensitivity signification, see unz
ip
StringFileNameCompare
For the iCaseSensitivity signification, see unzStringFileNameCompare
return value :
UNZ_OK if the file is found. It becomes the current file.
...
...
@@ -1806,7 +1806,7 @@ extern int ZEXPORT unzReadCurrentFile (unzFile file, voidp buf, unsigned len)
return
UNZ_PARAMERROR
;
if
(
(
pfile_in_zip_read_info
->
read_buffer
==
NULL
)
)
if
(
pfile_in_zip_read_info
->
read_buffer
==
NULL
)
return
UNZ_END_OF_LIST_OF_FILE
;
if
(
len
==
0
)
return
0
;
...
...
@@ -2108,7 +2108,7 @@ extern int ZEXPORT unzGetLocalExtrafield (unzFile file, voidp buf, unsigned len)
}
/*
Close the file in zip opened with unz
ip
OpenCurrentFile
Close the file in zip opened with unzOpenCurrentFile
Return UNZ_CRCERROR if all the file was read but the CRC is not good
*/
extern
int
ZEXPORT
unzCloseCurrentFile
(
unzFile
file
)
...
...
thirdparty/minizip/unzip.h
View file @
7e563f75
...
...
@@ -197,9 +197,9 @@ extern unzFile ZEXPORT unzOpen2_64 OF((const void *path,
extern
int
ZEXPORT
unzClose
OF
((
unzFile
file
));
/*
Close a ZipFile opened with unz
ip
Open.
Close a ZipFile opened with unzOpen.
If there is files inside the .Zip opened with unzOpenCurrentFile (see later),
these files MUST be closed with unz
ipCloseCurrentFile before call unzip
Close.
these files MUST be closed with unz
CloseCurrentFile before call unz
Close.
return UNZ_OK if there is no problem. */
/* GODOT start */
...
...
thirdparty/minizip/zip.c
View file @
7e563f75
...
...
@@ -15,7 +15,7 @@
Oct-2009 - Mathias Svensson - Did some code cleanup and refactoring to get better overview of some functions.
Oct-2009 - Mathias Svensson - Added zipRemoveExtraInfoBlock to strip extra field data from its ZIP64 data
It is used when recreting zip archive with RAW when deleting items from a zip.
ZIP64 data is automaticly added to items that needs it, and existing ZIP64 data need to be removed.
ZIP64 data is automatic
al
ly added to items that needs it, and existing ZIP64 data need to be removed.
Oct-2009 - Mathias Svensson - Added support for BZIP2 as compression mode (bzip2 lib is required)
Jan-2010 - back to unzip and minizip 1.0 name scheme, with compatibility layer
...
...
@@ -116,7 +116,7 @@ typedef struct linkedlist_datablock_internal_s
struct
linkedlist_datablock_internal_s
*
next_datablock
;
uLong
avail_in_this_block
;
uLong
filled_in_this_block
;
uLong
unused
;
/* for future use and align
e
ment */
uLong
unused
;
/* for future use and alignment */
unsigned
char
data
[
SIZEDATA_INDATABLOCK
];
}
linkedlist_datablock_internal
;
...
...
@@ -157,7 +157,7 @@ typedef struct
ZPOS64_T
totalUncompressedData
;
#ifndef NOCRYPT
unsigned
long
keys
[
3
];
/* keys defining the pseudo-random sequence */
const
unsigned
long
*
pcrc_32_tab
;
const
z_crc_t
*
pcrc_32_tab
;
int
crypt_header_size
;
#endif
}
curfile64_info
;
...
...
@@ -171,7 +171,7 @@ typedef struct
curfile64_info
ci
;
/* info on the file curretly writing */
ZPOS64_T
begin_pos
;
/* position of the beginning of the zipfile */
ZPOS64_T
add_position_when_writ
t
ing_offset
;
ZPOS64_T
add_position_when_writing_offset
;
ZPOS64_T
number_entry
;
#ifndef NO_ADDFILEINEXISTINGZIP
...
...
@@ -807,7 +807,7 @@ int LoadCentralDirectoryRecord(zip64_internal* pziinit)
}
byte_before_the_zipfile
=
central_pos
-
(
offset_central_dir
+
size_central_dir
);
pziinit
->
add_position_when_writ
t
ing_offset
=
byte_before_the_zipfile
;
pziinit
->
add_position_when_writing_offset
=
byte_before_the_zipfile
;
{
ZPOS64_T
size_central_dir_to_read
=
size_central_dir
;
...
...
@@ -877,7 +877,7 @@ extern zipFile ZEXPORT zipOpen3 (const void *pathname, int append, zipcharpc* gl
ziinit
.
in_opened_file_inzip
=
0
;
ziinit
.
ci
.
stream_initialised
=
0
;
ziinit
.
number_entry
=
0
;
ziinit
.
add_position_when_writ
t
ing_offset
=
0
;
ziinit
.
add_position_when_writing_offset
=
0
;
init_linkedlist
(
&
(
ziinit
.
central_dir
));
...
...
@@ -1069,6 +1069,7 @@ extern int ZEXPORT zipOpenNewFileInZip4_64 (zipFile file, const char* filename,
int
err
=
ZIP_OK
;
# ifdef NOCRYPT
(
crcForCrypting
);
if
(
password
!=
NULL
)
return
ZIP_PARAMERROR
;
# endif
...
...
@@ -1116,9 +1117,9 @@ extern int ZEXPORT zipOpenNewFileInZip4_64 (zipFile file, const char* filename,
zi
->
ci
.
flag
=
flagBase
;
if
((
level
==
8
)
||
(
level
==
9
))
zi
->
ci
.
flag
|=
2
;
if
(
(
level
==
2
)
)
if
(
level
==
2
)
zi
->
ci
.
flag
|=
4
;
if
(
(
level
==
1
)
)
if
(
level
==
1
)
zi
->
ci
.
flag
|=
6
;
if
(
password
!=
NULL
)
zi
->
ci
.
flag
|=
1
;
...
...
@@ -1165,7 +1166,7 @@ extern int ZEXPORT zipOpenNewFileInZip4_64 (zipFile file, const char* filename,
if
(
zi
->
ci
.
pos_local_header
>=
0xffffffff
)
zip64local_putValue_inmemory
(
zi
->
ci
.
central_header
+
42
,(
uLong
)
0xffffffff
,
4
);
else
zip64local_putValue_inmemory
(
zi
->
ci
.
central_header
+
42
,(
uLong
)
zi
->
ci
.
pos_local_header
-
zi
->
add_position_when_writ
t
ing_offset
,
4
);
zip64local_putValue_inmemory
(
zi
->
ci
.
central_header
+
42
,(
uLong
)
zi
->
ci
.
pos_local_header
-
zi
->
add_position_when_writing_offset
,
4
);
for
(
i
=
0
;
i
<
size_filename
;
i
++
)
*
(
zi
->
ci
.
central_header
+
SIZECENTRALHEADER
+
i
)
=
*
(
filename
+
i
);
...
...
@@ -1714,7 +1715,7 @@ extern int ZEXPORT zipCloseFileInZipRaw64 (zipFile file, ZPOS64_T uncompressed_s
if
(
err
==
ZIP_OK
)
err
=
zip64local_putValue
(
&
zi
->
z_filefunc
,
zi
->
filestream
,
crc32
,
4
);
/* crc 32, unknown */
if
(
uncompressed_size
>=
0xffffffff
)
if
(
uncompressed_size
>=
0xffffffff
||
compressed_size
>=
0xffffffff
)
{
if
(
zi
->
ci
.
pos_zip64extrainfo
>
0
)
{
...
...
@@ -1728,6 +1729,8 @@ extern int ZEXPORT zipCloseFileInZipRaw64 (zipFile file, ZPOS64_T uncompressed_s
if
(
err
==
ZIP_OK
)
/* uncompressed size, unknown */
err
=
zip64local_putValue
(
&
zi
->
z_filefunc
,
zi
->
filestream
,
compressed_size
,
8
);
}
else
err
=
ZIP_BADZIPFILE
;
// Caller passed zip64 = 0, so no room for zip64 info -> fatal
}
else
{
...
...
@@ -1756,7 +1759,7 @@ extern int ZEXPORT zipCloseFileInZip (zipFile file)
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_writ
t
ing_offset
;
ZPOS64_T
pos
=
zip64eocd_pos_inzip
-
zi
->
add_position_when_writing_offset
;
err
=
zip64local_putValue
(
&
zi
->
z_filefunc
,
zi
->
filestream
,(
uLong
)
ZIP64ENDLOCHEADERMAGIC
,
4
);
...
...
@@ -1809,7 +1812,7 @@ int Write_Zip64EndOfCentralDirectoryRecord(zip64_internal* zi, uLong size_centra
if
(
err
==
ZIP_OK
)
/* offset of start of central directory with respect to the starting disk number */
{
ZPOS64_T
pos
=
centraldir_pos_inzip
-
zi
->
add_position_when_writ
t
ing_offset
;
ZPOS64_T
pos
=
centraldir_pos_inzip
-
zi
->
add_position_when_writing_offset
;
err
=
zip64local_putValue
(
&
zi
->
z_filefunc
,
zi
->
filestream
,
(
ZPOS64_T
)
pos
,
8
);
}
return
err
;
...
...
@@ -1850,13 +1853,13 @@ int Write_EndOfCentralDirectoryRecord(zip64_internal* zi, uLong size_centraldir,
if
(
err
==
ZIP_OK
)
/* offset of start of central directory with respect to the starting disk number */
{
ZPOS64_T
pos
=
centraldir_pos_inzip
-
zi
->
add_position_when_writ
t
ing_offset
;
ZPOS64_T
pos
=
centraldir_pos_inzip
-
zi
->
add_position_when_writing_offset
;
if
(
pos
>=
0xffffffff
)
{
err
=
zip64local_putValue
(
&
zi
->
z_filefunc
,
zi
->
filestream
,
(
uLong
)
0xffffffff
,
4
);
}
else
err
=
zip64local_putValue
(
&
zi
->
z_filefunc
,
zi
->
filestream
,
(
uLong
)(
centraldir_pos_inzip
-
zi
->
add_position_when_writ
ting_offset
),
4
);
err
=
zip64local_putValue
(
&
zi
->
z_filefunc
,
zi
->
filestream
,
(
uLong
)(
centraldir_pos_inzip
-
zi
->
add_position_when_wri
ting_offset
),
4
);
}
return
err
;
...
...
@@ -1922,8 +1925,8 @@ extern int ZEXPORT zipClose (zipFile file, const char* global_comment)
}
free_linkedlist
(
&
(
zi
->
central_dir
));
pos
=
centraldir_pos_inzip
-
zi
->
add_position_when_writ
t
ing_offset
;
if
(
pos
>=
0xffffffff
)
pos
=
centraldir_pos_inzip
-
zi
->
add_position_when_writing_offset
;
if
(
pos
>=
0xffffffff
||
zi
->
number_entry
>
0xFFFF
)
{
ZPOS64_T
Zip64EOCDpos
=
ZTELL64
(
zi
->
z_filefunc
,
zi
->
filestream
);
Write_Zip64EndOfCentralDirectoryRecord
(
zi
,
size_centraldir
,
centraldir_pos_inzip
);
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment