summaryrefslogtreecommitdiffstats
path: root/win/tkWinFont.c
diff options
context:
space:
mode:
authorjan.nijtmans <nijtmans@users.sourceforge.net>2019-06-11 15:14:16 (GMT)
committerjan.nijtmans <nijtmans@users.sourceforge.net>2019-06-11 15:14:16 (GMT)
commit8f72212fd698ae61734ebcaff08e59a3781f31f4 (patch)
tree4b7a6fac10d116ff32cffde3826336ee8a4fabf1 /win/tkWinFont.c
parent91aae5e4e2fcc969d686c0fd4e5d6f308cb983e3 (diff)
downloadtk-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.c17
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