]> git.saurik.com Git - apple/icu.git/blobdiff - icuSources/common/unicode/pwin32.h
ICU-6.2.4.tar.gz
[apple/icu.git] / icuSources / common / unicode / pwin32.h
index 1f33a975e1a66fef486866b5617b89e25aadcb38..5d5003262e56790b0ccd78e2b9e6d2f59ef68d68 100644 (file)
@@ -1,7 +1,7 @@
 /*
 ******************************************************************************
 *
-*   Copyright (C) 1997-2003, International Business Machines
+*   Copyright (C) 1997-2004, International Business Machines
 *   Corporation and others.  All Rights Reserved.
 *
 ******************************************************************************
 #define WIN32
 #endif
 
+#if defined(__BORLANDC__)
+#define U_HAVE_PLACEMENT_NEW 0
+#define U_HAVE_INTTYPES_H 1
+#define __STDC_CONSTANT_MACROS
+#endif
+
 /* Define whether inttypes.h is available */
+#ifndef U_HAVE_INTTYPES_H
 #define U_HAVE_INTTYPES_H 0
+#endif
 
 /*
  * Define what support for C++ streams is available.
 #endif
 
 /* Determines whether specific types are available */
-#define U_HAVE_INT8_T 0
-#define U_HAVE_UINT8_T 0
-#define U_HAVE_INT16_T 0
-#define U_HAVE_UINT16_T 0
-#define U_HAVE_INT32_T 0
-#define U_HAVE_UINT32_T 0
-#define U_HAVE_INT64_T 0
-#define U_HAVE_UINT64_T 0
+#ifndef U_HAVE_INT8_T
+#define U_HAVE_INT8_T U_HAVE_INTTYPES_H
+#endif
 
-/* Define whether namespace is supported */
-#define U_HAVE_NAMESPACE 1
+#ifndef U_HAVE_UINT8_T
+#define U_HAVE_UINT8_T U_HAVE_INTTYPES_H
+#endif
 
-/* Determines the endianness of the platform */
-#define U_IS_BIG_ENDIAN 0
+#ifndef U_HAVE_INT16_T
+#define U_HAVE_INT16_T U_HAVE_INTTYPES_H
+#endif
 
-/* Determine whether to override new and delete. */
-#ifndef U_OVERRIDE_CXX_ALLOCATION
-#define U_OVERRIDE_CXX_ALLOCATION 1
+#ifndef U_HAVE_UINT16_T
+#define U_HAVE_UINT16_T U_HAVE_INTTYPES_H
 #endif
-/* Determine whether to override placement new and delete for STL. */
-#ifndef U_HAVE_PLACEMENT_NEW
-#define U_HAVE_PLACEMENT_NEW 1
+
+#ifndef U_HAVE_INT32_T
+#define U_HAVE_INT32_T U_HAVE_INTTYPES_H
 #endif
 
+#ifndef U_HAVE_UINT32_T
+#define U_HAVE_UINT32_T U_HAVE_INTTYPES_H
+#endif
+
+#ifndef U_HAVE_INT64_T
+#define U_HAVE_INT64_T U_HAVE_INTTYPES_H
+#endif
+
+#ifndef U_HAVE_UINT64_T
+#define U_HAVE_UINT64_T U_HAVE_INTTYPES_H
+#endif
+
+/* Define 64 bit limits */
+#define INT64_C(x) ((int64_t)x)
+#define UINT64_C(x) ((uint64_t)x)
+
 /*===========================================================================*/
 /* Generic data types                                                        */
 /*===========================================================================*/
@@ -75,7 +95,7 @@
    need to edit the typedefs below. */
 #if U_HAVE_INTTYPES_H
 #include <inttypes.h>
-#else
+#else /* U_HAVE_INTTYPES_H */
 
 #if ! U_HAVE_INT8_T
 typedef signed char int8_t;
@@ -94,44 +114,98 @@ typedef unsigned short uint16_t;
 #endif
 
 #if ! U_HAVE_INT32_T
-#   if defined(_LP64)
-      typedef signed int  int32_t;
-#   else
-      typedef signed long int32_t;
-#   endif
+typedef signed int int32_t;
 #endif
 
 #if ! U_HAVE_UINT32_T
-#   if defined(_LP64)
-      typedef unsigned int  uint32_t;
-#   else
-      typedef unsigned long uint32_t;
-#   endif
+typedef unsigned int uint32_t;
 #endif
 
 #if ! U_HAVE_INT64_T
