summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--doc/catch.n45
-rw-r--r--doc/info.n12
-rw-r--r--generic/tclBasic.c8
-rw-r--r--generic/tclCmdIL.c57
-rw-r--r--generic/tclInt.h4
-rw-r--r--generic/tclNamesp.c36
-rw-r--r--generic/tclResult.c9
-rw-r--r--tests/cmdMZ.test28
-rw-r--r--tests/error.test24
-rw-r--r--tests/execute.test6
-rw-r--r--tests/info.test10
-rw-r--r--tests/init.test4
12 files changed, 50 insertions, 193 deletions
diff --git a/doc/catch.n b/doc/catch.n
index f06220b..1c617b3 100644
--- a/doc/catch.n
+++ b/doc/catch.n
@@ -6,7 +6,7 @@
'\" See the file "license.terms" for information on usage and redistribution
'\" of this file, and for a DISCLAIMER OF ALL WARRANTIES.
'\"
-'\" RCS: @(#) $Id: catch.n,v 1.21 2009/11/16 17:38:08 ferrieux Exp $
+'\" RCS: @(#) $Id: catch.n,v 1.22 2009/11/16 18:00:11 dgp Exp $
'\"
.so man.macros
.TH catch n "8.5" Tcl "Tcl Built-In Commands"
@@ -54,33 +54,22 @@ Only when the return code is \fBTCL_RETURN\fR will the values of
the \fB\-level\fR and \fB\-code\fR entries be something else, as
further described in the documentation for the \fBreturn\fR command.
.PP
-When the return code from evaluation of \fIscript\fR is
-\fBTCL_ERROR\fR, four additional entries are defined in the dictionary
-of return options stored in \fIoptionsVarName\fR: \fB\-errorinfo\fR,
-\fB\-errorcode\fR, \fB\-errorline\fR, and \fB\-errorstack\fR. The
-value of the \fB\-errorinfo\fR entry is a formatted stack trace
-containing more information about the context in which the error
-happened. The formatted stack trace is meant to be read by a person.
-The value of the \fB\-errorcode\fR entry is additional information
-about the error stored as a list. The \fB\-errorcode\fR value is
-meant to be further processed by programs, and may not be particularly
-readable by people. The value of the \fB\-errorline\fR entry is an
-integer indicating which line of \fIscript\fR was being evaluated when
-the error occurred. The value of the \fB\-errorstack\fR entry is a
-list of lists made of the function names and arguments at each level
-from the call stack when the error occurred. It differs from
--errorinfo in that (1) it is a true list of lists, for easy
-programmatic access without parsing, (2) it contains the true
-(substituted) values passed to the functions, instead of the static
-text of the calling sites, and (3) it is coarser-grained, with only
-one element per stack frame (like procs; no separate elements for
-[foreach] constructs for example).
-
-The values of the \fB\-errorinfo\fR and \fB\-errorcode\fR entries of
-the most recent error are also available as values of the global
-variables \fB::errorInfo\fR and \fB::errorCode\fR respectively. The
-value of the \fB\-errorstack\fR entry surfaces as \fBinfo
-errorstack\fR.
+When the return code from evaluation of \fIscript\fR is \fBTCL_ERROR\fR,
+three additional entries are defined in the dictionary of return options
+stored in \fIoptionsVarName\fR: \fB\-errorinfo\fR, \fB\-errorcode\fR,
+and \fB\-errorline\fR. The value of the \fB\-errorinfo\fR entry
+is a formatted stack trace containing more information about
+the context in which the error happened. The formatted stack
+trace is meant to be read by a person. The value of
+the \fB\-errorcode\fR entry is additional information about the
+error stored as a list. The \fB\-errorcode\fR value is meant to
+be further processed by programs, and may not be particularly
+readable by people. The value of the \fB\-errorline\fR entry
+is an integer indicating which line of \fIscript\fR was being
+evaluated when the error occurred. The values of the \fB\-errorinfo\fR
+and \fB\-errorcode\fR entries of the most recent error are also
+available as values of the global variables \fB::errorInfo\fR
+and \fB::errorCode\fR respectively.
.PP
Tcl packages may provide commands that set other entries in the
dictionary of return options, and the \fBreturn\fR command may be
diff --git a/doc/info.n b/doc/info.n
index 9fd0fde..7a14ea0 100644
--- a/doc/info.n
+++ b/doc/info.n
@@ -8,7 +8,7 @@
'\" See the file "license.terms" for information on usage and redistribution
'\" of this file, and for a DISCLAIMER OF ALL WARRANTIES.
'\"
-'\" RCS: @(#) $Id: info.n,v 1.34 2009/11/16 17:38:08 ferrieux Exp $
+'\" RCS: @(#) $Id: info.n,v 1.35 2009/11/16 18:00:11 dgp Exp $
'\"
.so man.macros
.TH info n 8.4 Tcl "Tcl Built-In Commands"
@@ -94,16 +94,6 @@ does not have a default value then the command returns \fB0\fR.
Otherwise it returns \fB1\fR and places the default value of \fIarg\fR
into variable \fIvarname\fR.
.TP
-\fBinfo errorstack \fR?\fIinterp\fR?
-.
-Returns a list of lists made of the function names and arguments at
-each level from the call stack of the last error in the given
-\fIinterp\fR, or in the current one if not specified. This
-information is also present in the -errorstack entry of the options
-dictionary returned by 3-arg \fBcatch\fR; \fBinfo errorstack\fR is a
-convenient way of retrieving it for uncaught errors at toplevel in an
-interactive tclsh.
-.TP
\fBinfo exists \fIvarName\fR
.
Returns \fB1\fR if the variable named \fIvarName\fR exists in the
diff --git a/generic/tclBasic.c b/generic/tclBasic.c
index c8ae5ae..cd7bd25 100644
--- a/generic/tclBasic.c
+++ b/generic/tclBasic.c
@@ -16,7 +16,7 @@
* See the file "license.terms" for information on usage and redistribution of
* this file, and for a DISCLAIMER OF ALL WARRANTIES.
*
- * RCS: @(#) $Id: tclBasic.c,v 1.408 2009/11/16 17:38:08 ferrieux Exp $
+ * RCS: @(#) $Id: tclBasic.c,v 1.409 2009/11/16 18:00:11 dgp Exp $
*/
#include "tclInt.h"
@@ -530,9 +530,6 @@ Tcl_CreateInterp(void)
iPtr->errorInfo = NULL;
TclNewLiteralStringObj(iPtr->eiVar, "::errorInfo");
Tcl_IncrRefCount(iPtr->eiVar);
- iPtr->errorStack = Tcl_NewListObj(0, NULL);
- Tcl_IncrRefCount(iPtr->errorStack);
- iPtr->resetErrorStack = 1;
iPtr->errorCode = NULL;
TclNewLiteralStringObj(iPtr->ecVar, "::errorCode");
Tcl_IncrRefCount(iPtr->ecVar);
@@ -1473,7 +1470,6 @@ DeleteInterpProc(
Tcl_DecrRefCount(iPtr->errorInfo);
iPtr->errorInfo = NULL;
}
- Tcl_DecrRefCount(iPtr->errorStack);
if (iPtr->returnOpts) {
Tcl_DecrRefCount(iPtr->returnOpts);
}
@@ -8824,7 +8820,5 @@ TclInfoCoroutineCmd(
* mode: c
* c-basic-offset: 4
* fill-column: 78
- * tab-width: 8
- * indent-tabs-mode: nil
* End:
*/
diff --git a/generic/tclCmdIL.c b/generic/tclCmdIL.c
index 9c89ae4..39afc83 100644
--- a/generic/tclCmdIL.c
+++ b/generic/tclCmdIL.c
@@ -16,7 +16,7 @@
* See the file "license.terms" for information on usage and redistribution of
* this file, and for a DISCLAIMER OF ALL WARRANTIES.
*
- * RCS: @(#) $Id: tclCmdIL.c,v 1.172 2009/11/16 17:38:08 ferrieux Exp $
+ * RCS: @(#) $Id: tclCmdIL.c,v 1.173 2009/11/16 18:00:11 dgp Exp $
*/
#include "tclInt.h"
@@ -118,9 +118,6 @@ static int InfoCompleteCmd(ClientData dummy, Tcl_Interp *interp,
int objc, Tcl_Obj *const objv[]);
static int InfoDefaultCmd(ClientData dummy, Tcl_Interp *interp,
int objc, Tcl_Obj *const objv[]);
-/* TIP #348 - New 'info' subcommand 'errorstack' */
-static int InfoErrorStackCmd(ClientData dummy, Tcl_Interp *interp,
- int objc, Tcl_Obj *const objv[]);
/* TIP #280 - New 'info' subcommand 'frame' */
static int InfoFrameCmd(ClientData dummy, Tcl_Interp *interp,
int objc, Tcl_Obj *const objv[]);
@@ -167,7 +164,6 @@ static const EnsembleImplMap defaultInfoMap[] = {
{"complete", InfoCompleteCmd, NULL},
{"coroutine", TclInfoCoroutineCmd, NULL},
{"default", InfoDefaultCmd, NULL},
- {"errorstack", InfoErrorStackCmd, NULL},
{"exists", TclInfoExistsCmd, TclCompileInfoExistsCmd},
{"frame", InfoFrameCmd, NULL},
{"functions", InfoFunctionsCmd, NULL},
@@ -1021,55 +1017,6 @@ InfoDefaultCmd(
/*
*----------------------------------------------------------------------
*
- * InfoErrorStackCmd --
- *
- * Called to implement the "info errorstack" command that returns information
- * about the last error's call stack. Handles the following syntax:
- *
- * info errorstack ?interp?
- *
- * Results:
- * Returns TCL_OK if successful and TCL_ERROR if there is an error.
- *
- * Side effects:
- * Returns a result in the interpreter's result object. If there is an
- * error, the result is an error message.
- *
- *----------------------------------------------------------------------
- */
-
-static int
-InfoErrorStackCmd(
- ClientData dummy, /* Not used. */
- Tcl_Interp *interp, /* Current interpreter. */
- int objc, /* Number of arguments. */
- Tcl_Obj *const objv[]) /* Argument objects. */
-{
- Tcl_Interp *target;
- Interp *iPtr;
-
- if ((objc != 1) && (objc != 2)) {
- Tcl_WrongNumArgs(interp, 1, objv, "?interp?");
- return TCL_ERROR;
- }
-
- target = interp;
- if (objc == 2) {
- target = Tcl_GetSlave(interp, Tcl_GetString(objv[1]));
- if (target == NULL) {
- return TCL_ERROR;
- }
- }
-
- iPtr = (Interp *) target;
- Tcl_SetObjResult(interp, iPtr->errorStack);
-
- return TCL_OK;
-}
-
-/*
- *----------------------------------------------------------------------
- *
* TclInfoExistsCmd --
*
* Called to implement the "info exists" command that determines whether
@@ -4441,7 +4388,5 @@ SelectObjFromSublist(
* mode: c
* c-basic-offset: 4
* fill-column: 78
- * tab-width: 8
- * indent-tabs-mode: nil
* End:
*/
diff --git a/generic/tclInt.h b/generic/tclInt.h
index be536a9..eefe5f6 100644
--- a/generic/tclInt.h
+++ b/generic/tclInt.h
@@ -15,7 +15,7 @@
* See the file "license.terms" for information on usage and redistribution of
* this file, and for a DISCLAIMER OF ALL WARRANTIES.
*
- * RCS: @(#) $Id: tclInt.h,v 1.446 2009/11/16 17:38:08 ferrieux Exp $
+ * RCS: @(#) $Id: tclInt.h,v 1.447 2009/11/16 18:00:11 dgp Exp $
*/
#ifndef _TCLINT
@@ -1895,8 +1895,6 @@ typedef struct Interp {
Tcl_Obj *eiVar; /* cached ref to ::errorInfo variable. */
Tcl_Obj *errorCode; /* errorCode value (now as a Tcl_Obj). */
Tcl_Obj *ecVar; /* cached ref to ::errorInfo variable. */
- Tcl_Obj *errorStack; /* [info errorstack] value (as a Tcl_Obj). */
- int resetErrorStack; /* controls cleaning up of ::errorStack */
int returnLevel; /* [return -level] parameter. */
/*
diff --git a/generic/tclNamesp.c b/generic/tclNamesp.c
index 2b9b508..5d08bcb 100644
--- a/generic/tclNamesp.c
+++ b/generic/tclNamesp.c
@@ -23,7 +23,7 @@
* See the file "license.terms" for information on usage and redistribution of
* this file, and for a DISCLAIMER OF ALL WARRANTIES.
*
- * RCS: @(#) $Id: tclNamesp.c,v 1.194 2009/11/16 17:38:09 ferrieux Exp $
+ * RCS: @(#) $Id: tclNamesp.c,v 1.195 2009/11/16 18:00:11 dgp Exp $
*/
#include "tclInt.h"
@@ -7574,7 +7574,7 @@ Tcl_LogCommandInfo(
{
register const char *p;
Interp *iPtr = (Interp *) interp;
- int overflow, limit = 150, len;
+ int overflow, limit = 150;
Var *varPtr, *arrayPtr;
if (iPtr->flags & ERR_ALREADY_LOGGED) {
@@ -7633,36 +7633,6 @@ Tcl_LogCommandInfo(
TCL_GLOBAL_ONLY);
}
}
-
- /*
- * TIP #348
- */
-
- if (Tcl_IsShared(iPtr->errorStack)) {
- Tcl_Obj *newObj;
-
- newObj = Tcl_DuplicateObj(iPtr->errorStack);
- Tcl_DecrRefCount(iPtr->errorStack);
- Tcl_IncrRefCount(newObj);
- iPtr->errorStack = newObj;
- }
- Tcl_ListObjLength(interp, iPtr->errorStack, &len);
- if (iPtr->resetErrorStack) {
- iPtr->resetErrorStack = 0;
- /* reset while keeping the list intrep as much as possible */
- Tcl_ListObjReplace(interp, iPtr->errorStack, 0, len, 0, NULL);
- len=0;
- }
- if (iPtr->varFramePtr != iPtr->rootFramePtr) {
- Tcl_Obj *listPtr;
- int result;
- listPtr=Tcl_NewListObj(iPtr->varFramePtr->objc,
- iPtr->varFramePtr->objv);
- result = Tcl_ListObjReplace(interp, iPtr->errorStack, len, 0, 1, &listPtr);
- if (result != TCL_OK) {
- Tcl_DecrRefCount(listPtr);
- }
- }
}
/*
@@ -7670,7 +7640,5 @@ Tcl_LogCommandInfo(
* mode: c
* c-basic-offset: 4
* fill-column: 78
- * tab-width: 8
- * indent-tabs-mode: nil
* End:
*/
diff --git a/generic/tclResult.c b/generic/tclResult.c
index 3d6284e..9f2ec92 100644
--- a/generic/tclResult.c
+++ b/generic/tclResult.c
@@ -8,7 +8,7 @@
* See the file "license.terms" for information on usage and redistribution of
* this file, and for a DISCLAIMER OF ALL WARRANTIES.
*
- * RCS: @(#) $Id: tclResult.c,v 1.55 2009/11/16 17:38:09 ferrieux Exp $
+ * RCS: @(#) $Id: tclResult.c,v 1.56 2009/11/16 18:00:11 dgp Exp $
*/
#include "tclInt.h"
@@ -19,7 +19,7 @@
enum returnKeys {
KEY_CODE, KEY_ERRORCODE, KEY_ERRORINFO, KEY_ERRORLINE,
- KEY_LEVEL, KEY_OPTIONS, KEY_ERRORSTACK, KEY_LAST
+ KEY_LEVEL, KEY_OPTIONS, KEY_LAST
};
/*
@@ -922,7 +922,6 @@ Tcl_ResetResult(
Tcl_DecrRefCount(iPtr->errorInfo);
iPtr->errorInfo = NULL;
}
- iPtr->resetErrorStack = 1;
iPtr->returnLevel = 1;
iPtr->returnCode = TCL_OK;
if (iPtr->returnOpts) {
@@ -1159,7 +1158,6 @@ GetKeys(void)
TclNewLiteralStringObj(keys[KEY_ERRORCODE], "-errorcode");
TclNewLiteralStringObj(keys[KEY_ERRORINFO], "-errorinfo");
TclNewLiteralStringObj(keys[KEY_ERRORLINE], "-errorline");
- TclNewLiteralStringObj(keys[KEY_ERRORSTACK],"-errorstack");
TclNewLiteralStringObj(keys[KEY_LEVEL], "-level");
TclNewLiteralStringObj(keys[KEY_OPTIONS], "-options");
@@ -1505,7 +1503,6 @@ Tcl_GetReturnOptions(
Tcl_DictObjPut(NULL, options, keys[KEY_ERRORLINE],
Tcl_NewIntObj(iPtr->errorLine));
}
- Tcl_DictObjPut(NULL, options, keys[KEY_ERRORSTACK], iPtr->errorStack);
return options;
}
@@ -1627,7 +1624,5 @@ Tcl_TransferResult(
* mode: c
* c-basic-offset: 4
* fill-column: 78
- * tab-width: 8
- * indent-tabs-mode: nil
* End:
*/
diff --git a/tests/cmdMZ.test b/tests/cmdMZ.test
index 8ae7a3a..c0f2738 100644
--- a/tests/cmdMZ.test
+++ b/tests/cmdMZ.test
@@ -11,7 +11,7 @@
# See the file "license.terms" for information on usage and redistribution of
# this file, and for a DISCLAIMER OF ALL WARRANTIES.
#
-# RCS: @(#) $Id: cmdMZ.test,v 1.27 2009/11/16 17:38:09 ferrieux Exp $
+# RCS: @(#) $Id: cmdMZ.test,v 1.28 2009/11/16 18:00:11 dgp Exp $
if {[catch {package require tcltest 2.1}]} {
puts stderr "Skipping tests in [info script]. tcltest 2.1 required."
@@ -119,18 +119,18 @@ proc dictSort {d} {
return $result
}
-test cmdMZ-return-2.0 {return option handling} -body {
+test cmdMZ-return-2.0 {return option handling} {
list [catch return -> foo] [dictSort $foo]
-} -match glob -result {2 {-code 0 -errorstack * -level 1}}
-test cmdMZ-return-2.1 {return option handling} -body {
+} {2 {-code 0 -level 1}}
+test cmdMZ-return-2.1 {return option handling} {
list [catch {return -bar soom} -> foo] [dictSort $foo]
-} -match glob -result {2 {-bar soom -code 0 -errorstack * -level 1}}
-test cmdMZ-return-2.2 {return option handling} -body {
+} {2 {-bar soom -code 0 -level 1}}
+test cmdMZ-return-2.2 {return option handling} {
list [catch {return -code return} -> foo] [dictSort $foo]
-} -match glob -result {2 {-code 0 -errorstack * -level 2}}
-test cmdMZ-return-2.3 {return option handling} -body {
+} {2 {-code 0 -level 2}}
+test cmdMZ-return-2.3 {return option handling} {
list [catch {return -code return -level 10} -> foo] [dictSort $foo]
-} -match glob -result {2 {-code 0 -errorstack * -level 11}}
+} {2 {-code 0 -level 11}}
test cmdMZ-return-2.4 {return option handling} -body {
return -level 0 -code error
} -returnCodes error -result {}
@@ -149,14 +149,14 @@ test cmdMZ-return-2.8 {return option handling} -body {
test cmdMZ-return-2.9 {return option handling} -body {
return -level 0 -code 10
} -returnCodes 10 -result {}
-test cmdMZ-return-2.10 {return option handling} -body {
+test cmdMZ-return-2.10 {return option handling} {
list [catch {return -level 0 -code error} -> foo] [dictSort $foo]
-} -match glob -result {1 {-code 1 -errorcode NONE -errorinfo {
+} {1 {-code 1 -errorcode NONE -errorinfo {
while executing
-"return -level 0 -code error"} -errorline 1 -errorstack * -level 0}}
-test cmdMZ-return-2.11 {return option handling} -body {
+"return -level 0 -code error"} -errorline 1 -level 0}}
+test cmdMZ-return-2.11 {return option handling} {
list [catch {return -level 0 -code break} -> foo] [dictSort $foo]
-} -match glob -result {3 {-code 3 -errorstack * -level 0}}
+} {3 {-code 3 -level 0}}
test cmdMZ-return-2.12 {return option handling} -body {
return -level 0 -code error -options {-code ok}
} -returnCodes ok -result {}
diff --git a/tests/error.test b/tests/error.test
index 1b0f0fa..f522008 100644
--- a/tests/error.test
+++ b/tests/error.test
@@ -11,7 +11,7 @@
# See the file "license.terms" for information on usage and redistribution of
# this file, and for a DISCLAIMER OF ALL WARRANTIES.
#
-# RCS: @(#) $Id: error.test,v 1.23 2009/11/16 17:38:09 ferrieux Exp $
+# RCS: @(#) $Id: error.test,v 1.24 2009/11/16 18:00:11 dgp Exp $
if {[lsearch [namespace children] ::tcltest] == -1} {
package require tcltest 2
@@ -153,19 +153,6 @@ test error-4.5 {errorInfo and errorCode variables} {
list [catch {error msg1 msg2 {}} msg] $msg $::errorInfo $::errorCode
} {1 msg1 msg2 {}}
-test error-4.6 {errorstack via info } -body {
- proc f x {g $x$x}
- proc g x {error G:$x}
- catch {f 12}
- info errorstack
-} -match glob -result {{g 1212} {f 12} {namespace eval *}}
-test error-4.7 {errorstack via options dict } -body {
- proc f x {g $x$x}
- proc g x {error G:$x}
- catch {f 12} m d
- dict get $d -errorstack
-} -match glob -result {{g 1212} {f 12} {namespace eval *}}
-
# Errors in error command itself
test error-5.1 {errors in error command} {
@@ -220,15 +207,6 @@ test error-6.9 {catch must reset error state} {
catch foo
list $::errorCode
} {NONE}
-test error-6.10 {catch must reset errorstack} -body {
- proc f x {g $x$x}
- proc g x {error G:$x}
- catch {f 12}
- set e1 [info errorstack]
- catch {f 13}
- set e2 [info errorstack]
- list $e1 $e2
-} -match glob -result {{{g 1212} {f 12} {namespace eval *}} {{g 1313} {f 13} {namespace eval *}}}
test error-7.1 {Bug 1397843} -body {
variable cmds
diff --git a/tests/execute.test b/tests/execute.test
index aa9e943..87f835e 100644
--- a/tests/execute.test
+++ b/tests/execute.test
@@ -14,7 +14,7 @@
# See the file "license.terms" for information on usage and redistribution
# of this file, and for a DISCLAIMER OF ALL WARRANTIES.
#
-# RCS: @(#) $Id: execute.test,v 1.33 2009/11/16 17:38:09 ferrieux Exp $
+# RCS: @(#) $Id: execute.test,v 1.34 2009/11/16 18:00:11 dgp Exp $
if {[lsearch [namespace children] ::tcltest] == -1} {
package require tcltest 2
@@ -956,11 +956,11 @@ test execute-8.5 {Bug 2038069} -setup {
demo
} -cleanup {
rename demo {}
-} -match glob -result {-code 1 -level 0 -errorcode NONE -errorinfo {FOO
+} -result {-code 1 -level 0 -errorcode NONE -errorinfo {FOO
while executing
"error FOO"
invoked from within
-"catch \[list error FOO\] m o"} -errorline 2 -errorstack *}
+"catch [list error FOO] m o"} -errorline 2}
test execute-9.1 {Interp result resetting [Bug 1522803]} {
set c 0
diff --git a/tests/info.test b/tests/info.test
index aa4a29f..2a1998e 100644
--- a/tests/info.test
+++ b/tests/info.test
@@ -13,7 +13,7 @@
# See the file "license.terms" for information on usage and redistribution
# of this file, and for a DISCLAIMER OF ALL WARRANTIES.
#
-# RCS: @(#) $Id: info.test,v 1.72 2009/11/16 17:38:09 ferrieux Exp $
+# RCS: @(#) $Id: info.test,v 1.73 2009/11/16 18:00:11 dgp Exp $
if {{::tcltest} ni [namespace children]} {
package require tcltest 2
@@ -676,16 +676,16 @@ test info-21.1 {miscellaneous error conditions} -returnCodes error -body {
} -result {wrong # args: should be "info subcommand ?arg ...?"}
test info-21.2 {miscellaneous error conditions} -returnCodes error -body {
info gorp
-} -result {unknown or ambiguous subcommand "gorp": must be args, body, class, cmdcount, commands, complete, coroutine, default, errorstack, exists, frame, functions, globals, hostname, level, library, loaded, locals, nameofexecutable, object, patchlevel, procs, script, sharedlibextension, tclversion, or vars}
+} -result {unknown or ambiguous subcommand "gorp": must be args, body, class, cmdcount, commands, complete, coroutine, default, exists, frame, functions, globals, hostname, level, library, loaded, locals, nameofexecutable, object, patchlevel, procs, script, sharedlibextension, tclversion, or vars}
test info-21.3 {miscellaneous error conditions} -returnCodes error -body {
info c
-} -result {unknown or ambiguous subcommand "c": must be args, body, class, cmdcount, commands, complete, coroutine, default, errorstack, exists, frame, functions, globals, hostname, level, library, loaded, locals, nameofexecutable, object, patchlevel, procs, script, sharedlibextension, tclversion, or vars}
+} -result {unknown or ambiguous subcommand "c": must be args, body, class, cmdcount, commands, complete, coroutine, default, exists, frame, functions, globals, hostname, level, library, loaded, locals, nameofexecutable, object, patchlevel, procs, script, sharedlibextension, tclversion, or vars}
test info-21.4 {miscellaneous error conditions} -returnCodes error -body {
info l
-} -result {unknown or ambiguous subcommand "l": must be args, body, class, cmdcount, commands, complete, coroutine, default, errorstack, exists, frame, functions, globals, hostname, level, library, loaded, locals, nameofexecutable, object, patchlevel, procs, script, sharedlibextension, tclversion, or vars}
+} -result {unknown or ambiguous subcommand "l": must be args, body, class, cmdcount, commands, complete, coroutine, default, exists, frame, functions, globals, hostname, level, library, loaded, locals, nameofexecutable, object, patchlevel, procs, script, sharedlibextension, tclversion, or vars}
test info-21.5 {miscellaneous error conditions} -returnCodes error -body {
info s
-} -result {unknown or ambiguous subcommand "s": must be args, body, class, cmdcount, commands, complete, coroutine, default, errorstack, exists, frame, functions, globals, hostname, level, library, loaded, locals, nameofexecutable, object, patchlevel, procs, script, sharedlibextension, tclversion, or vars}
+} -result {unknown or ambiguous subcommand "s": must be args, body, class, cmdcount, commands, complete, coroutine, default, exists, frame, functions, globals, hostname, level, library, loaded, locals, nameofexecutable, object, patchlevel, procs, script, sharedlibextension, tclversion, or vars}
##
# ### ### ### ######### ######### #########
diff --git a/tests/init.test b/tests/init.test
index b5eba4c..0a49472 100644
--- a/tests/init.test
+++ b/tests/init.test
@@ -10,7 +10,7 @@
# See the file "license.terms" for information on usage and redistribution of
# this file, and for a DISCLAIMER OF ALL WARRANTIES.
#
-# RCS: @(#) $Id: init.test,v 1.20 2009/11/16 17:38:09 ferrieux Exp $
+# RCS: @(#) $Id: init.test,v 1.21 2009/11/16 18:00:11 dgp Exp $
if {[lsearch [namespace children] ::tcltest] == -1} {
package require tcltest 2
@@ -181,7 +181,7 @@ test init-5.0 {return options passed through ::unknown} -setup {
list $code $foo $bar $code2 $foo2 $bar2
} -cleanup {
unset ::auto_index(::xxx)
-} -match glob -result {2 xxx {-errorcode NONE -errorstack * -code 1 -level 1} 2 xxx {-code 1 -level 1 -errorcode NONE -errorstack *}}
+} -result {2 xxx {-errorcode NONE -code 1 -level 1} 2 xxx {-code 1 -level 1 -errorcode NONE}}
cleanupTests
} ;# End of [interp eval $testInterp]