]> granicus.if.org Git - php/commitdiff
unify stdint type usage
authorMichael Wallner <mike@php.net>
Tue, 6 Aug 2013 20:45:35 +0000 (22:45 +0200)
committerMichael Wallner <mike@php.net>
Tue, 6 Aug 2013 20:49:56 +0000 (22:49 +0200)
if you need C99 stdint types, just include "php_stdint.h"

24 files changed:
Makefile.global
acinclude.m4
configure.in
ext/date/config0.m4
ext/date/lib/timelib_structs.h
ext/exif/exif.c
ext/hash/config.m4
ext/hash/config.w32
ext/hash/package.xml
ext/hash/php_hash.h
ext/hash/php_hash_types.h [deleted file]
ext/mysqlnd/config9.m4
ext/mysqlnd/mysqlnd_portability.h
ext/oci8/oci8.c
ext/phar/phar_internal.h
ext/spl/php_spl.h
ext/standard/crypt_freesec.h
ext/standard/crypt_sha256.c
ext/standard/crypt_sha512.c
ext/standard/string.c
ext/zip/lib/zipconf.h
main/php.h
main/php_stdint.h [new file with mode: 0644]
sapi/cli/php_http_parser.h

index e744e3778fa4bb0abe9be7903e54fab7b1fb60f5..bd82daf4d891ee44be56fadfb8dec6c07067ee79 100644 (file)
@@ -120,7 +120,7 @@ clean:
 distclean: clean
        rm -f Makefile config.cache config.log config.status Makefile.objects Makefile.fragments libtool main/php_config.h main/internal_functions_cli.c main/internal_functions.c stamp-h sapi/apache/libphp$(PHP_MAJOR_VERSION).module sapi/apache_hooks/libphp$(PHP_MAJOR_VERSION).module buildmk.stamp Zend/zend_dtrace_gen.h Zend/zend_dtrace_gen.h.bak Zend/zend_config.h TSRM/tsrm_config.h
        rm -f php5.spec main/build-defs.h scripts/phpize
-       rm -f ext/date/lib/timelib_config.h ext/mbstring/oniguruma/config.h ext/mbstring/libmbfl/config.h ext/mysqlnd/php_mysqlnd_config.h ext/oci8/oci8_dtrace_gen.h ext/oci8/oci8_dtrace_gen.h.bak
+       rm -f ext/date/lib/timelib_config.h ext/mbstring/oniguruma/config.h ext/mbstring/libmbfl/config.h ext/oci8/oci8_dtrace_gen.h ext/oci8/oci8_dtrace_gen.h.bak
        rm -f scripts/man1/phpize.1 scripts/php-config scripts/man1/php-config.1 sapi/cli/php.1 sapi/cgi/php-cgi.1 ext/phar/phar.1 ext/phar/phar.phar.1
        rm -f sapi/fpm/php-fpm.conf sapi/fpm/init.d.php-fpm sapi/fpm/php-fpm.service sapi/fpm/php-fpm.8 sapi/fpm/status.html
        rm -f ext/iconv/php_have_bsd_iconv.h ext/iconv/php_have_glibc_iconv.h ext/iconv/php_have_ibm_iconv.h ext/iconv/php_have_iconv.h ext/iconv/php_have_libiconv.h ext/iconv/php_iconv_aliased_libiconv.h ext/iconv/php_iconv_supports_errno.h ext/iconv/php_php_iconv_h_path.h ext/iconv/php_php_iconv_impl.h
index 682be598cee5153708e84a28c7a02e7b2759b9fc..b76bd344a757f42db49c5ca6626537537e8dcea9 100644 (file)
@@ -2978,3 +2978,22 @@ $ac_bdir[$]ac_provsrc.o: \$(PHP_DTRACE_OBJS)
 
 EOF
 ])
