TclX_Init

TclXInit(TCL)                                                    TclXInit(TCL)



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,



Tcl                                                              TclXInit(TCL)