diff options
Diffstat (limited to 'Zend/zend_int.h')
| -rw-r--r-- | Zend/zend_int.h | 104 |
1 files changed, 50 insertions, 54 deletions
diff --git a/Zend/zend_int.h b/Zend/zend_int.h index de48718365..f33b3ff8ec 100644 --- a/Zend/zend_int.h +++ b/Zend/zend_int.h @@ -19,17 +19,13 @@ /* $Id$ */ -#ifndef ZEND_INT_H -#define ZEND_INT_H +#ifndef ZEND_LONG_H +#define ZEND_LONG_H -#ifndef ZEND_WIN32 -/* this probably needs more on non windows, like for C++ and C99*/ -# include <stdint.h> -# include <inttypes.h> -#endif +#include "main/php_stdint.h" /* This is the heart of the whole int64 enablement in zval. Based on this - macros the zend_size_t datatype is handled, see zend_types.h */ + macros the size_t datatype is handled, see zend_types.h */ #if defined(__X86_64__) || defined(__LP64__) || defined(_LP64) || defined(_WIN64) # define ZEND_ENABLE_INT64 1 #endif @@ -38,11 +34,11 @@ #ifdef ZEND_ENABLE_INT64 # ifdef ZEND_WIN32 # ifdef _WIN64 -typedef __int64 zend_int_t; -typedef unsigned __int64 zend_uint_t; +typedef __int64 zend_long; +typedef unsigned __int64 zend_ulong; typedef __int64 zend_off_t; -# define ZEND_INT_MAX _I64_MAX -# define ZEND_INT_MIN _I64_MIN +# define ZEND_LONG_MAX _I64_MAX +# define ZEND_LONG_MIN _I64_MIN # define ZEND_UINT_MAX _UI64_MAX # define Z_I(i) i##i64 # define Z_UI(i) i##Ui64 @@ -51,11 +47,11 @@ typedef __int64 zend_off_t; # endif # else # if defined(__X86_64__) || defined(__LP64__) || defined(_LP64) -typedef int64_t zend_int_t; -typedef uint64_t zend_uint_t; +typedef int64_t zend_long; +typedef uint64_t zend_ulong; typedef off_t zend_off_t; -# define ZEND_INT_MAX INT64_MAX -# define ZEND_INT_MIN INT64_MIN +# define ZEND_LONG_MAX INT64_MAX +# define ZEND_LONG_MIN INT64_MIN # define ZEND_UINT_MAX UINT64_MAX # define Z_I(i) i##LL # define Z_UI(i) i##ULL @@ -65,11 +61,11 @@ typedef off_t zend_off_t; # endif # define SIZEOF_ZEND_INT 8 #else -typedef long zend_int_t; -typedef unsigned long zend_uint_t; +typedef long zend_long; +typedef unsigned long zend_ulong; typedef long zend_off_t; -# define ZEND_INT_MAX LONG_MAX -# define ZEND_INT_MIN LONG_MIN +# define ZEND_LONG_MAX LONG_MAX +# define ZEND_LONG_MIN LONG_MIN # define ZEND_UINT_MAX ULONG_MAX # define Z_I(i) i##L # define Z_UI(i) i##UL @@ -78,63 +74,63 @@ typedef long zend_off_t; /* conversion macros */ -#define ZEND_ITOA_BUF_LEN 65 +#define ZEND_LTOA_BUF_LEN 65 #ifdef ZEND_ENABLE_INT64 # ifdef PHP_WIN32 -# define ZEND_ITOA(i, s, len) _i64toa_s((i), (s), (len), 10) -# define ZEND_ATOI(i, s) i = _atoi64((s)) -# define ZEND_STRTOI(s0, s1, base) _strtoi64((s0), (s1), (base)) -# define ZEND_STRTOUI(s0, s1, base) _strtoui64((s0), (s1), (base)) -# define ZEND_INT_FMT "%I64d" -# define ZEND_UINT_FMT "%I64u" -# define ZEND_INT_FMT_SPEC "I64d" -# define ZEND_UINT_FMT_SPEC "I64u" -# define ZEND_STRTOI_PTR _strtoi64 -# define ZEND_STRTOUI_PTR _strtoui64 +# define ZEND_LTOA(i, s, len) _i64toa_s((i), (s), (len), 10) +# define ZEND_ATOL(i, s) i = _atoi64((s)) +# define ZEND_STRTOL(s0, s1, base) _strtoi64((s0), (s1), (base)) +# define ZEND_STRTOUL(s0, s1, base) _strtoui64((s0), (s1), (base)) +# define ZEND_LONG_FMT "%I64d" +# define ZEND_ULONG_FMT "%I64u" +# define ZEND_LONG_FMT_SPEC "I64d" +# define ZEND_ULONG_FMT_SPEC "I64u" +# define ZEND_STRTOL_PTR _strtoi64 +# define ZEND_STRTOUL_PTR _strtoui64 # define ZEND_ABS _abs64 # else -# define ZEND_ITOA(i, s, len) \ +# define ZEND_LTOA(i, s, len) \ do { \ int st = snprintf((s), (len), "%lld", (i)); \ (s)[st] = '\0'; \ } while (0) -# define ZEND_ATOI(i, s) (i) = atoll((s)) -# define ZEND_STRTOI(s0, s1, base) strtoll((s0), (s1), (base)) -# define ZEND_STRTOUI(s0, s1, base) strtoull((s0), (s1), (base)) -# define ZEND_INT_FMT "%" PRId64 -# define ZEND_UINT_FMT "%" PRIu64 -# define ZEND_INT_FMT_SPEC PRId64 -# define ZEND_UINT_FMT_SPEC PRIu64 -# define ZEND_STRTOI_PTR strtoll -# define ZEND_STRTOUI_PTR strtoull +# define ZEND_ATOL(i, s) (i) = atoll((s)) +# define ZEND_STRTOL(s0, s1, base) strtoll((s0), (s1), (base)) +# define ZEND_STRTOUL(s0, s1, base) strtoull((s0), (s1), (base)) +# define ZEND_LONG_FMT "%" PRId64 +# define ZEND_ULONG_FMT "%" PRIu64 +# define ZEND_LONG_FMT_SPEC PRId64 +# define ZEND_ULONG_FMT_SPEC PRIu64 +# define ZEND_STRTOL_PTR strtoll +# define ZEND_STRTOUL_PTR strtoull # define ZEND_ABS llabs # endif #else -# define ZEND_STRTOI(s0, s1, base) strtol((s0), (s1), (base)) -# define ZEND_STRTOUI(s0, s1, base) strtoul((s0), (s1), (base)) +# define ZEND_STRTOL(s0, s1, base) strtol((s0), (s1), (base)) +# define ZEND_STRTOUL(s0, s1, base) strtoul((s0), (s1), (base)) # ifdef PHP_WIN32 -# define ZEND_ITOA(i, s, len) _ltoa_s((i), (s), (len), 10) -# define ZEND_ATOI(i, s) i = atol((s)) +# define ZEND_LTOA(i, s, len) _ltoa_s((i), (s), (len), 10) +# define ZEND_ATOL(i, s) i = atol((s)) # else -# define ZEND_ITOA(i, s, len) \ +# define ZEND_LTOA(i, s, len) \ do { \ int st = snprintf((s), (len), "%ld", (i)); \ (s)[st] = '\0'; \ } while (0) -# define ZEND_ATOI(i, s) (i) = atol((s)) +# define ZEND_ATOL(i, s) (i) = atol((s)) # endif -# define ZEND_INT_FMT "%ld" -# define ZEND_UINT_FMT "%lu" -# define ZEND_INT_FMT_SPEC "ld" -# define ZEND_UINT_FMT_SPEC "lu" -# define ZEND_STRTOI_PTR strtol -# define ZEND_STRTOUI_PTR strtoul +# define ZEND_LONG_FMT "%ld" +# define ZEND_ULONG_FMT "%lu" +# define ZEND_LONG_FMT_SPEC "ld" +# define ZEND_ULONG_FMT_SPEC "lu" +# define ZEND_STRTOL_PTR strtol +# define ZEND_STRTOUL_PTR strtoul # define ZEND_ABS abs #endif -#endif /* ZEND_INT_H */ +#endif /* ZEND_LONG_H */ /* * Local variables: |
