Ticket UUID: | 1077005 | |||
Title: | Tk crashes at startup in InitializeEncodingSearchPath | |||
Type: | Bug | Version: | obsolete: 8.5a2 | |
Submitter: | vincentdarley | Created on: | 2004-12-01 19:24:36 | |
Subsystem: | 38. Init - Library - Autoload | Assigned To: | dgp | |
Priority: | 9 Immediate | Severity: | ||
Status: | Closed | Last Modified: | 2004-12-02 05:10:53 | |
Resolution: | Fixed | Closed By: | dgp | |
Closed on: | 2004-12-01 21:57:59 | |||
Description: |
Here's the stack trace: 00000000() TclpObjNormalizePath(Tcl_Interp * 0x00000000, Tcl_Obj * 0x00af58c8, int 0) line 2467 + 27 bytes TclFSNormalizeToUniquePath(Tcl_Interp * 0x00000000, Tcl_Obj * 0x00af58c8, int 0, void * * 0x0026f4e0) line 1380 + 17 bytes TclFSNormalizeAbsolutePath(Tcl_Interp * 0x00000000, Tcl_Obj * 0x00af5880, void * * 0x0026f530) line 385 + 19 bytes Tcl_FSGetNormalizedPath(Tcl_Interp * 0x00000000, Tcl_Obj * 0x00af5898) line 1816 + 31 bytes TclNativeCreateNativeRep(Tcl_Obj * 0x00af5898) line 2860 + 11 bytes Tcl_FSGetInternalRep(Tcl_Obj * 0x00af5898, Tcl_Filesystem * 0x10118648 _tclNativeFilesystem) line 1959 + 9 bytes Tcl_FSGetNativePath(Tcl_Obj * 0x00af5898) line 4129 + 14 bytes TclpObjStat(Tcl_Obj * 0x00af5898, _stati64 * 0x0026f74c) line 1758 + 15 bytes Tcl_FSStat(Tcl_Obj * 0x00af5898, _stati64 * 0x0026f74c) line 1890 + 13 bytes InitializeEncodingSearchPath(char * * 0x10111b60, int * 0x10111b5c, Tcl_Encoding_ * * 0x10111b64) line 3086 + 13 bytes TclGetProcessGlobalValue(ProcessGlobalValue * 0x10111b58 encodingSearchPath) line 2805 + 29 bytes TclGetEncodingSearchPath() line 281 + 10 bytes MakeFileMap() line 385 + 5 bytes InitializeEncodingFileMap(char * * 0x10111b80, int * 0x10111b7c, Tcl_Encoding_ * * 0x10111b84) line 3131 + 5 bytes TclGetProcessGlobalValue(ProcessGlobalValue * 0x10111b78 encodingFileMap) line 2805 + 29 bytes LoadEncodingFile(Tcl_Interp * 0x00000000, const char * 0x1011bb80) line 1346 + 10 bytes Tcl_GetEncoding(Tcl_Interp * 0x00000000, const char * 0x1011bb80) line 670 + 13 bytes Tcl_RegisterConfig(Tcl_Interp * 0x00af5118, const char * 0x1011bb88, Tcl_Config * 0x1011b890 cfg, const char * 0x1011bb80) line 79 + 11 bytes TclInitEmbeddedConfigurationInformation(Tcl_Interp * 0x00af5118) line 121 + 24 bytes Tcl_CreateInterp() line 444 + 9 bytes WinMain(HINSTANCE__ * 0x00400000, HINSTANCE__ * 0x00000000, char * 0x00291f07, int 1) line 129 + 8 bytes WinMainCRTStartup() line 330 + 54 bytes it crashes because it calls/references (*tclWinProcs->getFileAttributesExProc) which is NULL because TclWinSetInterfaces has not been called yet. | |||
User Comments: |
dkf added on 2004-12-02 05:10:53:
Logged In: YES user_id=79902 FWIW, from my perspective it was always a bug that encoding names were not case sensitive on some platforms. :^) dgp added on 2004-12-02 04:57:59: File Added - 110906: 1077005.patch Logged In: YES user_id=80530 Thanks for the report and the testing. Committing a fix for the crash... Patch attached. Please raise the case sensitivity issue in another report. It's an example of filesystem differences (unintentionally?) filtering up to become cross-platform issues in scripts. From my (unix) perspective, encoding names have always been case sensitive. vincentdarley added on 2004-12-02 02:50:19: Logged In: YES user_id=32170 p.s. Another difference I just noticed with the new code is that encodings are now case sensitive. Before I could do 'fconfigure $chan -encoding macroman', but that now gives an error (I need 'macRoman'). That may well bite a few people, unless fixed. vincentdarley added on 2004-12-02 02:45:57: Logged In: YES user_id=32170 That fix solves the problem for me - thanks! dgp added on 2004-12-02 02:38:40: Logged In: YES user_id=80530 please test this possible fix. In Tcl_CreateInterp (tclBasic.c) right after the call to TclInitSubsystems() add a call to TclpSetInitialEncodings(). |
Attachments:
- 1077005.patch [download] added by dgp on 2004-12-02 04:57:59. [details]