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.
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
@@ -1,6 +1,348 @@
1
1
  /**
2
2
  @page changes Changes
3
3
 
4
+
5
+ ## 1.1.5 December 30 2022
6
+
7
+ - Added support for writing a workbook to a memory buffer instead of to a file
8
+ via the `output_buffer` parameter of @ref workbook_new_opt(). See also
9
+ @ref output_buffer.c.
10
+
11
+ - Add support for using in-memory data instead of temporary files on systems where
12
+ `fmemopen()` and `open_memstream()` are supported. This requires the `USE_MEM_FILE`
13
+ compilation option.
14
+
15
+
16
+ ## 1.1.4 October 9 2021
17
+
18
+ - Added support for Worksheet tables. Tables in Excel are a way of grouping a
19
+ range of cells into a single entity that has common formatting or that can
20
+ be referenced from formulas. Tables can have column headers, autofilters,
21
+ total rows, column formulas and default formatting. See @ref
22
+ working_with_tables and @ref tables.c.
23
+
24
+ - Added support for adding a macro button to a worksheet. See @ref macro.c.
25
+
26
+ ## 1.1.3 August 9 2021
27
+
28
+ - Changed worksheet_filter_column2() parameter name "operator" to "and_or" to
29
+ avoid a conflict with the C++ reserved keyword.
30
+
31
+ ## 1.1.2 August 8 2021
32
+
33
+ - Added support for autofilter rules. See @ref working_with_autofilters and
34
+ @ref autofilter.c.
35
+
36
+ Feature request [#254][gh_254].
37
+
38
+ [gh_254]: https://github.com/jmcnamara/libxlsxwriter/issues/254
39
+
40
+ - Added Description/Alt Text and Decorative accessibility options for
41
+ charts. These options were already available for images.
42
+
43
+
44
+ ## 1.1.1 July 12 2021
45
+
46
+ - Added optional third party library to handle sprintf handling of
47
+ doubles. This is to avoid issues with number formatting in some locales. The
48
+ optional library is the Milo Yip DTOA implementation. See @ref gsg_dtoa.
49
+
50
+ Issue [#272][gh_272].
51
+
52
+ [gh_272]: https://github.com/jmcnamara/libxlsxwriter/issues/272
53
+
54
+ - Added the #LXW_EXPLICIT_FALSE variable to allow the default bold property in
55
+ chart title fonts to be turned off.
56
+
57
+ Issue [#199][gh_199].
58
+
59
+ [gh_199]: https://github.com/jmcnamara/libxlsxwriter/issues/199
60
+
61
+ ## 1.1.0 July 9 2021
62
+
63
+ - Fix for Cocoapod issue where local md5 files conflicted with BoringSSL headers.
64
+
65
+ Issue [#342][gh_342].
66
+
67
+ [gh_342]: https://github.com/jmcnamara/libxlsxwriter/issues/342
68
+
69
+ ## 1.0.9 July 7 2021
70
+
71
+ - Added support for Excel 365 dynamic arrays. See
72
+ `worksheet_write_dynamic_array_formula()` `worksheet_write_dynamic_formula()`
73
+ and @ref ww_formulas_dynamic_arrays.
74
+
75
+
76
+ ## 1.0.8 July 3 2021
77
+
78
+ - Fix for dynamic library soname on Linux.
79
+
80
+
81
+ ## 1.0.7 July 1 2021
82
+
83
+ - Added support for writing Unix date/times via the
84
+ `worksheet_write_unixtime()` function.
85
+
86
+ - Added support for dynamic library soname version to help packagers and build
87
+ systems differentiate ABI versions.
88
+
89
+
90
+ ## 1.0.6 May 28 2021
91
+
92
+ - Added support for using OpenSSL MD5 functions instead of built in third
93
+ party library. See @ref gsg_md5.
94
+
95
+
96
+ ## 1.0.5 May 13 2021
97
+
98
+ - Added support for worksheet background images via
99
+ `worksheet_set_background()`.
100
+
101
+
102
+ ## 1.0.4 May 8 2021
103
+
104
+ - Added support for GIF image files (and in Excel 365, animated GIF files).
105
+
106
+
107
+ ## 1.0.3 April 20 2021
108
+
109
+ - Added some fixes to make the library compile more cleanly as an R library.
110
+
111
+
112
+ ## 1.0.2 April 15 2021
113
+
114
+ - Added option to set row heights and column widths in pixels via the
115
+ `worksheet_set_row_pixels()` and `worksheet_set_column_pixels()` functions.
116
+
117
+ ## 1.0.1 March 30 2021
118
+
119
+ - Added support for [pkg-config][pkg-config] to Make/Cmake installs. See the
120
+ @ref gsg_using section of the Getting Started guide.
121
+ </p>
122
+
123
+ [pkg-config]: https://www.freedesktop.org/wiki/Software/pkg-config/
124
+
125
+ - Added ability to add accessibility options "description" and "decorative" to
126
+ images via `worksheet_insert_image_opt()` and #lxw_image_options.
127
+ </p>
128
+
129
+ - Added the `workbook_read_only_recommended()` function to set the Excel
130
+ "Read-only Recommended" option that is available when saving a file.
131
+ </p>
132
+
133
+ - Fixed issue where pattern formats without colors were given a default black
134
+ fill color.
135
+ </p>
136
+
137
+ - Added option to set a chart crossing to 'min' via
138
+ `chart_axis_set_crossing_min()` as well as the existing 'max' option. The
139
+ 'min' option isn't available in the Excel interface but can be enabled via
140
+ VBA.
141
+ </p>
142
+
143
+ - Added some additional information on using constant_memory mode with memory
144
+ mounted /tmp directories. See @ref ww_mem_temp.
145
+
146
+ Issue [#306][gh_306].
147
+
148
+ [gh_306]: https://github.com/jmcnamara/libxlsxwriter/issues/306
149
+
150
+ - Added build option to compile libxlsxwriter as a "universal binary" for both
151
+ Apple silicon and Intel-based Macs, i.e., arm64 and x86_64. See @ref
152
+ gsg_universal.
153
+ </p>
154
+
155
+ - Fixed issue where the limit for header/footer strings was
156
+ 255 bytes instead of 255 characters and as a result UTF8
157
+ strings were being truncated.
158
+
159
+ Issue [#305][gh_305].
160
+
161
+ [gh_305]: https://github.com/jmcnamara/libxlsxwriter/issues/305
162
+
163
+
164
+ ## 1.0.0 September 7 2020
165
+
166
+ - Added support for worksheet conditional formatting. See
167
+ `worksheet_conditional_format_range()` and @ref
168
+ working_with_conditional_formatting.
169
+
170
+ Feature request [#32][gh_32] and [#302][gh_302].
171
+
172
+ [gh_302]: https://github.com/jmcnamara/libxlsxwriter/issues/302
173
+ [gh_32]: https://github.com/jmcnamara/libxlsxwriter/issues/32
174
+
175
+ - Added performance optimization for search for control characters in strings
176
+ in `worksheet_write_string()`.
177
+
178
+ Issue [#298][gh_298].
179
+
180
+ [gh_298]: https://github.com/jmcnamara/libxlsxwriter/issues/298
181
+
182
+ - Made `lxw_datetime_to_excel_datetime()` a function public.
183
+ </p>
184
+
185
+ - There are now over 1000 test cases, including 650 tests that compare the
186
+ output from libxlsxwriter, byte for byte, against test files created in
187
+ Excel. This is also the 100th release of libxlsxwriter.
188
+
189
+
190
+ ## 0.9.9 August 17 2020
191
+
192
+ - Added support for images in headers and footers. See `worksheet_set_header_opt()`.
193
+
194
+ - Added `worksheet_ignore_errors()` function to ignore Excel worksheet
195
+ errors/warnings in user defined ranges.
196
+
197
+
198
+ ## 0.9.8 August 11 2020
199
+
200
+ - Added formatting for chart data labels and chart custom data labels. See
201
+ @ref chart_custom_labels and @ref chart_data_labels.c.
202
+
203
+
204
+ ## 0.9.7 August 4 2020
205
+
206
+ - Changed #lxw_chart_data_label field from `.delete` to `.hide` in order to
207
+ avoid reserved word conflict with C++.
208
+ Issue [#300][gh_300].
209
+
210
+ [gh_300]: https://github.com/jmcnamara/libxlsxwriter/issues/300
211
+
212
+
213
+ ## 0.9.6 August 3 2020
214
+
215
+ - Added support for chart custom data labels. See @ref chart_custom_labels and
216
+ @ref chart_data_labels.c.
217
+
218
+ - Fix for issue where array formulas weren't included in the output file for
219
+ certain ranges/conditions. Issue [#735][gh_735].
220
+
221
+ [gh_735]: https://github.com/jmcnamara/XlsxWriter/issues/735
222
+
223
+
224
+ ## 0.9.5 May 31 2020
225
+
226
+ - Fix for issue where hyperlinks urls and tips were ignored for
227
+ `worksheet_insert_image_buffer_opt()` images.
228
+ Issue [#292][gh_292].
229
+
230
+ [gh_292]: https://github.com/jmcnamara/libxlsxwriter/issues/292
231
+
232
+ - Added #LXW_CHART_LINE_STACKED and #LXW_CHART_LINE_STACKED_PERCENT line
233
+ charts subtypes.
234
+
235
+ - Removed LXW_ERROR_SHEETNAME_RESERVED warning which was used with the
236
+ reserved worksheet name "History". However, this is an allowed worksheet
237
+ name in some Excel variants so the warning has been turned into a
238
+ documentation note instead.
239
+
240
+
241
+ ## 0.9.4 January 19 2020
242
+
243
+ - Added option to specify worksheet "object positioning" for images and charts
244
+ to define how they move or size with underlying cells. See @ref
245
+ ww_object_position_options and @ref working_with_object_positioning.
246
+
247
+
248
+ ## 0.9.3 January 13 2020
249
+
250
+ - Fix Xcode/Cocoapods build warnings.
251
+
252
+
253
+ ## 0.9.2 January 13 2020
254
+
255
+ - Added support for writing cell comments, see @ref working_with_comments.
256
+
257
+ - Makefile now respects DESTDIR and PREFIX, including when setting rpath on
258
+ macOS.
259
+
260
+ - Changed function names in bundled MD5 code to avoid conflicts with OpenSSL.
261
+
262
+
263
+ ## 0.9.1 December 26 2019
264
+
265
+ - Fix to missing MD5 linkage in Cocoapod file.
266
+ Issue [#259][gh_259].
267
+
268
+ [gh_259]: https://github.com/jmcnamara/libxlsxwriter/issues/259
269
+
270
+
271
+ ## 0.9.0 December 26 2019
272
+
273
+ - Fix to avoid duplicate images being copied to an libxlsxwriter file. Excel
274
+ uses an optimization where it only stores one copy of a repeated/duplicate
275
+ image in a workbook. Libxlsxwriter didn't do this which meant that the file
276
+ size would increase when then was a large number of repeated images. This
277
+ release fixes that issue and replicates Excel's behavior.
278
+
279
+ Note, that this change adds a dependency on the [Openwall MD5] library,
280
+ which is now included with the libxlsxwriter third party source files. It is
281
+ possible to compile libxlsxwriter without this library, and thus getting the
282
+ older behavior, by passing `USE_NO_MD5=1` to make.
283
+
284
+
285
+ [Openwall MD5]: https://openwall.info/wiki/people/solar/software/public-domain-source-code/md5
286
+
287
+ ## 0.8.9 December 16 2019
288
+
289
+ - Added support for default hyperlink style in `worksheet_write_url()`.
290
+
291
+ - Added support for hyperlink in images, see `worksheet_insert_image_opt()`.
292
+
293
+ - Fixed several `worksheet_write_url()` edge cases.
294
+
295
+
296
+ ## 0.8.8 November 17 2019
297
+
298
+ - Added option to allow a user defined, or overridden, image description used
299
+ with `worksheet_insert_image()`. By default it uses the filename as the
300
+ description.
301
+ Issue [#238][gh_238].
302
+
303
+ [gh_238]: https://github.com/jmcnamara/libxlsxwriter/issues/238
304
+
305
+ - Added Windows portable version of `fopen` to handle utf8 filenames when
306
+ working with images.
307
+ Issue [#238][gh_238].
308
+
309
+ [gh_238]: https://github.com/jmcnamara/libxlsxwriter/issues/238
310
+
311
+ - Added an option to allow chart fonts to be rotation to 270 deg to give a
312
+ stacked orientation. Also added support for East Asian vertical chart fonts.
313
+
314
+ - Refactored struct types used in pubic APIs to remove or document hidden
315
+ fields. @b Note: This change introduces backward incompatible API
316
+ changes. However, it should minimize any future changes of this nature.
317
+ See issue [#252][gh_252].
318
+
319
+ [gh_252]: https://github.com/jmcnamara/libxlsxwriter/issues/252
320
+
321
+
322
+
323
+ ## 0.8.7 June 20 2019
324
+
325
+ - Added support for adding VBA macros to workbooks. These macros can be
326
+ extracted from existing xlsm files, created in Excel, and added to new xlsm
327
+ files. See @ref working_with_macros.
328
+ Feature request [#29][gh_29].
329
+
330
+ [gh_29]: https://github.com/jmcnamara/libxlsxwriter/issues/29
331
+
332
+ - Added support for ZIP64 extensions when writing very large xlsx files to
333
+ allow the zip container, or individual XML files within it, to be greater
334
+ than 4 GB. See @ref workbook_new_opt().
335
+ Feature request [#228][gh_228].
336
+
337
+ [gh_228]: https://github.com/jmcnamara/libxlsxwriter/issues/228
338
+
339
+ - Added extra validity checks on worksheet names.
340
+ Issues [#223][gh_223] and [#230][gh_230].
341
+
342
+ [gh_223]: https://github.com/jmcnamara/libxlsxwriter/issues/223
343
+ [gh_230]: https://github.com/jmcnamara/libxlsxwriter/issues/230
344
+
345
+
4
346
  ## 0.8.6 April 7 2019
5
347
 
6
348
  - Fixed issue where images that started in hidden rows/columns weren't placed
@@ -95,7 +437,7 @@
95
437
  [gh_153]: https://github.com/jmcnamara/libxlsxwriter/issues/153
96
438
 
97
439
  - Added docs on building an app with Cmake and Microsoft Visual C++ on
98
- Windows. See @ref gsg_cmake_app.
440
+ Windows.
99
441
 
100
442
 
101
443
  ## 0.7.6 January 11 2018
@@ -155,7 +497,7 @@
155
497
 
156
498
  ## 0.7.0 June 26 2017
157
499
 
158
- - Added support for CMake build system. See @ref gsg_cmake.
500
+ - Added support for CMake build system.
159
501
  Thanks to Alex Huszagh.
160
502
 
161
503
  - Fixed issue where image filehandles weren't closed until the overall file
@@ -4,7 +4,7 @@
4
4
 
5
5
  Libxlsxwriter is released under a FreeBSD license:
6
6
 
7
- Copyright 2014-2019, John McNamara <jmcnamara@cpan.org>
7
+ Copyright 2014-2022, John McNamara <jmcnamara@cpan.org>
8
8
  All rights reserved.
9
9
 
10
10
  Redistribution and use in source and binary forms, with or without
@@ -34,8 +34,10 @@ Libxlsxwriter is released under a FreeBSD license:
34
34
  official policies, either expressed or implied, of the FreeBSD Project.
35
35
 
36
36
 
37
- Libxlsxwriter includes `queue.h` and `tree.h` from FreeBSD, the `minizip`
38
- component of `zlib` and `tmpfileplus` which have the following licenses:
37
+ Libxlsxwriter includes the `queue.h` and `tree.h` macros from FreeBSD. It also
38
+ includes and, unless overridden, uses the optional libraries `minizip`,
39
+ `tmpfileplus` and `md5`. It also includes the `emyg_dtoa` library but doesn't
40
+ use it by default. These components have the following licenses:
39
41
 
40
42
 
41
43
  Queue.h from FreeBSD:
@@ -134,17 +136,73 @@ Note, it is possible to compile libxlsxwriter without statically linking the
134
136
  [Tmpfileplus](http://www.di-mgt.com.au/c_function_to_create_temp_file.html)
135
137
  has the following license:
136
138
 
137
- This Source Code Form is subject to the terms of the Mozilla Public
138
- License, v. 2.0. If a copy of the MPL was not distributed with this
139
- file, You can obtain one at http://mozilla.org/MPL/2.0/.
139
+ This Source Code Form is subject to the terms of the Mozilla Public
140
+ License, v. 2.0. If a copy of the MPL was not distributed with this
141
+ file, You can obtain one at http://mozilla.org/MPL/2.0/.
140
142
 
141
- Copyright (c) 2012-16 David Ireland, DI Management Services Pty Ltd
142
- <http://www.di-mgt.com.au/contact/>.
143
+ Copyright (c) 2012-16 David Ireland, DI Management Services Pty Ltd
144
+ <http://www.di-mgt.com.au/contact/>.
143
145
 
144
146
  See the [Mozilla Public License, v. 2.0](http://mozilla.org/MPL/2.0/).
145
147
 
146
148
  Note, it is possible to compile libxlsxwriter using the standard library
147
149
  `tmpfile()` function instead of `tmpfileplus`, see @ref gsg_tmpdir.
148
150
 
151
+ The [Milo Yip DTOA library](https://github.com/miloyip/dtoa-benchmark) for
152
+ converting doubles to strings. It has the following license:
153
+
154
+ Copyright (C) 2015 Doug Currie
155
+ based on dtoa_milo.h
156
+ Copyright (C) 2014 Milo Yip
157
+
158
+ Permission is hereby granted, free of charge, to any person obtaining a copy
159
+ of this software and associated documentation files (the "Software"), to deal
160
+ in the Software without restriction, including without limitation the rights
161
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
162
+ copies of the Software, and to permit persons to whom the Software is
163
+ furnished to do so, subject to the following conditions:
164
+
165
+ The above copyright notice and this permission notice shall be included in
166
+ all copies or substantial portions of the Software.
167
+
168
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
169
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
170
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
171
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
172
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
173
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
174
+ THE SOFTWARE.
175
+
176
+ This Milo Yip DTOA library (emyg_dtoa) is used to avoid issues where the
177
+ standard sprintf() dtoa function changes output based on locale settings. It
178
+ is also 40-50% faster than the standard dtoa for raw numeric data. The use of
179
+ this library is optional. If you wish to use it you can pass
180
+ `USE_DTOA_LIBRARY=1` to make when compiling.
181
+
182
+ [Openwall MD5](https://openwall.info/wiki/people/solar/software/public-domain-source-code/md5)
183
+ has the following licence:
184
+
185
+ This software was written by Alexander Peslyak in 2001. No copyright is
186
+ claimed, and the software is hereby placed in the public domain.
187
+ In case this attempt to disclaim copyright and place the software in the
188
+ public domain is deemed null and void, then the software is
189
+ Copyright (c) 2001 Alexander Peslyak and it is hereby released to the
190
+ general public under the following terms:
191
+
192
+ Redistribution and use in source and binary forms, with or without
193
+ modification, are permitted.
194
+
195
+ There's ABSOLUTELY NO WARRANTY, express or implied.
196
+
197
+ (This is a heavily cut-down "BSD license".)
198
+
199
+ Note, the MD5 library is used to avoid including duplicate image files in the
200
+ xlsx file. If you don't want to use this code, and the additional licence, you
201
+ can use OpenSSL's MD5 functions instead by passing `USE_OPENSSL_MD5=1` to
202
+ make. If this functionality isn't required it is possible to compile
203
+ libxlsxwriter without image deduplication by passing `USE_NO_MD5=1` to make.
204
+
205
+ See also @ref gsg_md5.
206
+
149
207
  Next: @ref changes
150
208
  */