fstrdefs.h

Go to the documentation of this file.
00001 //-----------------------------------------------------------------------------
00002 // Project     : SDK Core
00003 // Version     : 1.0
00004 //
00005 // Category    : SDK Core Interfaces
00006 // Filename    : fstrdefs.h
00007 // Created by  : Steinberg, 01/2004
00008 // Modified    : $Date: 2007/11/28 17:31:12 $
00009 // Description : Definitions for handling strings (Unicode / ASCII / Platforms)
00010 //
00011 //-----------------------------------------------------------------------------
00012 // LICENSE
00013 // © 2007, Steinberg Media Technologies GmbH, All Rights Reserved
00014 //-----------------------------------------------------------------------------
00015 // This Software Development Kit may not be distributed in parts or its entirety  
00016 // without prior written agreement by Steinberg Media Technologies GmbH. 
00017 // This SDK must not be used to re-engineer or manipulate any technology used  
00018 // in any Steinberg or Third-party application or software module, 
00019 // unless permitted by law. It may only be used for development of products 
00020 // defined in the license agreement between Steinberg and Licensee or for internal, 
00021 // not publicly released products of Licensee.
00022 //-----------------------------------------------------------------------------
00023 
00024 #ifndef __fstrdefs__
00025 #define __fstrdefs__
00026 
00027 //----------------------------------------------------------------------------
00028 // string methods defines unicode / ASCII
00029 //----------------------------------------------------------------------------
00030 #if UNICODE
00031         #define STRING(x) L#x
00032         #define tstrcpy wcscpy
00033         #define tstrncpy wcsncpy
00034         #define tstrlen wcslen
00035         #define tstrcmp wcscmp
00036         #define tstrncmp wcsncmp
00037         #define tstricmp wcsicmp
00038         #define tstrnicmp wcsnicmp
00039         #define tstrchr wcschr
00040         #define tstrrchr wcsrchr
00041         #define tsprintf wsprintf
00042         #define tsnprintf snwprintf
00043         #define tvsnprintf vsnwprintf
00044         #define tvsprintf wvsprintf
00045         #define tvfprintf vfwprintf
00046         #define tsscanf swscanf
00047         #define ttoupper towupper
00048         #define ttolower towlower
00049         #define tisupper iswupper
00050         #define tislower iswlower
00051         #define tisspace iswspace
00052         #define tisalpha iswalpha
00053         #define tisdigit iswdigit
00054         #define tisalnum iswalnum
00055         #define tstrstr wcsstr
00056         #define tStrBufferSize(buffer) (sizeof(buffer)/sizeof(tchar))
00057 #else
00058         #define STRING(x) x
00059         #define tstrcpy strcpy
00060         #define tstrncpy strncpy
00061         #define tstrlen (uint32)strlen
00062         #define tstrcmp strcmp
00063         #define tstrncmp strncmp
00064         #define tstricmp stricmp
00065         #define tstrnicmp strnicmp
00066         #define tstrchr strchr
00067         #define tstrrchr strrchr
00068         #define tsprintf sprintf
00069         #define tsnprintf snprintf
00070         #define tvsnprintf vsnprintf
00071         #define tvsprintf vsprintf
00072         #define tvfprintf vfprintf
00073         #define tsscanf sscanf
00074         #define ttoupper toupper
00075         #define ttolower tolower
00076         #define tisupper isupper
00077         #define tislower islower
00078         #define tisspace isspace
00079         #define tisalpha isalpha
00080         #define tisalnum isalnum
00081         #define tisdigit isdigit
00082         #define tstrstr strstr
00083         #define tStrBufferSize(buffer) (sizeof(buffer))
00084 #endif
00085 
00086 
00087 #if WINDOWS
00088 #define tstrtoi64 _strtoi64
00089 #define stricmp _stricmp
00090 #define strnicmp _strnicmp
00091 #define snprintf _snprintf
00092 #define vsnprintf _vsnprintf
00093 #define snwprintf _snwprintf
00094 #define vsnwprintf _vsnwprintf
00095 
00096 #define FORMAT_INT64 "I64d"
00097 #define FORMAT_UINT64 "I64u"
00098 
00099 #elif MAC
00100 #define tstrtoi64 strtoll
00101 #define stricmp strcasecmp
00102 #define strnicmp strncasecmp
00103 #define FORMAT_INT64 "lld"
00104 #define FORMAT_UINT64 "llu"
00105 #endif
00106 
00107 #if !MAC
00108 #define iswblank iswspace
00109 #endif
00110 
00111 // newline
00112 //----------------------------------------------------------------------------
00113 #if WINDOWS
00114 #define ENDLINE   "\r\n"
00115 #elif MAC
00116 #define ENDLINE   "\r"
00117 #elif MOTIF || BEOS
00118 #define ENDLINE   "\n"
00119 #endif
00120 
00121 //----------------------------------------------------------------------------
00122 namespace Steinberg {
00123 
00124         inline bool strEmpty (const tchar* str) { return (!str || *str == 0); }
00125 }
00126 
00127 #endif
Empty

Copyright ©2008 Steinberg Media Technologies. All Rights Reserved.