diff options
-rw-r--r-- | ChangeLog | 6 | ||||
-rw-r--r-- | doc/interp.n | 57 | ||||
-rw-r--r-- | doc/unknown.n | 13 |
3 files changed, 57 insertions, 19 deletions
@@ -1,3 +1,9 @@ +2001-06-27 Jeff Hobbs <jeffh@ActiveState.com> + + * doc/interp.n: + * doc/unknown.n: updated notes about what is in a safe interp. + [Bug #218605] + 2001-06-27 Donal K. Fellows <fellowsd@cs.man.ac.uk> * tests/event.test (event-11.5): Removed hard-coded port number diff --git a/doc/interp.n b/doc/interp.n index 6ed1d58..e2d491c 100644 --- a/doc/interp.n +++ b/doc/interp.n @@ -4,7 +4,7 @@ '\" See the file "license.terms" for information on usage and redistribution '\" of this file, and for a DISCLAIMER OF ALL WARRANTIES. '\" -'\" RCS: @(#) $Id: interp.n,v 1.5 1999/09/02 16:26:11 hobbs Exp $ +'\" RCS: @(#) $Id: interp.n,v 1.6 2001/06/27 21:00:45 hobbs Exp $ '\" .so man.macros .TH interp n 7.6 Tcl "Tcl Built-In Commands" @@ -381,15 +381,15 @@ close concat continue eof error eval expr fblocked fcopy fileevent flush for foreach format gets global -history if incr info -interp join lappend lindex -linsert list llength lrange -lreplace lsearch lsort namespace -package pid proc puts -read regexp regsub rename -return scan seek set -split string subst switch -tell trace unset update +if incr info interp +join lappend lindex linsert +list llength lrange lreplace +lsearch lsort namespace package +pid proc puts read +regexp regsub rename return +scan seek set split +string subst switch tell +time trace unset update uplevel upvar variable vwait while\fR .DE @@ -398,12 +398,43 @@ The following commands are hidden by \fBinterp create\fR when it creates a safe interpreter: .DS .ta 1.2i 2.4i 3.6i -\fBcd exec exit fconfigure -file glob load open -pwd socket source vwait\fR +\fBcd encoding exec exit +fconfigure file glob load +open pwd socket source\fR .DE These commands can be recreated later as Tcl procedures or aliases, or re-exposed by \fBinterp expose\fR. +.PP +The following commands from Tcl's library of support procedures are +not present in a safe interpreter: +.DS +.ta 1.6i 3.2i +\fBauto_exec_ok auto_import auto_load +auto_load_index auto_qualify unknown\fR +.DE +Note in particular that safe interpreters have no default \fBunknown\fR +command, so Tcl's default autoloading facilities are not available. +Autoload access to Tcl's commands that are normally autoloaded: +.DS +.ta 2.1i +\fB +auto_mkindex auto_mkindex_old +auto_reset history +parray pkg_mkIndex +::pkg::create ::safe::interpAddToAccessPath +::safe::interpCreate ::safe::interpConfigure +::safe::interpDelete ::safe::interpFindInAccessPath +::safe::interpInit ::safe::setLogCmd +tcl_endOfWord tcl_findLibrary +tcl_startOfNextWord tcl_startOfPreviousWord +tcl_wordBreakAfter tcl_wordBreakBefore\fR +.DE +can only be provided by explicit definition of an \fBunknown\fR command +in the safe interpreter. This will involve exposing the \fBsource\fR +command. This is most easily accomplished by creating the safe interpreter +with Tcl's \fBSafe\-Tcl\fR mechanism. \fBSafe\-Tcl\fR provides safe +versions of \fBsource\fB, \fBload\fR, and other Tcl commands needed +to support autoloading of commands and the loading of packages. .VE .PP In addition, the \fBenv\fR variable is not present in a safe interpreter, diff --git a/doc/unknown.n b/doc/unknown.n index d95cd33..2ef5b14 100644 --- a/doc/unknown.n +++ b/doc/unknown.n @@ -5,7 +5,7 @@ '\" See the file "license.terms" for information on usage and redistribution '\" of this file, and for a DISCLAIMER OF ALL WARRANTIES. '\" -'\" RCS: @(#) $Id: unknown.n,v 1.3 2000/09/07 14:27:52 poenitz Exp $ +'\" RCS: @(#) $Id: unknown.n,v 1.4 2001/06/27 21:00:45 hobbs Exp $ '\" .so man.macros .TH unknown n "" Tcl "Tcl Built-In Commands" @@ -20,10 +20,11 @@ unknown \- Handle attempts to use non-existent commands .SH DESCRIPTION .PP This command is invoked by the Tcl interpreter whenever a script -tries to invoke a command that doesn't exist. The implementation -of \fBunknown\fR isn't part of the Tcl core; instead, it is a -library procedure defined by default when Tcl starts up. You -can override the default \fBunknown\fR to change its functionality. +tries to invoke a command that doesn't exist. The default implementation +of \fBunknown\fR is a library procedure defined when Tcl initializes an +interpreter. You can override the default \fBunknown\fR to change its +functionality. Note that there is no default implementation of +\fBunknown\fR in a safe interpreter. .PP If the Tcl interpreter encounters a command name for which there is not a defined command, then Tcl checks for the existence of @@ -72,7 +73,7 @@ is the return value from the command that was eventually executed. .SH "SEE ALSO" -info(n), proc(n) +info(n), proc(n), interp(n), library(n) .SH KEYWORDS error, non-existent command |