123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147 |
- #ifdef _SQ64
- #ifdef _MSC_VER
- typedef __int64 SQInteger;
- typedef unsigned __int64 SQUnsignedInteger;
- typedef unsigned __int64 SQHash; /*should be the same size of a pointer*/
- #else
- typedef long long SQInteger;
- typedef unsigned long long SQUnsignedInteger;
- typedef unsigned long long SQHash; /*should be the same size of a pointer*/
- #endif
- typedef int SQInt32;
- typedef unsigned int SQUnsignedInteger32;
- #else
- typedef int SQInteger;
- typedef int SQInt32; /*must be 32 bits(also on 64bits processors)*/
- typedef unsigned int SQUnsignedInteger32; /*must be 32 bits(also on 64bits processors)*/
- typedef unsigned int SQUnsignedInteger;
- typedef unsigned int SQHash; /*should be the same size of a pointer*/
- #endif
- #ifdef SQUSEDOUBLE
- typedef double SQFloat;
- #else
- typedef float SQFloat;
- #endif
- #if defined(SQUSEDOUBLE) && !defined(_SQ64) || !defined(SQUSEDOUBLE) && defined(_SQ64)
- #ifdef _MSC_VER
- typedef __int64 SQRawObjectVal; //must be 64bits
- #else
- typedef long long SQRawObjectVal; //must be 64bits
- #endif
- #define SQ_OBJECT_RAWINIT() { _unVal.raw = 0; }
- #else
- typedef SQUnsignedInteger SQRawObjectVal; //is 32 bits on 32 bits builds and 64 bits otherwise
- #define SQ_OBJECT_RAWINIT()
- #endif
- #ifndef SQ_ALIGNMENT // SQ_ALIGNMENT shall be less than or equal to SQ_MALLOC alignments, and its value shall be power of 2.
- #if defined(SQUSEDOUBLE) || defined(_SQ64)
- #define SQ_ALIGNMENT 8
- #else
- #define SQ_ALIGNMENT 4
- #endif
- #endif
- typedef void* SQUserPointer;
- typedef SQUnsignedInteger SQBool;
- typedef SQInteger SQRESULT;
- #ifdef SQUNICODE
- #include <wchar.h>
- #include <wctype.h>
- typedef wchar_t SQChar;
- #define scstrcmp wcscmp
- #ifdef _WIN32
- #define scsprintf _snwprintf
- #else
- #define scsprintf swprintf
- #endif
- #define scstrlen wcslen
- #define scstrtod wcstod
- #ifdef _SQ64
- #define scstrtol wcstoll
- #else
- #define scstrtol wcstol
- #endif
- #define scstrtoul wcstoul
- #define scvsprintf vswprintf
- #define scstrstr wcsstr
- #define scprintf wprintf
- #ifdef _WIN32
- #define WCHAR_SIZE 2
- #define WCHAR_SHIFT_MUL 1
- #define MAX_CHAR 0xFFFF
- #else
- #define WCHAR_SIZE 4
- #define WCHAR_SHIFT_MUL 2
- #define MAX_CHAR 0xFFFFFFFF
- #endif
- #define _SC(a) L##a
- #define scisspace iswspace
- #define scisdigit iswdigit
- #define scisprint iswprint
- #define scisxdigit iswxdigit
- #define scisalpha iswalpha
- #define sciscntrl iswcntrl
- #define scisalnum iswalnum
- #define sq_rsl(l) ((l)<<WCHAR_SHIFT_MUL)
- #else
- typedef char SQChar;
- #define _SC(a) a
- #define scstrcmp strcmp
- #ifdef _MSC_VER
- #define scsprintf _snprintf
- #else
- #define scsprintf snprintf
- #endif
- #define scstrlen strlen
- #define scstrtod strtod
- #ifdef _SQ64
- #ifdef _MSC_VER
- #define scstrtol _strtoi64
- #else
- #define scstrtol strtoll
- #endif
- #else
- #define scstrtol strtol
- #endif
- #define scstrtoul strtoul
- #define scvsprintf vsnprintf
- #define scstrstr strstr
- #define scisspace isspace
- #define scisdigit isdigit
- #define scisprint isprint
- #define scisxdigit isxdigit
- #define sciscntrl iscntrl
- #define scisalpha isalpha
- #define scisalnum isalnum
- #define scprintf printf
- #define MAX_CHAR 0xFF
- #define sq_rsl(l) (l)
- #endif
- #ifdef _SQ64
- #define _PRINT_INT_PREC _SC("ll")
- #define _PRINT_INT_FMT _SC("%lld")
- #else
- #define _PRINT_INT_FMT _SC("%d")
- #endif
|