Tcl_StaticPackage(3)        Tcl Library Procedures        Tcl_StaticPackage(3)


       Tcl_StaticPackage  - make a statically linked package available via the
       load command

       #include <tcl.h>

       Tcl_StaticPackage(interp, pkgName, initProc, safeInitProc)

       Tcl_Interp            *interp         (in)      If not NULL, points  to
                                                       an   interpreter   into
                                                       which the  package  has
                                                       already   been   loaded
                                                       (i.e., the  caller  has
                                                       already   invoked   the
                                                       appropriate initializa-
                                                       tion  procedure).  NULL
                                                       means    the    package
                                                       hasn't  yet been incor-
                                                       porated into any inter-

       char                  *pkgName        (in)      Name  of  the  package;
                                                       should be properly cap-
                                                       italized  (first letter
                                                       upper-case, all  others

       Tcl_PackageInitProc   *initProc       (in)      Procedure  to invoke to
                                                       incorporate this  pack-
                                                       age   into   a  trusted

       Tcl_PackageInitProc   *safeInitProc   (in)      Procedure  to  call  to
                                                       incorporate  this pack-
                                                       age into a safe  inter-
                                                       preter  (one  that will
                                                       execute       untrusted
                                                       scripts).    NULL means
                                                       the  package  can't  be
                                                       used   in  safe  inter-

       This procedure may be invoked to  announce  that  a  package  has  been
       linked  statically  with a Tcl application and, optionally, that it has
       already been loaded into an interpreter.   Once  Tcl_StaticPackage  has
       been  invoked  for  a package, it may be loaded into interpreters using
       the load command.  Tcl_StaticPackage is normally invoked  only  by  the
       Tcl_AppInit  procedure  for  the application, not by packages for them-
       selves (Tcl_StaticPackage should only be invoked for statically  loaded
       packages,  and  code  in  the  package  itself  should not need to know
       whether the package is dynamically or statically loaded).

       When the load command is used later to load the package into an  inter-
       preter,  one of initProc and safeInitProc will be invoked, depending on
       whether  the  target  interpreter  is  safe  or  not.    initProc   and
       safeInitProc must both match the following prototype:
              typedef int Tcl_PackageInitProc(Tcl_Interp *interp);
       The  interp argument identifies the interpreter in which the package is
       to be loaded.  The  initialization  procedure  must  return  TCL_OK  or
       TCL_ERROR  to indicate whether or not it completed successfully; in the
       event of an error it should set the interpreter's result to point to an
       error  message.   The result or error from the initialization procedure
       will be returned as the result of the load command that caused the ini-
       tialization procedure to be invoked.

       initialization procedure, package, static linking

Tcl                                   7.5                 Tcl_StaticPackage(3)