# define T(text) _T(text) /* Make a string literal into a wide string */
# define TS "ls" /* Format a string of "tchar" */
# define TC "lc" /* Format a "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 tmemmove wmemmove
+# define tmempcpy wmempcpy
+# define tstrcat wcscat
# define tstrcpy wcscpy
# define tprintf wprintf
# define tsprintf swprintf
# define tfprintf fwprintf
# define tvfprintf vfwprintf
-# define istalpha iswalpha
-# define istspace iswspace
+# define tscanf swscanf
+# define istalpha(c) iswalpha((wchar_t)(c))
+# define istspace(c) iswspace((wchar_t)(c))
+# define totlower(c) towlower((wchar_t)(c))
# define tstrcmp wcscmp
+# define tstrncmp wcsncmp
# define tstrchr wcschr
# define tstrpbrk wcspbrk
# define tstrrchr wcsrchr
# 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 tgetenv _wgetenv
/* 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 TSTRDUP WCSDUP
# define tmkdir(path, mode) _wmkdir(path)
# define tstrerror_r win32_strerror_r_replacement
# define trename win32_rename_replacement
-# define ttruncate win32_truncate_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
# define TS "s" /* Similarly, a string of "tchar" is printed just as a
normal string. */
# define TC "c" /* Print a single character */
-# 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 tmemmove memmove
+# define tmempcpy mempcpy
+# define tstrcat strcat
# define tstrcpy strcpy
# define tprintf printf
# define tsprintf sprintf
# define tfprintf fprintf
# define tvfprintf vfprintf
-# define istalpha isalpha
-# define istspace isspace
+# define tscanf sscanf
+# define istalpha(c) isalpha((unsigned char)(c))
+# define istspace(c) isspace((unsigned char)(c))
+# define totlower(c) tolower((unsigned char)(c))
# define tstrcmp strcmp
+# define tstrncmp strncmp
# define tstrchr strchr
# define tstrpbrk strpbrk
# define tstrrchr strrchr
# define tstrtol strtol
# define tstrtod strtod
# define tstrtoul strtoul
+# define tstrtoull strtoull
# define tmkdir mkdir
+# define tstrdup strdup
+# define tgetenv getenv
# define TSTRDUP STRDUP
# define tstrerror_r strerror_r
# define trename rename
-# define ttruncate truncate
# define taccess access
+# define tglob glob
#endif /* !__WIN32__ */
#endif /* _WIMLIB_TCHAR_H */