Linux and UNIX Man Pages

Linux & Unix Commands - Search Man Pages

loadtk(3tk) [debian man page]

Safe Tk(3tk)						       Tk Built-In Commands						      Safe Tk(3tk)

__________________________________________________________________________________________________________________________________________________

NAME
loadTk - Load Tk into a safe interpreter. SYNOPSIS
::safe::loadTk slave ?-use windowId? ?-display displayName? _________________________________________________________________ DESCRIPTION
Safe Tk is based on Safe Tcl, which provides a mechanism that allows restricted and mediated access to auto-loading and packages for safe interpreters. Safe Tk adds the ability to configure the interpreter for safe Tk operations and load Tk into safe interpreters. The ::safe::loadTk command initializes the required data structures in the named safe interpreter and then loads Tk into it. The inter- preter must have been created with ::safe::interpCreate or have been initialized with ::safe::interpInit. The command returns the name of the safe interpreter. If -use is specified, the window identified by the specified system dependent identifier windowId is used to contain the "." window of the safe interpreter; it can be any valid id, eventually referencing a window belonging to another application. As a convenience, if the window you plan to use is a Tk Window of the application you can use the window name (e.g. .x.y) instead of its window Id ([winfo id .x.y]). When -use is not specified, a new toplevel window is created for the "." window of the safe interpreter. On X11 if you want the embedded window to use another display than the default one, specify it with -display. See the SECURITY ISSUES section below for implementation details. SECURITY ISSUES
Please read the safe manual page for Tcl to learn about the basic security considerations for Safe Tcl. ::safe::loadTk adds the value of tk_library taken from the master interpreter to the virtual access path of the safe interpreter so that auto-loading will work in the safe interpreter. Tk initialization is now safe with respect to not trusting the slave's state for startup. ::safe::loadTk registers the slave's name so when the Tk initialization (Tk_SafeInit) is called and in turn calls the master's ::safe::InitTk it will return the desired argv equivalent (-use windowId, correct -display, etc.) When -use is not used, the new toplevel created is specially decorated so the user is always aware that the user interface presented comes from a potentially unsafe code and can easily delete the corresponding interpreter. On X11, conflicting -use and -display are likely to generate a fatal X error. SEE ALSO
safe(3tcl), interp(3tcl), library(3tcl), load(3tcl), package(3tcl), source(3tcl), unknown(3tcl) KEYWORDS
alias, auto-loading, auto_mkindex, load, master interpreter, safe interpreter, slave interpreter, source Tk 8.0 Safe Tk(3tk)

Check Out this Related Man Page

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 initialization procedure). NULL means the package has not yet been incorporated into any interpreter. const char *pkgName (in) Name of the package; 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 exe- cute 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 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 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 Tcl 7.5 Tcl_StaticPackage(3tcl)
Man Page