summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorjan.nijtmans <nijtmans@users.sourceforge.net>2022-05-24 06:50:32 (GMT)
committerjan.nijtmans <nijtmans@users.sourceforge.net>2022-05-24 06:50:32 (GMT)
commita623f528f64f6fbb4a8d8cf347b454d5770d37b4 (patch)
treef49c1d596ed00eb55c87da3df3903a9b560fe028
parent797ee36798bfc483ddad365b0947d55fcdac1365 (diff)
downloadtcl-a623f528f64f6fbb4a8d8cf347b454d5770d37b4.zip
tcl-a623f528f64f6fbb4a8d8cf347b454d5770d37b4.tar.gz
tcl-a623f528f64f6fbb4a8d8cf347b454d5770d37b4.tar.bz2
Fix for [f160f9f982]: macOS Aqua : Emoji does not display anymore after TIP #622. (Actually, X11 displayed wrong too!)
-rw-r--r--generic/tclDecls.h11
-rw-r--r--generic/tclStubInit.c4
2 files changed, 15 insertions, 0 deletions
diff --git a/generic/tclDecls.h b/generic/tclDecls.h
index 503d47e..ee9e02f 100644
--- a/generic/tclDecls.h
+++ b/generic/tclDecls.h
@@ -4326,6 +4326,17 @@ extern const TclStubs *tclStubsPtr;
# define Tcl_UtfToUniChar Tcl_UtfToChar16
# undef Tcl_UniCharLen
# define Tcl_UniCharLen Tcl_Char16Len
+#elif !defined(BUILD_tcl)
+# undef Tcl_NumUtfChars
+# define Tcl_NumUtfChars TclNumUtfChars
+# undef Tcl_GetCharLength
+# define Tcl_GetCharLength TclGetCharLength
+# undef Tcl_UtfAtIndex
+# define Tcl_UtfAtIndex TclUtfAtIndex
+# undef Tcl_GetRange
+# define Tcl_GetRange TclGetRange
+# undef Tcl_GetUniChar
+# define Tcl_GetUniChar TclGetUniChar
#endif
#if defined(USE_TCL_STUBS)
# define Tcl_WCharToUtfDString (sizeof(wchar_t) != sizeof(short) \
diff --git a/generic/tclStubInit.c b/generic/tclStubInit.c
index 7d04481..fd06c14 100644
--- a/generic/tclStubInit.c
+++ b/generic/tclStubInit.c
@@ -78,8 +78,11 @@
#undef Tcl_MacOSXOpenBundleResources
#undef TclWinConvertWSAError
#undef TclWinConvertError
+#undef Tcl_NumUtfChars
#undef Tcl_GetCharLength
#undef Tcl_UtfAtIndex
+#undef Tcl_GetRange
+#undef Tcl_GetUniChar
#if defined(_WIN32) || defined(__CYGWIN__)
#define TclWinConvertWSAError (void (*)(DWORD))(void *)Tcl_WinConvertError
@@ -103,6 +106,7 @@ static void uniCodePanic(void) {
# define Tcl_UniCharCaseMatch (int(*)(const unsigned short *, const unsigned short *, int))(void *)uniCodePanic
# define Tcl_GetRange (Tcl_Obj *(*)(Tcl_Obj *, int, int))(void *)uniCodePanic
# define Tcl_GetUniChar (int(*)(Tcl_Obj *, int))(void *)uniCodePanic
+# define Tcl_NumUtfChars (int(*)(const char *, int))(void *)uniCodePanic
#endif
#define TclUtfCharComplete UtfCharComplete