#ifdef __cplusplus #include #include #else #include #include #endif #ifdef _SQ64 typedef int64_t SQInteger; typedef uint64_t SQUnsignedInteger; typedef size_t SQHash; /*should be the same size of a pointer*/ typedef int32_t SQInt32; typedef uint32_t SQUnsignedInteger32; #else typedef int32_t SQInteger; typedef uint32_t SQUnsignedInteger; typedef size_t SQHash; /*should be the same size of a pointer*/ typedef int32_t SQInt32; /*must be 32 bits(also on 64bits processors)*/ typedef uint32_t SQUnsignedInteger32; /*must be 32 bits(also on 64bits processors)*/ #endif #ifdef SQUSEDOUBLE typedef double SQFloat; #else typedef float SQFloat; #endif #if defined(SQUSEDOUBLE) && !defined(_SQ64) || !defined(SQUSEDOUBLE) && defined(_SQ64) typedef int64_t SQRawObjectVal; //must be 64bits #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 #include 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)<