fast_excel 0.4.1 → 0.5.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (117) hide show
  1. checksums.yaml +4 -4
  2. data/.github/workflows/test.yml +1 -7
  3. data/CHANGELOG.md +9 -0
  4. data/Gemfile +1 -1
  5. data/examples/example.rb +2 -0
  6. data/examples/example_date_time.rb +38 -0
  7. data/fast_excel.gemspec +2 -2
  8. data/lib/fast_excel/binding/format.rb +17 -0
  9. data/lib/fast_excel/binding/workbook.rb +39 -17
  10. data/lib/fast_excel/binding/worksheet.rb +57 -13
  11. data/lib/fast_excel/binding.rb +7 -7
  12. data/lib/fast_excel.rb +27 -20
  13. data/libxlsxwriter/.github/FUNDING.yml +1 -0
  14. data/libxlsxwriter/.github/ISSUE_TEMPLATE.md +85 -0
  15. data/libxlsxwriter/.github/PULL_REQUEST_TEMPLATE.md +130 -0
  16. data/libxlsxwriter/.github/workflows/cmake_actions.yml +48 -0
  17. data/libxlsxwriter/.github/workflows/code_style.yml +23 -0
  18. data/libxlsxwriter/.github/workflows/coverity.yml +22 -0
  19. data/libxlsxwriter/.github/workflows/make_actions.yml +52 -0
  20. data/libxlsxwriter/.github/workflows/valgrind.yml +23 -0
  21. data/libxlsxwriter/.github/workflows/windows_build.yml +54 -0
  22. data/libxlsxwriter/.github/workflows/zig_build.yml +22 -0
  23. data/libxlsxwriter/.gitignore +16 -1
  24. data/libxlsxwriter/.indent.pro +24 -0
  25. data/libxlsxwriter/CMakeLists.txt +156 -56
  26. data/libxlsxwriter/CONTRIBUTING.md +2 -2
  27. data/libxlsxwriter/Changes.txt +344 -2
  28. data/libxlsxwriter/LICENSE.txt +66 -8
  29. data/libxlsxwriter/Makefile +151 -54
  30. data/libxlsxwriter/Package.swift +42 -0
  31. data/libxlsxwriter/Readme.md +4 -2
  32. data/libxlsxwriter/build.zig +324 -0
  33. data/libxlsxwriter/build.zig.zon +11 -0
  34. data/libxlsxwriter/cmake/FindMINIZIP.cmake +3 -3
  35. data/libxlsxwriter/cocoapods/libxlsxwriter-umbrella.h +6 -0
  36. data/libxlsxwriter/include/xlsxwriter/app.h +2 -1
  37. data/libxlsxwriter/include/xlsxwriter/chart.h +236 -32
  38. data/libxlsxwriter/include/xlsxwriter/chartsheet.h +7 -7
  39. data/libxlsxwriter/include/xlsxwriter/comment.h +76 -0
  40. data/libxlsxwriter/include/xlsxwriter/common.h +111 -50
  41. data/libxlsxwriter/include/xlsxwriter/content_types.h +8 -1
  42. data/libxlsxwriter/include/xlsxwriter/core.h +1 -1
  43. data/libxlsxwriter/include/xlsxwriter/custom.h +1 -1
  44. data/libxlsxwriter/include/xlsxwriter/drawing.h +11 -20
  45. data/libxlsxwriter/include/xlsxwriter/format.h +121 -8
  46. data/libxlsxwriter/include/xlsxwriter/hash_table.h +1 -1
  47. data/libxlsxwriter/include/xlsxwriter/metadata.h +49 -0
  48. data/libxlsxwriter/include/xlsxwriter/packager.h +27 -16
  49. data/libxlsxwriter/include/xlsxwriter/relationships.h +1 -1
  50. data/libxlsxwriter/include/xlsxwriter/shared_strings.h +1 -1
  51. data/libxlsxwriter/include/xlsxwriter/styles.h +13 -7
  52. data/libxlsxwriter/include/xlsxwriter/table.h +51 -0
  53. data/libxlsxwriter/include/xlsxwriter/theme.h +1 -1
  54. data/libxlsxwriter/include/xlsxwriter/third_party/emyg_dtoa.h +26 -0
  55. data/libxlsxwriter/include/xlsxwriter/third_party/ioapi.h +27 -25
  56. data/libxlsxwriter/include/xlsxwriter/third_party/md5.h +45 -0
  57. data/libxlsxwriter/include/xlsxwriter/third_party/zip.h +155 -153
  58. data/libxlsxwriter/include/xlsxwriter/utility.h +70 -8
  59. data/libxlsxwriter/include/xlsxwriter/vml.h +55 -0
  60. data/libxlsxwriter/include/xlsxwriter/workbook.h +218 -47
  61. data/libxlsxwriter/include/xlsxwriter/worksheet.h +2770 -241
  62. data/libxlsxwriter/include/xlsxwriter/xmlwriter.h +12 -8
  63. data/libxlsxwriter/include/xlsxwriter.h +4 -2
  64. data/libxlsxwriter/libxlsxwriter.podspec +8 -5
  65. data/libxlsxwriter/src/Makefile +58 -21
  66. data/libxlsxwriter/src/app.c +5 -2
  67. data/libxlsxwriter/src/chart.c +396 -81
  68. data/libxlsxwriter/src/chartsheet.c +22 -22
  69. data/libxlsxwriter/src/comment.c +443 -0
  70. data/libxlsxwriter/src/content_types.c +40 -1
  71. data/libxlsxwriter/src/core.c +2 -2
  72. data/libxlsxwriter/src/custom.c +1 -1
  73. data/libxlsxwriter/src/drawing.c +160 -40
  74. data/libxlsxwriter/src/format.c +109 -25
  75. data/libxlsxwriter/src/hash_table.c +1 -1
  76. data/libxlsxwriter/src/metadata.c +283 -0
  77. data/libxlsxwriter/src/packager.c +794 -94
  78. data/libxlsxwriter/src/relationships.c +1 -1
  79. data/libxlsxwriter/src/shared_strings.c +2 -4
  80. data/libxlsxwriter/src/styles.c +353 -58
  81. data/libxlsxwriter/src/table.c +304 -0
  82. data/libxlsxwriter/src/theme.c +1 -1
  83. data/libxlsxwriter/src/utility.c +143 -43
  84. data/libxlsxwriter/src/vml.c +1062 -0
  85. data/libxlsxwriter/src/workbook.c +567 -77
  86. data/libxlsxwriter/src/worksheet.c +6668 -1462
  87. data/libxlsxwriter/src/xmlwriter.c +95 -5
  88. data/libxlsxwriter/third_party/dtoa/Makefile +42 -0
  89. data/libxlsxwriter/third_party/dtoa/emyg_dtoa.c +461 -0
  90. data/libxlsxwriter/third_party/dtoa/emyg_dtoa.h +26 -0
  91. data/libxlsxwriter/third_party/md5/Makefile +42 -0
  92. data/libxlsxwriter/third_party/md5/md5.c +291 -0
  93. data/libxlsxwriter/third_party/md5/md5.h +45 -0
  94. data/libxlsxwriter/third_party/minizip/Makefile +3 -8
  95. data/libxlsxwriter/third_party/minizip/Makefile.orig +8 -4
  96. data/libxlsxwriter/third_party/minizip/MiniZip64_Changes.txt +1 -1
  97. data/libxlsxwriter/third_party/minizip/configure.ac +1 -1
  98. data/libxlsxwriter/third_party/minizip/crypt.h +13 -16
  99. data/libxlsxwriter/third_party/minizip/ioapi.c +31 -57
  100. data/libxlsxwriter/third_party/minizip/ioapi.h +31 -23
  101. data/libxlsxwriter/third_party/minizip/iowin32.c +29 -45
  102. data/libxlsxwriter/third_party/minizip/iowin32.h +4 -4
  103. data/libxlsxwriter/third_party/minizip/miniunz.c +29 -56
  104. data/libxlsxwriter/third_party/minizip/minizip.c +38 -49
  105. data/libxlsxwriter/third_party/minizip/mztools.c +1 -7
  106. data/libxlsxwriter/third_party/minizip/unzip.c +202 -342
  107. data/libxlsxwriter/third_party/minizip/unzip.h +74 -74
  108. data/libxlsxwriter/third_party/minizip/zip.c +165 -218
  109. data/libxlsxwriter/third_party/minizip/zip.h +164 -154
  110. data/libxlsxwriter/third_party/tmpfileplus/Makefile +3 -3
  111. data/libxlsxwriter/version.txt +1 -1
  112. data/test/auto_width_test.rb +20 -0
  113. data/test/default_format_test.rb +1 -1
  114. data/test/validations_test.rb +3 -3
  115. data/test/worksheet_test.rb +6 -1
  116. metadata +33 -7
  117. data/libxlsxwriter/.travis.yml +0 -37
