00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024 #ifndef ZenConfH
00025 #define ZenConfH
00026
00027
00028
00029
00030
00031
00032
00033
00034 #if defined(__NT__) || defined(_WIN32) || defined(WIN32)
00035 #ifndef WIN32
00036 #define WIN32
00037 #endif
00038 #ifndef _WIN32
00039 #define _WIN32
00040 #endif
00041 #ifndef __WIN32__
00042 #define __WIN32__ 1
00043 #endif
00044 #endif
00045
00046
00047
00048 #if defined(_WIN64) || defined(WIN64)
00049 #ifndef WIN64
00050 #define WIN64
00051 #endif
00052 #ifndef _WIN64
00053 #define _WIN64
00054 #endif
00055 #ifndef __WIN64__
00056 #define __WIN64__ 1
00057 #endif
00058 #endif
00059
00060
00061
00062 #if defined(WIN32) || defined(WIN64)
00063 #ifndef WINDOWS
00064 #define WINDOWS
00065 #endif
00066 #ifndef _WINDOWS
00067 #define _WINDOWS
00068 #endif
00069 #ifndef __WINDOWS__
00070 #define __WINDOWS__ 1
00071 #endif
00072 #endif
00073
00074
00075
00076 #if defined(UNIX) || defined(_UNIX) || defined(__UNIX__) \
00077 || defined(__unix) || defined(__unix__) \
00078 || defined(____SVR4____) || defined(__LINUX__) || defined(__sgi) \
00079 || defined(__hpux) || defined(sun) || defined(__SUN__) || defined(_AIX) \
00080 || defined(__EMX__) || defined(__VMS) || defined(__BEOS__)
00081 #ifndef UNIX
00082 #define UNIX
00083 #endif
00084 #ifndef _UNIX
00085 #define _UNIX
00086 #endif
00087 #ifndef __UNIX__
00088 #define __UNIX__ 1
00089 #endif
00090 #endif
00091
00092
00093
00094 #if defined(macintosh)
00095 #ifndef MACOS
00096 #define MACOS
00097 #endif
00098 #ifndef _MACOS
00099 #define _MACOS
00100 #endif
00101 #ifndef __MACOS__
00102 #define __MACOS__ 1
00103 #endif
00104 #endif
00105
00106
00107
00108 #if defined(__APPLE__) && defined(__MACH__)
00109 #ifndef MACOSX
00110 #define MACOSX
00111 #endif
00112 #ifndef _MACOSX
00113 #define _MACOSX
00114 #endif
00115 #ifndef __MACOSX__
00116 #define __MACOSX__ 1
00117 #endif
00118 #endif
00119
00120
00121 #if defined(WINDOWS) && defined(UNIX) && defined(MACOS) && defined(MACOSX)
00122 #pragma message Multiple platforms???
00123 #endif
00124
00125 #if !defined(WIN32) && !defined(UNIX) && !defined(MACOS) && !defined(MACOSX)
00126 #pragma message No known platforms, assume default
00127 #endif
00128
00129
00130
00131
00132
00133
00134
00135 #if defined(_UNICODE) || defined(UNICODE) || defined(__UNICODE__)
00136 #ifndef _UNICODE
00137 #define _UNICODE
00138 #endif
00139 #ifndef UNICODE
00140 #define UNICODE
00141 #endif
00142 #ifndef __UNICODE__
00143 #define __UNICODE__ 1
00144 #endif
00145 #endif
00146
00147
00148
00149 #if defined(MACOS) || defined(MACOSX)
00150 #include <wchar.h>
00151 #endif
00152
00153
00154
00155
00156
00157
00158 #if defined(_MSC_VER) && _MSC_VER <= 1200
00159 #define for if(true)for
00160 #pragma warning(disable:4786) // MSVC6 doesn't like typenames longer than 255 chars (which generates an enormous amount of warnings).
00161 #endif
00162
00163
00164 #if defined(_MSC_VER) && _MSC_VER >= 1400
00165 #pragma warning(disable : 4996)
00166 #endif
00167
00168
00169
00170
00171
00172
00173 #include <limits.h>
00174
00175
00176 #if defined(ZENLIB_DEBUG) && (defined(DEBUG) || defined(_DEBUG))
00177 #include "ZenLib/MemoryDebug.h"
00178 #endif // defined(ZENLIB_DEBUG) && (defined(DEBUG) || defined(_DEBUG))
00179
00180
00181
00182
00183
00184
00185
00186 #ifndef UNUSED
00187 #define UNUSED(Identifier)
00188 #endif
00189
00190
00191 #if defined(__LP64__) || defined(MACOSX)
00192 #define NEED_SIZET
00193 #endif
00194
00195
00196
00197 #include <new>
00198 #include <cstring>
00199 namespace ZenLib
00200 {
00201 const std::size_t Error=((std::size_t)(-1));
00202 const std::size_t All=((std::size_t)(-1));
00203 const std::size_t Unlimited=((std::size_t)(-1));
00204 }
00205
00206
00207
00208
00209
00210 namespace ZenLib
00211 {
00212
00213
00214
00215
00216
00217
00218
00219 #undef _T
00220 #define _T(__x) __T(__x)
00221 #undef _TEXT
00222 #define _TEXT(__x) __T(__x)
00223 #undef __TEXT
00224 #define __TEXT(__x) __T(__x)
00225 #if defined(__UNICODE__)
00226 #if defined (_MSC_VER) && !defined (_NATIVE_WCHAR_T_DEFINED)
00227 #pragma message Native wchar_t is not defined, not tested, you should put /Zc:wchar_t in compiler options
00228 #endif
00229 typedef wchar_t Char;
00230 #undef __T
00231 #define __T(__x) L##__x
00232 #else // defined(__UNICODE__)
00233 typedef char Char;
00234 #undef __T
00235 #define __T(__x) __x
00236 #endif // defined(__UNICODE__)
00237 #ifdef wchar_t
00238 typedef wchar_t wchar;
00239 #endif // wchar_t
00240
00241
00242
00243
00244
00245
00246 extern const Char* EOL;
00247 extern const Char PathSeparator;
00248
00249
00250
00251
00252
00253
00254
00255 typedef signed int ints;
00256 typedef unsigned int intu;
00257
00258
00259
00260 #if UCHAR_MAX==0xff
00261 #undef MAXTYPE_INT
00262 #define MAXTYPE_INT 8
00263 typedef signed char int8s;
00264 typedef unsigned char int8u;
00265 #else
00266 #pragma message This machine has no 8-bit integertype?
00267 #endif
00268
00269
00270
00271 #if UINT_MAX == 0xffff
00272 #undef MAXTYPE_INT
00273 #define MAXTYPE_INT 16
00274 typedef signed int int16s;
00275 typedef unsigned int int16u;
00276 #elif USHRT_MAX == 0xffff
00277 #undef MAXTYPE_INT
00278 #define MAXTYPE_INT 16
00279 typedef signed short int16s;
00280 typedef unsigned short int16u;
00281 #else
00282 #pragma message This machine has no 16-bit integertype?
00283 #endif
00284
00285
00286
00287 #if UINT_MAX == 0xfffffffful
00288 #undef MAXTYPE_INT
00289 #define MAXTYPE_INT 32
00290 typedef signed int int32s;
00291 typedef unsigned int int32u;
00292 #elif ULONG_MAX == 0xfffffffful
00293 #undef MAXTYPE_INT
00294 #define MAXTYPE_INT 32
00295 typedef signed long int32s;
00296 typedef unsigned long int32u;
00297 #elif USHRT_MAX == 0xfffffffful
00298 #undef MAXTYPE_INT
00299 #define MAXTYPE_INT 32
00300 typedef signed short int32s;
00301 typedef unsigned short int32u;
00302 #else
00303 #pragma message This machine has no 32-bit integer type?
00304 #endif
00305
00306
00307
00308 #if defined(__MINGW32__) || defined(__CYGWIN32__) || defined(__UNIX__) || defined(__MACOSX__)
00309 #undef MAXTYPE_INT
00310 #define MAXTYPE_INT 64
00311 typedef signed long long int64s;
00312 typedef unsigned long long int64u;
00313 #elif defined(__WIN32__)
00314 #undef MAXTYPE_INT
00315 #define MAXTYPE_INT 64
00316 typedef signed __int64 int64s;
00317 typedef unsigned __int64 int64u;
00318 #else
00319 #pragma message This machine has no 64-bit integer type?
00320 #endif
00321
00322
00323
00324 #if defined(WINDOWS) || defined(UNIX) || defined(MACOSX)
00325 #undef MAXTYPE_FLOAT
00326 #define MAXTYPE_FLOAT 32
00327 typedef float float32;
00328 #else
00329 #pragma message This machine has no 32-bit float type?
00330 #endif
00331
00332
00333
00334 #if defined(WINDOWS) || defined(UNIX) || defined(MACOSX)
00335 #undef MAXTYPE_FLOAT
00336 #define MAXTYPE_FLOAT 64
00337 typedef double float64;
00338 #else
00339 #pragma message This machine has no 64-bit float type?
00340 #endif
00341
00342
00343
00344 #if defined(WINDOWS) || defined(UNIX) || defined(MACOSX)
00345 #undef MAXTYPE_FLOAT
00346 #define MAXTYPE_FLOAT 80
00347 typedef long double float80;
00348 #else
00349 #pragma message This machine has no 80-bit float type?
00350 #endif
00351
00352
00353
00354
00355
00356
00357 #if defined (UNIX)
00358 #define snwprintf swprintf
00359 #endif
00360
00361
00362 #if defined (_MSC_VER)
00363 #define snprintf _snprintf
00364 #define snwprintf _snwprintf
00365 #endif
00366
00367 }
00368 #endif
00369