diff options
| author | dgp@users.sourceforge.net <dgp> | 2008-10-16 17:04:58 (GMT) |
|---|---|---|
| committer | dgp@users.sourceforge.net <dgp> | 2008-10-16 17:04:58 (GMT) |
| commit | e2322412051ec7bb00adaec553d5c461ea4b9666 (patch) | |
| tree | 738c51b51c56a3b596d1150e84b72b3ecd695d04 | |
| parent | 9375a5e624eab98c48df9b52c9bddc619246e3ac (diff) | |
| download | tcl-e2322412051ec7bb00adaec553d5c461ea4b9666.zip tcl-e2322412051ec7bb00adaec553d5c461ea4b9666.tar.gz tcl-e2322412051ec7bb00adaec553d5c461ea4b9666.tar.bz2 | |
* library/init.tcl: Revised [unknown] so that it carefully
preserves the state of the ::errorInfo and ::errorCode variables
at the start of auto-loading and restores that state before the
autoloaded command is evaluated. [Bug 2140628]
| -rw-r--r-- | library/init.tcl | 7 |
1 files changed, 5 insertions, 2 deletions
diff --git a/library/init.tcl b/library/init.tcl index 4fae191..084ddbc 100644 --- a/library/init.tcl +++ b/library/init.tcl @@ -3,7 +3,7 @@ # Default system startup file for Tcl-based applications. Defines # "unknown" procedure and auto-load facilities. # -# RCS: @(#) $Id: init.tcl,v 1.114 2008/10/16 16:08:09 dgp Exp $ +# RCS: @(#) $Id: init.tcl,v 1.115 2008/10/16 17:04:58 dgp Exp $ # # Copyright (c) 1991-1993 The Regents of the University of California. # Copyright (c) 1994-1996 Sun Microsystems, Inc. @@ -262,12 +262,15 @@ proc unknown args { unset UnknownPending } if {$msg} { - unset -nocomplain ::errorCode ::errorInfo if {[info exists savedErrorCode]} { set ::errorCode $savedErrorCode + } else { + unset -nocomplain ::errorCode } if {[info exists savedErrorInfo]} { set ::errorInfo $savedErrorInfo + } else { + unset -nocomplain ::errorInfo } set code [catch {uplevel 1 $args} msg opts] if {$code == 1} { |
