diff options
author | dgp <dgp@users.sourceforge.net> | 2004-12-04 21:19:15 (GMT) |
---|---|---|
committer | dgp <dgp@users.sourceforge.net> | 2004-12-04 21:19:15 (GMT) |
commit | 199c1fb12767c9ef58c43b56f33ca3113eb738ab (patch) | |
tree | 545a48ddf28d3b44bd1730534af8f674aa8e06b3 | |
parent | 2eb6dbf5b27a10b106d4ed4774b053de32876cf6 (diff) | |
download | tcl-199c1fb12767c9ef58c43b56f33ca3113eb738ab.zip tcl-199c1fb12767c9ef58c43b56f33ca3113eb738ab.tar.gz tcl-199c1fb12767c9ef58c43b56f33ca3113eb738ab.tar.bz2 |
* generic/tclEncoding.c: Different fix for [Bug 1077005].
* generic/tclEvent.c: Broke apart TclpSetInitialEncodings() on
* generic/tclInt.h: Windows into TclpSetInterfaces(), that is
* unix/tclUnixInit.c: fundamentally essential, and the initialization
* win/tclWinInit.c: of the system encoding, which is not. Made
the TclpSetInterfaces call part of TclInitSubsystems so it cannot be
overlooked.
-rw-r--r-- | ChangeLog | 10 | ||||
-rw-r--r-- | generic/tclEncoding.c | 4 | ||||
-rw-r--r-- | generic/tclEvent.c | 3 | ||||
-rw-r--r-- | generic/tclInt.h | 3 | ||||
-rw-r--r-- | unix/tclUnixInit.c | 8 | ||||
-rw-r--r-- | win/tclWinInit.c | 17 |
6 files changed, 34 insertions, 11 deletions
@@ -1,3 +1,13 @@ +2004-12-04 Don Porter <dgp@users.sourceforge.net> + + * generic/tclEncoding.c: Different fix for [Bug 1077005]. + * generic/tclEvent.c: Broke apart TclpSetInitialEncodings() on + * generic/tclInt.h: Windows into TclpSetInterfaces(), that is + * unix/tclUnixInit.c: fundamentally essential, and the initialization + * win/tclWinInit.c: of the system encoding, which is not. Made + the TclpSetInterfaces call part of TclInitSubsystems so it cannot be + overlooked. + 2004-12-03 Jeff Hobbs <jeffh@ActiveState.com> * changes: updated for 8.5a2 release diff --git a/generic/tclEncoding.c b/generic/tclEncoding.c index 3cbf450..a525283 100644 --- a/generic/tclEncoding.c +++ b/generic/tclEncoding.c @@ -8,7 +8,7 @@ * See the file "license.terms" for information on usage and redistribution * of this file, and for a DISCLAIMER OF ALL WARRANTIES. * - * RCS: @(#) $Id: tclEncoding.c,v 1.30 2004/12/02 23:24:57 dgp Exp $ + * RCS: @(#) $Id: tclEncoding.c,v 1.31 2004/12/04 21:19:18 dgp Exp $ */ #include "tclInt.h" @@ -513,7 +513,6 @@ TclInitEncodingSubsystem() Tcl_CreateEncoding(&type); encodingsInitialized = 1; - TclpSetInitialEncodings(); } /* @@ -1303,6 +1302,7 @@ Tcl_FindExecutable(argv0) * (native). */ { TclInitSubsystems(); + TclpSetInitialEncodings(); TclpFindExecutable(argv0); } diff --git a/generic/tclEvent.c b/generic/tclEvent.c index 62a2f3b..5a734c4 100644 --- a/generic/tclEvent.c +++ b/generic/tclEvent.c @@ -12,7 +12,7 @@ * See the file "license.terms" for information on usage and redistribution * of this file, and for a DISCLAIMER OF ALL WARRANTIES. * - * RCS: @(#) $Id: tclEvent.c,v 1.54 2004/12/01 23:18:50 dgp Exp $ + * RCS: @(#) $Id: tclEvent.c,v 1.55 2004/12/04 21:19:18 dgp Exp $ */ #include "tclInt.h" @@ -801,6 +801,7 @@ TclInitSubsystems() TclInitObjSubsystem(); /* register obj types, create mutexes */ TclInitIOSubsystem(); /* inits a tsd key (noop) */ TclInitEncodingSubsystem(); /* process wide encoding init */ + TclpSetInterfaces(); TclInitNamespaceSubsystem(); /* register ns obj type (mutexed) */ } TclpInitUnlock(); diff --git a/generic/tclInt.h b/generic/tclInt.h index dbfe454..e7c400f 100644 --- a/generic/tclInt.h +++ b/generic/tclInt.h @@ -12,7 +12,7 @@ * See the file "license.terms" for information on usage and redistribution * of this file, and for a DISCLAIMER OF ALL WARRANTIES. * - * RCS: @(#) $Id: tclInt.h,v 1.202 2004/12/01 23:18:51 dgp Exp $ + * RCS: @(#) $Id: tclInt.h,v 1.203 2004/12/04 21:19:18 dgp Exp $ */ #ifndef _TCLINT @@ -1962,6 +1962,7 @@ MODULE_SCOPE void TclpPanic _ANSI_ARGS_(TCL_VARARGS(CONST char *, MODULE_SCOPE char * TclpReadlink _ANSI_ARGS_((CONST char *fileName, Tcl_DString *linkPtr)); MODULE_SCOPE void TclpReleaseFile _ANSI_ARGS_((TclFile file)); +MODULE_SCOPE void TclpSetInterfaces (); MODULE_SCOPE void TclpSetVariables _ANSI_ARGS_((Tcl_Interp *interp)); MODULE_SCOPE void TclpUnloadFile _ANSI_ARGS_(( Tcl_LoadHandle loadHandle)); diff --git a/unix/tclUnixInit.c b/unix/tclUnixInit.c index 4dd3208..1fcae33 100644 --- a/unix/tclUnixInit.c +++ b/unix/tclUnixInit.c @@ -7,7 +7,7 @@ * Copyright (c) 1999 by Scriptics Corporation. * All rights reserved. * - * RCS: @(#) $Id: tclUnixInit.c,v 1.53 2004/11/30 19:34:51 dgp Exp $ + * RCS: @(#) $Id: tclUnixInit.c,v 1.54 2004/12/04 21:19:19 dgp Exp $ */ #include "tclInt.h" @@ -583,6 +583,12 @@ TclpSetInitialEncodings() Tcl_DStringFree(&encodingName); } +void +TclpSetInterfaces() +{ + /* do nothing */ +} + CONST char * TclpGetEncodingNameFromEnvironment(bufPtr) Tcl_DString *bufPtr; diff --git a/win/tclWinInit.c b/win/tclWinInit.c index 0b54cdb..d8d4fc9 100644 --- a/win/tclWinInit.c +++ b/win/tclWinInit.c @@ -7,7 +7,7 @@ * Copyright (c) 1998-1999 by Scriptics Corporation. * All rights reserved. * - * RCS: @(#) $Id: tclWinInit.c,v 1.64 2004/11/30 19:34:52 dgp Exp $ + * RCS: @(#) $Id: tclWinInit.c,v 1.65 2004/12/04 21:19:19 dgp Exp $ */ #include "tclWinInt.h" @@ -441,17 +441,22 @@ TclWinEncodingsCleanup() void TclpSetInitialEncodings() { - int platformId, useWide; Tcl_DString encodingName; + + TclpSetInterfaces(); + Tcl_SetSystemEncoding(NULL, + TclpGetEncodingNameFromEnvironment(&encodingName)); + Tcl_DStringFree(&encodingName); +} +void +TclpSetInterfaces() +{ + int platformId, useWide; platformId = TclWinGetPlatformId(); useWide = ((platformId == VER_PLATFORM_WIN32_NT) || (platformId == VER_PLATFORM_WIN32_CE)); TclWinSetInterfaces(useWide); - - Tcl_SetSystemEncoding(NULL, - TclpGetEncodingNameFromEnvironment(&encodingName)); - Tcl_DStringFree(&encodingName); } CONST char * |