aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorEvgeny Grin (Karlson2k) <k2k@narod.ru>2017-11-22 14:12:17 +0300
committerEvgeny Grin (Karlson2k) <k2k@narod.ru>2017-11-22 14:45:49 +0300
commit79245407f429a1e10f44452b3a3b10e02a104c7d (patch)
tree1625e164325fd54f677294e67e27ba842145a734
parentd30195fc18db741fc59cd3ca00b6de7c3c4296e4 (diff)
downloadlibmicrohttpd-79245407f429a1e10f44452b3a3b10e02a104c7d.tar.gz
libmicrohttpd-79245407f429a1e10f44452b3a3b10e02a104c7d.zip
mhd_limits: improved detection of OFF_T_MAX, SIZE_MAX, added macros for SSIZE_MAX, INT64_MAX
-rw-r--r--src/microhttpd/mhd_limits.h34
1 files changed, 32 insertions, 2 deletions
diff --git a/src/microhttpd/mhd_limits.h b/src/microhttpd/mhd_limits.h
index b0778112..1b0f5d7d 100644
--- a/src/microhttpd/mhd_limits.h
+++ b/src/microhttpd/mhd_limits.h
@@ -72,7 +72,7 @@
72#else /* ! __UINT32_MAX__ */ 72#else /* ! __UINT32_MAX__ */
73#define UINT32_MAX ((int32_t)0xFFFFFFFF) 73#define UINT32_MAX ((int32_t)0xFFFFFFFF)
74#endif /* ! __UINT32_MAX__ */ 74#endif /* ! __UINT32_MAX__ */
75#endif /* !UNT32_MAX */ 75#endif /* !UINT32_MAX */
76 76
77#ifndef UINT64_MAX 77#ifndef UINT64_MAX
78#ifdef __UINT64_MAX__ 78#ifdef __UINT64_MAX__
@@ -80,18 +80,48 @@
80#else /* ! __UINT64_MAX__ */ 80#else /* ! __UINT64_MAX__ */
81#define UINT64_MAX ((uint64_t)0xFFFFFFFFFFFFFFFF) 81#define UINT64_MAX ((uint64_t)0xFFFFFFFFFFFFFFFF)
82#endif /* ! __UINT64_MAX__ */ 82#endif /* ! __UINT64_MAX__ */
83#endif /* !INT32_MAX */ 83#endif /* !UINT64_MAX */
84
85#ifndef INT64_MAX
86#ifdef __INT64_MAX__
87#define INT64_MAX __INT64_MAX__
88#else /* ! __INT64_MAX__ */
89#define INT64_MAX ((int64_t)0x7FFFFFFFFFFFFFFF)
90#endif /* ! __UINT64_MAX__ */
91#endif /* !INT64_MAX */
84 92
85#ifndef SIZE_MAX 93#ifndef SIZE_MAX
86#ifdef __SIZE_MAX__ 94#ifdef __SIZE_MAX__
87#define SIZE_MAX __SIZE_MAX__ 95#define SIZE_MAX __SIZE_MAX__
96#elif defined(UINTPTR_MAX)
97#define SIZE_MAX UINTPTR_MAX
88#else /* ! __SIZE_MAX__ */ 98#else /* ! __SIZE_MAX__ */
89#define SIZE_MAX MHD_UNSIGNED_TYPE_MAX_(size_t) 99#define SIZE_MAX MHD_UNSIGNED_TYPE_MAX_(size_t)
90#endif /* ! __SIZE_MAX__ */ 100#endif /* ! __SIZE_MAX__ */
91#endif /* !SIZE_MAX */ 101#endif /* !SIZE_MAX */
92 102
103#ifndef SSIZE_MAX
104#ifdef __SSIZE_MAX__
105#define SSIZE_MAX __SSIZE_MAX__
106#elif defined(PTRDIFF_MAX)
107#define SSIZE_MAX PTRDIFF_MAX
108#elif defined(INTPTR_MAX)
109#define SSIZE_MAX INTPTR_MAX
110#else
111#define SSIZE_MAN MHD_SIGNED_TYPE_MAX_(ssize_t)
112#endif
113#endif /* ! SSIZE_MAX */
114
93#ifndef OFF_T_MAX 115#ifndef OFF_T_MAX
116#ifdef OFF_MAX
117#define OFF_T_MAX OFF_MAX
118#elif defined(OFFT_MAX)
119#define OFF_T_MAX OFFT_MAX
120#elif defined(__APPLE__) && defined(__MACH__)
121#define OFF_T_MAX INT64_MAX
122#else
94#define OFF_T_MAX MHD_SIGNED_TYPE_MAX_(off_t) 123#define OFF_T_MAX MHD_SIGNED_TYPE_MAX_(off_t)
124#endif
95#endif /* !OFF_T_MAX */ 125#endif /* !OFF_T_MAX */
96 126
97#if defined(_LARGEFILE64_SOURCE) && !defined(OFF64_T_MAX) 127#if defined(_LARGEFILE64_SOURCE) && !defined(OFF64_T_MAX)