Mercurial > hgrepos > Python2 > PyMuPDF
comparison mupdf-source/thirdparty/zlib/gzguts.h @ 2:b50eed0cc0ef upstream
ADD: MuPDF v1.26.7: the MuPDF source as downloaded by a default build of PyMuPDF 1.26.4.
The directory name has changed: no version number in the expanded directory now.
| author | Franz Glasner <fzglas.hg@dom66.de> |
|---|---|
| date | Mon, 15 Sep 2025 11:43:07 +0200 |
| parents | |
| children |
comparison
equal
deleted
inserted
replaced
| 1:1d09e1dec1d9 | 2:b50eed0cc0ef |
|---|---|
| 1 /* gzguts.h -- zlib internal header definitions for gz* operations | |
| 2 * Copyright (C) 2004-2024 Mark Adler | |
| 3 * For conditions of distribution and use, see copyright notice in zlib.h | |
| 4 */ | |
| 5 | |
| 6 #ifdef _LARGEFILE64_SOURCE | |
| 7 # ifndef _LARGEFILE_SOURCE | |
| 8 # define _LARGEFILE_SOURCE 1 | |
| 9 # endif | |
| 10 # undef _FILE_OFFSET_BITS | |
| 11 # undef _TIME_BITS | |
| 12 #endif | |
| 13 | |
| 14 #ifdef HAVE_HIDDEN | |
| 15 # define ZLIB_INTERNAL __attribute__((visibility ("hidden"))) | |
| 16 #else | |
| 17 # define ZLIB_INTERNAL | |
| 18 #endif | |
| 19 | |
| 20 #include <stdio.h> | |
| 21 #include "zlib.h" | |
| 22 #ifdef STDC | |
| 23 # include <string.h> | |
| 24 # include <stdlib.h> | |
| 25 # include <limits.h> | |
| 26 #endif | |
| 27 | |
| 28 #ifndef _POSIX_SOURCE | |
| 29 # define _POSIX_SOURCE | |
| 30 #endif | |
| 31 #include <fcntl.h> | |
| 32 | |
| 33 #ifdef _WIN32 | |
| 34 # include <stddef.h> | |
| 35 #endif | |
| 36 | |
| 37 #if defined(__TURBOC__) || defined(_MSC_VER) || defined(_WIN32) | |
| 38 # include <io.h> | |
| 39 #endif | |
| 40 | |
| 41 #if defined(_WIN32) | |
| 42 # define WIDECHAR | |
| 43 #endif | |
| 44 | |
| 45 #ifdef WINAPI_FAMILY | |
| 46 # define open _open | |
| 47 # define read _read | |
| 48 # define write _write | |
| 49 # define close _close | |
| 50 #endif | |
| 51 | |
| 52 #ifdef NO_DEFLATE /* for compatibility with old definition */ | |
| 53 # define NO_GZCOMPRESS | |
| 54 #endif | |
| 55 | |
| 56 #if defined(STDC99) || (defined(__TURBOC__) && __TURBOC__ >= 0x550) | |
| 57 # ifndef HAVE_VSNPRINTF | |
| 58 # define HAVE_VSNPRINTF | |
| 59 # endif | |
| 60 #endif | |
| 61 | |
| 62 #if defined(__CYGWIN__) | |
| 63 # ifndef HAVE_VSNPRINTF | |
| 64 # define HAVE_VSNPRINTF | |
| 65 # endif | |
| 66 #endif | |
| 67 | |
| 68 #if defined(MSDOS) && defined(__BORLANDC__) && (BORLANDC > 0x410) | |
| 69 # ifndef HAVE_VSNPRINTF | |
| 70 # define HAVE_VSNPRINTF | |
| 71 # endif | |
| 72 #endif | |
| 73 | |
| 74 #ifndef HAVE_VSNPRINTF | |
| 75 # ifdef MSDOS | |
| 76 /* vsnprintf may exist on some MS-DOS compilers (DJGPP?), | |
| 77 but for now we just assume it doesn't. */ | |
| 78 # define NO_vsnprintf | |
| 79 # endif | |
| 80 # ifdef __TURBOC__ | |
| 81 # define NO_vsnprintf | |
| 82 # endif | |
| 83 # ifdef WIN32 | |
| 84 /* In Win32, vsnprintf is available as the "non-ANSI" _vsnprintf. */ | |
| 85 # if !defined(vsnprintf) && !defined(NO_vsnprintf) | |
| 86 # if !defined(_MSC_VER) || ( defined(_MSC_VER) && _MSC_VER < 1500 ) | |
| 87 # define vsnprintf _vsnprintf | |
| 88 # endif | |
| 89 # endif | |
| 90 # endif | |
| 91 # ifdef __SASC | |
| 92 # define NO_vsnprintf | |
| 93 # endif | |
| 94 # ifdef VMS | |
| 95 # define NO_vsnprintf | |
| 96 # endif | |
| 97 # ifdef __OS400__ | |
| 98 # define NO_vsnprintf | |
| 99 # endif | |
| 100 # ifdef __MVS__ | |
| 101 # define NO_vsnprintf | |
| 102 # endif | |
| 103 #endif | |
| 104 | |
| 105 /* unlike snprintf (which is required in C99), _snprintf does not guarantee | |
| 106 null termination of the result -- however this is only used in gzlib.c where | |
| 107 the result is assured to fit in the space provided */ | |
| 108 #if defined(_MSC_VER) && _MSC_VER < 1900 | |
| 109 # define snprintf _snprintf | |
| 110 #endif | |
| 111 | |
| 112 #ifndef local | |
| 113 # define local static | |
| 114 #endif | |
| 115 /* since "static" is used to mean two completely different things in C, we | |
| 116 define "local" for the non-static meaning of "static", for readability | |
| 117 (compile with -Dlocal if your debugger can't find static symbols) */ | |
| 118 | |
| 119 /* gz* functions always use library allocation functions */ | |
| 120 #ifndef STDC | |
| 121 extern voidp malloc(uInt size); | |
| 122 extern void free(voidpf ptr); | |
| 123 #endif | |
| 124 | |
| 125 /* get errno and strerror definition */ | |
| 126 #if defined UNDER_CE | |
| 127 # include <windows.h> | |
| 128 # define zstrerror() gz_strwinerror((DWORD)GetLastError()) | |
| 129 #else | |
| 130 # ifndef NO_STRERROR | |
| 131 # include <errno.h> | |
| 132 # define zstrerror() strerror(errno) | |
| 133 # else | |
| 134 # define zstrerror() "stdio error (consult errno)" | |
| 135 # endif | |
| 136 #endif | |
| 137 | |
| 138 /* provide prototypes for these when building zlib without LFS */ | |
| 139 #if !defined(_LARGEFILE64_SOURCE) || _LFS64_LARGEFILE-0 == 0 | |
| 140 ZEXTERN gzFile ZEXPORT gzopen64(const char *, const char *); | |
| 141 ZEXTERN z_off64_t ZEXPORT gzseek64(gzFile, z_off64_t, int); | |
| 142 ZEXTERN z_off64_t ZEXPORT gztell64(gzFile); | |
| 143 ZEXTERN z_off64_t ZEXPORT gzoffset64(gzFile); | |
| 144 #endif | |
| 145 | |
| 146 /* default memLevel */ | |
| 147 #if MAX_MEM_LEVEL >= 8 | |
| 148 # define DEF_MEM_LEVEL 8 | |
| 149 #else | |
| 150 # define DEF_MEM_LEVEL MAX_MEM_LEVEL | |
| 151 #endif | |
| 152 | |
| 153 /* default i/o buffer size -- double this for output when reading (this and | |
| 154 twice this must be able to fit in an unsigned type) */ | |
| 155 #define GZBUFSIZE 8192 | |
| 156 | |
| 157 /* gzip modes, also provide a little integrity check on the passed structure */ | |
| 158 #define GZ_NONE 0 | |
| 159 #define GZ_READ 7247 | |
| 160 #define GZ_WRITE 31153 | |
| 161 #define GZ_APPEND 1 /* mode set to GZ_WRITE after the file is opened */ | |
| 162 | |
| 163 /* values for gz_state how */ | |
| 164 #define LOOK 0 /* look for a gzip header */ | |
| 165 #define COPY 1 /* copy input directly */ | |
| 166 #define GZIP 2 /* decompress a gzip stream */ | |
| 167 | |
| 168 /* internal gzip file state data structure */ | |
| 169 typedef struct { | |
| 170 /* exposed contents for gzgetc() macro */ | |
| 171 struct gzFile_s x; /* "x" for exposed */ | |
| 172 /* x.have: number of bytes available at x.next */ | |
| 173 /* x.next: next output data to deliver or write */ | |
| 174 /* x.pos: current position in uncompressed data */ | |
| 175 /* used for both reading and writing */ | |
| 176 int mode; /* see gzip modes above */ | |
| 177 int fd; /* file descriptor */ | |
| 178 char *path; /* path or fd for error messages */ | |
| 179 unsigned size; /* buffer size, zero if not allocated yet */ | |
| 180 unsigned want; /* requested buffer size, default is GZBUFSIZE */ | |
| 181 unsigned char *in; /* input buffer (double-sized when writing) */ | |
| 182 unsigned char *out; /* output buffer (double-sized when reading) */ | |
| 183 int direct; /* 0 if processing gzip, 1 if transparent */ | |
| 184 /* just for reading */ | |
| 185 int how; /* 0: get header, 1: copy, 2: decompress */ | |
| 186 z_off64_t start; /* where the gzip data started, for rewinding */ | |
| 187 int eof; /* true if end of input file reached */ | |
| 188 int past; /* true if read requested past end */ | |
| 189 /* just for writing */ | |
| 190 int level; /* compression level */ | |
| 191 int strategy; /* compression strategy */ | |
| 192 int reset; /* true if a reset is pending after a Z_FINISH */ | |
| 193 /* seek request */ | |
| 194 z_off64_t skip; /* amount to skip (already rewound if backwards) */ | |
| 195 int seek; /* true if seek request pending */ | |
| 196 /* error information */ | |
| 197 int err; /* error code */ | |
| 198 char *msg; /* error message */ | |
| 199 /* zlib inflate or deflate stream */ | |
| 200 z_stream strm; /* stream structure in-place (not a pointer) */ | |
| 201 } gz_state; | |
| 202 typedef gz_state FAR *gz_statep; | |
| 203 | |
| 204 /* shared functions */ | |
| 205 void ZLIB_INTERNAL gz_error(gz_statep, int, const char *); | |
| 206 #if defined UNDER_CE | |
| 207 char ZLIB_INTERNAL *gz_strwinerror(DWORD error); | |
| 208 #endif | |
| 209 | |
| 210 /* GT_OFF(x), where x is an unsigned value, is true if x > maximum z_off64_t | |
| 211 value -- needed when comparing unsigned to z_off64_t, which is signed | |
| 212 (possible z_off64_t types off_t, off64_t, and long are all signed) */ | |
| 213 unsigned ZLIB_INTERNAL gz_intmax(void); | |
| 214 #define GT_OFF(x) (sizeof(int) == sizeof(z_off64_t) && (x) > gz_intmax()) |
