dwww Home | Manual pages | Find package

Tcl_StaticPackage(3tcl)     Tcl Library Procedures     Tcl_StaticPackage(3tcl)

______________________________________________________________________________

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 ap-
                                                       propriate   initializa-
                                                       tion  procedure).  NULL
                                                       means the  package  has
                                                       not  yet  been incorpo-
                                                       rated into  any  inter-
                                                       preter.

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

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

       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  cannot be
                                                       used  in  safe   inter-
                                                       preters.
______________________________________________________________________________

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  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 safeInit-
       Proc 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.

KEYWORDS
       initialization procedure, package, static linking

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

Tcl                                   7.5              Tcl_StaticPackage(3tcl)

Generated by dwww version 1.14 on Mon Feb 3 07:47:18 CET 2025.