aboutsummaryrefslogtreecommitdiff
path: root/contrib/minizip/ints.h
diff options
context:
space:
mode:
authorMark Adler <madler@alumni.caltech.edu>2024-07-29 15:06:11 -0700
committerMark Adler <madler@alumni.caltech.edu>2024-07-31 22:32:47 -0700
commitbe24a8f4ca8ae9870c1af4bd5a59375bb36c49fc (patch)
tree87c7096a01dc0fb320ce8bd9eb224b9406ab36a9 /contrib/minizip/ints.h
parent164b8e3c9f02e2680dfad35f8c0778f8f2ce3096 (diff)
downloadzlib-be24a8f4ca8ae9870c1af4bd5a59375bb36c49fc.tar.gz
zlib-be24a8f4ca8ae9870c1af4bd5a59375bb36c49fc.tar.bz2
zlib-be24a8f4ca8ae9870c1af4bd5a59375bb36c49fc.zip
Avoid use of stdint.h in contrib/minizip.
Diffstat (limited to 'contrib/minizip/ints.h')
-rw-r--r--contrib/minizip/ints.h57
1 files changed, 57 insertions, 0 deletions
diff --git a/contrib/minizip/ints.h b/contrib/minizip/ints.h
new file mode 100644
index 0000000..4c84375
--- /dev/null
+++ b/contrib/minizip/ints.h
@@ -0,0 +1,57 @@
1/* ints.h -- create integer types for 8, 16, 32, and 64 bits
2 * Copyright (C) 2024 Mark Adler
3 * For conditions of distribution and use, see the copyright notice in zlib.h
4 *
5 * There exist compilers with limits.h, but not stdint.h or inttypes.h.
6 */
7
8#ifndef INTS_H
9#define INTS_H
10#include <limits.h>
11#if defined(UCHAR_MAX) && UCHAR_MAX == 0xff
12 typedef signed char i8_t;
13 typedef unsigned char ui8_t;
14#else
15# error "no 8-bit integer"
16#endif
17#if defined(USHRT_MAX) && USHRT_MAX == 0xffff
18 typedef short i16_t;
19 typedef unsigned short ui16_t;
20#elif defined(UINT_MAX) && UINT_MAX == 0xffff
21 typedef int i16_t;
22 typedef unsigned ui16_t;
23#else
24# error "no 16-bit integer"
25#endif
26#if defined(UINT_MAX) && UINT_MAX == 0xffffffff
27 typedef int i32_t;
28 typedef unsigned ui32_t;
29# define PI32 "d"
30# define PUI32 "u"
31#elif defined(ULONG_MAX) && ULONG_MAX == 0xffffffff
32 typedef long i32_t;
33 typedef unsigned long ui32_t;
34# define PI32 "ld"
35# define PUI32 "lu"
36#else
37# error "no 32-bit integer"
38#endif
39#if defined(ULONG_MAX) && ULONG_MAX == 0xffffffffffffffff
40 typedef long i64_t;
41 typedef unsigned long ui64_t;
42# define PI64 "ld"
43# define PUI64 "lu"
44#elif defined(ULLONG_MAX) && ULLONG_MAX == 0xffffffffffffffff
45 typedef long long i64_t;
46 typedef unsigned long long ui64_t;
47# define PI64 "lld"
48# define PUI64 "llu"
49#elif defined(ULONG_LONG_MAX) && ULONG_LONG_MAX == 0xffffffffffffffff
50 typedef long long i64_t;
51 typedef unsigned long long ui64_t;
52# define PI64 "lld"
53# define PUI64 "llu"
54#else
55# error "no 64-bit integer"
56#endif
57#endif