+
+dnl
+dnl PHP_CHECK_STDINT_TYPES
+dnl
+AC_DEFUN([PHP_CHECK_STDINT_TYPES], [
+  AC_CHECK_SIZEOF([short], 2)
+  AC_CHECK_SIZEOF([int], 4)
+  AC_CHECK_SIZEOF([long], 4)
+  AC_CHECK_SIZEOF([long long], 8)
+  AC_CHECK_TYPES([int8, int16, int32, int64, int8_t, int16_t, int32_t, int64_t, uint8, uint16, uint32, uint64, uint8_t, uint16_t, uint32_t, uint64_t, u_int8_t, u_int16_t, u_int32_t, u_int64_t], [], [], [
+#if HAVE_STDINT_H
+# include <stdint.h>
+#endif
+#if HAVE_SYS_TYPES_H
+# include <sys/types.h>
+#endif
+  ])
+  AC_DEFINE([PHP_HAVE_STDINT_TYPES], [1], [Checked for stdint types])
+])
index 51beea025f88fde064e0f992746b51ae64a7cc0e..cc038dd4c75bbc7ef0c7672bb4d2a4f323512319 100644 (file)
@@ -572,6 +572,9 @@ PHP_CHECK_SIZEOF(intmax_t, 0)
 PHP_CHECK_SIZEOF(ssize_t, 8)
 PHP_CHECK_SIZEOF(ptrdiff_t, 8)
 
+dnl Check stdint types (must be after header check)
+PHP_CHECK_STDINT_TYPES
+
 dnl Check for members of the stat structure
 AC_STRUCT_ST_BLKSIZE
 dnl AC_STRUCT_ST_BLOCKS will screw QNX because fileblocks.o does not exists
index f403104a8afbeae26eb156531acc68c87a255c3b..0b46c6803a7fd1943ac7b1a14e18518ebc7b1e42 100644 (file)
@@ -22,4 +22,5 @@ cat > $ext_builddir/lib/timelib_config.h <<EOF
 #else
 # include <php_config.h>
 #endif
+#include <php_stdint.h>
 EOF
index a3d7793447b72e39dc7e71496146283b65d85a77..5d1d9633306256ba144e47f5f9de10da6e16421b 100644 (file)
 #include <stdint.h>
 #endif
 
-#ifdef PHP_WIN32
-/* TODO: Remove these hacks/defs once we have the int definitions in main/ 
-        rathen than in each 2nd extension and win32/ */
-# include "win32/php_stdint.h"
-#else
 # ifndef HAVE_INT32_T
 #  if SIZEOF_INT == 4
 typedef int int32_t;
@@ -53,7 +48,6 @@ typedef unsigned int uint32_t;
 typedef unsigned long int uint32_t;
 #  endif
 # endif
-#endif
 
 #include <stdio.h>
 
@@ -68,8 +62,8 @@ typedef unsigned long int uint32_t;
 #endif
 
 #if defined(_MSC_VER)
-typedef uint64_t timelib_ull;
-typedef int64_t timelib_sll;
+typedef __uint64 timelib_ull;
+typedef __int64 timelib_sll;
 # define TIMELIB_LL_CONST(n) n ## i64
 #else
 typedef unsigned long long timelib_ull;
index bd646d9adf15a7eb925496d6d50215e2477ca654..ec121a6c326bc84b298a610abae9544093c59cb8 100644 (file)
 #include "php.h"
 #include "ext/standard/file.h"
 