@@ -14,8 +14,8 @@
14
14
  Oct-2009 - Mathias Svensson - Added Zip64 Support when creating new file archives
15
15
  Oct-2009 - Mathias Svensson - Did some code cleanup and refactoring to get better overview of some functions.
16
16
  Oct-2009 - Mathias Svensson - Added zipRemoveExtraInfoBlock to strip extra field data from its ZIP64 data
17
- It is used when recreting zip archive with RAW when deleting items from a zip.
18
- ZIP64 data is automaticly added to items that needs it, and existing ZIP64 data need to be removed.
17
+ It is used when recreating zip archive with RAW when deleting items from a zip.
18
+ ZIP64 data is automatically added to items that needs it, and existing ZIP64 data need to be removed.
19
19
  Oct-2009 - Mathias Svensson - Added support for BZIP2 as compression mode (bzip2 lib is required)
20
20
  Jan-2010 - back to unzip and minizip 1.0 name scheme, with compatibility layer
21
21
 
@@ -25,14 +25,13 @@
25
25
  #include <stdio.h>
26
26
  #include <stdlib.h>
27
27
  #include <string.h>
28
+ #include <stdint.h>
28
29
  #include <time.h>
29
30
  #include "zlib.h"
30
31
  #include "zip.h"
31
32
 
32
33
  #ifdef STDC
33
34
  # include <stddef.h>
34
- # include <string.h>
35
- # include <stdlib.h>
36
35
  #endif
37
36
  #ifdef NO_ERRNO_H
38
37
  extern int errno;
@@ -47,7 +46,7 @@
47
46
  /* compile with -Dlocal if your debugger can't find static symbols */
48
47
 
49
48
  #ifndef VERSIONMADEBY
50
- # define VERSIONMADEBY (0x0) /* platform depedent */
49
+ # define VERSIONMADEBY (0x0) /* platform dependent */
51
50
  #endif
52
51
 
53
52
  #ifndef Z_BUFSIZE
@@ -61,9 +60,6 @@
61
60
  #ifndef ALLOC
62
61
  # define ALLOC(size) (malloc(size))
63
62
  #endif
64
- #ifndef TRYFREE
65
- # define TRYFREE(p) {if (p) free(p);}
66
- #endif
67
63
 
68
64
  /*
69
65
  #define SIZECENTRALDIRITEM (0x2e)
@@ -116,7 +112,7 @@ typedef struct linkedlist_datablock_internal_s
116
112
  struct linkedlist_datablock_internal_s* next_datablock;
117
113
  uLong avail_in_this_block;
118
114
  uLong filled_in_this_block;
119
- uLong unused; /* for future use and alignement */
115
+ uLong unused; /* for future use and alignment */
120
116
  unsigned char data[SIZEDATA_INDATABLOCK];
121
117
  } linkedlist_datablock_internal;
122
118
 
@@ -138,40 +134,40 @@ typedef struct
138
134
  uInt pos_in_buffered_data; /* last written byte in buffered_data */
139
135
 
140
136
  ZPOS64_T pos_local_header; /* offset of the local header of the file
141
- currenty writing */
137
+ currently writing */
142
138
  char* central_header; /* central header data for the current file */
143
139
  uLong size_centralExtra;
144
140
  uLong size_centralheader; /* size of the central header for cur file */
145
141
  uLong size_centralExtraFree; /* Extra bytes allocated to the centralheader but that are not used */
146
142
  uLong flag; /* flag of the file currently writing */
147
143
 
148
- int method; /* compression method of file currenty wr.*/
144
+ int method; /* compression method of file currently wr.*/
149
145
  int raw; /* 1 for directly writing raw data */
150
146
  Byte buffered_data[Z_BUFSIZE];/* buffer contain compressed data to be writ*/
151
147
  uLong dosDate;
152
148
  uLong crc32;
153
149
  int encrypt;
154
- int zip64; /* Add ZIP64 extened information in the extra field */
150
+ int zip64; /* Add ZIP64 extended information in the extra field */
155
151
  ZPOS64_T pos_zip64extrainfo;
156
152
  ZPOS64_T totalCompressedData;
157
153
  ZPOS64_T totalUncompressedData;
158
154
  #ifndef NOCRYPT
159
155
  unsigned long keys[3]; /* keys defining the pseudo-random sequence */
160
156
  const z_crc_t* pcrc_32_tab;
161
- int crypt_header_size;
157
+ unsigned crypt_header_size;
162
158
  #endif
163
159
  } curfile64_info;
164
160
 
165
161
  typedef struct
