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

________________________________________________________________________________

NAME
     Tcl_StaticLibrary,  Tcl_StaticPackage  -  make  a statically linked library
     available via the 'load' command

SYNOPSIS
     #include <tcl.h>

     Tcl_StaticLibrary(interp, prefix, initProc, safeInitProc)

     Tcl_StaticPackage(interp, prefix, initProc, safeInitProc)

ARGUMENTS
     Tcl_Interp *interp (in)			     If not NULL, points  to  an
						     interpreter  into which the
						     library  has  already  been
						     incorporated   (i.e.,   the
						     caller has already  invoked
						     the appropriate initializa-
						     tion    procedure).    NULL
						     means the library	has  not
						     yet  been incorporated into
						     any interpreter.

     const char *prefix (in)			     Prefix for library initial-
						     ization function.	Normally
						     in  titlecase (first letter
						     upper-case,   all	  others
						     lower-case), but this is no
						     longer required.

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

     Tcl_LibraryInitProc *safeInitProc (in)	     Procedure to call to incor-
						     porate this library into  a
						     safe  interpreter (one that
						     will   execute    untrusted
						     scripts).	 NULL  means the
						     library cannot be	used  in
						     safe interpreters.
________________________________________________________________________________

DESCRIPTION
     This  procedure  may  be invoked to announce that a library has been linked
     statically with a Tcl application and, optionally, that it has already been
     incorporated into an interpreter.	Once Tcl_StaticLibrary has been  invoked
     for a library, it may be incorporated into interpreters using the load com-
     mand.  Tcl_StaticLibrary is normally invoked only by the Tcl_AppInit proce-
     dure  for	the  application, not by libraries for themselves (Tcl_StaticLi-
     brary should only be invoked for statically linked libraries, and	code  in
     the  library  itself should not need to know whether the library is dynami-
     cally loaded or statically linked).

     When the load command is used later to incorporate the library into an  in-
     terpreter,  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_LibraryInitProc(
		    Tcl_Interp *interp);

     The  interp  argument identifies the interpreter in which the library is to
     be incorporated.	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 er-
     ror 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.

     Tcl_StaticLibrary	was  named Tcl_StaticPackage in Tcl 8.6 and earlier, but
     the old name is deprecated now.

     Tcl_StaticLibrary can not be used in stub-enabled extensions.

KEYWORDS
     initialization procedure, package, static linking

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

Tcl				       7.5		    Tcl_StaticLibrary(3)

home | help