-    /* Could use _MSC_VER to detect Microsoft compiler. */
-    typedef signed __int64   int64_t;
+/* _MSC_VER is used to detect the Microsoft compiler. */
+#ifdef _MSC_VER
+    typedef signed __int64 int64_t;
+#else
+    typedef signed long long int64_t;
+#endif
 #endif
 
 #if ! U_HAVE_UINT64_T
-    /* Could use _MSC_VER to detect Microsoft compiler. */
-    typedef unsigned __int64   uint64_t;
+/* _MSC_VER is used to detect the Microsoft compiler. */
+#ifdef _MSC_VER
+    typedef unsigned __int64 uint64_t;
+#else
+    typedef unsigned long long uint64_t;
+#endif
 #endif
-
 #endif
 
 /*===========================================================================*/
-/* Character data types                                                      */
+/* Compiler and environment features                                         */
 /*===========================================================================*/
 
-#define U_SIZEOF_WCHAR_T 2
+/* Define whether namespace is supported */
+#ifndef U_HAVE_NAMESPACE
+#define U_HAVE_NAMESPACE 1
+#endif
+
+/* Determines the endianness of the platform */
+#define U_IS_BIG_ENDIAN 0
+
+/* 1 or 0 to enable or disable threads.  If undefined, default is: enable threads. */
+#define ICU_USE_THREADS 1
+
+/* Windows currently only runs on x86 CPUs which currently all have strong memory models. */
+#define UMTX_STRONG_MEMORY_MODEL 1
+
+#ifndef U_DEBUG
+#ifdef _DEBUG
+#define U_DEBUG 1
+#else
+#define U_DEBUG 0
+#endif
+#endif
+
+#ifndef U_RELEASE
+#ifdef NDEBUG
+#define U_RELEASE 1
+#else
+#define U_RELEASE 0
+#endif
+#endif
+/* Determine whether to disable renaming or not. This overrides the
+   setting in umachine.h which is for all platforms. */
+#ifndef U_DISABLE_RENAMING
+#define U_DISABLE_RENAMING 0
+#endif
+
+/* Determine whether to override new and delete. */
+#ifndef U_OVERRIDE_CXX_ALLOCATION
+#define U_OVERRIDE_CXX_ALLOCATION 1
+#endif
+/* Determine whether to override placement new and delete for STL. */
+#ifndef U_HAVE_PLACEMENT_NEW
+#define U_HAVE_PLACEMENT_NEW 1
+#endif
+
+/* Determine whether to enable tracing. */
+#ifndef U_ENABLE_TRACING
+#define U_ENABLE_TRACING 1
+#endif
+
+/* Define the library suffix in a C syntax. */
+#define U_HAVE_LIB_SUFFIX 0
+#define U_LIB_SUFFIX_C_NAME 
+#define U_LIB_SUFFIX_C_NAME_STRING ""
 
 /*===========================================================================*/
-/* Do we have wcscpy and other similar functions                             */
+/* Information about wchar support                                           */
 /*===========================================================================*/
 
-#define U_HAVE_WCSCPY    1
+#define U_HAVE_WCHAR_H 1
+#define U_SIZEOF_WCHAR_T 2
+
+#define U_HAVE_WCSCPY 1
 
 /*===========================================================================*/
 /* Information about POSIX support                                           */
@@ -144,13 +218,18 @@ typedef unsigned short uint16_t;
 #endif
 #define U_TZNAME        _tzname
 
-#define U_HAVE_MMAP     0
+#define U_HAVE_MMAP 0
+#define U_HAVE_POPEN 0
 
 /*===========================================================================*/
 /* Symbol import-export control                                              */
 /*===========================================================================*/
 
+#ifdef U_STATIC_IMPLEMENTATION
+#define U_EXPORT
+#else
 #define U_EXPORT __declspec(dllexport)
+#endif
 #define U_EXPORT2 __cdecl
 #define U_IMPORT __declspec(dllimport)
 
@@ -158,7 +237,9 @@ typedef unsigned short uint16_t;
 /* Code alignment and C function inlining                                    */
 /*===========================================================================*/
 
+#ifndef U_INLINE
 #define U_INLINE __inline
+#endif
 
 #if defined(_MSC_VER) && defined(_M_IX86)
 #define U_ALIGN_CODE(val)    __asm      align val
@@ -171,5 +252,7 @@ typedef unsigned short uint16_t;
 /* Programs used by ICU code                                                 */
 /*===========================================================================*/
 
+#ifndef U_MAKE
 #define U_MAKE  "nmake"
-
+#define U_MAKE_IS_NMAKE 1
+#endif