-ltclx -ltcl #include "tclExtend.h" extern char *tclAppName; extern char *tclAppLongname; extern char *tclAppVersion; extern int tclAppPatchlevel; int Tcl_AppInit (Tcl_Interp *interp); int TclX_Init (Tcl_Interp *interp); int TclXCmd_Init (Tcl_Interp *interp); int TclXLib_Init (Tcl_Interp *interp); void TclX_Main (int argc, char **argv, Tcl_AppInitProc *appInitProc); int TkX_Init (Tcl_Interp *interp); void TkX_Main (int argc, char **argv, Tcl_AppInitProc *appInitProc);
This function is used to initialize an TclX based application. It is intended to the the only file that is modified for most applications. There are two versions of this function, one for applications built on just TclX and the other for applications built on TclX and Tk.
The TclX version of this function is found in tclXAppInit.c and the Tk version is found in tkXAppInit.c. It should be modified according to the instructions in these files to initialize a TclX based application.
A custom application is then linked in a manner similar to:
cc tclXAppInit.o mystuff.a libtclx.a libtcl.a ${SYSLIBS} -o myapp
or
cc tkXAppInit.o mystuff.a libtkx.a libtk.a libtclx.a libtcl.a \ ${SYSLIBS} -o myapp
Initializes Extended Tcl, adding the extended command set to the interpreter. This is called from Tcl_AppInit. Normally, this function is used in an application in place of the Tcl_Init function. If used in this way, the UCB Tcl run time environment is not required and startup will be faster. This function may also be called after Tcl_Init has been called. In this case, the Tcl library mechanism defined in init.tcl will be replaced with the TclX mechanism.
Parameters
Returns:
Add the TclX command set to the interpreter, with the exception of the TclX library management commands. This is normally called by TclX_Init and should only be used if you don't want the TclX library handling.
Parameters
Returns:
Add the TclX library management commands to the interpreter. This is normally called by TclX_Init. It also sets the Tcl variable "tclx_library" to TclX library directory.
Parameters
Returns:
This function parses the command line according to the TclX shell specification (Unix shell compatible). It creates an interpreter and calls the specified function appInitProc to initialize any application specific commands. It then either evaluates the command of script specified on the command line or enters an interactive command loop. This procedure never returns, it exits the process when it's done. Using the TclX shell also gives you SIGINT handling in interactive shells.
Initializes Extended Tcl Tk environment. This is called from Tcl_AppInit. Normally, this function is used in an application in place of the Tk_Init function. If used in this way, the UCB Tk run time environment is not required and startup will be faster. This function may also be called after Tk_Init has been called. In this case, the TclX Tk runtime environment will not be user or required.
Parameters
Returns:
This function parses the command line according to the wish shell specification. It creates an interpreter and calls the specified function appInitProc to initialize any application specific commands. It then either evaluates the command of script specified on the command line or enters an interactive command loop. This procedure never returns, it exits the process when it's done. Using the TclX wish shell gives you SIGINT handling in interactive shells, otherwise it is identical to standard wish.
There are two aspects to integrating TclX with other applications. Does the application use the Tcl/Tk standard runtime or rely only on the TclX runtime and are the Tcl and Tk shells based on the standard Tcl/Tk shells or the TclX shells. The tclAppInit.c is the only file that will normally need to be modified.
The normal approach to add TclX to an application is to replace the calls to Tcl_Init with TclX_Init and Tk_Init with TkX_Init. TclX has a functional superset of the Tcl and Tk runtimes. The TclX, used alone, does not require the standard runtime environments to be installed on the system. It supports faster auto loading of the runtime routines and has support for multiple version of TclX being installed (use master directory install option for most flexability). However, some people are more comfortable adding Tcl in the same way as other extensions. That is, calling TclX_Init after Tcl_Init and TkX_Init after Tk_Init. Currently, calling TkX_Init is uncessary if the Tk_Init has been called.
If only the TclX command set, but not the procedure library and runtime is desired, then TclXCmd_Init is called after Tcl_Init.
To get the TclX shell in a Tcl only application, with the tcl command functionallity, call TclX_Main from the main function instead of Tcl_Main. This shell has arguments conforming to other Unix shells and SIGINT signal handling when interactive,.
To get the Tclx shell in a Tk application, with the wishx command functionallity, call TkX_Main from the main function instead of Tk_Main. This shell has SIGINT signal handling when interactive,