X-Git-Url: https://wimlib.net/git/?a=blobdiff_plain;f=include%2Fwimlib_tchar.h;h=2585fa660b8183fe246370cd75f90a8d2db79358;hb=f2e360a90b9520928821928d2fa882ab1da15ba3;hp=d8c6915c7024104475760213fd50f7f9148c698b;hpb=ab63d9f11eae3b930f0f75fe0edb6b6df1cdb280;p=wimlib diff --git a/include/wimlib_tchar.h b/include/wimlib_tchar.h index d8c6915c..2585fa66 100644 --- a/include/wimlib_tchar.h +++ b/include/wimlib_tchar.h @@ -6,9 +6,11 @@ #ifdef __WIN32__ #include -/* For Windows builds, the "tchar" type will be 2 bytes and will be equivalent - * to "wchar_t" and "utf16lechar". All indicate one code unit of a UTF16-LE - * string. */ +/* + * For Windows builds, the "tchar" type will be 2 bytes and will be equivalent + * to "wchar_t" and "utf16lechar". All indicate one coding unit of a string + * encoded in UTF-16LE with the additional possibility of unpaired surrogates. + */ typedef wchar_t tchar; # define TCHAR_IS_UTF16LE 1 # define _T(text) L##text @@ -28,6 +30,7 @@ typedef wchar_t tchar; # define tsprintf swprintf # define tfprintf fwprintf # define tvfprintf vfwprintf +# define tscanf swscanf # define istalpha(c) iswalpha((wchar_t)(c)) # define istspace(c) iswspace((wchar_t)(c)) # define totlower(c) towlower((wchar_t)(c)) @@ -50,11 +53,11 @@ typedef wchar_t tchar; # define tstrtol wcstol # define tstrtod wcstod # define tstrtoul wcstoul +# define tstrtoull wcstoull # define tunlink _wunlink # define tstrerror _wcserror # define taccess _waccess # define tstrdup wcsdup -# define ttempnam _wtempnam # define tgetenv _wgetenv /* The following "tchar" functions do not have exact wide-character equivalents * on Windows so require parameter rearrangement or redirection to a replacement @@ -65,9 +68,11 @@ typedef wchar_t tchar; # define trename win32_rename_replacement # define tglob win32_wglob #else /* __WIN32__ */ -/* For non-Windows builds, the "tchar" type will be one byte and will specify a - * string in the locale-dependent multibyte encoding. However, only UTF-8 is - * well supported in this library. */ +/* + * For non-Windows builds, the "tchar" type will be one byte and will specify a + * string encoded in UTF-8 with the additional possibility of surrogate + * codepoints. + */ typedef char tchar; # define TCHAR_IS_UTF16LE 0 # define T(text) text /* In this case, strings of "tchar" are simply strings of @@ -87,6 +92,7 @@ typedef char tchar; # define tsprintf sprintf # define tfprintf fprintf # define tvfprintf vfprintf +# define tscanf sscanf # define istalpha(c) isalpha((unsigned char)(c)) # define istspace(c) isspace((unsigned char)(c)) # define totlower(c) tolower((unsigned char)(c)) @@ -111,9 +117,9 @@ typedef char tchar; # define tstrtol strtol # define tstrtod strtod # define tstrtoul strtoul +# define tstrtoull strtoull # define tmkdir mkdir # define tstrdup strdup -# define ttempnam tempnam # define tgetenv getenv # define TSTRDUP STRDUP # define tstrerror_r strerror_r