zstdlib 0.13.0-x86_64-linux

Sign up to get free protection for your applications and to get access to all the features.
Files changed (129) hide show
  1. checksums.yaml +7 -0
  2. data/.yardopts +6 -0
  3. data/CHANGES.md +107 -0
  4. data/Gemfile +3 -0
  5. data/README.md +107 -0
  6. data/Rakefile +59 -0
  7. data/ext/zstdlib_c/extconf.rb +59 -0
  8. data/ext/zstdlib_c/ruby/zlib-2.2/zstdlib.c +4675 -0
  9. data/ext/zstdlib_c/ruby/zlib-2.3/zstdlib.c +4702 -0
  10. data/ext/zstdlib_c/ruby/zlib-2.4/zstdlib.c +4859 -0
  11. data/ext/zstdlib_c/ruby/zlib-2.5/zstdlib.c +4864 -0
  12. data/ext/zstdlib_c/ruby/zlib-2.6/zstdlib.c +4906 -0
  13. data/ext/zstdlib_c/ruby/zlib-2.7/zstdlib.c +4895 -0
  14. data/ext/zstdlib_c/ruby/zlib-3.0/zstdlib.c +4994 -0
  15. data/ext/zstdlib_c/ruby/zlib-3.1/zstdlib.c +5076 -0
  16. data/ext/zstdlib_c/ruby/zlib-3.2/zstdlib.c +5090 -0
  17. data/ext/zstdlib_c/ruby/zlib-3.3/zstdlib.c +5090 -0
  18. data/ext/zstdlib_c/zlib-1.3.1/adler32.c +164 -0
  19. data/ext/zstdlib_c/zlib-1.3.1/compress.c +75 -0
  20. data/ext/zstdlib_c/zlib-1.3.1/crc32.c +1049 -0
  21. data/ext/zstdlib_c/zlib-1.3.1/crc32.h +9446 -0
  22. data/ext/zstdlib_c/zlib-1.3.1/deflate.c +2139 -0
  23. data/ext/zstdlib_c/zlib-1.3.1/deflate.h +377 -0
  24. data/ext/zstdlib_c/zlib-1.3.1/gzclose.c +23 -0
  25. data/ext/zstdlib_c/zlib-1.3.1/gzguts.h +214 -0
  26. data/ext/zstdlib_c/zlib-1.3.1/gzlib.c +582 -0
  27. data/ext/zstdlib_c/zlib-1.3.1/gzread.c +602 -0
  28. data/ext/zstdlib_c/zlib-1.3.1/gzwrite.c +631 -0
  29. data/ext/zstdlib_c/zlib-1.3.1/infback.c +628 -0
  30. data/ext/zstdlib_c/zlib-1.3.1/inffast.c +320 -0
  31. data/ext/zstdlib_c/zlib-1.3.1/inffast.h +11 -0
  32. data/ext/zstdlib_c/zlib-1.3.1/inffixed.h +94 -0
  33. data/ext/zstdlib_c/zlib-1.3.1/inflate.c +1526 -0
  34. data/ext/zstdlib_c/zlib-1.3.1/inflate.h +126 -0
  35. data/ext/zstdlib_c/zlib-1.3.1/inftrees.c +299 -0
  36. data/ext/zstdlib_c/zlib-1.3.1/inftrees.h +62 -0
  37. data/ext/zstdlib_c/zlib-1.3.1/trees.c +1117 -0
  38. data/ext/zstdlib_c/zlib-1.3.1/trees.h +128 -0
  39. data/ext/zstdlib_c/zlib-1.3.1/uncompr.c +85 -0
  40. data/ext/zstdlib_c/zlib-1.3.1/zconf.h +543 -0
  41. data/ext/zstdlib_c/zlib-1.3.1/zlib.h +1938 -0
  42. data/ext/zstdlib_c/zlib-1.3.1/zutil.c +299 -0
  43. data/ext/zstdlib_c/zlib-1.3.1/zutil.h +254 -0
  44. data/ext/zstdlib_c/zlib.mk +14 -0
  45. data/ext/zstdlib_c/zlibwrapper/zlibwrapper.c +10 -0
  46. data/ext/zstdlib_c/zlibwrapper.mk +14 -0
  47. data/ext/zstdlib_c/zstd-1.5.6/lib/common/allocations.h +55 -0
  48. data/ext/zstdlib_c/zstd-1.5.6/lib/common/bits.h +200 -0
  49. data/ext/zstdlib_c/zstd-1.5.6/lib/common/bitstream.h +457 -0
  50. data/ext/zstdlib_c/zstd-1.5.6/lib/common/compiler.h +450 -0
  51. data/ext/zstdlib_c/zstd-1.5.6/lib/common/cpu.h +249 -0
  52. data/ext/zstdlib_c/zstd-1.5.6/lib/common/debug.c +30 -0
  53. data/ext/zstdlib_c/zstd-1.5.6/lib/common/debug.h +116 -0
  54. data/ext/zstdlib_c/zstd-1.5.6/lib/common/entropy_common.c +340 -0
  55. data/ext/zstdlib_c/zstd-1.5.6/lib/common/error_private.c +63 -0
  56. data/ext/zstdlib_c/zstd-1.5.6/lib/common/error_private.h +168 -0
  57. data/ext/zstdlib_c/zstd-1.5.6/lib/common/fse.h +640 -0
  58. data/ext/zstdlib_c/zstd-1.5.6/lib/common/fse_decompress.c +313 -0
  59. data/ext/zstdlib_c/zstd-1.5.6/lib/common/huf.h +286 -0
  60. data/ext/zstdlib_c/zstd-1.5.6/lib/common/mem.h +426 -0
  61. data/ext/zstdlib_c/zstd-1.5.6/lib/common/pool.c +371 -0
  62. data/ext/zstdlib_c/zstd-1.5.6/lib/common/pool.h +90 -0
  63. data/ext/zstdlib_c/zstd-1.5.6/lib/common/portability_macros.h +158 -0
  64. data/ext/zstdlib_c/zstd-1.5.6/lib/common/threading.c +182 -0
  65. data/ext/zstdlib_c/zstd-1.5.6/lib/common/threading.h +150 -0
  66. data/ext/zstdlib_c/zstd-1.5.6/lib/common/xxhash.c +18 -0
  67. data/ext/zstdlib_c/zstd-1.5.6/lib/common/xxhash.h +7020 -0
  68. data/ext/zstdlib_c/zstd-1.5.6/lib/common/zstd_common.c +48 -0
  69. data/ext/zstdlib_c/zstd-1.5.6/lib/common/zstd_deps.h +111 -0
  70. data/ext/zstdlib_c/zstd-1.5.6/lib/common/zstd_internal.h +392 -0
  71. data/ext/zstdlib_c/zstd-1.5.6/lib/common/zstd_trace.h +163 -0
  72. data/ext/zstdlib_c/zstd-1.5.6/lib/compress/clevels.h +134 -0
  73. data/ext/zstdlib_c/zstd-1.5.6/lib/compress/fse_compress.c +625 -0
  74. data/ext/zstdlib_c/zstd-1.5.6/lib/compress/hist.c +181 -0
  75. data/ext/zstdlib_c/zstd-1.5.6/lib/compress/hist.h +75 -0
  76. data/ext/zstdlib_c/zstd-1.5.6/lib/compress/huf_compress.c +1464 -0
  77. data/ext/zstdlib_c/zstd-1.5.6/lib/compress/zstd_compress.c +7153 -0
  78. data/ext/zstdlib_c/zstd-1.5.6/lib/compress/zstd_compress_internal.h +1534 -0
  79. data/ext/zstdlib_c/zstd-1.5.6/lib/compress/zstd_compress_literals.c +235 -0
  80. data/ext/zstdlib_c/zstd-1.5.6/lib/compress/zstd_compress_literals.h +39 -0
  81. data/ext/zstdlib_c/zstd-1.5.6/lib/compress/zstd_compress_sequences.c +442 -0
  82. data/ext/zstdlib_c/zstd-1.5.6/lib/compress/zstd_compress_sequences.h +54 -0
  83. data/ext/zstdlib_c/zstd-1.5.6/lib/compress/zstd_compress_superblock.c +688 -0
  84. data/ext/zstdlib_c/zstd-1.5.6/lib/compress/zstd_compress_superblock.h +32 -0
  85. data/ext/zstdlib_c/zstd-1.5.6/lib/compress/zstd_cwksp.h +748 -0
  86. data/ext/zstdlib_c/zstd-1.5.6/lib/compress/zstd_double_fast.c +770 -0
  87. data/ext/zstdlib_c/zstd-1.5.6/lib/compress/zstd_double_fast.h +50 -0
  88. data/ext/zstdlib_c/zstd-1.5.6/lib/compress/zstd_fast.c +968 -0
  89. data/ext/zstdlib_c/zstd-1.5.6/lib/compress/zstd_fast.h +38 -0
  90. data/ext/zstdlib_c/zstd-1.5.6/lib/compress/zstd_lazy.c +2199 -0
  91. data/ext/zstdlib_c/zstd-1.5.6/lib/compress/zstd_lazy.h +202 -0
  92. data/ext/zstdlib_c/zstd-1.5.6/lib/compress/zstd_ldm.c +730 -0
  93. data/ext/zstdlib_c/zstd-1.5.6/lib/compress/zstd_ldm.h +117 -0
  94. data/ext/zstdlib_c/zstd-1.5.6/lib/compress/zstd_ldm_geartab.h +106 -0
  95. data/ext/zstdlib_c/zstd-1.5.6/lib/compress/zstd_opt.c +1576 -0
  96. data/ext/zstdlib_c/zstd-1.5.6/lib/compress/zstd_opt.h +80 -0
  97. data/ext/zstdlib_c/zstd-1.5.6/lib/compress/zstdmt_compress.c +1882 -0
  98. data/ext/zstdlib_c/zstd-1.5.6/lib/compress/zstdmt_compress.h +113 -0
  99. data/ext/zstdlib_c/zstd-1.5.6/lib/decompress/huf_decompress.c +1944 -0
  100. data/ext/zstdlib_c/zstd-1.5.6/lib/decompress/huf_decompress_amd64.S +595 -0
  101. data/ext/zstdlib_c/zstd-1.5.6/lib/decompress/zstd_ddict.c +244 -0
  102. data/ext/zstdlib_c/zstd-1.5.6/lib/decompress/zstd_ddict.h +44 -0
  103. data/ext/zstdlib_c/zstd-1.5.6/lib/decompress/zstd_decompress.c +2407 -0
  104. data/ext/zstdlib_c/zstd-1.5.6/lib/decompress/zstd_decompress_block.c +2215 -0
  105. data/ext/zstdlib_c/zstd-1.5.6/lib/decompress/zstd_decompress_block.h +73 -0
  106. data/ext/zstdlib_c/zstd-1.5.6/lib/decompress/zstd_decompress_internal.h +240 -0
  107. data/ext/zstdlib_c/zstd-1.5.6/lib/zdict.h +474 -0
  108. data/ext/zstdlib_c/zstd-1.5.6/lib/zstd.h +3089 -0
  109. data/ext/zstdlib_c/zstd-1.5.6/lib/zstd_errors.h +114 -0
  110. data/ext/zstdlib_c/zstd-1.5.6/zlibWrapper/gzclose.c +26 -0
  111. data/ext/zstdlib_c/zstd-1.5.6/zlibWrapper/gzcompatibility.h +68 -0
  112. data/ext/zstdlib_c/zstd-1.5.6/zlibWrapper/gzguts.h +229 -0
  113. data/ext/zstdlib_c/zstd-1.5.6/zlibWrapper/gzlib.c +587 -0
  114. data/ext/zstdlib_c/zstd-1.5.6/zlibWrapper/gzread.c +637 -0
  115. data/ext/zstdlib_c/zstd-1.5.6/zlibWrapper/gzwrite.c +631 -0
  116. data/ext/zstdlib_c/zstd-1.5.6/zlibWrapper/zstd_zlibwrapper.c +1200 -0
  117. data/ext/zstdlib_c/zstd-1.5.6/zlibWrapper/zstd_zlibwrapper.h +91 -0
  118. data/ext/zstdlib_c/zstd.mk +15 -0
  119. data/lib/2.4/zstdlib_c.so +0 -0
  120. data/lib/2.5/zstdlib_c.so +0 -0
  121. data/lib/2.6/zstdlib_c.so +0 -0
  122. data/lib/2.7/zstdlib_c.so +0 -0
  123. data/lib/3.0/zstdlib_c.so +0 -0
  124. data/lib/3.1/zstdlib_c.so +0 -0
  125. data/lib/3.2/zstdlib_c.so +0 -0
  126. data/lib/3.3/zstdlib_c.so +0 -0
  127. data/lib/zstdlib.rb +6 -0
  128. data/test/zstdlib_test.rb +21 -0
  129. metadata +243 -0