-#ifdef HAVE_STDINT_H
-# include <stdint.h>
-#endif
-#ifdef HAVE_INTTYPES_H
-# include <inttypes.h>
-#endif
-#ifdef PHP_WIN32
-# include "win32/php_stdint.h"
-#endif
-
 #if HAVE_EXIF
 
 /* When EXIF_DEBUG is defined the module generates a lot of debug messages
index 79ac25e19f978f2b40b2b751428c75a48a10c693..9d080bf7af53578bca5e4d4a7ce871e311e7ae7a 100644 (file)
@@ -31,7 +31,7 @@ if test "$PHP_HASH" != "no"; then
   EXT_HASH_HEADERS="php_hash.h php_hash_md.h php_hash_sha.h php_hash_ripemd.h \
     php_hash_haval.h php_hash_tiger.h php_hash_gost.h php_hash_snefru.h \
     php_hash_whirlpool.h php_hash_adler32.h php_hash_crc32.h \
-    php_hash_fnv.h php_hash_joaat.h php_hash_types.h"
+    php_hash_fnv.h php_hash_joaat.h"
   
   PHP_NEW_EXTENSION(hash, $EXT_HASH_SOURCES, $ext_shared)
   ifdef([PHP_INSTALL_HEADERS], [
index abe8675f3063900d309f4a1cd53b8be053168871..8e9d4c3d48c9dde1d42d947593ea439797a33696 100644 (file)
@@ -19,7 +19,6 @@ if (PHP_HASH != "no") {
 
                PHP_INSTALL_HEADERS("ext/hash/", "php_hash.h php_hash_md.h php_hash_sha.h php_hash_ripemd.h " +
                "php_hash_haval.h php_hash_tiger.h php_hash_gost.h php_hash_snefru.h " + 
-               "php_hash_whirlpool.h php_hash_adler32.h php_hash_crc32.h " +
-               "php_hash_types.h");
+               "php_hash_whirlpool.h php_hash_adler32.h php_hash_crc32.h");
 }
 
index 119cdd673daa89fc861eb289ca7321310a94b2f8..25a598a4a1522923ef8617454dc623a548860dae 100644 (file)
@@ -42,7 +42,6 @@ Supported Algorithms:
    <file role="src" name="config.w32"/>
    <file role="src" name="hash.c"/>
    <file role="src" name="php_hash.h"/>
-   <file role="src" name="php_hash_types.h"/>
    <file role="src" name="hash_md.c"/>
    <file role="src" name="php_hash_md.h"/>
    <file role="src" name="hash_sha.c"/>
index 4bfddbacd9c45deb466c719580ff0f42cbabd5fe..3f5e7ced3a19b2a1e9290cd639af674600a509ea 100644 (file)
@@ -22,7 +22,6 @@
 #define PHP_HASH_H
 
 #include "php.h"
-#include "php_hash_types.h"
 
 #define PHP_HASH_EXTNAME       "hash"
 #define PHP_HASH_EXTVER                "1.0"
 
 #define PHP_HASH_HMAC          0x0001
 
+#define L64 INT64_C
+#define php_hash_int32  int32_t
+#define php_hash_uint32 uint32_t
+#define php_hash_int64  int64_t
+#define php_hash_uint64 uint64_t
+
 typedef void (*php_hash_init_func_t)(void *context);
 typedef void (*php_hash_update_func_t)(void *context, const unsigned char *buf, unsigned int count);
 typedef void (*php_hash_final_func_t)(unsigned char *digest, void *context);
diff --git a/ext/hash/php_hash_types.h b/ext/hash/php_hash_types.h
deleted file mode 100644 (file)
index 8793da5..0000000
+++ /dev/null
@@ -1,71 +0,0 @@
-/*
-   +----------------------------------------------------------------------+
-   | PHP Version 5                                                        |
-   +----------------------------------------------------------------------+
-   | Copyright (c) 1997-2013 The PHP Group                                |
-   +----------------------------------------------------------------------+
-   | This source file is subject to version 3.01 of the PHP license,      |
-   | that is bundled with this package in the file LICENSE, and is        |
-   | available through the world-wide-web at the following url:           |
-   | http://www.php.net/license/3_01.txt                                  |
-   | If you did not receive a copy of the PHP license and are unable to   |
-   | obtain it through the world-wide-web, please send a note to          |
-   | license@php.net so we can mail you a copy immediately.               |
-   +----------------------------------------------------------------------+
-   | Author: Michael Wallner <mike@php.net>                               |
-   +----------------------------------------------------------------------+
-*/
-
-/* $Id$ */
-
-#ifndef PHP_HASH_TYPES_H
-#define PHP_HASH_TYPES_H
-
-#ifdef HAVE_CONFIG_H
-#include "config.h"
-#else
-#ifndef PHP_WIN32
-#include "php_config.h"
-#endif
-#endif
-
-#ifndef PHP_WIN32
-#if SIZEOF_LONG == 8
-#define L64(x) x
-typedef unsigned long php_hash_uint64;
-#if SIZEOF_INT == 4
-typedef unsigned int php_hash_uint32;
-#elif SIZEOF_SHORT == 4
-typedef unsigned short php_hash_uint32;
-#else
-#error "Need a 32bit integer type"
-#endif
-#elif SIZEOF_LONG_LONG == 8
-#define L64(x) x##LL
-typedef unsigned long long php_hash_uint64;
-#if SIZEOF_INT == 4
-typedef unsigned int php_hash_uint32;
-#elif SIZEOF_LONG == 4
-typedef unsigned long php_hash_uint32;
-#else
-#error "Need a 32bit integer type"
-#endif
-#else
-#error "Need a 64bit integer type"
-#endif
-#else
-#define L64(x) x##i64
-typedef unsigned __int64 php_hash_uint64;
-typedef unsigned __int32 php_hash_uint32;
-#endif
-
-#endif
-
-/*
- * Local variables:
- * tab-width: 4
- * c-basic-offset: 4
- * End:
- * vim600: sw=4 ts=4 fdm=marker
- * vim<600: sw=4 ts=4
- */
index 3fc767b231d68da7edf78f3e2adbd6357d6271ff..8d74c91ce5ef31a6958b1e2b3954582cfd9a5a78 100644 (file)
@@ -48,16 +48,4 @@ fi
 
 if test "$PHP_MYSQLND" != "no" || test "$PHP_MYSQLND_ENABLED" = "yes" || test "$PHP_MYSQLI" != "no"; then
   PHP_ADD_BUILD_DIR([ext/mysqlnd], 1)
