Provided by: tcl8.6-doc_8.6.14+dfsg-1build1_all bug

NAME

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

SYNOPSIS

       #include <tcl.h>

       Tcl_StaticPackage(interp, prefix, initProc, safeInitProc)

ARGUMENTS

       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   initialization
                                                       procedure).  NULL means the  package  has  not  yet  been
                                                       incorporated into any interpreter.

       const char *prefix (in)                         Prefix  for  library  initialization function;  should be
                                                       properly capitalized (first letter upper-case, all others
                                                       lower-case).

       Tcl_PackageInitProc *initProc (in)              Procedure to invoke to incorporate this  package  into  a
                                                       trusted interpreter.

       Tcl_PackageInitProc *safeInitProc (in)          Procedure to call to incorporate this package into a safe
                                                       interpreter  (one  that  will execute untrusted scripts).
                                                       NULL  means  the  package  cannot   be   used   in   safe
                                                       interpreters.
________________________________________________________________________________________________________________

DESCRIPTION

       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 themselves (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  interpreter,  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 initialization procedure to be invoked.

KEYWORDS

       initialization procedure, package, static linking

SEE ALSO

       load(3tcl), package(3tcl), Tcl_PkgRequire(3tcl)

Tcl                                                    7.5                               Tcl_StaticPackage(3tcl)