Skip site navigation (1)Skip section navigation (2)

FreeBSD Manual Pages

  
 
  

home | help
Tcl_StaticPackage(3)	     Tcl Library Procedures	    Tcl_StaticPackage(3)

________________________________________________________________________________

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

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

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

     Tcl_PackageInitProc *safeInitProc (in)	     Procedure to call to incor-
						     porate  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 it-
     self should not need to know whether the package is dynamically  or  stati-
     cally 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 initialization procedure to be
     invoked.

KEYWORDS
     initialization procedure, package, static linking

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

Tcl				       7.5		    Tcl_StaticPackage(3)

Want to link to this manual page? Use this URL:
<https://man.freebsd.org/cgi/man.cgi?query=Tcl_StaticPackage.tcl86&sektion=3&manpath=FreeBSD+Ports+15.1.quarterly>

home | help