-
-  dnl This creates a file so it has to be after above macros
-  PHP_CHECK_TYPES([int8 uint8 int16 uint16 int32 uint32 uchar ulong int8_t uint8_t int16_t uint16_t int32_t uint32_t int64_t uint64_t], [
-    ext/mysqlnd/php_mysqlnd_config.h
-  ],[
-#ifdef HAVE_SYS_TYPES_H
-#include <sys/types.h>
-#endif
-#ifdef HAVE_STDINT_H
-#include <stdint.h>
-#endif
-  ])
 fi
index b9479150ae03ad9e1e1393ea1a304735720c7678..72a156a79500d40438b66f60396b65498fcfa9cf 100644 (file)
@@ -36,8 +36,6 @@ This file is public domain and comes with NO WARRANTY of any kind */
 
 #if defined(_WIN32) || defined(_WIN64) || defined(__WIN32__) || defined(WIN32)
 #  include "ext/mysqlnd/config-win.h"
-#else 
-#  include <ext/mysqlnd/php_mysqlnd_config.h>
 #endif /* _WIN32... */
 
 #if __STDC_VERSION__ < 199901L && !defined(atoll)
@@ -45,14 +43,7 @@ This file is public domain and comes with NO WARRANTY of any kind */
   #define atoll atol
 #endif
 
-
-#ifdef HAVE_SYS_TYPES_H
-#include <sys/types.h>
-#endif
-
-#ifdef HAVE_STDINT_H
-#include <stdint.h>
-#endif
+#include "php_stdint.h"
 
 #if SIZEOF_LONG_LONG > 4 && !defined(_LONG_LONG)
 #define _LONG_LONG 1        /* For AIX string library */
@@ -70,102 +61,6 @@ This file is public domain and comes with NO WARRANTY of any kind */
 #define HAVE_LONG_LONG 1
 #endif
 
