diff options
Diffstat (limited to 'generic')
-rw-r--r-- | generic/tkInitScript.h | 54 | ||||
-rw-r--r-- | generic/tkWindow.c | 24 |
2 files changed, 23 insertions, 55 deletions
diff --git a/generic/tkInitScript.h b/generic/tkInitScript.h deleted file mode 100644 index ee86e1b..0000000 --- a/generic/tkInitScript.h +++ /dev/null @@ -1,54 +0,0 @@ -/* - * tkInitScript.h -- - * - * This file contains Unix & Windows common init script - * - * Copyright (c) 1997 Sun Microsystems, Inc. - * - * See the file "license.terms" for information on usage and redistribution of - * this file, and for a DISCLAIMER OF ALL WARRANTIES. - * - * RCS: @(#) $Id: tkInitScript.h,v 1.10 2005/11/15 15:18:21 dkf Exp $ - */ - -/* - * In order to find tk.tcl during initialization, the following script is - * invoked by Tk_Init(). It looks in several different directories: - * - * $tk_library - can specify a primary location, if set no - * other locations will be checked - * - * $env(TK_LIBRARY) - highest priority so user can always override - * the search path unless the application has - * specified an exact directory above - * - * $tcl_library/../tk$tk_version - * - look relative to init.tcl in an installed - * lib directory (e.g. /usr/local) - * - * <executable directory>/../lib/tk$tk_version - * - look for a lib/tk<ver> in a sibling of the - * bin directory (e.g. /usr/local) - * - * <executable directory>/../library - * - look in Tk build directory - * - * <executable directory>/../../tk$tk_patchLevel/library - * - look for Tk build directory relative to a - * parallel build directory - * - * The first directory on this path that contains a valid tk.tcl script will - * be set ast the value of tk_library. - * - * Note that this entire search mechanism can be bypassed by defining an - * alternate tkInit procedure before calling Tk_Init(). - */ - -static char initScript[] = "if {[info proc tkInit]==\"\"} {\n\ - proc tkInit {} {\n\ - global tk_library tk_version tk_patchLevel\n\ - rename tkInit {}\n\ - tcl_findLibrary tk $tk_version $tk_patchLevel tk.tcl TK_LIBRARY tk_library\n\ - }\n\ -}\n\ -tkInit"; diff --git a/generic/tkWindow.c b/generic/tkWindow.c index 4a821e0..2397347 100644 --- a/generic/tkWindow.c +++ b/generic/tkWindow.c @@ -11,7 +11,7 @@ * See the file "license.terms" for information on usage and redistribution of * this file, and for a DISCLAIMER OF ALL WARRANTIES. * - * RCS: @(#) $Id: tkWindow.c,v 1.80 2007/02/13 00:16:39 dkf Exp $ + * RCS: @(#) $Id: tkWindow.c,v 1.81 2007/09/06 19:33:55 dgp Exp $ */ #include "tkPort.h" @@ -3233,6 +3233,28 @@ Initialize( } code = TkpInit(interp); if (code == TCL_OK) { + + /* + * In order to find tk.tcl during initialization, we evaluate the + * following script. It calls on the Tcl command [tcl_findLibrary] + * to perform the search. See the docs for that command for details + * on where it looks. + * + * Note that this entire search mechanism can be bypassed by defining + * an alternate [tkInit] command before calling Tk_Init(). + */ + + code = Tcl_Eval(interp, +"if {[namespace which -command tkInit] eq \"\"} {\n\ + proc tkInit {} {\n\ + global tk_library tk_version tk_patchLevel\n\ + rename tkInit {}\n\ + tcl_findLibrary tk $tk_version $tk_patchLevel tk.tcl TK_LIBRARY tk_library\n\ + }\n\ +}\n\ +tkInit"); + } + if (code == TCL_OK) { /* * Create exit handlers to delete all windows when the application or * thread exits. The handler need to be invoked before other platform |