diff options
Diffstat (limited to 'contrib/minizip/ints.h')
-rw-r--r-- | contrib/minizip/ints.h | 57 |
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 | ||