From d53df4119776f97484c23827a7c69370a5a2ec51 Mon Sep 17 00:00:00 2001 From: suresh Date: Thu, 9 Jul 1998 13:46:23 +0000 Subject: Fixed a bug in the Tcl init script that did not have a "global env" and thus setting the TCL_LIBRARY environment variable was not being set in the global 'env' array. Moved the varaibe 'tclPreInitScript' from respective tclInit.c file. Added a routine 'TclSetPreInitScript()' to facilite setting the pre-init script variable. This file should only be included once in the entire set of C source files for Tcl (by the respective platform initialization C source file, tclUnixInit.c and tclWinInit.c) and thus the presence of the routine, TclSetPreInitScript, below, should be harmless. --- generic/tclInitScript.h | 52 ++++++++++++++++++++++++++++++++++++++++++------- 1 file changed, 45 insertions(+), 7 deletions(-) diff --git a/generic/tclInitScript.h b/generic/tclInitScript.h index c3b21a3..3c0e1e3 100644 --- a/generic/tclInitScript.h +++ b/generic/tclInitScript.h @@ -3,27 +3,31 @@ * * This file contains Unix & Windows common init script * It is not used on the Mac. (the mac init script is in tclMacInit.c) + * This file should only be included once in the entire set of C + * source files for Tcl (by the respective platform initialization + * C source file, tclUnixInit.c and tclWinInit.c) and thus the + * presence of the routine, TclSetPreInitScript, below, should be + * harmless. * * Copyright (c) 1998 Sun Microsystems, Inc. * * See the file "license.terms" for information on usage and redistribution * of this file, and for a DISCLAIMER OF ALL WARRANTIES. * - * SCCS: %Z% $Id: tclInitScript.h,v 1.1 1998/06/27 22:11:40 welch Exp $ + * SCCS: %Z% $Id: tclInitScript.h,v 1.2 1998/07/09 13:46:23 suresh Exp $ */ /* - * The following string is the startup script executed in new - * interpreters. It looks on disk in (way too many) different directories - * for a script "init.tcl" that is compatible with this version - * of Tcl. The init.tcl script does all of the real work of - * initialization. + * The following string is the startup script executed in new interpreters. + * It looks on disk in (way too many) different directories for a script + * "init.tcl" that is compatible with this version of Tcl. The init.tcl + * script does all of the real work of initialization. */ static char initScript[] = "if {[info proc tclInit]==\"\"} {\n\ proc tclInit {} {\n\ global tcl_library tcl_version tcl_patchLevel errorInfo\n\ - global tcl_pkgPath\n\ + global tcl_pkgPath env\n\ rename tclInit {}\n\ set errors {}\n\ set dirs {}\n\ @@ -63,3 +67,37 @@ static char initScript[] = "if {[info proc tclInit]==\"\"} {\n\ }\n\ tclInit"; +/* + * A pointer to a string that holds an initialization script that if non-NULL + * is evaluated in Tcl_Init() prior to the the built-in initialization script + * above. This variable can be modified by the procedure below. + */ + +static char * tclPreInitScript = NULL; + + +/* + *---------------------------------------------------------------------- + * + * TclSetPreInitScript -- + * + * This routine is used to change the value of the internal + * variable, tclPreInitScript. + * + * Results: + * Returns the current value of tclPreInitScript. + * + * Side effects: + * Changes the way Tcl_Init() routine behaves. + * + *---------------------------------------------------------------------- + */ + +char * +TclSetPreInitScript (string) + char *string; /* Pointer to a script. */ +{ + char *prevString = tclPreInitScript; + tclPreInitScript = string; + return(prevString); +} -- cgit v0.12