-
-/* Typdefs for easyier portability */
-#ifndef HAVE_INT8_T
-#ifndef HAVE_INT8
-typedef signed char int8_t;                    /* Signed integer >= 8    bits */
-#else
-typedef int8 int8_t;                           /* Signed integer >= 8    bits */
-#endif
-#endif
-
-#ifndef HAVE_UINT8_T
-#ifndef HAVE_UINT8
-typedef unsigned char uint8_t;         /* Unsigned integer >= 8    bits */
-#else
-typedef uint8 uint8_t;                         /* Signed integer >= 8    bits */
-#endif
-#endif
-
-#ifndef HAVE_INT16_T
-#ifndef HAVE_INT16
-typedef signed short int16_t;          /* Signed integer >= 16 bits */
-#else
-typedef int16 int16_t;                         /* Signed integer >= 16 bits */
-#endif
-#endif
-
-#ifndef HAVE_UINT16_T
-#ifndef HAVE_UINT16
-typedef unsigned short uint16_t;               /* Signed integer >= 16 bits */
-#else
-typedef uint16 uint16_t;                       /* Signed integer >= 16 bits */
-#endif
-#endif
-
-
-#ifndef HAVE_INT32_T
-#ifdef HAVE_INT32
-typedef int32 int32_t;
-#elif SIZEOF_INT == 4
-typedef signed int int32_t;
-#elif SIZEOF_LONG == 4
-typedef signed long int32_t;
-#else
-error "Neither int nor long is of 4 bytes width"
-#endif
-#endif /* HAVE_INT32_T */
-
-#ifndef HAVE_UINT32_T
-#ifdef HAVE_UINT32
-typedef uint32 uint32_t;
-#elif SIZEOF_INT == 4
-typedef unsigned int uint32_t;
-#elif SIZEOF_LONG == 4
-typedef unsigned long uint32_t;
-#else
-#error "Neither int nor long is of 4 bytes width"
-#endif
-#endif /* HAVE_UINT32_T */
-
-#ifndef HAVE_INT64_T
-#ifdef HAVE_INT64
-typedef int64 int64_t;
-#elif SIZEOF_INT == 8
-typedef signed int int64_t;
-#elif SIZEOF_LONG == 8
-typedef signed long int64_t;
-#elif SIZEOF_LONG_LONG == 8
-#ifdef PHP_WIN32
-typedef __int64 int64_t;
-#else
-typedef signed long long int64_t;
-#endif
-#else
-#error "Neither int nor long nor long long is of 8 bytes width"
-#endif
-#endif /* HAVE_INT64_T */
-
-#ifndef HAVE_UINT64_T
-#ifdef HAVE_UINT64
-typedef uint64 uint64_t;
-#elif SIZEOF_INT == 8
-typedef unsigned int uint64_t;
-#elif SIZEOF_LONG == 8
-typedef unsigned long uint64_t;
-#elif SIZEOF_LONG_LONG == 8
-#ifdef PHP_WIN32
-typedef unsigned __int64 uint64_t;
-#else
-typedef unsigned long long uint64_t;
-#endif
-#else
-#error "Neither int nor long nor long long is of 8 bytes width"
-#endif
-#endif /* HAVE_INT64_T */
-
-
 #ifdef PHP_WIN32
 #define MYSQLND_LLU_SPEC "%I64u"
 #define MYSQLND_LL_SPEC "%I64d"
index cd1b0a0860b8f2278d029ef8e8ff11fa32713fd9..ad00c02d7286075ae2b7b8ed86f6b94fc76e6368 100644 (file)
@@ -12,7 +12,7 @@
    | obtain it through the world-wide-web, please send a note to          |
    | license@php.net so we can mail you a copy immediately.               |
    +----------------------------------------------------------------------+
-   | Authors: Stig Sæther Bakken <ssb@php.net>                            |
+   | Authors: Stig Sther Bakken <ssb@php.net>                            |
    |          Thies C. Arntzen <thies@thieso.net>                         |
    |          Maxim Maletsky <maxim@maxim.cx>                             |
    |                                                                      |
 #include "php_ini.h"
 #include "ext/standard/php_smart_str.h"
 
-#ifdef HAVE_STDINT_H
-#include <stdint.h>
-#endif
-#ifdef PHP_WIN32
-#include "win32/php_stdint.h"
-#endif
-
 #if HAVE_OCI8
 
 #if PHP_MAJOR_VERSION > 5
index 9b8d608207bc415ebf778c40087539ac01ca12fc..e0a9faf38fb2cff602536924edfa87e19e114d4c 100644 (file)
@@ -63,9 +63,6 @@
 #include "ext/spl/spl_iterators.h"
 #endif
 #include "php_phar.h"
