-typedef u8 utf8char;
-
-#ifdef __WIN32__
-/* 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. */
-typedef wchar_t tchar;
-# define TCHAR_IS_UTF16LE 1
-# define T(text) L##text /* Make a string literal into a wide string */
-# define TS "ls" /* Format a string of "tchar" */
-# define WS "ls" /* Format a UTF-16LE string (same as above) */
-
-/* For Windows builds, the following definitions replace the "tchar" functions
- * with the "wide-character" functions. */
-# define tmemchr wmemchr
-# define tmemcpy wmemcpy
-# define tstrcpy wcscpy
-# define tprintf wprintf
-# define tsprintf swprintf
-# define tfprintf fwprintf
-# define tvfprintf vfwprintf
-# define istalpha iswalpha
-# define tstrcmp wcscmp
-# define tstrchr wcschr
-# define tstrrchr wcsrchr
-# define tstrlen wcslen
-# define tmemcmp wmemcmp
-# define tstrftime wcsftime
-# define tputchar putwchar
-# define tputc putwc
-# define tputs _putws
-# define tfputs fputws
-# define tfopen _wfopen
-# define tstat _wstati64
-# define tstrtol wcstol
-# define tunlink _wunlink
-/* The following "tchar" functions do not have exact wide-character equivalents
- * on Windows so require parameter rearrangement or redirection to a replacement
- * function defined ourselves. */
-# define TSTRDUP WSTRDUP
-# define tmkdir(path, mode) _wmkdir(path)
-# define tstrerror_r(errnum, buf, bufsize) _wcserror_s(buf, bufsize, errnum)
-# define trename win32_rename_replacement
-# define ttruncate win32_truncate_replacement
-#else
-/* 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. */
-typedef char tchar;
-# define TCHAR_IS_UTF16LE 0
-# define T(text) text /* In this case, strings of "tchar" are simply strings of
- char */
-# define TS "s" /* Similarly, a string of "tchar" is printed just as a
- normal string. */
-# define WS "W" /* UTF-16LE strings must be printed using a special
- extension implemented by wimlib itself. Note that
- "ls" will not work here because a string of wide
- characters on non-Windows systems is typically not
- UTF-16LE. */
-/* For non-Windows builds, replace the "tchar" functions with the regular old
- * string functions. */
-# define tmemchr memchr
-# define tmemcpy memcpy
-# define tstrcpy strcpy
-# define tprintf printf
-# define tsprintf sprintf
-# define tfprintf fprintf
-# define tvfprintf vfprintf
-# define istalpha isalpha
-# define tstrcmp strcmp
-# define tstrchr strchr
-# define tstrrchr strrchr
-# define tstrlen strlen
-# define tmemcmp memcmp
-# define tstrftime strftime
-# define tputchar putchar
-# define tputc putc
-# define tputs puts
-# define tfputs fputs
-# define tfopen fopen
-# define tstat stat
-# define tunlink unlink
-# define tstrtol strtol
-# define tmkdir mkdir
-# define TSTRDUP STRDUP
-# define tstrerror_r strerror_r
-# define trename rename
-# define ttruncate truncate
-#endif
-