Tcl_StaticPackage - make a statically linked package available via the 'load' command
#include <tcl.h> Tcl_StaticPackage(interp, pkgName, initProc, safeInitProc)
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, pkgName, 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 initializa- tion procedure). NULL means the package has not yet been incorpo- rated into any inter- preter. const char *pkgName (in) Name of the package; 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 interpreter. 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 ATTRIBUTES See attributes(7) for descriptions of the following attributes: +---------------+------------------+ |ATTRIBUTE TYPE | ATTRIBUTE VALUE | +---------------+------------------+ |Availability | runtime/tcl-8 | +---------------+------------------+ |Stability | Uncommitted | +---------------+------------------+ SEE ALSO load(n), package(n), Tcl_PkgRequire(3) NOTES Source code for open source software components in Oracle Solaris can be found at https://www.oracle.com/downloads/opensource/solaris-source- code-downloads.html. This software was built from source available at https://github.com/oracle/solaris-userland. The original community source was downloaded from http://prdownloads.sourceforge.net/tcl/tcl- core8.6.7-src.tar.gz. Further information about this software can be found on the open source community website at https://www.tcl.tk/. Tcl 7.5 Tcl_StaticPackage(3tcl)