166
162
  {
167
163
  zlib_filefunc64_32_def z_filefunc;
168
- voidpf filestream; /* io structore of the zipfile */
164
+ voidpf filestream; /* io structure of the zipfile */
169
165
  linkedlist_data central_dir;/* datablock with central dir in construction*/
170
166
  int in_opened_file_inzip; /* 1 if a file in the zip is currently writ.*/
171
- curfile64_info ci; /* info on the file curretly writing */
167
+ curfile64_info ci; /* info on the file currently writing */
172
168
 
173
169
  ZPOS64_T begin_pos; /* position of the beginning of the zipfile */
174
- ZPOS64_T add_position_when_writting_offset;
170
+ ZPOS64_T add_position_when_writing_offset;
175
171
  ZPOS64_T number_entry;
176
172
 
177
173
  #ifndef NO_ADDFILEINEXISTINGZIP
@@ -186,8 +182,7 @@ typedef struct
186
182
  #include "crypt.h"
187
183
  #endif
188
184
 
189
- local linkedlist_datablock_internal* allocate_new_datablock()
190
- {
185
+ local linkedlist_datablock_internal* allocate_new_datablock(void) {
191
186
  linkedlist_datablock_internal* ldi;
192
187
  ldi = (linkedlist_datablock_internal*)
193
188
  ALLOC(sizeof(linkedlist_datablock_internal));
@@ -200,30 +195,26 @@ local linkedlist_datablock_internal* allocate_new_datablock()
200
195
  return ldi;
201
196
  }
202
197
 
203
- local void free_datablock(linkedlist_datablock_internal* ldi)
204
- {
198
+ local void free_datablock(linkedlist_datablock_internal* ldi) {
205
199
  while (ldi!=NULL)
206
200
  {
207
201
  linkedlist_datablock_internal* ldinext = ldi->next_datablock;
208
- TRYFREE(ldi);
202
+ free(ldi);
209
203
  ldi = ldinext;
210
204
  }
211
205
  }
212
206
 
213
- local void init_linkedlist(linkedlist_data* ll)
214
- {
207
+ local void init_linkedlist(linkedlist_data* ll) {
215
208
  ll->first_block = ll->last_block = NULL;
216
209
  }
217
210
 
218
- local void free_linkedlist(linkedlist_data* ll)
219
- {
211
+ local void free_linkedlist(linkedlist_data* ll) {
220
212
  free_datablock(ll->first_block);
221
213
  ll->first_block = ll->last_block = NULL;
222
214
  }
223
215
 
224
216
 
225
- local int add_data_in_datablock(linkedlist_data* ll, const void* buf, uLong len)
226
- {
217
+ local int add_data_in_datablock(linkedlist_data* ll, const void* buf, uLong len) {
227
218
  linkedlist_datablock_internal* ldi;
228
219
  const unsigned char* from_copy;
229
220
 
@@ -238,7 +229,7 @@ local int add_data_in_datablock(linkedlist_data* ll, const void* buf, uLong len)
238
229
  }
239
230
 
240
231
  ldi = ll->last_block;
241
- from_copy = (unsigned char*)buf;
232
+ from_copy = (const unsigned char*)buf;
242
233
 
243
234
  while (len>0)
244
235
  {
@@ -283,9 +274,7 @@ local int add_data_in_datablock(linkedlist_data* ll, const void* buf, uLong len)
283
274
  nbByte == 1, 2 ,4 or 8 (byte, short or long, ZPOS64_T)
284
275
  */
285
276
 
286
- local int zip64local_putValue OF((const zlib_filefunc64_32_def* pzlib_filefunc_def, voidpf filestream, ZPOS64_T x, int nbByte));
287
- local int zip64local_putValue (const zlib_filefunc64_32_def* pzlib_filefunc_def, voidpf filestream, ZPOS64_T x, int nbByte)
288
- {
277
+ local int zip64local_putValue(const zlib_filefunc64_32_def* pzlib_filefunc_def, voidpf filestream, ZPOS64_T x, int nbByte) {
289
278
  unsigned char buf[8];
290
279
  int n;
291
280
  for (n = 0; n < nbByte; n++)
@@ -301,15 +290,13 @@ local int zip64local_putValue (const zlib_filefunc64_32_def* pzlib_filefunc_def,
301
290
  }
302
291
  }
303
292
 
304
- if (ZWRITE64(*pzlib_filefunc_def,filestream,buf,nbByte)!=(uLong)nbByte)
293
+ if (ZWRITE64(*pzlib_filefunc_def,filestream,buf,(uLong)nbByte)!=(uLong)nbByte)
305
294
  return ZIP_ERRNO;
306
295
  else
307
296
  return ZIP_OK;
308
297
  }
309
298
 
310
- local void zip64local_putValue_inmemory OF((void* dest, ZPOS64_T x, int nbByte));
311
- local void zip64local_putValue_inmemory (void* dest, ZPOS64_T x, int nbByte)
312
- {
299
+ local void zip64local_putValue_inmemory (void* dest, ZPOS64_T x, int nbByte) {
313
300
  unsigned char* buf=(unsigned char*)dest;
314
301
  int n;
315
302
  for (n = 0; n < nbByte; n++) {
@@ -329,25 +316,21 @@ local void zip64local_putValue_inmemory (void* dest, ZPOS64_T x, int nbByte)
329
316
  /****************************************************************************/
330
317
 
331
318
 
332
- local uLong zip64local_TmzDateToDosDate(const tm_zip* ptm)
333
- {
319
+ local uLong zip64local_TmzDateToDosDate(const tm_zip* ptm) {
334
320
  uLong year = (uLong)ptm->tm_year;
335
321
  if (year>=1980)
336
322
  year-=1980;
337
323
  else if (year>=80)
338
324
  year-=80;
339
325
  return
340
- (uLong) (((ptm->tm_mday) + (32 * (ptm->tm_mon+1)) + (512 * year)) << 16) |
341
- ((ptm->tm_sec/2) + (32* ptm->tm_min) + (2048 * (uLong)ptm->tm_hour));
326
+ (uLong) (((uLong)(ptm->tm_mday) + (32 * (uLong)(ptm->tm_mon+1)) + (512 * year)) << 16) |
327
+ (((uLong)ptm->tm_sec/2) + (32 * (uLong)ptm->tm_min) + (2048 * (uLong)ptm->tm_hour));
342
328
  }
343
329
 
344
330
 
345
331
  /****************************************************************************/
346
332
 
347
- local int zip64local_getByte OF((const zlib_filefunc64_32_def* pzlib_filefunc_def, voidpf filestream, int *pi));
348
-
349
- local int zip64local_getByte(const zlib_filefunc64_32_def* pzlib_filefunc_def,voidpf filestream,int* pi)
350
- {
333
+ local int zip64local_getByte(const zlib_filefunc64_32_def* pzlib_filefunc_def, voidpf filestream, int* pi) {
351
334
  unsigned char c;
352
335
  int err = (int)ZREAD64(*pzlib_filefunc_def,filestream,&c,1);
353
336
  if (err==1)
@@ -368,10 +351,7 @@ local int zip64local_getByte(const zlib_filefunc64_32_def* pzlib_filefunc_def,vo
368
351
  /* ===========================================================================
369
352
  Reads a long in LSB order from the given gz_stream. Sets
370
353
  */
371
- local int zip64local_getShort OF((const zlib_filefunc64_32_def* pzlib_filefunc_def, voidpf filestream, uLong *pX));
372
-
373
- local int zip64local_getShort (const zlib_filefunc64_32_def* pzlib_filefunc_def, voidpf filestream, uLong* pX)
374
- {
354
+ local int zip64local_getShort(const zlib_filefunc64_32_def* pzlib_filefunc_def, voidpf filestream, uLong* pX) {
375
355
  uLong x ;
376
356
  int i = 0;
377
357
  int err;
@@ -390,10 +370,7 @@ local int zip64local_getShort (const zlib_filefunc64_32_def* pzlib_filefunc_def,
390
370
  return err;
391
371
  }
392
372
 
393
- local int zip64local_getLong OF((const zlib_filefunc64_32_def* pzlib_filefunc_def, voidpf filestream, uLong *pX));
394
-
395
- local int zip64local_getLong (const zlib_filefunc64_32_def* pzlib_filefunc_def, voidpf filestream, uLong* pX)
396
- {
373
+ local int zip64local_getLong(const zlib_filefunc64_32_def* pzlib_filefunc_def, voidpf filestream, uLong* pX) {
397
374
  uLong x ;
398
375
  int i = 0;
399
376
  int err;
@@ -420,11 +397,8 @@ local int zip64local_getLong (const zlib_filefunc64_32_def* pzlib_filefunc_def,
420
397
  return err;
421
398
  }
422
399
 
423
- local int zip64local_getLong64 OF((const zlib_filefunc64_32_def* pzlib_filefunc_def, voidpf filestream, ZPOS64_T *pX));
424
400
 
425
-
426
- local int zip64local_getLong64 (const zlib_filefunc64_32_def* pzlib_filefunc_def, voidpf filestream, ZPOS64_T *pX)
427
- {
401
+ local int zip64local_getLong64(const zlib_filefunc64_32_def* pzlib_filefunc_def, voidpf filestream, ZPOS64_T *pX) {
428
402
  ZPOS64_T x;
429
403
  int i = 0;
430
404
  int err;
@@ -475,10 +449,7 @@ local int zip64local_getLong64 (const zlib_filefunc64_32_def* pzlib_filefunc_def
475
449
  Locate the Central directory of a zipfile (at the end, just before
476
450
  the global comment)
477
451
  */
478
- local ZPOS64_T zip64local_SearchCentralDir OF((const zlib_filefunc64_32_def* pzlib_filefunc_def, voidpf filestream));
479
-
480
- local ZPOS64_T zip64local_SearchCentralDir(const zlib_filefunc64_32_def* pzlib_filefunc_def, voidpf filestream)
481
- {
452
+ local ZPOS64_T zip64local_SearchCentralDir(const zlib_filefunc64_32_def* pzlib_filefunc_def, voidpf filestream) {
482
453
  unsigned char* buf;
483
454
  ZPOS64_T uSizeFile;
484
455
  ZPOS64_T uBackRead;
@@ -519,19 +490,17 @@ local ZPOS64_T zip64local_SearchCentralDir(const zlib_filefunc64_32_def* pzlib_f
519
490
  break;
520
491
 
521
492
  for (i=(int)uReadSize-3; (i--)>0;)
522
- {
523
493
  if (((*(buf+i))==0x50) && ((*(buf+i+1))==0x4b) &&
524
494
  ((*(buf+i+2))==0x05) && ((*(buf+i+3))==0x06))
525
495
  {
526
- uPosFound = uReadPos+i;
496
+ uPosFound = uReadPos+(unsigned)i;
527
497
  break;
528
498
  }
529
- }
530
499
 
531
- if (uPosFound!=0)
532
- break;
500
+ if (uPosFound!=0)
501
+ break;
533
502
  }
534
- TRYFREE(buf);
503
+ free(buf);
535
504
  return uPosFound;
536
505
  }
537
506
 
@@ -539,10 +508,7 @@ local ZPOS64_T zip64local_SearchCentralDir(const zlib_filefunc64_32_def* pzlib_f
539
508
  Locate the End of Zip64 Central directory locator and from there find the CD of a zipfile (at the end, just before
540
509
  the global comment)
541
510
  */
542
- local ZPOS64_T zip64local_SearchCentralDir64 OF((const zlib_filefunc64_32_def* pzlib_filefunc_def, voidpf filestream));
543
-
544
- local ZPOS64_T zip64local_SearchCentralDir64(const zlib_filefunc64_32_def* pzlib_filefunc_def, voidpf filestream)
545
- {
511
+ local ZPOS64_T zip64local_SearchCentralDir64(const zlib_filefunc64_32_def* pzlib_filefunc_def, voidpf filestream) {
546
512
  unsigned char* buf;
547
513
  ZPOS64_T uSizeFile;
548
514
  ZPOS64_T uBackRead;
@@ -588,7 +554,7 @@ local ZPOS64_T zip64local_SearchCentralDir64(const zlib_filefunc64_32_def* pzlib
588
554
  // Signature "0x07064b50" Zip64 end of central directory locater
589
555
  if (((*(buf+i))==0x50) && ((*(buf+i+1))==0x4b) && ((*(buf+i+2))==0x06) && ((*(buf+i+3))==0x07))
590
556
  {
591
- uPosFound = uReadPos+i;
557
+ uPosFound = uReadPos+(unsigned)i;
592
558
  break;
593
559
  }
594
560
  }
@@ -597,7 +563,7 @@ local ZPOS64_T zip64local_SearchCentralDir64(const zlib_filefunc64_32_def* pzlib
597
563
  break;
598
564
  }
599
565
 
600
- TRYFREE(buf);
566
+ free(buf);
601
567
  if (uPosFound == 0)
602
568
  return 0;
603
569
 
@@ -639,8 +605,7 @@ local ZPOS64_T zip64local_SearchCentralDir64(const zlib_filefunc64_32_def* pzlib
639
605
  return relativeOffset;
640
606
  }
641
607
 
642
- int LoadCentralDirectoryRecord(zip64_internal* pziinit)
643
- {
608
+ local int LoadCentralDirectoryRecord(zip64_internal* pziinit) {
644
609
  int err=ZIP_OK;
645
610
  ZPOS64_T byte_before_the_zipfile;/* byte before the zipfile, (>0 for sfx)*/
646
611
 
@@ -650,9 +615,9 @@ int LoadCentralDirectoryRecord(zip64_internal* pziinit)
650
615
  uLong uL;
651
616
 
652
617
  uLong number_disk; /* number of the current dist, used for
653
- spaning ZIP, unsupported, always 0*/
618
+ spanning ZIP, unsupported, always 0*/
654
619
  uLong number_disk_with_CD; /* number the the disk with central dir, used
655
- for spaning ZIP, unsupported, always 0*/
620
+ for spanning ZIP, unsupported, always 0*/
656
621
  ZPOS64_T number_entry;
657
622
  ZPOS64_T number_entry_CD; /* total number of entries in
658
623
  the central dir
@@ -809,7 +774,7 @@ int LoadCentralDirectoryRecord(zip64_internal* pziinit)
809
774
  }
810
775
 
811
776
  byte_before_the_zipfile = central_pos - (offset_central_dir+size_central_dir);
812
- pziinit->add_position_when_writting_offset = byte_before_the_zipfile;
777
+ pziinit->add_position_when_writing_offset = byte_before_the_zipfile;
813
778
 
814
779
  {
815
780
  ZPOS64_T size_central_dir_to_read = size_central_dir;
@@ -832,7 +797,7 @@ int LoadCentralDirectoryRecord(zip64_internal* pziinit)
832
797
 
833
798
  size_central_dir_to_read-=read_this;
834
799
  }
835
- TRYFREE(buf_read);
800
+ free(buf_read);
836
801
  }
837
802
  pziinit->begin_pos = byte_before_the_zipfile;
838
803
  pziinit->number_entry = number_entry_CD;
@@ -848,8 +813,7 @@ int LoadCentralDirectoryRecord(zip64_internal* pziinit)
848
813
 
849
814
 
850
815
  /************************************************************/
851
- extern zipFile ZEXPORT zipOpen3 (const void *pathname, int append, zipcharpc* globalcomment, zlib_filefunc64_32_def* pzlib_filefunc64_32_def)
852
- {
816
+ extern zipFile ZEXPORT zipOpen3(const void *pathname, int append, zipcharpc* globalcomment, zlib_filefunc64_32_def* pzlib_filefunc64_32_def) {
853
817
  zip64_internal ziinit;
854
818
  zip64_internal* zi;
855
819
  int err=ZIP_OK;
@@ -877,7 +841,7 @@ extern zipFile ZEXPORT zipOpen3 (const void *pathname, int append, zipcharpc* gl
877
841
  ziinit.in_opened_file_inzip = 0;
878
842
  ziinit.ci.stream_initialised = 0;
879
843
  ziinit.number_entry = 0;
880
- ziinit.add_position_when_writting_offset = 0;
844
+ ziinit.add_position_when_writing_offset = 0;
881
845
  init_linkedlist(&(ziinit.central_dir));
882
846
 
883
847
 
@@ -907,9 +871,9 @@ extern zipFile ZEXPORT zipOpen3 (const void *pathname, int append, zipcharpc* gl
907
871
  if (err != ZIP_OK)
908
872
  {
909
873
  # ifndef NO_ADDFILEINEXISTINGZIP
910
- TRYFREE(ziinit.globalcomment);
874
+ free(ziinit.globalcomment);
911
875
  # endif /* !NO_ADDFILEINEXISTINGZIP*/
912
- TRYFREE(zi);
876
+ free(zi);
913
877
  return NULL;
914
878
  }
915
879
  else
@@ -919,8 +883,7 @@ extern zipFile ZEXPORT zipOpen3 (const void *pathname, int append, zipcharpc* gl
919
883
  }
920
884
  }
921
885
 
922
- extern zipFile ZEXPORT zipOpen2 (const char *pathname, int append, zipcharpc* globalcomment, zlib_filefunc_def* pzlib_filefunc32_def)
923
- {
886
+ extern zipFile ZEXPORT zipOpen2(const char *pathname, int append, zipcharpc* globalcomment, zlib_filefunc_def* pzlib_filefunc32_def) {
924
887
  if (pzlib_filefunc32_def != NULL)
925
888
  {
926
889
  zlib_filefunc64_32_def zlib_filefunc64_32_def_fill;
@@ -931,8 +894,7 @@ extern zipFile ZEXPORT zipOpen2 (const char *pathname, int append, zipcharpc* gl
931
894
  return zipOpen3(pathname, append, globalcomment, NULL);
932
895
  }
933
896
 
934
- extern zipFile ZEXPORT zipOpen2_64 (const void *pathname, int append, zipcharpc* globalcomment, zlib_filefunc64_def* pzlib_filefunc_def)
935
- {
897
+ extern zipFile ZEXPORT zipOpen2_64(const void *pathname, int append, zipcharpc* globalcomment, zlib_filefunc64_def* pzlib_filefunc_def) {
936
898
  if (pzlib_filefunc_def != NULL)
937
899
  {
938
900
  zlib_filefunc64_32_def zlib_filefunc64_32_def_fill;
@@ -947,18 +909,15 @@ extern zipFile ZEXPORT zipOpen2_64 (const void *pathname, int append, zipcharpc*
947
909
 
948
910
 
949
911
 
950
- extern zipFile ZEXPORT zipOpen (const char* pathname, int append)
951
- {
912
+ extern zipFile ZEXPORT zipOpen(const char* pathname, int append) {
952
913
  return zipOpen3((const void*)pathname,append,NULL,NULL);
953
914
  }
954
915
 
955
- extern zipFile ZEXPORT zipOpen64 (const void* pathname, int append)
956
- {
916
+ extern zipFile ZEXPORT zipOpen64(const void* pathname, int append) {
957
917
  return zipOpen3(pathname,append,NULL,NULL);
958
918
  }
959
919
 
960
- int Write_LocalFileHeader(zip64_internal* zi, const char* filename, uInt size_extrafield_local, const void* extrafield_local)
961
- {
920
+ local int Write_LocalFileHeader(zip64_internal* zi, const char* filename, uInt size_extrafield_local, const void* extrafield_local) {
962
921
  /* write the local header */
963
922
  int err;
964
923
  uInt size_filename = (uInt)strlen(filename);
@@ -1036,8 +995,8 @@ int Write_LocalFileHeader(zip64_internal* zi, const char* filename, uInt size_ex
1036
995
  // Remember position of Zip64 extended info for the local file header. (needed when we update size after done with file)
1037
996
  zi->ci.pos_zip64extrainfo = ZTELL64(zi->z_filefunc,zi->filestream);
1038
997
 
1039
- err = zip64local_putValue(&zi->z_filefunc, zi->filestream, (short)HeaderID,2);
1040
- err = zip64local_putValue(&zi->z_filefunc, zi->filestream, (short)DataSize,2);
998
+ err = zip64local_putValue(&zi->z_filefunc, zi->filestream, (ZPOS64_T)HeaderID,2);
999
+ err = zip64local_putValue(&zi->z_filefunc, zi->filestream, (ZPOS64_T)DataSize,2);
1041
1000
 
1042
1001
  err = zip64local_putValue(&zi->z_filefunc, zi->filestream, (ZPOS64_T)UncompressedSize,8);
1043
1002
  err = zip64local_putValue(&zi->z_filefunc, zi->filestream, (ZPOS64_T)CompressedSize,8);
@@ -1054,14 +1013,13 @@ int Write_LocalFileHeader(zip64_internal* zi, const char* filename, uInt size_ex
1054
1013
  It is not done here because then we need to realloc a new buffer since parameters are 'const' and I want to minimize
1055
1014
  unnecessary allocations.
1056
1015
  */
1057
- extern int ZEXPORT zipOpenNewFileInZip4_64 (zipFile file, const char* filename, const zip_fileinfo* zipfi,
1058
- const void* extrafield_local, uInt size_extrafield_local,
1059
- const void* extrafield_global, uInt size_extrafield_global,
1060
- const char* comment, int method, int level, int raw,
1061
- int windowBits,int memLevel, int strategy,
1062
- const char* password, uLong crcForCrypting,
1063
- uLong versionMadeBy, uLong flagBase, int zip64)
1064
- {
1016
+ extern int ZEXPORT zipOpenNewFileInZip4_64(zipFile file, const char* filename, const zip_fileinfo* zipfi,
1017
+ const void* extrafield_local, uInt size_extrafield_local,
1018
+ const void* extrafield_global, uInt size_extrafield_global,
1019
+ const char* comment, int method, int level, int raw,
1020
+ int windowBits,int memLevel, int strategy,
1021
+ const char* password, uLong crcForCrypting,
1022
+ uLong versionMadeBy, uLong flagBase, int zip64) {
1065
1023
  zip64_internal* zi;
1066
1024
  uInt size_filename;
1067
1025
  uInt size_comment;
@@ -1069,7 +1027,7 @@ extern int ZEXPORT zipOpenNewFileInZip4_64 (zipFile file, const char* filename,
1069
1027
  int err = ZIP_OK;
1070
1028
 
1071
1029
  # ifdef NOCRYPT
1072
- (void)(crcForCrypting);
1030
+ (void) (crcForCrypting);
1073
1031
  if (password != NULL)
1074
1032
  return ZIP_PARAMERROR;
1075
1033
  # endif
@@ -1085,6 +1043,17 @@ extern int ZEXPORT zipOpenNewFileInZip4_64 (zipFile file, const char* filename,
1085
1043
  return ZIP_PARAMERROR;
1086
1044
  #endif
1087
1045
 
1046
+ // The filename and comment length must fit in 16 bits.
1047
+ if ((filename!=NULL) && (strlen(filename)>0xffff))
1048
+ return ZIP_PARAMERROR;
1049
+ if ((comment!=NULL) && (strlen(comment)>0xffff))
1050
+ return ZIP_PARAMERROR;
1051
+ // The extra field length must fit in 16 bits. If the member also requires
1052
+ // a Zip64 extra block, that will also need to fit within that 16-bit
1053
+ // length, but that will be checked for later.
1054
+ if ((size_extrafield_local>0xffff) || (size_extrafield_global>0xffff))
1055
+ return ZIP_PARAMERROR;
1056
+
1088
1057
  zi = (zip64_internal*)file;
1089
1058
 
1090
1059
  if (zi->in_opened_file_inzip == 1)
@@ -1166,7 +1135,7 @@ extern int ZEXPORT zipOpenNewFileInZip4_64 (zipFile file, const char* filename,
1166
1135
  if(zi->ci.pos_local_header >= 0xffffffff)
1167
1136
  zip64local_putValue_inmemory(zi->ci.central_header+42,(uLong)0xffffffff,4);
1168
1137
  else
1169
- zip64local_putValue_inmemory(zi->ci.central_header+42,(uLong)zi->ci.pos_local_header - zi->add_position_when_writting_offset,4);
1138
+ zip64local_putValue_inmemory(zi->ci.central_header+42,(uLong)zi->ci.pos_local_header - zi->add_position_when_writing_offset,4);
1170
1139
 
1171
1140
  for (i=0;i<size_filename;i++)
1172
1141
  *(zi->ci.central_header+SIZECENTRALHEADER+i) = *(filename+i);
@@ -1264,35 +1233,33 @@ extern int ZEXPORT zipOpenNewFileInZip4_64 (zipFile file, const char* filename,
1264
1233
  return err;
1265
1234
  }
1266
1235
 
1267
- extern int ZEXPORT zipOpenNewFileInZip4 (zipFile file, const char* filename, const zip_fileinfo* zipfi,
1268
- const void* extrafield_local, uInt size_extrafield_local,
1269
- const void* extrafield_global, uInt size_extrafield_global,
1270
- const char* comment, int method, int level, int raw,
1271
- int windowBits,int memLevel, int strategy,
1272
- const char* password, uLong crcForCrypting,
1273
- uLong versionMadeBy, uLong flagBase)
1274
- {
1275
- return zipOpenNewFileInZip4_64 (file, filename, zipfi,
1276
- extrafield_local, size_extrafield_local,
1277
- extrafield_global, size_extrafield_global,
1278
- comment, method, level, raw,
1279
- windowBits, memLevel, strategy,
1280
- password, crcForCrypting, versionMadeBy, flagBase, 0);
1236
+ extern int ZEXPORT zipOpenNewFileInZip4(zipFile file, const char* filename, const zip_fileinfo* zipfi,
1237
+ const void* extrafield_local, uInt size_extrafield_local,
1238
+ const void* extrafield_global, uInt size_extrafield_global,
1239
+ const char* comment, int method, int level, int raw,
1240
+ int windowBits,int memLevel, int strategy,
1241
+ const char* password, uLong crcForCrypting,
1242
+ uLong versionMadeBy, uLong flagBase) {
1243
+ return zipOpenNewFileInZip4_64(file, filename, zipfi,
1244
+ extrafield_local, size_extrafield_local,
1245
+ extrafield_global, size_extrafield_global,
1246
+ comment, method, level, raw,
1247
+ windowBits, memLevel, strategy,
1248
+ password, crcForCrypting, versionMadeBy, flagBase, 0);
1281
1249
  }
1282
1250
 
1283
- extern int ZEXPORT zipOpenNewFileInZip3 (zipFile file, const char* filename, const zip_fileinfo* zipfi,
1284
- const void* extrafield_local, uInt size_extrafield_local,
1285
- const void* extrafield_global, uInt size_extrafield_global,
1286
- const char* comment, int method, int level, int raw,
1287
- int windowBits,int memLevel, int strategy,
1288
- const char* password, uLong crcForCrypting)
1289
- {
1290
- return zipOpenNewFileInZip4_64 (file, filename, zipfi,
1291
- extrafield_local, size_extrafield_local,
1292
- extrafield_global, size_extrafield_global,
1293
- comment, method, level, raw,
1294
- windowBits, memLevel, strategy,
1295
- password, crcForCrypting, VERSIONMADEBY, 0, 0);
1251
+ extern int ZEXPORT zipOpenNewFileInZip3(zipFile file, const char* filename, const zip_fileinfo* zipfi,
1252
+ const void* extrafield_local, uInt size_extrafield_local,
1253
+ const void* extrafield_global, uInt size_extrafield_global,
1254
+ const char* comment, int method, int level, int raw,
1255
+ int windowBits,int memLevel, int strategy,
1256
+ const char* password, uLong crcForCrypting) {
1257
+ return zipOpenNewFileInZip4_64(file, filename, zipfi,
1258
+ extrafield_local, size_extrafield_local,
1259
+ extrafield_global, size_extrafield_global,
1260
+ comment, method, level, raw,
1261
+ windowBits, memLevel, strategy,
1262
+ password, crcForCrypting, VERSIONMADEBY, 0, 0);
1296
1263
  }
1297
1264
 
1298
1265
  extern int ZEXPORT zipOpenNewFileInZip3_64(zipFile file, const char* filename, const zip_fileinfo* zipfi,
@@ -1300,70 +1267,64 @@ extern int ZEXPORT zipOpenNewFileInZip3_64(zipFile file, const char* filename, c
1300
1267
  const void* extrafield_global, uInt size_extrafield_global,
1301
1268
  const char* comment, int method, int level, int raw,
1302
1269
  int windowBits,int memLevel, int strategy,
1303
- const char* password, uLong crcForCrypting, int zip64)
1304
- {
1305
- return zipOpenNewFileInZip4_64 (file, filename, zipfi,
1306
- extrafield_local, size_extrafield_local,
1307
- extrafield_global, size_extrafield_global,
1308
- comment, method, level, raw,
1309
- windowBits, memLevel, strategy,
1310
- password, crcForCrypting, VERSIONMADEBY, 0, zip64);
1270
+ const char* password, uLong crcForCrypting, int zip64) {
1271
+ return zipOpenNewFileInZip4_64(file, filename, zipfi,
1272
+ extrafield_local, size_extrafield_local,
1273
+ extrafield_global, size_extrafield_global,
1274
+ comment, method, level, raw,
1275
+ windowBits, memLevel, strategy,
1276
+ password, crcForCrypting, VERSIONMADEBY, 0, zip64);
1311
1277
  }
1312
1278
 
1313
1279
  extern int ZEXPORT zipOpenNewFileInZip2(zipFile file, const char* filename, const zip_fileinfo* zipfi,
1314
1280
  const void* extrafield_local, uInt size_extrafield_local,
1315
1281
  const void* extrafield_global, uInt size_extrafield_global,
1316
- const char* comment, int method, int level, int raw)
1317
- {
1318
- return zipOpenNewFileInZip4_64 (file, filename, zipfi,
1319
- extrafield_local, size_extrafield_local,
1320
- extrafield_global, size_extrafield_global,
1321
- comment, method, level, raw,
1322
- -MAX_WBITS, DEF_MEM_LEVEL, Z_DEFAULT_STRATEGY,
1323
- NULL, 0, VERSIONMADEBY, 0, 0);
1282
+ const char* comment, int method, int level, int raw) {
1283
+ return zipOpenNewFileInZip4_64(file, filename, zipfi,
1284
+ extrafield_local, size_extrafield_local,
1285
+ extrafield_global, size_extrafield_global,
1286
+ comment, method, level, raw,
1287
+ -MAX_WBITS, DEF_MEM_LEVEL, Z_DEFAULT_STRATEGY,
1288
+ NULL, 0, VERSIONMADEBY, 0, 0);
1324
1289
  }
1325
1290
 
1326
1291
  extern int ZEXPORT zipOpenNewFileInZip2_64(zipFile file, const char* filename, const zip_fileinfo* zipfi,
1327
- const void* extrafield_local, uInt size_extrafield_local,
1328
- const void* extrafield_global, uInt size_extrafield_global,
1329
- const char* comment, int method, int level, int raw, int zip64)
1330
- {
1331
- return zipOpenNewFileInZip4_64 (file, filename, zipfi,
1332
- extrafield_local, size_extrafield_local,
1333
- extrafield_global, size_extrafield_global,
1334
- comment, method, level, raw,
1335
- -MAX_WBITS, DEF_MEM_LEVEL, Z_DEFAULT_STRATEGY,
1336
- NULL, 0, VERSIONMADEBY, 0, zip64);
1292
+ const void* extrafield_local, uInt size_extrafield_local,
1293
+ const void* extrafield_global, uInt size_extrafield_global,
1294
+ const char* comment, int method, int level, int raw, int zip64) {
1295
+ return zipOpenNewFileInZip4_64(file, filename, zipfi,
1296
+ extrafield_local, size_extrafield_local,
1297
+ extrafield_global, size_extrafield_global,
1298
+ comment, method, level, raw,
1299
+ -MAX_WBITS, DEF_MEM_LEVEL, Z_DEFAULT_STRATEGY,
1300
+ NULL, 0, VERSIONMADEBY, 0, zip64);
1337
1301
  }
1338
1302
 
1339
- extern int ZEXPORT zipOpenNewFileInZip64 (zipFile file, const char* filename, const zip_fileinfo* zipfi,
1340
- const void* extrafield_local, uInt size_extrafield_local,
1341
- const void*extrafield_global, uInt size_extrafield_global,
1342
- const char* comment, int method, int level, int zip64)
1343
- {
1344
- return zipOpenNewFileInZip4_64 (file, filename, zipfi,
1345
- extrafield_local, size_extrafield_local,
1346
- extrafield_global, size_extrafield_global,
1347
- comment, method, level, 0,
1348
- -MAX_WBITS, DEF_MEM_LEVEL, Z_DEFAULT_STRATEGY,
1349
- NULL, 0, VERSIONMADEBY, 0, zip64);
1303
+ extern int ZEXPORT zipOpenNewFileInZip64(zipFile file, const char* filename, const zip_fileinfo* zipfi,
1304
+ const void* extrafield_local, uInt size_extrafield_local,
1305
+ const void*extrafield_global, uInt size_extrafield_global,
1306
+ const char* comment, int method, int level, int zip64) {
1307
+ return zipOpenNewFileInZip4_64(file, filename, zipfi,
1308
+ extrafield_local, size_extrafield_local,
1309
+ extrafield_global, size_extrafield_global,
1310
+ comment, method, level, 0,
1311
+ -MAX_WBITS, DEF_MEM_LEVEL, Z_DEFAULT_STRATEGY,
1312
+ NULL, 0, VERSIONMADEBY, 0, zip64);
1350
1313
  }
1351
1314
 
1352
- extern int ZEXPORT zipOpenNewFileInZip (zipFile file, const char* filename, const zip_fileinfo* zipfi,
1353
- const void* extrafield_local, uInt size_extrafield_local,
1354
- const void*extrafield_global, uInt size_extrafield_global,
1355
- const char* comment, int method, int level)
1356
- {
1357
- return zipOpenNewFileInZip4_64 (file, filename, zipfi,
1358
- extrafield_local, size_extrafield_local,
1359
- extrafield_global, size_extrafield_global,
1360
- comment, method, level, 0,
1361
- -MAX_WBITS, DEF_MEM_LEVEL, Z_DEFAULT_STRATEGY,
1362
- NULL, 0, VERSIONMADEBY, 0, 0);
1315
+ extern int ZEXPORT zipOpenNewFileInZip(zipFile file, const char* filename, const zip_fileinfo* zipfi,
1316
+ const void* extrafield_local, uInt size_extrafield_local,
1317
+ const void*extrafield_global, uInt size_extrafield_global,
1318
+ const char* comment, int method, int level) {
1319
+ return zipOpenNewFileInZip4_64(file, filename, zipfi,
1320
+ extrafield_local, size_extrafield_local,
1321
+ extrafield_global, size_extrafield_global,
1322
+ comment, method, level, 0,
1323
+ -MAX_WBITS, DEF_MEM_LEVEL, Z_DEFAULT_STRATEGY,
1324
+ NULL, 0, VERSIONMADEBY, 0, 0);
1363
1325
  }
1364
1326
 
1365
- local int zip64FlushWriteBuffer(zip64_internal* zi)
1366
- {
1327
+ local int zip64FlushWriteBuffer(zip64_internal* zi) {
1367
1328
  int err=ZIP_OK;
1368
1329
 
1369
1330
  if (zi->ci.encrypt != 0)
@@ -1401,8 +1362,7 @@ local int zip64FlushWriteBuffer(zip64_internal* zi)
1401
1362
  return err;
1402
1363
  }
1403
1364
 
1404
- extern int ZEXPORT zipWriteInFileInZip (zipFile file,const void* buf,unsigned int len)
1405
- {
1365
+ extern int ZEXPORT zipWriteInFileInZip(zipFile file, const void* buf, unsigned int len) {
1406
1366
  zip64_internal* zi;
1407
1367
  int err=ZIP_OK;
1408
1368
 
@@ -1452,7 +1412,7 @@ extern int ZEXPORT zipWriteInFileInZip (zipFile file,const void* buf,unsigned in
1452
1412
  else
1453
1413
  #endif
1454
1414
  {
1455
- zi->ci.stream.next_in = (Bytef*)buf;
1415
+ zi->ci.stream.next_in = (Bytef*)(uintptr_t)buf;
1456
1416
  zi->ci.stream.avail_in = len;
1457
1417
 
1458
1418
  while ((err==ZIP_OK) && (zi->ci.stream.avail_in>0))
@@ -1473,11 +1433,6 @@ extern int ZEXPORT zipWriteInFileInZip (zipFile file,const void* buf,unsigned in
1473
1433
  {
1474
1434
  uLong uTotalOutBefore = zi->ci.stream.total_out;
1475
1435
  err=deflate(&zi->ci.stream, Z_NO_FLUSH);
1476
- if(uTotalOutBefore > zi->ci.stream.total_out)
1477
- {
1478
- int bBreak = 0;
1479
- bBreak++;
1480
- }
1481
1436
 
1482
1437
  zi->ci.pos_in_buffered_data += (uInt)(zi->ci.stream.total_out - uTotalOutBefore) ;
1483
1438
  }
@@ -1508,17 +1463,15 @@ extern int ZEXPORT zipWriteInFileInZip (zipFile file,const void* buf,unsigned in
1508
1463
  return err;
1509
1464
  }
1510
1465
 
1511
- extern int ZEXPORT zipCloseFileInZipRaw (zipFile file, uLong uncompressed_size, uLong crc32)
1512
- {
1466
+ extern int ZEXPORT zipCloseFileInZipRaw(zipFile file, uLong uncompressed_size, uLong crc32) {
1513
1467
  return zipCloseFileInZipRaw64 (file, uncompressed_size, crc32);
1514
1468
  }
1515
1469
 
1516
- extern int ZEXPORT zipCloseFileInZipRaw64 (zipFile file, ZPOS64_T uncompressed_size, uLong crc32)
1517
- {
1470
+ extern int ZEXPORT zipCloseFileInZipRaw64(zipFile file, ZPOS64_T uncompressed_size, uLong crc32) {
1518
1471
  zip64_internal* zi;
1519
1472
  ZPOS64_T compressed_size;
1520
1473
  uLong invalidValue = 0xffffffff;
1521
- short datasize = 0;
1474
+ unsigned datasize = 0;
1522
1475
  int err=ZIP_OK;
1523
1476
 
1524
1477
  if (file == NULL)
@@ -1749,15 +1702,13 @@ extern int ZEXPORT zipCloseFileInZipRaw64 (zipFile file, ZPOS64_T uncompressed_s
1749
1702
  return err;
1750
1703
  }
1751
1704
 
1752
- extern int ZEXPORT zipCloseFileInZip (zipFile file)
1753
- {
1705
+ extern int ZEXPORT zipCloseFileInZip(zipFile file) {
1754
1706
  return zipCloseFileInZipRaw (file,0,0);
1755
1707
  }
1756
1708
 
1757
- int Write_Zip64EndOfCentralDirectoryLocator(zip64_internal* zi, ZPOS64_T zip64eocd_pos_inzip)
1758
- {
1709
+ local int Write_Zip64EndOfCentralDirectoryLocator(zip64_internal* zi, ZPOS64_T zip64eocd_pos_inzip) {
1759
1710
  int err = ZIP_OK;
1760
- ZPOS64_T pos = zip64eocd_pos_inzip - zi->add_position_when_writting_offset;
1711
+ ZPOS64_T pos = zip64eocd_pos_inzip - zi->add_position_when_writing_offset;
1761
1712
 
1762
1713
  err = zip64local_putValue(&zi->z_filefunc,zi->filestream,(uLong)ZIP64ENDLOCHEADERMAGIC,4);
1763
1714
 
@@ -1776,8 +1727,7 @@ int Write_Zip64EndOfCentralDirectoryLocator(zip64_internal* zi, ZPOS64_T zip64eo
1776
1727
  return err;
1777
1728
  }
1778
1729
 
1779
- int Write_Zip64EndOfCentralDirectoryRecord(zip64_internal* zi, uLong size_centraldir, ZPOS64_T centraldir_pos_inzip)
1780
- {
1730
+ local int Write_Zip64EndOfCentralDirectoryRecord(zip64_internal* zi, uLong size_centraldir, ZPOS64_T centraldir_pos_inzip) {
1781
1731
  int err = ZIP_OK;
1782
1732
 
1783
1733
  uLong Zip64DataSize = 44;
@@ -1810,13 +1760,13 @@ int Write_Zip64EndOfCentralDirectoryRecord(zip64_internal* zi, uLong size_centra
1810
1760
 
1811
1761
  if (err==ZIP_OK) /* offset of start of central directory with respect to the starting disk number */
1812
1762
  {
1813
- ZPOS64_T pos = centraldir_pos_inzip - zi->add_position_when_writting_offset;
1763
+ ZPOS64_T pos = centraldir_pos_inzip - zi->add_position_when_writing_offset;
1814
1764
  err = zip64local_putValue(&zi->z_filefunc,zi->filestream, (ZPOS64_T)pos,8);
1815
1765
  }
1816
1766
  return err;
1817
1767
  }
1818
- int Write_EndOfCentralDirectoryRecord(zip64_internal* zi, uLong size_centraldir, ZPOS64_T centraldir_pos_inzip)
1819
- {
1768
+
1769
+ local int Write_EndOfCentralDirectoryRecord(zip64_internal* zi, uLong size_centraldir, ZPOS64_T centraldir_pos_inzip) {
1820
1770
  int err = ZIP_OK;
1821
1771
 
1822
1772
  /*signature*/
@@ -1851,20 +1801,19 @@ int Write_EndOfCentralDirectoryRecord(zip64_internal* zi, uLong size_centraldir,
1851
1801
 
1852
1802
  if (err==ZIP_OK) /* offset of start of central directory with respect to the starting disk number */
1853
1803
  {
1854
- ZPOS64_T pos = centraldir_pos_inzip - zi->add_position_when_writting_offset;
1804
+ ZPOS64_T pos = centraldir_pos_inzip - zi->add_position_when_writing_offset;
1855
1805
  if(pos >= 0xffffffff)
1856
1806
  {
1857
1807
  err = zip64local_putValue(&zi->z_filefunc,zi->filestream, (uLong)0xffffffff,4);
1858
1808
  }
1859
1809
  else
1860
- err = zip64local_putValue(&zi->z_filefunc,zi->filestream, (uLong)(centraldir_pos_inzip - zi->add_position_when_writting_offset),4);
1810
+ err = zip64local_putValue(&zi->z_filefunc,zi->filestream, (uLong)(centraldir_pos_inzip - zi->add_position_when_writing_offset),4);
1861
1811
  }
1862
1812
 
1863
1813
  return err;
1864
1814
  }
1865
1815
 
1866
- int Write_GlobalComment(zip64_internal* zi, const char* global_comment)
1867
- {
1816
+ local int Write_GlobalComment(zip64_internal* zi, const char* global_comment) {
1868
1817
  int err = ZIP_OK;
1869
1818
  uInt size_global_comment = 0;
1870
1819
 
@@ -1881,8 +1830,7 @@ int Write_GlobalComment(zip64_internal* zi, const char* global_comment)
1881
1830
  return err;
1882
1831
  }
1883
1832
 
1884
- extern int ZEXPORT zipClose (zipFile file, const char* global_comment)
1885
- {
1833
+ extern int ZEXPORT zipClose(zipFile file, const char* global_comment) {
1886
1834
  zip64_internal* zi;
1887
1835
  int err = 0;
1888
1836
  uLong size_centraldir = 0;
@@ -1923,7 +1871,7 @@ extern int ZEXPORT zipClose (zipFile file, const char* global_comment)
1923
1871
  }
1924
1872
  free_linkedlist(&(zi->central_dir));
1925
1873
 
1926
- pos = centraldir_pos_inzip - zi->add_position_when_writting_offset;
1874
+ pos = centraldir_pos_inzip - zi->add_position_when_writing_offset;
1927
1875
  if(pos >= 0xffffffff || zi->number_entry > 0xFFFF)
1928
1876
  {
1929
1877
  ZPOS64_T Zip64EOCDpos = ZTELL64(zi->z_filefunc,zi->filestream);
@@ -1943,15 +1891,14 @@ extern int ZEXPORT zipClose (zipFile file, const char* global_comment)
1943
1891
  err = ZIP_ERRNO;
1944
1892
 
1945
1893
  #ifndef NO_ADDFILEINEXISTINGZIP
1946
- TRYFREE(zi->globalcomment);
1894
+ free(zi->globalcomment);
1947
1895
  #endif
1948
- TRYFREE(zi);
1896
+ free(zi);
1949
1897
 
1950
1898
  return err;
1951
1899
  }
1952
1900
 
1953
- extern int ZEXPORT zipRemoveExtraInfoBlock (char* pData, int* dataLen, short sHeader)
1954
- {
1901
+ extern int ZEXPORT zipRemoveExtraInfoBlock(char* pData, int* dataLen, short sHeader) {
1955
1902
  char* p = pData;
1956
1903
  int size = 0;
1957
1904
  char* pNewHeader;
@@ -1961,10 +1908,10 @@ extern int ZEXPORT zipRemoveExtraInfoBlock (char* pData, int* dataLen, short sHe
1961
1908
 
1962
1909
  int retVal = ZIP_OK;
1963
1910
 
1964
- if(pData == NULL || *dataLen < 4)
1911
+ if(pData == NULL || dataLen == NULL || *dataLen < 4)
1965
1912
  return ZIP_PARAMERROR;
1966
1913
 
1967
- pNewHeader = (char*)ALLOC(*dataLen);
1914
+ pNewHeader = (char*)ALLOC((unsigned)*dataLen);
1968
1915
  pTmp = pNewHeader;
1969
1916
 
1970
1917
  while(p < (pData + *dataLen))
@@ -2003,7 +1950,7 @@ extern int ZEXPORT zipRemoveExtraInfoBlock (char* pData, int* dataLen, short sHe
2003
1950
  else
2004
1951
  retVal = ZIP_ERRNO;
2005
1952
 
2006
- TRYFREE(pNewHeader);
1953
+ free(pNewHeader);
2007
1954
 
2008
1955
  return retVal;
2009
1956
  }