Changelog: switch winefile to UNICODE mode
Why did I declare a new macro $(PREINCL) and insert it into Make.rule.in ? To allow inserting the include directory <include/msvcrt> before <include>. Another way would be to change the following line in Make.rule.in and move $(EXTRAINCL) before -I$(TOPSRCDIR)/include:
INCLUDES = -I$(SRCDIR) -I. $(EXTRAINCL) -I$(TOPSRCDIR)/include -I$(TOPOBJDIR)/include
Why did I remove the following from include/tchar.h?
#if defined(_UNICODE) || defined(_MBCS) #error You must use msvcrt when building in Unicode/MBCS mode #endif
Because it's just crazy - a few lines later _UNICODE and _MBCS are used to build the A/W mapping macros:
/***************************************************************************** * tchar mappings */ #ifndef _UNICODE # ifndef _MBCS # include <string.h> # define WINE_tchar_routine(std,mbcs,unicode) std # else # include <mbstring.h> # define WINE_tchar_routine(std,mbcs,unicode) mbcs # endif #else /* _UNICODE */ # include <wchar.h> # define WINE_tchar_routine(std,mbcs,unicode) unicode #endif
If _UNICODE and _MBCS would not be allowed to be used in <tchar.h> at all, what would be the sense of the whole file?