From a5b009796383e0a829c96ed6ac24c3b035f55fde Mon Sep 17 00:00:00 2001 From: nijtmans Date: Fri, 16 Jul 2010 22:06:04 +0000 Subject: [Tcl Bug 3029891] Functions that don't belong in the stub table (Tk part, not really removed from the stub table, just disabled) [Bug 3027438] Tk_Main calls Tcl_CreateInterp before Tcl_FindExecutable --- ChangeLog | 7 +++++++ generic/tk.h | 6 +++--- generic/tkDecls.h | 8 +++++++- generic/tkMain.c | 11 +++++------ 4 files changed, 22 insertions(+), 10 deletions(-) diff --git a/ChangeLog b/ChangeLog index 3cbde48..06cf416 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,10 @@ +2010-07-16 Jan Nijtmans + + * generic/tkDecls.h [Tcl Bug 3029891] Functions that don't belong in the + stub table (Tk part, not really removed from the stub table, just disabled) + * generic/tkMain.c [Bug 3027438] Tk_Main calls Tcl_CreateInterp before + * generic/tk.h Tcl_FindExecutable + 2010-07-06 Andreas Kupries * doc/text.n: Fixed minor typo in the description of 'text diff --git a/generic/tk.h b/generic/tk.h index 10db9a7..8e3e144 100644 --- a/generic/tk.h +++ b/generic/tk.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: tk.h,v 1.135 2010/06/19 16:18:41 jenglish Exp $ + * RCS: @(#) $Id: tk.h,v 1.136 2010/07/16 22:06:05 nijtmans Exp $ */ #ifndef _TK @@ -1478,8 +1478,8 @@ typedef struct Tk_ElementSpec { #define Tk_Release Tcl_Release /* Removed Tk_Main, use macro instead */ -#define Tk_Main(argc, argv, proc) \ - Tk_MainEx(argc, argv, proc, Tcl_CreateInterp()) +#define Tk_Main(argc, argv, proc) Tk_MainEx(argc, argv, proc, \ + (Tcl_FindExecutable(argv[0]), (Tcl_CreateInterp)())) const char * Tk_InitStubs(Tcl_Interp *interp, const char *version, int exact); diff --git a/generic/tkDecls.h b/generic/tkDecls.h index dacb04c..2d5f3ab 100644 --- a/generic/tkDecls.h +++ b/generic/tkDecls.h @@ -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: tkDecls.h,v 1.47 2010/05/10 20:58:18 nijtmans Exp $ + * RCS: @(#) $Id: tkDecls.h,v 1.48 2010/07/16 22:06:05 nijtmans Exp $ */ #ifndef _TKDECLS @@ -3098,5 +3098,11 @@ extern const TkStubs *tkStubsPtr; #undef TCL_STORAGE_CLASS #define TCL_STORAGE_CLASS DLLIMPORT +/* Functions that don't belong in the stub table */ +#undef Tk_MainEx +#undef Tk_Init +#undef Tk_SafeInit +#undef Tk_CreateConsoleWindow + #endif /* _TKDECLS */ diff --git a/generic/tkMain.c b/generic/tkMain.c index 5dd5f40..2566674 100644 --- a/generic/tkMain.c +++ b/generic/tkMain.c @@ -13,7 +13,7 @@ * See the file "license.terms" for information on usage and redistribution of * this file, and for a DISCLAIMER OF ALL WARRANTIES. * - * RCS: @(#) $Id: tkMain.c,v 1.32 2008/12/15 16:17:18 dgp Exp $ + * RCS: @(#) $Id: tkMain.c,v 1.33 2010/07/16 22:06:05 nijtmans Exp $ */ #include @@ -115,7 +115,6 @@ Tk_MainEx( tsdPtr = Tcl_GetThreadData(&dataKey, sizeof(ThreadSpecificData)); - Tcl_FindExecutable(argv[0]); tsdPtr->interp = interp; Tcl_Preserve(interp); @@ -239,7 +238,7 @@ Tk_MainEx( * of length 0, (e.g. /dev/null, which is what Finder sets when double * clicking Wish) then use the GUI console. */ - + if (!tsdPtr->tty) { struct stat st; @@ -452,7 +451,7 @@ Prompt( */ outChannel = Tcl_GetChannel(interp, "stdout", NULL); - if (outChannel != (Tcl_Channel) NULL) { + if (outChannel != NULL) { Tcl_WriteChars(outChannel, "% ", 2); } } @@ -469,7 +468,7 @@ Prompt( */ errChannel = Tcl_GetChannel(interp, "stderr", NULL); - if (errChannel != (Tcl_Channel) NULL) { + if (errChannel != NULL) { Tcl_WriteObj(errChannel, Tcl_GetObjResult(interp)); Tcl_WriteChars(errChannel, "\n", 1); } @@ -477,7 +476,7 @@ Prompt( } } outChannel = Tcl_GetChannel(interp, "stdout", NULL); - if (outChannel != (Tcl_Channel) NULL) { + if (outChannel != NULL) { Tcl_Flush(outChannel); } } -- cgit v0.12