Attachment "errorstack13.patch" to
ticket [2868499fff]
added by
ferrieux
2010-03-24 22:58:05.
0000: 49 6e 64 65 78 3a 20 64 6f 63 2f 63 61 74 63 68 Index: doc/catch
0010: 2e 6e 0a 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d .n.=============
0020: 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d ================
0030: 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d ================
0040: 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d ================
0050: 3d 3d 3d 3d 3d 3d 0a 52 43 53 20 66 69 6c 65 3a ======.RCS file:
0060: 20 2f 63 76 73 72 6f 6f 74 2f 74 63 6c 2f 74 63 /cvsroot/tcl/tc
0070: 6c 2f 64 6f 63 2f 63 61 74 63 68 2e 6e 2c 76 0a l/doc/catch.n,v.
0080: 72 65 74 72 69 65 76 69 6e 67 20 72 65 76 69 73 retrieving revis
0090: 69 6f 6e 20 31 2e 32 33 0a 64 69 66 66 20 2d 75 ion 1.23.diff -u
00a0: 20 2d 70 20 2d 75 20 2d 70 20 2d 72 31 2e 32 33 -p -u -p -r1.23
00b0: 20 63 61 74 63 68 2e 6e 0a 2d 2d 2d 20 64 6f 63 catch.n.--- doc
00c0: 2f 63 61 74 63 68 2e 6e 09 31 33 20 4a 61 6e 20 /catch.n.13 Jan
00d0: 32 30 31 30 20 31 32 3a 30 38 3a 33 30 20 2d 30 2010 12:08:30 -0
00e0: 30 30 30 09 31 2e 32 33 0a 2b 2b 2b 20 64 6f 63 000.1.23.+++ doc
00f0: 2f 63 61 74 63 68 2e 6e 09 32 34 20 4d 61 72 20 /catch.n.24 Mar
0100: 32 30 31 30 20 31 35 3a 35 35 3a 34 37 20 2d 30 2010 15:55:47 -0
0110: 30 30 30 0a 40 40 20 2d 35 34 2c 32 32 20 2b 35 000.@@ -54,22 +5
0120: 34 2c 33 33 20 40 40 20 4f 6e 6c 79 20 77 68 65 4,33 @@ Only whe
0130: 6e 20 74 68 65 20 72 65 74 75 72 6e 20 63 6f 64 n the return cod
0140: 65 20 69 73 20 5c 66 42 54 43 4c 5f 52 45 54 55 e is \fBTCL_RETU
0150: 0a 20 74 68 65 20 5c 66 42 5c 2d 6c 65 76 65 6c . the \fB\-level
0160: 5c 66 52 20 61 6e 64 20 5c 66 42 5c 2d 63 6f 64 \fR and \fB\-cod
0170: 65 5c 66 52 20 65 6e 74 72 69 65 73 20 62 65 20 e\fR entries be
0180: 73 6f 6d 65 74 68 69 6e 67 20 65 6c 73 65 2c 20 something else,
0190: 61 73 0a 20 66 75 72 74 68 65 72 20 64 65 73 63 as. further desc
01a0: 72 69 62 65 64 20 69 6e 20 74 68 65 20 64 6f 63 ribed in the doc
01b0: 75 6d 65 6e 74 61 74 69 6f 6e 20 66 6f 72 20 74 umentation for t
01c0: 68 65 20 5c 66 42 72 65 74 75 72 6e 5c 66 52 20 he \fBreturn\fR
01d0: 63 6f 6d 6d 61 6e 64 2e 0a 20 2e 50 50 0a 2d 57 command.. .PP.-W
01e0: 68 65 6e 20 74 68 65 20 72 65 74 75 72 6e 20 63 hen the return c
01f0: 6f 64 65 20 66 72 6f 6d 20 65 76 61 6c 75 61 74 ode from evaluat
0200: 69 6f 6e 20 6f 66 20 5c 66 49 73 63 72 69 70 74 ion of \fIscript
0210: 5c 66 52 20 69 73 20 5c 66 42 54 43 4c 5f 45 52 \fR is \fBTCL_ER
0220: 52 4f 52 5c 66 52 2c 0a 2d 74 68 72 65 65 20 61 ROR\fR,.-three a
0230: 64 64 69 74 69 6f 6e 61 6c 20 65 6e 74 72 69 65 dditional entrie
0240: 73 20 61 72 65 20 64 65 66 69 6e 65 64 20 69 6e s are defined in
0250: 20 74 68 65 20 64 69 63 74 69 6f 6e 61 72 79 20 the dictionary
0260: 6f 66 20 72 65 74 75 72 6e 20 6f 70 74 69 6f 6e of return option
0270: 73 0a 2d 73 74 6f 72 65 64 20 69 6e 20 5c 66 49 s.-stored in \fI
0280: 6f 70 74 69 6f 6e 73 56 61 72 4e 61 6d 65 5c 66 optionsVarName\f
0290: 52 3a 20 5c 66 42 5c 2d 65 72 72 6f 72 69 6e 66 R: \fB\-errorinf
02a0: 6f 5c 66 52 2c 20 5c 66 42 5c 2d 65 72 72 6f 72 o\fR, \fB\-error
02b0: 63 6f 64 65 5c 66 52 2c 20 0a 2d 61 6e 64 20 5c code\fR, .-and \
02c0: 66 42 5c 2d 65 72 72 6f 72 6c 69 6e 65 5c 66 52 fB\-errorline\fR
02d0: 2e 20 20 54 68 65 20 76 61 6c 75 65 20 6f 66 20 . The value of
02e0: 74 68 65 20 5c 66 42 5c 2d 65 72 72 6f 72 69 6e the \fB\-errorin
02f0: 66 6f 5c 66 52 20 65 6e 74 72 79 0a 2d 69 73 20 fo\fR entry.-is
0300: 61 20 66 6f 72 6d 61 74 74 65 64 20 73 74 61 63 a formatted stac
0310: 6b 20 74 72 61 63 65 20 63 6f 6e 74 61 69 6e 69 k trace containi
0320: 6e 67 20 6d 6f 72 65 20 69 6e 66 6f 72 6d 61 74 ng more informat
0330: 69 6f 6e 20 61 62 6f 75 74 0a 2d 74 68 65 20 63 ion about.-the c
0340: 6f 6e 74 65 78 74 20 69 6e 20 77 68 69 63 68 20 ontext in which
0350: 74 68 65 20 65 72 72 6f 72 20 68 61 70 70 65 6e the error happen
0360: 65 64 2e 20 20 54 68 65 20 66 6f 72 6d 61 74 74 ed. The formatt
0370: 65 64 20 73 74 61 63 6b 0a 2d 74 72 61 63 65 20 ed stack.-trace
0380: 69 73 20 6d 65 61 6e 74 20 74 6f 20 62 65 20 72 is meant to be r
0390: 65 61 64 20 62 79 20 61 20 70 65 72 73 6f 6e 2e ead by a person.
03a0: 20 20 54 68 65 20 76 61 6c 75 65 20 6f 66 0a 2d The value of.-
03b0: 74 68 65 20 5c 66 42 5c 2d 65 72 72 6f 72 63 6f the \fB\-errorco
03c0: 64 65 5c 66 52 20 65 6e 74 72 79 20 69 73 20 61 de\fR entry is a
03d0: 64 64 69 74 69 6f 6e 61 6c 20 69 6e 66 6f 72 6d dditional inform
03e0: 61 74 69 6f 6e 20 61 62 6f 75 74 20 74 68 65 0a ation about the.
03f0: 2d 65 72 72 6f 72 20 73 74 6f 72 65 64 20 61 73 -error stored as
0400: 20 61 20 6c 69 73 74 2e 20 20 54 68 65 20 5c 66 a list. The \f
0410: 42 5c 2d 65 72 72 6f 72 63 6f 64 65 5c 66 52 20 B\-errorcode\fR
0420: 76 61 6c 75 65 20 69 73 20 6d 65 61 6e 74 20 74 value is meant t
0430: 6f 0a 2d 62 65 20 66 75 72 74 68 65 72 20 70 72 o.-be further pr
0440: 6f 63 65 73 73 65 64 20 62 79 20 70 72 6f 67 72 ocessed by progr
0450: 61 6d 73 2c 20 61 6e 64 20 6d 61 79 20 6e 6f 74 ams, and may not
0460: 20 62 65 20 70 61 72 74 69 63 75 6c 61 72 6c 79 be particularly
0470: 0a 2d 72 65 61 64 61 62 6c 65 20 62 79 20 70 65 .-readable by pe
0480: 6f 70 6c 65 2e 20 20 54 68 65 20 76 61 6c 75 65 ople. The value
0490: 20 6f 66 20 74 68 65 20 5c 66 42 5c 2d 65 72 72 of the \fB\-err
04a0: 6f 72 6c 69 6e 65 5c 66 52 20 65 6e 74 72 79 0a orline\fR entry.
04b0: 2d 69 73 20 61 6e 20 69 6e 74 65 67 65 72 20 69 -is an integer i
04c0: 6e 64 69 63 61 74 69 6e 67 20 77 68 69 63 68 20 ndicating which
04d0: 6c 69 6e 65 20 6f 66 20 5c 66 49 73 63 72 69 70 line of \fIscrip
04e0: 74 5c 66 52 20 77 61 73 20 62 65 69 6e 67 0a 2d t\fR was being.-
04f0: 65 76 61 6c 75 61 74 65 64 20 77 68 65 6e 20 74 evaluated when t
0500: 68 65 20 65 72 72 6f 72 20 6f 63 63 75 72 72 65 he error occurre
0510: 64 2e 20 20 54 68 65 20 76 61 6c 75 65 73 20 6f d. The values o
0520: 66 20 74 68 65 20 5c 66 42 5c 2d 65 72 72 6f 72 f the \fB\-error
0530: 69 6e 66 6f 5c 66 52 0a 2d 61 6e 64 20 5c 66 42 info\fR.-and \fB
0540: 5c 2d 65 72 72 6f 72 63 6f 64 65 5c 66 52 20 65 \-errorcode\fR e
0550: 6e 74 72 69 65 73 20 6f 66 20 74 68 65 20 6d 6f ntries of the mo
0560: 73 74 20 72 65 63 65 6e 74 20 65 72 72 6f 72 20 st recent error
0570: 61 72 65 20 61 6c 73 6f 0a 2d 61 76 61 69 6c 61 are also.-availa
0580: 62 6c 65 20 61 73 20 76 61 6c 75 65 73 20 6f 66 ble as values of
0590: 20 74 68 65 20 67 6c 6f 62 61 6c 20 76 61 72 69 the global vari
05a0: 61 62 6c 65 73 20 5c 66 42 3a 3a 65 72 72 6f 72 ables \fB::error
05b0: 49 6e 66 6f 5c 66 52 0a 2d 61 6e 64 20 5c 66 42 Info\fR.-and \fB
05c0: 3a 3a 65 72 72 6f 72 43 6f 64 65 5c 66 52 20 72 ::errorCode\fR r
05d0: 65 73 70 65 63 74 69 76 65 6c 79 2e 0a 2b 57 68 espectively..+Wh
05e0: 65 6e 20 74 68 65 20 72 65 74 75 72 6e 20 63 6f en the return co
05f0: 64 65 20 66 72 6f 6d 20 65 76 61 6c 75 61 74 69 de from evaluati
0600: 6f 6e 20 6f 66 20 5c 66 49 73 63 72 69 70 74 5c on of \fIscript\
0610: 66 52 20 69 73 0a 2b 5c 66 42 54 43 4c 5f 45 52 fR is.+\fBTCL_ER
0620: 52 4f 52 5c 66 52 2c 20 66 6f 75 72 20 61 64 64 ROR\fR, four add
0630: 69 74 69 6f 6e 61 6c 20 65 6e 74 72 69 65 73 20 itional entries
0640: 61 72 65 20 64 65 66 69 6e 65 64 20 69 6e 20 74 are defined in t
0650: 68 65 20 64 69 63 74 69 6f 6e 61 72 79 0a 2b 6f he dictionary.+o
0660: 66 20 72 65 74 75 72 6e 20 6f 70 74 69 6f 6e 73 f return options
0670: 20 73 74 6f 72 65 64 20 69 6e 20 5c 66 49 6f 70 stored in \fIop
0680: 74 69 6f 6e 73 56 61 72 4e 61 6d 65 5c 66 52 3a tionsVarName\fR:
0690: 20 5c 66 42 5c 2d 65 72 72 6f 72 69 6e 66 6f 5c \fB\-errorinfo\
06a0: 66 52 2c 0a 2b 5c 66 42 5c 2d 65 72 72 6f 72 63 fR,.+\fB\-errorc
06b0: 6f 64 65 5c 66 52 2c 20 5c 66 42 5c 2d 65 72 72 ode\fR, \fB\-err
06c0: 6f 72 6c 69 6e 65 5c 66 52 2c 20 61 6e 64 20 5c orline\fR, and \
06d0: 66 42 5c 2d 65 72 72 6f 72 73 74 61 63 6b 5c 66 fB\-errorstack\f
06e0: 52 2e 20 20 54 68 65 0a 2b 76 61 6c 75 65 20 6f R. The.+value o
06f0: 66 20 74 68 65 20 5c 66 42 5c 2d 65 72 72 6f 72 f the \fB\-error
0700: 69 6e 66 6f 5c 66 52 20 65 6e 74 72 79 20 69 73 info\fR entry is
0710: 20 61 20 66 6f 72 6d 61 74 74 65 64 20 73 74 61 a formatted sta
0720: 63 6b 20 74 72 61 63 65 0a 2b 63 6f 6e 74 61 69 ck trace.+contai
0730: 6e 69 6e 67 20 6d 6f 72 65 20 69 6e 66 6f 72 6d ning more inform
0740: 61 74 69 6f 6e 20 61 62 6f 75 74 20 74 68 65 20 ation about the
0750: 63 6f 6e 74 65 78 74 20 69 6e 20 77 68 69 63 68 context in which
0760: 20 74 68 65 20 65 72 72 6f 72 0a 2b 68 61 70 70 the error.+happ
0770: 65 6e 65 64 2e 20 20 54 68 65 20 66 6f 72 6d 61 ened. The forma
0780: 74 74 65 64 20 73 74 61 63 6b 20 74 72 61 63 65 tted stack trace
0790: 20 69 73 20 6d 65 61 6e 74 20 74 6f 20 62 65 20 is meant to be
07a0: 72 65 61 64 20 62 79 20 61 20 70 65 72 73 6f 6e read by a person
07b0: 2e 0a 2b 54 68 65 20 76 61 6c 75 65 20 6f 66 20 ..+The value of
07c0: 74 68 65 20 5c 66 42 5c 2d 65 72 72 6f 72 63 6f the \fB\-errorco
07d0: 64 65 5c 66 52 20 65 6e 74 72 79 20 69 73 20 61 de\fR entry is a
07e0: 64 64 69 74 69 6f 6e 61 6c 20 69 6e 66 6f 72 6d dditional inform
07f0: 61 74 69 6f 6e 0a 2b 61 62 6f 75 74 20 74 68 65 ation.+about the
0800: 20 65 72 72 6f 72 20 73 74 6f 72 65 64 20 61 73 error stored as
0810: 20 61 20 6c 69 73 74 2e 20 20 54 68 65 20 5c 66 a list. The \f
0820: 42 5c 2d 65 72 72 6f 72 63 6f 64 65 5c 66 52 20 B\-errorcode\fR
0830: 76 61 6c 75 65 20 69 73 0a 2b 6d 65 61 6e 74 20 value is.+meant
0840: 74 6f 20 62 65 20 66 75 72 74 68 65 72 20 70 72 to be further pr
0850: 6f 63 65 73 73 65 64 20 62 79 20 70 72 6f 67 72 ocessed by progr
0860: 61 6d 73 2c 20 61 6e 64 20 6d 61 79 20 6e 6f 74 ams, and may not
0870: 20 62 65 20 70 61 72 74 69 63 75 6c 61 72 6c 79 be particularly
0880: 0a 2b 72 65 61 64 61 62 6c 65 20 62 79 20 70 65 .+readable by pe
0890: 6f 70 6c 65 2e 20 20 54 68 65 20 76 61 6c 75 65 ople. The value
08a0: 20 6f 66 20 74 68 65 20 5c 66 42 5c 2d 65 72 72 of the \fB\-err
08b0: 6f 72 6c 69 6e 65 5c 66 52 20 65 6e 74 72 79 20 orline\fR entry
08c0: 69 73 20 61 6e 0a 2b 69 6e 74 65 67 65 72 20 69 is an.+integer i
08d0: 6e 64 69 63 61 74 69 6e 67 20 77 68 69 63 68 20 ndicating which
08e0: 6c 69 6e 65 20 6f 66 20 5c 66 49 73 63 72 69 70 line of \fIscrip
08f0: 74 5c 66 52 20 77 61 73 20 62 65 69 6e 67 20 65 t\fR was being e
0900: 76 61 6c 75 61 74 65 64 20 77 68 65 6e 0a 2b 74 valuated when.+t
0910: 68 65 20 65 72 72 6f 72 20 6f 63 63 75 72 72 65 he error occurre
0920: 64 2e 20 20 54 68 65 20 76 61 6c 75 65 20 6f 66 d. The value of
0930: 20 74 68 65 20 5c 66 42 5c 2d 65 72 72 6f 72 73 the \fB\-errors
0940: 74 61 63 6b 5c 66 52 20 65 6e 74 72 79 20 69 73 tack\fR entry is
0950: 20 61 0a 2b 6c 69 73 74 20 6f 66 20 6c 69 73 74 a.+list of list
0960: 73 20 6d 61 64 65 20 6f 66 20 74 68 65 20 66 75 s made of the fu
0970: 6e 63 74 69 6f 6e 20 6e 61 6d 65 73 20 61 6e 64 nction names and
0980: 20 61 72 67 75 6d 65 6e 74 73 20 61 74 20 65 61 arguments at ea
0990: 63 68 20 6c 65 76 65 6c 0a 2b 66 72 6f 6d 20 74 ch level.+from t
09a0: 68 65 20 63 61 6c 6c 20 73 74 61 63 6b 20 77 68 he call stack wh
09b0: 65 6e 20 74 68 65 20 65 72 72 6f 72 20 6f 63 63 en the error occ
09c0: 75 72 72 65 64 2e 20 49 74 20 64 69 66 66 65 72 urred. It differ
09d0: 73 20 66 72 6f 6d 0a 2b 2d 65 72 72 6f 72 69 6e s from.+-errorin
09e0: 66 6f 20 69 6e 20 74 68 61 74 20 28 31 29 20 69 fo in that (1) i
09f0: 74 20 69 73 20 61 20 74 72 75 65 20 6c 69 73 74 t is a true list
0a00: 20 6f 66 20 6c 69 73 74 73 2c 20 66 6f 72 20 65 of lists, for e
0a10: 61 73 79 0a 2b 70 72 6f 67 72 61 6d 6d 61 74 69 asy.+programmati
0a20: 63 20 61 63 63 65 73 73 20 77 69 74 68 6f 75 74 c access without
0a30: 20 70 61 72 73 69 6e 67 2c 20 28 32 29 20 69 74 parsing, (2) it
0a40: 20 63 6f 6e 74 61 69 6e 73 20 74 68 65 20 74 72 contains the tr
0a50: 75 65 0a 2b 28 73 75 62 73 74 69 74 75 74 65 64 ue.+(substituted
0a60: 29 20 76 61 6c 75 65 73 20 70 61 73 73 65 64 20 ) values passed
0a70: 74 6f 20 74 68 65 20 66 75 6e 63 74 69 6f 6e 73 to the functions
0a80: 2c 20 69 6e 73 74 65 61 64 20 6f 66 20 74 68 65 , instead of the
0a90: 20 73 74 61 74 69 63 0a 2b 74 65 78 74 20 6f 66 static.+text of
0aa0: 20 74 68 65 20 63 61 6c 6c 69 6e 67 20 73 69 74 the calling sit
0ab0: 65 73 2c 20 61 6e 64 20 28 33 29 20 69 74 20 69 es, and (3) it i
0ac0: 73 20 63 6f 61 72 73 65 72 2d 67 72 61 69 6e 65 s coarser-graine
0ad0: 64 2c 20 77 69 74 68 20 6f 6e 6c 79 0a 2b 6f 6e d, with only.+on
0ae0: 65 20 65 6c 65 6d 65 6e 74 20 70 65 72 20 73 74 e element per st
0af0: 61 63 6b 20 66 72 61 6d 65 20 28 6c 69 6b 65 20 ack frame (like
0b00: 70 72 6f 63 73 3b 20 6e 6f 20 73 65 70 61 72 61 procs; no separa
0b10: 74 65 20 65 6c 65 6d 65 6e 74 73 20 66 6f 72 0a te elements for.
0b20: 2b 5b 66 6f 72 65 61 63 68 5d 20 63 6f 6e 73 74 +[foreach] const
0b30: 72 75 63 74 73 20 66 6f 72 20 65 78 61 6d 70 6c ructs for exampl
0b40: 65 29 2e 0a 2b 0a 2b 54 68 65 20 76 61 6c 75 65 e)..+.+The value
0b50: 73 20 6f 66 20 74 68 65 20 5c 66 42 5c 2d 65 72 s of the \fB\-er
0b60: 72 6f 72 69 6e 66 6f 5c 66 52 20 61 6e 64 20 5c rorinfo\fR and \
0b70: 66 42 5c 2d 65 72 72 6f 72 63 6f 64 65 5c 66 52 fB\-errorcode\fR
0b80: 20 65 6e 74 72 69 65 73 20 6f 66 0a 2b 74 68 65 entries of.+the
0b90: 20 6d 6f 73 74 20 72 65 63 65 6e 74 20 65 72 72 most recent err
0ba0: 6f 72 20 61 72 65 20 61 6c 73 6f 20 61 76 61 69 or are also avai
0bb0: 6c 61 62 6c 65 20 61 73 20 76 61 6c 75 65 73 20 lable as values
0bc0: 6f 66 20 74 68 65 20 67 6c 6f 62 61 6c 0a 2b 76 of the global.+v
0bd0: 61 72 69 61 62 6c 65 73 20 5c 66 42 3a 3a 65 72 ariables \fB::er
0be0: 72 6f 72 49 6e 66 6f 5c 66 52 20 61 6e 64 20 5c rorInfo\fR and \
0bf0: 66 42 3a 3a 65 72 72 6f 72 43 6f 64 65 5c 66 52 fB::errorCode\fR
0c00: 20 72 65 73 70 65 63 74 69 76 65 6c 79 2e 20 54 respectively. T
0c10: 68 65 0a 2b 76 61 6c 75 65 20 6f 66 20 74 68 65 he.+value of the
0c20: 20 5c 66 42 5c 2d 65 72 72 6f 72 73 74 61 63 6b \fB\-errorstack
0c30: 5c 66 52 20 65 6e 74 72 79 20 73 75 72 66 61 63 \fR entry surfac
0c40: 65 73 20 61 73 20 5c 66 42 69 6e 66 6f 0a 2b 65 es as \fBinfo.+e
0c50: 72 72 6f 72 73 74 61 63 6b 5c 66 52 2e 0a 20 2e rrorstack\fR.. .
0c60: 50 50 0a 20 54 63 6c 20 70 61 63 6b 61 67 65 73 PP. Tcl packages
0c70: 20 6d 61 79 20 70 72 6f 76 69 64 65 20 63 6f 6d may provide com
0c80: 6d 61 6e 64 73 20 74 68 61 74 20 73 65 74 20 6f mands that set o
0c90: 74 68 65 72 20 65 6e 74 72 69 65 73 20 69 6e 20 ther entries in
0ca0: 74 68 65 0a 20 64 69 63 74 69 6f 6e 61 72 79 20 the. dictionary
0cb0: 6f 66 20 72 65 74 75 72 6e 20 6f 70 74 69 6f 6e of return option
0cc0: 73 2c 20 61 6e 64 20 74 68 65 20 5c 66 42 72 65 s, and the \fBre
0cd0: 74 75 72 6e 5c 66 52 20 63 6f 6d 6d 61 6e 64 20 turn\fR command
0ce0: 6d 61 79 20 62 65 0a 49 6e 64 65 78 3a 20 64 6f may be.Index: do
0cf0: 63 2f 69 6e 66 6f 2e 6e 0a 3d 3d 3d 3d 3d 3d 3d c/info.n.=======
0d00: 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d ================
0d10: 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d ================
0d20: 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d ================
0d30: 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 0a 52 43 53 ============.RCS
0d40: 20 66 69 6c 65 3a 20 2f 63 76 73 72 6f 6f 74 2f file: /cvsroot/
0d50: 74 63 6c 2f 74 63 6c 2f 64 6f 63 2f 69 6e 66 6f tcl/tcl/doc/info
0d60: 2e 6e 2c 76 0a 72 65 74 72 69 65 76 69 6e 67 20 .n,v.retrieving
0d70: 72 65 76 69 73 69 6f 6e 20 31 2e 33 36 0a 64 69 revision 1.36.di
0d80: 66 66 20 2d 75 20 2d 70 20 2d 75 20 2d 70 20 2d ff -u -p -u -p -
0d90: 72 31 2e 33 36 20 69 6e 66 6f 2e 6e 0a 2d 2d 2d r1.36 info.n.---
0da0: 20 64 6f 63 2f 69 6e 66 6f 2e 6e 09 32 34 20 4d doc/info.n.24 M
0db0: 61 72 20 32 30 31 30 20 31 33 3a 32 31 3a 31 31 ar 2010 13:21:11
0dc0: 20 2d 30 30 30 30 09 31 2e 33 36 0a 2b 2b 2b 20 -0000.1.36.+++
0dd0: 64 6f 63 2f 69 6e 66 6f 2e 6e 09 32 34 20 4d 61 doc/info.n.24 Ma
0de0: 72 20 32 30 31 30 20 31 35 3a 35 35 3a 34 37 20 r 2010 15:55:47
0df0: 2d 30 30 30 30 0a 40 40 20 2d 39 34 2c 36 20 2b -0000.@@ -94,6 +
0e00: 39 34 2c 31 36 20 40 40 20 64 6f 65 73 20 6e 6f 94,16 @@ does no
0e10: 74 20 68 61 76 65 20 61 20 64 65 66 61 75 6c 74 t have a default
0e20: 20 76 61 6c 75 65 20 74 68 65 6e 20 74 68 65 20 value then the
0e30: 63 0a 20 4f 74 68 65 72 77 69 73 65 20 69 74 20 c. Otherwise it
0e40: 72 65 74 75 72 6e 73 20 5c 66 42 31 5c 66 52 20 returns \fB1\fR
0e50: 61 6e 64 20 70 6c 61 63 65 73 20 74 68 65 20 64 and places the d
0e60: 65 66 61 75 6c 74 20 76 61 6c 75 65 20 6f 66 20 efault value of
0e70: 5c 66 49 61 72 67 5c 66 52 0a 20 69 6e 74 6f 20 \fIarg\fR. into
0e80: 76 61 72 69 61 62 6c 65 20 5c 66 49 76 61 72 6e variable \fIvarn
0e90: 61 6d 65 5c 66 52 2e 0a 20 2e 54 50 0a 2b 5c 66 ame\fR.. .TP.+\f
0ea0: 42 69 6e 66 6f 20 65 72 72 6f 72 73 74 61 63 6b Binfo errorstack
0eb0: 20 5c 66 52 3f 5c 66 49 69 6e 74 65 72 70 5c 66 \fR?\fIinterp\f
0ec0: 52 3f 0a 2b 2e 0a 2b 52 65 74 75 72 6e 73 20 61 R?.+..+Returns a
0ed0: 20 6c 69 73 74 20 6f 66 20 6c 69 73 74 73 20 6d list of lists m
0ee0: 61 64 65 20 6f 66 20 74 68 65 20 66 75 6e 63 74 ade of the funct
0ef0: 69 6f 6e 20 6e 61 6d 65 73 20 61 6e 64 20 61 72 ion names and ar
0f00: 67 75 6d 65 6e 74 73 20 61 74 0a 2b 65 61 63 68 guments at.+each
0f10: 20 6c 65 76 65 6c 20 66 72 6f 6d 20 74 68 65 20 level from the
0f20: 63 61 6c 6c 20 73 74 61 63 6b 20 6f 66 20 74 68 call stack of th
0f30: 65 20 6c 61 73 74 20 65 72 72 6f 72 20 69 6e 20 e last error in
0f40: 74 68 65 20 67 69 76 65 6e 0a 2b 5c 66 49 69 6e the given.+\fIin
0f50: 74 65 72 70 5c 66 52 2c 20 6f 72 20 69 6e 20 74 terp\fR, or in t
0f60: 68 65 20 63 75 72 72 65 6e 74 20 6f 6e 65 20 69 he current one i
0f70: 66 20 6e 6f 74 20 73 70 65 63 69 66 69 65 64 2e f not specified.
0f80: 20 20 54 68 69 73 0a 2b 69 6e 66 6f 72 6d 61 74 This.+informat
0f90: 69 6f 6e 20 69 73 20 61 6c 73 6f 20 70 72 65 73 ion is also pres
0fa0: 65 6e 74 20 69 6e 20 74 68 65 20 2d 65 72 72 6f ent in the -erro
0fb0: 72 73 74 61 63 6b 20 65 6e 74 72 79 20 6f 66 20 rstack entry of
0fc0: 74 68 65 20 6f 70 74 69 6f 6e 73 0a 2b 64 69 63 the options.+dic
0fd0: 74 69 6f 6e 61 72 79 20 72 65 74 75 72 6e 65 64 tionary returned
0fe0: 20 62 79 20 33 2d 61 72 67 20 5c 66 42 63 61 74 by 3-arg \fBcat
0ff0: 63 68 5c 66 52 3b 20 5c 66 42 69 6e 66 6f 20 65 ch\fR; \fBinfo e
1000: 72 72 6f 72 73 74 61 63 6b 5c 66 52 20 69 73 20 rrorstack\fR is
1010: 61 0a 2b 63 6f 6e 76 65 6e 69 65 6e 74 20 77 61 a.+convenient wa
1020: 79 20 6f 66 20 72 65 74 72 69 65 76 69 6e 67 20 y of retrieving
1030: 69 74 20 66 6f 72 20 75 6e 63 61 75 67 68 74 20 it for uncaught
1040: 65 72 72 6f 72 73 20 61 74 20 74 6f 70 6c 65 76 errors at toplev
1050: 65 6c 20 69 6e 20 61 6e 0a 2b 69 6e 74 65 72 61 el in an.+intera
1060: 63 74 69 76 65 20 74 63 6c 73 68 2e 0a 2b 2e 54 ctive tclsh..+.T
1070: 50 0a 20 5c 66 42 69 6e 66 6f 20 65 78 69 73 74 P. \fBinfo exist
1080: 73 20 5c 66 49 76 61 72 4e 61 6d 65 5c 66 52 0a s \fIvarName\fR.
1090: 20 2e 0a 20 52 65 74 75 72 6e 73 20 5c 66 42 31 .. Returns \fB1
10a0: 5c 66 52 20 69 66 20 74 68 65 20 76 61 72 69 61 \fR if the varia
10b0: 62 6c 65 20 6e 61 6d 65 64 20 5c 66 49 76 61 72 ble named \fIvar
10c0: 4e 61 6d 65 5c 66 52 20 65 78 69 73 74 73 20 69 Name\fR exists i
10d0: 6e 20 74 68 65 0a 49 6e 64 65 78 3a 20 64 6f 63 n the.Index: doc
10e0: 2f 72 65 74 75 72 6e 2e 6e 0a 3d 3d 3d 3d 3d 3d /return.n.======
10f0: 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d ================
1100: 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d ================
1110: 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d ================
1120: 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 0a 52 43 =============.RC
1130: 53 20 66 69 6c 65 3a 20 2f 63 76 73 72 6f 6f 74 S file: /cvsroot
1140: 2f 74 63 6c 2f 74 63 6c 2f 64 6f 63 2f 72 65 74 /tcl/tcl/doc/ret
1150: 75 72 6e 2e 6e 2c 76 0a 72 65 74 72 69 65 76 69 urn.n,v.retrievi
1160: 6e 67 20 72 65 76 69 73 69 6f 6e 20 31 2e 32 35 ng revision 1.25
1170: 0a 64 69 66 66 20 2d 75 20 2d 70 20 2d 75 20 2d .diff -u -p -u -
1180: 70 20 2d 72 31 2e 32 35 20 72 65 74 75 72 6e 2e p -r1.25 return.
1190: 6e 0a 2d 2d 2d 20 64 6f 63 2f 72 65 74 75 72 6e n.--- doc/return
11a0: 2e 6e 09 32 30 20 4a 61 6e 20 32 30 31 30 20 31 .n.20 Jan 2010 1
11b0: 33 3a 34 32 3a 31 37 20 2d 30 30 30 30 09 31 2e 3:42:17 -0000.1.
11c0: 32 35 0a 2b 2b 2b 20 64 6f 63 2f 72 65 74 75 72 25.+++ doc/retur
11d0: 6e 2e 6e 09 32 34 20 4d 61 72 20 32 30 31 30 20 n.n.24 Mar 2010
11e0: 31 35 3a 35 35 3a 34 37 20 2d 30 30 30 30 0a 40 15:55:47 -0000.@
11f0: 40 20 2d 31 33 38 2c 36 20 2b 31 33 38 2c 32 32 @ -138,6 +138,22
1200: 20 40 40 20 74 68 65 20 76 61 6c 75 65 20 6f 66 @@ the value of
1210: 20 5c 66 42 5c 2d 65 72 72 6f 72 69 6e 66 6f 5c \fB\-errorinfo\
1220: 66 52 20 69 6e 20 61 20 72 65 74 75 0a 20 62 79 fR in a retu. by
1230: 20 74 68 65 20 5c 66 42 63 61 74 63 68 5c 66 52 the \fBcatch\fR
1240: 20 63 6f 6d 6d 61 6e 64 20 28 6f 72 20 66 72 6f command (or fro
1250: 6d 20 74 68 65 20 63 6f 70 79 20 6f 66 20 74 68 m the copy of th
1260: 61 74 20 69 6e 66 6f 72 6d 61 74 69 6f 6e 0a 20 at information.
1270: 73 74 6f 72 65 64 20 69 6e 20 74 68 65 20 67 6c stored in the gl
1280: 6f 62 61 6c 20 76 61 72 69 61 62 6c 65 20 5c 66 obal variable \f
1290: 42 65 72 72 6f 72 49 6e 66 6f 5c 66 52 29 2e 0a BerrorInfo\fR)..
12a0: 20 2e 54 50 0a 2b 5c 66 42 5c 2d 65 72 72 6f 72 .TP.+\fB\-error
12b0: 73 74 61 63 6b 20 5c 66 49 6c 69 73 74 5c 66 52 stack \fIlist\fR
12c0: 0a 2b 2e 0a 2b 54 68 65 20 5c 66 42 5c 2d 65 72 .+..+The \fB\-er
12d0: 72 6f 72 73 74 61 63 6b 5c 66 52 20 6f 70 74 69 rorstack\fR opti
12e0: 6f 6e 20 72 65 63 65 69 76 65 73 20 73 70 65 63 on receives spec
12f0: 69 61 6c 20 74 72 65 61 74 6d 65 6e 74 20 6f 6e ial treatment on
1300: 6c 79 20 77 68 65 6e 20 74 68 65 20 76 61 6c 75 ly when the valu
1310: 65 0a 2b 6f 66 20 74 68 65 20 5c 66 42 5c 2d 63 e.+of the \fB\-c
1320: 6f 64 65 5c 66 52 20 6f 70 74 69 6f 6e 20 69 73 ode\fR option is
1330: 20 5c 66 42 54 43 4c 5f 45 52 52 4f 52 5c 66 52 \fBTCL_ERROR\fR
1340: 2e 20 20 54 68 65 6e 20 5c 66 49 6c 69 73 74 5c . Then \fIlist\
1350: 66 52 20 69 73 20 74 68 65 20 69 6e 69 74 69 61 fR is the initia
1360: 6c 0a 2b 65 72 72 6f 72 20 73 74 61 63 6b 2c 20 l.+error stack,
1370: 72 65 63 6f 72 64 69 6e 67 20 61 63 74 75 61 6c recording actual
1380: 20 61 72 67 75 6d 65 6e 74 20 76 61 6c 75 65 73 argument values
1390: 20 70 61 73 73 65 64 20 74 6f 20 65 61 63 68 20 passed to each
13a0: 70 72 6f 63 20 6c 65 76 65 6c 2e 20 20 54 68 65 proc level. The
13b0: 20 65 72 72 6f 72 20 73 74 61 63 6b 20 77 69 6c error stack wil
13c0: 6c 0a 2b 61 6c 73 6f 20 62 65 20 72 65 61 63 68 l.+also be reach
13d0: 61 62 6c 65 20 74 68 72 6f 75 67 68 20 5b 69 6e able through [in
13e0: 66 6f 20 65 72 72 6f 72 73 74 61 63 6b 5d 2e 0a fo errorstack]..
13f0: 2b 49 66 20 6e 6f 20 5c 66 42 5c 2d 65 72 72 6f +If no \fB\-erro
1400: 72 73 74 61 63 6b 5c 66 52 20 6f 70 74 69 6f 6e rstack\fR option
1410: 20 69 73 20 70 72 6f 76 69 64 65 64 20 74 6f 20 is provided to
1420: 5c 66 42 72 65 74 75 72 6e 5c 66 52 20 77 68 65 \fBreturn\fR whe
1430: 6e 0a 2b 74 68 65 20 5c 66 42 5c 2d 63 6f 64 65 n.+the \fB\-code
1440: 20 65 72 72 6f 72 5c 66 52 20 6f 70 74 69 6f 6e error\fR option
1450: 20 69 73 20 70 72 6f 76 69 64 65 64 2c 20 54 63 is provided, Tc
1460: 6c 20 77 69 6c 6c 20 70 72 6f 76 69 64 65 20 69 l will provide i
1470: 74 73 20 6f 77 6e 0a 2b 69 6e 69 74 69 61 6c 20 ts own.+initial
1480: 65 72 72 6f 72 20 73 74 61 63 6b 20 69 6e 20 74 error stack in t
1490: 68 65 20 65 6e 74 72 79 20 66 6f 72 20 5c 66 42 he entry for \fB
14a0: 5c 2d 65 72 72 6f 72 73 74 61 63 6b 5c 66 52 2e \-errorstack\fR.
14b0: 20 20 54 63 6c 27 73 0a 2b 69 6e 69 74 69 61 6c Tcl's.+initial
14c0: 20 65 72 72 6f 72 20 73 74 61 63 6b 20 77 69 6c error stack wil
14d0: 6c 20 69 6e 63 6c 75 64 65 20 6f 6e 6c 79 20 74 l include only t
14e0: 68 65 20 63 61 6c 6c 20 74 6f 20 74 68 65 20 70 he call to the p
14f0: 72 6f 63 65 64 75 72 65 2c 20 61 6e 64 0a 2b 73 rocedure, and.+s
1500: 74 61 63 6b 20 75 6e 77 69 6e 64 69 6e 67 20 77 tack unwinding w
1510: 69 6c 6c 20 61 70 70 65 6e 64 20 69 6e 66 6f 72 ill append infor
1520: 6d 61 74 69 6f 6e 20 61 62 6f 75 74 20 68 69 67 mation about hig
1530: 68 65 72 20 73 74 61 63 6b 20 6c 65 76 65 6c 73 her stack levels
1540: 2c 20 62 75 74 0a 2b 74 68 65 72 65 20 77 69 6c , but.+there wil
1550: 6c 20 62 65 20 6e 6f 20 69 6e 66 6f 72 6d 61 74 l be no informat
1560: 69 6f 6e 20 61 62 6f 75 74 20 74 68 65 20 63 6f ion about the co
1570: 6e 74 65 78 74 20 6f 66 20 74 68 65 20 65 72 72 ntext of the err
1580: 6f 72 20 77 69 74 68 69 6e 0a 2b 74 68 65 20 70 or within.+the p
1590: 72 6f 63 65 64 75 72 65 2e 20 20 54 79 70 69 63 rocedure. Typic
15a0: 61 6c 6c 79 20 74 68 65 20 5c 66 49 6c 69 73 74 ally the \fIlist
15b0: 5c 66 52 20 76 61 6c 75 65 20 69 73 20 73 75 70 \fR value is sup
15c0: 70 6c 69 65 64 20 66 72 6f 6d 0a 2b 74 68 65 20 plied from.+the
15d0: 76 61 6c 75 65 20 6f 66 20 5c 66 42 5c 2d 65 72 value of \fB\-er
15e0: 72 6f 72 73 74 61 63 6b 5c 66 52 20 69 6e 20 61 rorstack\fR in a
15f0: 20 72 65 74 75 72 6e 20 6f 70 74 69 6f 6e 73 20 return options
1600: 64 69 63 74 69 6f 6e 61 72 79 20 63 61 70 74 75 dictionary captu
1610: 72 65 64 0a 2b 62 79 20 74 68 65 20 5c 66 42 63 red.+by the \fBc
1620: 61 74 63 68 5c 66 52 20 63 6f 6d 6d 61 6e 64 20 atch\fR command
1630: 28 6f 72 20 66 72 6f 6d 20 74 68 65 20 63 6f 70 (or from the cop
1640: 79 20 6f 66 20 74 68 61 74 20 69 6e 66 6f 72 6d y of that inform
1650: 61 74 69 6f 6e 20 66 72 6f 6d 20 5b 69 6e 66 6f ation from [info
1660: 20 65 72 72 6f 72 73 74 61 63 6b 5d 29 2e 0a 2b errorstack])..+
1670: 2e 54 50 0a 20 5c 66 42 5c 2d 6c 65 76 65 6c 20 .TP. \fB\-level
1680: 5c 66 49 6c 65 76 65 6c 5c 66 52 0a 20 2e 0a 20 \fIlevel\fR. ..
1690: 54 68 65 20 5c 66 42 5c 2d 6c 65 76 65 6c 5c 66 The \fB\-level\f
16a0: 52 20 61 6e 64 20 5c 66 42 5c 2d 63 6f 64 65 5c R and \fB\-code\
16b0: 66 52 20 6f 70 74 69 6f 6e 73 20 77 6f 72 6b 20 fR options work
16c0: 74 6f 67 65 74 68 65 72 20 74 6f 20 73 65 74 20 together to set
16d0: 74 68 65 20 72 65 74 75 72 6e 0a 49 6e 64 65 78 the return.Index
16e0: 3a 20 67 65 6e 65 72 69 63 2f 74 63 6c 42 61 73 : generic/tclBas
16f0: 69 63 2e 63 0a 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d ic.c.===========
1700: 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d ================
1710: 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d ================
1720: 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d ================
1730: 3d 3d 3d 3d 3d 3d 3d 3d 0a 52 43 53 20 66 69 6c ========.RCS fil
1740: 65 3a 20 2f 63 76 73 72 6f 6f 74 2f 74 63 6c 2f e: /cvsroot/tcl/
1750: 74 63 6c 2f 67 65 6e 65 72 69 63 2f 74 63 6c 42 tcl/generic/tclB
1760: 61 73 69 63 2e 63 2c 76 0a 72 65 74 72 69 65 76 asic.c,v.retriev
1770: 69 6e 67 20 72 65 76 69 73 69 6f 6e 20 31 2e 34 ing revision 1.4
1780: 34 39 0a 64 69 66 66 20 2d 75 20 2d 70 20 2d 75 49.diff -u -p -u
1790: 20 2d 70 20 2d 72 31 2e 34 34 39 20 74 63 6c 42 -p -r1.449 tclB
17a0: 61 73 69 63 2e 63 0a 2d 2d 2d 20 67 65 6e 65 72 asic.c.--- gener
17b0: 69 63 2f 74 63 6c 42 61 73 69 63 2e 63 09 31 39 ic/tclBasic.c.19
17c0: 20 4d 61 72 20 32 30 31 30 20 31 31 3a 35 34 3a Mar 2010 11:54:
17d0: 30 36 20 2d 30 30 30 30 09 31 2e 34 34 39 0a 2b 06 -0000.1.449.+
17e0: 2b 2b 20 67 65 6e 65 72 69 63 2f 74 63 6c 42 61 ++ generic/tclBa
17f0: 73 69 63 2e 63 09 32 34 20 4d 61 72 20 32 30 31 sic.c.24 Mar 201
1800: 30 20 31 35 3a 35 35 3a 34 38 20 2d 30 30 30 30 0 15:55:48 -0000
1810: 0a 40 40 20 2d 35 32 39 2c 36 20 2b 35 32 39 2c .@@ -529,6 +529,
1820: 31 31 20 40 40 20 54 63 6c 5f 43 72 65 61 74 65 11 @@ Tcl_Create
1830: 49 6e 74 65 72 70 28 76 6f 69 64 29 0a 20 20 20 Interp(void).
1840: 20 20 69 50 74 72 2d 3e 65 72 72 6f 72 49 6e 66 iPtr->errorInf
1850: 6f 20 3d 20 4e 55 4c 4c 3b 0a 20 20 20 20 20 54 o = NULL;. T
1860: 63 6c 4e 65 77 4c 69 74 65 72 61 6c 53 74 72 69 clNewLiteralStri
1870: 6e 67 4f 62 6a 28 69 50 74 72 2d 3e 65 69 56 61 ngObj(iPtr->eiVa
1880: 72 2c 20 22 3a 3a 65 72 72 6f 72 49 6e 66 6f 22 r, "::errorInfo"
1890: 29 3b 0a 20 20 20 20 20 54 63 6c 5f 49 6e 63 72 );. Tcl_Incr
18a0: 52 65 66 43 6f 75 6e 74 28 69 50 74 72 2d 3e 65 RefCount(iPtr->e
18b0: 69 56 61 72 29 3b 0a 2b 20 20 20 20 69 50 74 72 iVar);.+ iPtr
18c0: 2d 3e 65 72 72 6f 72 53 74 61 63 6b 20 3d 20 54 ->errorStack = T
18d0: 63 6c 5f 4e 65 77 4c 69 73 74 4f 62 6a 28 30 2c cl_NewListObj(0,
18e0: 20 4e 55 4c 4c 29 3b 0a 2b 20 20 20 20 54 63 6c NULL);.+ Tcl
18f0: 5f 49 6e 63 72 52 65 66 43 6f 75 6e 74 28 69 50 _IncrRefCount(iP
1900: 74 72 2d 3e 65 72 72 6f 72 53 74 61 63 6b 29 3b tr->errorStack);
1910: 0a 2b 20 20 20 20 69 50 74 72 2d 3e 72 65 73 65 .+ iPtr->rese
1920: 74 45 72 72 6f 72 53 74 61 63 6b 20 3d 20 31 3b tErrorStack = 1;
1930: 0a 2b 20 20 20 20 54 63 6c 4e 65 77 4c 69 74 65 .+ TclNewLite
1940: 72 61 6c 53 74 72 69 6e 67 4f 62 6a 28 69 50 74 ralStringObj(iPt
1950: 72 2d 3e 75 70 6c 65 76 65 6c 4c 69 74 65 72 61 r->uplevelLitera
1960: 6c 2c 22 75 70 6c 65 76 65 6c 22 29 3b 0a 2b 20 l,"uplevel");.+
1970: 20 20 20 54 63 6c 5f 49 6e 63 72 52 65 66 43 6f Tcl_IncrRefCo
1980: 75 6e 74 28 69 50 74 72 2d 3e 75 70 6c 65 76 65 unt(iPtr->upleve
1990: 6c 4c 69 74 65 72 61 6c 29 3b 0a 20 20 20 20 20 lLiteral);.
19a0: 69 50 74 72 2d 3e 65 72 72 6f 72 43 6f 64 65 20 iPtr->errorCode
19b0: 3d 20 4e 55 4c 4c 3b 0a 20 20 20 20 20 54 63 6c = NULL;. Tcl
19c0: 4e 65 77 4c 69 74 65 72 61 6c 53 74 72 69 6e 67 NewLiteralString
19d0: 4f 62 6a 28 69 50 74 72 2d 3e 65 63 56 61 72 2c Obj(iPtr->ecVar,
19e0: 20 22 3a 3a 65 72 72 6f 72 43 6f 64 65 22 29 3b "::errorCode");
19f0: 0a 20 20 20 20 20 54 63 6c 5f 49 6e 63 72 52 65 . Tcl_IncrRe
1a00: 66 43 6f 75 6e 74 28 69 50 74 72 2d 3e 65 63 56 fCount(iPtr->ecV
1a10: 61 72 29 3b 0a 40 40 20 2d 31 34 36 37 2c 36 20 ar);.@@ -1467,6
1a20: 2b 31 34 37 32 2c 38 20 40 40 20 44 65 6c 65 74 +1472,8 @@ Delet
1a30: 65 49 6e 74 65 72 70 50 72 6f 63 28 0a 20 09 54 eInterpProc(. .T
1a40: 63 6c 5f 44 65 63 72 52 65 66 43 6f 75 6e 74 28 cl_DecrRefCount(
1a50: 69 50 74 72 2d 3e 65 72 72 6f 72 49 6e 66 6f 29 iPtr->errorInfo)
1a60: 3b 0a 20 09 69 50 74 72 2d 3e 65 72 72 6f 72 49 ;. .iPtr->errorI
1a70: 6e 66 6f 20 3d 20 4e 55 4c 4c 3b 0a 20 20 20 20 nfo = NULL;.
1a80: 20 7d 0a 2b 20 20 20 20 54 63 6c 5f 44 65 63 72 }.+ Tcl_Decr
1a90: 52 65 66 43 6f 75 6e 74 28 69 50 74 72 2d 3e 65 RefCount(iPtr->e
1aa0: 72 72 6f 72 53 74 61 63 6b 29 3b 0a 2b 20 20 20 rrorStack);.+
1ab0: 20 54 63 6c 5f 44 65 63 72 52 65 66 43 6f 75 6e Tcl_DecrRefCoun
1ac0: 74 28 69 50 74 72 2d 3e 75 70 6c 65 76 65 6c 4c t(iPtr->uplevelL
1ad0: 69 74 65 72 61 6c 29 3b 0a 20 20 20 20 20 69 66 iteral);. if
1ae0: 20 28 69 50 74 72 2d 3e 72 65 74 75 72 6e 4f 70 (iPtr->returnOp
1af0: 74 73 29 20 7b 0a 20 09 54 63 6c 5f 44 65 63 72 ts) {. .Tcl_Decr
1b00: 52 65 66 43 6f 75 6e 74 28 69 50 74 72 2d 3e 72 RefCount(iPtr->r
1b10: 65 74 75 72 6e 4f 70 74 73 29 3b 0a 20 20 20 20 eturnOpts);.
1b20: 20 7d 0a 40 40 20 2d 38 39 34 33 2c 35 20 2b 38 }.@@ -8943,5 +8
1b30: 39 35 30 2c 37 20 40 40 20 54 63 6c 49 6e 66 6f 950,7 @@ TclInfo
1b40: 43 6f 72 6f 75 74 69 6e 65 43 6d 64 28 0a 20 20 CoroutineCmd(.
1b50: 2a 20 6d 6f 64 65 3a 20 63 0a 20 20 2a 20 63 2d * mode: c. * c-
1b60: 62 61 73 69 63 2d 6f 66 66 73 65 74 3a 20 34 0a basic-offset: 4.
1b70: 20 20 2a 20 66 69 6c 6c 2d 63 6f 6c 75 6d 6e 3a * fill-column:
1b80: 20 37 38 0a 2b 20 2a 20 74 61 62 2d 77 69 64 74 78.+ * tab-widt
1b90: 68 3a 20 38 0a 2b 20 2a 20 69 6e 64 65 6e 74 2d h: 8.+ * indent-
1ba0: 74 61 62 73 2d 6d 6f 64 65 3a 20 6e 69 6c 0a 20 tabs-mode: nil.
1bb0: 20 2a 20 45 6e 64 3a 0a 20 20 2a 2f 0a 49 6e 64 * End:. */.Ind
1bc0: 65 78 3a 20 67 65 6e 65 72 69 63 2f 74 63 6c 43 ex: generic/tclC
1bd0: 6d 64 49 4c 2e 63 0a 3d 3d 3d 3d 3d 3d 3d 3d 3d mdIL.c.=========
1be0: 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d ================
1bf0: 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d ================
1c00: 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d ================
1c10: 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 0a 52 43 53 20 66 ==========.RCS f
1c20: 69 6c 65 3a 20 2f 63 76 73 72 6f 6f 74 2f 74 63 ile: /cvsroot/tc
1c30: 6c 2f 74 63 6c 2f 67 65 6e 65 72 69 63 2f 74 63 l/tcl/generic/tc
1c40: 6c 43 6d 64 49 4c 2e 63 2c 76 0a 72 65 74 72 69 lCmdIL.c,v.retri
1c50: 65 76 69 6e 67 20 72 65 76 69 73 69 6f 6e 20 31 eving revision 1
1c60: 2e 31 38 30 0a 64 69 66 66 20 2d 75 20 2d 70 20 .180.diff -u -p
1c70: 2d 75 20 2d 70 20 2d 72 31 2e 31 38 30 20 74 63 -u -p -r1.180 tc
1c80: 6c 43 6d 64 49 4c 2e 63 0a 2d 2d 2d 20 67 65 6e lCmdIL.c.--- gen
1c90: 65 72 69 63 2f 74 63 6c 43 6d 64 49 4c 2e 63 09 eric/tclCmdIL.c.
1ca0: 35 20 4d 61 72 20 32 30 31 30 20 31 34 3a 33 34 5 Mar 2010 14:34
1cb0: 3a 30 33 20 2d 30 30 30 30 09 31 2e 31 38 30 0a :03 -0000.1.180.
1cc0: 2b 2b 2b 20 67 65 6e 65 72 69 63 2f 74 63 6c 43 +++ generic/tclC
1cd0: 6d 64 49 4c 2e 63 09 32 34 20 4d 61 72 20 32 30 mdIL.c.24 Mar 20
1ce0: 31 30 20 31 35 3a 35 35 3a 34 38 20 2d 30 30 30 10 15:55:48 -000
1cf0: 30 0a 40 40 20 2d 31 31 38 2c 36 20 2b 31 31 38 0.@@ -118,6 +118
1d00: 2c 39 20 40 40 20 73 74 61 74 69 63 20 69 6e 74 ,9 @@ static int
1d10: 09 09 49 6e 66 6f 43 6f 6d 70 6c 65 74 65 43 6d ..InfoCompleteCm
1d20: 64 28 43 6c 69 65 6e 74 44 61 74 61 20 64 0a 20 d(ClientData d.
1d30: 09 09 09 20 20 20 20 69 6e 74 20 6f 62 6a 63 2c ... int objc,
1d40: 20 54 63 6c 5f 4f 62 6a 20 2a 63 6f 6e 73 74 20 Tcl_Obj *const
1d50: 6f 62 6a 76 5b 5d 29 3b 0a 20 73 74 61 74 69 63 objv[]);. static
1d60: 20 69 6e 74 09 09 49 6e 66 6f 44 65 66 61 75 6c int..InfoDefaul
1d70: 74 43 6d 64 28 43 6c 69 65 6e 74 44 61 74 61 20 tCmd(ClientData
1d80: 64 75 6d 6d 79 2c 20 54 63 6c 5f 49 6e 74 65 72 dummy, Tcl_Inter
1d90: 70 20 2a 69 6e 74 65 72 70 2c 0a 20 09 09 09 20 p *interp,. ...
1da0: 20 20 20 69 6e 74 20 6f 62 6a 63 2c 20 54 63 6c int objc, Tcl
1db0: 5f 4f 62 6a 20 2a 63 6f 6e 73 74 20 6f 62 6a 76 _Obj *const objv
1dc0: 5b 5d 29 3b 0a 2b 2f 2a 20 54 49 50 20 23 33 34 []);.+/* TIP #34
1dd0: 38 20 2d 20 4e 65 77 20 27 69 6e 66 6f 27 20 73 8 - New 'info' s
1de0: 75 62 63 6f 6d 6d 61 6e 64 20 27 65 72 72 6f 72 ubcommand 'error
1df0: 73 74 61 63 6b 27 20 2a 2f 0a 2b 73 74 61 74 69 stack' */.+stati
1e00: 63 20 69 6e 74 09 09 49 6e 66 6f 45 72 72 6f 72 c int..InfoError
1e10: 53 74 61 63 6b 43 6d 64 28 43 6c 69 65 6e 74 44 StackCmd(ClientD
1e20: 61 74 61 20 64 75 6d 6d 79 2c 20 54 63 6c 5f 49 ata dummy, Tcl_I
1e30: 6e 74 65 72 70 20 2a 69 6e 74 65 72 70 2c 0a 2b nterp *interp,.+
1e40: 09 09 09 20 20 20 20 69 6e 74 20 6f 62 6a 63 2c ... int objc,
1e50: 20 54 63 6c 5f 4f 62 6a 20 2a 63 6f 6e 73 74 20 Tcl_Obj *const
1e60: 6f 62 6a 76 5b 5d 29 3b 0a 20 2f 2a 20 54 49 50 objv[]);. /* TIP
1e70: 20 23 32 38 30 20 2d 20 4e 65 77 20 27 69 6e 66 #280 - New 'inf
1e80: 6f 27 20 73 75 62 63 6f 6d 6d 61 6e 64 20 27 66 o' subcommand 'f
1e90: 72 61 6d 65 27 20 2a 2f 0a 20 73 74 61 74 69 63 rame' */. static
1ea0: 20 69 6e 74 09 09 49 6e 66 6f 46 72 61 6d 65 43 int..InfoFrameC
1eb0: 6d 64 28 43 6c 69 65 6e 74 44 61 74 61 20 64 75 md(ClientData du
1ec0: 6d 6d 79 2c 20 54 63 6c 5f 49 6e 74 65 72 70 20 mmy, Tcl_Interp
1ed0: 2a 69 6e 74 65 72 70 2c 0a 20 09 09 09 20 20 20 *interp,. ...
1ee0: 20 69 6e 74 20 6f 62 6a 63 2c 20 54 63 6c 5f 4f int objc, Tcl_O
1ef0: 62 6a 20 2a 63 6f 6e 73 74 20 6f 62 6a 76 5b 5d bj *const objv[]
1f00: 29 3b 0a 40 40 20 2d 31 36 34 2c 36 20 2b 31 36 );.@@ -164,6 +16
1f10: 37 2c 37 20 40 40 20 73 74 61 74 69 63 20 63 6f 7,7 @@ static co
1f20: 6e 73 74 20 45 6e 73 65 6d 62 6c 65 49 6d 70 6c nst EnsembleImpl
1f30: 4d 61 70 20 64 65 66 61 75 6c 74 49 6e 66 6f 0a Map defaultInfo.
1f40: 20 20 20 20 20 7b 22 63 6f 6d 70 6c 65 74 65 22 {"complete"
1f50: 2c 09 20 20 20 49 6e 66 6f 43 6f 6d 70 6c 65 74 ,. InfoComplet
1f60: 65 43 6d 64 2c 09 20 20 20 20 4e 55 4c 4c 2c 20 eCmd,. NULL,
1f70: 4e 55 4c 4c 2c 20 4e 55 4c 4c 7d 2c 0a 20 20 20 NULL, NULL},.
1f80: 20 20 7b 22 63 6f 72 6f 75 74 69 6e 65 22 2c 09 {"coroutine",.
1f90: 20 20 20 54 63 6c 49 6e 66 6f 43 6f 72 6f 75 74 TclInfoCorout
1fa0: 69 6e 65 43 6d 64 2c 20 20 20 20 20 4e 55 4c 4c ineCmd, NULL
1fb0: 2c 20 4e 55 4c 4c 2c 20 4e 55 4c 4c 7d 2c 0a 20 , NULL, NULL},.
1fc0: 20 20 20 20 7b 22 64 65 66 61 75 6c 74 22 2c 09 {"default",.
1fd0: 09 20 20 20 49 6e 66 6f 44 65 66 61 75 6c 74 43 . InfoDefaultC
1fe0: 6d 64 2c 09 20 20 20 20 4e 55 4c 4c 2c 20 4e 55 md,. NULL, NU
1ff0: 4c 4c 2c 20 4e 55 4c 4c 7d 2c 0a 2b 20 20 20 20 LL, NULL},.+
2000: 7b 22 65 72 72 6f 72 73 74 61 63 6b 22 2c 09 20 {"errorstack",.
2010: 20 20 49 6e 66 6f 45 72 72 6f 72 53 74 61 63 6b InfoErrorStack
2020: 43 6d 64 2c 09 20 20 20 20 4e 55 4c 4c 2c 20 4e Cmd,. NULL, N
2030: 55 4c 4c 2c 20 4e 55 4c 4c 7d 2c 0a 20 20 20 20 ULL, NULL},.
2040: 20 7b 22 65 78 69 73 74 73 22 2c 09 09 20 20 20 {"exists",..
2050: 54 63 6c 49 6e 66 6f 45 78 69 73 74 73 43 6d 64 TclInfoExistsCmd
2060: 2c 09 20 20 20 20 54 63 6c 43 6f 6d 70 69 6c 65 ,. TclCompile
2070: 49 6e 66 6f 45 78 69 73 74 73 43 6d 64 2c 20 4e InfoExistsCmd, N
2080: 55 4c 4c 2c 20 4e 55 4c 4c 7d 2c 0a 20 20 20 20 ULL, NULL},.
2090: 20 7b 22 66 72 61 6d 65 22 2c 09 09 20 20 20 49 {"frame",.. I
20a0: 6e 66 6f 46 72 61 6d 65 43 6d 64 2c 09 20 20 20 nfoFrameCmd,.
20b0: 20 4e 55 4c 4c 2c 20 4e 55 4c 4c 2c 20 4e 55 4c NULL, NULL, NUL
20c0: 4c 7d 2c 0a 20 20 20 20 20 7b 22 66 75 6e 63 74 L},. {"funct
20d0: 69 6f 6e 73 22 2c 09 20 20 20 49 6e 66 6f 46 75 ions",. InfoFu
20e0: 6e 63 74 69 6f 6e 73 43 6d 64 2c 09 20 20 20 20 nctionsCmd,.
20f0: 4e 55 4c 4c 2c 20 4e 55 4c 4c 2c 20 4e 55 4c 4c NULL, NULL, NULL
2100: 7d 2c 0a 40 40 20 2d 31 30 32 32 2c 36 20 2b 31 },.@@ -1022,6 +1
2110: 30 32 36 2c 35 35 20 40 40 20 49 6e 66 6f 44 65 026,55 @@ InfoDe
2120: 66 61 75 6c 74 43 6d 64 28 0a 20 2f 2a 0a 20 20 faultCmd(. /*.
2130: 2a 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d *---------------
2140: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d ----------------
2150: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d ----------------
2160: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d ----------------
2170: 2d 2d 2d 2d 2d 2d 2d 0a 20 20 2a 0a 2b 20 2a 20 -------. *.+ *
2180: 49 6e 66 6f 45 72 72 6f 72 53 74 61 63 6b 43 6d InfoErrorStackCm
2190: 64 20 2d 2d 0a 2b 20 2a 0a 2b 20 2a 09 43 61 6c d --.+ *.+ *.Cal
21a0: 6c 65 64 20 74 6f 20 69 6d 70 6c 65 6d 65 6e 74 led to implement
21b0: 20 74 68 65 20 22 69 6e 66 6f 20 65 72 72 6f 72 the "info error
21c0: 73 74 61 63 6b 22 20 63 6f 6d 6d 61 6e 64 20 74 stack" command t
21d0: 68 61 74 20 72 65 74 75 72 6e 73 20 69 6e 66 6f hat returns info
21e0: 72 6d 61 74 69 6f 6e 0a 2b 20 2a 09 61 62 6f 75 rmation.+ *.abou
21f0: 74 20 74 68 65 20 6c 61 73 74 20 65 72 72 6f 72 t the last error
2200: 27 73 20 63 61 6c 6c 20 73 74 61 63 6b 2e 20 48 's call stack. H
2210: 61 6e 64 6c 65 73 20 74 68 65 20 66 6f 6c 6c 6f andles the follo
2220: 77 69 6e 67 20 73 79 6e 74 61 78 3a 0a 2b 20 2a wing syntax:.+ *
2230: 0a 2b 20 2a 09 20 20 20 20 69 6e 66 6f 20 65 72 .+ *. info er
2240: 72 6f 72 73 74 61 63 6b 20 3f 69 6e 74 65 72 70 rorstack ?interp
2250: 3f 0a 2b 20 2a 0a 2b 20 2a 20 52 65 73 75 6c 74 ?.+ *.+ * Result
2260: 73 3a 0a 2b 20 2a 09 52 65 74 75 72 6e 73 20 54 s:.+ *.Returns T
2270: 43 4c 5f 4f 4b 20 69 66 20 73 75 63 63 65 73 73 CL_OK if success
2280: 66 75 6c 20 61 6e 64 20 54 43 4c 5f 45 52 52 4f ful and TCL_ERRO
2290: 52 20 69 66 20 74 68 65 72 65 20 69 73 20 61 6e R if there is an
22a0: 20 65 72 72 6f 72 2e 0a 2b 20 2a 0a 2b 20 2a 20 error..+ *.+ *
22b0: 53 69 64 65 20 65 66 66 65 63 74 73 3a 0a 2b 20 Side effects:.+
22c0: 2a 09 52 65 74 75 72 6e 73 20 61 20 72 65 73 75 *.Returns a resu
22d0: 6c 74 20 69 6e 20 74 68 65 20 69 6e 74 65 72 70 lt in the interp
22e0: 72 65 74 65 72 27 73 20 72 65 73 75 6c 74 20 6f reter's result o
22f0: 62 6a 65 63 74 2e 20 49 66 20 74 68 65 72 65 20 bject. If there
2300: 69 73 20 61 6e 0a 2b 20 2a 09 65 72 72 6f 72 2c is an.+ *.error,
2310: 20 74 68 65 20 72 65 73 75 6c 74 20 69 73 20 61 the result is a
2320: 6e 20 65 72 72 6f 72 20 6d 65 73 73 61 67 65 2e n error message.
2330: 0a 2b 20 2a 0a 2b 20 2a 2d 2d 2d 2d 2d 2d 2d 2d .+ *.+ *--------
2340: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d ----------------
2350: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d ----------------
2360: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d ----------------
2370: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 0a 2b --------------.+
2380: 20 2a 2f 0a 2b 0a 2b 73 74 61 74 69 63 20 69 6e */.+.+static in
2390: 74 0a 2b 49 6e 66 6f 45 72 72 6f 72 53 74 61 63 t.+InfoErrorStac
23a0: 6b 43 6d 64 28 0a 2b 20 20 20 20 43 6c 69 65 6e kCmd(.+ Clien
23b0: 74 44 61 74 61 20 64 75 6d 6d 79 2c 09 09 2f 2a tData dummy,../*
23c0: 20 4e 6f 74 20 75 73 65 64 2e 20 2a 2f 0a 2b 20 Not used. */.+
23d0: 20 20 20 54 63 6c 5f 49 6e 74 65 72 70 20 2a 69 Tcl_Interp *i
23e0: 6e 74 65 72 70 2c 09 09 2f 2a 20 43 75 72 72 65 nterp,../* Curre
23f0: 6e 74 20 69 6e 74 65 72 70 72 65 74 65 72 2e 20 nt interpreter.
2400: 2a 2f 0a 2b 20 20 20 20 69 6e 74 20 6f 62 6a 63 */.+ int objc
2410: 2c 09 09 09 2f 2a 20 4e 75 6d 62 65 72 20 6f 66 ,.../* Number of
2420: 20 61 72 67 75 6d 65 6e 74 73 2e 20 2a 2f 0a 2b arguments. */.+
2430: 20 20 20 20 54 63 6c 5f 4f 62 6a 20 2a 63 6f 6e Tcl_Obj *con
2440: 73 74 20 6f 62 6a 76 5b 5d 29 09 2f 2a 20 41 72 st objv[])./* Ar
2450: 67 75 6d 65 6e 74 20 6f 62 6a 65 63 74 73 2e 20 gument objects.
2460: 2a 2f 0a 2b 7b 0a 2b 20 20 20 20 54 63 6c 5f 49 */.+{.+ Tcl_I
2470: 6e 74 65 72 70 20 2a 74 61 72 67 65 74 3b 0a 2b nterp *target;.+
2480: 20 20 20 20 49 6e 74 65 72 70 20 2a 69 50 74 72 Interp *iPtr
2490: 3b 0a 2b 0a 2b 20 20 20 20 69 66 20 28 28 6f 62 ;.+.+ if ((ob
24a0: 6a 63 20 21 3d 20 31 29 20 26 26 20 28 6f 62 6a jc != 1) && (obj
24b0: 63 20 21 3d 20 32 29 29 20 7b 0a 2b 09 54 63 6c c != 2)) {.+.Tcl
24c0: 5f 57 72 6f 6e 67 4e 75 6d 41 72 67 73 28 69 6e _WrongNumArgs(in
24d0: 74 65 72 70 2c 20 31 2c 20 6f 62 6a 76 2c 20 22 terp, 1, objv, "
24e0: 3f 69 6e 74 65 72 70 3f 22 29 3b 0a 2b 09 72 65 ?interp?");.+.re
24f0: 74 75 72 6e 20 54 43 4c 5f 45 52 52 4f 52 3b 0a turn TCL_ERROR;.
2500: 2b 20 20 20 20 7d 0a 2b 20 20 20 20 0a 2b 20 20 + }.+ .+
2510: 20 20 74 61 72 67 65 74 20 3d 20 69 6e 74 65 72 target = inter
2520: 70 3b 0a 2b 20 20 20 20 69 66 20 28 6f 62 6a 63 p;.+ if (objc
2530: 20 3d 3d 20 32 29 20 7b 0a 2b 20 20 20 20 20 20 == 2) {.+
2540: 20 20 74 61 72 67 65 74 20 3d 20 54 63 6c 5f 47 target = Tcl_G
2550: 65 74 53 6c 61 76 65 28 69 6e 74 65 72 70 2c 20 etSlave(interp,
2560: 54 63 6c 5f 47 65 74 53 74 72 69 6e 67 28 6f 62 Tcl_GetString(ob
2570: 6a 76 5b 31 5d 29 29 3b 0a 2b 20 20 20 20 20 20 jv[1]));.+
2580: 20 20 69 66 20 28 74 61 72 67 65 74 20 3d 3d 20 if (target ==
2590: 4e 55 4c 4c 29 20 7b 0a 2b 20 20 20 20 20 20 20 NULL) {.+
25a0: 20 20 20 20 20 72 65 74 75 72 6e 20 54 43 4c 5f return TCL_
25b0: 45 52 52 4f 52 3b 0a 2b 20 20 20 20 20 20 20 20 ERROR;.+
25c0: 7d 0a 2b 20 20 20 20 7d 0a 2b 0a 2b 20 20 20 20 }.+ }.+.+
25d0: 69 50 74 72 20 3d 20 28 49 6e 74 65 72 70 20 2a iPtr = (Interp *
25e0: 29 20 74 61 72 67 65 74 3b 0a 2b 20 20 20 20 54 ) target;.+ T
25f0: 63 6c 5f 53 65 74 4f 62 6a 52 65 73 75 6c 74 28 cl_SetObjResult(
2600: 69 6e 74 65 72 70 2c 20 69 50 74 72 2d 3e 65 72 interp, iPtr->er
2610: 72 6f 72 53 74 61 63 6b 29 3b 0a 2b 20 20 20 20 rorStack);.+
2620: 0a 2b 20 20 20 20 72 65 74 75 72 6e 20 54 43 4c .+ return TCL
2630: 5f 4f 4b 3b 0a 2b 7d 0a 2b 0c 0a 2b 2f 2a 0a 2b _OK;.+}.+..+/*.+
2640: 20 2a 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d *--------------
2650: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d ----------------
2660: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d ----------------
2670: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d ----------------
2680: 2d 2d 2d 2d 2d 2d 2d 2d 0a 2b 20 2a 0a 20 20 2a --------.+ *. *
2690: 20 54 63 6c 49 6e 66 6f 45 78 69 73 74 73 43 6d TclInfoExistsCm
26a0: 64 20 2d 2d 0a 20 20 2a 0a 20 20 2a 09 43 61 6c d --. *. *.Cal
26b0: 6c 65 64 20 74 6f 20 69 6d 70 6c 65 6d 65 6e 74 led to implement
26c0: 20 74 68 65 20 22 69 6e 66 6f 20 65 78 69 73 74 the "info exist
26d0: 73 22 20 63 6f 6d 6d 61 6e 64 20 74 68 61 74 20 s" command that
26e0: 64 65 74 65 72 6d 69 6e 65 73 20 77 68 65 74 68 determines wheth
26f0: 65 72 0a 40 40 20 2d 34 34 30 31 2c 35 20 2b 34 er.@@ -4401,5 +4
2700: 34 35 34 2c 37 20 40 40 20 53 65 6c 65 63 74 4f 454,7 @@ SelectO
2710: 62 6a 46 72 6f 6d 53 75 62 6c 69 73 74 28 0a 20 bjFromSublist(.
2720: 20 2a 20 6d 6f 64 65 3a 20 63 0a 20 20 2a 20 63 * mode: c. * c
2730: 2d 62 61 73 69 63 2d 6f 66 66 73 65 74 3a 20 34 -basic-offset: 4
2740: 0a 20 20 2a 20 66 69 6c 6c 2d 63 6f 6c 75 6d 6e . * fill-column
2750: 3a 20 37 38 0a 2b 20 2a 20 74 61 62 2d 77 69 64 : 78.+ * tab-wid
2760: 74 68 3a 20 38 0a 2b 20 2a 20 69 6e 64 65 6e 74 th: 8.+ * indent
2770: 2d 74 61 62 73 2d 6d 6f 64 65 3a 20 6e 69 6c 0a -tabs-mode: nil.
2780: 20 20 2a 20 45 6e 64 3a 0a 20 20 2a 2f 0a 49 6e * End:. */.In
2790: 64 65 78 3a 20 67 65 6e 65 72 69 63 2f 74 63 6c dex: generic/tcl
27a0: 49 6e 74 2e 68 0a 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d Int.h.==========
27b0: 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d ================
27c0: 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d ================
27d0: 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d ================
27e0: 3d 3d 3d 3d 3d 3d 3d 3d 3d 0a 52 43 53 20 66 69 =========.RCS fi
27f0: 6c 65 3a 20 2f 63 76 73 72 6f 6f 74 2f 74 63 6c le: /cvsroot/tcl
2800: 2f 74 63 6c 2f 67 65 6e 65 72 69 63 2f 74 63 6c /tcl/generic/tcl
2810: 49 6e 74 2e 68 2c 76 0a 72 65 74 72 69 65 76 69 Int.h,v.retrievi
2820: 6e 67 20 72 65 76 69 73 69 6f 6e 20 31 2e 34 36 ng revision 1.46
2830: 35 0a 64 69 66 66 20 2d 75 20 2d 70 20 2d 75 20 5.diff -u -p -u
2840: 2d 70 20 2d 72 31 2e 34 36 35 20 74 63 6c 49 6e -p -r1.465 tclIn
2850: 74 2e 68 0a 2d 2d 2d 20 67 65 6e 65 72 69 63 2f t.h.--- generic/
2860: 74 63 6c 49 6e 74 2e 68 09 31 39 20 4d 61 72 20 tclInt.h.19 Mar
2870: 32 30 31 30 20 31 31 3a 35 34 3a 30 37 20 2d 30 2010 11:54:07 -0
2880: 30 30 30 09 31 2e 34 36 35 0a 2b 2b 2b 20 67 65 000.1.465.+++ ge
2890: 6e 65 72 69 63 2f 74 63 6c 49 6e 74 2e 68 09 32 neric/tclInt.h.2
28a0: 34 20 4d 61 72 20 32 30 31 30 20 31 35 3a 35 35 4 Mar 2010 15:55
28b0: 3a 34 38 20 2d 30 30 30 30 0a 40 40 20 2d 31 39 :48 -0000.@@ -19
28c0: 38 34 2c 36 20 2b 31 39 38 34 2c 39 20 40 40 20 84,6 +1984,9 @@
28d0: 74 79 70 65 64 65 66 20 73 74 72 75 63 74 20 49 typedef struct I
28e0: 6e 74 65 72 70 20 7b 0a 20 20 20 20 20 54 63 6c nterp {. Tcl
28f0: 5f 4f 62 6a 20 2a 65 69 56 61 72 3b 09 09 2f 2a _Obj *eiVar;../*
2900: 20 63 61 63 68 65 64 20 72 65 66 20 74 6f 20 3a cached ref to :
2910: 3a 65 72 72 6f 72 49 6e 66 6f 20 76 61 72 69 61 :errorInfo varia
2920: 62 6c 65 2e 20 2a 2f 0a 20 20 20 20 20 54 63 6c ble. */. Tcl
2930: 5f 4f 62 6a 20 2a 65 72 72 6f 72 43 6f 64 65 3b _Obj *errorCode;
2940: 09 09 2f 2a 20 65 72 72 6f 72 43 6f 64 65 20 76 ../* errorCode v
2950: 61 6c 75 65 20 28 6e 6f 77 20 61 73 20 61 20 54 alue (now as a T
2960: 63 6c 5f 4f 62 6a 29 2e 20 2a 2f 0a 20 20 20 20 cl_Obj). */.
2970: 20 54 63 6c 5f 4f 62 6a 20 2a 65 63 56 61 72 3b Tcl_Obj *ecVar;
2980: 09 09 2f 2a 20 63 61 63 68 65 64 20 72 65 66 20 ../* cached ref
2990: 74 6f 20 3a 3a 65 72 72 6f 72 49 6e 66 6f 20 76 to ::errorInfo v
29a0: 61 72 69 61 62 6c 65 2e 20 2a 2f 0a 2b 20 20 20 ariable. */.+
29b0: 20 54 63 6c 5f 4f 62 6a 20 2a 65 72 72 6f 72 53 Tcl_Obj *errorS
29c0: 74 61 63 6b 3b 09 2f 2a 20 5b 69 6e 66 6f 20 65 tack;./* [info e
29d0: 72 72 6f 72 73 74 61 63 6b 5d 20 76 61 6c 75 65 rrorstack] value
29e0: 20 28 61 73 20 61 20 54 63 6c 5f 4f 62 6a 29 2e (as a Tcl_Obj).
29f0: 20 2a 2f 0a 2b 20 20 20 20 54 63 6c 5f 4f 62 6a */.+ Tcl_Obj
2a00: 20 2a 75 70 6c 65 76 65 6c 4c 69 74 65 72 61 6c *uplevelLiteral
2a10: 3b 09 2f 2a 20 22 75 70 6c 65 76 65 6c 22 20 6c ;./* "uplevel" l
2a20: 69 74 65 72 61 6c 20 66 6f 72 20 5b 69 6e 66 6f iteral for [info
2a30: 20 65 72 72 6f 72 73 74 61 63 6b 5d 20 2a 2f 0a errorstack] */.
2a40: 2b 20 20 20 20 69 6e 74 20 72 65 73 65 74 45 72 + int resetEr
2a50: 72 6f 72 53 74 61 63 6b 3b 20 20 20 20 20 20 20 rorStack;
2a60: 20 2f 2a 20 63 6f 6e 74 72 6f 6c 73 20 63 6c 65 /* controls cle
2a70: 61 6e 69 6e 67 20 75 70 20 6f 66 20 3a 3a 65 72 aning up of ::er
2a80: 72 6f 72 53 74 61 63 6b 20 2a 2f 0a 20 20 20 20 rorStack */.
2a90: 20 69 6e 74 20 72 65 74 75 72 6e 4c 65 76 65 6c int returnLevel
2aa0: 3b 09 09 2f 2a 20 5b 72 65 74 75 72 6e 20 2d 6c ;../* [return -l
2ab0: 65 76 65 6c 5d 20 70 61 72 61 6d 65 74 65 72 2e evel] parameter.
2ac0: 20 2a 2f 0a 20 0a 20 20 20 20 20 2f 2a 0a 49 6e */. . /*.In
2ad0: 64 65 78 3a 20 67 65 6e 65 72 69 63 2f 74 63 6c dex: generic/tcl
2ae0: 4e 61 6d 65 73 70 2e 63 0a 3d 3d 3d 3d 3d 3d 3d Namesp.c.=======
2af0: 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d ================
2b00: 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d ================
2b10: 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d ================
2b20: 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 0a 52 43 53 ============.RCS
2b30: 20 66 69 6c 65 3a 20 2f 63 76 73 72 6f 6f 74 2f file: /cvsroot/
2b40: 74 63 6c 2f 74 63 6c 2f 67 65 6e 65 72 69 63 2f tcl/tcl/generic/
2b50: 74 63 6c 4e 61 6d 65 73 70 2e 63 2c 76 0a 72 65 tclNamesp.c,v.re
2b60: 74 72 69 65 76 69 6e 67 20 72 65 76 69 73 69 6f trieving revisio
2b70: 6e 20 31 2e 32 30 34 0a 64 69 66 66 20 2d 75 20 n 1.204.diff -u
2b80: 2d 70 20 2d 75 20 2d 70 20 2d 72 31 2e 32 30 34 -p -u -p -r1.204
2b90: 20 74 63 6c 4e 61 6d 65 73 70 2e 63 0a 2d 2d 2d tclNamesp.c.---
2ba0: 20 67 65 6e 65 72 69 63 2f 74 63 6c 4e 61 6d 65 generic/tclName
2bb0: 73 70 2e 63 09 35 20 4d 61 72 20 32 30 31 30 20 sp.c.5 Mar 2010
2bc0: 31 34 3a 33 34 3a 30 34 20 2d 30 30 30 30 09 31 14:34:04 -0000.1
2bd0: 2e 32 30 34 0a 2b 2b 2b 20 67 65 6e 65 72 69 63 .204.+++ generic
2be0: 2f 74 63 6c 4e 61 6d 65 73 70 2e 63 09 32 34 20 /tclNamesp.c.24
2bf0: 4d 61 72 20 32 30 31 30 20 31 35 3a 35 35 3a 34 Mar 2010 15:55:4
2c00: 39 20 2d 30 30 30 30 0a 40 40 20 2d 34 38 37 33 9 -0000.@@ -4873
2c10: 2c 37 20 2b 34 38 37 33 2c 37 20 40 40 20 54 63 ,7 +4873,7 @@ Tc
2c20: 6c 5f 4c 6f 67 43 6f 6d 6d 61 6e 64 49 6e 66 6f l_LogCommandInfo
2c30: 28 0a 20 7b 0a 20 20 20 20 20 72 65 67 69 73 74 (. {. regist
2c40: 65 72 20 63 6f 6e 73 74 20 63 68 61 72 20 2a 70 er const char *p
2c50: 3b 0a 20 20 20 20 20 49 6e 74 65 72 70 20 2a 69 ;. Interp *i
2c60: 50 74 72 20 3d 20 28 49 6e 74 65 72 70 20 2a 29 Ptr = (Interp *)
2c70: 20 69 6e 74 65 72 70 3b 0a 2d 20 20 20 20 69 6e interp;.- in
2c80: 74 20 6f 76 65 72 66 6c 6f 77 2c 20 6c 69 6d 69 t overflow, limi
2c90: 74 20 3d 20 31 35 30 3b 0a 2b 20 20 20 20 69 6e t = 150;.+ in
2ca0: 74 20 6f 76 65 72 66 6c 6f 77 2c 20 6c 69 6d 69 t overflow, limi
2cb0: 74 20 3d 20 31 35 30 2c 20 6c 65 6e 3b 0a 20 20 t = 150, len;.
2cc0: 20 20 20 56 61 72 20 2a 76 61 72 50 74 72 2c 20 Var *varPtr,
2cd0: 2a 61 72 72 61 79 50 74 72 3b 0a 20 0a 20 20 20 *arrayPtr;. .
2ce0: 20 20 69 66 20 28 69 50 74 72 2d 3e 66 6c 61 67 if (iPtr->flag
2cf0: 73 20 26 20 45 52 52 5f 41 4c 52 45 41 44 59 5f s & ERR_ALREADY_
2d00: 4c 4f 47 47 45 44 29 20 7b 0a 40 40 20 2d 34 39 LOGGED) {.@@ -49
2d10: 33 32 2c 36 20 2b 34 39 33 32 2c 34 37 20 40 40 32,6 +4932,47 @@
2d20: 20 54 63 6c 5f 4c 6f 67 43 6f 6d 6d 61 6e 64 49 Tcl_LogCommandI
2d30: 6e 66 6f 28 0a 20 09 09 20 20 20 20 54 43 4c 5f nfo(. .. TCL_
2d40: 47 4c 4f 42 41 4c 5f 4f 4e 4c 59 29 3b 0a 20 09 GLOBAL_ONLY);. .
2d50: 7d 0a 20 20 20 20 20 7d 0a 2b 0a 2b 20 20 20 20 }. }.+.+
2d60: 2f 2a 0a 2b 20 20 20 20 20 2a 20 54 49 50 20 23 /*.+ * TIP #
2d70: 33 34 38 0a 2b 20 20 20 20 20 2a 2f 0a 2b 0a 2b 348.+ */.+.+
2d80: 20 20 20 20 69 66 20 28 54 63 6c 5f 49 73 53 68 if (Tcl_IsSh
2d90: 61 72 65 64 28 69 50 74 72 2d 3e 65 72 72 6f 72 ared(iPtr->error
2da0: 53 74 61 63 6b 29 29 20 7b 0a 2b 20 20 20 20 20 Stack)) {.+
2db0: 20 20 20 54 63 6c 5f 4f 62 6a 20 2a 6e 65 77 4f Tcl_Obj *newO
2dc0: 62 6a 3b 0a 2b 20 20 20 20 20 20 20 20 20 20 20 bj;.+
2dd0: 20 0a 2b 20 20 20 20 20 20 20 20 6e 65 77 4f 62 .+ newOb
2de0: 6a 20 3d 20 54 63 6c 5f 44 75 70 6c 69 63 61 74 j = Tcl_Duplicat
2df0: 65 4f 62 6a 28 69 50 74 72 2d 3e 65 72 72 6f 72 eObj(iPtr->error
2e00: 53 74 61 63 6b 29 3b 0a 2b 20 20 20 20 20 20 20 Stack);.+
2e10: 20 54 63 6c 5f 44 65 63 72 52 65 66 43 6f 75 6e Tcl_DecrRefCoun
2e20: 74 28 69 50 74 72 2d 3e 65 72 72 6f 72 53 74 61 t(iPtr->errorSta
2e30: 63 6b 29 3b 0a 2b 20 20 20 20 20 20 20 20 54 63 ck);.+ Tc
2e40: 6c 5f 49 6e 63 72 52 65 66 43 6f 75 6e 74 28 6e l_IncrRefCount(n
2e50: 65 77 4f 62 6a 29 3b 0a 2b 20 20 20 20 20 20 20 ewObj);.+
2e60: 20 69 50 74 72 2d 3e 65 72 72 6f 72 53 74 61 63 iPtr->errorStac
2e70: 6b 20 3d 20 6e 65 77 4f 62 6a 3b 0a 2b 20 20 20 k = newObj;.+
2e80: 20 7d 0a 2b 20 20 20 20 54 63 6c 5f 4c 69 73 74 }.+ Tcl_List
2e90: 4f 62 6a 4c 65 6e 67 74 68 28 69 6e 74 65 72 70 ObjLength(interp
2ea0: 2c 20 69 50 74 72 2d 3e 65 72 72 6f 72 53 74 61 , iPtr->errorSta
2eb0: 63 6b 2c 20 26 6c 65 6e 29 3b 0a 2b 20 20 20 20 ck, &len);.+
2ec0: 69 66 20 28 69 50 74 72 2d 3e 72 65 73 65 74 45 if (iPtr->resetE
2ed0: 72 72 6f 72 53 74 61 63 6b 29 20 7b 0a 2b 20 20 rrorStack) {.+
2ee0: 20 20 20 20 20 20 69 50 74 72 2d 3e 72 65 73 65 iPtr->rese
2ef0: 74 45 72 72 6f 72 53 74 61 63 6b 20 3d 20 30 3b tErrorStack = 0;
2f00: 0a 2b 20 20 20 20 20 20 20 20 2f 2a 20 72 65 73 .+ /* res
2f10: 65 74 20 77 68 69 6c 65 20 6b 65 65 70 69 6e 67 et while keeping
2f20: 20 74 68 65 20 6c 69 73 74 20 69 6e 74 72 65 70 the list intrep
2f30: 20 61 73 20 6d 75 63 68 20 61 73 20 70 6f 73 73 as much as poss
2f40: 69 62 6c 65 20 2a 2f 0a 2b 20 20 20 20 20 20 20 ible */.+
2f50: 20 54 63 6c 5f 4c 69 73 74 4f 62 6a 52 65 70 6c Tcl_ListObjRepl
2f60: 61 63 65 28 69 6e 74 65 72 70 2c 20 69 50 74 72 ace(interp, iPtr
2f70: 2d 3e 65 72 72 6f 72 53 74 61 63 6b 2c 20 30 2c ->errorStack, 0,
2f80: 20 6c 65 6e 2c 20 30 2c 20 4e 55 4c 4c 29 3b 0a len, 0, NULL);.
2f90: 2b 20 20 20 20 20 20 20 20 6c 65 6e 3d 30 3b 0a + len=0;.
2fa0: 2b 20 20 20 20 7d 20 0a 2b 20 20 20 20 69 66 20 + } .+ if
2fb0: 28 69 50 74 72 2d 3e 76 61 72 46 72 61 6d 65 50 (iPtr->varFrameP
2fc0: 74 72 20 21 3d 20 69 50 74 72 2d 3e 72 6f 6f 74 tr != iPtr->root
2fd0: 46 72 61 6d 65 50 74 72 29 20 7b 0a 2b 20 20 20 FramePtr) {.+
2fe0: 20 20 20 20 20 69 66 20 28 69 50 74 72 2d 3e 76 if (iPtr->v
2ff0: 61 72 46 72 61 6d 65 50 74 72 20 3d 3d 20 69 50 arFramePtr == iP
3000: 74 72 2d 3e 66 72 61 6d 65 50 74 72 29 20 7b 0a tr->framePtr) {.
3010: 2b 20 20 20 20 20 20 20 20 20 20 20 20 2f 2a 20 + /*
3020: 6e 6f 72 6d 61 6c 20 63 61 73 65 2c 20 5b 6c 61 normal case, [la
3030: 70 70 65 6e 64 20 65 72 72 6f 72 73 74 61 63 6b ppend errorstack
3040: 20 5b 69 6e 66 6f 20 6c 65 76 65 6c 20 30 5d 5d [info level 0]]
3050: 20 2a 2f 0a 2b 20 20 20 20 20 20 20 20 20 20 20 */.+
3060: 20 54 63 6c 5f 4c 69 73 74 4f 62 6a 41 70 70 65 Tcl_ListObjAppe
3070: 6e 64 45 6c 65 6d 65 6e 74 28 4e 55 4c 4c 2c 0a ndElement(NULL,.
3080: 2b 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 +
3090: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
30a0: 20 20 20 20 20 20 69 50 74 72 2d 3e 65 72 72 6f iPtr->erro
30b0: 72 53 74 61 63 6b 2c 0a 2b 20 20 20 20 20 20 20 rStack,.+
30c0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
30d0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 54 63 Tc
30e0: 6c 5f 4e 65 77 4c 69 73 74 4f 62 6a 28 69 50 74 l_NewListObj(iPt
30f0: 72 2d 3e 76 61 72 46 72 61 6d 65 50 74 72 2d 3e r->varFramePtr->
3100: 6f 62 6a 63 2c 0a 2b 20 20 20 20 20 20 20 20 20 objc,.+
3110: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
3120: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
3130: 20 20 20 20 20 20 20 20 20 20 20 69 50 74 72 2d iPtr-
3140: 3e 76 61 72 46 72 61 6d 65 50 74 72 2d 3e 6f 62 >varFramePtr->ob
3150: 6a 76 29 29 3b 0a 2b 20 20 20 20 20 20 20 20 7d jv));.+ }
3160: 20 65 6c 73 65 20 7b 0a 2b 20 20 20 20 20 20 20 else {.+
3170: 20 20 20 20 20 2f 2a 20 75 70 6c 65 76 65 6c 20 /* uplevel
3180: 63 61 73 65 2c 20 5b 6c 61 70 70 65 6e 64 20 65 case, [lappend e
3190: 72 72 6f 72 73 74 61 63 6b 20 5b 6c 69 73 74 20 rrorstack [list
31a0: 75 70 6c 65 76 65 6c 20 24 72 65 6c 61 74 69 76 uplevel $relativ
31b0: 65 6c 65 76 65 6c 5d 5d 20 2a 2f 0a 2b 20 20 20 elevel]] */.+
31c0: 20 20 20 20 20 20 20 20 20 73 74 72 75 63 74 20 struct
31d0: 43 61 6c 6c 46 72 61 6d 65 20 2a 66 72 61 6d 65 CallFrame *frame
31e0: 3b 0a 2b 20 20 20 20 20 20 20 20 20 20 20 20 69 ;.+ i
31f0: 6e 74 20 6e 3b 0a 2b 20 20 20 20 20 20 20 20 20 nt n;.+
3200: 20 20 20 54 63 6c 5f 4f 62 6a 20 2a 70 61 69 72 Tcl_Obj *pair
3210: 5b 32 5d 3b 0a 2b 0a 2b 20 20 20 20 20 20 20 20 [2];.+.+
3220: 20 20 20 20 66 6f 72 28 6e 3d 30 20 2c 20 66 72 for(n=0 , fr
3230: 61 6d 65 3d 69 50 74 72 2d 3e 66 72 61 6d 65 50 ame=iPtr->frameP
3240: 74 72 3b 20 28 66 72 61 6d 65 20 26 26 20 28 66 tr; (frame && (f
3250: 72 61 6d 65 20 21 3d 20 69 50 74 72 2d 3e 76 61 rame != iPtr->va
3260: 72 46 72 61 6d 65 50 74 72 29 29 3b 20 6e 2b 2b rFramePtr)); n++
3270: 20 2c 20 66 72 61 6d 65 3d 66 72 61 6d 65 2d 3e , frame=frame->
3280: 63 61 6c 6c 65 72 56 61 72 50 74 72 29 3b 0a 2b callerVarPtr);.+
3290: 20 20 20 20 20 20 20 20 20 20 20 20 70 61 69 72 pair
32a0: 5b 30 5d 20 3d 20 69 50 74 72 2d 3e 75 70 6c 65 [0] = iPtr->uple
32b0: 76 65 6c 4c 69 74 65 72 61 6c 3b 0a 2b 20 20 20 velLiteral;.+
32c0: 20 20 20 20 20 20 20 20 20 70 61 69 72 5b 31 5d pair[1]
32d0: 20 3d 20 54 63 6c 5f 4e 65 77 49 6e 74 4f 62 6a = Tcl_NewIntObj
32e0: 28 6e 29 3b 0a 2b 20 20 20 20 20 20 20 20 20 20 (n);.+
32f0: 20 20 54 63 6c 5f 4c 69 73 74 4f 62 6a 41 70 70 Tcl_ListObjApp
3300: 65 6e 64 45 6c 65 6d 65 6e 74 28 4e 55 4c 4c 2c endElement(NULL,
3310: 0a 2b 20 20 20 20 20 20 20 20 20 20 20 20 20 20 .+
3320: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
3330: 20 20 20 20 20 20 20 69 50 74 72 2d 3e 65 72 72 iPtr->err
3340: 6f 72 53 74 61 63 6b 2c 0a 2b 20 20 20 20 20 20 orStack,.+
3350: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
3360: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 54 T
3370: 63 6c 5f 4e 65 77 4c 69 73 74 4f 62 6a 28 32 2c cl_NewListObj(2,
3380: 70 61 69 72 29 29 3b 0a 2b 20 20 20 20 20 20 20 pair));.+
3390: 20 7d 0a 2b 20 20 20 20 7d 0a 20 7d 0a 20 0c 0a }.+ }. }. ..
33a0: 20 2f 2a 0a 40 40 20 2d 34 39 33 39 2c 35 20 2b /*.@@ -4939,5 +
33b0: 34 39 38 30 2c 37 20 40 40 20 54 63 6c 5f 4c 6f 4980,7 @@ Tcl_Lo
33c0: 67 43 6f 6d 6d 61 6e 64 49 6e 66 6f 28 0a 20 20 gCommandInfo(.
33d0: 2a 20 6d 6f 64 65 3a 20 63 0a 20 20 2a 20 63 2d * mode: c. * c-
33e0: 62 61 73 69 63 2d 6f 66 66 73 65 74 3a 20 34 0a basic-offset: 4.
33f0: 20 20 2a 20 66 69 6c 6c 2d 63 6f 6c 75 6d 6e 3a * fill-column:
3400: 20 37 38 0a 2b 20 2a 20 74 61 62 2d 77 69 64 74 78.+ * tab-widt
3410: 68 3a 20 38 0a 2b 20 2a 20 69 6e 64 65 6e 74 2d h: 8.+ * indent-
3420: 74 61 62 73 2d 6d 6f 64 65 3a 20 6e 69 6c 0a 20 tabs-mode: nil.
3430: 20 2a 20 45 6e 64 3a 0a 20 20 2a 2f 0a 49 6e 64 * End:. */.Ind
3440: 65 78 3a 20 67 65 6e 65 72 69 63 2f 74 63 6c 52 ex: generic/tclR
3450: 65 73 75 6c 74 2e 63 0a 3d 3d 3d 3d 3d 3d 3d 3d esult.c.========
3460: 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d ================
3470: 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d ================
3480: 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d ================
3490: 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 0a 52 43 53 20 ===========.RCS
34a0: 66 69 6c 65 3a 20 2f 63 76 73 72 6f 6f 74 2f 74 file: /cvsroot/t
34b0: 63 6c 2f 74 63 6c 2f 67 65 6e 65 72 69 63 2f 74 cl/tcl/generic/t
34c0: 63 6c 52 65 73 75 6c 74 2e 63 2c 76 0a 72 65 74 clResult.c,v.ret
34d0: 72 69 65 76 69 6e 67 20 72 65 76 69 73 69 6f 6e rieving revision
34e0: 20 31 2e 35 38 0a 64 69 66 66 20 2d 75 20 2d 70 1.58.diff -u -p
34f0: 20 2d 75 20 2d 70 20 2d 72 31 2e 35 38 20 74 63 -u -p -r1.58 tc
3500: 6c 52 65 73 75 6c 74 2e 63 0a 2d 2d 2d 20 67 65 lResult.c.--- ge
3510: 6e 65 72 69 63 2f 74 63 6c 52 65 73 75 6c 74 2e neric/tclResult.
3520: 63 09 32 34 20 4d 61 72 20 32 30 31 30 20 31 35 c.24 Mar 2010 15
3530: 3a 33 33 3a 31 34 20 2d 30 30 30 30 09 31 2e 35 :33:14 -0000.1.5
3540: 38 0a 2b 2b 2b 20 67 65 6e 65 72 69 63 2f 74 63 8.+++ generic/tc
3550: 6c 52 65 73 75 6c 74 2e 63 09 32 34 20 4d 61 72 lResult.c.24 Mar
3560: 20 32 30 31 30 20 31 35 3a 35 35 3a 34 39 20 2d 2010 15:55:49 -
3570: 30 30 30 30 0a 40 40 20 2d 31 39 2c 37 20 2b 31 0000.@@ -19,7 +1
3580: 39 2c 37 20 40 40 0a 20 0a 20 65 6e 75 6d 20 72 9,7 @@. . enum r
3590: 65 74 75 72 6e 4b 65 79 73 20 7b 0a 20 20 20 20 eturnKeys {.
35a0: 20 4b 45 59 5f 43 4f 44 45 2c 09 4b 45 59 5f 45 KEY_CODE,.KEY_E
35b0: 52 52 4f 52 43 4f 44 45 2c 09 4b 45 59 5f 45 52 RRORCODE,.KEY_ER
35c0: 52 4f 52 49 4e 46 4f 2c 09 4b 45 59 5f 45 52 52 RORINFO,.KEY_ERR
35d0: 4f 52 4c 49 4e 45 2c 0a 2d 20 20 20 20 4b 45 59 ORLINE,.- KEY
35e0: 5f 4c 45 56 45 4c 2c 09 4b 45 59 5f 4f 50 54 49 _LEVEL,.KEY_OPTI
35f0: 4f 4e 53 2c 09 4b 45 59 5f 4c 41 53 54 0a 2b 20 ONS,.KEY_LAST.+
3600: 20 20 20 4b 45 59 5f 4c 45 56 45 4c 2c 09 4b 45 KEY_LEVEL,.KE
3610: 59 5f 4f 50 54 49 4f 4e 53 2c 09 4b 45 59 5f 45 Y_OPTIONS,.KEY_E
3620: 52 52 4f 52 53 54 41 43 4b 2c 09 4b 45 59 5f 4c RRORSTACK,.KEY_L
3630: 41 53 54 0a 20 7d 3b 0a 20 0a 20 2f 2a 0a 40 40 AST. };. . /*.@@
3640: 20 2d 39 32 34 2c 36 20 2b 39 32 34 2c 37 20 40 -924,6 +924,7 @
3650: 40 20 54 63 6c 5f 52 65 73 65 74 52 65 73 75 6c @ Tcl_ResetResul
3660: 74 28 0a 20 09 54 63 6c 5f 44 65 63 72 52 65 66 t(. .Tcl_DecrRef
3670: 43 6f 75 6e 74 28 69 50 74 72 2d 3e 65 72 72 6f Count(iPtr->erro
3680: 72 49 6e 66 6f 29 3b 0a 20 09 69 50 74 72 2d 3e rInfo);. .iPtr->
3690: 65 72 72 6f 72 49 6e 66 6f 20 3d 20 4e 55 4c 4c errorInfo = NULL
36a0: 3b 0a 20 20 20 20 20 7d 0a 2b 20 20 20 20 69 50 ;. }.+ iP
36b0: 74 72 2d 3e 72 65 73 65 74 45 72 72 6f 72 53 74 tr->resetErrorSt
36c0: 61 63 6b 20 3d 20 31 3b 0a 20 20 20 20 20 69 50 ack = 1;. iP
36d0: 74 72 2d 3e 72 65 74 75 72 6e 4c 65 76 65 6c 20 tr->returnLevel
36e0: 3d 20 31 3b 0a 20 20 20 20 20 69 50 74 72 2d 3e = 1;. iPtr->
36f0: 72 65 74 75 72 6e 43 6f 64 65 20 3d 20 54 43 4c returnCode = TCL
3700: 5f 4f 4b 3b 0a 20 20 20 20 20 69 66 20 28 69 50 _OK;. if (iP
3710: 74 72 2d 3e 72 65 74 75 72 6e 4f 70 74 73 29 20 tr->returnOpts)
3720: 7b 0a 40 40 20 2d 31 31 36 31 2c 36 20 2b 31 31 {.@@ -1161,6 +11
3730: 36 32 2c 37 20 40 40 20 47 65 74 4b 65 79 73 28 62,7 @@ GetKeys(
3740: 76 6f 69 64 29 0a 20 09 54 63 6c 4e 65 77 4c 69 void). .TclNewLi
3750: 74 65 72 61 6c 53 74 72 69 6e 67 4f 62 6a 28 6b teralStringObj(k
3760: 65 79 73 5b 4b 45 59 5f 45 52 52 4f 52 43 4f 44 eys[KEY_ERRORCOD
3770: 45 5d 2c 20 22 2d 65 72 72 6f 72 63 6f 64 65 22 E], "-errorcode"
3780: 29 3b 0a 20 09 54 63 6c 4e 65 77 4c 69 74 65 72 );. .TclNewLiter
3790: 61 6c 53 74 72 69 6e 67 4f 62 6a 28 6b 65 79 73 alStringObj(keys
37a0: 5b 4b 45 59 5f 45 52 52 4f 52 49 4e 46 4f 5d 2c [KEY_ERRORINFO],
37b0: 20 22 2d 65 72 72 6f 72 69 6e 66 6f 22 29 3b 0a "-errorinfo");.
37c0: 20 09 54 63 6c 4e 65 77 4c 69 74 65 72 61 6c 53 .TclNewLiteralS
37d0: 74 72 69 6e 67 4f 62 6a 28 6b 65 79 73 5b 4b 45 tringObj(keys[KE
37e0: 59 5f 45 52 52 4f 52 4c 49 4e 45 5d 2c 20 22 2d Y_ERRORLINE], "-
37f0: 65 72 72 6f 72 6c 69 6e 65 22 29 3b 0a 2b 09 54 errorline");.+.T
3800: 63 6c 4e 65 77 4c 69 74 65 72 61 6c 53 74 72 69 clNewLiteralStri
3810: 6e 67 4f 62 6a 28 6b 65 79 73 5b 4b 45 59 5f 45 ngObj(keys[KEY_E
3820: 52 52 4f 52 53 54 41 43 4b 5d 2c 22 2d 65 72 72 RRORSTACK],"-err
3830: 6f 72 73 74 61 63 6b 22 29 3b 0a 20 09 54 63 6c orstack");. .Tcl
3840: 4e 65 77 4c 69 74 65 72 61 6c 53 74 72 69 6e 67 NewLiteralString
3850: 4f 62 6a 28 6b 65 79 73 5b 4b 45 59 5f 4c 45 56 Obj(keys[KEY_LEV
3860: 45 4c 5d 2c 09 20 20 20 20 22 2d 6c 65 76 65 6c EL],. "-level
3870: 22 29 3b 0a 20 09 54 63 6c 4e 65 77 4c 69 74 65 ");. .TclNewLite
3880: 72 61 6c 53 74 72 69 6e 67 4f 62 6a 28 6b 65 79 ralStringObj(key
3890: 73 5b 4b 45 59 5f 4f 50 54 49 4f 4e 53 5d 2c 20 s[KEY_OPTIONS],
38a0: 20 20 22 2d 6f 70 74 69 6f 6e 73 22 29 3b 0a 20 "-options");.
38b0: 0a 40 40 20 2d 31 32 36 36 2c 36 20 2b 31 32 36 .@@ -1266,6 +126
38c0: 38 2c 33 31 20 40 40 20 54 63 6c 50 72 6f 63 65 8,31 @@ TclProce
38d0: 73 73 52 65 74 75 72 6e 28 0a 20 09 09 69 50 74 ssReturn(. ..iPt
38e0: 72 2d 3e 66 6c 61 67 73 20 7c 3d 20 45 52 52 5f r->flags |= ERR_
38f0: 41 4c 52 45 41 44 59 5f 4c 4f 47 47 45 44 3b 0a ALREADY_LOGGED;.
3900: 20 09 20 20 20 20 7d 0a 20 09 7d 0a 2b 09 54 63 . }. .}.+.Tc
3910: 6c 5f 44 69 63 74 4f 62 6a 47 65 74 28 4e 55 4c l_DictObjGet(NUL
3920: 4c 2c 20 69 50 74 72 2d 3e 72 65 74 75 72 6e 4f L, iPtr->returnO
3930: 70 74 73 2c 20 6b 65 79 73 5b 4b 45 59 5f 45 52 pts, keys[KEY_ER
3940: 52 4f 52 53 54 41 43 4b 5d 2c 20 26 76 61 6c 75 RORSTACK], &valu
3950: 65 50 74 72 29 3b 0a 2b 09 69 66 20 28 76 61 6c ePtr);.+.if (val
3960: 75 65 50 74 72 20 21 3d 20 4e 55 4c 4c 29 20 7b uePtr != NULL) {
3970: 0a 2b 20 20 20 20 20 20 20 20 20 20 20 20 69 6e .+ in
3980: 74 20 6c 65 6e 2c 20 76 61 6c 75 65 4f 62 6a 63 t len, valueObjc
3990: 3b 0a 2b 20 20 20 20 20 20 20 20 20 20 20 20 54 ;.+ T
39a0: 63 6c 5f 4f 62 6a 20 2a 2a 76 61 6c 75 65 4f 62 cl_Obj **valueOb
39b0: 6a 76 3b 0a 2b 0a 2b 20 20 20 20 20 20 20 20 20 jv;.+.+
39c0: 20 20 20 69 66 20 28 54 63 6c 5f 49 73 53 68 61 if (Tcl_IsSha
39d0: 72 65 64 28 69 50 74 72 2d 3e 65 72 72 6f 72 53 red(iPtr->errorS
39e0: 74 61 63 6b 29 29 20 7b 0a 2b 20 20 20 20 20 20 tack)) {.+
39f0: 20 20 20 20 20 20 20 20 20 20 54 63 6c 5f 4f 62 Tcl_Ob
3a00: 6a 20 2a 6e 65 77 4f 62 6a 3b 0a 2b 20 20 20 20 j *newObj;.+
3a10: 20 20 20 20 20 20 20 20 20 20 20 20 0a 2b 20 20 .+
3a20: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 6e 65 ne
3a30: 77 4f 62 6a 20 3d 20 54 63 6c 5f 44 75 70 6c 69 wObj = Tcl_Dupli
3a40: 63 61 74 65 4f 62 6a 28 69 50 74 72 2d 3e 65 72 cateObj(iPtr->er
3a50: 72 6f 72 53 74 61 63 6b 29 3b 0a 2b 20 20 20 20 rorStack);.+
3a60: 20 20 20 20 20 20 20 20 20 20 20 20 54 63 6c 5f Tcl_
3a70: 44 65 63 72 52 65 66 43 6f 75 6e 74 28 69 50 74 DecrRefCount(iPt
3a80: 72 2d 3e 65 72 72 6f 72 53 74 61 63 6b 29 3b 0a r->errorStack);.
3a90: 2b 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 +
3aa0: 20 54 63 6c 5f 49 6e 63 72 52 65 66 43 6f 75 6e Tcl_IncrRefCoun
3ab0: 74 28 6e 65 77 4f 62 6a 29 3b 0a 2b 20 20 20 20 t(newObj);.+
3ac0: 20 20 20 20 20 20 20 20 20 20 20 20 69 50 74 72 iPtr
3ad0: 2d 3e 65 72 72 6f 72 53 74 61 63 6b 20 3d 20 6e ->errorStack = n
3ae0: 65 77 4f 62 6a 3b 0a 2b 20 20 20 20 20 20 20 20 ewObj;.+
3af0: 20 20 20 20 7d 0a 2b 20 20 20 20 20 20 20 20 20 }.+
3b00: 20 20 20 2f 2a 0a 2b 20 20 20 20 20 20 20 20 20 /*.+
3b10: 20 20 20 20 2a 20 4c 69 73 74 20 65 78 74 72 61 * List extra
3b20: 63 74 69 6f 6e 20 64 6f 6e 65 20 61 66 74 65 72 ction done after
3b30: 20 64 75 70 6c 69 63 61 74 69 6f 6e 20 74 6f 20 duplication to
3b40: 61 76 6f 69 64 20 6d 6f 76 69 6e 67 20 74 68 65 avoid moving the
3b50: 20 72 75 67 0a 2b 20 20 20 20 20 20 20 20 20 20 rug.+
3b60: 20 20 20 2a 20 69 66 20 73 6f 6d 65 6f 6e 65 20 * if someone
3b70: 64 6f 65 73 20 5b 72 65 74 75 72 6e 20 2d 65 72 does [return -er
3b80: 72 6f 72 73 74 61 63 6b 20 5b 69 6e 66 6f 20 65 rorstack [info e
3b90: 72 72 6f 72 73 74 61 63 6b 5d 5d 0a 2b 20 20 20 rrorstack]].+
3ba0: 20 20 20 20 20 20 20 20 20 20 2a 2f 0a 2b 20 20 */.+
3bb0: 20 20 20 20 20 20 20 20 20 20 69 66 20 28 54 63 if (Tc
3bc0: 6c 5f 4c 69 73 74 4f 62 6a 47 65 74 45 6c 65 6d l_ListObjGetElem
3bd0: 65 6e 74 73 28 69 6e 74 65 72 70 2c 20 76 61 6c ents(interp, val
3be0: 75 65 50 74 72 2c 20 26 76 61 6c 75 65 4f 62 6a uePtr, &valueObj
3bf0: 63 2c 20 26 76 61 6c 75 65 4f 62 6a 76 29 20 3d c, &valueObjv) =
3c00: 3d 20 54 43 4c 5f 45 52 52 4f 52 29 20 7b 0a 2b = TCL_ERROR) {.+
3c10: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
3c20: 72 65 74 75 72 6e 20 54 43 4c 5f 45 52 52 4f 52 return TCL_ERROR
3c30: 3b 0a 2b 20 20 20 20 20 20 20 20 20 20 20 20 7d ;.+ }
3c40: 0a 2b 20 20 20 20 20 20 20 20 20 20 20 20 69 50 .+ iP
3c50: 74 72 2d 3e 72 65 73 65 74 45 72 72 6f 72 53 74 tr->resetErrorSt
3c60: 61 63 6b 20 3d 20 30 3b 0a 2b 20 20 20 20 20 20 ack = 0;.+
3c70: 20 20 20 20 20 20 54 63 6c 5f 4c 69 73 74 4f 62 Tcl_ListOb
3c80: 6a 4c 65 6e 67 74 68 28 69 6e 74 65 72 70 2c 20 jLength(interp,
3c90: 69 50 74 72 2d 3e 65 72 72 6f 72 53 74 61 63 6b iPtr->errorStack
3ca0: 2c 20 26 6c 65 6e 29 3b 0a 2b 20 20 20 20 20 20 , &len);.+
3cb0: 20 20 20 20 20 20 2f 2a 20 72 65 73 65 74 20 77 /* reset w
3cc0: 68 69 6c 65 20 6b 65 65 70 69 6e 67 20 74 68 65 hile keeping the
3cd0: 20 6c 69 73 74 20 69 6e 74 72 65 70 20 61 73 20 list intrep as
3ce0: 6d 75 63 68 20 61 73 20 70 6f 73 73 69 62 6c 65 much as possible
3cf0: 20 2a 2f 0a 2b 20 20 20 20 20 20 20 20 20 20 20 */.+
3d00: 20 54 63 6c 5f 4c 69 73 74 4f 62 6a 52 65 70 6c Tcl_ListObjRepl
3d10: 61 63 65 28 69 6e 74 65 72 70 2c 20 69 50 74 72 ace(interp, iPtr
3d20: 2d 3e 65 72 72 6f 72 53 74 61 63 6b 2c 20 30 2c ->errorStack, 0,
3d30: 20 6c 65 6e 2c 20 76 61 6c 75 65 4f 62 6a 63 2c len, valueObjc,
3d40: 20 76 61 6c 75 65 4f 62 6a 76 29 3b 0a 2b 20 09 valueObjv);.+ .
3d50: 7d 0a 20 09 54 63 6c 5f 44 69 63 74 4f 62 6a 47 }. .Tcl_DictObjG
3d60: 65 74 28 4e 55 4c 4c 2c 20 69 50 74 72 2d 3e 72 et(NULL, iPtr->r
3d70: 65 74 75 72 6e 4f 70 74 73 2c 20 6b 65 79 73 5b eturnOpts, keys[
3d80: 4b 45 59 5f 45 52 52 4f 52 43 4f 44 45 5d 2c 20 KEY_ERRORCODE],
3d90: 26 76 61 6c 75 65 50 74 72 29 3b 0a 20 09 69 66 &valuePtr);. .if
3da0: 20 28 76 61 6c 75 65 50 74 72 20 21 3d 20 4e 55 (valuePtr != NU
3db0: 4c 4c 29 20 7b 0a 20 09 20 20 20 20 54 63 6c 5f LL) {. . Tcl_
3dc0: 53 65 74 4f 62 6a 45 72 72 6f 72 43 6f 64 65 28 SetObjErrorCode(
3dd0: 69 6e 74 65 72 70 2c 20 76 61 6c 75 65 50 74 72 interp, valuePtr
3de0: 29 3b 0a 40 40 20 2d 31 34 34 37 2c 36 20 2b 31 );.@@ -1447,6 +1
3df0: 34 37 34 2c 32 37 20 40 40 20 54 63 6c 4d 65 72 474,27 @@ TclMer
3e00: 67 65 52 65 74 75 72 6e 4f 70 74 69 6f 6e 73 28 geReturnOptions(
3e10: 0a 20 20 20 20 20 7d 0a 20 0a 20 20 20 20 20 2f . }. . /
3e20: 2a 0a 2b 20 20 20 20 20 2a 20 43 68 65 63 6b 20 *.+ * Check
3e30: 66 6f 72 20 62 6f 67 75 73 20 2d 65 72 72 6f 72 for bogus -error
3e40: 73 74 61 63 6b 20 76 61 6c 75 65 2e 0a 2b 20 20 stack value..+
3e50: 20 20 20 2a 2f 0a 2b 0a 2b 20 20 20 20 54 63 6c */.+.+ Tcl
3e60: 5f 44 69 63 74 4f 62 6a 47 65 74 28 4e 55 4c 4c _DictObjGet(NULL
3e70: 2c 20 72 65 74 75 72 6e 4f 70 74 73 2c 20 6b 65 , returnOpts, ke
3e80: 79 73 5b 4b 45 59 5f 45 52 52 4f 52 53 54 41 43 ys[KEY_ERRORSTAC
3e90: 4b 5d 2c 20 26 76 61 6c 75 65 50 74 72 29 3b 0a K], &valuePtr);.
3ea0: 2b 20 20 20 20 69 66 20 28 76 61 6c 75 65 50 74 + if (valuePt
3eb0: 72 20 21 3d 20 4e 55 4c 4c 29 20 7b 0a 2b 09 69 r != NULL) {.+.i
3ec0: 6e 74 20 6c 65 6e 67 74 68 3b 0a 2b 0a 2b 09 69 nt length;.+.+.i
3ed0: 66 20 28 54 43 4c 5f 45 52 52 4f 52 20 3d 3d 20 f (TCL_ERROR ==
3ee0: 54 63 6c 5f 4c 69 73 74 4f 62 6a 4c 65 6e 67 74 Tcl_ListObjLengt
3ef0: 68 28 4e 55 4c 4c 2c 20 76 61 6c 75 65 50 74 72 h(NULL, valuePtr
3f00: 2c 20 26 6c 65 6e 67 74 68 20 29 29 20 7b 0a 2b , &length )) {.+
3f10: 09 20 20 20 20 2f 2a 0a 2b 09 20 20 20 20 20 2a . /*.+. *
3f20: 20 56 61 6c 75 65 20 69 73 20 6e 6f 74 20 61 20 Value is not a
3f30: 6c 69 73 74 2c 20 77 68 69 63 68 20 69 73 20 69 list, which is i
3f40: 6c 6c 65 67 61 6c 20 66 6f 72 20 2d 65 72 72 6f llegal for -erro
3f50: 72 73 74 61 63 6b 2e 0a 2b 09 20 20 20 20 20 2a rstack..+. *
3f60: 2f 0a 2b 09 20 20 20 20 54 63 6c 5f 52 65 73 65 /.+. Tcl_Rese
3f70: 74 52 65 73 75 6c 74 28 69 6e 74 65 72 70 29 3b tResult(interp);
3f80: 0a 2b 09 20 20 20 20 54 63 6c 5f 41 70 70 65 6e .+. Tcl_Appen
3f90: 64 52 65 73 75 6c 74 28 69 6e 74 65 72 70 2c 20 dResult(interp,
3fa0: 22 62 61 64 20 2d 65 72 72 6f 72 73 74 61 63 6b "bad -errorstack
3fb0: 20 76 61 6c 75 65 3a 20 22 0a 2b 09 09 09 20 20 value: ".+...
3fc0: 20 20 20 22 65 78 70 65 63 74 65 64 20 61 20 6c "expected a l
3fd0: 69 73 74 20 62 75 74 20 67 6f 74 20 5c 22 22 2c ist but got \"",
3fe0: 0a 2b 09 09 09 20 20 20 20 20 54 63 6c 47 65 74 .+... TclGet
3ff0: 53 74 72 69 6e 67 28 76 61 6c 75 65 50 74 72 29 String(valuePtr)
4000: 2c 20 22 5c 22 22 2c 20 4e 55 4c 4c 29 3b 0a 2b , "\"", NULL);.+
4010: 09 20 20 20 20 54 63 6c 5f 53 65 74 45 72 72 6f . Tcl_SetErro
4020: 72 43 6f 64 65 28 69 6e 74 65 72 70 2c 20 22 54 rCode(interp, "T
4030: 43 4c 22 2c 20 22 52 45 53 55 4c 54 22 2c 20 22 CL", "RESULT", "
4040: 4e 4f 4e 4c 49 53 54 5f 45 52 52 4f 52 53 54 41 NONLIST_ERRORSTA
4050: 43 4b 22 2c 20 4e 55 4c 4c 29 3b 0a 2b 09 20 20 CK", NULL);.+.
4060: 20 20 67 6f 74 6f 20 65 72 72 6f 72 3b 0a 2b 09 goto error;.+.
4070: 7d 0a 2b 20 20 20 20 7d 0a 2b 0a 2b 20 20 20 20 }.+ }.+.+
4080: 2f 2a 0a 20 20 20 20 20 20 2a 20 43 6f 6e 76 65 /*. * Conve
4090: 72 74 20 5b 72 65 74 75 72 6e 20 2d 63 6f 64 65 rt [return -code
40a0: 20 72 65 74 75 72 6e 20 2d 6c 65 76 65 6c 20 58 return -level X
40b0: 5d 20 74 6f 20 5b 72 65 74 75 72 6e 20 2d 63 6f ] to [return -co
40c0: 64 65 20 6f 6b 20 2d 6c 65 76 65 6c 20 58 2b 31 de ok -level X+1
40d0: 5d 0a 20 20 20 20 20 20 2a 2f 0a 20 0a 40 40 20 ]. */. .@@
40e0: 2d 31 35 32 33 2c 36 20 2b 31 35 37 31 2c 37 20 -1523,6 +1571,7
40f0: 40 40 20 54 63 6c 5f 47 65 74 52 65 74 75 72 6e @@ Tcl_GetReturn
4100: 4f 70 74 69 6f 6e 73 28 0a 20 0a 20 20 20 20 20 Options(. .
4110: 69 66 20 28 72 65 73 75 6c 74 20 3d 3d 20 54 43 if (result == TC
4120: 4c 5f 45 52 52 4f 52 29 20 7b 0a 20 09 54 63 6c L_ERROR) {. .Tcl
4130: 5f 41 64 64 4f 62 6a 45 72 72 6f 72 49 6e 66 6f _AddObjErrorInfo
4140: 28 69 6e 74 65 72 70 2c 20 22 22 2c 20 2d 31 29 (interp, "", -1)
4150: 3b 0a 2b 20 20 20 20 20 20 20 20 54 63 6c 5f 44 ;.+ Tcl_D
4160: 69 63 74 4f 62 6a 50 75 74 28 4e 55 4c 4c 2c 20 ictObjPut(NULL,
4170: 6f 70 74 69 6f 6e 73 2c 20 6b 65 79 73 5b 4b 45 options, keys[KE
4180: 59 5f 45 52 52 4f 52 53 54 41 43 4b 5d 2c 20 69 Y_ERRORSTACK], i
4190: 50 74 72 2d 3e 65 72 72 6f 72 53 74 61 63 6b 29 Ptr->errorStack)
41a0: 3b 0a 20 20 20 20 20 7d 0a 20 20 20 20 20 69 66 ;. }. if
41b0: 20 28 69 50 74 72 2d 3e 65 72 72 6f 72 43 6f 64 (iPtr->errorCod
41c0: 65 29 20 7b 0a 20 09 54 63 6c 5f 44 69 63 74 4f e) {. .Tcl_DictO
41d0: 62 6a 50 75 74 28 4e 55 4c 4c 2c 20 6f 70 74 69 bjPut(NULL, opti
41e0: 6f 6e 73 2c 20 6b 65 79 73 5b 4b 45 59 5f 45 52 ons, keys[KEY_ER
41f0: 52 4f 52 43 4f 44 45 5d 2c 20 69 50 74 72 2d 3e RORCODE], iPtr->
4200: 65 72 72 6f 72 43 6f 64 65 29 3b 0a 40 40 20 2d errorCode);.@@ -
4210: 31 36 35 34 2c 35 20 2b 31 37 30 33 2c 37 20 40 1654,5 +1703,7 @
4220: 40 20 54 63 6c 5f 54 72 61 6e 73 66 65 72 52 65 @ Tcl_TransferRe
4230: 73 75 6c 74 28 0a 20 20 2a 20 6d 6f 64 65 3a 20 sult(. * mode:
4240: 63 0a 20 20 2a 20 63 2d 62 61 73 69 63 2d 6f 66 c. * c-basic-of
4250: 66 73 65 74 3a 20 34 0a 20 20 2a 20 66 69 6c 6c fset: 4. * fill
4260: 2d 63 6f 6c 75 6d 6e 3a 20 37 38 0a 2b 20 2a 20 -column: 78.+ *
4270: 74 61 62 2d 77 69 64 74 68 3a 20 38 0a 2b 20 2a tab-width: 8.+ *
4280: 20 69 6e 64 65 6e 74 2d 74 61 62 73 2d 6d 6f 64 indent-tabs-mod
4290: 65 3a 20 6e 69 6c 0a 20 20 2a 20 45 6e 64 3a 0a e: nil. * End:.
42a0: 20 20 2a 2f 0a 49 6e 64 65 78 3a 20 74 65 73 74 */.Index: test
42b0: 73 2f 63 6d 64 4d 5a 2e 74 65 73 74 0a 3d 3d 3d s/cmdMZ.test.===
42c0: 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d ================
42d0: 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d ================
42e0: 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d ================
42f0: 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d ================
4300: 0a 52 43 53 20 66 69 6c 65 3a 20 2f 63 76 73 72 .RCS file: /cvsr
4310: 6f 6f 74 2f 74 63 6c 2f 74 63 6c 2f 74 65 73 74 oot/tcl/tcl/test
4320: 73 2f 63 6d 64 4d 5a 2e 74 65 73 74 2c 76 0a 72 s/cmdMZ.test,v.r
4330: 65 74 72 69 65 76 69 6e 67 20 72 65 76 69 73 69 etrieving revisi
4340: 6f 6e 20 31 2e 32 38 0a 64 69 66 66 20 2d 75 20 on 1.28.diff -u
4350: 2d 70 20 2d 75 20 2d 70 20 2d 72 31 2e 32 38 20 -p -u -p -r1.28
4360: 63 6d 64 4d 5a 2e 74 65 73 74 0a 2d 2d 2d 20 74 cmdMZ.test.--- t
4370: 65 73 74 73 2f 63 6d 64 4d 5a 2e 74 65 73 74 09 ests/cmdMZ.test.
4380: 31 36 20 4e 6f 76 20 32 30 30 39 20 31 38 3a 30 16 Nov 2009 18:0
4390: 30 3a 31 31 20 2d 30 30 30 30 09 31 2e 32 38 0a 0:11 -0000.1.28.
43a0: 2b 2b 2b 20 74 65 73 74 73 2f 63 6d 64 4d 5a 2e +++ tests/cmdMZ.
43b0: 74 65 73 74 09 32 34 20 4d 61 72 20 32 30 31 30 test.24 Mar 2010
43c0: 20 31 35 3a 35 35 3a 34 39 20 2d 30 30 30 30 0a 15:55:49 -0000.
43d0: 40 40 20 2d 31 34 39 2c 31 31 20 2b 31 34 39 2c @@ -149,11 +149,
43e0: 31 31 20 40 40 20 74 65 73 74 20 63 6d 64 4d 5a 11 @@ test cmdMZ
43f0: 2d 72 65 74 75 72 6e 2d 32 2e 38 20 7b 72 65 74 -return-2.8 {ret
4400: 75 72 6e 20 6f 70 74 69 6f 6e 20 68 61 6e 0a 20 urn option han.
4410: 74 65 73 74 20 63 6d 64 4d 5a 2d 72 65 74 75 72 test cmdMZ-retur
4420: 6e 2d 32 2e 39 20 7b 72 65 74 75 72 6e 20 6f 70 n-2.9 {return op
4430: 74 69 6f 6e 20 68 61 6e 64 6c 69 6e 67 7d 20 2d tion handling} -
4440: 62 6f 64 79 20 7b 0a 20 20 20 20 20 72 65 74 75 body {. retu
4450: 72 6e 20 2d 6c 65 76 65 6c 20 30 20 2d 63 6f 64 rn -level 0 -cod
4460: 65 20 31 30 0a 20 7d 20 2d 72 65 74 75 72 6e 43 e 10. } -returnC
4470: 6f 64 65 73 20 31 30 20 2d 72 65 73 75 6c 74 20 odes 10 -result
4480: 7b 7d 0a 2d 74 65 73 74 20 63 6d 64 4d 5a 2d 72 {}.-test cmdMZ-r
4490: 65 74 75 72 6e 2d 32 2e 31 30 20 7b 72 65 74 75 eturn-2.10 {retu
44a0: 72 6e 20 6f 70 74 69 6f 6e 20 68 61 6e 64 6c 69 rn option handli
44b0: 6e 67 7d 20 7b 0a 2b 74 65 73 74 20 63 6d 64 4d ng} {.+test cmdM
44c0: 5a 2d 72 65 74 75 72 6e 2d 32 2e 31 30 20 7b 72 Z-return-2.10 {r
44d0: 65 74 75 72 6e 20 6f 70 74 69 6f 6e 20 68 61 6e eturn option han
44e0: 64 6c 69 6e 67 7d 20 2d 62 6f 64 79 20 7b 0a 20 dling} -body {.
44f0: 20 20 20 20 6c 69 73 74 20 5b 63 61 74 63 68 20 list [catch
4500: 7b 72 65 74 75 72 6e 20 2d 6c 65 76 65 6c 20 30 {return -level 0
4510: 20 2d 63 6f 64 65 20 65 72 72 6f 72 7d 20 2d 3e -code error} ->
4520: 20 66 6f 6f 5d 20 5b 64 69 63 74 53 6f 72 74 20 foo] [dictSort
4530: 24 66 6f 6f 5d 0a 2d 7d 20 7b 31 20 7b 2d 63 6f $foo].-} {1 {-co
4540: 64 65 20 31 20 2d 65 72 72 6f 72 63 6f 64 65 20 de 1 -errorcode
4550: 4e 4f 4e 45 20 2d 65 72 72 6f 72 69 6e 66 6f 20 NONE -errorinfo
4560: 7b 0a 2b 7d 20 2d 6d 61 74 63 68 20 67 6c 6f 62 {.+} -match glob
4570: 20 2d 72 65 73 75 6c 74 20 7b 31 20 7b 2d 63 6f -result {1 {-co
4580: 64 65 20 31 20 2d 65 72 72 6f 72 63 6f 64 65 20 de 1 -errorcode
4590: 4e 4f 4e 45 20 2d 65 72 72 6f 72 69 6e 66 6f 20 NONE -errorinfo
45a0: 7b 0a 20 20 20 20 20 77 68 69 6c 65 20 65 78 65 {. while exe
45b0: 63 75 74 69 6e 67 0a 2d 22 72 65 74 75 72 6e 20 cuting.-"return
45c0: 2d 6c 65 76 65 6c 20 30 20 2d 63 6f 64 65 20 65 -level 0 -code e
45d0: 72 72 6f 72 22 7d 20 2d 65 72 72 6f 72 6c 69 6e rror"} -errorlin
45e0: 65 20 31 20 2d 6c 65 76 65 6c 20 30 7d 7d 0a 2b e 1 -level 0}}.+
45f0: 22 72 65 74 75 72 6e 20 2d 6c 65 76 65 6c 20 30 "return -level 0
4600: 20 2d 63 6f 64 65 20 65 72 72 6f 72 22 7d 20 2d -code error"} -
4610: 65 72 72 6f 72 6c 69 6e 65 20 31 20 2d 65 72 72 errorline 1 -err
4620: 6f 72 73 74 61 63 6b 20 2a 20 2d 6c 65 76 65 6c orstack * -level
4630: 20 30 7d 7d 0a 20 74 65 73 74 20 63 6d 64 4d 5a 0}}. test cmdMZ
4640: 2d 72 65 74 75 72 6e 2d 32 2e 31 31 20 7b 72 65 -return-2.11 {re
4650: 74 75 72 6e 20 6f 70 74 69 6f 6e 20 68 61 6e 64 turn option hand
4660: 6c 69 6e 67 7d 20 7b 0a 20 20 20 20 20 6c 69 73 ling} {. lis
4670: 74 20 5b 63 61 74 63 68 20 7b 72 65 74 75 72 6e t [catch {return
4680: 20 2d 6c 65 76 65 6c 20 30 20 2d 63 6f 64 65 20 -level 0 -code
4690: 62 72 65 61 6b 7d 20 2d 3e 20 66 6f 6f 5d 20 5b break} -> foo] [
46a0: 64 69 63 74 53 6f 72 74 20 24 66 6f 6f 5d 0a 20 dictSort $foo].
46b0: 7d 20 7b 33 20 7b 2d 63 6f 64 65 20 33 20 2d 6c } {3 {-code 3 -l
46c0: 65 76 65 6c 20 30 7d 7d 0a 40 40 20 2d 31 39 33 evel 0}}.@@ -193
46d0: 2c 36 20 2b 31 39 33 2c 39 20 40 40 20 74 65 73 ,6 +193,9 @@ tes
46e0: 74 20 63 6d 64 4d 5a 2d 72 65 74 75 72 6e 2d 32 t cmdMZ-return-2
46f0: 2e 31 37 20 7b 72 65 74 75 72 6e 20 6f 70 74 6f .17 {return opto
4700: 6e 20 68 61 6e 0a 20 7d 20 2d 63 6c 65 61 6e 75 n han. } -cleanu
4710: 70 20 7b 0a 20 20 20 20 20 72 65 6e 61 6d 65 20 p {. rename
4720: 70 20 7b 7d 0a 20 7d 20 2d 72 65 73 75 6c 74 20 p {}. } -result
4730: 7b 31 20 63 20 7b 61 20 62 7d 7d 0a 2b 74 65 73 {1 c {a b}}.+tes
4740: 74 20 63 6d 64 4d 5a 2d 72 65 74 75 72 6e 2d 32 t cmdMZ-return-2
4750: 2e 31 38 20 7b 72 65 74 75 72 6e 20 6f 70 74 69 .18 {return opti
4760: 6f 6e 20 68 61 6e 64 6c 69 6e 67 7d 20 7b 0a 2b on handling} {.+
4770: 20 20 20 20 6c 69 73 74 20 5b 63 61 74 63 68 20 list [catch
4780: 7b 72 65 74 75 72 6e 20 2d 63 6f 64 65 20 65 72 {return -code er
4790: 72 6f 72 20 2d 65 72 72 6f 72 73 74 61 63 6b 20 ror -errorstack
47a0: 5b 6c 69 73 74 20 61 20 62 20 63 5d 20 79 6f 7d [list a b c] yo}
47b0: 20 2d 3e 20 66 6f 6f 5d 20 5b 64 69 63 74 53 6f -> foo] [dictSo
47c0: 72 74 20 24 66 6f 6f 5d 20 5b 69 6e 66 6f 20 65 rt $foo] [info e
47d0: 72 72 6f 72 73 74 61 63 6b 5d 0a 2b 7d 20 7b 32 rrorstack].+} {2
47e0: 20 7b 2d 63 6f 64 65 20 31 20 2d 65 72 72 6f 72 {-code 1 -error
47f0: 63 6f 64 65 20 4e 4f 4e 45 20 2d 65 72 72 6f 72 code NONE -error
4800: 73 74 61 63 6b 20 7b 61 20 62 20 63 7d 20 2d 6c stack {a b c} -l
4810: 65 76 65 6c 20 31 7d 20 7b 61 20 62 20 63 7d 7d evel 1} {a b c}}
4820: 0a 20 0a 20 23 20 43 68 65 63 6b 20 74 68 61 74 . . # Check that
4830: 20 74 68 65 20 72 65 73 75 6c 74 20 6f 66 20 61 the result of a
4840: 20 5b 72 65 74 75 72 6e 20 2d 6f 70 74 69 6f 6e [return -option
4850: 73 20 24 6f 70 74 73 20 24 72 65 73 75 6c 74 5d s $opts $result]
4860: 20 69 73 0a 20 23 20 69 6e 64 69 73 74 69 6e 67 is. # indisting
4870: 75 69 73 68 61 62 6c 65 20 66 72 6f 6d 20 74 68 uishable from th
4880: 61 74 20 6f 66 20 74 68 65 20 6f 72 69 67 69 6e at of the origin
4890: 61 6c 6c 79 20 63 61 75 67 68 74 20 73 63 72 69 ally caught scri
48a0: 70 74 2c 20 6e 6f 20 6d 61 74 74 65 72 20 77 68 pt, no matter wh
48b0: 61 74 0a 40 40 20 2d 32 31 31 2c 36 20 2b 32 31 at.@@ -211,6 +21
48c0: 34 2c 37 20 40 40 20 66 6f 72 65 61 63 68 20 7b 4,7 @@ foreach {
48d0: 74 65 73 74 69 64 20 73 63 72 69 70 74 7d 20 7b testid script} {
48e0: 0a 20 20 20 20 20 63 6d 64 4d 5a 2d 72 65 74 75 . cmdMZ-retu
48f0: 72 6e 2d 33 2e 31 30 20 7b 72 65 74 75 72 6e 20 rn-3.10 {return
4900: 2d 63 6f 64 65 20 65 72 72 6f 72 20 2d 65 72 72 -code error -err
4910: 6f 72 69 6e 66 6f 20 66 6f 6f 7d 0a 20 20 20 20 orinfo foo}.
4920: 20 63 6d 64 4d 5a 2d 72 65 74 75 72 6e 2d 33 2e cmdMZ-return-3.
4930: 31 31 20 7b 72 65 74 75 72 6e 20 2d 63 6f 64 65 11 {return -code
4940: 20 65 72 72 6f 72 20 2d 65 72 72 6f 72 69 6e 66 error -errorinf
4950: 6f 20 66 6f 6f 20 2d 65 72 72 6f 72 63 6f 64 65 o foo -errorcode
4960: 20 62 61 72 7d 0a 20 20 20 20 20 63 6d 64 4d 5a bar}. cmdMZ
4970: 2d 72 65 74 75 72 6e 2d 33 2e 31 32 20 7b 72 65 -return-3.12 {re
4980: 74 75 72 6e 20 2d 63 6f 64 65 20 65 72 72 6f 72 turn -code error
4990: 20 2d 65 72 72 6f 72 69 6e 66 6f 20 66 6f 6f 20 -errorinfo foo
49a0: 2d 65 72 72 6f 72 63 6f 64 65 20 62 61 72 20 2d -errorcode bar -
49b0: 65 72 72 6f 72 6c 69 6e 65 20 31 30 7d 0a 2b 20 errorline 10}.+
49c0: 20 20 20 63 6d 64 4d 5a 2d 72 65 74 75 72 6e 2d cmdMZ-return-
49d0: 33 2e 31 32 2e 31 20 7b 72 65 74 75 72 6e 20 2d 3.12.1 {return -
49e0: 63 6f 64 65 20 65 72 72 6f 72 20 2d 65 72 72 6f code error -erro
49f0: 72 69 6e 66 6f 20 66 6f 6f 20 2d 65 72 72 6f 72 rinfo foo -error
4a00: 63 6f 64 65 20 62 61 72 20 2d 65 72 72 6f 72 6c code bar -errorl
4a10: 69 6e 65 20 31 30 20 2d 65 72 72 6f 72 73 74 61 ine 10 -errorsta
4a20: 63 6b 20 62 61 7a 7d 0a 20 20 20 20 20 63 6d 64 ck baz}. cmd
4a30: 4d 5a 2d 72 65 74 75 72 6e 2d 33 2e 31 33 20 7b MZ-return-3.13 {
4a40: 72 65 74 75 72 6e 20 2d 6f 70 74 69 6f 6e 73 20 return -options
4a50: 7b 78 20 79 20 7a 20 32 7d 7d 0a 20 20 20 20 20 {x y z 2}}.
4a60: 63 6d 64 4d 5a 2d 72 65 74 75 72 6e 2d 33 2e 31 cmdMZ-return-3.1
4a70: 34 20 7b 72 65 74 75 72 6e 20 2d 6c 65 76 65 6c 4 {return -level
4a80: 20 33 20 2d 63 6f 64 65 20 62 72 65 61 6b 20 73 3 -code break s
4a90: 64 66 7d 0a 20 7d 20 7b 0a 49 6e 64 65 78 3a 20 df}. } {.Index:
4aa0: 74 65 73 74 73 2f 65 72 72 6f 72 2e 74 65 73 74 tests/error.test
4ab0: 0a 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d .===============
4ac0: 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d ================
4ad0: 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d ================
4ae0: 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d ================
4af0: 3d 3d 3d 3d 0a 52 43 53 20 66 69 6c 65 3a 20 2f ====.RCS file: /
4b00: 63 76 73 72 6f 6f 74 2f 74 63 6c 2f 74 63 6c 2f cvsroot/tcl/tcl/
4b10: 74 65 73 74 73 2f 65 72 72 6f 72 2e 74 65 73 74 tests/error.test
4b20: 2c 76 0a 72 65 74 72 69 65 76 69 6e 67 20 72 65 ,v.retrieving re
4b30: 76 69 73 69 6f 6e 20 31 2e 32 38 0a 64 69 66 66 vision 1.28.diff
4b40: 20 2d 75 20 2d 70 20 2d 75 20 2d 70 20 2d 72 31 -u -p -u -p -r1
4b50: 2e 32 38 20 65 72 72 6f 72 2e 74 65 73 74 0a 2d .28 error.test.-
4b60: 2d 2d 20 74 65 73 74 73 2f 65 72 72 6f 72 2e 74 -- tests/error.t
4b70: 65 73 74 09 32 33 20 4d 61 72 20 32 30 31 30 20 est.23 Mar 2010
4b80: 31 32 3a 35 38 3a 33 39 20 2d 30 30 30 30 09 31 12:58:39 -0000.1
4b90: 2e 32 38 0a 2b 2b 2b 20 74 65 73 74 73 2f 65 72 .28.+++ tests/er
4ba0: 72 6f 72 2e 74 65 73 74 09 32 34 20 4d 61 72 20 ror.test.24 Mar
4bb0: 32 30 31 30 20 31 35 3a 35 35 3a 34 39 20 2d 30 2010 15:55:49 -0
4bc0: 30 30 30 0a 40 40 20 2d 31 36 39 2c 36 20 2b 31 000.@@ -169,6 +1
4bd0: 36 39 2c 31 39 20 40 40 20 74 65 73 74 20 65 72 69,19 @@ test er
4be0: 72 6f 72 2d 34 2e 35 20 7b 65 72 72 6f 72 49 6e ror-4.5 {errorIn
4bf0: 66 6f 20 61 6e 64 20 65 72 72 6f 72 43 6f 64 65 fo and errorCode
4c00: 20 0a 20 20 20 20 20 6c 69 73 74 20 5b 63 61 74 . list [cat
4c10: 63 68 20 7b 65 72 72 6f 72 20 6d 73 67 31 20 6d ch {error msg1 m
4c20: 73 67 32 20 7b 7d 7d 20 6d 73 67 5d 20 24 6d 73 sg2 {}} msg] $ms
4c30: 67 20 24 3a 3a 65 72 72 6f 72 49 6e 66 6f 20 24 g $::errorInfo $
4c40: 3a 3a 65 72 72 6f 72 43 6f 64 65 0a 20 7d 20 7b ::errorCode. } {
4c50: 31 20 6d 73 67 31 20 6d 73 67 32 20 7b 7d 7d 0a 1 msg1 msg2 {}}.
4c60: 20 0a 2b 74 65 73 74 20 65 72 72 6f 72 2d 34 2e .+test error-4.
4c70: 36 20 7b 65 72 72 6f 72 73 74 61 63 6b 20 76 69 6 {errorstack vi
4c80: 61 20 69 6e 66 6f 20 7d 20 2d 62 6f 64 79 20 7b a info } -body {
4c90: 0a 2b 20 20 20 20 70 72 6f 63 20 66 20 78 20 7b .+ proc f x {
4ca0: 67 20 24 78 24 78 7d 0a 2b 20 20 20 20 70 72 6f g $x$x}.+ pro
4cb0: 63 20 67 20 78 20 7b 65 72 72 6f 72 20 47 3a 24 c g x {error G:$
4cc0: 78 7d 0a 2b 20 20 20 20 63 61 74 63 68 20 7b 66 x}.+ catch {f
4cd0: 20 31 32 7d 0a 2b 20 20 20 20 69 6e 66 6f 20 65 12}.+ info e
4ce0: 72 72 6f 72 73 74 61 63 6b 0a 2b 7d 20 2d 6d 61 rrorstack.+} -ma
4cf0: 74 63 68 20 67 6c 6f 62 20 2d 72 65 73 75 6c 74 tch glob -result
4d00: 20 7b 7b 67 20 31 32 31 32 7d 20 7b 66 20 31 32 {{g 1212} {f 12
4d10: 7d 20 7b 75 70 6c 65 76 65 6c 20 31 7d 7d 0a 2b } {uplevel 1}}.+
4d20: 74 65 73 74 20 65 72 72 6f 72 2d 34 2e 37 20 7b test error-4.7 {
4d30: 65 72 72 6f 72 73 74 61 63 6b 20 76 69 61 20 6f errorstack via o
4d40: 70 74 69 6f 6e 73 20 64 69 63 74 20 7d 20 2d 62 ptions dict } -b
4d50: 6f 64 79 20 7b 0a 2b 20 20 20 20 70 72 6f 63 20 ody {.+ proc
4d60: 66 20 78 20 7b 67 20 24 78 24 78 7d 0a 2b 20 20 f x {g $x$x}.+
4d70: 20 20 70 72 6f 63 20 67 20 78 20 7b 65 72 72 6f proc g x {erro
4d80: 72 20 47 3a 24 78 7d 0a 2b 20 20 20 20 63 61 74 r G:$x}.+ cat
4d90: 63 68 20 7b 66 20 31 32 7d 20 6d 20 64 0a 2b 20 ch {f 12} m d.+
4da0: 20 20 20 64 69 63 74 20 67 65 74 20 24 64 20 2d dict get $d -
4db0: 65 72 72 6f 72 73 74 61 63 6b 0a 2b 7d 20 2d 6d errorstack.+} -m
4dc0: 61 74 63 68 20 67 6c 6f 62 20 2d 72 65 73 75 6c atch glob -resul
4dd0: 74 20 7b 7b 67 20 31 32 31 32 7d 20 7b 66 20 31 t {{g 1212} {f 1
4de0: 32 7d 20 7b 75 70 6c 65 76 65 6c 20 31 7d 7d 0a 2} {uplevel 1}}.
4df0: 2b 0a 20 23 20 45 72 72 6f 72 73 20 69 6e 20 65 +. # Errors in e
4e00: 72 72 6f 72 20 63 6f 6d 6d 61 6e 64 20 69 74 73 rror command its
4e10: 65 6c 66 0a 20 0a 20 74 65 73 74 20 65 72 72 6f elf. . test erro
4e20: 72 2d 35 2e 31 20 7b 65 72 72 6f 72 73 20 69 6e r-5.1 {errors in
4e30: 20 65 72 72 6f 72 20 63 6f 6d 6d 61 6e 64 7d 20 error command}
4e40: 7b 0a 40 40 20 2d 32 32 33 2c 36 20 2b 32 33 36 {.@@ -223,6 +236
4e50: 2c 31 35 20 40 40 20 74 65 73 74 20 65 72 72 6f ,15 @@ test erro
4e60: 72 2d 36 2e 39 20 7b 63 61 74 63 68 20 6d 75 73 r-6.9 {catch mus
4e70: 74 20 72 65 73 65 74 20 65 72 72 6f 72 20 73 0a t reset error s.
4e80: 20 20 20 20 20 63 61 74 63 68 20 66 6f 6f 0a 20 catch foo.
4e90: 20 20 20 20 6c 69 73 74 20 24 3a 3a 65 72 72 6f list $::erro
4ea0: 72 43 6f 64 65 0a 20 7d 20 7b 4e 4f 4e 45 7d 0a rCode. } {NONE}.
4eb0: 2b 74 65 73 74 20 65 72 72 6f 72 2d 36 2e 31 30 +test error-6.10
4ec0: 20 7b 63 61 74 63 68 20 6d 75 73 74 20 72 65 73 {catch must res
4ed0: 65 74 20 65 72 72 6f 72 73 74 61 63 6b 7d 20 2d et errorstack} -
4ee0: 62 6f 64 79 20 7b 0a 2b 09 70 72 6f 63 20 66 20 body {.+.proc f
4ef0: 78 20 7b 67 20 24 78 24 78 7d 0a 2b 09 70 72 6f x {g $x$x}.+.pro
4f00: 63 20 67 20 78 20 7b 65 72 72 6f 72 20 47 3a 24 c g x {error G:$
4f10: 78 7d 0a 2b 09 63 61 74 63 68 20 7b 66 20 31 32 x}.+.catch {f 12
4f20: 7d 0a 2b 09 73 65 74 20 65 31 20 5b 69 6e 66 6f }.+.set e1 [info
4f30: 20 65 72 72 6f 72 73 74 61 63 6b 5d 0a 2b 09 63 errorstack].+.c
4f40: 61 74 63 68 20 7b 66 20 31 33 7d 0a 2b 09 73 65 atch {f 13}.+.se
4f50: 74 20 65 32 20 5b 69 6e 66 6f 20 65 72 72 6f 72 t e2 [info error
4f60: 73 74 61 63 6b 5d 0a 2b 09 6c 69 73 74 20 24 65 stack].+.list $e
4f70: 31 20 24 65 32 0a 2b 7d 20 2d 6d 61 74 63 68 20 1 $e2.+} -match
4f80: 67 6c 6f 62 20 2d 72 65 73 75 6c 74 20 7b 7b 7b glob -result {{{
4f90: 67 20 31 32 31 32 7d 20 7b 66 20 31 32 7d 20 7b g 1212} {f 12} {
4fa0: 75 70 6c 65 76 65 6c 20 31 7d 7d 20 7b 7b 67 20 uplevel 1}} {{g
4fb0: 31 33 31 33 7d 20 7b 66 20 31 33 7d 20 7b 75 70 1313} {f 13} {up
4fc0: 6c 65 76 65 6c 20 31 7d 7d 7d 0a 20 0a 20 74 65 level 1}}}. . te
4fd0: 73 74 20 65 72 72 6f 72 2d 37 2e 31 20 7b 42 75 st error-7.1 {Bu
4fe0: 67 20 31 33 39 37 38 34 33 7d 20 2d 62 6f 64 79 g 1397843} -body
4ff0: 20 7b 0a 20 20 20 20 20 76 61 72 69 61 62 6c 65 {. variable
5000: 20 63 6d 64 73 0a 49 6e 64 65 78 3a 20 74 65 73 cmds.Index: tes
5010: 74 73 2f 65 78 65 63 75 74 65 2e 74 65 73 74 0a ts/execute.test.
5020: 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d ================
5030: 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d ================
5040: 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d ================
5050: 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d ================
5060: 3d 3d 3d 0a 52 43 53 20 66 69 6c 65 3a 20 2f 63 ===.RCS file: /c
5070: 76 73 72 6f 6f 74 2f 74 63 6c 2f 74 63 6c 2f 74 vsroot/tcl/tcl/t
5080: 65 73 74 73 2f 65 78 65 63 75 74 65 2e 74 65 73 ests/execute.tes
5090: 74 2c 76 0a 72 65 74 72 69 65 76 69 6e 67 20 72 t,v.retrieving r
50a0: 65 76 69 73 69 6f 6e 20 31 2e 33 34 0a 64 69 66 evision 1.34.dif
50b0: 66 20 2d 75 20 2d 70 20 2d 75 20 2d 70 20 2d 72 f -u -p -u -p -r
50c0: 31 2e 33 34 20 65 78 65 63 75 74 65 2e 74 65 73 1.34 execute.tes
50d0: 74 0a 2d 2d 2d 20 74 65 73 74 73 2f 65 78 65 63 t.--- tests/exec
50e0: 75 74 65 2e 74 65 73 74 09 31 36 20 4e 6f 76 20 ute.test.16 Nov
50f0: 32 30 30 39 20 31 38 3a 30 30 3a 31 31 20 2d 30 2009 18:00:11 -0
5100: 30 30 30 09 31 2e 33 34 0a 2b 2b 2b 20 74 65 73 000.1.34.+++ tes
5110: 74 73 2f 65 78 65 63 75 74 65 2e 74 65 73 74 09 ts/execute.test.
5120: 32 34 20 4d 61 72 20 32 30 31 30 20 31 35 3a 35 24 Mar 2010 15:5
5130: 35 3a 34 39 20 2d 30 30 30 30 0a 40 40 20 2d 39 5:49 -0000.@@ -9
5140: 35 36 2c 31 31 20 2b 39 35 36 2c 31 31 20 40 40 56,11 +956,11 @@
5150: 20 74 65 73 74 20 65 78 65 63 75 74 65 2d 38 2e test execute-8.
5160: 35 20 7b 42 75 67 20 32 30 33 38 30 36 39 7d 20 5 {Bug 2038069}
5170: 2d 73 65 74 75 70 20 7b 0a 20 20 20 20 20 64 65 -setup {. de
5180: 6d 6f 0a 20 7d 20 2d 63 6c 65 61 6e 75 70 20 7b mo. } -cleanup {
5190: 0a 20 20 20 20 20 72 65 6e 61 6d 65 20 64 65 6d . rename dem
51a0: 6f 20 7b 7d 0a 2d 7d 20 2d 72 65 73 75 6c 74 20 o {}.-} -result
51b0: 7b 2d 63 6f 64 65 20 31 20 2d 6c 65 76 65 6c 20 {-code 1 -level
51c0: 30 20 2d 65 72 72 6f 72 63 6f 64 65 20 4e 4f 4e 0 -errorcode NON
51d0: 45 20 2d 65 72 72 6f 72 69 6e 66 6f 20 7b 46 4f E -errorinfo {FO
51e0: 4f 0a 2b 7d 20 2d 6d 61 74 63 68 20 67 6c 6f 62 O.+} -match glob
51f0: 20 2d 72 65 73 75 6c 74 20 7b 2d 63 6f 64 65 20 -result {-code
5200: 31 20 2d 6c 65 76 65 6c 20 30 20 2d 65 72 72 6f 1 -level 0 -erro
5210: 72 73 74 61 63 6b 20 2a 20 2d 65 72 72 6f 72 63 rstack * -errorc
5220: 6f 64 65 20 4e 4f 4e 45 20 2d 65 72 72 6f 72 69 ode NONE -errori
5230: 6e 66 6f 20 7b 46 4f 4f 0a 20 20 20 20 20 77 68 nfo {FOO. wh
5240: 69 6c 65 20 65 78 65 63 75 74 69 6e 67 0a 20 22 ile executing. "
5250: 65 72 72 6f 72 20 46 4f 4f 22 0a 20 20 20 20 20 error FOO".
5260: 69 6e 76 6f 6b 65 64 20 66 72 6f 6d 20 77 69 74 invoked from wit
5270: 68 69 6e 0a 2d 22 63 61 74 63 68 20 5b 6c 69 73 hin.-"catch [lis
5280: 74 20 65 72 72 6f 72 20 46 4f 4f 5d 20 6d 20 6f t error FOO] m o
5290: 22 7d 20 2d 65 72 72 6f 72 6c 69 6e 65 20 32 7d "} -errorline 2}
52a0: 0a 2b 22 63 61 74 63 68 20 5c 5b 6c 69 73 74 20 .+"catch \[list
52b0: 65 72 72 6f 72 20 46 4f 4f 5c 5d 20 6d 20 6f 22 error FOO\] m o"
52c0: 7d 20 2d 65 72 72 6f 72 6c 69 6e 65 20 32 7d 0a } -errorline 2}.
52d0: 20 0a 20 74 65 73 74 20 65 78 65 63 75 74 65 2d . test execute-
52e0: 39 2e 31 20 7b 49 6e 74 65 72 70 20 72 65 73 75 9.1 {Interp resu
52f0: 6c 74 20 72 65 73 65 74 74 69 6e 67 20 5b 42 75 lt resetting [Bu
5300: 67 20 31 35 32 32 38 30 33 5d 7d 20 7b 0a 20 20 g 1522803]} {.
5310: 20 20 20 73 65 74 20 63 20 30 0a 49 6e 64 65 78 set c 0.Index
5320: 3a 20 74 65 73 74 73 2f 69 6e 66 6f 2e 74 65 73 : tests/info.tes
5330: 74 0a 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d t.==============
5340: 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d ================
5350: 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d ================
5360: 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d ================
5370: 3d 3d 3d 3d 3d 0a 52 43 53 20 66 69 6c 65 3a 20 =====.RCS file:
5380: 2f 63 76 73 72 6f 6f 74 2f 74 63 6c 2f 74 63 6c /cvsroot/tcl/tcl
5390: 2f 74 65 73 74 73 2f 69 6e 66 6f 2e 74 65 73 74 /tests/info.test
53a0: 2c 76 0a 72 65 74 72 69 65 76 69 6e 67 20 72 65 ,v.retrieving re
53b0: 76 69 73 69 6f 6e 20 31 2e 37 35 0a 64 69 66 66 vision 1.75.diff
53c0: 20 2d 75 20 2d 70 20 2d 75 20 2d 70 20 2d 72 31 -u -p -u -p -r1
53d0: 2e 37 35 20 69 6e 66 6f 2e 74 65 73 74 0a 2d 2d .75 info.test.--
53e0: 2d 20 74 65 73 74 73 2f 69 6e 66 6f 2e 74 65 73 - tests/info.tes
53f0: 74 09 31 30 20 46 65 62 20 32 30 31 30 20 32 33 t.10 Feb 2010 23
5400: 3a 32 34 3a 32 35 20 2d 30 30 30 30 09 31 2e 37 :24:25 -0000.1.7
5410: 35 0a 2b 2b 2b 20 74 65 73 74 73 2f 69 6e 66 6f 5.+++ tests/info
5420: 2e 74 65 73 74 09 32 34 20 4d 61 72 20 32 30 31 .test.24 Mar 201
5430: 30 20 31 35 3a 35 35 3a 34 39 20 2d 30 30 30 30 0 15:55:49 -0000
5440: 0a 40 40 20 2d 36 37 36 2c 31 36 20 2b 36 37 36 .@@ -676,16 +676
5450: 2c 31 36 20 40 40 20 74 65 73 74 20 69 6e 66 6f ,16 @@ test info
5460: 2d 32 31 2e 31 20 7b 6d 69 73 63 65 6c 6c 61 6e -21.1 {miscellan
5470: 65 6f 75 73 20 65 72 72 6f 72 20 63 6f 6e 64 0a eous error cond.
5480: 20 7d 20 2d 72 65 73 75 6c 74 20 7b 77 72 6f 6e } -result {wron
5490: 67 20 23 20 61 72 67 73 3a 20 73 68 6f 75 6c 64 g # args: should
54a0: 20 62 65 20 22 69 6e 66 6f 20 73 75 62 63 6f 6d be "info subcom
54b0: 6d 61 6e 64 20 3f 61 72 67 20 2e 2e 2e 3f 22 7d mand ?arg ...?"}
54c0: 0a 20 74 65 73 74 20 69 6e 66 6f 2d 32 31 2e 32 . test info-21.2
54d0: 20 7b 6d 69 73 63 65 6c 6c 61 6e 65 6f 75 73 20 {miscellaneous
54e0: 65 72 72 6f 72 20 63 6f 6e 64 69 74 69 6f 6e 73 error conditions
54f0: 7d 20 2d 72 65 74 75 72 6e 43 6f 64 65 73 20 65 } -returnCodes e
5500: 72 72 6f 72 20 2d 62 6f 64 79 20 7b 0a 20 20 20 rror -body {.
5510: 20 20 69 6e 66 6f 20 67 6f 72 70 0a 2d 7d 20 2d info gorp.-} -
5520: 72 65 73 75 6c 74 20 7b 75 6e 6b 6e 6f 77 6e 20 result {unknown
5530: 6f 72 20 61 6d 62 69 67 75 6f 75 73 20 73 75 62 or ambiguous sub
5540: 63 6f 6d 6d 61 6e 64 20 22 67 6f 72 70 22 3a 20 command "gorp":
5550: 6d 75 73 74 20 62 65 20 61 72 67 73 2c 20 62 6f must be args, bo
5560: 64 79 2c 20 63 6c 61 73 73 2c 20 63 6d 64 63 6f dy, class, cmdco
5570: 75 6e 74 2c 20 63 6f 6d 6d 61 6e 64 73 2c 20 63 unt, commands, c
5580: 6f 6d 70 6c 65 74 65 2c 20 63 6f 72 6f 75 74 69 omplete, corouti
5590: 6e 65 2c 20 64 65 66 61 75 6c 74 2c 20 65 78 69 ne, default, exi
55a0: 73 74 73 2c 20 66 72 61 6d 65 2c 20 66 75 6e 63 sts, frame, func
55b0: 74 69 6f 6e 73 2c 20 67 6c 6f 62 61 6c 73 2c 20 tions, globals,
55c0: 68 6f 73 74 6e 61 6d 65 2c 20 6c 65 76 65 6c 2c hostname, level,
55d0: 20 6c 69 62 72 61 72 79 2c 20 6c 6f 61 64 65 64 library, loaded
55e0: 2c 20 6c 6f 63 61 6c 73 2c 20 6e 61 6d 65 6f 66 , locals, nameof
55f0: 65 78 65 63 75 74 61 62 6c 65 2c 20 6f 62 6a 65 executable, obje
5600: 63 74 2c 20 70 61 74 63 68 6c 65 76 65 6c 2c 20 ct, patchlevel,
5610: 70 72 6f 63 73 2c 20 73 63 72 69 70 74 2c 20 73 procs, script, s
5620: 68 61 72 65 64 6c 69 62 65 78 74 65 6e 73 69 6f haredlibextensio
5630: 6e 2c 20 74 63 6c 76 65 72 73 69 6f 6e 2c 20 6f n, tclversion, o
5640: 72 20 76 61 72 73 7d 0a 2b 7d 20 2d 72 65 73 75 r vars}.+} -resu
5650: 6c 74 20 7b 75 6e 6b 6e 6f 77 6e 20 6f 72 20 61 lt {unknown or a
5660: 6d 62 69 67 75 6f 75 73 20 73 75 62 63 6f 6d 6d mbiguous subcomm
5670: 61 6e 64 20 22 67 6f 72 70 22 3a 20 6d 75 73 74 and "gorp": must
5680: 20 62 65 20 61 72 67 73 2c 20 62 6f 64 79 2c 20 be args, body,
5690: 63 6c 61 73 73 2c 20 63 6d 64 63 6f 75 6e 74 2c class, cmdcount,
56a0: 20 63 6f 6d 6d 61 6e 64 73 2c 20 63 6f 6d 70 6c commands, compl
56b0: 65 74 65 2c 20 63 6f 72 6f 75 74 69 6e 65 2c 20 ete, coroutine,
56c0: 64 65 66 61 75 6c 74 2c 20 65 72 72 6f 72 73 74 default, errorst
56d0: 61 63 6b 2c 20 65 78 69 73 74 73 2c 20 66 72 61 ack, exists, fra
56e0: 6d 65 2c 20 66 75 6e 63 74 69 6f 6e 73 2c 20 67 me, functions, g
56f0: 6c 6f 62 61 6c 73 2c 20 68 6f 73 74 6e 61 6d 65 lobals, hostname
5700: 2c 20 6c 65 76 65 6c 2c 20 6c 69 62 72 61 72 79 , level, library
5710: 2c 20 6c 6f 61 64 65 64 2c 20 6c 6f 63 61 6c 73 , loaded, locals
5720: 2c 20 6e 61 6d 65 6f 66 65 78 65 63 75 74 61 62 , nameofexecutab
5730: 6c 65 2c 20 6f 62 6a 65 63 74 2c 20 70 61 74 63 le, object, patc
5740: 68 6c 65 76 65 6c 2c 20 70 72 6f 63 73 2c 20 73 hlevel, procs, s
5750: 63 72 69 70 74 2c 20 73 68 61 72 65 64 6c 69 62 cript, sharedlib
5760: 65 78 74 65 6e 73 69 6f 6e 2c 20 74 63 6c 76 65 extension, tclve
5770: 72 73 69 6f 6e 2c 20 6f 72 20 76 61 72 73 7d 0a rsion, or vars}.
5780: 20 74 65 73 74 20 69 6e 66 6f 2d 32 31 2e 33 20 test info-21.3
5790: 7b 6d 69 73 63 65 6c 6c 61 6e 65 6f 75 73 20 65 {miscellaneous e
57a0: 72 72 6f 72 20 63 6f 6e 64 69 74 69 6f 6e 73 7d rror conditions}
57b0: 20 2d 72 65 74 75 72 6e 43 6f 64 65 73 20 65 72 -returnCodes er
57c0: 72 6f 72 20 2d 62 6f 64 79 20 7b 0a 20 20 20 20 ror -body {.
57d0: 20 69 6e 66 6f 20 63 0a 2d 7d 20 2d 72 65 73 75 info c.-} -resu
57e0: 6c 74 20 7b 75 6e 6b 6e 6f 77 6e 20 6f 72 20 61 lt {unknown or a
57f0: 6d 62 69 67 75 6f 75 73 20 73 75 62 63 6f 6d 6d mbiguous subcomm
5800: 61 6e 64 20 22 63 22 3a 20 6d 75 73 74 20 62 65 and "c": must be
5810: 20 61 72 67 73 2c 20 62 6f 64 79 2c 20 63 6c 61 args, body, cla
5820: 73 73 2c 20 63 6d 64 63 6f 75 6e 74 2c 20 63 6f ss, cmdcount, co
5830: 6d 6d 61 6e 64 73 2c 20 63 6f 6d 70 6c 65 74 65 mmands, complete
5840: 2c 20 63 6f 72 6f 75 74 69 6e 65 2c 20 64 65 66 , coroutine, def
5850: 61 75 6c 74 2c 20 65 78 69 73 74 73 2c 20 66 72 ault, exists, fr
5860: 61 6d 65 2c 20 66 75 6e 63 74 69 6f 6e 73 2c 20 ame, functions,
5870: 67 6c 6f 62 61 6c 73 2c 20 68 6f 73 74 6e 61 6d globals, hostnam
5880: 65 2c 20 6c 65 76 65 6c 2c 20 6c 69 62 72 61 72 e, level, librar
5890: 79 2c 20 6c 6f 61 64 65 64 2c 20 6c 6f 63 61 6c y, loaded, local
58a0: 73 2c 20 6e 61 6d 65 6f 66 65 78 65 63 75 74 61 s, nameofexecuta
58b0: 62 6c 65 2c 20 6f 62 6a 65 63 74 2c 20 70 61 74 ble, object, pat
58c0: 63 68 6c 65 76 65 6c 2c 20 70 72 6f 63 73 2c 20 chlevel, procs,
58d0: 73 63 72 69 70 74 2c 20 73 68 61 72 65 64 6c 69 script, sharedli
58e0: 62 65 78 74 65 6e 73 69 6f 6e 2c 20 74 63 6c 76 bextension, tclv
58f0: 65 72 73 69 6f 6e 2c 20 6f 72 20 76 61 72 73 7d ersion, or vars}
5900: 0a 2b 7d 20 2d 72 65 73 75 6c 74 20 7b 75 6e 6b .+} -result {unk
5910: 6e 6f 77 6e 20 6f 72 20 61 6d 62 69 67 75 6f 75 nown or ambiguou
5920: 73 20 73 75 62 63 6f 6d 6d 61 6e 64 20 22 63 22 s subcommand "c"
5930: 3a 20 6d 75 73 74 20 62 65 20 61 72 67 73 2c 20 : must be args,
5940: 62 6f 64 79 2c 20 63 6c 61 73 73 2c 20 63 6d 64 body, class, cmd
5950: 63 6f 75 6e 74 2c 20 63 6f 6d 6d 61 6e 64 73 2c count, commands,
5960: 20 63 6f 6d 70 6c 65 74 65 2c 20 63 6f 72 6f 75 complete, corou
5970: 74 69 6e 65 2c 20 64 65 66 61 75 6c 74 2c 20 65 tine, default, e
5980: 72 72 6f 72 73 74 61 63 6b 2c 20 65 78 69 73 74 rrorstack, exist
5990: 73 2c 20 66 72 61 6d 65 2c 20 66 75 6e 63 74 69 s, frame, functi
59a0: 6f 6e 73 2c 20 67 6c 6f 62 61 6c 73 2c 20 68 6f ons, globals, ho
59b0: 73 74 6e 61 6d 65 2c 20 6c 65 76 65 6c 2c 20 6c stname, level, l
59c0: 69 62 72 61 72 79 2c 20 6c 6f 61 64 65 64 2c 20 ibrary, loaded,
59d0: 6c 6f 63 61 6c 73 2c 20 6e 61 6d 65 6f 66 65 78 locals, nameofex
59e0: 65 63 75 74 61 62 6c 65 2c 20 6f 62 6a 65 63 74 ecutable, object
59f0: 2c 20 70 61 74 63 68 6c 65 76 65 6c 2c 20 70 72 , patchlevel, pr
5a00: 6f 63 73 2c 20 73 63 72 69 70 74 2c 20 73 68 61 ocs, script, sha
5a10: 72 65 64 6c 69 62 65 78 74 65 6e 73 69 6f 6e 2c redlibextension,
5a20: 20 74 63 6c 76 65 72 73 69 6f 6e 2c 20 6f 72 20 tclversion, or
5a30: 76 61 72 73 7d 0a 20 74 65 73 74 20 69 6e 66 6f vars}. test info
5a40: 2d 32 31 2e 34 20 7b 6d 69 73 63 65 6c 6c 61 6e -21.4 {miscellan
5a50: 65 6f 75 73 20 65 72 72 6f 72 20 63 6f 6e 64 69 eous error condi
5a60: 74 69 6f 6e 73 7d 20 2d 72 65 74 75 72 6e 43 6f tions} -returnCo
5a70: 64 65 73 20 65 72 72 6f 72 20 2d 62 6f 64 79 20 des error -body
5a80: 7b 0a 20 20 20 20 20 69 6e 66 6f 20 6c 0a 2d 7d {. info l.-}
5a90: 20 2d 72 65 73 75 6c 74 20 7b 75 6e 6b 6e 6f 77 -result {unknow
5aa0: 6e 20 6f 72 20 61 6d 62 69 67 75 6f 75 73 20 73 n or ambiguous s
5ab0: 75 62 63 6f 6d 6d 61 6e 64 20 22 6c 22 3a 20 6d ubcommand "l": m
5ac0: 75 73 74 20 62 65 20 61 72 67 73 2c 20 62 6f 64 ust be args, bod
5ad0: 79 2c 20 63 6c 61 73 73 2c 20 63 6d 64 63 6f 75 y, class, cmdcou
5ae0: 6e 74 2c 20 63 6f 6d 6d 61 6e 64 73 2c 20 63 6f nt, commands, co
5af0: 6d 70 6c 65 74 65 2c 20 63 6f 72 6f 75 74 69 6e mplete, coroutin
5b00: 65 2c 20 64 65 66 61 75 6c 74 2c 20 65 78 69 73 e, default, exis
5b10: 74 73 2c 20 66 72 61 6d 65 2c 20 66 75 6e 63 74 ts, frame, funct
5b20: 69 6f 6e 73 2c 20 67 6c 6f 62 61 6c 73 2c 20 68 ions, globals, h
5b30: 6f 73 74 6e 61 6d 65 2c 20 6c 65 76 65 6c 2c 20 ostname, level,
5b40: 6c 69 62 72 61 72 79 2c 20 6c 6f 61 64 65 64 2c library, loaded,
5b50: 20 6c 6f 63 61 6c 73 2c 20 6e 61 6d 65 6f 66 65 locals, nameofe
5b60: 78 65 63 75 74 61 62 6c 65 2c 20 6f 62 6a 65 63 xecutable, objec
5b70: 74 2c 20 70 61 74 63 68 6c 65 76 65 6c 2c 20 70 t, patchlevel, p
5b80: 72 6f 63 73 2c 20 73 63 72 69 70 74 2c 20 73 68 rocs, script, sh
5b90: 61 72 65 64 6c 69 62 65 78 74 65 6e 73 69 6f 6e aredlibextension
5ba0: 2c 20 74 63 6c 76 65 72 73 69 6f 6e 2c 20 6f 72 , tclversion, or
5bb0: 20 76 61 72 73 7d 0a 2b 7d 20 2d 72 65 73 75 6c vars}.+} -resul
5bc0: 74 20 7b 75 6e 6b 6e 6f 77 6e 20 6f 72 20 61 6d t {unknown or am
5bd0: 62 69 67 75 6f 75 73 20 73 75 62 63 6f 6d 6d 61 biguous subcomma
5be0: 6e 64 20 22 6c 22 3a 20 6d 75 73 74 20 62 65 20 nd "l": must be
5bf0: 61 72 67 73 2c 20 62 6f 64 79 2c 20 63 6c 61 73 args, body, clas
5c00: 73 2c 20 63 6d 64 63 6f 75 6e 74 2c 20 63 6f 6d s, cmdcount, com
5c10: 6d 61 6e 64 73 2c 20 63 6f 6d 70 6c 65 74 65 2c mands, complete,
5c20: 20 63 6f 72 6f 75 74 69 6e 65 2c 20 64 65 66 61 coroutine, defa
5c30: 75 6c 74 2c 20 65 72 72 6f 72 73 74 61 63 6b 2c ult, errorstack,
5c40: 20 65 78 69 73 74 73 2c 20 66 72 61 6d 65 2c 20 exists, frame,
5c50: 66 75 6e 63 74 69 6f 6e 73 2c 20 67 6c 6f 62 61 functions, globa
5c60: 6c 73 2c 20 68 6f 73 74 6e 61 6d 65 2c 20 6c 65 ls, hostname, le
5c70: 76 65 6c 2c 20 6c 69 62 72 61 72 79 2c 20 6c 6f vel, library, lo
5c80: 61 64 65 64 2c 20 6c 6f 63 61 6c 73 2c 20 6e 61 aded, locals, na
5c90: 6d 65 6f 66 65 78 65 63 75 74 61 62 6c 65 2c 20 meofexecutable,
5ca0: 6f 62 6a 65 63 74 2c 20 70 61 74 63 68 6c 65 76 object, patchlev
5cb0: 65 6c 2c 20 70 72 6f 63 73 2c 20 73 63 72 69 70 el, procs, scrip
5cc0: 74 2c 20 73 68 61 72 65 64 6c 69 62 65 78 74 65 t, sharedlibexte
5cd0: 6e 73 69 6f 6e 2c 20 74 63 6c 76 65 72 73 69 6f nsion, tclversio
5ce0: 6e 2c 20 6f 72 20 76 61 72 73 7d 0a 20 74 65 73 n, or vars}. tes
5cf0: 74 20 69 6e 66 6f 2d 32 31 2e 35 20 7b 6d 69 73 t info-21.5 {mis
5d00: 63 65 6c 6c 61 6e 65 6f 75 73 20 65 72 72 6f 72 cellaneous error
5d10: 20 63 6f 6e 64 69 74 69 6f 6e 73 7d 20 2d 72 65 conditions} -re
5d20: 74 75 72 6e 43 6f 64 65 73 20 65 72 72 6f 72 20 turnCodes error
5d30: 2d 62 6f 64 79 20 7b 0a 20 20 20 20 20 69 6e 66 -body {. inf
5d40: 6f 20 73 0a 2d 7d 20 2d 72 65 73 75 6c 74 20 7b o s.-} -result {
5d50: 75 6e 6b 6e 6f 77 6e 20 6f 72 20 61 6d 62 69 67 unknown or ambig
5d60: 75 6f 75 73 20 73 75 62 63 6f 6d 6d 61 6e 64 20 uous subcommand
5d70: 22 73 22 3a 20 6d 75 73 74 20 62 65 20 61 72 67 "s": must be arg
5d80: 73 2c 20 62 6f 64 79 2c 20 63 6c 61 73 73 2c 20 s, body, class,
5d90: 63 6d 64 63 6f 75 6e 74 2c 20 63 6f 6d 6d 61 6e cmdcount, comman
5da0: 64 73 2c 20 63 6f 6d 70 6c 65 74 65 2c 20 63 6f ds, complete, co
5db0: 72 6f 75 74 69 6e 65 2c 20 64 65 66 61 75 6c 74 routine, default
5dc0: 2c 20 65 78 69 73 74 73 2c 20 66 72 61 6d 65 2c , exists, frame,
5dd0: 20 66 75 6e 63 74 69 6f 6e 73 2c 20 67 6c 6f 62 functions, glob
5de0: 61 6c 73 2c 20 68 6f 73 74 6e 61 6d 65 2c 20 6c als, hostname, l
5df0: 65 76 65 6c 2c 20 6c 69 62 72 61 72 79 2c 20 6c evel, library, l
5e00: 6f 61 64 65 64 2c 20 6c 6f 63 61 6c 73 2c 20 6e oaded, locals, n
5e10: 61 6d 65 6f 66 65 78 65 63 75 74 61 62 6c 65 2c ameofexecutable,
5e20: 20 6f 62 6a 65 63 74 2c 20 70 61 74 63 68 6c 65 object, patchle
5e30: 76 65 6c 2c 20 70 72 6f 63 73 2c 20 73 63 72 69 vel, procs, scri
5e40: 70 74 2c 20 73 68 61 72 65 64 6c 69 62 65 78 74 pt, sharedlibext
5e50: 65 6e 73 69 6f 6e 2c 20 74 63 6c 76 65 72 73 69 ension, tclversi
5e60: 6f 6e 2c 20 6f 72 20 76 61 72 73 7d 0a 2b 7d 20 on, or vars}.+}
5e70: 2d 72 65 73 75 6c 74 20 7b 75 6e 6b 6e 6f 77 6e -result {unknown
5e80: 20 6f 72 20 61 6d 62 69 67 75 6f 75 73 20 73 75 or ambiguous su
5e90: 62 63 6f 6d 6d 61 6e 64 20 22 73 22 3a 20 6d 75 bcommand "s": mu
5ea0: 73 74 20 62 65 20 61 72 67 73 2c 20 62 6f 64 79 st be args, body
5eb0: 2c 20 63 6c 61 73 73 2c 20 63 6d 64 63 6f 75 6e , class, cmdcoun
5ec0: 74 2c 20 63 6f 6d 6d 61 6e 64 73 2c 20 63 6f 6d t, commands, com
5ed0: 70 6c 65 74 65 2c 20 63 6f 72 6f 75 74 69 6e 65 plete, coroutine
5ee0: 2c 20 64 65 66 61 75 6c 74 2c 20 65 72 72 6f 72 , default, error
5ef0: 73 74 61 63 6b 2c 20 65 78 69 73 74 73 2c 20 66 stack, exists, f
5f00: 72 61 6d 65 2c 20 66 75 6e 63 74 69 6f 6e 73 2c rame, functions,
5f10: 20 67 6c 6f 62 61 6c 73 2c 20 68 6f 73 74 6e 61 globals, hostna
5f20: 6d 65 2c 20 6c 65 76 65 6c 2c 20 6c 69 62 72 61 me, level, libra
5f30: 72 79 2c 20 6c 6f 61 64 65 64 2c 20 6c 6f 63 61 ry, loaded, loca
5f40: 6c 73 2c 20 6e 61 6d 65 6f 66 65 78 65 63 75 74 ls, nameofexecut
5f50: 61 62 6c 65 2c 20 6f 62 6a 65 63 74 2c 20 70 61 able, object, pa
5f60: 74 63 68 6c 65 76 65 6c 2c 20 70 72 6f 63 73 2c tchlevel, procs,
5f70: 20 73 63 72 69 70 74 2c 20 73 68 61 72 65 64 6c script, sharedl
5f80: 69 62 65 78 74 65 6e 73 69 6f 6e 2c 20 74 63 6c ibextension, tcl
5f90: 76 65 72 73 69 6f 6e 2c 20 6f 72 20 76 61 72 73 version, or vars
5fa0: 7d 0a 20 0a 20 23 23 0a 20 23 20 23 23 23 20 23 }. . ##. # ### #
5fb0: 23 23 20 23 23 23 20 23 23 23 23 23 23 23 23 23 ## ### #########
5fc0: 20 23 23 23 23 23 23 23 23 23 20 23 23 23 23 23 ######### #####
5fd0: 23 23 23 23 0a 49 6e 64 65 78 3a 20 74 65 73 74 ####.Index: test
5fe0: 73 2f 69 6e 69 74 2e 74 65 73 74 0a 3d 3d 3d 3d s/init.test.====
5ff0: 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d ================
6000: 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d ================
6010: 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d ================
6020: 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 0a ===============.
6030: 52 43 53 20 66 69 6c 65 3a 20 2f 63 76 73 72 6f RCS file: /cvsro
6040: 6f 74 2f 74 63 6c 2f 74 63 6c 2f 74 65 73 74 73 ot/tcl/tcl/tests
6050: 2f 69 6e 69 74 2e 74 65 73 74 2c 76 0a 72 65 74 /init.test,v.ret
6060: 72 69 65 76 69 6e 67 20 72 65 76 69 73 69 6f 6e rieving revision
6070: 20 31 2e 32 31 0a 64 69 66 66 20 2d 75 20 2d 70 1.21.diff -u -p
6080: 20 2d 75 20 2d 70 20 2d 72 31 2e 32 31 20 69 6e -u -p -r1.21 in
6090: 69 74 2e 74 65 73 74 0a 2d 2d 2d 20 74 65 73 74 it.test.--- test
60a0: 73 2f 69 6e 69 74 2e 74 65 73 74 09 31 36 20 4e s/init.test.16 N
60b0: 6f 76 20 32 30 30 39 20 31 38 3a 30 30 3a 31 31 ov 2009 18:00:11
60c0: 20 2d 30 30 30 30 09 31 2e 32 31 0a 2b 2b 2b 20 -0000.1.21.+++
60d0: 74 65 73 74 73 2f 69 6e 69 74 2e 74 65 73 74 09 tests/init.test.
60e0: 32 34 20 4d 61 72 20 32 30 31 30 20 31 35 3a 35 24 Mar 2010 15:5
60f0: 35 3a 34 39 20 2d 30 30 30 30 0a 40 40 20 2d 31 5:49 -0000.@@ -1
6100: 38 31 2c 37 20 2b 31 38 31 2c 37 20 40 40 20 74 81,7 +181,7 @@ t
6110: 65 73 74 20 69 6e 69 74 2d 35 2e 30 20 7b 72 65 est init-5.0 {re
6120: 74 75 72 6e 20 6f 70 74 69 6f 6e 73 20 70 61 73 turn options pas
6130: 73 65 64 20 74 68 72 0a 20 20 20 20 20 6c 69 73 sed thr. lis
6140: 74 20 24 63 6f 64 65 20 24 66 6f 6f 20 24 62 61 t $code $foo $ba
6150: 72 20 24 63 6f 64 65 32 20 24 66 6f 6f 32 20 24 r $code2 $foo2 $
6160: 62 61 72 32 0a 20 7d 20 2d 63 6c 65 61 6e 75 70 bar2. } -cleanup
6170: 20 7b 0a 20 20 20 20 20 75 6e 73 65 74 20 3a 3a {. unset ::
6180: 61 75 74 6f 5f 69 6e 64 65 78 28 3a 3a 78 78 78 auto_index(::xxx
6190: 29 0a 2d 7d 20 2d 72 65 73 75 6c 74 20 7b 32 20 ).-} -result {2
61a0: 78 78 78 20 7b 2d 65 72 72 6f 72 63 6f 64 65 20 xxx {-errorcode
61b0: 4e 4f 4e 45 20 2d 63 6f 64 65 20 31 20 2d 6c 65 NONE -code 1 -le
61c0: 76 65 6c 20 31 7d 20 32 20 78 78 78 20 7b 2d 63 vel 1} 2 xxx {-c
61d0: 6f 64 65 20 31 20 2d 6c 65 76 65 6c 20 31 20 2d ode 1 -level 1 -
61e0: 65 72 72 6f 72 63 6f 64 65 20 4e 4f 4e 45 7d 7d errorcode NONE}}
61f0: 0a 2b 7d 20 2d 6d 61 74 63 68 20 67 6c 6f 62 20 .+} -match glob
6200: 2d 72 65 73 75 6c 74 20 7b 32 20 78 78 78 20 7b -result {2 xxx {
6210: 2d 65 72 72 6f 72 63 6f 64 65 20 4e 4f 4e 45 20 -errorcode NONE
6220: 2d 63 6f 64 65 20 31 20 2d 6c 65 76 65 6c 20 31 -code 1 -level 1
6230: 7d 20 32 20 78 78 78 20 7b 2d 63 6f 64 65 20 31 } 2 xxx {-code 1
6240: 20 2d 6c 65 76 65 6c 20 31 20 2d 65 72 72 6f 72 -level 1 -error
6250: 63 6f 64 65 20 4e 4f 4e 45 7d 7d 0a 20 0c 0a 20 code NONE}}. ..
6260: 63 6c 65 61 6e 75 70 54 65 73 74 73 0a 20 7d 09 cleanupTests. }.
6270: 3b 23 20 20 45 6e 64 20 6f 66 20 5b 69 6e 74 65 ;# End of [inte
6280: 72 70 20 65 76 61 6c 20 24 74 65 73 74 49 6e 74 rp eval $testInt
6290: 65 72 70 5d 0a 49 6e 64 65 78 3a 20 74 65 73 74 erp].Index: test
62a0: 73 2f 72 65 73 75 6c 74 2e 74 65 73 74 0a 3d 3d s/result.test.==
62b0: 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d ================
62c0: 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d ================
62d0: 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d ================
62e0: 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d ================
62f0: 3d 0a 52 43 53 20 66 69 6c 65 3a 20 2f 63 76 73 =.RCS file: /cvs
6300: 72 6f 6f 74 2f 74 63 6c 2f 74 63 6c 2f 74 65 73 root/tcl/tcl/tes
6310: 74 73 2f 72 65 73 75 6c 74 2e 74 65 73 74 2c 76 ts/result.test,v
6320: 0a 72 65 74 72 69 65 76 69 6e 67 20 72 65 76 69 .retrieving revi
6330: 73 69 6f 6e 20 31 2e 31 36 0a 64 69 66 66 20 2d sion 1.16.diff -
6340: 75 20 2d 70 20 2d 75 20 2d 70 20 2d 72 31 2e 31 u -p -u -p -r1.1
6350: 36 20 72 65 73 75 6c 74 2e 74 65 73 74 0a 2d 2d 6 result.test.--
6360: 2d 20 74 65 73 74 73 2f 72 65 73 75 6c 74 2e 74 - tests/result.t
6370: 65 73 74 09 32 34 20 4d 61 72 20 32 30 31 30 20 est.24 Mar 2010
6380: 31 35 3a 33 33 3a 31 34 20 2d 30 30 30 30 09 31 15:33:14 -0000.1
6390: 2e 31 36 0a 2b 2b 2b 20 74 65 73 74 73 2f 72 65 .16.+++ tests/re
63a0: 73 75 6c 74 2e 74 65 73 74 09 32 34 20 4d 61 72 sult.test.24 Mar
63b0: 20 32 30 31 30 20 31 35 3a 35 35 3a 34 39 20 2d 2010 15:55:49 -
63c0: 30 30 30 30 0a 40 40 20 2d 31 33 35 2c 36 20 2b 0000.@@ -135,6 +
63d0: 31 33 35 2c 31 30 20 40 40 20 74 65 73 74 20 72 135,10 @@ test r
63e0: 65 73 75 6c 74 2d 36 2e 33 20 7b 42 75 67 20 32 esult-6.3 {Bug 2
63f0: 33 38 33 30 30 35 7d 20 7b 0a 20 20 20 20 20 20 383005} {.
6400: 63 61 74 63 68 20 7b 72 65 74 75 72 6e 20 2d 63 catch {return -c
6410: 6f 64 65 20 65 72 72 6f 72 20 2d 65 72 72 6f 72 ode error -error
6420: 63 6f 64 65 20 7b 7b 7d 61 7d 20 65 65 6b 7d 20 code {{}a} eek}
6430: 6d 0a 20 20 20 20 20 20 73 65 74 20 6d 0a 20 7d m. set m. }
6440: 20 7b 62 61 64 20 2d 65 72 72 6f 72 63 6f 64 65 {bad -errorcode
6450: 20 76 61 6c 75 65 3a 20 65 78 70 65 63 74 65 64 value: expected
6460: 20 61 20 6c 69 73 74 20 62 75 74 20 67 6f 74 20 a list but got
6470: 22 7b 7d 61 22 7d 0a 2b 74 65 73 74 20 72 65 73 "{}a"}.+test res
6480: 75 6c 74 2d 36 2e 34 20 7b 6e 6f 6e 2d 6c 69 73 ult-6.4 {non-lis
6490: 74 20 2d 65 72 72 6f 72 73 74 61 63 6b 7d 20 7b t -errorstack} {
64a0: 0a 2b 20 20 20 20 20 63 61 74 63 68 20 7b 72 65 .+ catch {re
64b0: 74 75 72 6e 20 2d 63 6f 64 65 20 65 72 72 6f 72 turn -code error
64c0: 20 2d 65 72 72 6f 72 73 74 61 63 6b 20 7b 7b 7d -errorstack {{}
64d0: 61 7d 20 65 65 6b 7d 20 6d 20 6f 0a 2b 20 20 20 a} eek} m o.+
64e0: 20 20 6c 69 73 74 20 24 6d 20 5b 64 69 63 74 20 list $m [dict
64f0: 67 65 74 20 24 6f 20 2d 65 72 72 6f 72 63 6f 64 get $o -errorcod
6500: 65 5d 20 5b 64 69 63 74 20 67 65 74 20 24 6f 20 e] [dict get $o
6510: 2d 65 72 72 6f 72 73 74 61 63 6b 5d 0a 2b 7d 20 -errorstack].+}
6520: 7b 7b 62 61 64 20 2d 65 72 72 6f 72 73 74 61 63 {{bad -errorstac
6530: 6b 20 76 61 6c 75 65 3a 20 65 78 70 65 63 74 65 k value: expecte
6540: 64 20 61 20 6c 69 73 74 20 62 75 74 20 67 6f 74 d a list but got
6550: 20 22 7b 7d 61 22 7d 20 7b 54 43 4c 20 52 45 53 "{}a"} {TCL RES
6560: 55 4c 54 20 4e 4f 4e 4c 49 53 54 5f 45 52 52 4f ULT NONLIST_ERRO
6570: 52 53 54 41 43 4b 7d 20 7b 7d 7d 0a 20 23 20 63 RSTACK} {}}. # c
6580: 6c 65 61 6e 75 70 0a 20 63 6c 65 61 6e 75 70 54 leanup. cleanupT
6590: 65 73 74 73 0a 20 72 65 74 75 72 6e 0a ests. return.