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
@@ -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
  */