Index: tcl/patches/8.4.19/tcl-8.4.19-win32castingfailure-1rsk.diff ================================================================== --- tcl/patches/8.4.19/tcl-8.4.19-win32castingfailure-1rsk.diff +++ tcl/patches/8.4.19/tcl-8.4.19-win32castingfailure-1rsk.diff @@ -10,15 +10,25 @@ /* * See if the target interpreter is local. If so, execute diff -uNr tcl8.4.19.orig/win/tclWinReg.c tcl8.4.19-1rsk/win/tclWinReg.c --- tcl8.4.19.orig/win/tclWinReg.c 2007-05-15 11:08:22.000000000 -0500 -+++ tcl8.4.19-1rsk/win/tclWinReg.c 2010-10-12 10:40:20.000000000 -0500 -@@ -790,7 +790,7 @@ ++++ tcl8.4.19-1rsk/win/tclWinReg.c 2010-10-13 02:03:11.000000000 -0500 +@@ -776,6 +776,7 @@ + } else if (type == REG_MULTI_SZ) { + char *p = Tcl_DStringValue(&data); + char *end = Tcl_DStringValue(&data) + length; ++ Tcl_UniChar *p_uc; + + /* + * Multistrings are stored as an array of null-terminated strings, +@@ -790,7 +791,9 @@ Tcl_NewStringObj(Tcl_DStringValue(&buf), Tcl_DStringLength(&buf))); if (regWinProcs->useWide) { - while (*((Tcl_UniChar *)p)++ != 0) {} -+ while ((*((Tcl_UniChar *)p))++ != 0) {} ++ p_uc = (Tcl_UniChar *) p; ++ while (*p_uc++ != '\0') {} ++ p = (char *) p_uc; } else { while (*p++ != '\0') {} }