xlsxwriter 0.0.5 → 0.0.6
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/ext/xlsxwriter/libxlsxwriter/include/xlsxwriter.h +1 -1
- data/ext/xlsxwriter/libxlsxwriter/include/xlsxwriter/chart.h +55 -5
- data/ext/xlsxwriter/libxlsxwriter/include/xlsxwriter/chartsheet.h +544 -0
- data/ext/xlsxwriter/libxlsxwriter/include/xlsxwriter/common.h +6 -0
- data/ext/xlsxwriter/libxlsxwriter/include/xlsxwriter/content_types.h +2 -0
- data/ext/xlsxwriter/libxlsxwriter/include/xlsxwriter/drawing.h +1 -0
- data/ext/xlsxwriter/libxlsxwriter/include/xlsxwriter/format.h +1 -1
- data/ext/xlsxwriter/libxlsxwriter/include/xlsxwriter/shared_strings.h +3 -1
- data/ext/xlsxwriter/libxlsxwriter/include/xlsxwriter/styles.h +7 -2
- data/ext/xlsxwriter/libxlsxwriter/include/xlsxwriter/utility.h +16 -0
- data/ext/xlsxwriter/libxlsxwriter/include/xlsxwriter/workbook.h +122 -24
- data/ext/xlsxwriter/libxlsxwriter/include/xlsxwriter/worksheet.h +236 -48
- data/ext/xlsxwriter/libxlsxwriter/include/xlsxwriter/xmlwriter.h +2 -0
- data/ext/xlsxwriter/libxlsxwriter/src/chart.c +40 -4
- data/ext/xlsxwriter/libxlsxwriter/src/chartsheet.c +508 -0
- data/ext/xlsxwriter/libxlsxwriter/src/content_types.c +10 -0
- data/ext/xlsxwriter/libxlsxwriter/src/drawing.c +100 -3
- data/ext/xlsxwriter/libxlsxwriter/src/packager.c +252 -30
- data/ext/xlsxwriter/libxlsxwriter/src/shared_strings.c +16 -2
- data/ext/xlsxwriter/libxlsxwriter/src/styles.c +54 -7
- data/ext/xlsxwriter/libxlsxwriter/src/utility.c +43 -1
- data/ext/xlsxwriter/libxlsxwriter/src/workbook.c +254 -41
- data/ext/xlsxwriter/libxlsxwriter/src/worksheet.c +381 -65
- data/ext/xlsxwriter/libxlsxwriter/src/xmlwriter.c +16 -7
- data/ext/xlsxwriter/libxlsxwriter/third_party/minizip/ioapi.c +10 -0
- data/ext/xlsxwriter/libxlsxwriter/third_party/minizip/zip.c +2 -0
- data/ext/xlsxwriter/libxlsxwriter/third_party/tmpfileplus/tmpfileplus.c +2 -2
- data/ext/xlsxwriter/workbook.c +9 -6
- data/lib/xlsxwriter/version.rb +1 -1
- metadata +5 -4
@@ -140,6 +140,15 @@ lxw_xml_data_element(FILE * xmlfile,
|
|
140
140
|
fprintf(xmlfile, "</%s>", tag);
|
141
141
|
}
|
142
142
|
|
143
|
+
/*
|
144
|
+
* Write an XML <si> element for rich strings, without encoding.
|
145
|
+
*/
|
146
|
+
void
|
147
|
+
lxw_xml_rich_si_element(FILE * xmlfile, const char *string)
|
148
|
+
{
|
149
|
+
fprintf(xmlfile, "<si>%s</si>", string);
|
150
|
+
}
|
151
|
+
|
143
152
|
/*
|
144
153
|
* Escape XML characters in attributes.
|
145
154
|
*/
|
@@ -153,19 +162,19 @@ _escape_attributes(struct xml_attribute *attribute)
|
|
153
162
|
while (*p_attr) {
|
154
163
|
switch (*p_attr) {
|
155
164
|
case '&':
|
156
|
-
|
165
|
+
memcpy(p_encoded, LXW_AMP, sizeof(LXW_AMP) - 1);
|
157
166
|
p_encoded += sizeof(LXW_AMP) - 1;
|
158
167
|
break;
|
159
168
|
case '<':
|
160
|
-
|
169
|
+
memcpy(p_encoded, LXW_LT, sizeof(LXW_LT) - 1);
|
161
170
|
p_encoded += sizeof(LXW_LT) - 1;
|
162
171
|
break;
|
163
172
|
case '>':
|
164
|
-
|
173
|
+
memcpy(p_encoded, LXW_GT, sizeof(LXW_GT) - 1);
|
165
174
|
p_encoded += sizeof(LXW_GT) - 1;
|
166
175
|
break;
|
167
176
|
case '"':
|
168
|
-
|
177
|
+
memcpy(p_encoded, LXW_QUOT, sizeof(LXW_QUOT) - 1);
|
169
178
|
p_encoded += sizeof(LXW_QUOT) - 1;
|
170
179
|
break;
|
171
180
|
default:
|
@@ -195,15 +204,15 @@ lxw_escape_data(const char *data)
|
|
195
204
|
while (*data) {
|
196
205
|
switch (*data) {
|
197
206
|
case '&':
|
198
|
-
|
207
|
+
memcpy(p_encoded, LXW_AMP, sizeof(LXW_AMP) - 1);
|
199
208
|
p_encoded += sizeof(LXW_AMP) - 1;
|
200
209
|
break;
|
201
210
|
case '<':
|
202
|
-
|
211
|
+
memcpy(p_encoded, LXW_LT, sizeof(LXW_LT) - 1);
|
203
212
|
p_encoded += sizeof(LXW_LT) - 1;
|
204
213
|
break;
|
205
214
|
case '>':
|
206
|
-
|
215
|
+
memcpy(p_encoded, LXW_GT, sizeof(LXW_GT) - 1);
|
207
216
|
p_encoded += sizeof(LXW_GT) - 1;
|
208
217
|
break;
|
209
218
|
default:
|
@@ -96,6 +96,7 @@ static voidpf ZCALLBACK fopen_file_func (voidpf opaque, const char* filename, in
|
|
96
96
|
{
|
97
97
|
FILE* file = NULL;
|
98
98
|
const char* mode_fopen = NULL;
|
99
|
+
(void) opaque;
|
99
100
|
if ((mode & ZLIB_FILEFUNC_MODE_READWRITEFILTER)==ZLIB_FILEFUNC_MODE_READ)
|
100
101
|
mode_fopen = "rb";
|
101
102
|
else
|
@@ -114,6 +115,7 @@ static voidpf ZCALLBACK fopen64_file_func (voidpf opaque, const void* filename,
|
|
114
115
|
{
|
115
116
|
FILE* file = NULL;
|
116
117
|
const char* mode_fopen = NULL;
|
118
|
+
(void) opaque;
|
117
119
|
if ((mode & ZLIB_FILEFUNC_MODE_READWRITEFILTER)==ZLIB_FILEFUNC_MODE_READ)
|
118
120
|
mode_fopen = "rb";
|
119
121
|
else
|
@@ -132,6 +134,7 @@ static voidpf ZCALLBACK fopen64_file_func (voidpf opaque, const void* filename,
|
|
132
134
|
static uLong ZCALLBACK fread_file_func (voidpf opaque, voidpf stream, void* buf, uLong size)
|
133
135
|
{
|
134
136
|
uLong ret;
|
137
|
+
(void) opaque;
|
135
138
|
ret = (uLong)fread(buf, 1, (size_t)size, (FILE *)stream);
|
136
139
|
return ret;
|
137
140
|
}
|
@@ -139,6 +142,7 @@ static uLong ZCALLBACK fread_file_func (voidpf opaque, voidpf stream, void* buf,
|
|
139
142
|
static uLong ZCALLBACK fwrite_file_func (voidpf opaque, voidpf stream, const void* buf, uLong size)
|
140
143
|
{
|
141
144
|
uLong ret;
|
145
|
+
(void) opaque;
|
142
146
|
ret = (uLong)fwrite(buf, 1, (size_t)size, (FILE *)stream);
|
143
147
|
return ret;
|
144
148
|
}
|
@@ -146,6 +150,7 @@ static uLong ZCALLBACK fwrite_file_func (voidpf opaque, voidpf stream, const voi
|
|
146
150
|
static long ZCALLBACK ftell_file_func (voidpf opaque, voidpf stream)
|
147
151
|
{
|
148
152
|
long ret;
|
153
|
+
(void) opaque;
|
149
154
|
ret = ftell((FILE *)stream);
|
150
155
|
return ret;
|
151
156
|
}
|
@@ -154,6 +159,7 @@ static long ZCALLBACK ftell_file_func (voidpf opaque, voidpf stream)
|
|
154
159
|
static ZPOS64_T ZCALLBACK ftell64_file_func (voidpf opaque, voidpf stream)
|
155
160
|
{
|
156
161
|
ZPOS64_T ret;
|
162
|
+
(void) opaque;
|
157
163
|
ret = FTELLO_FUNC((FILE *)stream);
|
158
164
|
return ret;
|
159
165
|
}
|
@@ -162,6 +168,7 @@ static long ZCALLBACK fseek_file_func (voidpf opaque, voidpf stream, uLong offs
|
|
162
168
|
{
|
163
169
|
int fseek_origin=0;
|
164
170
|
long ret;
|
171
|
+
(void) opaque;
|
165
172
|
switch (origin)
|
166
173
|
{
|
167
174
|
case ZLIB_FILEFUNC_SEEK_CUR :
|
@@ -185,6 +192,7 @@ static long ZCALLBACK fseek64_file_func (voidpf opaque, voidpf stream, ZPOS64_T
|
|
185
192
|
{
|
186
193
|
int fseek_origin=0;
|
187
194
|
long ret;
|
195
|
+
(void) opaque;
|
188
196
|
switch (origin)
|
189
197
|
{
|
190
198
|
case ZLIB_FILEFUNC_SEEK_CUR :
|
@@ -210,6 +218,7 @@ static long ZCALLBACK fseek64_file_func (voidpf opaque, voidpf stream, ZPOS64_T
|
|
210
218
|
static int ZCALLBACK fclose_file_func (voidpf opaque, voidpf stream)
|
211
219
|
{
|
212
220
|
int ret;
|
221
|
+
(void) opaque;
|
213
222
|
ret = fclose((FILE *)stream);
|
214
223
|
return ret;
|
215
224
|
}
|
@@ -217,6 +226,7 @@ static int ZCALLBACK fclose_file_func (voidpf opaque, voidpf stream)
|
|
217
226
|
static int ZCALLBACK ferror_file_func (voidpf opaque, voidpf stream)
|
218
227
|
{
|
219
228
|
int ret;
|
229
|
+
(void) opaque;
|
220
230
|
ret = ferror((FILE *)stream);
|
221
231
|
return ret;
|
222
232
|
}
|
@@ -519,12 +519,14 @@ local ZPOS64_T zip64local_SearchCentralDir(const zlib_filefunc64_32_def* pzlib_f
|
|
519
519
|
break;
|
520
520
|
|
521
521
|
for (i=(int)uReadSize-3; (i--)>0;)
|
522
|
+
{
|
522
523
|
if (((*(buf+i))==0x50) && ((*(buf+i+1))==0x4b) &&
|
523
524
|
((*(buf+i+2))==0x05) && ((*(buf+i+3))==0x06))
|
524
525
|
{
|
525
526
|
uPosFound = uReadPos+i;
|
526
527
|
break;
|
527
528
|
}
|
529
|
+
}
|
528
530
|
|
529
531
|
if (uPosFound!=0)
|
530
532
|
break;
|
@@ -169,7 +169,7 @@ static char *getenv_save(const char *varname, char *buf, size_t bufsize)
|
|
169
169
|
buf[0] = '\0';
|
170
170
|
if (ptr)
|
171
171
|
{
|
172
|
-
strncpy(buf, ptr, bufsize);
|
172
|
+
strncpy(buf, ptr, bufsize-1);
|
173
173
|
buf[bufsize-1] = '\0';
|
174
174
|
return buf;
|
175
175
|
}
|
@@ -189,7 +189,7 @@ static FILE *mktempfile_internal(const char *tmpdir, const char *pfx, char **tmp
|
|
189
189
|
*/
|
190
190
|
{
|
191
191
|
FILE *fp;
|
192
|
-
int fd;
|
192
|
+
int fd = 0;
|
193
193
|
char randpart[] = "1234567890";
|
194
194
|
size_t lentempname;
|
195
195
|
int i;
|
data/ext/xlsxwriter/workbook.c
CHANGED
@@ -13,8 +13,7 @@ VALUE workbook_release(VALUE self);
|
|
13
13
|
|
14
14
|
|
15
15
|
VALUE
|
16
|
-
workbook_alloc(VALUE klass)
|
17
|
-
{
|
16
|
+
workbook_alloc(VALUE klass) {
|
18
17
|
VALUE obj;
|
19
18
|
struct workbook *ptr;
|
20
19
|
|
@@ -308,17 +307,20 @@ workbook_define_name_(VALUE self, VALUE name, VALUE formula) {
|
|
308
307
|
return self;
|
309
308
|
}
|
310
309
|
|
311
|
-
/* call-seq:
|
310
|
+
/* call-seq:
|
311
|
+
* wb.validate_sheet_name(name) -> true
|
312
|
+
* wb.validate_worksheet_name(name) -> true
|
312
313
|
*
|
313
314
|
* Validates a worksheet +name+. Returns +true+ or raises an exception (not
|
314
315
|
* implemented yet).
|
316
|
+
*
|
315
317
|
*/
|
316
318
|
VALUE
|
317
|
-
|
319
|
+
workbook_validate_sheet_name_(VALUE self, VALUE name) {
|
318
320
|
struct workbook *ptr;
|
319
321
|
lxw_error err;
|
320
322
|
Data_Get_Struct(self, struct workbook, ptr);
|
321
|
-
err =
|
323
|
+
err = workbook_validate_sheet_name(ptr->workbook, StringValueCStr(name));
|
322
324
|
handle_lxw_error(err);
|
323
325
|
return Qtrue;
|
324
326
|
}
|
@@ -386,7 +388,8 @@ init_xlsxwriter_workbook() {
|
|
386
388
|
rb_define_method(cWorkbook, "set_default_xf_indices", workbook_set_default_xf_indices_, 0);
|
387
389
|
rb_define_method(cWorkbook, "properties", workbook_properties_, 0);
|
388
390
|
rb_define_method(cWorkbook, "define_name", workbook_define_name_, 2);
|
389
|
-
rb_define_method(cWorkbook, "
|
391
|
+
rb_define_method(cWorkbook, "validate_sheet_name", workbook_validate_sheet_name_, 1);
|
392
|
+
rb_define_method(cWorkbook, "validate_worksheet_name", workbook_validate_sheet_name_, 1);
|
390
393
|
|
391
394
|
/*
|
392
395
|
* This attribute contains effective font widths used for automatic column
|
data/lib/xlsxwriter/version.rb
CHANGED
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: xlsxwriter
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0.
|
4
|
+
version: 0.0.6
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Nick H
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date:
|
11
|
+
date: 2019-01-20 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: rake-compiler
|
@@ -70,6 +70,7 @@ files:
|
|
70
70
|
- ext/xlsxwriter/libxlsxwriter/include/xlsxwriter.h
|
71
71
|
- ext/xlsxwriter/libxlsxwriter/include/xlsxwriter/app.h
|
72
72
|
- ext/xlsxwriter/libxlsxwriter/include/xlsxwriter/chart.h
|
73
|
+
- ext/xlsxwriter/libxlsxwriter/include/xlsxwriter/chartsheet.h
|
73
74
|
- ext/xlsxwriter/libxlsxwriter/include/xlsxwriter/common.h
|
74
75
|
- ext/xlsxwriter/libxlsxwriter/include/xlsxwriter/content_types.h
|
75
76
|
- ext/xlsxwriter/libxlsxwriter/include/xlsxwriter/core.h
|
@@ -95,6 +96,7 @@ files:
|
|
95
96
|
- ext/xlsxwriter/libxlsxwriter/src/Makefile
|
96
97
|
- ext/xlsxwriter/libxlsxwriter/src/app.c
|
97
98
|
- ext/xlsxwriter/libxlsxwriter/src/chart.c
|
99
|
+
- ext/xlsxwriter/libxlsxwriter/src/chartsheet.c
|
98
100
|
- ext/xlsxwriter/libxlsxwriter/src/content_types.c
|
99
101
|
- ext/xlsxwriter/libxlsxwriter/src/core.c
|
100
102
|
- ext/xlsxwriter/libxlsxwriter/src/custom.c
|
@@ -197,8 +199,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
197
199
|
- !ruby/object:Gem::Version
|
198
200
|
version: '0'
|
199
201
|
requirements: []
|
200
|
-
|
201
|
-
rubygems_version: 2.7.7
|
202
|
+
rubygems_version: 3.0.1
|
202
203
|
signing_key:
|
203
204
|
specification_version: 4
|
204
205
|
summary: Ruby interface to libxlsxwriter
|