diff options
author | jan.nijtmans <nijtmans@users.sourceforge.net> | 2015-11-11 16:09:04 (GMT) |
---|---|---|
committer | jan.nijtmans <nijtmans@users.sourceforge.net> | 2015-11-11 16:09:04 (GMT) |
commit | a5d30054463139d7b5aaf7f1c965190f3b88f0c4 (patch) | |
tree | b473e92ac388c4637baa9017caad81da2d974edf /generic/tclMain.c | |
parent | f84d09bdd759fbee98108d0a097f322255fdf0e3 (diff) | |
download | tcl-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.c | 17 |
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 |