fast_excel 0.4.1 → 0.5.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/.github/workflows/test.yml +1 -7
- data/CHANGELOG.md +9 -0
- data/Gemfile +1 -1
- data/examples/example.rb +2 -0
- data/examples/example_date_time.rb +38 -0
- data/fast_excel.gemspec +2 -2
- data/lib/fast_excel/binding/format.rb +17 -0
- data/lib/fast_excel/binding/workbook.rb +39 -17
- data/lib/fast_excel/binding/worksheet.rb +57 -13
- data/lib/fast_excel/binding.rb +7 -7
- data/lib/fast_excel.rb +27 -20
- data/libxlsxwriter/.github/FUNDING.yml +1 -0
- data/libxlsxwriter/.github/ISSUE_TEMPLATE.md +85 -0
- data/libxlsxwriter/.github/PULL_REQUEST_TEMPLATE.md +130 -0
- data/libxlsxwriter/.github/workflows/cmake_actions.yml +48 -0
- data/libxlsxwriter/.github/workflows/code_style.yml +23 -0
- data/libxlsxwriter/.github/workflows/coverity.yml +22 -0
- data/libxlsxwriter/.github/workflows/make_actions.yml +52 -0
- data/libxlsxwriter/.github/workflows/valgrind.yml +23 -0
- data/libxlsxwriter/.github/workflows/windows_build.yml +54 -0
- data/libxlsxwriter/.github/workflows/zig_build.yml +22 -0
- data/libxlsxwriter/.gitignore +16 -1
- data/libxlsxwriter/.indent.pro +24 -0
- data/libxlsxwriter/CMakeLists.txt +156 -56
- data/libxlsxwriter/CONTRIBUTING.md +2 -2
- data/libxlsxwriter/Changes.txt +344 -2
- data/libxlsxwriter/LICENSE.txt +66 -8
- data/libxlsxwriter/Makefile +151 -54
- data/libxlsxwriter/Package.swift +42 -0
- data/libxlsxwriter/Readme.md +4 -2
- data/libxlsxwriter/build.zig +324 -0
- data/libxlsxwriter/build.zig.zon +11 -0
- data/libxlsxwriter/cmake/FindMINIZIP.cmake +3 -3
- data/libxlsxwriter/cocoapods/libxlsxwriter-umbrella.h +6 -0
- data/libxlsxwriter/include/xlsxwriter/app.h +2 -1
- data/libxlsxwriter/include/xlsxwriter/chart.h +236 -32
- data/libxlsxwriter/include/xlsxwriter/chartsheet.h +7 -7
- data/libxlsxwriter/include/xlsxwriter/comment.h +76 -0
- data/libxlsxwriter/include/xlsxwriter/common.h +111 -50
- data/libxlsxwriter/include/xlsxwriter/content_types.h +8 -1
- data/libxlsxwriter/include/xlsxwriter/core.h +1 -1
- data/libxlsxwriter/include/xlsxwriter/custom.h +1 -1
- data/libxlsxwriter/include/xlsxwriter/drawing.h +11 -20
- data/libxlsxwriter/include/xlsxwriter/format.h +121 -8
- data/libxlsxwriter/include/xlsxwriter/hash_table.h +1 -1
- data/libxlsxwriter/include/xlsxwriter/metadata.h +49 -0
- data/libxlsxwriter/include/xlsxwriter/packager.h +27 -16
- data/libxlsxwriter/include/xlsxwriter/relationships.h +1 -1
- data/libxlsxwriter/include/xlsxwriter/shared_strings.h +1 -1
- data/libxlsxwriter/include/xlsxwriter/styles.h +13 -7
- data/libxlsxwriter/include/xlsxwriter/table.h +51 -0
- data/libxlsxwriter/include/xlsxwriter/theme.h +1 -1
- data/libxlsxwriter/include/xlsxwriter/third_party/emyg_dtoa.h +26 -0
- data/libxlsxwriter/include/xlsxwriter/third_party/ioapi.h +27 -25
- data/libxlsxwriter/include/xlsxwriter/third_party/md5.h +45 -0
- data/libxlsxwriter/include/xlsxwriter/third_party/zip.h +155 -153
- data/libxlsxwriter/include/xlsxwriter/utility.h +70 -8
- data/libxlsxwriter/include/xlsxwriter/vml.h +55 -0
- data/libxlsxwriter/include/xlsxwriter/workbook.h +218 -47
- data/libxlsxwriter/include/xlsxwriter/worksheet.h +2770 -241
- data/libxlsxwriter/include/xlsxwriter/xmlwriter.h +12 -8
- data/libxlsxwriter/include/xlsxwriter.h +4 -2
- data/libxlsxwriter/libxlsxwriter.podspec +8 -5
- data/libxlsxwriter/src/Makefile +58 -21
- data/libxlsxwriter/src/app.c +5 -2
- data/libxlsxwriter/src/chart.c +396 -81
- data/libxlsxwriter/src/chartsheet.c +22 -22
- data/libxlsxwriter/src/comment.c +443 -0
- data/libxlsxwriter/src/content_types.c +40 -1
- data/libxlsxwriter/src/core.c +2 -2
- data/libxlsxwriter/src/custom.c +1 -1
- data/libxlsxwriter/src/drawing.c +160 -40
- data/libxlsxwriter/src/format.c +109 -25
- data/libxlsxwriter/src/hash_table.c +1 -1
- data/libxlsxwriter/src/metadata.c +283 -0
- data/libxlsxwriter/src/packager.c +794 -94
- data/libxlsxwriter/src/relationships.c +1 -1
- data/libxlsxwriter/src/shared_strings.c +2 -4
- data/libxlsxwriter/src/styles.c +353 -58
- data/libxlsxwriter/src/table.c +304 -0
- data/libxlsxwriter/src/theme.c +1 -1
- data/libxlsxwriter/src/utility.c +143 -43
- data/libxlsxwriter/src/vml.c +1062 -0
- data/libxlsxwriter/src/workbook.c +567 -77
- data/libxlsxwriter/src/worksheet.c +6668 -1462
- data/libxlsxwriter/src/xmlwriter.c +95 -5
- data/libxlsxwriter/third_party/dtoa/Makefile +42 -0
- data/libxlsxwriter/third_party/dtoa/emyg_dtoa.c +461 -0
- data/libxlsxwriter/third_party/dtoa/emyg_dtoa.h +26 -0
- data/libxlsxwriter/third_party/md5/Makefile +42 -0
- data/libxlsxwriter/third_party/md5/md5.c +291 -0
- data/libxlsxwriter/third_party/md5/md5.h +45 -0
- data/libxlsxwriter/third_party/minizip/Makefile +3 -8
- data/libxlsxwriter/third_party/minizip/Makefile.orig +8 -4
- data/libxlsxwriter/third_party/minizip/MiniZip64_Changes.txt +1 -1
- data/libxlsxwriter/third_party/minizip/configure.ac +1 -1
- data/libxlsxwriter/third_party/minizip/crypt.h +13 -16
- data/libxlsxwriter/third_party/minizip/ioapi.c +31 -57
- data/libxlsxwriter/third_party/minizip/ioapi.h +31 -23
- data/libxlsxwriter/third_party/minizip/iowin32.c +29 -45
- data/libxlsxwriter/third_party/minizip/iowin32.h +4 -4
- data/libxlsxwriter/third_party/minizip/miniunz.c +29 -56
- data/libxlsxwriter/third_party/minizip/minizip.c +38 -49
- data/libxlsxwriter/third_party/minizip/mztools.c +1 -7
- data/libxlsxwriter/third_party/minizip/unzip.c +202 -342
- data/libxlsxwriter/third_party/minizip/unzip.h +74 -74
- data/libxlsxwriter/third_party/minizip/zip.c +165 -218
- data/libxlsxwriter/third_party/minizip/zip.h +164 -154
- data/libxlsxwriter/third_party/tmpfileplus/Makefile +3 -3
- data/libxlsxwriter/version.txt +1 -1
- data/test/auto_width_test.rb +20 -0
- data/test/default_format_test.rb +1 -1
- data/test/validations_test.rb +3 -3
- data/test/worksheet_test.rb +6 -1
- metadata +33 -7
- data/libxlsxwriter/.travis.yml +0 -37
|
@@ -14,7 +14,7 @@
|
|
|
14
14
|
#define _CRT_SECURE_NO_WARNINGS
|
|
15
15
|
#endif
|
|
16
16
|
|
|
17
|
-
#if defined(__APPLE__) || defined(IOAPI_NO_64)
|
|
17
|
+
#if defined(__APPLE__) || defined(IOAPI_NO_64) || defined(__HAIKU__) || defined(MINIZIP_FOPEN_NO_64)
|
|
18
18
|
// In darwin and perhaps other BSD variants off_t is a 64 bit value, hence no need for specific 64 bit functions
|
|
19
19
|
#define FOPEN_FUNC(filename, mode) fopen(filename, mode)
|
|
20
20
|
#define FTELLO_FUNC(stream) ftello(stream)
|
|
@@ -28,8 +28,7 @@
|
|
|
28
28
|
|
|
29
29
|
#include "ioapi.h"
|
|
30
30
|
|
|
31
|
-
voidpf call_zopen64 (const zlib_filefunc64_32_def* pfilefunc,const void*filename,int mode)
|
|
32
|
-
{
|
|
31
|
+
voidpf call_zopen64 (const zlib_filefunc64_32_def* pfilefunc, const void*filename, int mode) {
|
|
33
32
|
if (pfilefunc->zfile_func64.zopen64_file != NULL)
|
|
34
33
|
return (*(pfilefunc->zfile_func64.zopen64_file)) (pfilefunc->zfile_func64.opaque,filename,mode);
|
|
35
34
|
else
|
|
@@ -38,8 +37,7 @@ voidpf call_zopen64 (const zlib_filefunc64_32_def* pfilefunc,const void*filename
|
|
|
38
37
|
}
|
|
39
38
|
}
|
|
40
39
|
|
|
41
|
-
long call_zseek64 (const zlib_filefunc64_32_def* pfilefunc,voidpf filestream, ZPOS64_T offset, int origin)
|
|
42
|
-
{
|
|
40
|
+
long call_zseek64 (const zlib_filefunc64_32_def* pfilefunc,voidpf filestream, ZPOS64_T offset, int origin) {
|
|
43
41
|
if (pfilefunc->zfile_func64.zseek64_file != NULL)
|
|
44
42
|
return (*(pfilefunc->zfile_func64.zseek64_file)) (pfilefunc->zfile_func64.opaque,filestream,offset,origin);
|
|
45
43
|
else
|
|
@@ -52,13 +50,12 @@ long call_zseek64 (const zlib_filefunc64_32_def* pfilefunc,voidpf filestream, ZP
|
|
|
52
50
|
}
|
|
53
51
|
}
|
|
54
52
|
|
|
55
|
-
ZPOS64_T call_ztell64 (const zlib_filefunc64_32_def* pfilefunc,voidpf filestream)
|
|
56
|
-
{
|
|
53
|
+
ZPOS64_T call_ztell64 (const zlib_filefunc64_32_def* pfilefunc, voidpf filestream) {
|
|
57
54
|
if (pfilefunc->zfile_func64.zseek64_file != NULL)
|
|
58
55
|
return (*(pfilefunc->zfile_func64.ztell64_file)) (pfilefunc->zfile_func64.opaque,filestream);
|
|
59
56
|
else
|
|
60
57
|
{
|
|
61
|
-
uLong tell_uLong = (*(pfilefunc->ztell32_file))(pfilefunc->zfile_func64.opaque,filestream);
|
|
58
|
+
uLong tell_uLong = (uLong)(*(pfilefunc->ztell32_file))(pfilefunc->zfile_func64.opaque,filestream);
|
|
62
59
|
if ((tell_uLong) == MAXU32)
|
|
63
60
|
return (ZPOS64_T)-1;
|
|
64
61
|
else
|
|
@@ -66,11 +63,9 @@ ZPOS64_T call_ztell64 (const zlib_filefunc64_32_def* pfilefunc,voidpf filestream
|
|
|
66
63
|
}
|
|
67
64
|
}
|
|
68
65
|
|
|
69
|
-
void fill_zlib_filefunc64_32_def_from_filefunc32(zlib_filefunc64_32_def* p_filefunc64_32,const zlib_filefunc_def* p_filefunc32)
|
|
70
|
-
{
|
|
66
|
+
void fill_zlib_filefunc64_32_def_from_filefunc32(zlib_filefunc64_32_def* p_filefunc64_32, const zlib_filefunc_def* p_filefunc32) {
|
|
71
67
|
p_filefunc64_32->zfile_func64.zopen64_file = NULL;
|
|
72
68
|
p_filefunc64_32->zopen32_file = p_filefunc32->zopen_file;
|
|
73
|
-
p_filefunc64_32->zfile_func64.zerror_file = p_filefunc32->zerror_file;
|
|
74
69
|
p_filefunc64_32->zfile_func64.zread_file = p_filefunc32->zread_file;
|
|
75
70
|
p_filefunc64_32->zfile_func64.zwrite_file = p_filefunc32->zwrite_file;
|
|
76
71
|
p_filefunc64_32->zfile_func64.ztell64_file = NULL;
|
|
@@ -84,19 +79,10 @@ void fill_zlib_filefunc64_32_def_from_filefunc32(zlib_filefunc64_32_def* p_filef
|
|
|
84
79
|
|
|
85
80
|
|
|
86
81
|
|
|
87
|
-
static voidpf
|
|
88
|
-
static uLong ZCALLBACK fread_file_func OF((voidpf opaque, voidpf stream, void* buf, uLong size));
|
|
89
|
-
static uLong ZCALLBACK fwrite_file_func OF((voidpf opaque, voidpf stream, const void* buf,uLong size));
|
|
90
|
-
static ZPOS64_T ZCALLBACK ftell64_file_func OF((voidpf opaque, voidpf stream));
|
|
91
|
-
static long ZCALLBACK fseek64_file_func OF((voidpf opaque, voidpf stream, ZPOS64_T offset, int origin));
|
|
92
|
-
static int ZCALLBACK fclose_file_func OF((voidpf opaque, voidpf stream));
|
|
93
|
-
static int ZCALLBACK ferror_file_func OF((voidpf opaque, voidpf stream));
|
|
94
|
-
|
|
95
|
-
static voidpf ZCALLBACK fopen_file_func (voidpf opaque, const char* filename, int mode)
|
|
96
|
-
{
|
|
82
|
+
static voidpf ZCALLBACK fopen_file_func(voidpf opaque, const char* filename, int mode) {
|
|
97
83
|
FILE* file = NULL;
|
|
98
84
|
const char* mode_fopen = NULL;
|
|
99
|
-
(void)
|
|
85
|
+
(void)opaque;
|
|
100
86
|
if ((mode & ZLIB_FILEFUNC_MODE_READWRITEFILTER)==ZLIB_FILEFUNC_MODE_READ)
|
|
101
87
|
mode_fopen = "rb";
|
|
102
88
|
else
|
|
@@ -111,11 +97,10 @@ static voidpf ZCALLBACK fopen_file_func (voidpf opaque, const char* filename, in
|
|
|
111
97
|
return file;
|
|
112
98
|
}
|
|
113
99
|
|
|
114
|
-
static voidpf ZCALLBACK fopen64_file_func
|
|
115
|
-
{
|
|
100
|
+
static voidpf ZCALLBACK fopen64_file_func(voidpf opaque, const void* filename, int mode) {
|
|
116
101
|
FILE* file = NULL;
|
|
117
102
|
const char* mode_fopen = NULL;
|
|
118
|
-
(void)
|
|
103
|
+
(void)opaque;
|
|
119
104
|
if ((mode & ZLIB_FILEFUNC_MODE_READWRITEFILTER)==ZLIB_FILEFUNC_MODE_READ)
|
|
120
105
|
mode_fopen = "rb";
|
|
121
106
|
else
|
|
@@ -131,44 +116,39 @@ static voidpf ZCALLBACK fopen64_file_func (voidpf opaque, const void* filename,
|
|
|
131
116
|
}
|
|
132
117
|
|
|
133
118
|
|
|
134
|
-
static uLong ZCALLBACK fread_file_func
|
|
135
|
-
{
|
|
119
|
+
static uLong ZCALLBACK fread_file_func(voidpf opaque, voidpf stream, void* buf, uLong size) {
|
|
136
120
|
uLong ret;
|
|
137
|
-
(void)
|
|
121
|
+
(void)opaque;
|
|
138
122
|
ret = (uLong)fread(buf, 1, (size_t)size, (FILE *)stream);
|
|
139
123
|
return ret;
|
|
140
124
|
}
|
|
141
125
|
|
|
142
|
-
static uLong ZCALLBACK fwrite_file_func
|
|
143
|
-
{
|
|
126
|
+
static uLong ZCALLBACK fwrite_file_func(voidpf opaque, voidpf stream, const void* buf, uLong size) {
|
|
144
127
|
uLong ret;
|
|
145
|
-
(void)
|
|
128
|
+
(void)opaque;
|
|
146
129
|
ret = (uLong)fwrite(buf, 1, (size_t)size, (FILE *)stream);
|
|
147
130
|
return ret;
|
|
148
131
|
}
|
|
149
132
|
|
|
150
|
-
static long ZCALLBACK ftell_file_func
|
|
151
|
-
{
|
|
133
|
+
static long ZCALLBACK ftell_file_func(voidpf opaque, voidpf stream) {
|
|
152
134
|
long ret;
|
|
153
|
-
(void)
|
|
135
|
+
(void)opaque;
|
|
154
136
|
ret = ftell((FILE *)stream);
|
|
155
137
|
return ret;
|
|
156
138
|
}
|
|
157
139
|
|
|
158
140
|
|
|
159
|
-
static ZPOS64_T ZCALLBACK ftell64_file_func
|
|
160
|
-
{
|
|
141
|
+
static ZPOS64_T ZCALLBACK ftell64_file_func(voidpf opaque, voidpf stream) {
|
|
161
142
|
ZPOS64_T ret;
|
|
162
|
-
(void)
|
|
163
|
-
ret = FTELLO_FUNC((FILE *)stream);
|
|
143
|
+
(void)opaque;
|
|
144
|
+
ret = (ZPOS64_T)FTELLO_FUNC((FILE *)stream);
|
|
164
145
|
return ret;
|
|
165
146
|
}
|
|
166
147
|
|
|
167
|
-
static long ZCALLBACK fseek_file_func
|
|
168
|
-
{
|
|
148
|
+
static long ZCALLBACK fseek_file_func(voidpf opaque, voidpf stream, uLong offset, int origin) {
|
|
169
149
|
int fseek_origin=0;
|
|
170
150
|
long ret;
|
|
171
|
-
(void)
|
|
151
|
+
(void)opaque;
|
|
172
152
|
switch (origin)
|
|
173
153
|
{
|
|
174
154
|
case ZLIB_FILEFUNC_SEEK_CUR :
|
|
@@ -183,16 +163,15 @@ static long ZCALLBACK fseek_file_func (voidpf opaque, voidpf stream, uLong offs
|
|
|
183
163
|
default: return -1;
|
|
184
164
|
}
|
|
185
165
|
ret = 0;
|
|
186
|
-
if (fseek((FILE *)stream, offset, fseek_origin) != 0)
|
|
166
|
+
if (fseek((FILE *)stream, (long)offset, fseek_origin) != 0)
|
|
187
167
|
ret = -1;
|
|
188
168
|
return ret;
|
|
189
169
|
}
|
|
190
170
|
|
|
191
|
-
static long ZCALLBACK fseek64_file_func
|
|
192
|
-
{
|
|
171
|
+
static long ZCALLBACK fseek64_file_func(voidpf opaque, voidpf stream, ZPOS64_T offset, int origin) {
|
|
193
172
|
int fseek_origin=0;
|
|
194
173
|
long ret;
|
|
195
|
-
(void)
|
|
174
|
+
(void)opaque;
|
|
196
175
|
switch (origin)
|
|
197
176
|
{
|
|
198
177
|
case ZLIB_FILEFUNC_SEEK_CUR :
|
|
@@ -208,32 +187,28 @@ static long ZCALLBACK fseek64_file_func (voidpf opaque, voidpf stream, ZPOS64_T
|
|
|
208
187
|
}
|
|
209
188
|
ret = 0;
|
|
210
189
|
|
|
211
|
-
if(FSEEKO_FUNC((FILE *)stream, offset, fseek_origin) != 0)
|
|
190
|
+
if(FSEEKO_FUNC((FILE *)stream, (z_off64_t)offset, fseek_origin) != 0)
|
|
212
191
|
ret = -1;
|
|
213
192
|
|
|
214
193
|
return ret;
|
|
215
194
|
}
|
|
216
195
|
|
|
217
196
|
|
|
218
|
-
static int ZCALLBACK fclose_file_func
|
|
219
|
-
{
|
|
197
|
+
static int ZCALLBACK fclose_file_func(voidpf opaque, voidpf stream) {
|
|
220
198
|
int ret;
|
|
221
|
-
(void)
|
|
199
|
+
(void)opaque;
|
|
222
200
|
ret = fclose((FILE *)stream);
|
|
223
201
|
return ret;
|
|
224
202
|
}
|
|
225
203
|
|
|
226
|
-
static int ZCALLBACK ferror_file_func
|
|
227
|
-
{
|
|
204
|
+
static int ZCALLBACK ferror_file_func(voidpf opaque, voidpf stream) {
|
|
228
205
|
int ret;
|
|
229
|
-
(void)
|
|
206
|
+
(void)opaque;
|
|
230
207
|
ret = ferror((FILE *)stream);
|
|
231
208
|
return ret;
|
|
232
209
|
}
|
|
233
210
|
|
|
234
|
-
void fill_fopen_filefunc
|
|
235
|
-
zlib_filefunc_def* pzlib_filefunc_def;
|
|
236
|
-
{
|
|
211
|
+
void fill_fopen_filefunc(zlib_filefunc_def* pzlib_filefunc_def) {
|
|
237
212
|
pzlib_filefunc_def->zopen_file = fopen_file_func;
|
|
238
213
|
pzlib_filefunc_def->zread_file = fread_file_func;
|
|
239
214
|
pzlib_filefunc_def->zwrite_file = fwrite_file_func;
|
|
@@ -244,8 +219,7 @@ void fill_fopen_filefunc (pzlib_filefunc_def)
|
|
|
244
219
|
pzlib_filefunc_def->opaque = NULL;
|
|
245
220
|
}
|
|
246
221
|
|
|
247
|
-
void fill_fopen64_filefunc
|
|
248
|
-
{
|
|
222
|
+
void fill_fopen64_filefunc(zlib_filefunc64_def* pzlib_filefunc_def) {
|
|
249
223
|
pzlib_filefunc_def->zopen64_file = fopen64_file_func;
|
|
250
224
|
pzlib_filefunc_def->zread_file = fread_file_func;
|
|
251
225
|
pzlib_filefunc_def->zwrite_file = fwrite_file_func;
|
|
@@ -18,6 +18,12 @@
|
|
|
18
18
|
|
|
19
19
|
*/
|
|
20
20
|
|
|
21
|
+
|
|
22
|
+
/* Pragma added by libxlsxwriter to avoid warnings with -pedantic -ansi. */
|
|
23
|
+
#ifndef _WIN32
|
|
24
|
+
#pragma GCC system_header
|
|
25
|
+
#endif
|
|
26
|
+
|
|
21
27
|
#ifndef _ZLIBIOAPI64_H
|
|
22
28
|
#define _ZLIBIOAPI64_H
|
|
23
29
|
|
|
@@ -50,7 +56,7 @@
|
|
|
50
56
|
#define ftello64 ftell
|
|
51
57
|
#define fseeko64 fseek
|
|
52
58
|
#else
|
|
53
|
-
#if defined(__FreeBSD__) || defined(__OpenBSD__)
|
|
59
|
+
#if defined(__FreeBSD__) || defined(__OpenBSD__) || defined(__NetBSD__) || defined(__HAIKU__) || defined(MINIZIP_FOPEN_NO_64)
|
|
54
60
|
#define fopen64 fopen
|
|
55
61
|
#define ftello64 ftello
|
|
56
62
|
#define fseeko64 fseeko
|
|
@@ -82,7 +88,7 @@
|
|
|
82
88
|
#include "mz64conf.h"
|
|
83
89
|
#endif
|
|
84
90
|
|
|
85
|
-
/* a type
|
|
91
|
+
/* a type chosen by DEFINE */
|
|
86
92
|
#ifdef HAVE_64BIT_INT_CUSTOM
|
|
87
93
|
typedef 64BIT_INT_CUSTOM_TYPE ZPOS64_T;
|
|
88
94
|
#else
|
|
@@ -91,8 +97,7 @@ typedef 64BIT_INT_CUSTOM_TYPE ZPOS64_T;
|
|
|
91
97
|
typedef uint64_t ZPOS64_T;
|
|
92
98
|
#else
|
|
93
99
|
|
|
94
|
-
|
|
95
|
-
#define MAXU32 0xffffffff
|
|
100
|
+
|
|
96
101
|
|
|
97
102
|
#if defined(_MSC_VER) || defined(__BORLANDC__)
|
|
98
103
|
typedef unsigned __int64 ZPOS64_T;
|
|
@@ -102,7 +107,10 @@ typedef unsigned long long int ZPOS64_T;
|
|
|
102
107
|
#endif
|
|
103
108
|
#endif
|
|
104
109
|
|
|
105
|
-
|
|
110
|
+
/* Maximum unsigned 32-bit value used as placeholder for zip64 */
|
|
111
|
+
#ifndef MAXU32
|
|
112
|
+
#define MAXU32 (0xffffffff)
|
|
113
|
+
#endif
|
|
106
114
|
|
|
107
115
|
#ifdef __cplusplus
|
|
108
116
|
extern "C" {
|
|
@@ -132,14 +140,14 @@ extern "C" {
|
|
|
132
140
|
|
|
133
141
|
|
|
134
142
|
|
|
135
|
-
typedef voidpf (ZCALLBACK *open_file_func)
|
|
136
|
-
typedef uLong (ZCALLBACK *read_file_func)
|
|
137
|
-
typedef uLong (ZCALLBACK *write_file_func)
|
|
138
|
-
typedef int (ZCALLBACK *close_file_func)
|
|
139
|
-
typedef int (ZCALLBACK *testerror_file_func)
|
|
143
|
+
typedef voidpf (ZCALLBACK *open_file_func) (voidpf opaque, const char* filename, int mode);
|
|
144
|
+
typedef uLong (ZCALLBACK *read_file_func) (voidpf opaque, voidpf stream, void* buf, uLong size);
|
|
145
|
+
typedef uLong (ZCALLBACK *write_file_func) (voidpf opaque, voidpf stream, const void* buf, uLong size);
|
|
146
|
+
typedef int (ZCALLBACK *close_file_func) (voidpf opaque, voidpf stream);
|
|
147
|
+
typedef int (ZCALLBACK *testerror_file_func) (voidpf opaque, voidpf stream);
|
|
140
148
|
|
|
141
|
-
typedef long (ZCALLBACK *tell_file_func)
|
|
142
|
-
typedef long (ZCALLBACK *seek_file_func)
|
|
149
|
+
typedef long (ZCALLBACK *tell_file_func) (voidpf opaque, voidpf stream);
|
|
150
|
+
typedef long (ZCALLBACK *seek_file_func) (voidpf opaque, voidpf stream, uLong offset, int origin);
|
|
143
151
|
|
|
144
152
|
|
|
145
153
|
/* here is the "old" 32 bits structure structure */
|
|
@@ -155,9 +163,9 @@ typedef struct zlib_filefunc_def_s
|
|
|
155
163
|
voidpf opaque;
|
|
156
164
|
} zlib_filefunc_def;
|
|
157
165
|
|
|
158
|
-
typedef ZPOS64_T (ZCALLBACK *tell64_file_func)
|
|
159
|
-
typedef long (ZCALLBACK *seek64_file_func)
|
|
160
|
-
typedef voidpf (ZCALLBACK *open64_file_func)
|
|
166
|
+
typedef ZPOS64_T (ZCALLBACK *tell64_file_func) (voidpf opaque, voidpf stream);
|
|
167
|
+
typedef long (ZCALLBACK *seek64_file_func) (voidpf opaque, voidpf stream, ZPOS64_T offset, int origin);
|
|
168
|
+
typedef voidpf (ZCALLBACK *open64_file_func) (voidpf opaque, const void* filename, int mode);
|
|
161
169
|
|
|
162
170
|
typedef struct zlib_filefunc64_def_s
|
|
163
171
|
{
|
|
@@ -171,8 +179,8 @@ typedef struct zlib_filefunc64_def_s
|
|
|
171
179
|
voidpf opaque;
|
|
172
180
|
} zlib_filefunc64_def;
|
|
173
181
|
|
|
174
|
-
void fill_fopen64_filefunc
|
|
175
|
-
void fill_fopen_filefunc
|
|
182
|
+
void fill_fopen64_filefunc(zlib_filefunc64_def* pzlib_filefunc_def);
|
|
183
|
+
void fill_fopen_filefunc(zlib_filefunc_def* pzlib_filefunc_def);
|
|
176
184
|
|
|
177
185
|
/* now internal definition, only for zip.c and unzip.h */
|
|
178
186
|
typedef struct zlib_filefunc64_32_def_s
|
|
@@ -186,16 +194,16 @@ typedef struct zlib_filefunc64_32_def_s
|
|
|
186
194
|
|
|
187
195
|
#define ZREAD64(filefunc,filestream,buf,size) ((*((filefunc).zfile_func64.zread_file)) ((filefunc).zfile_func64.opaque,filestream,buf,size))
|
|
188
196
|
#define ZWRITE64(filefunc,filestream,buf,size) ((*((filefunc).zfile_func64.zwrite_file)) ((filefunc).zfile_func64.opaque,filestream,buf,size))
|
|
189
|
-
|
|
190
|
-
|
|
197
|
+
//#define ZTELL64(filefunc,filestream) ((*((filefunc).ztell64_file)) ((filefunc).opaque,filestream))
|
|
198
|
+
//#define ZSEEK64(filefunc,filestream,pos,mode) ((*((filefunc).zseek64_file)) ((filefunc).opaque,filestream,pos,mode))
|
|
191
199
|
#define ZCLOSE64(filefunc,filestream) ((*((filefunc).zfile_func64.zclose_file)) ((filefunc).zfile_func64.opaque,filestream))
|
|
192
200
|
#define ZERROR64(filefunc,filestream) ((*((filefunc).zfile_func64.zerror_file)) ((filefunc).zfile_func64.opaque,filestream))
|
|
193
201
|
|
|
194
|
-
voidpf call_zopen64
|
|
195
|
-
long
|
|
196
|
-
ZPOS64_T call_ztell64
|
|
202
|
+
voidpf call_zopen64(const zlib_filefunc64_32_def* pfilefunc,const void*filename,int mode);
|
|
203
|
+
long call_zseek64(const zlib_filefunc64_32_def* pfilefunc,voidpf filestream, ZPOS64_T offset, int origin);
|
|
204
|
+
ZPOS64_T call_ztell64(const zlib_filefunc64_32_def* pfilefunc,voidpf filestream);
|
|
197
205
|
|
|
198
|
-
void
|
|
206
|
+
void fill_zlib_filefunc64_32_def_from_filefunc32(zlib_filefunc64_32_def* p_filefunc64_32,const zlib_filefunc_def* p_filefunc32);
|
|
199
207
|
|
|
200
208
|
#define ZOPEN64(filefunc,filename,mode) (call_zopen64((&(filefunc)),(filename),(mode)))
|
|
201
209
|
#define ZTELL64(filefunc,filestream) (call_ztell64((&(filefunc)),(filestream)))
|
|
@@ -26,14 +26,17 @@
|
|
|
26
26
|
#endif
|
|
27
27
|
|
|
28
28
|
|
|
29
|
+
// see Include/shared/winapifamily.h in the Windows Kit
|
|
30
|
+
#if defined(WINAPI_FAMILY_PARTITION) && (!(defined(IOWIN32_USING_WINRT_API)))
|
|
29
31
|
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
32
|
+
#if !defined(WINAPI_FAMILY_ONE_PARTITION)
|
|
33
|
+
#define WINAPI_FAMILY_ONE_PARTITION(PartitionSet, Partition) ((WINAPI_FAMILY & PartitionSet) == Partition)
|
|
34
|
+
#endif
|
|
35
|
+
|
|
36
|
+
#if WINAPI_FAMILY_ONE_PARTITION(WINAPI_FAMILY, WINAPI_PARTITION_APP)
|
|
37
|
+
#define IOWIN32_USING_WINRT_API 1
|
|
38
|
+
#endif
|
|
39
|
+
#endif
|
|
37
40
|
|
|
38
41
|
typedef struct
|
|
39
42
|
{
|
|
@@ -46,8 +49,7 @@ static void win32_translate_open_mode(int mode,
|
|
|
46
49
|
DWORD* lpdwDesiredAccess,
|
|
47
50
|
DWORD* lpdwCreationDisposition,
|
|
48
51
|
DWORD* lpdwShareMode,
|
|
49
|
-
DWORD* lpdwFlagsAndAttributes)
|
|
50
|
-
{
|
|
52
|
+
DWORD* lpdwFlagsAndAttributes) {
|
|
51
53
|
*lpdwDesiredAccess = *lpdwShareMode = *lpdwFlagsAndAttributes = *lpdwCreationDisposition = 0;
|
|
52
54
|
|
|
53
55
|
if ((mode & ZLIB_FILEFUNC_MODE_READWRITEFILTER)==ZLIB_FILEFUNC_MODE_READ)
|
|
@@ -68,8 +70,7 @@ static void win32_translate_open_mode(int mode,
|
|
|
68
70
|
}
|
|
69
71
|
}
|
|
70
72
|
|
|
71
|
-
static voidpf win32_build_iowin(HANDLE hFile)
|
|
72
|
-
{
|
|
73
|
+
static voidpf win32_build_iowin(HANDLE hFile) {
|
|
73
74
|
voidpf ret=NULL;
|
|
74
75
|
|
|
75
76
|
if ((hFile != NULL) && (hFile != INVALID_HANDLE_VALUE))
|
|
@@ -87,8 +88,7 @@ static voidpf win32_build_iowin(HANDLE hFile)
|
|
|
87
88
|
return ret;
|
|
88
89
|
}
|
|
89
90
|
|
|
90
|
-
voidpf ZCALLBACK win32_open64_file_func
|
|
91
|
-
{
|
|
91
|
+
voidpf ZCALLBACK win32_open64_file_func(voidpf opaque, const void* filename, int mode) {
|
|
92
92
|
const char* mode_fopen = NULL;
|
|
93
93
|
DWORD dwDesiredAccess,dwCreationDisposition,dwShareMode,dwFlagsAndAttributes ;
|
|
94
94
|
HANDLE hFile = NULL;
|
|
@@ -116,8 +116,7 @@ voidpf ZCALLBACK win32_open64_file_func (voidpf opaque,const void* filename,int
|
|
|
116
116
|
}
|
|
117
117
|
|
|
118
118
|
|
|
119
|
-
voidpf ZCALLBACK win32_open64_file_funcA
|
|
120
|
-
{
|
|
119
|
+
voidpf ZCALLBACK win32_open64_file_funcA(voidpf opaque, const void* filename, int mode) {
|
|
121
120
|
const char* mode_fopen = NULL;
|
|
122
121
|
DWORD dwDesiredAccess,dwCreationDisposition,dwShareMode,dwFlagsAndAttributes ;
|
|
123
122
|
HANDLE hFile = NULL;
|
|
@@ -140,8 +139,7 @@ voidpf ZCALLBACK win32_open64_file_funcA (voidpf opaque,const void* filename,int
|
|
|
140
139
|
}
|
|
141
140
|
|
|
142
141
|
|
|
143
|
-
voidpf ZCALLBACK win32_open64_file_funcW
|
|
144
|
-
{
|
|
142
|
+
voidpf ZCALLBACK win32_open64_file_funcW(voidpf opaque, const void* filename, int mode) {
|
|
145
143
|
const char* mode_fopen = NULL;
|
|
146
144
|
DWORD dwDesiredAccess,dwCreationDisposition,dwShareMode,dwFlagsAndAttributes ;
|
|
147
145
|
HANDLE hFile = NULL;
|
|
@@ -160,8 +158,7 @@ voidpf ZCALLBACK win32_open64_file_funcW (voidpf opaque,const void* filename,int
|
|
|
160
158
|
}
|
|
161
159
|
|
|
162
160
|
|
|
163
|
-
voidpf ZCALLBACK win32_open_file_func
|
|
164
|
-
{
|
|
161
|
+
voidpf ZCALLBACK win32_open_file_func(voidpf opaque, const char* filename, int mode) {
|
|
165
162
|
const char* mode_fopen = NULL;
|
|
166
163
|
DWORD dwDesiredAccess,dwCreationDisposition,dwShareMode,dwFlagsAndAttributes ;
|
|
167
164
|
HANDLE hFile = NULL;
|
|
@@ -189,8 +186,7 @@ voidpf ZCALLBACK win32_open_file_func (voidpf opaque,const char* filename,int mo
|
|
|
189
186
|
}
|
|
190
187
|
|
|
191
188
|
|
|
192
|
-
uLong ZCALLBACK win32_read_file_func
|
|
193
|
-
{
|
|
189
|
+
uLong ZCALLBACK win32_read_file_func(voidpf opaque, voidpf stream, void* buf,uLong size) {
|
|
194
190
|
uLong ret=0;
|
|
195
191
|
HANDLE hFile = NULL;
|
|
196
192
|
if (stream!=NULL)
|
|
@@ -211,8 +207,7 @@ uLong ZCALLBACK win32_read_file_func (voidpf opaque, voidpf stream, void* buf,uL
|
|
|
211
207
|
}
|
|
212
208
|
|
|
213
209
|
|
|
214
|
-
uLong ZCALLBACK win32_write_file_func
|
|
215
|
-
{
|
|
210
|
+
uLong ZCALLBACK win32_write_file_func(voidpf opaque, voidpf stream, const void* buf, uLong size) {
|
|
216
211
|
uLong ret=0;
|
|
217
212
|
HANDLE hFile = NULL;
|
|
218
213
|
if (stream!=NULL)
|
|
@@ -232,8 +227,7 @@ uLong ZCALLBACK win32_write_file_func (voidpf opaque,voidpf stream,const void* b
|
|
|
232
227
|
return ret;
|
|
233
228
|
}
|
|
234
229
|
|
|
235
|
-
static BOOL MySetFilePointerEx(HANDLE hFile, LARGE_INTEGER pos, LARGE_INTEGER *newPos,
|
|
236
|
-
{
|
|
230
|
+
static BOOL MySetFilePointerEx(HANDLE hFile, LARGE_INTEGER pos, LARGE_INTEGER *newPos, DWORD dwMoveMethod) {
|
|
237
231
|
#ifdef IOWIN32_USING_WINRT_API
|
|
238
232
|
return SetFilePointerEx(hFile, pos, newPos, dwMoveMethod);
|
|
239
233
|
#else
|
|
@@ -252,8 +246,7 @@ static BOOL MySetFilePointerEx(HANDLE hFile, LARGE_INTEGER pos, LARGE_INTEGER *n
|
|
|
252
246
|
#endif
|
|
253
247
|
}
|
|
254
248
|
|
|
255
|
-
long ZCALLBACK win32_tell_file_func
|
|
256
|
-
{
|
|
249
|
+
long ZCALLBACK win32_tell_file_func(voidpf opaque, voidpf stream) {
|
|
257
250
|
long ret=-1;
|
|
258
251
|
HANDLE hFile = NULL;
|
|
259
252
|
if (stream!=NULL)
|
|
@@ -275,8 +268,7 @@ long ZCALLBACK win32_tell_file_func (voidpf opaque,voidpf stream)
|
|
|
275
268
|
return ret;
|
|
276
269
|
}
|
|
277
270
|
|
|
278
|
-
ZPOS64_T ZCALLBACK win32_tell64_file_func
|
|
279
|
-
{
|
|
271
|
+
ZPOS64_T ZCALLBACK win32_tell64_file_func(voidpf opaque, voidpf stream) {
|
|
280
272
|
ZPOS64_T ret= (ZPOS64_T)-1;
|
|
281
273
|
HANDLE hFile = NULL;
|
|
282
274
|
if (stream!=NULL)
|
|
@@ -300,8 +292,7 @@ ZPOS64_T ZCALLBACK win32_tell64_file_func (voidpf opaque, voidpf stream)
|
|
|
300
292
|
}
|
|
301
293
|
|
|
302
294
|
|
|
303
|
-
long ZCALLBACK win32_seek_file_func
|
|
304
|
-
{
|
|
295
|
+
long ZCALLBACK win32_seek_file_func(voidpf opaque, voidpf stream, uLong offset, int origin) {
|
|
305
296
|
DWORD dwMoveMethod=0xFFFFFFFF;
|
|
306
297
|
HANDLE hFile = NULL;
|
|
307
298
|
|
|
@@ -338,8 +329,7 @@ long ZCALLBACK win32_seek_file_func (voidpf opaque,voidpf stream,uLong offset,in
|
|
|
338
329
|
return ret;
|
|
339
330
|
}
|
|
340
331
|
|
|
341
|
-
long ZCALLBACK win32_seek64_file_func
|
|
342
|
-
{
|
|
332
|
+
long ZCALLBACK win32_seek64_file_func(voidpf opaque, voidpf stream, ZPOS64_T offset, int origin) {
|
|
343
333
|
DWORD dwMoveMethod=0xFFFFFFFF;
|
|
344
334
|
HANDLE hFile = NULL;
|
|
345
335
|
long ret=-1;
|
|
@@ -377,8 +367,7 @@ long ZCALLBACK win32_seek64_file_func (voidpf opaque, voidpf stream,ZPOS64_T off
|
|
|
377
367
|
return ret;
|
|
378
368
|
}
|
|
379
369
|
|
|
380
|
-
int ZCALLBACK win32_close_file_func
|
|
381
|
-
{
|
|
370
|
+
int ZCALLBACK win32_close_file_func(voidpf opaque, voidpf stream) {
|
|
382
371
|
int ret=-1;
|
|
383
372
|
|
|
384
373
|
if (stream!=NULL)
|
|
@@ -395,8 +384,7 @@ int ZCALLBACK win32_close_file_func (voidpf opaque, voidpf stream)
|
|
|
395
384
|
return ret;
|
|
396
385
|
}
|
|
397
386
|
|
|
398
|
-
int ZCALLBACK win32_error_file_func
|
|
399
|
-
{
|
|
387
|
+
int ZCALLBACK win32_error_file_func(voidpf opaque, voidpf stream) {
|
|
400
388
|
int ret=-1;
|
|
401
389
|
if (stream!=NULL)
|
|
402
390
|
{
|
|
@@ -405,8 +393,7 @@ int ZCALLBACK win32_error_file_func (voidpf opaque,voidpf stream)
|
|
|
405
393
|
return ret;
|
|
406
394
|
}
|
|
407
395
|
|
|
408
|
-
void fill_win32_filefunc
|
|
409
|
-
{
|
|
396
|
+
void fill_win32_filefunc(zlib_filefunc_def* pzlib_filefunc_def) {
|
|
410
397
|
pzlib_filefunc_def->zopen_file = win32_open_file_func;
|
|
411
398
|
pzlib_filefunc_def->zread_file = win32_read_file_func;
|
|
412
399
|
pzlib_filefunc_def->zwrite_file = win32_write_file_func;
|
|
@@ -417,8 +404,7 @@ void fill_win32_filefunc (zlib_filefunc_def* pzlib_filefunc_def)
|
|
|
417
404
|
pzlib_filefunc_def->opaque = NULL;
|
|
418
405
|
}
|
|
419
406
|
|
|
420
|
-
void fill_win32_filefunc64(zlib_filefunc64_def* pzlib_filefunc_def)
|
|
421
|
-
{
|
|
407
|
+
void fill_win32_filefunc64(zlib_filefunc64_def* pzlib_filefunc_def) {
|
|
422
408
|
pzlib_filefunc_def->zopen64_file = win32_open64_file_func;
|
|
423
409
|
pzlib_filefunc_def->zread_file = win32_read_file_func;
|
|
424
410
|
pzlib_filefunc_def->zwrite_file = win32_write_file_func;
|
|
@@ -430,8 +416,7 @@ void fill_win32_filefunc64(zlib_filefunc64_def* pzlib_filefunc_def)
|
|
|
430
416
|
}
|
|
431
417
|
|
|
432
418
|
|
|
433
|
-
void fill_win32_filefunc64A(zlib_filefunc64_def* pzlib_filefunc_def)
|
|
434
|
-
{
|
|
419
|
+
void fill_win32_filefunc64A(zlib_filefunc64_def* pzlib_filefunc_def) {
|
|
435
420
|
pzlib_filefunc_def->zopen64_file = win32_open64_file_funcA;
|
|
436
421
|
pzlib_filefunc_def->zread_file = win32_read_file_func;
|
|
437
422
|
pzlib_filefunc_def->zwrite_file = win32_write_file_func;
|
|
@@ -443,8 +428,7 @@ void fill_win32_filefunc64A(zlib_filefunc64_def* pzlib_filefunc_def)
|
|
|
443
428
|
}
|
|
444
429
|
|
|
445
430
|
|
|
446
|
-
void fill_win32_filefunc64W(zlib_filefunc64_def* pzlib_filefunc_def)
|
|
447
|
-
{
|
|
431
|
+
void fill_win32_filefunc64W(zlib_filefunc64_def* pzlib_filefunc_def) {
|
|
448
432
|
pzlib_filefunc_def->zopen64_file = win32_open64_file_funcW;
|
|
449
433
|
pzlib_filefunc_def->zread_file = win32_read_file_func;
|
|
450
434
|
pzlib_filefunc_def->zwrite_file = win32_write_file_func;
|
|
@@ -18,10 +18,10 @@
|
|
|
18
18
|
extern "C" {
|
|
19
19
|
#endif
|
|
20
20
|
|
|
21
|
-
void fill_win32_filefunc
|
|
22
|
-
void fill_win32_filefunc64
|
|
23
|
-
void fill_win32_filefunc64A
|
|
24
|
-
void fill_win32_filefunc64W
|
|
21
|
+
void fill_win32_filefunc(zlib_filefunc_def* pzlib_filefunc_def);
|
|
22
|
+
void fill_win32_filefunc64(zlib_filefunc64_def* pzlib_filefunc_def);
|
|
23
|
+
void fill_win32_filefunc64A(zlib_filefunc64_def* pzlib_filefunc_def);
|
|
24
|
+
void fill_win32_filefunc64W(zlib_filefunc64_def* pzlib_filefunc_def);
|
|
25
25
|
|
|
26
26
|
#ifdef __cplusplus
|
|
27
27
|
}
|