-#ifdef HAVE_STDINT_H
-#include <stdint.h>
-#endif
 #ifdef PHAR_HASH_OK
 #include "ext/hash/php_hash.h"
 #include "ext/hash/php_hash_sha.h"
index 4794f12443eaa4e4ba1da5aac865d8813680d277..28aa19def3af6ccd77fb0dbe1939e63e9b78a9fd 100644 (file)
 #define PHP_SPL_H
 
 #include "php.h"
-#if defined(PHP_WIN32)
-# include "win32/php_stdint.h"
-#elif defined(HAVE_STDINT_H)
-# include <stdint.h>
-#endif
 #include <stdarg.h>
 
 #if 0
index a87663d4feaaf86d6e7652dc708170c4fa516e96..860462a2dd6228b2313a9d65e7978af3b0aae0d0 100644 (file)
@@ -4,26 +4,13 @@
 #define _CRYPT_FREESEC_H
 
 #if PHP_WIN32
-# include "win32/php_stdint.h"
 # ifndef inline
 # define inline __inline
 # endif
-#else
-# include "php_config.h"
-# if HAVE_INTTYPES_H
-#  include <inttypes.h>
-# elif HAVE_STDINT_H
-#  include <stdint.h>
-# endif
-# ifndef HAVE_UINT32_T
-#  if SIZEOF_INT == 4
-typedef unsigned int uint32_t;
-#  elif SIZEOF_LONG == 4
-typedef unsigned long int uint32_t;
-#  endif
-# endif
 #endif
 
