summaryrefslogtreecommitdiffstats
path: root/generic/tclMain.c
diff options
context:
space:
mode:
authorjan.nijtmans <nijtmans@users.sourceforge.net>2015-11-11 16:09:04 (GMT)
committerjan.nijtmans <nijtmans@users.sourceforge.net>2015-11-11 16:09:04 (GMT)
commita5d30054463139d7b5aaf7f1c965190f3b88f0c4 (patch)
treeb473e92ac388c4637baa9017caad81da2d974edf /generic/tclMain.c
parentf84d09bdd759fbee98108d0a097f322255fdf0e3 (diff)
downloadtcl-werner_utf_max_6.zip
tcl-werner_utf_max_6.tar.gz
tcl-werner_utf_max_6.tar.bz2
Patches by Christian Werner, supporting TCL_UTF_MAX=6 on Windows. Doesn't work yet, but it's a start.werner_utf_max_6
Diffstat (limited to 'generic/tclMain.c')
-rw-r--r--generic/tclMain.c17
1 files changed, 12 insertions, 5 deletions
diff --git a/generic/tclMain.c b/generic/tclMain.c
index 927de7e..ddd3a3f 100644
--- a/generic/tclMain.c
+++ b/generic/tclMain.c
@@ -59,20 +59,27 @@
* encoding to UTF-8).
*/
-#ifdef UNICODE
+#if defined(UNICODE) && (TCL_UTF_MAX <= 4)
# define NewNativeObj Tcl_NewUnicodeObj
-#else /* !UNICODE */
+#else /* !UNICODE || (TCL_UTF_MAX > 4) */
static inline Tcl_Obj *
NewNativeObj(
- char *string,
+ TCHAR *string,
int length)
{
Tcl_DString ds;
- Tcl_ExternalToUtfDString(NULL, string, length, &ds);
+ if (length > 0) {
+ length *= sizeof (TCHAR);
+ }
+#ifdef _WIN32
+ Tcl_WinTCharToUtf(string, length, &ds);
+#else
+ Tcl_ExternalToUtfDString(NULL, (char *) string, length, &ds);
+#endif
return TclDStringToObj(&ds);
}
-#endif /* !UNICODE */
+#endif /* !UNICODE || (TCL_UTF_MAX > 4) */
/*
* Declarations for various library functions and variables (don't want to