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,