summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--ChangeLog10
-rw-r--r--generic/tclEncoding.c4
-rw-r--r--generic/tclEvent.c3
-rw-r--r--generic/tclInt.h3
-rw-r--r--unix/tclUnixInit.c8
-rw-r--r--win/tclWinInit.c17
6 files changed, 34 insertions, 11 deletions
diff --git a/ChangeLog b/ChangeLog
index e6b86f3..593f81f 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -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 *