fast_excel 0.1.4 → 0.1.5

Sign up to get free protection for your applications and to get access to all the features.
Files changed (95) hide show
  1. checksums.yaml +4 -4
  2. data/.gitignore +5 -2
  3. data/Makefile +14 -0
  4. data/README.md +7 -2
  5. data/Rakefile +10 -0
  6. data/extconf.rb +0 -0
  7. data/fast_excel.gemspec +3 -1
  8. data/lib/fast_excel/binding.rb +3 -7
  9. data/lib/rubygems_plugin.rb +3 -0
  10. data/libxlsxwriter/.gitignore +49 -0
  11. data/libxlsxwriter/.indent.pro +125 -0
  12. data/libxlsxwriter/.travis.yml +25 -0
  13. data/libxlsxwriter/CONTRIBUTING.md +226 -0
  14. data/libxlsxwriter/Changes.txt +557 -0
  15. data/libxlsxwriter/LICENSE.txt +89 -0
  16. data/libxlsxwriter/Makefile +156 -0
  17. data/libxlsxwriter/Readme.md +78 -0
  18. data/libxlsxwriter/cocoapods/libxlsxwriter-umbrella.h +30 -0
  19. data/libxlsxwriter/cocoapods/libxlsxwriter.modulemap +7 -0
  20. data/libxlsxwriter/include/xlsxwriter/app.h +79 -0
  21. data/libxlsxwriter/include/xlsxwriter/chart.h +3476 -0
  22. data/libxlsxwriter/include/xlsxwriter/common.h +372 -0
  23. data/libxlsxwriter/include/xlsxwriter/content_types.h +74 -0
  24. data/libxlsxwriter/include/xlsxwriter/core.h +51 -0
  25. data/libxlsxwriter/include/xlsxwriter/custom.h +52 -0
  26. data/libxlsxwriter/include/xlsxwriter/drawing.h +111 -0
  27. data/libxlsxwriter/include/xlsxwriter/format.h +1214 -0
  28. data/libxlsxwriter/include/xlsxwriter/hash_table.h +76 -0
  29. data/libxlsxwriter/include/xlsxwriter/packager.h +80 -0
  30. data/libxlsxwriter/include/xlsxwriter/relationships.h +77 -0
  31. data/libxlsxwriter/include/xlsxwriter/shared_strings.h +83 -0
  32. data/libxlsxwriter/include/xlsxwriter/styles.h +77 -0
  33. data/libxlsxwriter/include/xlsxwriter/theme.h +47 -0
  34. data/libxlsxwriter/include/xlsxwriter/third_party/ioapi.h +214 -0
  35. data/libxlsxwriter/include/xlsxwriter/third_party/queue.h +694 -0
  36. data/libxlsxwriter/include/xlsxwriter/third_party/tmpfileplus.h +53 -0
  37. data/libxlsxwriter/include/xlsxwriter/third_party/tree.h +801 -0
  38. data/libxlsxwriter/include/xlsxwriter/third_party/zip.h +375 -0
  39. data/libxlsxwriter/include/xlsxwriter/utility.h +166 -0
  40. data/libxlsxwriter/include/xlsxwriter/workbook.h +757 -0
  41. data/libxlsxwriter/include/xlsxwriter/worksheet.h +2641 -0
  42. data/libxlsxwriter/include/xlsxwriter/xmlwriter.h +178 -0
  43. data/libxlsxwriter/include/xlsxwriter.h +23 -0
  44. data/libxlsxwriter/lib/.gitignore +0 -0
  45. data/libxlsxwriter/libxlsxwriter.podspec +47 -0
  46. data/libxlsxwriter/src/Makefile +130 -0
  47. data/libxlsxwriter/src/app.c +443 -0
  48. data/libxlsxwriter/src/chart.c +6346 -0
  49. data/libxlsxwriter/src/content_types.c +345 -0
  50. data/libxlsxwriter/src/core.c +293 -0
  51. data/libxlsxwriter/src/custom.c +224 -0
  52. data/libxlsxwriter/src/drawing.c +746 -0
  53. data/libxlsxwriter/src/format.c +729 -0
  54. data/libxlsxwriter/src/hash_table.c +223 -0
  55. data/libxlsxwriter/src/packager.c +948 -0
  56. data/libxlsxwriter/src/relationships.c +245 -0
  57. data/libxlsxwriter/src/shared_strings.c +266 -0
  58. data/libxlsxwriter/src/styles.c +1088 -0
  59. data/libxlsxwriter/src/theme.c +348 -0
  60. data/libxlsxwriter/src/utility.c +515 -0
  61. data/libxlsxwriter/src/workbook.c +1930 -0
  62. data/libxlsxwriter/src/worksheet.c +5022 -0
  63. data/libxlsxwriter/src/xmlwriter.c +355 -0
  64. data/libxlsxwriter/third_party/minizip/Makefile +44 -0
  65. data/libxlsxwriter/third_party/minizip/Makefile.am +45 -0
  66. data/libxlsxwriter/third_party/minizip/Makefile.orig +25 -0
  67. data/libxlsxwriter/third_party/minizip/MiniZip64_Changes.txt +6 -0
  68. data/libxlsxwriter/third_party/minizip/MiniZip64_info.txt +74 -0
  69. data/libxlsxwriter/third_party/minizip/README.txt +5 -0
  70. data/libxlsxwriter/third_party/minizip/configure.ac +32 -0
  71. data/libxlsxwriter/third_party/minizip/crypt.h +131 -0
  72. data/libxlsxwriter/third_party/minizip/ioapi.c +247 -0
  73. data/libxlsxwriter/third_party/minizip/ioapi.h +208 -0
  74. data/libxlsxwriter/third_party/minizip/iowin32.c +456 -0
  75. data/libxlsxwriter/third_party/minizip/iowin32.h +28 -0
  76. data/libxlsxwriter/third_party/minizip/make_vms.com +25 -0
  77. data/libxlsxwriter/third_party/minizip/miniunz.c +660 -0
  78. data/libxlsxwriter/third_party/minizip/miniunzip.1 +63 -0
  79. data/libxlsxwriter/third_party/minizip/minizip.1 +46 -0
  80. data/libxlsxwriter/third_party/minizip/minizip.c +520 -0
  81. data/libxlsxwriter/third_party/minizip/minizip.pc.in +12 -0
  82. data/libxlsxwriter/third_party/minizip/mztools.c +291 -0
  83. data/libxlsxwriter/third_party/minizip/mztools.h +37 -0
  84. data/libxlsxwriter/third_party/minizip/unzip.c +2125 -0
  85. data/libxlsxwriter/third_party/minizip/unzip.h +437 -0
  86. data/libxlsxwriter/third_party/minizip/zip.c +2007 -0
  87. data/libxlsxwriter/third_party/minizip/zip.h +367 -0
  88. data/libxlsxwriter/third_party/tmpfileplus/Makefile +42 -0
  89. data/libxlsxwriter/third_party/tmpfileplus/tmpfileplus.c +342 -0
  90. data/libxlsxwriter/third_party/tmpfileplus/tmpfileplus.h +53 -0
  91. data/libxlsxwriter/version.txt +1 -0
  92. metadata +89 -6
  93. data/binaries/libxlsxwriter-alpine.so +0 -0
  94. data/binaries/libxlsxwriter-darwin.dylib +0 -0
  95. data/binaries/libxlsxwriter-glibc.so +0 -0
