diff options
author | jan.nijtmans <nijtmans@users.sourceforge.net> | 2019-06-11 15:14:16 (GMT) |
---|---|---|
committer | jan.nijtmans <nijtmans@users.sourceforge.net> | 2019-06-11 15:14:16 (GMT) |
commit | 8f72212fd698ae61734ebcaff08e59a3781f31f4 (patch) | |
tree | 4b7a6fac10d116ff32cffde3826336ee8a4fabf1 /win/tkWinFont.c | |
parent | 91aae5e4e2fcc969d686c0fd4e5d6f308cb983e3 (diff) | |
download | tk-8f72212fd698ae61734ebcaff08e59a3781f31f4.zip tk-8f72212fd698ae61734ebcaff08e59a3781f31f4.tar.gz tk-8f72212fd698ae61734ebcaff08e59a3781f31f4.tar.bz2 |
Switch back to using Tcl_UtfToExternalDString() in tkWinFont.c, since - somehow - changing it doesn't work.
More usage of implicit WCHAR, since we are always building with UNICODE.
Diffstat (limited to 'win/tkWinFont.c')
-rw-r--r-- | win/tkWinFont.c | 17 |
1 files changed, 11 insertions, 6 deletions
diff --git a/win/tkWinFont.c b/win/tkWinFont.c index ecc18d3..33faede 100644 --- a/win/tkWinFont.c +++ b/win/tkWinFont.c @@ -179,6 +179,12 @@ typedef struct ThreadSpecificData { static Tcl_ThreadDataKey dataKey; /* + * Information cached about the system at startup time. + */ + +static Tcl_Encoding systemEncoding; + +/* * Procedures used only in this file. */ @@ -256,6 +262,7 @@ void TkpFontPkgInit( TkMainInfo *mainPtr) /* The application being created. */ { + systemEncoding = TkWinGetUnicodeEncoding(); TkWinSetupSystemFonts(mainPtr); } @@ -657,7 +664,7 @@ WinFontFamilyEnumProc( int fontType, /* Type of font (not used). */ LPARAM lParam) /* Result object to hold result. */ { - WCHAR *faceName = (WCHAR *) lfPtr->elfLogFont.lfFaceName; + WCHAR *faceName = lfPtr->elfLogFont.lfFaceName; Tcl_Obj *resultObj = (Tcl_Obj *) lParam; Tcl_DString faceString; @@ -2066,7 +2073,7 @@ WinFontCanUseProc( fontPtr = canUsePtr->fontPtr; nameTriedPtr = canUsePtr->nameTriedPtr; - fallbackName = (char *)lfPtr->elfLogFont.lfFaceName; + fallbackName = (char *) lfPtr->elfLogFont.lfFaceName; Tcl_DStringInit(&faceString); Tcl_UniCharToUtfDString((WCHAR *)fallbackName, wcslen((WCHAR *)fallbackName), &faceString); fallbackName = Tcl_DStringValue(&faceString); @@ -2490,8 +2497,7 @@ GetScreenFont( lf.lfQuality = DEFAULT_QUALITY; lf.lfPitchAndFamily = DEFAULT_PITCH | FF_DONTCARE; - Tcl_DStringInit(&ds); - Tcl_UtfToUniCharDString(faceName, -1, &ds); + Tcl_UtfToExternalDString(systemEncoding, faceName, -1, &ds); wcsncpy(lf.lfFaceName, (WCHAR *)Tcl_DStringValue(&ds), LF_FACESIZE-1); Tcl_DStringFree(&ds); lf.lfFaceName[LF_FACESIZE-1] = 0; @@ -2526,8 +2532,7 @@ FamilyExists( int result; Tcl_DString faceString; - Tcl_DStringInit(&faceString); - Tcl_UtfToUniCharDString(faceName, -1, &faceString); + Tcl_UtfToExternalDString(systemEncoding, faceName, -1, &faceString); /* * If the family exists, WinFontExistProc() will be called and |