TclXInit

Section: Misc. Reference Manual Pages (TCL)
Updated:
Index Return to Main Contents
 

NAME

TclX_Init, TclXCmd_Init, TclXLib_Init, TclX_Main - Extended Tcl initialization.  

SYNOPSIS

-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);

 

DESCRIPTION

These functions are used to initialize Extended Tcl and applications based on Extended Tcl. This manual page also discusses various issues and approaches of integrating TclX into other applications.  

tclAppName

The application name to be returned by the infox command. This should be a short mnemonic. This value maybe altered from the default by the application.  

tclAppLongname

The application long name to be returned by the infox command. This should be a natural language string. This value maybe altered from the default by the application.  

tclAppVersion

The application version string to be returned by the infox command. procedures are called. This value maybe altered from the default by the application.  

tclAppPatchlevel

The application patchlevel to be returned by the infox command. procedures are called. This value maybe altered from the default by the application.  

tclX_library

The path to the TclX runtime library. This directory contains the initialization file evaluated by TclX_Init and is also appended to auto_path. This variable is initialized to the compile-time specified install location. The value maybe modified before TclX_Init or TclXLib_Init are called to use another library in a particular application. If its set to NULL, no library will be used unless override by tclX_libraryEnv. Setting tclX_libraryEnv and this variable to NULL causes no library directory or initialization file to be used.  

tclX_libraryEnv

Environment variable used to override the path stored in tclX_library. The value maybe modified before TclX_Init or TclXLib_Init are called to use another environment variable for a particular application. If its set to NULL, no environment variable will allow to override. Defaults to "TCL_LIBRARY".  

tclX_initFile

The initialization file for TclX_Init to source. By default the file "TclInit.tcl" in the TclX library directory is sourced. If set to an absolute path, it is not assumed to be in the TclX library directory and is independent of a library path being specified. If set to NULL, not initialization file is evaluated.  

Tcl_AppInit

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
 

TclX_Init

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

o interp - A pointer to the interpreter to add the commands to.

Returns:

TCL_OK if all is ok, TCL_ERROR if an error occurred.
 

TclXCmd_Init

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

o interp - A pointer to the interpreter to add the commands to.

Returns:

TCL_OK if all is ok, TCL_ERROR if an error occurred.
 

TclXLib_Init

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

o interp - A pointer to the interpreter to add the commands to.

Returns:

TCL_OK if all is ok, TCL_ERROR if an error occurred.
 

TclX_Main

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.  

TkX_Init

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

o interp - A pointer to the interpreter to add the commands to.

Returns:

TCL_OK if all is ok, TCL_ERROR if an error occurred.
 

TclX_Main

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.  

INTEGRATING TCLX WITH OTHER EXTENSIONS AND APPLICATIONS

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,


 

Index

NAME
SYNOPSIS
DESCRIPTION
tclAppName
tclAppLongname
tclAppVersion
tclAppPatchlevel
tclX_library
tclX_libraryEnv
tclX_initFile
Tcl_AppInit
TclX_Init
TclXCmd_Init
TclXLib_Init
TclX_Main
TkX_Init
TclX_Main
INTEGRATING TCLX WITH OTHER EXTENSIONS AND APPLICATIONS

This document was created by man2html, using the manual pages.
Time: 14:59:13 GMT, November 05, 2024