@@ -0,0 +1,114 @@
1
+ /*
2
+ * Copyright (c) Meta Platforms, Inc. and affiliates.
3
+ * All rights reserved.
4
+ *
5
+ * This source code is licensed under both the BSD-style license (found in the
6
+ * LICENSE file in the root directory of this source tree) and the GPLv2 (found
7
+ * in the COPYING file in the root directory of this source tree).
8
+ * You may select, at your option, one of the above-listed licenses.
9
+ */
10
+
11
+ #ifndef ZSTD_ERRORS_H_398273423
12
+ #define ZSTD_ERRORS_H_398273423
13
+
14
+ #if defined (__cplusplus)
15
+ extern "C" {
16
+ #endif
17
+
18
+ /*===== dependency =====*/
19
+ #include <stddef.h> /* size_t */
20
+
21
+
22
+ /* ===== ZSTDERRORLIB_API : control library symbols visibility ===== */
23
+ #ifndef ZSTDERRORLIB_VISIBLE
24
+ /* Backwards compatibility with old macro name */
25
+ # ifdef ZSTDERRORLIB_VISIBILITY
26
+ # define ZSTDERRORLIB_VISIBLE ZSTDERRORLIB_VISIBILITY
27
+ # elif defined(__GNUC__) && (__GNUC__ >= 4) && !defined(__MINGW32__)
28
+ # define ZSTDERRORLIB_VISIBLE __attribute__ ((visibility ("default")))
29
+ # else
30
+ # define ZSTDERRORLIB_VISIBLE
31
+ # endif
32
+ #endif
33
+
34
+ #ifndef ZSTDERRORLIB_HIDDEN
35
+ # if defined(__GNUC__) && (__GNUC__ >= 4) && !defined(__MINGW32__)
36
+ # define ZSTDERRORLIB_HIDDEN __attribute__ ((visibility ("hidden")))
37
+ # else
38
+ # define ZSTDERRORLIB_HIDDEN
39
+ # endif
40
+ #endif
41
+
42
+ #if defined(ZSTD_DLL_EXPORT) && (ZSTD_DLL_EXPORT==1)
43
+ # define ZSTDERRORLIB_API __declspec(dllexport) ZSTDERRORLIB_VISIBLE
44
+ #elif defined(ZSTD_DLL_IMPORT) && (ZSTD_DLL_IMPORT==1)
45
+ # define ZSTDERRORLIB_API __declspec(dllimport) ZSTDERRORLIB_VISIBLE /* It isn't required but allows to generate better code, saving a function pointer load from the IAT and an indirect jump.*/
46
+ #else
47
+ # define ZSTDERRORLIB_API ZSTDERRORLIB_VISIBLE
48
+ #endif
49
+
50
+ /*-*********************************************
51
+ * Error codes list
52
+ *-*********************************************
53
+ * Error codes _values_ are pinned down since v1.3.1 only.
54
+ * Therefore, don't rely on values if you may link to any version < v1.3.1.
55
+ *
56
+ * Only values < 100 are considered stable.
57
+ *
58
+ * note 1 : this API shall be used with static linking only.
59
+ * dynamic linking is not yet officially supported.
60
+ * note 2 : Prefer relying on the enum than on its value whenever possible
61
+ * This is the only supported way to use the error list < v1.3.1
62
+ * note 3 : ZSTD_isError() is always correct, whatever the library version.
63
+ **********************************************/
64
+ typedef enum {
65
+ ZSTD_error_no_error = 0,
66
+ ZSTD_error_GENERIC = 1,
67
+ ZSTD_error_prefix_unknown = 10,
68
+ ZSTD_error_version_unsupported = 12,
69
+ ZSTD_error_frameParameter_unsupported = 14,
70
+ ZSTD_error_frameParameter_windowTooLarge = 16,
71
+ ZSTD_error_corruption_detected = 20,
72
+ ZSTD_error_checksum_wrong = 22,
73
+ ZSTD_error_literals_headerWrong = 24,
74
+ ZSTD_error_dictionary_corrupted = 30,
75
+ ZSTD_error_dictionary_wrong = 32,
76
+ ZSTD_error_dictionaryCreation_failed = 34,
77
+ ZSTD_error_parameter_unsupported = 40,
78
+ ZSTD_error_parameter_combination_unsupported = 41,
79
+ ZSTD_error_parameter_outOfBound = 42,
80
+ ZSTD_error_tableLog_tooLarge = 44,
81
+ ZSTD_error_maxSymbolValue_tooLarge = 46,
82
+ ZSTD_error_maxSymbolValue_tooSmall = 48,
83
+ ZSTD_error_stabilityCondition_notRespected = 50,
84
+ ZSTD_error_stage_wrong = 60,
85
+ ZSTD_error_init_missing = 62,
86
+ ZSTD_error_memory_allocation = 64,
87
+ ZSTD_error_workSpace_tooSmall= 66,
88
+ ZSTD_error_dstSize_tooSmall = 70,
89
+ ZSTD_error_srcSize_wrong = 72,
90
+ ZSTD_error_dstBuffer_null = 74,
91
+ ZSTD_error_noForwardProgress_destFull = 80,
92
+ ZSTD_error_noForwardProgress_inputEmpty = 82,
93
+ /* following error codes are __NOT STABLE__, they can be removed or changed in future versions */
94
+ ZSTD_error_frameIndex_tooLarge = 100,
95
+ ZSTD_error_seekableIO = 102,
96
+ ZSTD_error_dstBuffer_wrong = 104,
97
+ ZSTD_error_srcBuffer_wrong = 105,
98
+ ZSTD_error_sequenceProducer_failed = 106,
99
+ ZSTD_error_externalSequences_invalid = 107,
100
+ ZSTD_error_maxCode = 120 /* never EVER use this value directly, it can change in future versions! Use ZSTD_isError() instead */
101
+ } ZSTD_ErrorCode;
102
+
103
+ /*! ZSTD_getErrorCode() :
104
+ convert a `size_t` function result into a `ZSTD_ErrorCode` enum type,
105
+ which can be used to compare with enum list published above */
106
+ ZSTDERRORLIB_API ZSTD_ErrorCode ZSTD_getErrorCode(size_t functionResult);
107
+ ZSTDERRORLIB_API const char* ZSTD_getErrorString(ZSTD_ErrorCode code); /**< Same as ZSTD_getErrorName, but using a `ZSTD_ErrorCode` enum argument */
108
+
109
+
110
+ #if defined (__cplusplus)
111
+ }
112
+ #endif
113
+
114
+ #endif /* ZSTD_ERRORS_H_398273423 */
@@ -0,0 +1,26 @@
1
+ /* gzclose.c contains minimal changes required to be compiled with zlibWrapper:
2
+ * - gz_statep was converted to union to work with -Wstrict-aliasing=1 */
3
+
4
+ /* gzclose.c -- zlib gzclose() function
5
+ * Copyright (C) 2004, 2010 Mark Adler
6
+ * For conditions of distribution and use, see https://www.zlib.net/zlib_license.html
7
+ */
8
+
9
+ #include "gzguts.h"
10
+
11
+ /* gzclose() is in a separate file so that it is linked in only if it is used.
12
+ That way the other gzclose functions can be used instead to avoid linking in
13
+ unneeded compression or decompression routines. */
14
+ int ZEXPORT gzclose(gzFile file) {
15
+ #ifndef NO_GZCOMPRESS
16
+ gz_statep state;
17
+
18
+ if (file == NULL)
19
+ return Z_STREAM_ERROR;
20
+ state.file = file;
21
+
22
+ return state.state->mode == GZ_READ ? gzclose_r(file) : gzclose_w(file);
23
+ #else
24
+ return gzclose_r(file);
25
+ #endif
26
+ }
@@ -0,0 +1,68 @@
1
+ /*
2
+ * Copyright (c) Meta Platforms, Inc. and affiliates.
3
+ * All rights reserved.
4
+ *
5
+ * This source code is licensed under both the BSD-style license (found in the
6
+ * LICENSE file in the root directory of this source tree) and the GPLv2 (found
7
+ * in the COPYING file in the root directory of this source tree).
8
+ * You may select, at your option, one of the above-listed licenses.
9
+ */
10
+
11
+
12
+
13
+ #if ZLIB_VERNUM <= 0x1240
14
+ ZEXTERN int ZEXPORT gzclose_r _Z_OF((gzFile file));
15
+ ZEXTERN int ZEXPORT gzclose_w _Z_OF((gzFile file));
16
+ ZEXTERN int ZEXPORT gzbuffer _Z_OF((gzFile file, unsigned size));
17
+ ZEXTERN z_off_t ZEXPORT gzoffset _Z_OF((gzFile file));
18
+
19
+ #if !defined(_WIN32) && defined(Z_LARGE64)
20
+ # define z_off64_t off64_t
21
+ #else
22
+ # if defined(_WIN32) && !defined(__GNUC__) && !defined(Z_SOLO)
23
+ # define z_off64_t __int64
24
+ # else
25
+ # define z_off64_t z_off_t
26
+ # endif
27
+ #endif
28
+ #endif
29
+
30
+
31
+ #if ZLIB_VERNUM <= 0x1250
32
+ struct gzFile_s {
33
+ unsigned have;
34
+ unsigned char *next;
35
+ z_off64_t pos;
36
+ };
37
+ #endif
38
+
39
+
40
+ #if ZLIB_VERNUM <= 0x1270
41
+ #if defined(_WIN32) && !defined(Z_SOLO)
42
+ # include <stddef.h> /* for wchar_t */
43
+ ZEXTERN gzFile ZEXPORT gzopen_w _Z_OF((const wchar_t *path,
44
+ const char *mode));
45
+ #endif
46
+ #endif
47
+
48
+
49
+ #if ZLIB_VERNUM < 0x12B0
50
+ #ifdef Z_SOLO
51
+ typedef unsigned long z_size_t;
52
+ #else
53
+ # define z_longlong long long
54
+ # if defined(NO_SIZE_T)
55
+ typedef unsigned NO_SIZE_T z_size_t;
56
+ # elif defined(STDC)
57
+ # include <stddef.h>
58
+ typedef size_t z_size_t;
59
+ # else
60
+ typedef unsigned long z_size_t;
61
+ # endif
62
+ # undef z_longlong
63
+ #endif
64
+ ZEXTERN z_size_t ZEXPORT gzfread _Z_OF((voidp buf, z_size_t size, z_size_t nitems,
65
+ gzFile file));
66
+ ZEXTERN z_size_t ZEXPORT gzfwrite _Z_OF((voidpc buf, z_size_t size,
67
+ z_size_t nitems, gzFile file));
68
+ #endif
@@ -0,0 +1,229 @@
1
+ /* gzguts.h contains minimal changes required to be compiled with zlibWrapper:
2
+ * - #include "zlib.h" was changed to #include "zstd_zlibwrapper.h"
3
+ * - gz_statep was converted to union to work with -Wstrict-aliasing=1 */
4
+
5
+ /* gzguts.h -- zlib internal header definitions for gz* operations
6
+ * Copyright (C) 2004, 2005, 2010, 2011, 2012, 2013, 2016 Mark Adler
7
+ * For conditions of distribution and use, see https://www.zlib.net/zlib_license.html
8
+ */
9
+
10
+ #ifdef _LARGEFILE64_SOURCE
11
+ # ifndef _LARGEFILE_SOURCE
12
+ # define _LARGEFILE_SOURCE 1
13
+ # endif
14
+ # ifdef _FILE_OFFSET_BITS
15
+ # undef _FILE_OFFSET_BITS
16
+ # endif
17
+ #endif
18
+
19
+ #ifdef HAVE_HIDDEN
20
+ # define ZLIB_INTERNAL __attribute__((visibility ("hidden")))
21
+ #else
22
+ # define ZLIB_INTERNAL
23
+ #endif
24
+
25
+ #include <stdio.h>
26
+ #include "zstd_zlibwrapper.h"
27
+ #include "gzcompatibility.h"
28
+ #ifdef STDC
29
+ # include <string.h>
30
+ # include <stdlib.h>
31
+ # include <limits.h>
32
+ #endif
33
+
34
+ #ifndef _POSIX_SOURCE
35
+ # define _POSIX_SOURCE
36
+ #endif
37
+ #include <fcntl.h>
38
+
39
+ #ifdef _WIN32
40
+ # include <stddef.h>
41
+ #else
42
+ # include <unistd.h>
43
+ #endif
44
+
45
+ #if defined(__TURBOC__) || defined(_MSC_VER) || defined(_WIN32)
46
+ # include <io.h>
47
+ #endif
48
+
49
+ #if defined(_WIN32)
50
+ # define WIDECHAR
51
+ #endif
52
+
53
+ #ifdef WINAPI_FAMILY
54
+ # define open _open
55
+ # define read _read
56
+ # define write _write
57
+ # define close _close
58
+ #endif
59
+
60
+ #ifdef NO_DEFLATE /* for compatibility with old definition */
61
+ # define NO_GZCOMPRESS
62
+ #endif
63
+
64
+ #if defined(STDC99) || (defined(__TURBOC__) && __TURBOC__ >= 0x550)
65
+ # ifndef HAVE_VSNPRINTF
66
+ # define HAVE_VSNPRINTF
67
+ # endif
68
+ #endif
69
+
70
+ #if defined(__CYGWIN__)
71
+ # ifndef HAVE_VSNPRINTF
72
+ # define HAVE_VSNPRINTF
73
+ # endif
74
+ #endif
75
+
76
+ #if defined(MSDOS) && defined(__BORLANDC__) && (BORLANDC > 0x410)
77
+ # ifndef HAVE_VSNPRINTF
78
+ # define HAVE_VSNPRINTF
79
+ # endif
80
+ #endif
81
+
82
+ #ifndef HAVE_VSNPRINTF
83
+ # ifdef MSDOS
84
+ /* vsnprintf may exist on some MS-DOS compilers (DJGPP?),
85
+ but for now we just assume it doesn't. */
86
+ # define NO_vsnprintf
87
+ # endif
88
+ # ifdef __TURBOC__
89
+ # define NO_vsnprintf
90
+ # endif
91
+ # ifdef WIN32
92
+ /* In Win32, vsnprintf is available as the "non-ANSI" _vsnprintf. */
93
+ # if !defined(vsnprintf) && !defined(NO_vsnprintf)
94
+ # if !defined(_MSC_VER) || ( defined(_MSC_VER) && _MSC_VER < 1500 )
95
+ # define vsnprintf _vsnprintf
96
+ # endif
97
+ # endif
98
+ # endif
99
+ # ifdef __SASC
100
+ # define NO_vsnprintf
101
+ # endif
102
+ # ifdef VMS
103
+ # define NO_vsnprintf
104
+ # endif
105
+ # ifdef __OS400__
106
+ # define NO_vsnprintf
107
+ # endif
108
+ # ifdef __MVS__
109
+ # define NO_vsnprintf
110
+ # endif
111
+ #endif
112
+
113
+ /* unlike snprintf (which is required in C99), _snprintf does not guarantee
114
+ null termination of the result -- however this is only used in gzlib.c where
115
+ the result is assured to fit in the space provided */
116
+ #if defined(_MSC_VER) && _MSC_VER < 1900
117
+ # define snprintf _snprintf
118
+ #endif
119
+
120
+ #ifndef local
121
+ # define local static
122
+ #endif
123
+ /* since "static" is used to mean two completely different things in C, we
124
+ define "local" for the non-static meaning of "static", for readability
125
+ (compile with -Dlocal if your debugger can't find static symbols) */
126
+
127
+ /* gz* functions always use library allocation functions */
128
+ #ifndef STDC
129
+ extern voidp malloc _Z_OF((uInt size));
130
+ extern void free _Z_OF((voidpf ptr));
131
+ #endif
132
+
133
+ /* get errno and strerror definition */
134
+ #if defined UNDER_CE
135
+ # include <windows.h>
136
+ # define zstrerror() gz_strwinerror((DWORD)GetLastError())
137
+ #else
138
+ # ifndef NO_STRERROR
139
+ # include <errno.h>
140
+ # define zstrerror() strerror(errno)
141
+ # else
142
+ # define zstrerror() "stdio error (consult errno)"
143
+ # endif
144
+ #endif
145
+
146
+ /* provide prototypes for these when building zlib without LFS */
147
+ #if !defined(_LARGEFILE64_SOURCE) || _LFS64_LARGEFILE-0 == 0
148
+ ZEXTERN gzFile ZEXPORT gzopen64 _Z_OF((const char *, const char *));
149
+ ZEXTERN z_off64_t ZEXPORT gzseek64 _Z_OF((gzFile, z_off64_t, int));
150
+ ZEXTERN z_off64_t ZEXPORT gztell64 _Z_OF((gzFile));
151
+ ZEXTERN z_off64_t ZEXPORT gzoffset64 _Z_OF((gzFile));
152
+ #endif
153
+
154
+ /* default memLevel */
155
+ #if MAX_MEM_LEVEL >= 8
156
+ # define DEF_MEM_LEVEL 8
157
+ #else
158
+ # define DEF_MEM_LEVEL MAX_MEM_LEVEL
159
+ #endif
160
+
161
+ /* default i/o buffer size -- double this for output when reading (this and
162
+ twice this must be able to fit in an unsigned type) */
163
+ #define GZBUFSIZE 8192
164
+
165
+ /* gzip modes, also provide a little integrity check on the passed structure */
166
+ #define GZ_NONE 0
167
+ #define GZ_READ 7247
168
+ #define GZ_WRITE 31153
169
+ #define GZ_APPEND 1 /* mode set to GZ_WRITE after the file is opened */
170
+
171
+ /* values for gz_state how */
172
+ #define LOOK 0 /* look for a gzip header */
173
+ #define COPY 1 /* copy input directly */
174
+ #define GZIP 2 /* decompress a gzip stream */
175
+
176
+ /* internal gzip file state data structure */
177
+ typedef struct {
178
+ /* exposed contents for gzgetc() macro */
179
+ struct gzFile_s x; /* "x" for exposed */
180
+ /* x.have: number of bytes available at x.next */
181
+ /* x.next: next output data to deliver or write */
182
+ /* x.pos: current position in uncompressed data */
183
+ /* used for both reading and writing */
184
+ int mode; /* see gzip modes above */
185
+ int fd; /* file descriptor */
186
+ char *path; /* path or fd for error messages */
187
+ unsigned size; /* buffer size, zero if not allocated yet */
188
+ unsigned want; /* requested buffer size, default is GZBUFSIZE */
189
+ unsigned char *in; /* input buffer (double-sized when writing) */
190
+ unsigned char *out; /* output buffer (double-sized when reading) */
191
+ int direct; /* 0 if processing gzip, 1 if transparent */
192
+ /* just for reading */
193
+ int how; /* 0: get header, 1: copy, 2: decompress */
194
+ z_off64_t start; /* where the gzip data started, for rewinding */
195
+ int eof; /* true if end of input file reached */
196
+ int past; /* true if read requested past end */
197
+ /* just for writing */
198
+ int level; /* compression level */
199
+ int strategy; /* compression strategy */
200
+ /* seek request */
201
+ z_off64_t skip; /* amount to skip (already rewound if backwards) */
202
+ int seek; /* true if seek request pending */
203
+ /* error information */
204
+ int err; /* error code */
205
+ char *msg; /* error message */
206
+ /* zlib inflate or deflate stream */
207
+ z_stream strm; /* stream structure in-place (not a pointer) */
208
+ } gz_state;
209
+
210
+ typedef union {
211
+ gz_state FAR *state;
212
+ gzFile file;
213
+ } gz_statep;
214
+
215
+ /* shared functions */
216
+ void ZLIB_INTERNAL gz_error _Z_OF((gz_statep, int, const char *));
217
+ #if defined UNDER_CE
218
+ char ZLIB_INTERNAL *gz_strwinerror _Z_OF((DWORD error));
219
+ #endif
220
+
221
+ /* GT_OFF(x), where x is an unsigned value, is true if x > maximum z_off64_t
222
+ value -- needed when comparing unsigned to z_off64_t, which is signed
223
+ (possible z_off64_t types off_t, off64_t, and long are all signed) */
224
+ #ifdef INT_MAX
225
+ # define GT_OFF(x) (sizeof(int) == sizeof(z_off64_t) && (x) > INT_MAX)
226
+ #else
227
+ unsigned ZLIB_INTERNAL gz_intmax _Z_OF((void));
228
+ # define GT_OFF(x) (sizeof(int) == sizeof(z_off64_t) && (x) > gz_intmax())
229
+ #endif