]> wimlib.net Git - wimlib/blobdiff - include/wimlib_tchar.h
Implement setting of Windows-specific XML information
[wimlib] / include / wimlib_tchar.h
index e902fab39a4e2227cb92888a0e0f346f28c5d5c3..fffcd5c4bf156f568df92f5796e6fed69f0b827d 100644 (file)
@@ -15,20 +15,25 @@ typedef wchar_t tchar;
 #  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
@@ -46,17 +51,21 @@ 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
  * 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
@@ -68,23 +77,24 @@ typedef char tchar;
 #  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
@@ -104,12 +114,16 @@ 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
 #  define trename      rename
-#  define ttruncate    truncate
 #  define taccess      access
+#  define tglob                glob
 #endif /* !__WIN32__ */
 
 #endif /* _WIMLIB_TCHAR_H */