@@ -0,0 +1,291 @@
1
+ /*
2
+ Additional tools for Minizip
3
+ Code: Xavier Roche '2004
4
+ License: Same as ZLIB (www.gzip.org)
5
+ */
6
+
7
+ /* Code */
8
+ #include <stdio.h>
9
+ #include <stdlib.h>
10
+ #include <string.h>
11
+ #include "zlib.h"
12
+ #include "unzip.h"
13
+
14
+ #define READ_8(adr) ((unsigned char)*(adr))
15
+ #define READ_16(adr) ( READ_8(adr) | (READ_8(adr+1) << 8) )
16
+ #define READ_32(adr) ( READ_16(adr) | (READ_16((adr)+2) << 16) )
17
+
18
+ #define WRITE_8(buff, n) do { \
19
+ *((unsigned char*)(buff)) = (unsigned char) ((n) & 0xff); \
20
+ } while(0)
21
+ #define WRITE_16(buff, n) do { \
22
+ WRITE_8((unsigned char*)(buff), n); \
23
+ WRITE_8(((unsigned char*)(buff)) + 1, (n) >> 8); \
24
+ } while(0)
25
+ #define WRITE_32(buff, n) do { \
26
+ WRITE_16((unsigned char*)(buff), (n) & 0xffff); \
27
+ WRITE_16((unsigned char*)(buff) + 2, (n) >> 16); \
28
+ } while(0)
29
+
30
+ extern int ZEXPORT unzRepair(file, fileOut, fileOutTmp, nRecovered, bytesRecovered)
31
+ const char* file;
32
+ const char* fileOut;
33
+ const char* fileOutTmp;
34
+ uLong* nRecovered;
35
+ uLong* bytesRecovered;
36
+ {
37
+ int err = Z_OK;
38
+ FILE* fpZip = fopen(file, "rb");
39
+ FILE* fpOut = fopen(fileOut, "wb");
40
+ FILE* fpOutCD = fopen(fileOutTmp, "wb");
41
+ if (fpZip != NULL && fpOut != NULL) {
42
+ int entries = 0;
43
+ uLong totalBytes = 0;
44
+ char header[30];
45
+ char filename[1024];
46
+ char extra[1024];
47
+ int offset = 0;
48
+ int offsetCD = 0;
49
+ while ( fread(header, 1, 30, fpZip) == 30 ) {
50
+ int currentOffset = offset;
51
+
52
+ /* File entry */
53
+ if (READ_32(header) == 0x04034b50) {
54
+ unsigned int version = READ_16(header + 4);
55
+ unsigned int gpflag = READ_16(header + 6);
56
+ unsigned int method = READ_16(header + 8);
57
+ unsigned int filetime = READ_16(header + 10);
58
+ unsigned int filedate = READ_16(header + 12);
59
+ unsigned int crc = READ_32(header + 14); /* crc */
60
+ unsigned int cpsize = READ_32(header + 18); /* compressed size */
61
+ unsigned int uncpsize = READ_32(header + 22); /* uncompressed sz */
62
+ unsigned int fnsize = READ_16(header + 26); /* file name length */
63
+ unsigned int extsize = READ_16(header + 28); /* extra field length */
64
+ filename[0] = extra[0] = '\0';
65
+
66
+ /* Header */
67
+ if (fwrite(header, 1, 30, fpOut) == 30) {
68
+ offset += 30;
69
+ } else {
70
+ err = Z_ERRNO;
71
+ break;
72
+ }
73
+
74
+ /* Filename */
75
+ if (fnsize > 0) {
76
+ if (fnsize < sizeof(filename)) {
77
+ if (fread(filename, 1, fnsize, fpZip) == fnsize) {
78
+ if (fwrite(filename, 1, fnsize, fpOut) == fnsize) {
79
+ offset += fnsize;
80
+ } else {
81
+ err = Z_ERRNO;
82
+ break;
83
+ }
84
+ } else {
85
+ err = Z_ERRNO;
86
+ break;
87
+ }
88
+ } else {
89
+ err = Z_ERRNO;
90
+ break;
91
+ }
92
+ } else {
93
+ err = Z_STREAM_ERROR;
94
+ break;
95
+ }
96
+
97
+ /* Extra field */
98
+ if (extsize > 0) {
99
+ if (extsize < sizeof(extra)) {
100
+ if (fread(extra, 1, extsize, fpZip) == extsize) {
101
+ if (fwrite(extra, 1, extsize, fpOut) == extsize) {
102
+ offset += extsize;
103
+ } else {
104
+ err = Z_ERRNO;
105
+ break;
106
+ }
107
+ } else {
108
+ err = Z_ERRNO;
109
+ break;
110
+ }
111
+ } else {
112
+ err = Z_ERRNO;
113
+ break;
114
+ }
115
+ }
116
+
117
+ /* Data */
118
+ {
119
+ int dataSize = cpsize;
120
+ if (dataSize == 0) {
121
+ dataSize = uncpsize;
122
+ }
123
+ if (dataSize > 0) {
124
+ char* data = malloc(dataSize);
125
+ if (data != NULL) {
126
+ if ((int)fread(data, 1, dataSize, fpZip) == dataSize) {
127
+ if ((int)fwrite(data, 1, dataSize, fpOut) == dataSize) {
128
+ offset += dataSize;
129
+ totalBytes += dataSize;
130
+ } else {
131
+ err = Z_ERRNO;
132
+ }
133
+ } else {
134
+ err = Z_ERRNO;
135
+ }
136
+ free(data);
137
+ if (err != Z_OK) {
138
+ break;
139
+ }
140
+ } else {
141
+ err = Z_MEM_ERROR;
142
+ break;
143
+ }
144
+ }
145
+ }
146
+
147
+ /* Central directory entry */
148
+ {
149
+ char header[46];
150
+ char* comment = "";
151
+ int comsize = (int) strlen(comment);
152
+ WRITE_32(header, 0x02014b50);
153
+ WRITE_16(header + 4, version);
154
+ WRITE_16(header + 6, version);
155
+ WRITE_16(header + 8, gpflag);
156
+ WRITE_16(header + 10, method);
157
+ WRITE_16(header + 12, filetime);
158
+ WRITE_16(header + 14, filedate);
159
+ WRITE_32(header + 16, crc);
160
+ WRITE_32(header + 20, cpsize);
161
+ WRITE_32(header + 24, uncpsize);
162
+ WRITE_16(header + 28, fnsize);
163
+ WRITE_16(header + 30, extsize);
164
+ WRITE_16(header + 32, comsize);
165
+ WRITE_16(header + 34, 0); /* disk # */
166
+ WRITE_16(header + 36, 0); /* int attrb */
167
+ WRITE_32(header + 38, 0); /* ext attrb */
168
+ WRITE_32(header + 42, currentOffset);
169
+ /* Header */
170
+ if (fwrite(header, 1, 46, fpOutCD) == 46) {
171
+ offsetCD += 46;
172
+
173
+ /* Filename */
174
+ if (fnsize > 0) {
175
+ if (fwrite(filename, 1, fnsize, fpOutCD) == fnsize) {
176
+ offsetCD += fnsize;
177
+ } else {
178
+ err = Z_ERRNO;
179
+ break;
180
+ }
181
+ } else {
182
+ err = Z_STREAM_ERROR;
183
+ break;
184
+ }
185
+
186
+ /* Extra field */
187
+ if (extsize > 0) {
188
+ if (fwrite(extra, 1, extsize, fpOutCD) == extsize) {
189
+ offsetCD += extsize;
190
+ } else {
191
+ err = Z_ERRNO;
192
+ break;
193
+ }
194
+ }
195
+
196
+ /* Comment field */
197
+ if (comsize > 0) {
198
+ if ((int)fwrite(comment, 1, comsize, fpOutCD) == comsize) {
199
+ offsetCD += comsize;
200
+ } else {
201
+ err = Z_ERRNO;
202
+ break;
203
+ }
204
+ }
205
+
206
+
207
+ } else {
208
+ err = Z_ERRNO;
209
+ break;
210
+ }
211
+ }
212
+
213
+ /* Success */
214
+ entries++;
215
+
216
+ } else {
217
+ break;
218
+ }
219
+ }
220
+
221
+ /* Final central directory */
222
+ {
223
+ int entriesZip = entries;
224
+ char header[22];
225
+ char* comment = ""; // "ZIP File recovered by zlib/minizip/mztools";
226
+ int comsize = (int) strlen(comment);
227
+ if (entriesZip > 0xffff) {
228
+ entriesZip = 0xffff;
229
+ }
230
+ WRITE_32(header, 0x06054b50);
231
+ WRITE_16(header + 4, 0); /* disk # */
232
+ WRITE_16(header + 6, 0); /* disk # */
233
+ WRITE_16(header + 8, entriesZip); /* hack */
234
+ WRITE_16(header + 10, entriesZip); /* hack */
235
+ WRITE_32(header + 12, offsetCD); /* size of CD */
236
+ WRITE_32(header + 16, offset); /* offset to CD */
237
+ WRITE_16(header + 20, comsize); /* comment */
238
+
239
+ /* Header */
240
+ if (fwrite(header, 1, 22, fpOutCD) == 22) {
241
+
242
+ /* Comment field */
243
+ if (comsize > 0) {
244
+ if ((int)fwrite(comment, 1, comsize, fpOutCD) != comsize) {
245
+ err = Z_ERRNO;
246
+ }
247
+ }
248
+
249
+ } else {
250
+ err = Z_ERRNO;
251
+ }
252
+ }
253
+
254
+ /* Final merge (file + central directory) */
255
+ fclose(fpOutCD);
256
+ if (err == Z_OK) {
257
+ fpOutCD = fopen(fileOutTmp, "rb");
258
+ if (fpOutCD != NULL) {
259
+ int nRead;
260
+ char buffer[8192];
261
+ while ( (nRead = (int)fread(buffer, 1, sizeof(buffer), fpOutCD)) > 0) {
262
+ if ((int)fwrite(buffer, 1, nRead, fpOut) != nRead) {
263
+ err = Z_ERRNO;
264
+ break;
265
+ }
266
+ }
267
+ fclose(fpOutCD);
268
+ }
269
+ }
270
+
271
+ /* Close */
272
+ fclose(fpZip);
273
+ fclose(fpOut);
274
+
275
+ /* Wipe temporary file */
276
+ (void)remove(fileOutTmp);
277
+
278
+ /* Number of recovered entries */
279
+ if (err == Z_OK) {
280
+ if (nRecovered != NULL) {
281
+ *nRecovered = entries;
282
+ }
283
+ if (bytesRecovered != NULL) {
284
+ *bytesRecovered = totalBytes;
285
+ }
286
+ }
287
+ } else {
288
+ err = Z_STREAM_ERROR;
289
+ }
290
+ return err;
291
+ }
@@ -0,0 +1,37 @@
1
+ /*
2
+ Additional tools for Minizip
3
+ Code: Xavier Roche '2004
4
+ License: Same as ZLIB (www.gzip.org)
5
+ */
6
+
7
+ #ifndef _zip_tools_H
8
+ #define _zip_tools_H
9
+
10
+ #ifdef __cplusplus
11
+ extern "C" {
12
+ #endif
13
+
14
+ #ifndef _ZLIB_H
15
+ #include "zlib.h"
16
+ #endif
17
+
18
+ #include "unzip.h"
19
+
20
+ /* Repair a ZIP file (missing central directory)
21
+ file: file to recover
22
+ fileOut: output file after recovery
23
+ fileOutTmp: temporary file name used for recovery
24
+ */
25
+ extern int ZEXPORT unzRepair(const char* file,
26
+ const char* fileOut,
27
+ const char* fileOutTmp,
28
+ uLong* nRecovered,
29
+ uLong* bytesRecovered);
30
+
31
+
32
+ #ifdef __cplusplus
33
+ }
34
+ #endif
35
+
36
+
37
+ #endif