Completing tchar.h

Francois Gouget fgouget at
Mon Apr 23 02:31:39 CDT 2001

   I believe that tchar.h, like windows.h, should not be included by any
of Wine's sources: the whole point of tchar.h is to make it possible for
a single source to be compiled wither for SBCS, MBCS or Unicode. This is
not something we want to do in Wine's source.


 * include/tchar.h

   Prevent use by Wine's source
   Added missing 'function' definitions (macros really)

Francois Gouget         fgouget at
                  Dieu dit: "M-x Lumière". Et la lumière fut.
-------------- next part --------------
Index: include/tchar.h
RCS file: /home/wine/wine/include/tchar.h,v
retrieving revision 1.14
diff -u -r1.14 tchar.h
--- include/tchar.h	2001/04/10 23:23:31	1.14
+++ include/tchar.h	2001/04/23 02:29:17
@@ -1,6 +1,10 @@
 #ifndef __WINE_TCHAR_H
 #define __WINE_TCHAR_H
+#ifdef __WINE__
+#error Wine should not include tchar.h internally
 #include "windef.h"
 #ifdef __cplusplus
@@ -10,10 +14,12 @@
  * tchar routines
-#define _strdec(start,current)  (start<current?((char*)current)-1:NULL)
-#define _strinc(current) (((char*)current)+1)
-/* FIXME: _strncnt and strncnt are missing */
-/* FIXME: _strspnp is not implemented */
+#define _strdec(start,current)  ((start)<(current) ? ((char*)current)-1 : NULL)
+#define _strinc(current)        (((char*)current)+1)
+#define _strncnt(str,max)       (strlen(str)>(max) ? (max) : strlen(str))
+#define _strnextc(str)          ((unsigned int)*str)
+#define _strninc(str,n)         (((char*)str)+(n))
+#define _strspnp(s1,s2)         (*((s1)+=strspn(s1,s2)) ? (s1) : NULL)

More information about the wine-patches mailing list