Tk_Init, Tk_SafeInit — add Tk to an interpreter and make a new Tk application.
- Tk_Init, Tk_SafeInit — add Tk to an interpreter and make a new Tk application.
- #include <tk.h>
Tk_Init is the package initialization procedure for Tk.
It is normally invoked by the Tcl_AppInit procedure
for an application or by the load command.
Tk_Init adds all of Tk's commands to interp
and creates a new Tk application, including its main window.
If the initialization is successful Tk_Init returns
TCL_OK; if there is an error it returns TCL_ERROR.
Tk_Init also leaves a result or error message
in interpreter interp's result.
- Tcl_Interp *interp (in)
Interpreter in which to load Tk. Tk should not already be loaded
in this interpreter.
If there is a variable argv in interp, Tk_Init
treats the contents of this variable as a list of options for the
new Tk application.
The options may have any of the forms documented for the
wish application (in fact, wish uses Tk_Init to process
its command-line arguments).
Tk_SafeInit is identical to Tk_Init except that it removes
all Tk commands that are considered unsafe. Those commands and the
reasons for their exclusion are:
safe, application, initialization, load, main window
Continuous ringing of the bell is a nuisance.
A malicious script could replace the contents of the clipboard with
“rm -r *”
and lead to surprises when the contents of the clipboard are pasted.
Grab can be used to block the user from using any other applications.
Menus can be used to cover the entire screen and to steal input from
Send can be used to cause unsafe interpreters to execute commands.
The tk command recreates the send command, which is unsafe.
Tkwait can block the containing process forever
Toplevels can be used to cover the entire screen and to steal input
from the user.
If toplevels are ever allowed, wm can be used to remove decorations,
move windows around, etc.
Copyright © 1995-1996 Sun Microsystems, Inc.