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.
- checksums.yaml +4 -4
- data/.github/workflows/test.yml +1 -7
- data/CHANGELOG.md +9 -0
- data/Gemfile +1 -1
- data/examples/example.rb +2 -0
- data/examples/example_date_time.rb +38 -0
- data/fast_excel.gemspec +2 -2
- data/lib/fast_excel/binding/format.rb +17 -0
- data/lib/fast_excel/binding/workbook.rb +39 -17
- data/lib/fast_excel/binding/worksheet.rb +57 -13
- data/lib/fast_excel/binding.rb +7 -7
- data/lib/fast_excel.rb +27 -20
- data/libxlsxwriter/.github/FUNDING.yml +1 -0
- data/libxlsxwriter/.github/ISSUE_TEMPLATE.md +85 -0
- data/libxlsxwriter/.github/PULL_REQUEST_TEMPLATE.md +130 -0
- data/libxlsxwriter/.github/workflows/cmake_actions.yml +48 -0
- data/libxlsxwriter/.github/workflows/code_style.yml +23 -0
- data/libxlsxwriter/.github/workflows/coverity.yml +22 -0
- data/libxlsxwriter/.github/workflows/make_actions.yml +52 -0
- data/libxlsxwriter/.github/workflows/valgrind.yml +23 -0
- data/libxlsxwriter/.github/workflows/windows_build.yml +54 -0
- data/libxlsxwriter/.github/workflows/zig_build.yml +22 -0
- data/libxlsxwriter/.gitignore +16 -1
- data/libxlsxwriter/.indent.pro +24 -0
- data/libxlsxwriter/CMakeLists.txt +156 -56
- data/libxlsxwriter/CONTRIBUTING.md +2 -2
- data/libxlsxwriter/Changes.txt +344 -2
- data/libxlsxwriter/LICENSE.txt +66 -8
- data/libxlsxwriter/Makefile +151 -54
- data/libxlsxwriter/Package.swift +42 -0
- data/libxlsxwriter/Readme.md +4 -2
- data/libxlsxwriter/build.zig +324 -0
- data/libxlsxwriter/build.zig.zon +11 -0
- data/libxlsxwriter/cmake/FindMINIZIP.cmake +3 -3
- data/libxlsxwriter/cocoapods/libxlsxwriter-umbrella.h +6 -0
- data/libxlsxwriter/include/xlsxwriter/app.h +2 -1
- data/libxlsxwriter/include/xlsxwriter/chart.h +236 -32
- data/libxlsxwriter/include/xlsxwriter/chartsheet.h +7 -7
- data/libxlsxwriter/include/xlsxwriter/comment.h +76 -0
- data/libxlsxwriter/include/xlsxwriter/common.h +111 -50
- data/libxlsxwriter/include/xlsxwriter/content_types.h +8 -1
- data/libxlsxwriter/include/xlsxwriter/core.h +1 -1
- data/libxlsxwriter/include/xlsxwriter/custom.h +1 -1
- data/libxlsxwriter/include/xlsxwriter/drawing.h +11 -20
- data/libxlsxwriter/include/xlsxwriter/format.h +121 -8
- data/libxlsxwriter/include/xlsxwriter/hash_table.h +1 -1
- data/libxlsxwriter/include/xlsxwriter/metadata.h +49 -0
- data/libxlsxwriter/include/xlsxwriter/packager.h +27 -16
- data/libxlsxwriter/include/xlsxwriter/relationships.h +1 -1
- data/libxlsxwriter/include/xlsxwriter/shared_strings.h +1 -1
- data/libxlsxwriter/include/xlsxwriter/styles.h +13 -7
- data/libxlsxwriter/include/xlsxwriter/table.h +51 -0
- data/libxlsxwriter/include/xlsxwriter/theme.h +1 -1
- data/libxlsxwriter/include/xlsxwriter/third_party/emyg_dtoa.h +26 -0
- data/libxlsxwriter/include/xlsxwriter/third_party/ioapi.h +27 -25
- data/libxlsxwriter/include/xlsxwriter/third_party/md5.h +45 -0
- data/libxlsxwriter/include/xlsxwriter/third_party/zip.h +155 -153
- data/libxlsxwriter/include/xlsxwriter/utility.h +70 -8
- data/libxlsxwriter/include/xlsxwriter/vml.h +55 -0
- data/libxlsxwriter/include/xlsxwriter/workbook.h +218 -47
- data/libxlsxwriter/include/xlsxwriter/worksheet.h +2770 -241
- data/libxlsxwriter/include/xlsxwriter/xmlwriter.h +12 -8
- data/libxlsxwriter/include/xlsxwriter.h +4 -2
- data/libxlsxwriter/libxlsxwriter.podspec +8 -5
- data/libxlsxwriter/src/Makefile +58 -21
- data/libxlsxwriter/src/app.c +5 -2
- data/libxlsxwriter/src/chart.c +396 -81
- data/libxlsxwriter/src/chartsheet.c +22 -22
- data/libxlsxwriter/src/comment.c +443 -0
- data/libxlsxwriter/src/content_types.c +40 -1
- data/libxlsxwriter/src/core.c +2 -2
- data/libxlsxwriter/src/custom.c +1 -1
- data/libxlsxwriter/src/drawing.c +160 -40
- data/libxlsxwriter/src/format.c +109 -25
- data/libxlsxwriter/src/hash_table.c +1 -1
- data/libxlsxwriter/src/metadata.c +283 -0
- data/libxlsxwriter/src/packager.c +794 -94
- data/libxlsxwriter/src/relationships.c +1 -1
- data/libxlsxwriter/src/shared_strings.c +2 -4
- data/libxlsxwriter/src/styles.c +353 -58
- data/libxlsxwriter/src/table.c +304 -0
- data/libxlsxwriter/src/theme.c +1 -1
- data/libxlsxwriter/src/utility.c +143 -43
- data/libxlsxwriter/src/vml.c +1062 -0
- data/libxlsxwriter/src/workbook.c +567 -77
- data/libxlsxwriter/src/worksheet.c +6668 -1462
- data/libxlsxwriter/src/xmlwriter.c +95 -5
- data/libxlsxwriter/third_party/dtoa/Makefile +42 -0
- data/libxlsxwriter/third_party/dtoa/emyg_dtoa.c +461 -0
- data/libxlsxwriter/third_party/dtoa/emyg_dtoa.h +26 -0
- data/libxlsxwriter/third_party/md5/Makefile +42 -0
- data/libxlsxwriter/third_party/md5/md5.c +291 -0
- data/libxlsxwriter/third_party/md5/md5.h +45 -0
- data/libxlsxwriter/third_party/minizip/Makefile +3 -8
- data/libxlsxwriter/third_party/minizip/Makefile.orig +8 -4
- data/libxlsxwriter/third_party/minizip/MiniZip64_Changes.txt +1 -1
- data/libxlsxwriter/third_party/minizip/configure.ac +1 -1
- data/libxlsxwriter/third_party/minizip/crypt.h +13 -16
- data/libxlsxwriter/third_party/minizip/ioapi.c +31 -57
- data/libxlsxwriter/third_party/minizip/ioapi.h +31 -23
- data/libxlsxwriter/third_party/minizip/iowin32.c +29 -45
- data/libxlsxwriter/third_party/minizip/iowin32.h +4 -4
- data/libxlsxwriter/third_party/minizip/miniunz.c +29 -56
- data/libxlsxwriter/third_party/minizip/minizip.c +38 -49
- data/libxlsxwriter/third_party/minizip/mztools.c +1 -7
- data/libxlsxwriter/third_party/minizip/unzip.c +202 -342
- data/libxlsxwriter/third_party/minizip/unzip.h +74 -74
- data/libxlsxwriter/third_party/minizip/zip.c +165 -218
- data/libxlsxwriter/third_party/minizip/zip.h +164 -154
- data/libxlsxwriter/third_party/tmpfileplus/Makefile +3 -3
- data/libxlsxwriter/version.txt +1 -1
- data/test/auto_width_test.rb +20 -0
- data/test/default_format_test.rb +1 -1
- data/test/validations_test.rb +3 -3
- data/test/worksheet_test.rb +6 -1
- metadata +33 -7
- data/libxlsxwriter/.travis.yml +0 -37
@@ -1,7 +1,7 @@
|
|
1
1
|
/*
|
2
2
|
* libxlsxwriter
|
3
3
|
*
|
4
|
-
* Copyright 2014-
|
4
|
+
* Copyright 2014-2022, John McNamara, jmcnamara@cpan.org. See LICENSE.txt.
|
5
5
|
*
|
6
6
|
* packager - A libxlsxwriter library for creating Excel XLSX packager files.
|
7
7
|
*
|
@@ -12,6 +12,9 @@
|
|
12
12
|
#include <stdint.h>
|
13
13
|
|
14
14
|
#ifdef USE_SYSTEM_MINIZIP
|
15
|
+
#ifdef __GNUC__
|
16
|
+
#pragma GCC system_header
|
17
|
+
#endif
|
15
18
|
#include "minizip/zip.h"
|
16
19
|
#else
|
17
20
|
#include "third_party/zip.h"
|
@@ -24,27 +27,33 @@
|
|
24
27
|
#include "app.h"
|
25
28
|
#include "core.h"
|
26
29
|
#include "custom.h"
|
30
|
+
#include "table.h"
|
27
31
|
#include "theme.h"
|
28
32
|
#include "styles.h"
|
29
33
|
#include "format.h"
|
30
34
|
#include "content_types.h"
|
31
35
|
#include "relationships.h"
|
36
|
+
#include "vml.h"
|
37
|
+
#include "comment.h"
|
38
|
+
#include "metadata.h"
|
32
39
|
|
33
40
|
#define LXW_ZIP_BUFFER_SIZE (16384)
|
34
41
|
|
35
42
|
/* If zip returns a ZIP_XXX error then errno is set and we can trap that in
|
36
43
|
* workbook.c. Otherwise return a default libxlsxwriter error. */
|
37
|
-
#define RETURN_ON_ZIP_ERROR(err, default_err)
|
38
|
-
|
39
|
-
|
40
|
-
|
41
|
-
|
42
|
-
|
43
|
-
|
44
|
-
|
45
|
-
|
46
|
-
|
47
|
-
|
44
|
+
#define RETURN_ON_ZIP_ERROR(err, default_err) \
|
45
|
+
do { \
|
46
|
+
if (err == ZIP_ERRNO) \
|
47
|
+
return LXW_ERROR_ZIP_FILE_OPERATION; \
|
48
|
+
else if (err == ZIP_PARAMERROR) \
|
49
|
+
return LXW_ERROR_ZIP_PARAMETER_ERROR; \
|
50
|
+
else if (err == ZIP_BADZIPFILE) \
|
51
|
+
return LXW_ERROR_ZIP_BAD_ZIP_FILE; \
|
52
|
+
else if (err == ZIP_INTERNALERROR) \
|
53
|
+
return LXW_ERROR_ZIP_INTERNAL_ERROR; \
|
54
|
+
else \
|
55
|
+
return default_err; \
|
56
|
+
} while (0)
|
48
57
|
|
49
58
|
/*
|
50
59
|
* Struct to represent a packager.
|
@@ -55,11 +64,13 @@ typedef struct lxw_packager {
|
|
55
64
|
lxw_workbook *workbook;
|
56
65
|
|
57
66
|
size_t buffer_size;
|
67
|
+
size_t output_buffer_size;
|
58
68
|
zipFile zipfile;
|
59
69
|
zip_fileinfo zipfile_info;
|
60
|
-
char *filename;
|
61
|
-
char *buffer;
|
62
|
-
char *
|
70
|
+
const char *filename;
|
71
|
+
const char *buffer;
|
72
|
+
char *output_buffer;
|
73
|
+
const char *tmpdir;
|
63
74
|
uint8_t use_zip64;
|
64
75
|
|
65
76
|
} lxw_packager;
|
@@ -71,7 +82,7 @@ extern "C" {
|
|
71
82
|
#endif
|
72
83
|
/* *INDENT-ON* */
|
73
84
|
|
74
|
-
lxw_packager *lxw_packager_new(const char *filename, char *tmpdir,
|
85
|
+
lxw_packager *lxw_packager_new(const char *filename, const char *tmpdir,
|
75
86
|
uint8_t use_zip64);
|
76
87
|
void lxw_packager_free(lxw_packager *packager);
|
77
88
|
lxw_error lxw_create_package(lxw_packager *self);
|
@@ -1,7 +1,7 @@
|
|
1
1
|
/*
|
2
2
|
* libxlsxwriter
|
3
3
|
*
|
4
|
-
* Copyright 2014-
|
4
|
+
* Copyright 2014-2022, John McNamara, jmcnamara@cpan.org. See LICENSE.txt.
|
5
5
|
*
|
6
6
|
* relationships - A libxlsxwriter library for creating Excel XLSX
|
7
7
|
* relationships files.
|
@@ -1,7 +1,7 @@
|
|
1
1
|
/*
|
2
2
|
* libxlsxwriter
|
3
3
|
*
|
4
|
-
* Copyright 2014-
|
4
|
+
* Copyright 2014-2022, John McNamara, jmcnamara@cpan.org. See LICENSE.txt.
|
5
5
|
*
|
6
6
|
* shared_strings - A libxlsxwriter library for creating Excel XLSX
|
7
7
|
* sst files.
|
@@ -1,7 +1,7 @@
|
|
1
1
|
/*
|
2
2
|
* libxlsxwriter
|
3
3
|
*
|
4
|
-
* Copyright 2014-
|
4
|
+
* Copyright 2014-2022, John McNamara, jmcnamara@cpan.org. See LICENSE.txt.
|
5
5
|
*
|
6
6
|
* styles - A libxlsxwriter library for creating Excel XLSX styles files.
|
7
7
|
*
|
@@ -28,6 +28,9 @@ typedef struct lxw_styles {
|
|
28
28
|
uint32_t fill_count;
|
29
29
|
struct lxw_formats *xf_formats;
|
30
30
|
struct lxw_formats *dxf_formats;
|
31
|
+
uint8_t has_hyperlink;
|
32
|
+
uint16_t hyperlink_font_id;
|
33
|
+
uint8_t has_comments;
|
31
34
|
|
32
35
|
} lxw_styles;
|
33
36
|
|
@@ -41,8 +44,8 @@ extern "C" {
|
|
41
44
|
lxw_styles *lxw_styles_new(void);
|
42
45
|
void lxw_styles_free(lxw_styles *styles);
|
43
46
|
void lxw_styles_assemble_xml_file(lxw_styles *self);
|
44
|
-
void lxw_styles_write_string_fragment(lxw_styles *self, char *string);
|
45
|
-
void lxw_styles_write_rich_font(lxw_styles *
|
47
|
+
void lxw_styles_write_string_fragment(lxw_styles *self, const char *string);
|
48
|
+
void lxw_styles_write_rich_font(lxw_styles *styles, lxw_format *format);
|
46
49
|
|
47
50
|
/* Declarations required for unit testing. */
|
48
51
|
#ifdef TESTING
|
@@ -55,18 +58,21 @@ STATIC void _write_font_name(lxw_styles *self, const char *font_name,
|
|
55
58
|
uint8_t is_rich_string);
|
56
59
|
STATIC void _write_font_family(lxw_styles *self, uint8_t font_family);
|
57
60
|
STATIC void _write_font_scheme(lxw_styles *self, const char *font_scheme);
|
58
|
-
STATIC void _write_font(lxw_styles *self, lxw_format *format,
|
61
|
+
STATIC void _write_font(lxw_styles *self, lxw_format *format, uint8_t is_dxf,
|
59
62
|
uint8_t is_rich_string);
|
60
63
|
STATIC void _write_fonts(lxw_styles *self);
|
61
64
|
STATIC void _write_default_fill(lxw_styles *self, const char *pattern);
|
62
65
|
STATIC void _write_fills(lxw_styles *self);
|
63
|
-
STATIC void _write_border(lxw_styles *self, lxw_format *format
|
66
|
+
STATIC void _write_border(lxw_styles *self, lxw_format *format,
|
67
|
+
uint8_t is_dxf);
|
64
68
|
STATIC void _write_borders(lxw_styles *self);
|
65
|
-
STATIC void _write_style_xf(lxw_styles *self
|
69
|
+
STATIC void _write_style_xf(lxw_styles *self, uint8_t has_hyperlink,
|
70
|
+
uint16_t font_id);
|
66
71
|
STATIC void _write_cell_style_xfs(lxw_styles *self);
|
67
72
|
STATIC void _write_xf(lxw_styles *self, lxw_format *format);
|
68
73
|
STATIC void _write_cell_xfs(lxw_styles *self);
|
69
|
-
STATIC void _write_cell_style(lxw_styles *self
|
74
|
+
STATIC void _write_cell_style(lxw_styles *self, char *name, uint8_t xf_id,
|
75
|
+
uint8_t builtin_id);
|
70
76
|
STATIC void _write_cell_styles(lxw_styles *self);
|
71
77
|
STATIC void _write_dxfs(lxw_styles *self);
|
72
78
|
STATIC void _write_table_styles(lxw_styles *self);
|
@@ -0,0 +1,51 @@
|
|
1
|
+
/*
|
2
|
+
* libxlsxwriter
|
3
|
+
*
|
4
|
+
* Copyright 2014-2022, John McNamara, jmcnamara@cpan.org. See LICENSE.txt.
|
5
|
+
*
|
6
|
+
* table - A libxlsxwriter library for creating Excel XLSX table files.
|
7
|
+
*
|
8
|
+
*/
|
9
|
+
#ifndef __LXW_TABLE_H__
|
10
|
+
#define __LXW_TABLE_H__
|
11
|
+
|
12
|
+
#include <stdint.h>
|
13
|
+
|
14
|
+
#include "common.h"
|
15
|
+
|
16
|
+
/*
|
17
|
+
* Struct to represent a table object.
|
18
|
+
*/
|
19
|
+
typedef struct lxw_table {
|
20
|
+
|
21
|
+
FILE *file;
|
22
|
+
|
23
|
+
struct lxw_table_obj *table_obj;
|
24
|
+
|
25
|
+
} lxw_table;
|
26
|
+
|
27
|
+
|
28
|
+
/* *INDENT-OFF* */
|
29
|
+
#ifdef __cplusplus
|
30
|
+
extern "C" {
|
31
|
+
#endif
|
32
|
+
/* *INDENT-ON* */
|
33
|
+
|
34
|
+
lxw_table *lxw_table_new(void);
|
35
|
+
void lxw_table_free(lxw_table *table);
|
36
|
+
void lxw_table_assemble_xml_file(lxw_table *self);
|
37
|
+
|
38
|
+
/* Declarations required for unit testing. */
|
39
|
+
#ifdef TESTING
|
40
|
+
|
41
|
+
STATIC void _table_xml_declaration(lxw_table *self);
|
42
|
+
|
43
|
+
#endif /* TESTING */
|
44
|
+
|
45
|
+
/* *INDENT-OFF* */
|
46
|
+
#ifdef __cplusplus
|
47
|
+
}
|
48
|
+
#endif
|
49
|
+
/* *INDENT-ON* */
|
50
|
+
|
51
|
+
#endif /* __LXW_TABLE_H__ */
|
@@ -0,0 +1,26 @@
|
|
1
|
+
/* emyg_dtoa.h
|
2
|
+
** Copyright (C) 2015 Doug Currie
|
3
|
+
** based on dtoa_milo.h
|
4
|
+
** Copyright (C) 2014 Milo Yip
|
5
|
+
**
|
6
|
+
** Permission is hereby granted, free of charge, to any person obtaining a copy
|
7
|
+
** of this software and associated documentation files (the "Software"), to deal
|
8
|
+
** in the Software without restriction, including without limitation the rights
|
9
|
+
** to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
10
|
+
** copies of the Software, and to permit persons to whom the Software is
|
11
|
+
** furnished to do so, subject to the following conditions:
|
12
|
+
**
|
13
|
+
** The above copyright notice and this permission notice shall be included in
|
14
|
+
** all copies or substantial portions of the Software.
|
15
|
+
**
|
16
|
+
** THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
17
|
+
** IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
18
|
+
** FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
19
|
+
** AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
20
|
+
** LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
21
|
+
** OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
|
22
|
+
** THE SOFTWARE.
|
23
|
+
*/
|
24
|
+
|
25
|
+
/* Source from https://github.com/miloyip/dtoa-benchmark */
|
26
|
+
void emyg_dtoa (double value, char* buffer);
|
@@ -29,8 +29,8 @@
|
|
29
29
|
|
30
30
|
#if (!defined(_WIN32)) && (!defined(WIN32)) && (!defined(__APPLE__))
|
31
31
|
|
32
|
-
|
33
|
-
|
32
|
+
/* Linux needs this to support file operation on files larger then 4+GB
|
33
|
+
* But might need better if/def to select just the platforms that needs them. */
|
34
34
|
|
35
35
|
#ifndef __USE_FILE_OFFSET64
|
36
36
|
#define __USE_FILE_OFFSET64
|
@@ -56,7 +56,7 @@
|
|
56
56
|
#define ftello64 ftell
|
57
57
|
#define fseeko64 fseek
|
58
58
|
#else
|
59
|
-
#
|
59
|
+
#if defined(__FreeBSD__) || defined(__OpenBSD__) || defined(__NetBSD__) || defined(__HAIKU__) || defined(MINIZIP_FOPEN_NO_64)
|
60
60
|
#define fopen64 fopen
|
61
61
|
#define ftello64 ftello
|
62
62
|
#define fseeko64 fseeko
|
@@ -88,7 +88,7 @@
|
|
88
88
|
#include "mz64conf.h"
|
89
89
|
#endif
|
90
90
|
|
91
|
-
/* a type
|
91
|
+
/* a type chosen by DEFINE */
|
92
92
|
#ifdef HAVE_64BIT_INT_CUSTOM
|
93
93
|
typedef 64BIT_INT_CUSTOM_TYPE ZPOS64_T;
|
94
94
|
#else
|
@@ -97,8 +97,7 @@ typedef 64BIT_INT_CUSTOM_TYPE ZPOS64_T;
|
|
97
97
|
typedef uint64_t ZPOS64_T;
|
98
98
|
#else
|
99
99
|
|
100
|
-
|
101
|
-
#define MAXU32 0xffffffff
|
100
|
+
|
102
101
|
|
103
102
|
#if defined(_MSC_VER) || defined(__BORLANDC__)
|
104
103
|
typedef unsigned __int64 ZPOS64_T;
|
@@ -108,7 +107,10 @@ typedef unsigned long long int ZPOS64_T;
|
|
108
107
|
#endif
|
109
108
|
#endif
|
110
109
|
|
111
|
-
|
110
|
+
/* Maximum unsigned 32-bit value used as placeholder for zip64 */
|
111
|
+
#ifndef MAXU32
|
112
|
+
#define MAXU32 (0xffffffff)
|
113
|
+
#endif
|
112
114
|
|
113
115
|
#ifdef __cplusplus
|
114
116
|
extern "C" {
|
@@ -138,14 +140,14 @@ extern "C" {
|
|
138
140
|
|
139
141
|
|
140
142
|
|
141
|
-
typedef voidpf (ZCALLBACK *open_file_func)
|
142
|
-
typedef uLong (ZCALLBACK *read_file_func)
|
143
|
-
typedef uLong (ZCALLBACK *write_file_func)
|
144
|
-
typedef int (ZCALLBACK *close_file_func)
|
145
|
-
typedef int (ZCALLBACK *testerror_file_func)
|
143
|
+
typedef voidpf (ZCALLBACK *open_file_func) (voidpf opaque, const char* filename, int mode);
|
144
|
+
typedef uLong (ZCALLBACK *read_file_func) (voidpf opaque, voidpf stream, void* buf, uLong size);
|
145
|
+
typedef uLong (ZCALLBACK *write_file_func) (voidpf opaque, voidpf stream, const void* buf, uLong size);
|
146
|
+
typedef int (ZCALLBACK *close_file_func) (voidpf opaque, voidpf stream);
|
147
|
+
typedef int (ZCALLBACK *testerror_file_func) (voidpf opaque, voidpf stream);
|
146
148
|
|
147
|
-
typedef long (ZCALLBACK *tell_file_func)
|
148
|
-
typedef long (ZCALLBACK *seek_file_func)
|
149
|
+
typedef long (ZCALLBACK *tell_file_func) (voidpf opaque, voidpf stream);
|
150
|
+
typedef long (ZCALLBACK *seek_file_func) (voidpf opaque, voidpf stream, uLong offset, int origin);
|
149
151
|
|
150
152
|
|
151
153
|
/* here is the "old" 32 bits structure structure */
|
@@ -161,9 +163,9 @@ typedef struct zlib_filefunc_def_s
|
|
161
163
|
voidpf opaque;
|
162
164
|
} zlib_filefunc_def;
|
163
165
|
|
164
|
-
typedef ZPOS64_T (ZCALLBACK *tell64_file_func)
|
165
|
-
typedef long (ZCALLBACK *seek64_file_func)
|
166
|
-
typedef voidpf (ZCALLBACK *open64_file_func)
|
166
|
+
typedef ZPOS64_T (ZCALLBACK *tell64_file_func) (voidpf opaque, voidpf stream);
|
167
|
+
typedef long (ZCALLBACK *seek64_file_func) (voidpf opaque, voidpf stream, ZPOS64_T offset, int origin);
|
168
|
+
typedef voidpf (ZCALLBACK *open64_file_func) (voidpf opaque, const void* filename, int mode);
|
167
169
|
|
168
170
|
typedef struct zlib_filefunc64_def_s
|
169
171
|
{
|
@@ -177,8 +179,8 @@ typedef struct zlib_filefunc64_def_s
|
|
177
179
|
voidpf opaque;
|
178
180
|
} zlib_filefunc64_def;
|
179
181
|
|
180
|
-
void fill_fopen64_filefunc
|
181
|
-
void fill_fopen_filefunc
|
182
|
+
void fill_fopen64_filefunc(zlib_filefunc64_def* pzlib_filefunc_def);
|
183
|
+
void fill_fopen_filefunc(zlib_filefunc_def* pzlib_filefunc_def);
|
182
184
|
|
183
185
|
/* now internal definition, only for zip.c and unzip.h */
|
184
186
|
typedef struct zlib_filefunc64_32_def_s
|
@@ -192,16 +194,16 @@ typedef struct zlib_filefunc64_32_def_s
|
|
192
194
|
|
193
195
|
#define ZREAD64(filefunc,filestream,buf,size) ((*((filefunc).zfile_func64.zread_file)) ((filefunc).zfile_func64.opaque,filestream,buf,size))
|
194
196
|
#define ZWRITE64(filefunc,filestream,buf,size) ((*((filefunc).zfile_func64.zwrite_file)) ((filefunc).zfile_func64.opaque,filestream,buf,size))
|
195
|
-
|
196
|
-
|
197
|
+
/*#define ZTELL64(filefunc,filestream) ((*((filefunc).ztell64_file)) ((filefunc).opaque,filestream))*/
|
198
|
+
/*#define ZSEEK64(filefunc,filestream,pos,mode) ((*((filefunc).zseek64_file)) ((filefunc).opaque,filestream,pos,mode))*/
|
197
199
|
#define ZCLOSE64(filefunc,filestream) ((*((filefunc).zfile_func64.zclose_file)) ((filefunc).zfile_func64.opaque,filestream))
|
198
200
|
#define ZERROR64(filefunc,filestream) ((*((filefunc).zfile_func64.zerror_file)) ((filefunc).zfile_func64.opaque,filestream))
|
199
201
|
|
200
|
-
voidpf call_zopen64
|
201
|
-
long
|
202
|
-
ZPOS64_T call_ztell64
|
202
|
+
voidpf call_zopen64(const zlib_filefunc64_32_def* pfilefunc,const void*filename,int mode);
|
203
|
+
long call_zseek64(const zlib_filefunc64_32_def* pfilefunc,voidpf filestream, ZPOS64_T offset, int origin);
|
204
|
+
ZPOS64_T call_ztell64(const zlib_filefunc64_32_def* pfilefunc,voidpf filestream);
|
203
205
|
|
204
|
-
void
|
206
|
+
void fill_zlib_filefunc64_32_def_from_filefunc32(zlib_filefunc64_32_def* p_filefunc64_32,const zlib_filefunc_def* p_filefunc32);
|
205
207
|
|
206
208
|
#define ZOPEN64(filefunc,filename,mode) (call_zopen64((&(filefunc)),(filename),(mode)))
|
207
209
|
#define ZTELL64(filefunc,filestream) (call_ztell64((&(filefunc)),(filestream)))
|
@@ -0,0 +1,45 @@
|
|
1
|
+
/*
|
2
|
+
* This is an OpenSSL-compatible implementation of the RSA Data Security, Inc.
|
3
|
+
* MD5 Message-Digest Algorithm (RFC 1321).
|
4
|
+
*
|
5
|
+
* Homepage:
|
6
|
+
* http://openwall.info/wiki/people/solar/software/public-domain-source-code/md5
|
7
|
+
*
|
8
|
+
* Author:
|
9
|
+
* Alexander Peslyak, better known as Solar Designer <solar at openwall.com>
|
10
|
+
*
|
11
|
+
* This software was written by Alexander Peslyak in 2001. No copyright is
|
12
|
+
* claimed, and the software is hereby placed in the public domain.
|
13
|
+
* In case this attempt to disclaim copyright and place the software in the
|
14
|
+
* public domain is deemed null and void, then the software is
|
15
|
+
* Copyright (c) 2001 Alexander Peslyak and it is hereby released to the
|
16
|
+
* general public under the following terms:
|
17
|
+
*
|
18
|
+
* Redistribution and use in source and binary forms, with or without
|
19
|
+
* modification, are permitted.
|
20
|
+
*
|
21
|
+
* There's ABSOLUTELY NO WARRANTY, express or implied.
|
22
|
+
*
|
23
|
+
* See md5.c for more information.
|
24
|
+
*/
|
25
|
+
|
26
|
+
#ifdef HAVE_OPENSSL
|
27
|
+
#include <openssl/md5.h>
|
28
|
+
#elif !defined(_MD5_H)
|
29
|
+
#define _MD5_H
|
30
|
+
|
31
|
+
/* Any 32-bit or wider unsigned integer data type will do */
|
32
|
+
typedef unsigned int MD5_u32plus;
|
33
|
+
|
34
|
+
typedef struct {
|
35
|
+
MD5_u32plus lo, hi;
|
36
|
+
MD5_u32plus a, b, c, d;
|
37
|
+
unsigned char buffer[64];
|
38
|
+
MD5_u32plus block[16];
|
39
|
+
} MD5_CTX;
|
40
|
+
|
41
|
+
extern void MD5_Init(MD5_CTX *ctx);
|
42
|
+
extern void MD5_Update(MD5_CTX *ctx, const void *data, unsigned long size);
|
43
|
+
extern void MD5_Final(unsigned char *result, MD5_CTX *ctx);
|
44
|
+
|
45
|
+
#endif
|