+#include "php_stdint.h"
+
 #define MD5_HASH_MAX_LEN 120
 
 struct php_crypt_extended_data {
index d334e3d477d8926632f99e0659678ab9e7f801ec..ccfa66bd60a8e10cd8cc4d9c75ad2f3d1d2e47c2 100644 (file)
@@ -9,15 +9,9 @@
 #include <limits.h>
 
 #ifdef PHP_WIN32
-# include "win32/php_stdint.h"
 # define __alignof__ __alignof
 # define alloca _alloca
 #else
-# if HAVE_INTTYPES_H
-#  include <inttypes.h>
-# elif HAVE_STDINT_H
-#  include <stdint.h>
-# endif
 # ifndef HAVE_ALIGNOF
 #  include <stddef.h>
 #  define __alignof__(type) offsetof (struct { char c; type member;}, member)
index 09555321315882d7c90603028321ac048e68833a..ebabed9d24f44c009286c4ba34a3ab4a15ff142d 100644 (file)
@@ -8,15 +8,9 @@
 #include <errno.h>
 #include <limits.h>
 #ifdef PHP_WIN32
-# include "win32/php_stdint.h"
 # define __alignof__ __alignof
 # define alloca _alloca
 #else
-# if HAVE_INTTYPES_H
-#  include <inttypes.h>
-# elif HAVE_STDINT_H
-#  include <stdint.h>
-# endif
 # ifndef HAVE_ALIGNOF
 #  include <stddef.h>
 #  define __alignof__(type) offsetof (struct { char c; type member;}, member)
index 6a67efbd7ebfa531d0b2f0cb575f1813c2c2b684..5ae729af0f906ef911843afd169ed85746551ae6 100644 (file)
@@ -13,7 +13,7 @@
    | license@php.net so we can mail you a copy immediately.               |
    +----------------------------------------------------------------------+
    | Authors: Rasmus Lerdorf <rasmus@php.net>                             |
-   |          Stig Sæther Bakken <ssb@php.net>                            |
+   |          Stig Sther Bakken <ssb@php.net>                            |
    |          Zeev Suraski <zeev@zend.com>                                |
    +----------------------------------------------------------------------+
  */
 /* Synced with php 3.0 revision 1.193 1999-06-16 [ssb] */
 
 #include <stdio.h>
-#ifdef PHP_WIN32
-# include "win32/php_stdint.h"
-#else
-# include <stdint.h>
-#endif
 #include "php.h"
 #include "php_rand.h"
 #include "php_string.h"
index 2b4340c861c51d3207684062ebe2749ad3df2810..646c0bde53f0e0d701e48742cab274e7286fb5cf 100644 (file)
 #define LIBZIP_VERSION_MINOR 10
 #define LIBZIP_VERSION_MICRO 0
 
-#ifdef PHP_WIN32
-#include <win32/php_stdint.h>
-#else
-#include <inttypes.h>
-#endif
+#include <php_stdint.h>
 
 typedef int8_t zip_int8_t;
 #define ZIP_INT8_MIN INT8_MIN
index 7c1f8fd0c7b9686d6c64038d4b563e43033ce921..17ac8b4fd29d9e10ad42c49890b506eb1fd21c7c 100644 (file)
@@ -180,6 +180,8 @@ typedef unsigned int socklen_t;
 # endif
 #endif
 
+#include "php_stdint.h"
+
 #include "zend_hash.h"
 #include "zend_alloc.h"
 #include "zend_stack.h"
diff --git a/main/php_stdint.h b/main/php_stdint.h
new file mode 100644 (file)
index 0000000..c8300d9
--- /dev/null
@@ -0,0 +1,198 @@
+/*
+   +----------------------------------------------------------------------+
+   | PHP Version 5                                                        |
+   +----------------------------------------------------------------------+
+   | Copyright (c) 1997-2013 The PHP Group                                |
+   +----------------------------------------------------------------------+
+   | This source file is subject to version 3.01 of the PHP license,      |
+   | that is bundled with this package in the file LICENSE, and is        |
+   | available through the world-wide-web at the following url:           |
+   | http://www.php.net/license/3_01.txt                                  |
+   | If you did not receive a copy of the PHP license and are unable to   |
+   | obtain it through the world-wide-web, please send a note to          |
+   | license@php.net so we can mail you a copy immediately.               |
+   +----------------------------------------------------------------------+
+   | Author: Michael Wallner <mike@php.net>                               |
+   +----------------------------------------------------------------------+
+*/
+
+#ifndef PHP_STDINT_H
+#define PHP_STDINT_H
+
+#if PHP_WIN32
+# include "win32/php_stdint.h"
+# define HAVE_INT8_T   1
+# define HAVE_UINT8_T  1
+# define HAVE_INT16_T  1
+# define HAVE_UINT16_T 1
+# define HAVE_INT32_T  1
+# define HAVE_UINT32_T 1
+# define HAVE_INT64_T  1
+# define HAVE_UINT64_T 1
+#else
+
+#include "php_config.h"
+
+#if HAVE_SYS_TYPES_H
+# include <sys/types.h>
+#endif
+
+#if HAVE_INTTYPES_H
+# include <inttypes.h>
+#endif
+
+#if HAVE_STDINT_H
+# include <stdint.h>
+#endif
+
+#ifndef HAVE_INT8_T
+# ifdef HAVE_INT8
+typedef int8 int8_t;
+# else
+typedef signed char int8_t;
+# endif
+#endif
+
+#ifndef INT8_C
+# define INT8_C(c) c
+#endif
+
+#ifndef HAVE_UINT8_T
+# ifdef HAVE_UINT8
+typedef uint8 uint8_t
+# elif HAVE_U_INT8_T
+typedef u_int8_t uint8_t;
+# else
+typedef unsigned char uint8_t;
+# endif
+#endif
+
+#ifndef UINT8_C
+# define UINT8_C(c) c
+#endif
+
+#ifndef HAVE_INT16_T
+# ifdef HAVE_INT16
+typedef int16 int16_t;
+# elif SIZEOF_SHORT >= 2
+typedef signed short int16_t;
+# else
+#  error "No suitable 16bit integer type found"
+# endif
+#endif
+
+#ifndef INT16_C
+# define INT16_C(c) c
+#endif
+
+#ifndef HAVE_UINT16_T
+# ifdef HAVE_UINT16
+typedef uint16 uint16_t
+# elif HAVE_U_INT16_T
+typedef u_int16_t uint16_t;
+# elif SIZEOF_SHORT >= 2
+typedef unsigned short uint16_t;
+# else
+#  error "No suitable 16bit integer type found"
+# endif
+#endif
+
+#ifndef UINT16_C
+# define UINT16_C(c) c
+#endif
+
+#ifndef HAVE_INT32_T
+# ifdef HAVE_INT32
+typedef int32 int32_t;
+# elif SIZEOF_INT >= 4
+typedef int int32_t;
+# elif SIZEOF_LONG >= 4
+typedef long int32_t;
+# else
+#  error "No suitable 32bit integer type found"
+# endif
+#endif
+
+#ifndef INT32_C
+# define INT32_C(c) c
+#endif
+
+#ifndef HAVE_UINT32_T
+# ifdef HAVE_UINT32
+typedef uint32 uint32_t
+# elif HAVE_U_INT32_T
+typedef u_int32_t uint32_t;
+# elif SIZEOF_INT >= 4
+typedef unsigned int uint32_t;
+# elif SIZEOF_LONG >= 4
+typedef unsigned long uint32_t;
+# else
+#  error "No suitable 32bit integer type found"
+# endif
+#endif
+
+#ifndef UINT32_C
+# define UINT32_C(c) c ## U
+#endif
+
+#ifndef HAVE_INT64_T
+# ifdef HAVE_INT64
+typedef int64 int64_t;
+# elif SIZEOF_INT >= 8
+typedef int int64_t;
+# elif SIZEOF_LONG >= 8
+typedef long int64_t;
+# elif SIZEOF_LONG_LONG >= 8
+typedef long long int64_t;
+# else
+#  error "No suitable 64bit integer type found"
+# endif
+#endif
+
+#ifndef INT64_C
+# if SIZEOF_INT >= 8
+#  define INT64_C(c) c
+# elif SIZEOF_LONG >= 8
+#  define INT64_C(c) c ## L
+# elif SIZEOF_LONG_LONG >= 8
+#  define INT64_C(c) c ## LL
+# endif
+#endif
+
+#ifndef HAVE_UINT64_T
+# ifdef HAVE_UINT64
+typedef uint64 uint64_t
+# elif HAVE_U_INT64_T
+typedef u_int64_t uint64_t;
+# elif SIZEOF_INT >= 8
+typedef unsigned int uint64_t;
+# elif SIZEOF_LONG >= 8
+typedef unsigned long uint64_t;
+# elif SIZEOF_LONG_LONG >= 8
+typedef unsigned long long uint64_t;
+# else
+#  error "No suitable 64bit integer type found"
+# endif
+#endif
+
+#ifndef UINT64_C
+# if SIZEOF_INT >= 8
+#  define UINT64_C(c) c ## U
+# elif SIZEOF_LONG >= 8
+#  define UINT64_C(c) c ## UL
+# elif SIZEOF_LONG_LONG >= 8
+#  define UINT64_C(c) c ## ULL
+# endif
+#endif
+
+#endif /* !PHP_WIN32 */
+#endif /* PHP_STDINT_H */
+
+/*
+ * Local variables:
+ * tab-width: 4
+ * c-basic-offset: 4
+ * End:
+ * vim600: sw=4 ts=4 fdm=marker
+ * vim<600: sw=4 ts=4
+ */
index 2bf2356725a29f1abd58034edc208a1d1a37cf9a..31502e213af7b814a11ecd187a4ee2da0b0a8c94 100644 (file)
@@ -29,15 +29,13 @@ extern "C" {
 #include <sys/types.h>
 #if defined(_WIN32) && !defined(__MINGW32__)
 # include <windows.h>
-# include "win32/php_stdint.h"
 # include "config.w32.h"
 #else
 # include "php_config.h"
-# ifdef HAVE_STDINT_H
-#  include <stdint.h>
-# endif
 #endif
 
+#include "php_stdint.h"
+
 /* Compile with -DPHP_HTTP_PARSER_STRICT=0 to make less checks, but run
  * faster
  */