diff options
author | dgp <dgp@users.sourceforge.net> | 2002-01-05 22:55:51 (GMT) |
---|---|---|
committer | dgp <dgp@users.sourceforge.net> | 2002-01-05 22:55:51 (GMT) |
commit | 33ac8d206a0d1b8f7463f7b9780e168dd06898b9 (patch) | |
tree | 079d4ac0f5133b723b4406e3605a8ba6b18c5aab /generic/tclIntDecls.h | |
parent | 3d702184fba3a33fbbe7ea89cc9870549cf93471 (diff) | |
download | tcl-33ac8d206a0d1b8f7463f7b9780e168dd06898b9.zip tcl-33ac8d206a0d1b8f7463f7b9780e168dd06898b9.tar.gz tcl-33ac8d206a0d1b8f7463f7b9780e168dd06898b9.tar.bz2 |
* doc/Tcl_Main.3:
* generic/tclMain.c: Substantial rewrite and expanded documentation
of Tcl_Main to correct a number of bugs and flaws:
* Interactive Tcl_Main can now enter a main loop, exit
that loop and continue interactive operations. The loop
may even exit in the midst of interactive command typing
without loss of the partial command. [Bugs 486453, 474131]
* Tcl_Main now gracefully handles deletion of its master
interpreter.
* Interactive Tcl_Main can now operate with non-blocking stdin
* Interactive Tcl_Main can now detect EOF on stdin even in
mid-command. [Bug 491341]
* Added VFS-aware internal routines for managing the
startup script selection.
* Tcl variable 'tcl_interactive' is now linked to C variable
'tty' so that one can disable/enable interactive prompts
at the script level when there is no startup script. This
is meant for use by the test suite.
* Consistent use of the Tcl libraries standard channels as
returned by Tcl_GetStdChannel(); as opposed to the channels
named 'stdin', 'stdout', and 'stderr' in the master interp,
which can be different or unavailable.
* Tcl_Main now calls Tcl_Exit() if evaluation of [exit] in the
master interpreter returns, assuring Tcl_Main does not return. * Documented Tcl_Main's absence from public stub table
* Documented that Tcl_Main does not return.
* Documented Tcl variables set by Tcl_Main.
* All prompts are done from a single procedure, Prompt.
* Use of Tcl_Obj-enabled interfaces everywhere.
* generic/tclInt.decls (TclGetStartupScriptPath,
TclSetStartupScriptPath): New internal VFS-aware routines for
managing the startup script of Tcl_Main.
* generic/tclIntDecls.h:
* generic/tclStubInit.c: make genstubs
* generic/tclTest.c (TestsetmainloopCmd,TestexitmainloopCmd,
Tcltest_Init,TestinterpdeleteCmd):
* tests/main.test (new): Added new file to test suite that
thoroughly tests generic/tclMain.c; added some new test commands
for testing Tcl_SetMainLoop().
Diffstat (limited to 'generic/tclIntDecls.h')
-rw-r--r-- | generic/tclIntDecls.h | 25 |
1 files changed, 20 insertions, 5 deletions
diff --git a/generic/tclIntDecls.h b/generic/tclIntDecls.h index 5e36ba9..9e4574e 100644 --- a/generic/tclIntDecls.h +++ b/generic/tclIntDecls.h @@ -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: tclIntDecls.h,v 1.31 2001/11/14 23:17:03 hobbs Exp $ + * RCS: @(#) $Id: tclIntDecls.h,v 1.32 2002/01/05 22:55:51 dgp Exp $ */ #ifndef _TCLINTDECLS @@ -477,9 +477,9 @@ EXTERN Var * TclVarTraceExists _ANSI_ARGS_((Tcl_Interp * interp, char * varName)); /* 158 */ EXTERN void TclSetStartupScriptFileName _ANSI_ARGS_(( - char * filename)); + CONST char * filename)); /* 159 */ -EXTERN char * TclGetStartupScriptFileName _ANSI_ARGS_((void)); +EXTERN CONST char * TclGetStartupScriptFileName _ANSI_ARGS_((void)); /* Slot 160 is reserved */ /* 161 */ EXTERN int TclChannelTransform _ANSI_ARGS_((Tcl_Interp * interp, @@ -497,6 +497,11 @@ EXTERN void TclpSetInitialEncodings _ANSI_ARGS_((void)); EXTERN int TclListObjSetElement _ANSI_ARGS_((Tcl_Interp* interp, Tcl_Obj* listPtr, int index, Tcl_Obj* valuePtr)); +/* 167 */ +EXTERN void TclSetStartupScriptPath _ANSI_ARGS_(( + Tcl_Obj * pathPtr)); +/* 168 */ +EXTERN Tcl_Obj * TclGetStartupScriptPath _ANSI_ARGS_((void)); typedef struct TclIntStubs { int magic; @@ -692,8 +697,8 @@ typedef struct TclIntStubs { void *reserved155; void (*tclRegError) _ANSI_ARGS_((Tcl_Interp * interp, char * msg, int status)); /* 156 */ Var * (*tclVarTraceExists) _ANSI_ARGS_((Tcl_Interp * interp, char * varName)); /* 157 */ - void (*tclSetStartupScriptFileName) _ANSI_ARGS_((char * filename)); /* 158 */ - char * (*tclGetStartupScriptFileName) _ANSI_ARGS_((void)); /* 159 */ + void (*tclSetStartupScriptFileName) _ANSI_ARGS_((CONST char * filename)); /* 158 */ + CONST char * (*tclGetStartupScriptFileName) _ANSI_ARGS_((void)); /* 159 */ void *reserved160; int (*tclChannelTransform) _ANSI_ARGS_((Tcl_Interp * interp, Tcl_Channel chan, Tcl_Obj * cmdObjPtr)); /* 161 */ void (*tclChannelEventScriptInvoker) _ANSI_ARGS_((ClientData clientData, int flags)); /* 162 */ @@ -701,6 +706,8 @@ typedef struct TclIntStubs { void (*tclExpandCodeArray) _ANSI_ARGS_((void * envPtr)); /* 164 */ void (*tclpSetInitialEncodings) _ANSI_ARGS_((void)); /* 165 */ int (*tclListObjSetElement) _ANSI_ARGS_((Tcl_Interp* interp, Tcl_Obj* listPtr, int index, Tcl_Obj* valuePtr)); /* 166 */ + void (*tclSetStartupScriptPath) _ANSI_ARGS_((Tcl_Obj * pathPtr)); /* 167 */ + Tcl_Obj * (*tclGetStartupScriptPath) _ANSI_ARGS_((void)); /* 168 */ } TclIntStubs; #ifdef __cplusplus @@ -1309,6 +1316,14 @@ extern TclIntStubs *tclIntStubsPtr; #define TclListObjSetElement \ (tclIntStubsPtr->tclListObjSetElement) /* 166 */ #endif +#ifndef TclSetStartupScriptPath +#define TclSetStartupScriptPath \ + (tclIntStubsPtr->tclSetStartupScriptPath) /* 167 */ +#endif +#ifndef TclGetStartupScriptPath +#define TclGetStartupScriptPath \ + (tclIntStubsPtr->tclGetStartupScriptPath) /* 168 */ +#endif #endif /* defined(USE_TCL_STUBS) && !defined(USE_TCL_STUB_PROCS) */ |