Attachment "2868499.patch" to
ticket [2868499fff]
added by
dgp
2010-03-31 22:51:08.
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 72 31 2e 32 33 20 63 61 74 63 68 2e 6e 0a -r1.23 catch.n.
00b0: 2d 2d 2d 20 64 6f 63 2f 63 61 74 63 68 2e 6e 09 --- doc/catch.n.
00c0: 31 33 20 4a 61 6e 20 32 30 31 30 20 31 32 3a 30 13 Jan 2010 12:0
00d0: 38 3a 33 30 20 2d 30 30 30 30 09 31 2e 32 33 0a 8:30 -0000.1.23.
00e0: 2b 2b 2b 20 64 6f 63 2f 63 61 74 63 68 2e 6e 09 +++ doc/catch.n.
00f0: 33 31 20 4d 61 72 20 32 30 31 30 20 31 35 3a 34 31 Mar 2010 15:4
0100: 36 3a 30 34 20 2d 30 30 30 30 0a 40 40 20 2d 35 6:04 -0000.@@ -5
0110: 34 2c 32 32 20 2b 35 34 2c 33 36 20 40 40 0a 20 4,22 +54,36 @@.
0120: 74 68 65 20 5c 66 42 5c 2d 6c 65 76 65 6c 5c 66 the \fB\-level\f
0130: 52 20 61 6e 64 20 5c 66 42 5c 2d 63 6f 64 65 5c R and \fB\-code\
0140: 66 52 20 65 6e 74 72 69 65 73 20 62 65 20 73 6f fR entries be so
0150: 6d 65 74 68 69 6e 67 20 65 6c 73 65 2c 20 61 73 mething else, as
0160: 0a 20 66 75 72 74 68 65 72 20 64 65 73 63 72 69 . further descri
0170: 62 65 64 20 69 6e 20 74 68 65 20 64 6f 63 75 6d bed in the docum
0180: 65 6e 74 61 74 69 6f 6e 20 66 6f 72 20 74 68 65 entation for the
0190: 20 5c 66 42 72 65 74 75 72 6e 5c 66 52 20 63 6f \fBreturn\fR co
01a0: 6d 6d 61 6e 64 2e 0a 20 2e 50 50 0a 2d 57 68 65 mmand.. .PP.-Whe
01b0: 6e 20 74 68 65 20 72 65 74 75 72 6e 20 63 6f 64 n the return cod
01c0: 65 20 66 72 6f 6d 20 65 76 61 6c 75 61 74 69 6f e from evaluatio
01d0: 6e 20 6f 66 20 5c 66 49 73 63 72 69 70 74 5c 66 n of \fIscript\f
01e0: 52 20 69 73 20 5c 66 42 54 43 4c 5f 45 52 52 4f R is \fBTCL_ERRO
01f0: 52 5c 66 52 2c 0a 2d 74 68 72 65 65 20 61 64 64 R\fR,.-three add
0200: 69 74 69 6f 6e 61 6c 20 65 6e 74 72 69 65 73 20 itional entries
0210: 61 72 65 20 64 65 66 69 6e 65 64 20 69 6e 20 74 are defined in t
0220: 68 65 20 64 69 63 74 69 6f 6e 61 72 79 20 6f 66 he dictionary of
0230: 20 72 65 74 75 72 6e 20 6f 70 74 69 6f 6e 73 0a return options.
0240: 2d 73 74 6f 72 65 64 20 69 6e 20 5c 66 49 6f 70 -stored in \fIop
0250: 74 69 6f 6e 73 56 61 72 4e 61 6d 65 5c 66 52 3a tionsVarName\fR:
0260: 20 5c 66 42 5c 2d 65 72 72 6f 72 69 6e 66 6f 5c \fB\-errorinfo\
0270: 66 52 2c 20 5c 66 42 5c 2d 65 72 72 6f 72 63 6f fR, \fB\-errorco
0280: 64 65 5c 66 52 2c 20 0a 2d 61 6e 64 20 5c 66 42 de\fR, .-and \fB
0290: 5c 2d 65 72 72 6f 72 6c 69 6e 65 5c 66 52 2e 20 \-errorline\fR.
02a0: 20 54 68 65 20 76 61 6c 75 65 20 6f 66 20 74 68 The value of th
02b0: 65 20 5c 66 42 5c 2d 65 72 72 6f 72 69 6e 66 6f e \fB\-errorinfo
02c0: 5c 66 52 20 65 6e 74 72 79 0a 2d 69 73 20 61 20 \fR entry.-is a
02d0: 66 6f 72 6d 61 74 74 65 64 20 73 74 61 63 6b 20 formatted stack
02e0: 74 72 61 63 65 20 63 6f 6e 74 61 69 6e 69 6e 67 trace containing
02f0: 20 6d 6f 72 65 20 69 6e 66 6f 72 6d 61 74 69 6f more informatio
0300: 6e 20 61 62 6f 75 74 0a 2d 74 68 65 20 63 6f 6e n about.-the con
0310: 74 65 78 74 20 69 6e 20 77 68 69 63 68 20 74 68 text in which th
0320: 65 20 65 72 72 6f 72 20 68 61 70 70 65 6e 65 64 e error happened
0330: 2e 20 20 54 68 65 20 66 6f 72 6d 61 74 74 65 64 . The formatted
0340: 20 73 74 61 63 6b 0a 2d 74 72 61 63 65 20 69 73 stack.-trace is
0350: 20 6d 65 61 6e 74 20 74 6f 20 62 65 20 72 65 61 meant to be rea
0360: 64 20 62 79 20 61 20 70 65 72 73 6f 6e 2e 20 20 d by a person.
0370: 54 68 65 20 76 61 6c 75 65 20 6f 66 0a 2d 74 68 The value of.-th
0380: 65 20 5c 66 42 5c 2d 65 72 72 6f 72 63 6f 64 65 e \fB\-errorcode
0390: 5c 66 52 20 65 6e 74 72 79 20 69 73 20 61 64 64 \fR entry is add
03a0: 69 74 69 6f 6e 61 6c 20 69 6e 66 6f 72 6d 61 74 itional informat
03b0: 69 6f 6e 20 61 62 6f 75 74 20 74 68 65 0a 2d 65 ion about the.-e
03c0: 72 72 6f 72 20 73 74 6f 72 65 64 20 61 73 20 61 rror stored as a
03d0: 20 6c 69 73 74 2e 20 20 54 68 65 20 5c 66 42 5c list. The \fB\
03e0: 2d 65 72 72 6f 72 63 6f 64 65 5c 66 52 20 76 61 -errorcode\fR va
03f0: 6c 75 65 20 69 73 20 6d 65 61 6e 74 20 74 6f 0a lue is meant to.
0400: 2d 62 65 20 66 75 72 74 68 65 72 20 70 72 6f 63 -be further proc
0410: 65 73 73 65 64 20 62 79 20 70 72 6f 67 72 61 6d essed by program
0420: 73 2c 20 61 6e 64 20 6d 61 79 20 6e 6f 74 20 62 s, and may not b
0430: 65 20 70 61 72 74 69 63 75 6c 61 72 6c 79 0a 2d e particularly.-
0440: 72 65 61 64 61 62 6c 65 20 62 79 20 70 65 6f 70 readable by peop
0450: 6c 65 2e 20 20 54 68 65 20 76 61 6c 75 65 20 6f le. The value o
0460: 66 20 74 68 65 20 5c 66 42 5c 2d 65 72 72 6f 72 f the \fB\-error
0470: 6c 69 6e 65 5c 66 52 20 65 6e 74 72 79 0a 2d 69 line\fR entry.-i
0480: 73 20 61 6e 20 69 6e 74 65 67 65 72 20 69 6e 64 s an integer ind
0490: 69 63 61 74 69 6e 67 20 77 68 69 63 68 20 6c 69 icating which li
04a0: 6e 65 20 6f 66 20 5c 66 49 73 63 72 69 70 74 5c ne of \fIscript\
04b0: 66 52 20 77 61 73 20 62 65 69 6e 67 0a 2d 65 76 fR was being.-ev
04c0: 61 6c 75 61 74 65 64 20 77 68 65 6e 20 74 68 65 aluated when the
04d0: 20 65 72 72 6f 72 20 6f 63 63 75 72 72 65 64 2e error occurred.
04e0: 20 20 54 68 65 20 76 61 6c 75 65 73 20 6f 66 20 The values of
04f0: 74 68 65 20 5c 66 42 5c 2d 65 72 72 6f 72 69 6e the \fB\-errorin
0500: 66 6f 5c 66 52 0a 2d 61 6e 64 20 5c 66 42 5c 2d fo\fR.-and \fB\-
0510: 65 72 72 6f 72 63 6f 64 65 5c 66 52 20 65 6e 74 errorcode\fR ent
0520: 72 69 65 73 20 6f 66 20 74 68 65 20 6d 6f 73 74 ries of the most
0530: 20 72 65 63 65 6e 74 20 65 72 72 6f 72 20 61 72 recent error ar
0540: 65 20 61 6c 73 6f 0a 2d 61 76 61 69 6c 61 62 6c e also.-availabl
0550: 65 20 61 73 20 76 61 6c 75 65 73 20 6f 66 20 74 e as values of t
0560: 68 65 20 67 6c 6f 62 61 6c 20 76 61 72 69 61 62 he global variab
0570: 6c 65 73 20 5c 66 42 3a 3a 65 72 72 6f 72 49 6e les \fB::errorIn
0580: 66 6f 5c 66 52 0a 2d 61 6e 64 20 5c 66 42 3a 3a fo\fR.-and \fB::
0590: 65 72 72 6f 72 43 6f 64 65 5c 66 52 20 72 65 73 errorCode\fR res
05a0: 70 65 63 74 69 76 65 6c 79 2e 0a 2b 57 68 65 6e pectively..+When
05b0: 20 74 68 65 20 72 65 74 75 72 6e 20 63 6f 64 65 the return code
05c0: 20 66 72 6f 6d 20 65 76 61 6c 75 61 74 69 6f 6e from evaluation
05d0: 20 6f 66 20 5c 66 49 73 63 72 69 70 74 5c 66 52 of \fIscript\fR
05e0: 20 69 73 0a 2b 5c 66 42 54 43 4c 5f 45 52 52 4f is.+\fBTCL_ERRO
05f0: 52 5c 66 52 2c 20 66 6f 75 72 20 61 64 64 69 74 R\fR, four addit
0600: 69 6f 6e 61 6c 20 65 6e 74 72 69 65 73 20 61 72 ional entries ar
0610: 65 20 64 65 66 69 6e 65 64 20 69 6e 20 74 68 65 e defined in the
0620: 20 64 69 63 74 69 6f 6e 61 72 79 0a 2b 6f 66 20 dictionary.+of
0630: 72 65 74 75 72 6e 20 6f 70 74 69 6f 6e 73 20 73 return options s
0640: 74 6f 72 65 64 20 69 6e 20 5c 66 49 6f 70 74 69 tored in \fIopti
0650: 6f 6e 73 56 61 72 4e 61 6d 65 5c 66 52 3a 20 5c onsVarName\fR: \
0660: 66 42 5c 2d 65 72 72 6f 72 69 6e 66 6f 5c 66 52 fB\-errorinfo\fR
0670: 2c 0a 2b 5c 66 42 5c 2d 65 72 72 6f 72 63 6f 64 ,.+\fB\-errorcod
0680: 65 5c 66 52 2c 20 5c 66 42 5c 2d 65 72 72 6f 72 e\fR, \fB\-error
0690: 6c 69 6e 65 5c 66 52 2c 20 61 6e 64 20 5c 66 42 line\fR, and \fB
06a0: 5c 2d 65 72 72 6f 72 73 74 61 63 6b 5c 66 52 2e \-errorstack\fR.
06b0: 20 20 54 68 65 0a 2b 76 61 6c 75 65 20 6f 66 20 The.+value of
06c0: 74 68 65 20 5c 66 42 5c 2d 65 72 72 6f 72 69 6e the \fB\-errorin
06d0: 66 6f 5c 66 52 20 65 6e 74 72 79 20 69 73 20 61 fo\fR entry is a
06e0: 20 66 6f 72 6d 61 74 74 65 64 20 73 74 61 63 6b formatted stack
06f0: 20 74 72 61 63 65 0a 2b 63 6f 6e 74 61 69 6e 69 trace.+containi
0700: 6e 67 20 6d 6f 72 65 20 69 6e 66 6f 72 6d 61 74 ng more informat
0710: 69 6f 6e 20 61 62 6f 75 74 20 74 68 65 20 63 6f ion about the co
0720: 6e 74 65 78 74 20 69 6e 20 77 68 69 63 68 20 74 ntext in which t
0730: 68 65 20 65 72 72 6f 72 0a 2b 68 61 70 70 65 6e he error.+happen
0740: 65 64 2e 20 20 54 68 65 20 66 6f 72 6d 61 74 74 ed. The formatt
0750: 65 64 20 73 74 61 63 6b 20 74 72 61 63 65 20 69 ed stack trace i
0760: 73 20 6d 65 61 6e 74 20 74 6f 20 62 65 20 72 65 s meant to be re
0770: 61 64 20 62 79 20 61 20 70 65 72 73 6f 6e 2e 0a ad by a person..
0780: 2b 54 68 65 20 76 61 6c 75 65 20 6f 66 20 74 68 +The value of th
0790: 65 20 5c 66 42 5c 2d 65 72 72 6f 72 63 6f 64 65 e \fB\-errorcode
07a0: 5c 66 52 20 65 6e 74 72 79 20 69 73 20 61 64 64 \fR entry is add
07b0: 69 74 69 6f 6e 61 6c 20 69 6e 66 6f 72 6d 61 74 itional informat
07c0: 69 6f 6e 0a 2b 61 62 6f 75 74 20 74 68 65 20 65 ion.+about the e
07d0: 72 72 6f 72 20 73 74 6f 72 65 64 20 61 73 20 61 rror stored as a
07e0: 20 6c 69 73 74 2e 20 20 54 68 65 20 5c 66 42 5c list. The \fB\
07f0: 2d 65 72 72 6f 72 63 6f 64 65 5c 66 52 20 76 61 -errorcode\fR va
0800: 6c 75 65 20 69 73 0a 2b 6d 65 61 6e 74 20 74 6f lue is.+meant to
0810: 20 62 65 20 66 75 72 74 68 65 72 20 70 72 6f 63 be further proc
0820: 65 73 73 65 64 20 62 79 20 70 72 6f 67 72 61 6d essed by program
0830: 73 2c 20 61 6e 64 20 6d 61 79 20 6e 6f 74 20 62 s, and may not b
0840: 65 20 70 61 72 74 69 63 75 6c 61 72 6c 79 0a 2b e particularly.+
0850: 72 65 61 64 61 62 6c 65 20 62 79 20 70 65 6f 70 readable by peop
0860: 6c 65 2e 20 20 54 68 65 20 76 61 6c 75 65 20 6f le. The value o
0870: 66 20 74 68 65 20 5c 66 42 5c 2d 65 72 72 6f 72 f the \fB\-error
0880: 6c 69 6e 65 5c 66 52 20 65 6e 74 72 79 20 69 73 line\fR entry is
0890: 20 61 6e 0a 2b 69 6e 74 65 67 65 72 20 69 6e 64 an.+integer ind
08a0: 69 63 61 74 69 6e 67 20 77 68 69 63 68 20 6c 69 icating which li
08b0: 6e 65 20 6f 66 20 5c 66 49 73 63 72 69 70 74 5c ne of \fIscript\
08c0: 66 52 20 77 61 73 20 62 65 69 6e 67 20 65 76 61 fR was being eva
08d0: 6c 75 61 74 65 64 20 77 68 65 6e 0a 2b 74 68 65 luated when.+the
08e0: 20 65 72 72 6f 72 20 6f 63 63 75 72 72 65 64 2e error occurred.
08f0: 20 20 54 68 65 20 76 61 6c 75 65 20 6f 66 20 74 The value of t
0900: 68 65 20 5c 66 42 5c 2d 65 72 72 6f 72 73 74 61 he \fB\-errorsta
0910: 63 6b 5c 66 52 20 65 6e 74 72 79 20 69 73 20 61 ck\fR entry is a
0920: 6e 0a 2b 65 76 65 6e 2d 73 69 7a 65 64 20 6c 69 n.+even-sized li
0930: 73 74 20 6d 61 64 65 20 6f 66 20 74 6f 6b 65 6e st made of token
0940: 2d 70 61 72 61 6d 65 74 65 72 20 70 61 69 72 73 -parameter pairs
0950: 20 61 63 63 75 6d 75 6c 61 74 65 64 20 77 68 69 accumulated whi
0960: 6c 65 0a 2b 75 6e 77 69 6e 64 69 6e 67 20 74 68 le.+unwinding th
0970: 65 20 73 74 61 63 6b 2e 20 54 68 65 20 74 6f 6b e stack. The tok
0980: 65 6e 20 6d 61 79 20 62 65 20 22 43 41 4c 4c 22 en may be "CALL"
0990: 2c 20 69 6e 20 77 68 69 63 68 20 63 61 73 65 20 , in which case
09a0: 74 68 65 0a 2b 70 61 72 61 6d 65 74 65 72 20 69 the.+parameter i
09b0: 73 20 61 20 6c 69 73 74 20 6d 61 64 65 20 6f 66 s a list made of
09c0: 20 74 68 65 20 70 72 6f 63 20 6e 61 6d 65 20 61 the proc name a
09d0: 6e 64 20 61 72 67 75 6d 65 6e 74 73 20 61 74 20 nd arguments at
09e0: 74 68 65 0a 2b 63 6f 72 72 65 73 70 6f 6e 64 69 the.+correspondi
09f0: 6e 67 20 6c 65 76 65 6c 3b 20 6f 72 20 69 74 20 ng level; or it
0a00: 6d 61 79 20 62 65 20 22 55 50 22 2c 20 69 6e 20 may be "UP", in
0a10: 77 68 69 63 68 20 63 61 73 65 20 74 68 65 20 70 which case the p
0a20: 61 72 61 6d 65 74 65 72 20 69 73 0a 2b 74 68 65 arameter is.+the
0a30: 20 72 65 6c 61 74 69 76 65 20 5b 75 70 6c 65 76 relative [uplev
0a40: 65 6c 5d 20 6f 66 20 74 68 65 20 70 72 65 76 69 el] of the previ
0a50: 6f 75 73 20 43 41 4c 4c 2e 20 54 68 65 20 73 61 ous CALL. The sa
0a60: 6c 69 65 6e 74 20 64 69 66 66 65 72 65 6e 63 65 lient difference
0a70: 73 0a 2b 77 72 74 20 2d 65 72 72 6f 72 69 6e 66 s.+wrt -errorinf
0a80: 6f 20 61 72 65 20 74 68 61 74 20 28 31 29 20 69 o are that (1) i
0a90: 74 20 69 73 20 61 20 6d 61 63 68 69 6e 65 2d 72 t is a machine-r
0aa0: 65 61 64 61 62 6c 65 20 66 6f 72 6d 20 61 6d 65 eadable form ame
0ab0: 6e 61 62 6c 65 20 74 6f 0a 2b 5b 66 6f 72 65 61 nable to.+[forea
0ac0: 63 68 20 7b 74 6f 6b 20 70 72 6d 7d 20 2e 2e 2e ch {tok prm} ...
0ad0: 5d 2c 20 28 32 29 20 69 74 20 63 6f 6e 74 61 69 ], (2) it contai
0ae0: 6e 73 20 74 68 65 20 74 72 75 65 20 28 73 75 62 ns the true (sub
0af0: 73 74 69 74 75 74 65 64 29 20 76 61 6c 75 65 73 stituted) values
0b00: 0a 2b 70 61 73 73 65 64 20 74 6f 20 74 68 65 20 .+passed to the
0b10: 66 75 6e 63 74 69 6f 6e 73 2c 20 69 6e 73 74 65 functions, inste
0b20: 61 64 20 6f 66 20 74 68 65 20 73 74 61 74 69 63 ad of the static
0b30: 20 74 65 78 74 20 6f 66 20 74 68 65 20 63 61 6c text of the cal
0b40: 6c 69 6e 67 0a 2b 73 69 74 65 73 2c 20 61 6e 64 ling.+sites, and
0b50: 20 28 33 29 20 69 74 20 69 73 20 63 6f 61 72 73 (3) it is coars
0b60: 65 72 2d 67 72 61 69 6e 65 64 2c 20 77 69 74 68 er-grained, with
0b70: 20 6f 6e 6c 79 20 6f 6e 65 20 65 6c 65 6d 65 6e only one elemen
0b80: 74 20 70 65 72 20 73 74 61 63 6b 0a 2b 66 72 61 t per stack.+fra
0b90: 6d 65 20 28 6c 69 6b 65 20 70 72 6f 63 73 3b 20 me (like procs;
0ba0: 6e 6f 20 73 65 70 61 72 61 74 65 20 65 6c 65 6d no separate elem
0bb0: 65 6e 74 73 20 66 6f 72 20 5b 66 6f 72 65 61 63 ents for [foreac
0bc0: 68 5d 20 63 6f 6e 73 74 72 75 63 74 73 20 66 6f h] constructs fo
0bd0: 72 0a 2b 65 78 61 6d 70 6c 65 29 2e 0a 2b 0a 2b r.+example)..+.+
0be0: 54 68 65 20 76 61 6c 75 65 73 20 6f 66 20 74 68 The values of th
0bf0: 65 20 5c 66 42 5c 2d 65 72 72 6f 72 69 6e 66 6f e \fB\-errorinfo
0c00: 5c 66 52 20 61 6e 64 20 5c 66 42 5c 2d 65 72 72 \fR and \fB\-err
0c10: 6f 72 63 6f 64 65 5c 66 52 20 65 6e 74 72 69 65 orcode\fR entrie
0c20: 73 20 6f 66 0a 2b 74 68 65 20 6d 6f 73 74 20 72 s of.+the most r
0c30: 65 63 65 6e 74 20 65 72 72 6f 72 20 61 72 65 20 ecent error are
0c40: 61 6c 73 6f 20 61 76 61 69 6c 61 62 6c 65 20 61 also available a
0c50: 73 20 76 61 6c 75 65 73 20 6f 66 20 74 68 65 20 s values of the
0c60: 67 6c 6f 62 61 6c 0a 2b 76 61 72 69 61 62 6c 65 global.+variable
0c70: 73 20 5c 66 42 3a 3a 65 72 72 6f 72 49 6e 66 6f s \fB::errorInfo
0c80: 5c 66 52 20 61 6e 64 20 5c 66 42 3a 3a 65 72 72 \fR and \fB::err
0c90: 6f 72 43 6f 64 65 5c 66 52 20 72 65 73 70 65 63 orCode\fR respec
0ca0: 74 69 76 65 6c 79 2e 20 54 68 65 0a 2b 76 61 6c tively. The.+val
0cb0: 75 65 20 6f 66 20 74 68 65 20 5c 66 42 5c 2d 65 ue of the \fB\-e
0cc0: 72 72 6f 72 73 74 61 63 6b 5c 66 52 20 65 6e 74 rrorstack\fR ent
0cd0: 72 79 20 73 75 72 66 61 63 65 73 20 61 73 20 5c ry surfaces as \
0ce0: 66 42 69 6e 66 6f 0a 2b 65 72 72 6f 72 73 74 61 fBinfo.+errorsta
0cf0: 63 6b 5c 66 52 2e 0a 20 2e 50 50 0a 20 54 63 6c ck\fR.. .PP. Tcl
0d00: 20 70 61 63 6b 61 67 65 73 20 6d 61 79 20 70 72 packages may pr
0d10: 6f 76 69 64 65 20 63 6f 6d 6d 61 6e 64 73 20 74 ovide commands t
0d20: 68 61 74 20 73 65 74 20 6f 74 68 65 72 20 65 6e hat set other en
0d30: 74 72 69 65 73 20 69 6e 20 74 68 65 0a 20 64 69 tries in the. di
0d40: 63 74 69 6f 6e 61 72 79 20 6f 66 20 72 65 74 75 ctionary of retu
0d50: 72 6e 20 6f 70 74 69 6f 6e 73 2c 20 61 6e 64 20 rn options, and
0d60: 74 68 65 20 5c 66 42 72 65 74 75 72 6e 5c 66 52 the \fBreturn\fR
0d70: 20 63 6f 6d 6d 61 6e 64 20 6d 61 79 20 62 65 0a command may be.
0d80: 49 6e 64 65 78 3a 20 64 6f 63 2f 69 6e 66 6f 2e Index: doc/info.
0d90: 6e 0a 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d n.==============
0da0: 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d ================
0db0: 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d ================
0dc0: 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d ================
0dd0: 3d 3d 3d 3d 3d 0a 52 43 53 20 66 69 6c 65 3a 20 =====.RCS file:
0de0: 2f 63 76 73 72 6f 6f 74 2f 74 63 6c 2f 74 63 6c /cvsroot/tcl/tcl
0df0: 2f 64 6f 63 2f 69 6e 66 6f 2e 6e 2c 76 0a 72 65 /doc/info.n,v.re
0e00: 74 72 69 65 76 69 6e 67 20 72 65 76 69 73 69 6f trieving revisio
0e10: 6e 20 31 2e 33 36 0a 64 69 66 66 20 2d 75 20 2d n 1.36.diff -u -
0e20: 72 31 2e 33 36 20 69 6e 66 6f 2e 6e 0a 2d 2d 2d r1.36 info.n.---
0e30: 20 64 6f 63 2f 69 6e 66 6f 2e 6e 09 32 34 20 4d doc/info.n.24 M
0e40: 61 72 20 32 30 31 30 20 31 33 3a 32 31 3a 31 31 ar 2010 13:21:11
0e50: 20 2d 30 30 30 30 09 31 2e 33 36 0a 2b 2b 2b 20 -0000.1.36.+++
0e60: 64 6f 63 2f 69 6e 66 6f 2e 6e 09 33 31 20 4d 61 doc/info.n.31 Ma
0e70: 72 20 32 30 31 30 20 31 35 3a 34 36 3a 30 34 20 r 2010 15:46:04
0e80: 2d 30 30 30 30 0a 40 40 20 2d 39 34 2c 36 20 2b -0000.@@ -94,6 +
0e90: 39 34 2c 31 36 20 40 40 0a 20 4f 74 68 65 72 77 94,16 @@. Otherw
0ea0: 69 73 65 20 69 74 20 72 65 74 75 72 6e 73 20 5c ise it returns \
0eb0: 66 42 31 5c 66 52 20 61 6e 64 20 70 6c 61 63 65 fB1\fR and place
0ec0: 73 20 74 68 65 20 64 65 66 61 75 6c 74 20 76 61 s the default va
0ed0: 6c 75 65 20 6f 66 20 5c 66 49 61 72 67 5c 66 52 lue of \fIarg\fR
0ee0: 0a 20 69 6e 74 6f 20 76 61 72 69 61 62 6c 65 20 . into variable
0ef0: 5c 66 49 76 61 72 6e 61 6d 65 5c 66 52 2e 0a 20 \fIvarname\fR..
0f00: 2e 54 50 0a 2b 5c 66 42 69 6e 66 6f 20 65 72 72 .TP.+\fBinfo err
0f10: 6f 72 73 74 61 63 6b 20 5c 66 52 3f 5c 66 49 69 orstack \fR?\fIi
0f20: 6e 74 65 72 70 5c 66 52 3f 0a 2b 2e 0a 2b 52 65 nterp\fR?.+..+Re
0f30: 74 75 72 6e 73 20 61 20 6c 69 73 74 20 6f 66 20 turns a list of
0f40: 6c 69 73 74 73 20 6d 61 64 65 20 6f 66 20 74 68 lists made of th
0f50: 65 20 66 75 6e 63 74 69 6f 6e 20 6e 61 6d 65 73 e function names
0f60: 20 61 6e 64 20 61 72 67 75 6d 65 6e 74 73 20 61 and arguments a
0f70: 74 0a 2b 65 61 63 68 20 6c 65 76 65 6c 20 66 72 t.+each level fr
0f80: 6f 6d 20 74 68 65 20 63 61 6c 6c 20 73 74 61 63 om the call stac
0f90: 6b 20 6f 66 20 74 68 65 20 6c 61 73 74 20 65 72 k of the last er
0fa0: 72 6f 72 20 69 6e 20 74 68 65 20 67 69 76 65 6e ror in the given
0fb0: 0a 2b 5c 66 49 69 6e 74 65 72 70 5c 66 52 2c 20 .+\fIinterp\fR,
0fc0: 6f 72 20 69 6e 20 74 68 65 20 63 75 72 72 65 6e or in the curren
0fd0: 74 20 6f 6e 65 20 69 66 20 6e 6f 74 20 73 70 65 t one if not spe
0fe0: 63 69 66 69 65 64 2e 20 20 54 68 69 73 0a 2b 69 cified. This.+i
0ff0: 6e 66 6f 72 6d 61 74 69 6f 6e 20 69 73 20 61 6c nformation is al
1000: 73 6f 20 70 72 65 73 65 6e 74 20 69 6e 20 74 68 so present in th
1010: 65 20 2d 65 72 72 6f 72 73 74 61 63 6b 20 65 6e e -errorstack en
1020: 74 72 79 20 6f 66 20 74 68 65 20 6f 70 74 69 6f try of the optio
1030: 6e 73 0a 2b 64 69 63 74 69 6f 6e 61 72 79 20 72 ns.+dictionary r
1040: 65 74 75 72 6e 65 64 20 62 79 20 33 2d 61 72 67 eturned by 3-arg
1050: 20 5c 66 42 63 61 74 63 68 5c 66 52 3b 20 5c 66 \fBcatch\fR; \f
1060: 42 69 6e 66 6f 20 65 72 72 6f 72 73 74 61 63 6b Binfo errorstack
1070: 5c 66 52 20 69 73 20 61 0a 2b 63 6f 6e 76 65 6e \fR is a.+conven
1080: 69 65 6e 74 20 77 61 79 20 6f 66 20 72 65 74 72 ient way of retr
1090: 69 65 76 69 6e 67 20 69 74 20 66 6f 72 20 75 6e ieving it for un
10a0: 63 61 75 67 68 74 20 65 72 72 6f 72 73 20 61 74 caught errors at
10b0: 20 74 6f 70 6c 65 76 65 6c 20 69 6e 20 61 6e 0a toplevel in an.
10c0: 2b 69 6e 74 65 72 61 63 74 69 76 65 20 74 63 6c +interactive tcl
10d0: 73 68 2e 0a 2b 2e 54 50 0a 20 5c 66 42 69 6e 66 sh..+.TP. \fBinf
10e0: 6f 20 65 78 69 73 74 73 20 5c 66 49 76 61 72 4e o exists \fIvarN
10f0: 61 6d 65 5c 66 52 0a 20 2e 0a 20 52 65 74 75 72 ame\fR. .. Retur
1100: 6e 73 20 5c 66 42 31 5c 66 52 20 69 66 20 74 68 ns \fB1\fR if th
1110: 65 20 76 61 72 69 61 62 6c 65 20 6e 61 6d 65 64 e variable named
1120: 20 5c 66 49 76 61 72 4e 61 6d 65 5c 66 52 20 65 \fIvarName\fR e
1130: 78 69 73 74 73 20 69 6e 20 74 68 65 0a 49 6e 64 xists in the.Ind
1140: 65 78 3a 20 64 6f 63 2f 72 65 74 75 72 6e 2e 6e ex: doc/return.n
1150: 0a 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d .===============
1160: 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d ================
1170: 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d ================
1180: 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d ================
1190: 3d 3d 3d 3d 0a 52 43 53 20 66 69 6c 65 3a 20 2f ====.RCS file: /
11a0: 63 76 73 72 6f 6f 74 2f 74 63 6c 2f 74 63 6c 2f cvsroot/tcl/tcl/
11b0: 64 6f 63 2f 72 65 74 75 72 6e 2e 6e 2c 76 0a 72 doc/return.n,v.r
11c0: 65 74 72 69 65 76 69 6e 67 20 72 65 76 69 73 69 etrieving revisi
11d0: 6f 6e 20 31 2e 32 35 0a 64 69 66 66 20 2d 75 20 on 1.25.diff -u
11e0: 2d 72 31 2e 32 35 20 72 65 74 75 72 6e 2e 6e 0a -r1.25 return.n.
11f0: 2d 2d 2d 20 64 6f 63 2f 72 65 74 75 72 6e 2e 6e --- doc/return.n
1200: 09 32 30 20 4a 61 6e 20 32 30 31 30 20 31 33 3a .20 Jan 2010 13:
1210: 34 32 3a 31 37 20 2d 30 30 30 30 09 31 2e 32 35 42:17 -0000.1.25
1220: 0a 2b 2b 2b 20 64 6f 63 2f 72 65 74 75 72 6e 2e .+++ doc/return.
1230: 6e 09 33 31 20 4d 61 72 20 32 30 31 30 20 31 35 n.31 Mar 2010 15
1240: 3a 34 36 3a 30 34 20 2d 30 30 30 30 0a 40 40 20 :46:04 -0000.@@
1250: 2d 31 33 38 2c 36 20 2b 31 33 38 2c 32 32 20 40 -138,6 +138,22 @
1260: 40 0a 20 62 79 20 74 68 65 20 5c 66 42 63 61 74 @. by the \fBcat
1270: 63 68 5c 66 52 20 63 6f 6d 6d 61 6e 64 20 28 6f ch\fR command (o
1280: 72 20 66 72 6f 6d 20 74 68 65 20 63 6f 70 79 20 r from the copy
1290: 6f 66 20 74 68 61 74 20 69 6e 66 6f 72 6d 61 74 of that informat
12a0: 69 6f 6e 0a 20 73 74 6f 72 65 64 20 69 6e 20 74 ion. stored in t
12b0: 68 65 20 67 6c 6f 62 61 6c 20 76 61 72 69 61 62 he global variab
12c0: 6c 65 20 5c 66 42 65 72 72 6f 72 49 6e 66 6f 5c le \fBerrorInfo\
12d0: 66 52 29 2e 0a 20 2e 54 50 0a 2b 5c 66 42 5c 2d fR).. .TP.+\fB\-
12e0: 65 72 72 6f 72 73 74 61 63 6b 20 5c 66 49 6c 69 errorstack \fIli
12f0: 73 74 5c 66 52 0a 2b 2e 0a 2b 54 68 65 20 5c 66 st\fR.+..+The \f
1300: 42 5c 2d 65 72 72 6f 72 73 74 61 63 6b 5c 66 52 B\-errorstack\fR
1310: 20 6f 70 74 69 6f 6e 20 72 65 63 65 69 76 65 73 option receives
1320: 20 73 70 65 63 69 61 6c 20 74 72 65 61 74 6d 65 special treatme
1330: 6e 74 20 6f 6e 6c 79 20 77 68 65 6e 20 74 68 65 nt only when the
1340: 20 76 61 6c 75 65 0a 2b 6f 66 20 74 68 65 20 5c value.+of the \
1350: 66 42 5c 2d 63 6f 64 65 5c 66 52 20 6f 70 74 69 fB\-code\fR opti
1360: 6f 6e 20 69 73 20 5c 66 42 54 43 4c 5f 45 52 52 on is \fBTCL_ERR
1370: 4f 52 5c 66 52 2e 20 20 54 68 65 6e 20 5c 66 49 OR\fR. Then \fI
1380: 6c 69 73 74 5c 66 52 20 69 73 20 74 68 65 20 69 list\fR is the i
1390: 6e 69 74 69 61 6c 0a 2b 65 72 72 6f 72 20 73 74 nitial.+error st
13a0: 61 63 6b 2c 20 72 65 63 6f 72 64 69 6e 67 20 61 ack, recording a
13b0: 63 74 75 61 6c 20 61 72 67 75 6d 65 6e 74 20 76 ctual argument v
13c0: 61 6c 75 65 73 20 70 61 73 73 65 64 20 74 6f 20 alues passed to
13d0: 65 61 63 68 20 70 72 6f 63 20 6c 65 76 65 6c 2e each proc level.
13e0: 20 20 54 68 65 20 65 72 72 6f 72 20 73 74 61 63 The error stac
13f0: 6b 20 77 69 6c 6c 0a 2b 61 6c 73 6f 20 62 65 20 k will.+also be
1400: 72 65 61 63 68 61 62 6c 65 20 74 68 72 6f 75 67 reachable throug
1410: 68 20 5b 69 6e 66 6f 20 65 72 72 6f 72 73 74 61 h [info errorsta
1420: 63 6b 5d 2e 0a 2b 49 66 20 6e 6f 20 5c 66 42 5c ck]..+If no \fB\
1430: 2d 65 72 72 6f 72 73 74 61 63 6b 5c 66 52 20 6f -errorstack\fR o
1440: 70 74 69 6f 6e 20 69 73 20 70 72 6f 76 69 64 65 ption is provide
1450: 64 20 74 6f 20 5c 66 42 72 65 74 75 72 6e 5c 66 d to \fBreturn\f
1460: 52 20 77 68 65 6e 0a 2b 74 68 65 20 5c 66 42 5c R when.+the \fB\
1470: 2d 63 6f 64 65 20 65 72 72 6f 72 5c 66 52 20 6f -code error\fR o
1480: 70 74 69 6f 6e 20 69 73 20 70 72 6f 76 69 64 65 ption is provide
1490: 64 2c 20 54 63 6c 20 77 69 6c 6c 20 70 72 6f 76 d, Tcl will prov
14a0: 69 64 65 20 69 74 73 20 6f 77 6e 0a 2b 69 6e 69 ide its own.+ini
14b0: 74 69 61 6c 20 65 72 72 6f 72 20 73 74 61 63 6b tial error stack
14c0: 20 69 6e 20 74 68 65 20 65 6e 74 72 79 20 66 6f in the entry fo
14d0: 72 20 5c 66 42 5c 2d 65 72 72 6f 72 73 74 61 63 r \fB\-errorstac
14e0: 6b 5c 66 52 2e 20 20 54 63 6c 27 73 0a 2b 69 6e k\fR. Tcl's.+in
14f0: 69 74 69 61 6c 20 65 72 72 6f 72 20 73 74 61 63 itial error stac
1500: 6b 20 77 69 6c 6c 20 69 6e 63 6c 75 64 65 20 6f k will include o
1510: 6e 6c 79 20 74 68 65 20 63 61 6c 6c 20 74 6f 20 nly the call to
1520: 74 68 65 20 70 72 6f 63 65 64 75 72 65 2c 20 61 the procedure, a
1530: 6e 64 0a 2b 73 74 61 63 6b 20 75 6e 77 69 6e 64 nd.+stack unwind
1540: 69 6e 67 20 77 69 6c 6c 20 61 70 70 65 6e 64 20 ing will append
1550: 69 6e 66 6f 72 6d 61 74 69 6f 6e 20 61 62 6f 75 information abou
1560: 74 20 68 69 67 68 65 72 20 73 74 61 63 6b 20 6c t higher stack l
1570: 65 76 65 6c 73 2c 20 62 75 74 0a 2b 74 68 65 72 evels, but.+ther
1580: 65 20 77 69 6c 6c 20 62 65 20 6e 6f 20 69 6e 66 e will be no inf
1590: 6f 72 6d 61 74 69 6f 6e 20 61 62 6f 75 74 20 74 ormation about t
15a0: 68 65 20 63 6f 6e 74 65 78 74 20 6f 66 20 74 68 he context of th
15b0: 65 20 65 72 72 6f 72 20 77 69 74 68 69 6e 0a 2b e error within.+
15c0: 74 68 65 20 70 72 6f 63 65 64 75 72 65 2e 20 20 the procedure.
15d0: 54 79 70 69 63 61 6c 6c 79 20 74 68 65 20 5c 66 Typically the \f
15e0: 49 6c 69 73 74 5c 66 52 20 76 61 6c 75 65 20 69 Ilist\fR value i
15f0: 73 20 73 75 70 70 6c 69 65 64 20 66 72 6f 6d 0a s supplied from.
1600: 2b 74 68 65 20 76 61 6c 75 65 20 6f 66 20 5c 66 +the value of \f
1610: 42 5c 2d 65 72 72 6f 72 73 74 61 63 6b 5c 66 52 B\-errorstack\fR
1620: 20 69 6e 20 61 20 72 65 74 75 72 6e 20 6f 70 74 in a return opt
1630: 69 6f 6e 73 20 64 69 63 74 69 6f 6e 61 72 79 20 ions dictionary
1640: 63 61 70 74 75 72 65 64 0a 2b 62 79 20 74 68 65 captured.+by the
1650: 20 5c 66 42 63 61 74 63 68 5c 66 52 20 63 6f 6d \fBcatch\fR com
1660: 6d 61 6e 64 20 28 6f 72 20 66 72 6f 6d 20 74 68 mand (or from th
1670: 65 20 63 6f 70 79 20 6f 66 20 74 68 61 74 20 69 e copy of that i
1680: 6e 66 6f 72 6d 61 74 69 6f 6e 20 66 72 6f 6d 20 nformation from
1690: 5b 69 6e 66 6f 20 65 72 72 6f 72 73 74 61 63 6b [info errorstack
16a0: 5d 29 2e 0a 2b 2e 54 50 0a 20 5c 66 42 5c 2d 6c ])..+.TP. \fB\-l
16b0: 65 76 65 6c 20 5c 66 49 6c 65 76 65 6c 5c 66 52 evel \fIlevel\fR
16c0: 0a 20 2e 0a 20 54 68 65 20 5c 66 42 5c 2d 6c 65 . .. The \fB\-le
16d0: 76 65 6c 5c 66 52 20 61 6e 64 20 5c 66 42 5c 2d vel\fR and \fB\-
16e0: 63 6f 64 65 5c 66 52 20 6f 70 74 69 6f 6e 73 20 code\fR options
16f0: 77 6f 72 6b 20 74 6f 67 65 74 68 65 72 20 74 6f work together to
1700: 20 73 65 74 20 74 68 65 20 72 65 74 75 72 6e 0a set the return.
1710: 49 6e 64 65 78 3a 20 67 65 6e 65 72 69 63 2f 74 Index: generic/t
1720: 63 6c 42 61 73 69 63 2e 63 0a 3d 3d 3d 3d 3d 3d clBasic.c.======
1730: 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d ================
1740: 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d ================
1750: 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d ================
1760: 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 0a 52 43 =============.RC
1770: 53 20 66 69 6c 65 3a 20 2f 63 76 73 72 6f 6f 74 S file: /cvsroot
1780: 2f 74 63 6c 2f 74 63 6c 2f 67 65 6e 65 72 69 63 /tcl/tcl/generic
1790: 2f 74 63 6c 42 61 73 69 63 2e 63 2c 76 0a 72 65 /tclBasic.c,v.re
17a0: 74 72 69 65 76 69 6e 67 20 72 65 76 69 73 69 6f trieving revisio
17b0: 6e 20 31 2e 34 34 39 0a 64 69 66 66 20 2d 75 20 n 1.449.diff -u
17c0: 2d 72 31 2e 34 34 39 20 74 63 6c 42 61 73 69 63 -r1.449 tclBasic
17d0: 2e 63 0a 2d 2d 2d 20 67 65 6e 65 72 69 63 2f 74 .c.--- generic/t
17e0: 63 6c 42 61 73 69 63 2e 63 09 31 39 20 4d 61 72 clBasic.c.19 Mar
17f0: 20 32 30 31 30 20 31 31 3a 35 34 3a 30 36 20 2d 2010 11:54:06 -
1800: 30 30 30 30 09 31 2e 34 34 39 0a 2b 2b 2b 20 67 0000.1.449.+++ g
1810: 65 6e 65 72 69 63 2f 74 63 6c 42 61 73 69 63 2e eneric/tclBasic.
1820: 63 09 33 31 20 4d 61 72 20 32 30 31 30 20 31 35 c.31 Mar 2010 15
1830: 3a 34 36 3a 30 34 20 2d 30 30 30 30 0a 40 40 20 :46:04 -0000.@@
1840: 2d 35 32 39 2c 36 20 2b 35 32 39 2c 31 33 20 40 -529,6 +529,13 @
1850: 40 0a 20 20 20 20 20 69 50 74 72 2d 3e 65 72 72 @. iPtr->err
1860: 6f 72 49 6e 66 6f 20 3d 20 4e 55 4c 4c 3b 0a 20 orInfo = NULL;.
1870: 20 20 20 20 54 63 6c 4e 65 77 4c 69 74 65 72 61 TclNewLitera
1880: 6c 53 74 72 69 6e 67 4f 62 6a 28 69 50 74 72 2d lStringObj(iPtr-
1890: 3e 65 69 56 61 72 2c 20 22 3a 3a 65 72 72 6f 72 >eiVar, "::error
18a0: 49 6e 66 6f 22 29 3b 0a 20 20 20 20 20 54 63 6c Info");. Tcl
18b0: 5f 49 6e 63 72 52 65 66 43 6f 75 6e 74 28 69 50 _IncrRefCount(iP
18c0: 74 72 2d 3e 65 69 56 61 72 29 3b 0a 2b 20 20 20 tr->eiVar);.+
18d0: 20 69 50 74 72 2d 3e 65 72 72 6f 72 53 74 61 63 iPtr->errorStac
18e0: 6b 20 3d 20 54 63 6c 5f 4e 65 77 4c 69 73 74 4f k = Tcl_NewListO
18f0: 62 6a 28 30 2c 20 4e 55 4c 4c 29 3b 0a 2b 20 20 bj(0, NULL);.+
1900: 20 20 54 63 6c 5f 49 6e 63 72 52 65 66 43 6f 75 Tcl_IncrRefCou
1910: 6e 74 28 69 50 74 72 2d 3e 65 72 72 6f 72 53 74 nt(iPtr->errorSt
1920: 61 63 6b 29 3b 0a 2b 20 20 20 20 69 50 74 72 2d ack);.+ iPtr-
1930: 3e 72 65 73 65 74 45 72 72 6f 72 53 74 61 63 6b >resetErrorStack
1940: 20 3d 20 31 3b 0a 2b 20 20 20 20 54 63 6c 4e 65 = 1;.+ TclNe
1950: 77 4c 69 74 65 72 61 6c 53 74 72 69 6e 67 4f 62 wLiteralStringOb
1960: 6a 28 69 50 74 72 2d 3e 75 70 4c 69 74 65 72 61 j(iPtr->upLitera
1970: 6c 2c 22 55 50 22 29 3b 0a 2b 20 20 20 20 54 63 l,"UP");.+ Tc
1980: 6c 5f 49 6e 63 72 52 65 66 43 6f 75 6e 74 28 69 l_IncrRefCount(i
1990: 50 74 72 2d 3e 75 70 4c 69 74 65 72 61 6c 29 3b Ptr->upLiteral);
19a0: 0a 2b 20 20 20 20 54 63 6c 4e 65 77 4c 69 74 65 .+ TclNewLite
19b0: 72 61 6c 53 74 72 69 6e 67 4f 62 6a 28 69 50 74 ralStringObj(iPt
19c0: 72 2d 3e 63 61 6c 6c 4c 69 74 65 72 61 6c 2c 22 r->callLiteral,"
19d0: 43 41 4c 4c 22 29 3b 0a 2b 20 20 20 20 54 63 6c CALL");.+ Tcl
19e0: 5f 49 6e 63 72 52 65 66 43 6f 75 6e 74 28 69 50 _IncrRefCount(iP
19f0: 74 72 2d 3e 63 61 6c 6c 4c 69 74 65 72 61 6c 29 tr->callLiteral)
1a00: 3b 0a 20 20 20 20 20 69 50 74 72 2d 3e 65 72 72 ;. iPtr->err
1a10: 6f 72 43 6f 64 65 20 3d 20 4e 55 4c 4c 3b 0a 20 orCode = NULL;.
1a20: 20 20 20 20 54 63 6c 4e 65 77 4c 69 74 65 72 61 TclNewLitera
1a30: 6c 53 74 72 69 6e 67 4f 62 6a 28 69 50 74 72 2d lStringObj(iPtr-
1a40: 3e 65 63 56 61 72 2c 20 22 3a 3a 65 72 72 6f 72 >ecVar, "::error
1a50: 43 6f 64 65 22 29 3b 0a 20 20 20 20 20 54 63 6c Code");. Tcl
1a60: 5f 49 6e 63 72 52 65 66 43 6f 75 6e 74 28 69 50 _IncrRefCount(iP
1a70: 74 72 2d 3e 65 63 56 61 72 29 3b 0a 40 40 20 2d tr->ecVar);.@@ -
1a80: 31 34 36 37 2c 36 20 2b 31 34 37 34 2c 31 30 20 1467,6 +1474,10
1a90: 40 40 0a 20 09 54 63 6c 5f 44 65 63 72 52 65 66 @@. .Tcl_DecrRef
1aa0: 43 6f 75 6e 74 28 69 50 74 72 2d 3e 65 72 72 6f Count(iPtr->erro
1ab0: 72 49 6e 66 6f 29 3b 0a 20 09 69 50 74 72 2d 3e rInfo);. .iPtr->
1ac0: 65 72 72 6f 72 49 6e 66 6f 20 3d 20 4e 55 4c 4c errorInfo = NULL
1ad0: 3b 0a 20 20 20 20 20 7d 0a 2b 20 20 20 20 54 63 ;. }.+ Tc
1ae0: 6c 5f 44 65 63 72 52 65 66 43 6f 75 6e 74 28 69 l_DecrRefCount(i
1af0: 50 74 72 2d 3e 65 72 72 6f 72 53 74 61 63 6b 29 Ptr->errorStack)
1b00: 3b 0a 2b 20 20 20 20 69 50 74 72 2d 3e 65 72 72 ;.+ iPtr->err
1b10: 6f 72 53 74 61 63 6b 20 3d 20 4e 55 4c 4c 3b 0a orStack = NULL;.
1b20: 2b 20 20 20 20 54 63 6c 5f 44 65 63 72 52 65 66 + Tcl_DecrRef
1b30: 43 6f 75 6e 74 28 69 50 74 72 2d 3e 75 70 4c 69 Count(iPtr->upLi
1b40: 74 65 72 61 6c 29 3b 0a 2b 20 20 20 20 54 63 6c teral);.+ Tcl
1b50: 5f 44 65 63 72 52 65 66 43 6f 75 6e 74 28 69 50 _DecrRefCount(iP
1b60: 74 72 2d 3e 63 61 6c 6c 4c 69 74 65 72 61 6c 29 tr->callLiteral)
1b70: 3b 0a 20 20 20 20 20 69 66 20 28 69 50 74 72 2d ;. if (iPtr-
1b80: 3e 72 65 74 75 72 6e 4f 70 74 73 29 20 7b 0a 20 >returnOpts) {.
1b90: 09 54 63 6c 5f 44 65 63 72 52 65 66 43 6f 75 6e .Tcl_DecrRefCoun
1ba0: 74 28 69 50 74 72 2d 3e 72 65 74 75 72 6e 4f 70 t(iPtr->returnOp
1bb0: 74 73 29 3b 0a 20 20 20 20 20 7d 0a 40 40 20 2d ts);. }.@@ -
1bc0: 38 39 34 33 2c 35 20 2b 38 39 35 34 2c 37 20 40 8943,5 +8954,7 @
1bd0: 40 0a 20 20 2a 20 6d 6f 64 65 3a 20 63 0a 20 20 @. * mode: c.
1be0: 2a 20 63 2d 62 61 73 69 63 2d 6f 66 66 73 65 74 * c-basic-offset
1bf0: 3a 20 34 0a 20 20 2a 20 66 69 6c 6c 2d 63 6f 6c : 4. * fill-col
1c00: 75 6d 6e 3a 20 37 38 0a 2b 20 2a 20 74 61 62 2d umn: 78.+ * tab-
1c10: 77 69 64 74 68 3a 20 38 0a 2b 20 2a 20 69 6e 64 width: 8.+ * ind
1c20: 65 6e 74 2d 74 61 62 73 2d 6d 6f 64 65 3a 20 6e ent-tabs-mode: n
1c30: 69 6c 0a 20 20 2a 20 45 6e 64 3a 0a 20 20 2a 2f il. * End:. */
1c40: 0a 49 6e 64 65 78 3a 20 67 65 6e 65 72 69 63 2f .Index: generic/
1c50: 74 63 6c 43 6d 64 49 4c 2e 63 0a 3d 3d 3d 3d 3d tclCmdIL.c.=====
1c60: 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d ================
1c70: 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d ================
1c80: 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d ================
1c90: 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 0a 52 ==============.R
1ca0: 43 53 20 66 69 6c 65 3a 20 2f 63 76 73 72 6f 6f CS file: /cvsroo
1cb0: 74 2f 74 63 6c 2f 74 63 6c 2f 67 65 6e 65 72 69 t/tcl/tcl/generi
1cc0: 63 2f 74 63 6c 43 6d 64 49 4c 2e 63 2c 76 0a 72 c/tclCmdIL.c,v.r
1cd0: 65 74 72 69 65 76 69 6e 67 20 72 65 76 69 73 69 etrieving revisi
1ce0: 6f 6e 20 31 2e 31 38 30 0a 64 69 66 66 20 2d 75 on 1.180.diff -u
1cf0: 20 2d 72 31 2e 31 38 30 20 74 63 6c 43 6d 64 49 -r1.180 tclCmdI
1d00: 4c 2e 63 0a 2d 2d 2d 20 67 65 6e 65 72 69 63 2f L.c.--- generic/
1d10: 74 63 6c 43 6d 64 49 4c 2e 63 09 35 20 4d 61 72 tclCmdIL.c.5 Mar
1d20: 20 32 30 31 30 20 31 34 3a 33 34 3a 30 33 20 2d 2010 14:34:03 -
1d30: 30 30 30 30 09 31 2e 31 38 30 0a 2b 2b 2b 20 67 0000.1.180.+++ g
1d40: 65 6e 65 72 69 63 2f 74 63 6c 43 6d 64 49 4c 2e eneric/tclCmdIL.
1d50: 63 09 33 31 20 4d 61 72 20 32 30 31 30 20 31 35 c.31 Mar 2010 15
1d60: 3a 34 36 3a 30 34 20 2d 30 30 30 30 0a 40 40 20 :46:04 -0000.@@
1d70: 2d 31 31 38 2c 36 20 2b 31 31 38 2c 39 20 40 40 -118,6 +118,9 @@
1d80: 0a 20 09 09 09 20 20 20 20 69 6e 74 20 6f 62 6a . ... int obj
1d90: 63 2c 20 54 63 6c 5f 4f 62 6a 20 2a 63 6f 6e 73 c, Tcl_Obj *cons
1da0: 74 20 6f 62 6a 76 5b 5d 29 3b 0a 20 73 74 61 74 t objv[]);. stat
1db0: 69 63 20 69 6e 74 09 09 49 6e 66 6f 44 65 66 61 ic int..InfoDefa
1dc0: 75 6c 74 43 6d 64 28 43 6c 69 65 6e 74 44 61 74 ultCmd(ClientDat
1dd0: 61 20 64 75 6d 6d 79 2c 20 54 63 6c 5f 49 6e 74 a dummy, Tcl_Int
1de0: 65 72 70 20 2a 69 6e 74 65 72 70 2c 0a 20 09 09 erp *interp,. ..
1df0: 09 20 20 20 20 69 6e 74 20 6f 62 6a 63 2c 20 54 . int objc, T
1e00: 63 6c 5f 4f 62 6a 20 2a 63 6f 6e 73 74 20 6f 62 cl_Obj *const ob
1e10: 6a 76 5b 5d 29 3b 0a 2b 2f 2a 20 54 49 50 20 23 jv[]);.+/* TIP #
1e20: 33 34 38 20 2d 20 4e 65 77 20 27 69 6e 66 6f 27 348 - New 'info'
1e30: 20 73 75 62 63 6f 6d 6d 61 6e 64 20 27 65 72 72 subcommand 'err
1e40: 6f 72 73 74 61 63 6b 27 20 2a 2f 0a 2b 73 74 61 orstack' */.+sta
1e50: 74 69 63 20 69 6e 74 09 09 49 6e 66 6f 45 72 72 tic int..InfoErr
1e60: 6f 72 53 74 61 63 6b 43 6d 64 28 43 6c 69 65 6e orStackCmd(Clien
1e70: 74 44 61 74 61 20 64 75 6d 6d 79 2c 20 54 63 6c tData dummy, Tcl
1e80: 5f 49 6e 74 65 72 70 20 2a 69 6e 74 65 72 70 2c _Interp *interp,
1e90: 0a 2b 09 09 09 20 20 20 20 69 6e 74 20 6f 62 6a .+... int obj
1ea0: 63 2c 20 54 63 6c 5f 4f 62 6a 20 2a 63 6f 6e 73 c, Tcl_Obj *cons
1eb0: 74 20 6f 62 6a 76 5b 5d 29 3b 0a 20 2f 2a 20 54 t objv[]);. /* T
1ec0: 49 50 20 23 32 38 30 20 2d 20 4e 65 77 20 27 69 IP #280 - New 'i
1ed0: 6e 66 6f 27 20 73 75 62 63 6f 6d 6d 61 6e 64 20 nfo' subcommand
1ee0: 27 66 72 61 6d 65 27 20 2a 2f 0a 20 73 74 61 74 'frame' */. stat
1ef0: 69 63 20 69 6e 74 09 09 49 6e 66 6f 46 72 61 6d ic int..InfoFram
1f00: 65 43 6d 64 28 43 6c 69 65 6e 74 44 61 74 61 20 eCmd(ClientData
1f10: 64 75 6d 6d 79 2c 20 54 63 6c 5f 49 6e 74 65 72 dummy, Tcl_Inter
1f20: 70 20 2a 69 6e 74 65 72 70 2c 0a 20 09 09 09 20 p *interp,. ...
1f30: 20 20 20 69 6e 74 20 6f 62 6a 63 2c 20 54 63 6c int objc, Tcl
1f40: 5f 4f 62 6a 20 2a 63 6f 6e 73 74 20 6f 62 6a 76 _Obj *const objv
1f50: 5b 5d 29 3b 0a 40 40 20 2d 31 36 34 2c 36 20 2b []);.@@ -164,6 +
1f60: 31 36 37 2c 37 20 40 40 0a 20 20 20 20 20 7b 22 167,7 @@. {"
1f70: 63 6f 6d 70 6c 65 74 65 22 2c 09 20 20 20 49 6e complete",. In
1f80: 66 6f 43 6f 6d 70 6c 65 74 65 43 6d 64 2c 09 20 foCompleteCmd,.
1f90: 20 20 20 4e 55 4c 4c 2c 20 4e 55 4c 4c 2c 20 4e NULL, NULL, N
1fa0: 55 4c 4c 7d 2c 0a 20 20 20 20 20 7b 22 63 6f 72 ULL},. {"cor
1fb0: 6f 75 74 69 6e 65 22 2c 09 20 20 20 54 63 6c 49 outine",. TclI
1fc0: 6e 66 6f 43 6f 72 6f 75 74 69 6e 65 43 6d 64 2c nfoCoroutineCmd,
1fd0: 20 20 20 20 20 4e 55 4c 4c 2c 20 4e 55 4c 4c 2c NULL, NULL,
1fe0: 20 4e 55 4c 4c 7d 2c 0a 20 20 20 20 20 7b 22 64 NULL},. {"d
1ff0: 65 66 61 75 6c 74 22 2c 09 09 20 20 20 49 6e 66 efault",.. Inf
2000: 6f 44 65 66 61 75 6c 74 43 6d 64 2c 09 20 20 20 oDefaultCmd,.
2010: 20 4e 55 4c 4c 2c 20 4e 55 4c 4c 2c 20 4e 55 4c NULL, NULL, NUL
2020: 4c 7d 2c 0a 2b 20 20 20 20 7b 22 65 72 72 6f 72 L},.+ {"error
2030: 73 74 61 63 6b 22 2c 09 20 20 20 49 6e 66 6f 45 stack",. InfoE
2040: 72 72 6f 72 53 74 61 63 6b 43 6d 64 2c 09 20 20 rrorStackCmd,.
2050: 20 20 4e 55 4c 4c 2c 20 4e 55 4c 4c 2c 20 4e 55 NULL, NULL, NU
2060: 4c 4c 7d 2c 0a 20 20 20 20 20 7b 22 65 78 69 73 LL},. {"exis
2070: 74 73 22 2c 09 09 20 20 20 54 63 6c 49 6e 66 6f ts",.. TclInfo
2080: 45 78 69 73 74 73 43 6d 64 2c 09 20 20 20 20 54 ExistsCmd,. T
2090: 63 6c 43 6f 6d 70 69 6c 65 49 6e 66 6f 45 78 69 clCompileInfoExi
20a0: 73 74 73 43 6d 64 2c 20 4e 55 4c 4c 2c 20 4e 55 stsCmd, NULL, NU
20b0: 4c 4c 7d 2c 0a 20 20 20 20 20 7b 22 66 72 61 6d LL},. {"fram
20c0: 65 22 2c 09 09 20 20 20 49 6e 66 6f 46 72 61 6d e",.. InfoFram
20d0: 65 43 6d 64 2c 09 20 20 20 20 4e 55 4c 4c 2c 20 eCmd,. NULL,
20e0: 4e 55 4c 4c 2c 20 4e 55 4c 4c 7d 2c 0a 20 20 20 NULL, NULL},.
20f0: 20 20 7b 22 66 75 6e 63 74 69 6f 6e 73 22 2c 09 {"functions",.
2100: 20 20 20 49 6e 66 6f 46 75 6e 63 74 69 6f 6e 73 InfoFunctions
2110: 43 6d 64 2c 09 20 20 20 20 4e 55 4c 4c 2c 20 4e Cmd,. NULL, N
2120: 55 4c 4c 2c 20 4e 55 4c 4c 7d 2c 0a 40 40 20 2d ULL, NULL},.@@ -
2130: 31 30 32 32 2c 36 20 2b 31 30 32 36 2c 35 35 20 1022,6 +1026,55
2140: 40 40 0a 20 2f 2a 0a 20 20 2a 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 2d 2d 2d 2d 2d 2d 2d 2d 2d ----------------
2180: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d ----------------
2190: 0a 20 20 2a 0a 2b 20 2a 20 49 6e 66 6f 45 72 72 . *.+ * InfoErr
21a0: 6f 72 53 74 61 63 6b 43 6d 64 20 2d 2d 0a 2b 20 orStackCmd --.+
21b0: 2a 0a 2b 20 2a 09 43 61 6c 6c 65 64 20 74 6f 20 *.+ *.Called to
21c0: 69 6d 70 6c 65 6d 65 6e 74 20 74 68 65 20 22 69 implement the "i
21d0: 6e 66 6f 20 65 72 72 6f 72 73 74 61 63 6b 22 20 nfo errorstack"
21e0: 63 6f 6d 6d 61 6e 64 20 74 68 61 74 20 72 65 74 command that ret
21f0: 75 72 6e 73 20 69 6e 66 6f 72 6d 61 74 69 6f 6e urns information
2200: 0a 2b 20 2a 09 61 62 6f 75 74 20 74 68 65 20 6c .+ *.about the l
2210: 61 73 74 20 65 72 72 6f 72 27 73 20 63 61 6c 6c ast error's call
2220: 20 73 74 61 63 6b 2e 20 48 61 6e 64 6c 65 73 20 stack. Handles
2230: 74 68 65 20 66 6f 6c 6c 6f 77 69 6e 67 20 73 79 the following sy
2240: 6e 74 61 78 3a 0a 2b 20 2a 0a 2b 20 2a 09 20 20 ntax:.+ *.+ *.
2250: 20 20 69 6e 66 6f 20 65 72 72 6f 72 73 74 61 63 info errorstac
2260: 6b 20 3f 69 6e 74 65 72 70 3f 0a 2b 20 2a 0a 2b k ?interp?.+ *.+
2270: 20 2a 20 52 65 73 75 6c 74 73 3a 0a 2b 20 2a 09 * Results:.+ *.
2280: 52 65 74 75 72 6e 73 20 54 43 4c 5f 4f 4b 20 69 Returns TCL_OK i
2290: 66 20 73 75 63 63 65 73 73 66 75 6c 20 61 6e 64 f successful and
22a0: 20 54 43 4c 5f 45 52 52 4f 52 20 69 66 20 74 68 TCL_ERROR if th
22b0: 65 72 65 20 69 73 20 61 6e 20 65 72 72 6f 72 2e ere is an error.
22c0: 0a 2b 20 2a 0a 2b 20 2a 20 53 69 64 65 20 65 66 .+ *.+ * Side ef
22d0: 66 65 63 74 73 3a 0a 2b 20 2a 09 52 65 74 75 72 fects:.+ *.Retur
22e0: 6e 73 20 61 20 72 65 73 75 6c 74 20 69 6e 20 74 ns a result in t
22f0: 68 65 20 69 6e 74 65 72 70 72 65 74 65 72 27 73 he interpreter's
2300: 20 72 65 73 75 6c 74 20 6f 62 6a 65 63 74 2e 20 result object.
2310: 49 66 20 74 68 65 72 65 20 69 73 20 61 6e 0a 2b If there is an.+
2320: 20 2a 09 65 72 72 6f 72 2c 20 74 68 65 20 72 65 *.error, the re
2330: 73 75 6c 74 20 69 73 20 61 6e 20 65 72 72 6f 72 sult is an error
2340: 20 6d 65 73 73 61 67 65 2e 0a 2b 20 2a 0a 2b 20 message..+ *.+
2350: 2a 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 2d 2d ----------------
2380: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d ----------------
2390: 2d 2d 2d 2d 2d 2d 2d 0a 2b 20 2a 2f 0a 2b 0a 2b -------.+ */.+.+
23a0: 73 74 61 74 69 63 20 69 6e 74 0a 2b 49 6e 66 6f static int.+Info
23b0: 45 72 72 6f 72 53 74 61 63 6b 43 6d 64 28 0a 2b ErrorStackCmd(.+
23c0: 20 20 20 20 43 6c 69 65 6e 74 44 61 74 61 20 64 ClientData d
23d0: 75 6d 6d 79 2c 09 09 2f 2a 20 4e 6f 74 20 75 73 ummy,../* Not us
23e0: 65 64 2e 20 2a 2f 0a 2b 20 20 20 20 54 63 6c 5f ed. */.+ Tcl_
23f0: 49 6e 74 65 72 70 20 2a 69 6e 74 65 72 70 2c 09 Interp *interp,.
2400: 09 2f 2a 20 43 75 72 72 65 6e 74 20 69 6e 74 65 ./* Current inte
2410: 72 70 72 65 74 65 72 2e 20 2a 2f 0a 2b 20 20 20 rpreter. */.+
2420: 20 69 6e 74 20 6f 62 6a 63 2c 09 09 09 2f 2a 20 int objc,.../*
2430: 4e 75 6d 62 65 72 20 6f 66 20 61 72 67 75 6d 65 Number of argume
2440: 6e 74 73 2e 20 2a 2f 0a 2b 20 20 20 20 54 63 6c nts. */.+ Tcl
2450: 5f 4f 62 6a 20 2a 63 6f 6e 73 74 20 6f 62 6a 76 _Obj *const objv
2460: 5b 5d 29 09 2f 2a 20 41 72 67 75 6d 65 6e 74 20 [])./* Argument
2470: 6f 62 6a 65 63 74 73 2e 20 2a 2f 0a 2b 7b 0a 2b objects. */.+{.+
2480: 20 20 20 20 54 63 6c 5f 49 6e 74 65 72 70 20 2a Tcl_Interp *
2490: 74 61 72 67 65 74 3b 0a 2b 20 20 20 20 49 6e 74 target;.+ Int
24a0: 65 72 70 20 2a 69 50 74 72 3b 0a 2b 0a 2b 20 20 erp *iPtr;.+.+
24b0: 20 20 69 66 20 28 28 6f 62 6a 63 20 21 3d 20 31 if ((objc != 1
24c0: 29 20 26 26 20 28 6f 62 6a 63 20 21 3d 20 32 29 ) && (objc != 2)
24d0: 29 20 7b 0a 2b 09 54 63 6c 5f 57 72 6f 6e 67 4e ) {.+.Tcl_WrongN
24e0: 75 6d 41 72 67 73 28 69 6e 74 65 72 70 2c 20 31 umArgs(interp, 1
24f0: 2c 20 6f 62 6a 76 2c 20 22 3f 69 6e 74 65 72 70 , objv, "?interp
2500: 3f 22 29 3b 0a 2b 09 72 65 74 75 72 6e 20 54 43 ?");.+.return TC
2510: 4c 5f 45 52 52 4f 52 3b 0a 2b 20 20 20 20 7d 0a L_ERROR;.+ }.
2520: 2b 20 20 20 20 0a 2b 20 20 20 20 74 61 72 67 65 + .+ targe
2530: 74 20 3d 20 69 6e 74 65 72 70 3b 0a 2b 20 20 20 t = interp;.+
2540: 20 69 66 20 28 6f 62 6a 63 20 3d 3d 20 32 29 20 if (objc == 2)
2550: 7b 0a 2b 20 20 20 20 20 20 20 20 74 61 72 67 65 {.+ targe
2560: 74 20 3d 20 54 63 6c 5f 47 65 74 53 6c 61 76 65 t = Tcl_GetSlave
2570: 28 69 6e 74 65 72 70 2c 20 54 63 6c 5f 47 65 74 (interp, Tcl_Get
2580: 53 74 72 69 6e 67 28 6f 62 6a 76 5b 31 5d 29 29 String(objv[1]))
2590: 3b 0a 2b 20 20 20 20 20 20 20 20 69 66 20 28 74 ;.+ if (t
25a0: 61 72 67 65 74 20 3d 3d 20 4e 55 4c 4c 29 20 7b arget == NULL) {
25b0: 0a 2b 20 20 20 20 20 20 20 20 20 20 20 20 72 65 .+ re
25c0: 74 75 72 6e 20 54 43 4c 5f 45 52 52 4f 52 3b 0a turn TCL_ERROR;.
25d0: 2b 20 20 20 20 20 20 20 20 7d 0a 2b 20 20 20 20 + }.+
25e0: 7d 0a 2b 0a 2b 20 20 20 20 69 50 74 72 20 3d 20 }.+.+ iPtr =
25f0: 28 49 6e 74 65 72 70 20 2a 29 20 74 61 72 67 65 (Interp *) targe
2600: 74 3b 0a 2b 20 20 20 20 54 63 6c 5f 53 65 74 4f t;.+ Tcl_SetO
2610: 62 6a 52 65 73 75 6c 74 28 69 6e 74 65 72 70 2c bjResult(interp,
2620: 20 69 50 74 72 2d 3e 65 72 72 6f 72 53 74 61 63 iPtr->errorStac
2630: 6b 29 3b 0a 2b 20 20 20 20 0a 2b 20 20 20 20 72 k);.+ .+ r
2640: 65 74 75 72 6e 20 54 43 4c 5f 4f 4b 3b 0a 2b 7d eturn TCL_OK;.+}
2650: 0a 2b 0c 0a 2b 2f 2a 0a 2b 20 2a 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 2d 2d 2d 2d 2d 2d 2d 2d ----------------
2690: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d ----------------
26a0: 2d 0a 2b 20 2a 0a 20 20 2a 20 54 63 6c 49 6e 66 -.+ *. * TclInf
26b0: 6f 45 78 69 73 74 73 43 6d 64 20 2d 2d 0a 20 20 oExistsCmd --.
26c0: 2a 0a 20 20 2a 09 43 61 6c 6c 65 64 20 74 6f 20 *. *.Called to
26d0: 69 6d 70 6c 65 6d 65 6e 74 20 74 68 65 20 22 69 implement the "i
26e0: 6e 66 6f 20 65 78 69 73 74 73 22 20 63 6f 6d 6d nfo exists" comm
26f0: 61 6e 64 20 74 68 61 74 20 64 65 74 65 72 6d 69 and that determi
2700: 6e 65 73 20 77 68 65 74 68 65 72 0a 40 40 20 2d nes whether.@@ -
2710: 34 34 30 31 2c 35 20 2b 34 34 35 34 2c 37 20 40 4401,5 +4454,7 @
2720: 40 0a 20 20 2a 20 6d 6f 64 65 3a 20 63 0a 20 20 @. * mode: c.
2730: 2a 20 63 2d 62 61 73 69 63 2d 6f 66 66 73 65 74 * c-basic-offset
2740: 3a 20 34 0a 20 20 2a 20 66 69 6c 6c 2d 63 6f 6c : 4. * fill-col
2750: 75 6d 6e 3a 20 37 38 0a 2b 20 2a 20 74 61 62 2d umn: 78.+ * tab-
2760: 77 69 64 74 68 3a 20 38 0a 2b 20 2a 20 69 6e 64 width: 8.+ * ind
2770: 65 6e 74 2d 74 61 62 73 2d 6d 6f 64 65 3a 20 6e ent-tabs-mode: n
2780: 69 6c 0a 20 20 2a 20 45 6e 64 3a 0a 20 20 2a 2f il. * End:. */
2790: 0a 49 6e 64 65 78 3a 20 67 65 6e 65 72 69 63 2f .Index: generic/
27a0: 74 63 6c 49 6e 74 2e 68 0a 3d 3d 3d 3d 3d 3d 3d tclInt.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 3d 3d 3d 0a 52 43 53 ============.RCS
27f0: 20 66 69 6c 65 3a 20 2f 63 76 73 72 6f 6f 74 2f file: /cvsroot/
2800: 74 63 6c 2f 74 63 6c 2f 67 65 6e 65 72 69 63 2f tcl/tcl/generic/
2810: 74 63 6c 49 6e 74 2e 68 2c 76 0a 72 65 74 72 69 tclInt.h,v.retri
2820: 65 76 69 6e 67 20 72 65 76 69 73 69 6f 6e 20 31 eving revision 1
2830: 2e 34 36 36 0a 64 69 66 66 20 2d 75 20 2d 72 31 .466.diff -u -r1
2840: 2e 34 36 36 20 74 63 6c 49 6e 74 2e 68 0a 2d 2d .466 tclInt.h.--
2850: 2d 20 67 65 6e 65 72 69 63 2f 74 63 6c 49 6e 74 - generic/tclInt
2860: 2e 68 09 32 37 20 4d 61 72 20 32 30 31 30 20 32 .h.27 Mar 2010 2
2870: 32 3a 34 30 3a 31 34 20 2d 30 30 30 30 09 31 2e 2:40:14 -0000.1.
2880: 34 36 36 0a 2b 2b 2b 20 67 65 6e 65 72 69 63 2f 466.+++ generic/
2890: 74 63 6c 49 6e 74 2e 68 09 33 31 20 4d 61 72 20 tclInt.h.31 Mar
28a0: 32 30 31 30 20 31 35 3a 34 36 3a 30 34 20 2d 30 2010 15:46:04 -0
28b0: 30 30 30 0a 40 40 20 2d 31 39 38 34 2c 36 20 2b 000.@@ -1984,6 +
28c0: 31 39 38 34 2c 31 30 20 40 40 0a 20 20 20 20 20 1984,10 @@.
28d0: 54 63 6c 5f 4f 62 6a 20 2a 65 69 56 61 72 3b 09 Tcl_Obj *eiVar;.
28e0: 09 2f 2a 20 63 61 63 68 65 64 20 72 65 66 20 74 ./* cached ref t
28f0: 6f 20 3a 3a 65 72 72 6f 72 49 6e 66 6f 20 76 61 o ::errorInfo va
2900: 72 69 61 62 6c 65 2e 20 2a 2f 0a 20 20 20 20 20 riable. */.
2910: 54 63 6c 5f 4f 62 6a 20 2a 65 72 72 6f 72 43 6f Tcl_Obj *errorCo
2920: 64 65 3b 09 09 2f 2a 20 65 72 72 6f 72 43 6f 64 de;../* errorCod
2930: 65 20 76 61 6c 75 65 20 28 6e 6f 77 20 61 73 20 e value (now as
2940: 61 20 54 63 6c 5f 4f 62 6a 29 2e 20 2a 2f 0a 20 a Tcl_Obj). */.
2950: 20 20 20 20 54 63 6c 5f 4f 62 6a 20 2a 65 63 56 Tcl_Obj *ecV
2960: 61 72 3b 09 09 2f 2a 20 63 61 63 68 65 64 20 72 ar;../* cached r
2970: 65 66 20 74 6f 20 3a 3a 65 72 72 6f 72 49 6e 66 ef to ::errorInf
2980: 6f 20 76 61 72 69 61 62 6c 65 2e 20 2a 2f 0a 2b o variable. */.+
2990: 20 20 20 20 54 63 6c 5f 4f 62 6a 20 2a 65 72 72 Tcl_Obj *err
29a0: 6f 72 53 74 61 63 6b 3b 09 2f 2a 20 5b 69 6e 66 orStack;./* [inf
29b0: 6f 20 65 72 72 6f 72 73 74 61 63 6b 5d 20 76 61 o errorstack] va
29c0: 6c 75 65 20 28 61 73 20 61 20 54 63 6c 5f 4f 62 lue (as a Tcl_Ob
29d0: 6a 29 2e 20 2a 2f 0a 2b 20 20 20 20 54 63 6c 5f j). */.+ Tcl_
29e0: 4f 62 6a 20 2a 75 70 4c 69 74 65 72 61 6c 3b 09 Obj *upLiteral;.
29f0: 09 2f 2a 20 22 55 50 22 20 6c 69 74 65 72 61 6c ./* "UP" literal
2a00: 20 66 6f 72 20 5b 69 6e 66 6f 20 65 72 72 6f 72 for [info error
2a10: 73 74 61 63 6b 5d 20 2a 2f 0a 2b 20 20 20 20 54 stack] */.+ T
2a20: 63 6c 5f 4f 62 6a 20 2a 63 61 6c 6c 4c 69 74 65 cl_Obj *callLite
2a30: 72 61 6c 3b 09 2f 2a 20 22 43 41 4c 4c 22 20 6c ral;./* "CALL" l
2a40: 69 74 65 72 61 6c 20 66 6f 72 20 5b 69 6e 66 6f iteral for [info
2a50: 20 65 72 72 6f 72 73 74 61 63 6b 5d 20 2a 2f 0a errorstack] */.
2a60: 2b 20 20 20 20 69 6e 74 20 72 65 73 65 74 45 72 + int resetEr
2a70: 72 6f 72 53 74 61 63 6b 3b 20 20 20 20 20 20 20 rorStack;
2a80: 20 2f 2a 20 63 6f 6e 74 72 6f 6c 73 20 63 6c 65 /* controls cle
2a90: 61 6e 69 6e 67 20 75 70 20 6f 66 20 3a 3a 65 72 aning up of ::er
2aa0: 72 6f 72 53 74 61 63 6b 20 2a 2f 0a 20 20 20 20 rorStack */.
2ab0: 20 69 6e 74 20 72 65 74 75 72 6e 4c 65 76 65 6c int returnLevel
2ac0: 3b 09 09 2f 2a 20 5b 72 65 74 75 72 6e 20 2d 6c ;../* [return -l
2ad0: 65 76 65 6c 5d 20 70 61 72 61 6d 65 74 65 72 2e evel] parameter.
2ae0: 20 2a 2f 0a 20 0a 20 20 20 20 20 2f 2a 0a 49 6e */. . /*.In
2af0: 64 65 78 3a 20 67 65 6e 65 72 69 63 2f 74 63 6c dex: generic/tcl
2b00: 4e 61 6d 65 73 70 2e 63 0a 3d 3d 3d 3d 3d 3d 3d Namesp.c.=======
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 3d 3d 3d 3d ================
2b30: 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d ================
2b40: 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 0a 52 43 53 ============.RCS
2b50: 20 66 69 6c 65 3a 20 2f 63 76 73 72 6f 6f 74 2f file: /cvsroot/
2b60: 74 63 6c 2f 74 63 6c 2f 67 65 6e 65 72 69 63 2f tcl/tcl/generic/
2b70: 74 63 6c 4e 61 6d 65 73 70 2e 63 2c 76 0a 72 65 tclNamesp.c,v.re
2b80: 74 72 69 65 76 69 6e 67 20 72 65 76 69 73 69 6f trieving revisio
2b90: 6e 20 31 2e 32 30 34 0a 64 69 66 66 20 2d 75 20 n 1.204.diff -u
2ba0: 2d 72 31 2e 32 30 34 20 74 63 6c 4e 61 6d 65 73 -r1.204 tclNames
2bb0: 70 2e 63 0a 2d 2d 2d 20 67 65 6e 65 72 69 63 2f p.c.--- generic/
2bc0: 74 63 6c 4e 61 6d 65 73 70 2e 63 09 35 20 4d 61 tclNamesp.c.5 Ma
2bd0: 72 20 32 30 31 30 20 31 34 3a 33 34 3a 30 34 20 r 2010 14:34:04
2be0: 2d 30 30 30 30 09 31 2e 32 30 34 0a 2b 2b 2b 20 -0000.1.204.+++
2bf0: 67 65 6e 65 72 69 63 2f 74 63 6c 4e 61 6d 65 73 generic/tclNames
2c00: 70 2e 63 09 33 31 20 4d 61 72 20 32 30 31 30 20 p.c.31 Mar 2010
2c10: 31 35 3a 34 36 3a 30 34 20 2d 30 30 30 30 0a 40 15:46:04 -0000.@
2c20: 40 20 2d 34 39 33 32 2c 36 20 2b 34 39 33 32 2c @ -4932,6 +4932,
2c30: 34 35 20 40 40 0a 20 09 09 20 20 20 20 54 43 4c 45 @@. .. TCL
2c40: 5f 47 4c 4f 42 41 4c 5f 4f 4e 4c 59 29 3b 0a 20 _GLOBAL_ONLY);.
2c50: 09 7d 0a 20 20 20 20 20 7d 0a 2b 0a 2b 20 20 20 .}. }.+.+
2c60: 20 2f 2a 0a 2b 20 20 20 20 20 2a 20 54 49 50 20 /*.+ * TIP
2c70: 23 33 34 38 0a 2b 20 20 20 20 20 2a 2f 0a 2b 0a #348.+ */.+.
2c80: 2b 20 20 20 20 69 66 20 28 54 63 6c 5f 49 73 53 + if (Tcl_IsS
2c90: 68 61 72 65 64 28 69 50 74 72 2d 3e 65 72 72 6f hared(iPtr->erro
2ca0: 72 53 74 61 63 6b 29 29 20 7b 0a 2b 20 20 20 20 rStack)) {.+
2cb0: 20 20 20 20 54 63 6c 5f 4f 62 6a 20 2a 6e 65 77 Tcl_Obj *new
2cc0: 4f 62 6a 3b 0a 2b 20 20 20 20 20 20 20 20 20 20 Obj;.+
2cd0: 20 20 0a 2b 20 20 20 20 20 20 20 20 6e 65 77 4f .+ newO
2ce0: 62 6a 20 3d 20 54 63 6c 5f 44 75 70 6c 69 63 61 bj = Tcl_Duplica
2cf0: 74 65 4f 62 6a 28 69 50 74 72 2d 3e 65 72 72 6f teObj(iPtr->erro
2d00: 72 53 74 61 63 6b 29 3b 0a 2b 20 20 20 20 20 20 rStack);.+
2d10: 20 20 54 63 6c 5f 44 65 63 72 52 65 66 43 6f 75 Tcl_DecrRefCou
2d20: 6e 74 28 69 50 74 72 2d 3e 65 72 72 6f 72 53 74 nt(iPtr->errorSt
2d30: 61 63 6b 29 3b 0a 2b 20 20 20 20 20 20 20 20 54 ack);.+ T
2d40: 63 6c 5f 49 6e 63 72 52 65 66 43 6f 75 6e 74 28 cl_IncrRefCount(
2d50: 6e 65 77 4f 62 6a 29 3b 0a 2b 20 20 20 20 20 20 newObj);.+
2d60: 20 20 69 50 74 72 2d 3e 65 72 72 6f 72 53 74 61 iPtr->errorSta
2d70: 63 6b 20 3d 20 6e 65 77 4f 62 6a 3b 0a 2b 20 20 ck = newObj;.+
2d80: 20 20 7d 0a 2b 20 20 20 20 69 66 20 28 69 50 74 }.+ if (iPt
2d90: 72 2d 3e 72 65 73 65 74 45 72 72 6f 72 53 74 61 r->resetErrorSta
2da0: 63 6b 29 20 7b 0a 2b 09 69 6e 74 20 6c 65 6e 3b ck) {.+.int len;
2db0: 0a 2b 0a 2b 20 20 20 20 20 20 20 20 69 50 74 72 .+.+ iPtr
2dc0: 2d 3e 72 65 73 65 74 45 72 72 6f 72 53 74 61 63 ->resetErrorStac
2dd0: 6b 20 3d 20 30 3b 0a 2b 09 54 63 6c 5f 4c 69 73 k = 0;.+.Tcl_Lis
2de0: 74 4f 62 6a 4c 65 6e 67 74 68 28 69 6e 74 65 72 tObjLength(inter
2df0: 70 2c 20 69 50 74 72 2d 3e 65 72 72 6f 72 53 74 p, iPtr->errorSt
2e00: 61 63 6b 2c 20 26 6c 65 6e 29 3b 0a 2b 20 20 20 ack, &len);.+
2e10: 20 20 20 20 20 2f 2a 20 72 65 73 65 74 20 77 68 /* reset wh
2e20: 69 6c 65 20 6b 65 65 70 69 6e 67 20 74 68 65 20 ile keeping the
2e30: 6c 69 73 74 20 69 6e 74 72 65 70 20 61 73 20 6d list intrep as m
2e40: 75 63 68 20 61 73 20 70 6f 73 73 69 62 6c 65 20 uch as possible
2e50: 2a 2f 0a 2b 20 20 20 20 20 20 20 20 54 63 6c 5f */.+ Tcl_
2e60: 4c 69 73 74 4f 62 6a 52 65 70 6c 61 63 65 28 69 ListObjReplace(i
2e70: 6e 74 65 72 70 2c 20 69 50 74 72 2d 3e 65 72 72 nterp, iPtr->err
2e80: 6f 72 53 74 61 63 6b 2c 20 30 2c 20 6c 65 6e 2c orStack, 0, len,
2e90: 20 30 2c 20 4e 55 4c 4c 29 3b 0a 2b 20 20 20 20 0, NULL);.+
2ea0: 7d 20 0a 2b 0a 2b 20 20 20 20 69 66 20 28 69 50 } .+.+ if (iP
2eb0: 74 72 2d 3e 76 61 72 46 72 61 6d 65 50 74 72 20 tr->varFramePtr
2ec0: 21 3d 20 69 50 74 72 2d 3e 66 72 61 6d 65 50 74 != iPtr->framePt
2ed0: 72 29 20 7b 0a 2b 20 20 20 20 20 20 20 20 2f 2a r) {.+ /*
2ee0: 20 75 70 6c 65 76 65 6c 20 63 61 73 65 2c 20 5b uplevel case, [
2ef0: 6c 61 70 70 65 6e 64 20 65 72 72 6f 72 73 74 61 lappend errorsta
2f00: 63 6b 20 55 50 20 24 72 65 6c 61 74 69 76 65 6c ck UP $relativel
2f10: 65 76 65 6c 5d 20 2a 2f 0a 2b 20 20 20 20 20 20 evel] */.+
2f20: 20 20 73 74 72 75 63 74 20 43 61 6c 6c 46 72 61 struct CallFra
2f30: 6d 65 20 2a 66 72 61 6d 65 3b 0a 2b 20 20 20 20 me *frame;.+
2f40: 20 20 20 20 69 6e 74 20 6e 3b 0a 2b 0a 2b 20 20 int n;.+.+
2f50: 20 20 20 20 20 20 66 6f 72 20 28 6e 3d 30 2c 20 for (n=0,
2f60: 66 72 61 6d 65 3d 69 50 74 72 2d 3e 66 72 61 6d frame=iPtr->fram
2f70: 65 50 74 72 3b 0a 2b 09 09 28 66 72 61 6d 65 20 ePtr;.+..(frame
2f80: 26 26 20 28 66 72 61 6d 65 20 21 3d 20 69 50 74 && (frame != iPt
2f90: 72 2d 3e 76 61 72 46 72 61 6d 65 50 74 72 29 29 r->varFramePtr))
2fa0: 3b 0a 2b 09 09 6e 2b 2b 2c 20 66 72 61 6d 65 3d ;.+..n++, frame=
2fb0: 66 72 61 6d 65 2d 3e 63 61 6c 6c 65 72 56 61 72 frame->callerVar
2fc0: 50 74 72 29 3b 0a 2b 20 20 20 20 20 20 20 20 54 Ptr);.+ T
2fd0: 63 6c 5f 4c 69 73 74 4f 62 6a 41 70 70 65 6e 64 cl_ListObjAppend
2fe0: 45 6c 65 6d 65 6e 74 28 4e 55 4c 4c 2c 20 69 50 Element(NULL, iP
2ff0: 74 72 2d 3e 65 72 72 6f 72 53 74 61 63 6b 2c 20 tr->errorStack,
3000: 69 50 74 72 2d 3e 75 70 4c 69 74 65 72 61 6c 29 iPtr->upLiteral)
3010: 3b 0a 2b 20 20 20 20 20 20 20 20 54 63 6c 5f 4c ;.+ Tcl_L
3020: 69 73 74 4f 62 6a 41 70 70 65 6e 64 45 6c 65 6d istObjAppendElem
3030: 65 6e 74 28 4e 55 4c 4c 2c 20 69 50 74 72 2d 3e ent(NULL, iPtr->
3040: 65 72 72 6f 72 53 74 61 63 6b 2c 20 54 63 6c 5f errorStack, Tcl_
3050: 4e 65 77 49 6e 74 4f 62 6a 28 6e 29 29 3b 0a 2b NewIntObj(n));.+
3060: 20 20 20 20 7d 20 65 6c 73 65 20 69 66 20 28 69 } else if (i
3070: 50 74 72 2d 3e 66 72 61 6d 65 50 74 72 20 21 3d Ptr->framePtr !=
3080: 20 69 50 74 72 2d 3e 72 6f 6f 74 46 72 61 6d 65 iPtr->rootFrame
3090: 50 74 72 29 20 7b 0a 2b 20 20 20 20 20 20 20 20 Ptr) {.+
30a0: 2f 2a 20 6e 6f 72 6d 61 6c 20 63 61 73 65 2c 20 /* normal case,
30b0: 5b 6c 61 70 70 65 6e 64 20 65 72 72 6f 72 73 74 [lappend errorst
30c0: 61 63 6b 20 43 41 4c 4c 20 5b 69 6e 66 6f 20 6c ack CALL [info l
30d0: 65 76 65 6c 20 30 5d 5d 20 2a 2f 0a 2b 20 20 20 evel 0]] */.+
30e0: 20 20 20 20 20 54 63 6c 5f 4c 69 73 74 4f 62 6a Tcl_ListObj
30f0: 41 70 70 65 6e 64 45 6c 65 6d 65 6e 74 28 4e 55 AppendElement(NU
3100: 4c 4c 2c 20 69 50 74 72 2d 3e 65 72 72 6f 72 53 LL, iPtr->errorS
3110: 74 61 63 6b 2c 20 69 50 74 72 2d 3e 63 61 6c 6c tack, iPtr->call
3120: 4c 69 74 65 72 61 6c 29 3b 0a 2b 20 20 20 20 20 Literal);.+
3130: 20 20 20 54 63 6c 5f 4c 69 73 74 4f 62 6a 41 70 Tcl_ListObjAp
3140: 70 65 6e 64 45 6c 65 6d 65 6e 74 28 4e 55 4c 4c pendElement(NULL
3150: 2c 20 69 50 74 72 2d 3e 65 72 72 6f 72 53 74 61 , iPtr->errorSta
3160: 63 6b 2c 0a 2b 20 20 20 20 20 20 20 20 20 20 20 ck,.+
3170: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
3180: 20 20 20 20 20 20 54 63 6c 5f 4e 65 77 4c 69 73 Tcl_NewLis
3190: 74 4f 62 6a 28 69 50 74 72 2d 3e 76 61 72 46 72 tObj(iPtr->varFr
31a0: 61 6d 65 50 74 72 2d 3e 6f 62 6a 63 2c 0a 2b 20 amePtr->objc,.+
31b0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
31c0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
31d0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 69 i
31e0: 50 74 72 2d 3e 76 61 72 46 72 61 6d 65 50 74 72 Ptr->varFramePtr
31f0: 2d 3e 6f 62 6a 76 29 29 3b 0a 2b 20 20 20 20 7d ->objv));.+ }
3200: 0a 20 7d 0a 20 0c 0a 20 2f 2a 0a 40 40 20 2d 34 . }. .. /*.@@ -4
3210: 39 33 39 2c 35 20 2b 34 39 37 38 2c 37 20 40 40 939,5 +4978,7 @@
3220: 0a 20 20 2a 20 6d 6f 64 65 3a 20 63 0a 20 20 2a . * mode: c. *
3230: 20 63 2d 62 61 73 69 63 2d 6f 66 66 73 65 74 3a c-basic-offset:
3240: 20 34 0a 20 20 2a 20 66 69 6c 6c 2d 63 6f 6c 75 4. * fill-colu
3250: 6d 6e 3a 20 37 38 0a 2b 20 2a 20 74 61 62 2d 77 mn: 78.+ * tab-w
3260: 69 64 74 68 3a 20 38 0a 2b 20 2a 20 69 6e 64 65 idth: 8.+ * inde
3270: 6e 74 2d 74 61 62 73 2d 6d 6f 64 65 3a 20 6e 69 nt-tabs-mode: ni
3280: 6c 0a 20 20 2a 20 45 6e 64 3a 0a 20 20 2a 2f 0a l. * End:. */.
3290: 49 6e 64 65 78 3a 20 67 65 6e 65 72 69 63 2f 74 Index: generic/t
32a0: 63 6c 52 65 73 75 6c 74 2e 63 0a 3d 3d 3d 3d 3d clResult.c.=====
32b0: 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d ================
32c0: 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d ================
32d0: 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d ================
32e0: 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 0a 52 ==============.R
32f0: 43 53 20 66 69 6c 65 3a 20 2f 63 76 73 72 6f 6f CS file: /cvsroo
3300: 74 2f 74 63 6c 2f 74 63 6c 2f 67 65 6e 65 72 69 t/tcl/tcl/generi
3310: 63 2f 74 63 6c 52 65 73 75 6c 74 2e 63 2c 76 0a c/tclResult.c,v.
3320: 72 65 74 72 69 65 76 69 6e 67 20 72 65 76 69 73 retrieving revis
3330: 69 6f 6e 20 31 2e 36 30 0a 64 69 66 66 20 2d 75 ion 1.60.diff -u
3340: 20 2d 72 31 2e 36 30 20 74 63 6c 52 65 73 75 6c -r1.60 tclResul
3350: 74 2e 63 0a 2d 2d 2d 20 67 65 6e 65 72 69 63 2f t.c.--- generic/
3360: 74 63 6c 52 65 73 75 6c 74 2e 63 09 33 30 20 4d tclResult.c.30 M
3370: 61 72 20 32 30 31 30 20 31 33 3a 31 37 3a 31 38 ar 2010 13:17:18
3380: 20 2d 30 30 30 30 09 31 2e 36 30 0a 2b 2b 2b 20 -0000.1.60.+++
3390: 67 65 6e 65 72 69 63 2f 74 63 6c 52 65 73 75 6c generic/tclResul
33a0: 74 2e 63 09 33 31 20 4d 61 72 20 32 30 31 30 20 t.c.31 Mar 2010
33b0: 31 35 3a 34 36 3a 30 34 20 2d 30 30 30 30 0a 40 15:46:04 -0000.@
33c0: 40 20 2d 31 39 2c 37 20 2b 31 39 2c 37 20 40 40 @ -19,7 +19,7 @@
33d0: 0a 20 0a 20 65 6e 75 6d 20 72 65 74 75 72 6e 4b . . enum returnK
33e0: 65 79 73 20 7b 0a 20 20 20 20 20 4b 45 59 5f 43 eys {. KEY_C
33f0: 4f 44 45 2c 09 4b 45 59 5f 45 52 52 4f 52 43 4f ODE,.KEY_ERRORCO
3400: 44 45 2c 09 4b 45 59 5f 45 52 52 4f 52 49 4e 46 DE,.KEY_ERRORINF
3410: 4f 2c 09 4b 45 59 5f 45 52 52 4f 52 4c 49 4e 45 O,.KEY_ERRORLINE
3420: 2c 0a 2d 20 20 20 20 4b 45 59 5f 4c 45 56 45 4c ,.- KEY_LEVEL
3430: 2c 09 4b 45 59 5f 4f 50 54 49 4f 4e 53 2c 09 4b ,.KEY_OPTIONS,.K
3440: 45 59 5f 4c 41 53 54 0a 2b 20 20 20 20 4b 45 59 EY_LAST.+ KEY
3450: 5f 4c 45 56 45 4c 2c 09 4b 45 59 5f 4f 50 54 49 _LEVEL,.KEY_OPTI
3460: 4f 4e 53 2c 09 4b 45 59 5f 45 52 52 4f 52 53 54 ONS,.KEY_ERRORST
3470: 41 43 4b 2c 09 4b 45 59 5f 4c 41 53 54 0a 20 7d ACK,.KEY_LAST. }
3480: 3b 0a 20 0a 20 2f 2a 0a 40 40 20 2d 34 36 2c 36 ;. . /*.@@ -46,6
3490: 20 2b 34 36 2c 38 20 40 40 0a 20 20 20 20 20 54 +46,8 @@. T
34a0: 63 6c 5f 4f 62 6a 20 2a 65 72 72 6f 72 43 6f 64 cl_Obj *errorCod
34b0: 65 3b 0a 20 20 20 20 20 54 63 6c 5f 4f 62 6a 20 e;. Tcl_Obj
34c0: 2a 72 65 74 75 72 6e 4f 70 74 73 3b 0a 20 20 20 *returnOpts;.
34d0: 20 20 54 63 6c 5f 4f 62 6a 20 2a 6f 62 6a 52 65 Tcl_Obj *objRe
34e0: 73 75 6c 74 3b 0a 2b 20 20 20 20 54 63 6c 5f 4f sult;.+ Tcl_O
34f0: 62 6a 20 2a 65 72 72 6f 72 53 74 61 63 6b 3b 0a bj *errorStack;.
3500: 2b 20 20 20 20 69 6e 74 20 72 65 73 65 74 45 72 + int resetEr
3510: 72 6f 72 53 74 61 63 6b 3b 0a 20 7d 20 49 6e 74 rorStack;. } Int
3520: 65 72 70 53 74 61 74 65 3b 0a 20 0c 0a 20 2f 2a erpState;. .. /*
3530: 0a 40 40 20 2d 38 32 2c 36 20 2b 38 34 2c 38 20 .@@ -82,6 +84,8
3540: 40 40 0a 20 20 20 20 20 73 74 61 74 65 50 74 72 @@. statePtr
3550: 2d 3e 72 65 74 75 72 6e 4c 65 76 65 6c 20 3d 20 ->returnLevel =
3560: 69 50 74 72 2d 3e 72 65 74 75 72 6e 4c 65 76 65 iPtr->returnLeve
3570: 6c 3b 0a 20 20 20 20 20 73 74 61 74 65 50 74 72 l;. statePtr
3580: 2d 3e 72 65 74 75 72 6e 43 6f 64 65 20 3d 20 69 ->returnCode = i
3590: 50 74 72 2d 3e 72 65 74 75 72 6e 43 6f 64 65 3b Ptr->returnCode;
35a0: 0a 20 20 20 20 20 73 74 61 74 65 50 74 72 2d 3e . statePtr->
35b0: 65 72 72 6f 72 49 6e 66 6f 20 3d 20 69 50 74 72 errorInfo = iPtr
35c0: 2d 3e 65 72 72 6f 72 49 6e 66 6f 3b 0a 2b 20 20 ->errorInfo;.+
35d0: 20 20 73 74 61 74 65 50 74 72 2d 3e 65 72 72 6f statePtr->erro
35e0: 72 53 74 61 63 6b 20 3d 20 69 50 74 72 2d 3e 65 rStack = iPtr->e
35f0: 72 72 6f 72 53 74 61 63 6b 3b 0a 2b 20 20 20 20 rrorStack;.+
3600: 73 74 61 74 65 50 74 72 2d 3e 72 65 73 65 74 45 statePtr->resetE
3610: 72 72 6f 72 53 74 61 63 6b 20 3d 20 69 50 74 72 rrorStack = iPtr
3620: 2d 3e 72 65 73 65 74 45 72 72 6f 72 53 74 61 63 ->resetErrorStac
3630: 6b 3b 0a 20 20 20 20 20 69 66 20 28 73 74 61 74 k;. if (stat
3640: 65 50 74 72 2d 3e 65 72 72 6f 72 49 6e 66 6f 29 ePtr->errorInfo)
3650: 20 7b 0a 20 09 54 63 6c 5f 49 6e 63 72 52 65 66 {. .Tcl_IncrRef
3660: 43 6f 75 6e 74 28 73 74 61 74 65 50 74 72 2d 3e Count(statePtr->
3670: 65 72 72 6f 72 49 6e 66 6f 29 3b 0a 20 20 20 20 errorInfo);.
3680: 20 7d 0a 40 40 20 2d 39 33 2c 36 20 2b 39 37 2c }.@@ -93,6 +97,
3690: 39 20 40 40 0a 20 20 20 20 20 69 66 20 28 73 74 9 @@. if (st
36a0: 61 74 65 50 74 72 2d 3e 72 65 74 75 72 6e 4f 70 atePtr->returnOp
36b0: 74 73 29 20 7b 0a 20 09 54 63 6c 5f 49 6e 63 72 ts) {. .Tcl_Incr
36c0: 52 65 66 43 6f 75 6e 74 28 73 74 61 74 65 50 74 RefCount(statePt
36d0: 72 2d 3e 72 65 74 75 72 6e 4f 70 74 73 29 3b 0a r->returnOpts);.
36e0: 20 20 20 20 20 7d 0a 2b 20 20 20 20 69 66 20 28 }.+ if (
36f0: 73 74 61 74 65 50 74 72 2d 3e 65 72 72 6f 72 53 statePtr->errorS
3700: 74 61 63 6b 29 20 7b 0a 2b 09 54 63 6c 5f 49 6e tack) {.+.Tcl_In
3710: 63 72 52 65 66 43 6f 75 6e 74 28 73 74 61 74 65 crRefCount(state
3720: 50 74 72 2d 3e 65 72 72 6f 72 53 74 61 63 6b 29 Ptr->errorStack)
3730: 3b 0a 2b 20 20 20 20 7d 0a 20 20 20 20 20 73 74 ;.+ }. st
3740: 61 74 65 50 74 72 2d 3e 6f 62 6a 52 65 73 75 6c atePtr->objResul
3750: 74 20 3d 20 54 63 6c 5f 47 65 74 4f 62 6a 52 65 t = Tcl_GetObjRe
3760: 73 75 6c 74 28 69 6e 74 65 72 70 29 3b 0a 20 20 sult(interp);.
3770: 20 20 20 54 63 6c 5f 49 6e 63 72 52 65 66 43 6f Tcl_IncrRefCo
3780: 75 6e 74 28 73 74 61 74 65 50 74 72 2d 3e 6f 62 unt(statePtr->ob
3790: 6a 52 65 73 75 6c 74 29 3b 0a 20 20 20 20 20 72 jResult);. r
37a0: 65 74 75 72 6e 20 28 54 63 6c 5f 49 6e 74 65 72 eturn (Tcl_Inter
37b0: 70 53 74 61 74 65 29 20 73 74 61 74 65 50 74 72 pState) statePtr
37c0: 3b 0a 40 40 20 2d 31 33 30 2c 36 20 2b 31 33 37 ;.@@ -130,6 +137
37d0: 2c 37 20 40 40 0a 20 0a 20 20 20 20 20 69 50 74 ,7 @@. . iPt
37e0: 72 2d 3e 72 65 74 75 72 6e 4c 65 76 65 6c 20 3d r->returnLevel =
37f0: 20 73 74 61 74 65 50 74 72 2d 3e 72 65 74 75 72 statePtr->retur
3800: 6e 4c 65 76 65 6c 3b 0a 20 20 20 20 20 69 50 74 nLevel;. iPt
3810: 72 2d 3e 72 65 74 75 72 6e 43 6f 64 65 20 3d 20 r->returnCode =
3820: 73 74 61 74 65 50 74 72 2d 3e 72 65 74 75 72 6e statePtr->return
3830: 43 6f 64 65 3b 0a 2b 20 20 20 20 69 50 74 72 2d Code;.+ iPtr-
3840: 3e 72 65 73 65 74 45 72 72 6f 72 53 74 61 63 6b >resetErrorStack
3850: 20 3d 20 73 74 61 74 65 50 74 72 2d 3e 72 65 73 = statePtr->res
3860: 65 74 45 72 72 6f 72 53 74 61 63 6b 3b 0a 20 20 etErrorStack;.
3870: 20 20 20 69 66 20 28 69 50 74 72 2d 3e 65 72 72 if (iPtr->err
3880: 6f 72 49 6e 66 6f 29 20 7b 0a 20 09 54 63 6c 5f orInfo) {. .Tcl_
3890: 44 65 63 72 52 65 66 43 6f 75 6e 74 28 69 50 74 DecrRefCount(iPt
38a0: 72 2d 3e 65 72 72 6f 72 49 6e 66 6f 29 3b 0a 20 r->errorInfo);.
38b0: 20 20 20 20 7d 0a 40 40 20 2d 31 34 34 2c 36 20 }.@@ -144,6
38c0: 2b 31 35 32 2c 31 33 20 40 40 0a 20 20 20 20 20 +152,13 @@.
38d0: 69 66 20 28 69 50 74 72 2d 3e 65 72 72 6f 72 43 if (iPtr->errorC
38e0: 6f 64 65 29 20 7b 0a 20 09 54 63 6c 5f 49 6e 63 ode) {. .Tcl_Inc
38f0: 72 52 65 66 43 6f 75 6e 74 28 69 50 74 72 2d 3e rRefCount(iPtr->
3900: 65 72 72 6f 72 43 6f 64 65 29 3b 0a 20 20 20 20 errorCode);.
3910: 20 7d 0a 2b 20 20 20 20 69 66 20 28 69 50 74 72 }.+ if (iPtr
3920: 2d 3e 65 72 72 6f 72 53 74 61 63 6b 29 20 7b 0a ->errorStack) {.
3930: 2b 09 54 63 6c 5f 44 65 63 72 52 65 66 43 6f 75 +.Tcl_DecrRefCou
3940: 6e 74 28 69 50 74 72 2d 3e 65 72 72 6f 72 53 74 nt(iPtr->errorSt
3950: 61 63 6b 29 3b 0a 2b 20 20 20 20 7d 0a 2b 20 20 ack);.+ }.+
3960: 20 20 69 50 74 72 2d 3e 65 72 72 6f 72 53 74 61 iPtr->errorSta
3970: 63 6b 20 3d 20 73 74 61 74 65 50 74 72 2d 3e 65 ck = statePtr->e
3980: 72 72 6f 72 53 74 61 63 6b 3b 0a 2b 20 20 20 20 rrorStack;.+
3990: 69 66 20 28 69 50 74 72 2d 3e 65 72 72 6f 72 53 if (iPtr->errorS
39a0: 74 61 63 6b 29 20 7b 0a 2b 09 54 63 6c 5f 49 6e tack) {.+.Tcl_In
39b0: 63 72 52 65 66 43 6f 75 6e 74 28 69 50 74 72 2d crRefCount(iPtr-
39c0: 3e 65 72 72 6f 72 53 74 61 63 6b 29 3b 0a 2b 20 >errorStack);.+
39d0: 20 20 20 7d 0a 20 20 20 20 20 69 66 20 28 69 50 }. if (iP
39e0: 74 72 2d 3e 72 65 74 75 72 6e 4f 70 74 73 29 20 tr->returnOpts)
39f0: 7b 0a 20 09 54 63 6c 5f 44 65 63 72 52 65 66 43 {. .Tcl_DecrRefC
3a00: 6f 75 6e 74 28 69 50 74 72 2d 3e 72 65 74 75 72 ount(iPtr->retur
3a10: 6e 4f 70 74 73 29 3b 0a 20 20 20 20 20 7d 0a 40 nOpts);. }.@
3a20: 40 20 2d 31 38 38 2c 36 20 2b 32 30 33 2c 39 20 @ -188,6 +203,9
3a30: 40 40 0a 20 20 20 20 20 69 66 20 28 73 74 61 74 @@. if (stat
3a40: 65 50 74 72 2d 3e 72 65 74 75 72 6e 4f 70 74 73 ePtr->returnOpts
3a50: 29 20 7b 0a 20 09 54 63 6c 5f 44 65 63 72 52 65 ) {. .Tcl_DecrRe
3a60: 66 43 6f 75 6e 74 28 73 74 61 74 65 50 74 72 2d fCount(statePtr-
3a70: 3e 72 65 74 75 72 6e 4f 70 74 73 29 3b 0a 20 20 >returnOpts);.
3a80: 20 20 20 7d 0a 2b 20 20 20 20 69 66 20 28 73 74 }.+ if (st
3a90: 61 74 65 50 74 72 2d 3e 65 72 72 6f 72 53 74 61 atePtr->errorSta
3aa0: 63 6b 29 20 7b 0a 2b 09 54 63 6c 5f 44 65 63 72 ck) {.+.Tcl_Decr
3ab0: 52 65 66 43 6f 75 6e 74 28 73 74 61 74 65 50 74 RefCount(statePt
3ac0: 72 2d 3e 65 72 72 6f 72 53 74 61 63 6b 29 3b 0a r->errorStack);.
3ad0: 2b 20 20 20 20 7d 0a 20 20 20 20 20 54 63 6c 5f + }. Tcl_
3ae0: 44 65 63 72 52 65 66 43 6f 75 6e 74 28 73 74 61 DecrRefCount(sta
3af0: 74 65 50 74 72 2d 3e 6f 62 6a 52 65 73 75 6c 74 tePtr->objResult
3b00: 29 3b 0a 20 20 20 20 20 63 6b 66 72 65 65 28 28 );. ckfree((
3b10: 63 68 61 72 20 2a 29 20 73 74 61 74 65 50 74 72 char *) statePtr
3b20: 29 3b 0a 20 7d 0a 40 40 20 2d 39 32 34 2c 36 20 );. }.@@ -924,6
3b30: 2b 39 34 32 2c 37 20 40 40 0a 20 09 54 63 6c 5f +942,7 @@. .Tcl_
3b40: 44 65 63 72 52 65 66 43 6f 75 6e 74 28 69 50 74 DecrRefCount(iPt
3b50: 72 2d 3e 65 72 72 6f 72 49 6e 66 6f 29 3b 0a 20 r->errorInfo);.
3b60: 09 69 50 74 72 2d 3e 65 72 72 6f 72 49 6e 66 6f .iPtr->errorInfo
3b70: 20 3d 20 4e 55 4c 4c 3b 0a 20 20 20 20 20 7d 0a = NULL;. }.
3b80: 2b 20 20 20 20 69 50 74 72 2d 3e 72 65 73 65 74 + iPtr->reset
3b90: 45 72 72 6f 72 53 74 61 63 6b 20 3d 20 31 3b 0a ErrorStack = 1;.
3ba0: 20 20 20 20 20 69 50 74 72 2d 3e 72 65 74 75 72 iPtr->retur
3bb0: 6e 4c 65 76 65 6c 20 3d 20 31 3b 0a 20 20 20 20 nLevel = 1;.
3bc0: 20 69 50 74 72 2d 3e 72 65 74 75 72 6e 43 6f 64 iPtr->returnCod
3bd0: 65 20 3d 20 54 43 4c 5f 4f 4b 3b 0a 20 20 20 20 e = TCL_OK;.
3be0: 20 69 66 20 28 69 50 74 72 2d 3e 72 65 74 75 72 if (iPtr->retur
3bf0: 6e 4f 70 74 73 29 20 7b 0a 40 40 20 2d 31 31 36 nOpts) {.@@ -116
3c00: 31 2c 36 20 2b 31 31 38 30 2c 37 20 40 40 0a 20 1,6 +1180,7 @@.
3c10: 09 54 63 6c 4e 65 77 4c 69 74 65 72 61 6c 53 74 .TclNewLiteralSt
3c20: 72 69 6e 67 4f 62 6a 28 6b 65 79 73 5b 4b 45 59 ringObj(keys[KEY
3c30: 5f 45 52 52 4f 52 43 4f 44 45 5d 2c 20 22 2d 65 _ERRORCODE], "-e
3c40: 72 72 6f 72 63 6f 64 65 22 29 3b 0a 20 09 54 63 rrorcode");. .Tc
3c50: 6c 4e 65 77 4c 69 74 65 72 61 6c 53 74 72 69 6e lNewLiteralStrin
3c60: 67 4f 62 6a 28 6b 65 79 73 5b 4b 45 59 5f 45 52 gObj(keys[KEY_ER
3c70: 52 4f 52 49 4e 46 4f 5d 2c 20 22 2d 65 72 72 6f RORINFO], "-erro
3c80: 72 69 6e 66 6f 22 29 3b 0a 20 09 54 63 6c 4e 65 rinfo");. .TclNe
3c90: 77 4c 69 74 65 72 61 6c 53 74 72 69 6e 67 4f 62 wLiteralStringOb
3ca0: 6a 28 6b 65 79 73 5b 4b 45 59 5f 45 52 52 4f 52 j(keys[KEY_ERROR
3cb0: 4c 49 4e 45 5d 2c 20 22 2d 65 72 72 6f 72 6c 69 LINE], "-errorli
3cc0: 6e 65 22 29 3b 0a 2b 09 54 63 6c 4e 65 77 4c 69 ne");.+.TclNewLi
3cd0: 74 65 72 61 6c 53 74 72 69 6e 67 4f 62 6a 28 6b teralStringObj(k
3ce0: 65 79 73 5b 4b 45 59 5f 45 52 52 4f 52 53 54 41 eys[KEY_ERRORSTA
3cf0: 43 4b 5d 2c 22 2d 65 72 72 6f 72 73 74 61 63 6b CK],"-errorstack
3d00: 22 29 3b 0a 20 09 54 63 6c 4e 65 77 4c 69 74 65 ");. .TclNewLite
3d10: 72 61 6c 53 74 72 69 6e 67 4f 62 6a 28 6b 65 79 ralStringObj(key
3d20: 73 5b 4b 45 59 5f 4c 45 56 45 4c 5d 2c 09 20 20 s[KEY_LEVEL],.
3d30: 20 20 22 2d 6c 65 76 65 6c 22 29 3b 0a 20 09 54 "-level");. .T
3d40: 63 6c 4e 65 77 4c 69 74 65 72 61 6c 53 74 72 69 clNewLiteralStri
3d50: 6e 67 4f 62 6a 28 6b 65 79 73 5b 4b 45 59 5f 4f ngObj(keys[KEY_O
3d60: 50 54 49 4f 4e 53 5d 2c 20 20 20 22 2d 6f 70 74 PTIONS], "-opt
3d70: 69 6f 6e 73 22 29 3b 0a 20 0a 40 40 20 2d 31 32 ions");. .@@ -12
3d80: 36 36 2c 36 20 2b 31 32 38 36 2c 33 31 20 40 40 66,6 +1286,31 @@
3d90: 0a 20 09 09 69 50 74 72 2d 3e 66 6c 61 67 73 20 . ..iPtr->flags
3da0: 7c 3d 20 45 52 52 5f 41 4c 52 45 41 44 59 5f 4c |= ERR_ALREADY_L
3db0: 4f 47 47 45 44 3b 0a 20 09 20 20 20 20 7d 0a 20 OGGED;. . }.
3dc0: 09 7d 0a 2b 09 54 63 6c 5f 44 69 63 74 4f 62 6a .}.+.Tcl_DictObj
3dd0: 47 65 74 28 4e 55 4c 4c 2c 20 69 50 74 72 2d 3e Get(NULL, iPtr->
3de0: 72 65 74 75 72 6e 4f 70 74 73 2c 20 6b 65 79 73 returnOpts, keys
3df0: 5b 4b 45 59 5f 45 52 52 4f 52 53 54 41 43 4b 5d [KEY_ERRORSTACK]
3e00: 2c 20 26 76 61 6c 75 65 50 74 72 29 3b 0a 2b 09 , &valuePtr);.+.
3e10: 69 66 20 28 76 61 6c 75 65 50 74 72 20 21 3d 20 if (valuePtr !=
3e20: 4e 55 4c 4c 29 20 7b 0a 2b 20 20 20 20 20 20 20 NULL) {.+
3e30: 20 20 20 20 20 69 6e 74 20 6c 65 6e 2c 20 76 61 int len, va
3e40: 6c 75 65 4f 62 6a 63 3b 0a 2b 20 20 20 20 20 20 lueObjc;.+
3e50: 20 20 20 20 20 20 54 63 6c 5f 4f 62 6a 20 2a 2a Tcl_Obj **
3e60: 76 61 6c 75 65 4f 62 6a 76 3b 0a 2b 0a 2b 20 20 valueObjv;.+.+
3e70: 20 20 20 20 20 20 20 20 20 20 69 66 20 28 54 63 if (Tc
3e80: 6c 5f 49 73 53 68 61 72 65 64 28 69 50 74 72 2d l_IsShared(iPtr-
3e90: 3e 65 72 72 6f 72 53 74 61 63 6b 29 29 20 7b 0a >errorStack)) {.
3ea0: 2b 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 +
3eb0: 20 54 63 6c 5f 4f 62 6a 20 2a 6e 65 77 4f 62 6a Tcl_Obj *newObj
3ec0: 3b 0a 2b 20 20 20 20 20 20 20 20 20 20 20 20 20 ;.+
3ed0: 20 20 20 0a 2b 20 20 20 20 20 20 20 20 20 20 20 .+
3ee0: 20 20 20 20 20 6e 65 77 4f 62 6a 20 3d 20 54 63 newObj = Tc
3ef0: 6c 5f 44 75 70 6c 69 63 61 74 65 4f 62 6a 28 69 l_DuplicateObj(i
3f00: 50 74 72 2d 3e 65 72 72 6f 72 53 74 61 63 6b 29 Ptr->errorStack)
3f10: 3b 0a 2b 20 20 20 20 20 20 20 20 20 20 20 20 20 ;.+
3f20: 20 20 20 54 63 6c 5f 44 65 63 72 52 65 66 43 6f Tcl_DecrRefCo
3f30: 75 6e 74 28 69 50 74 72 2d 3e 65 72 72 6f 72 53 unt(iPtr->errorS
3f40: 74 61 63 6b 29 3b 0a 2b 20 20 20 20 20 20 20 20 tack);.+
3f50: 20 20 20 20 20 20 20 20 54 63 6c 5f 49 6e 63 72 Tcl_Incr
3f60: 52 65 66 43 6f 75 6e 74 28 6e 65 77 4f 62 6a 29 RefCount(newObj)
3f70: 3b 0a 2b 20 20 20 20 20 20 20 20 20 20 20 20 20 ;.+
3f80: 20 20 20 69 50 74 72 2d 3e 65 72 72 6f 72 53 74 iPtr->errorSt
3f90: 61 63 6b 20 3d 20 6e 65 77 4f 62 6a 3b 0a 2b 20 ack = newObj;.+
3fa0: 20 20 20 20 20 20 20 20 20 20 20 7d 0a 2b 20 20 }.+
3fb0: 20 20 20 20 20 20 20 20 20 20 2f 2a 0a 2b 20 20 /*.+
3fc0: 20 20 20 20 20 20 20 20 20 20 20 2a 20 4c 69 73 * Lis
3fd0: 74 20 65 78 74 72 61 63 74 69 6f 6e 20 64 6f 6e t extraction don
3fe0: 65 20 61 66 74 65 72 20 64 75 70 6c 69 63 61 74 e after duplicat
3ff0: 69 6f 6e 20 74 6f 20 61 76 6f 69 64 20 6d 6f 76 ion to avoid mov
4000: 69 6e 67 20 74 68 65 20 72 75 67 0a 2b 20 20 20 ing the rug.+
4010: 20 20 20 20 20 20 20 20 20 20 2a 20 69 66 20 73 * if s
4020: 6f 6d 65 6f 6e 65 20 64 6f 65 73 20 5b 72 65 74 omeone does [ret
4030: 75 72 6e 20 2d 65 72 72 6f 72 73 74 61 63 6b 20 urn -errorstack
4040: 5b 69 6e 66 6f 20 65 72 72 6f 72 73 74 61 63 6b [info errorstack
4050: 5d 5d 0a 2b 20 20 20 20 20 20 20 20 20 20 20 20 ]].+
4060: 20 2a 2f 0a 2b 20 20 20 20 20 20 20 20 20 20 20 */.+
4070: 20 69 66 20 28 54 63 6c 5f 4c 69 73 74 4f 62 6a if (Tcl_ListObj
4080: 47 65 74 45 6c 65 6d 65 6e 74 73 28 69 6e 74 65 GetElements(inte
4090: 72 70 2c 20 76 61 6c 75 65 50 74 72 2c 20 26 76 rp, valuePtr, &v
40a0: 61 6c 75 65 4f 62 6a 63 2c 20 26 76 61 6c 75 65 alueObjc, &value
40b0: 4f 62 6a 76 29 20 3d 3d 20 54 43 4c 5f 45 52 52 Objv) == TCL_ERR
40c0: 4f 52 29 20 7b 0a 2b 20 20 20 20 20 20 20 20 20 OR) {.+
40d0: 20 20 20 20 20 20 20 72 65 74 75 72 6e 20 54 43 return TC
40e0: 4c 5f 45 52 52 4f 52 3b 0a 2b 20 20 20 20 20 20 L_ERROR;.+
40f0: 20 20 20 20 20 20 7d 0a 2b 20 20 20 20 20 20 20 }.+
4100: 20 20 20 20 20 69 50 74 72 2d 3e 72 65 73 65 74 iPtr->reset
4110: 45 72 72 6f 72 53 74 61 63 6b 20 3d 20 30 3b 0a ErrorStack = 0;.
4120: 2b 20 20 20 20 20 20 20 20 20 20 20 20 54 63 6c + Tcl
4130: 5f 4c 69 73 74 4f 62 6a 4c 65 6e 67 74 68 28 69 _ListObjLength(i
4140: 6e 74 65 72 70 2c 20 69 50 74 72 2d 3e 65 72 72 nterp, iPtr->err
4150: 6f 72 53 74 61 63 6b 2c 20 26 6c 65 6e 29 3b 0a orStack, &len);.
4160: 2b 20 20 20 20 20 20 20 20 20 20 20 20 2f 2a 20 + /*
4170: 72 65 73 65 74 20 77 68 69 6c 65 20 6b 65 65 70 reset while keep
4180: 69 6e 67 20 74 68 65 20 6c 69 73 74 20 69 6e 74 ing the list int
4190: 72 65 70 20 61 73 20 6d 75 63 68 20 61 73 20 70 rep as much as p
41a0: 6f 73 73 69 62 6c 65 20 2a 2f 0a 2b 20 20 20 20 ossible */.+
41b0: 20 20 20 20 20 20 20 20 54 63 6c 5f 4c 69 73 74 Tcl_List
41c0: 4f 62 6a 52 65 70 6c 61 63 65 28 69 6e 74 65 72 ObjReplace(inter
41d0: 70 2c 20 69 50 74 72 2d 3e 65 72 72 6f 72 53 74 p, iPtr->errorSt
41e0: 61 63 6b 2c 20 30 2c 20 6c 65 6e 2c 20 76 61 6c ack, 0, len, val
41f0: 75 65 4f 62 6a 63 2c 20 76 61 6c 75 65 4f 62 6a ueObjc, valueObj
4200: 76 29 3b 0a 2b 20 09 7d 0a 20 09 54 63 6c 5f 44 v);.+ .}. .Tcl_D
4210: 69 63 74 4f 62 6a 47 65 74 28 4e 55 4c 4c 2c 20 ictObjGet(NULL,
4220: 69 50 74 72 2d 3e 72 65 74 75 72 6e 4f 70 74 73 iPtr->returnOpts
4230: 2c 20 6b 65 79 73 5b 4b 45 59 5f 45 52 52 4f 52 , keys[KEY_ERROR
4240: 43 4f 44 45 5d 2c 20 26 76 61 6c 75 65 50 74 72 CODE], &valuePtr
4250: 29 3b 0a 20 09 69 66 20 28 76 61 6c 75 65 50 74 );. .if (valuePt
4260: 72 20 21 3d 20 4e 55 4c 4c 29 20 7b 0a 20 09 20 r != NULL) {. .
4270: 20 20 20 54 63 6c 5f 53 65 74 4f 62 6a 45 72 72 Tcl_SetObjErr
4280: 6f 72 43 6f 64 65 28 69 6e 74 65 72 70 2c 20 76 orCode(interp, v
4290: 61 6c 75 65 50 74 72 29 3b 0a 40 40 20 2d 31 34 aluePtr);.@@ -14
42a0: 32 39 2c 36 20 2b 31 34 37 34 2c 33 37 20 40 40 29,6 +1474,37 @@
42b0: 0a 20 20 20 20 20 7d 0a 20 0a 20 20 20 20 20 2f . }. . /
42c0: 2a 0a 2b 20 20 20 20 20 2a 20 43 68 65 63 6b 20 *.+ * Check
42d0: 66 6f 72 20 62 6f 67 75 73 20 2d 65 72 72 6f 72 for bogus -error
42e0: 73 74 61 63 6b 20 76 61 6c 75 65 2e 0a 2b 20 20 stack value..+
42f0: 20 20 20 2a 2f 0a 2b 0a 2b 20 20 20 20 54 63 6c */.+.+ Tcl
4300: 5f 44 69 63 74 4f 62 6a 47 65 74 28 4e 55 4c 4c _DictObjGet(NULL
4310: 2c 20 72 65 74 75 72 6e 4f 70 74 73 2c 20 6b 65 , returnOpts, ke
4320: 79 73 5b 4b 45 59 5f 45 52 52 4f 52 53 54 41 43 ys[KEY_ERRORSTAC
4330: 4b 5d 2c 20 26 76 61 6c 75 65 50 74 72 29 3b 0a K], &valuePtr);.
4340: 2b 20 20 20 20 69 66 20 28 76 61 6c 75 65 50 74 + if (valuePt
4350: 72 20 21 3d 20 4e 55 4c 4c 29 20 7b 0a 2b 09 69 r != NULL) {.+.i
4360: 6e 74 20 6c 65 6e 67 74 68 3b 0a 2b 0a 2b 09 69 nt length;.+.+.i
4370: 66 20 28 54 43 4c 5f 45 52 52 4f 52 20 3d 3d 20 f (TCL_ERROR ==
4380: 54 63 6c 5f 4c 69 73 74 4f 62 6a 4c 65 6e 67 74 Tcl_ListObjLengt
4390: 68 28 4e 55 4c 4c 2c 20 76 61 6c 75 65 50 74 72 h(NULL, valuePtr
43a0: 2c 20 26 6c 65 6e 67 74 68 20 29 29 20 7b 0a 2b , &length )) {.+
43b0: 09 20 20 20 20 2f 2a 0a 2b 09 20 20 20 20 20 2a . /*.+. *
43c0: 20 56 61 6c 75 65 20 69 73 20 6e 6f 74 20 61 20 Value is not a
43d0: 6c 69 73 74 2c 20 77 68 69 63 68 20 69 73 20 69 list, which is i
43e0: 6c 6c 65 67 61 6c 20 66 6f 72 20 2d 65 72 72 6f llegal for -erro
43f0: 72 73 74 61 63 6b 2e 0a 2b 09 20 20 20 20 20 2a rstack..+. *
4400: 2f 0a 2b 09 20 20 20 20 54 63 6c 5f 52 65 73 65 /.+. Tcl_Rese
4410: 74 52 65 73 75 6c 74 28 69 6e 74 65 72 70 29 3b tResult(interp);
4420: 0a 2b 09 20 20 20 20 54 63 6c 5f 41 70 70 65 6e .+. Tcl_Appen
4430: 64 52 65 73 75 6c 74 28 69 6e 74 65 72 70 2c 20 dResult(interp,
4440: 22 62 61 64 20 2d 65 72 72 6f 72 73 74 61 63 6b "bad -errorstack
4450: 20 76 61 6c 75 65 3a 20 22 0a 2b 09 09 09 20 20 value: ".+...
4460: 20 20 20 22 65 78 70 65 63 74 65 64 20 61 20 6c "expected a l
4470: 69 73 74 20 62 75 74 20 67 6f 74 20 5c 22 22 2c ist but got \"",
4480: 0a 2b 09 09 09 20 20 20 20 20 54 63 6c 47 65 74 .+... TclGet
4490: 53 74 72 69 6e 67 28 76 61 6c 75 65 50 74 72 29 String(valuePtr)
44a0: 2c 20 22 5c 22 22 2c 20 4e 55 4c 4c 29 3b 0a 2b , "\"", NULL);.+
44b0: 09 20 20 20 20 54 63 6c 5f 53 65 74 45 72 72 6f . Tcl_SetErro
44c0: 72 43 6f 64 65 28 69 6e 74 65 72 70 2c 20 22 54 rCode(interp, "T
44d0: 43 4c 22 2c 20 22 52 45 53 55 4c 54 22 2c 20 22 CL", "RESULT", "
44e0: 4e 4f 4e 4c 49 53 54 5f 45 52 52 4f 52 53 54 41 NONLIST_ERRORSTA
44f0: 43 4b 22 2c 20 4e 55 4c 4c 29 3b 0a 2b 09 20 20 CK", NULL);.+.
4500: 20 20 67 6f 74 6f 20 65 72 72 6f 72 3b 0a 2b 09 goto error;.+.
4510: 7d 0a 2b 20 20 20 20 20 20 20 20 69 66 20 28 6c }.+ if (l
4520: 65 6e 67 74 68 20 25 20 32 29 20 7b 0a 2b 20 20 ength % 2) {.+
4530: 20 20 20 20 20 20 20 20 20 20 2f 2a 0a 2b 20 20 /*.+
4540: 20 20 20 20 20 20 20 20 20 20 20 2a 20 45 72 72 * Err
4550: 6f 72 73 74 61 63 6b 20 6d 75 73 74 20 61 6c 77 orstack must alw
4560: 61 79 73 20 62 65 20 61 6e 20 65 76 65 6e 2d 73 ays be an even-s
4570: 69 7a 65 64 20 6c 69 73 74 0a 2b 20 20 20 20 20 ized list.+
4580: 20 20 20 20 20 20 20 20 2a 2f 0a 2b 20 20 20 20 */.+
4590: 20 20 20 20 20 20 20 20 54 63 6c 5f 52 65 73 65 Tcl_Rese
45a0: 74 52 65 73 75 6c 74 28 69 6e 74 65 72 70 29 3b tResult(interp);
45b0: 0a 2b 09 20 20 20 20 54 63 6c 5f 41 70 70 65 6e .+. Tcl_Appen
45c0: 64 52 65 73 75 6c 74 28 69 6e 74 65 72 70 2c 20 dResult(interp,
45d0: 22 66 6f 72 62 69 64 64 65 6e 20 6f 64 64 2d 73 "forbidden odd-s
45e0: 69 7a 65 64 20 6c 69 73 74 20 66 6f 72 20 2d 65 ized list for -e
45f0: 72 72 6f 72 73 74 61 63 6b 3a 20 5c 22 22 2c 0a rrorstack: \"",.
4600: 2b 09 09 09 20 20 20 20 20 54 63 6c 47 65 74 53 +... TclGetS
4610: 74 72 69 6e 67 28 76 61 6c 75 65 50 74 72 29 2c tring(valuePtr),
4620: 20 22 5c 22 22 2c 20 4e 55 4c 4c 29 3b 0a 2b 09 "\"", NULL);.+.
4630: 20 20 20 20 54 63 6c 5f 53 65 74 45 72 72 6f 72 Tcl_SetError
4640: 43 6f 64 65 28 69 6e 74 65 72 70 2c 20 22 54 43 Code(interp, "TC
4650: 4c 22 2c 20 22 52 45 53 55 4c 54 22 2c 20 22 4f L", "RESULT", "O
4660: 44 44 53 49 5a 45 44 4c 49 53 54 5f 45 52 52 4f DDSIZEDLIST_ERRO
4670: 52 53 54 41 43 4b 22 2c 20 4e 55 4c 4c 29 3b 0a RSTACK", NULL);.
4680: 2b 09 20 20 20 20 67 6f 74 6f 20 65 72 72 6f 72 +. goto error
4690: 3b 0a 2b 20 20 20 20 20 20 20 20 7d 0a 2b 20 20 ;.+ }.+
46a0: 20 20 7d 0a 2b 0a 2b 20 20 20 20 2f 2a 0a 20 20 }.+.+ /*.
46b0: 20 20 20 20 2a 20 43 6f 6e 76 65 72 74 20 5b 72 * Convert [r
46c0: 65 74 75 72 6e 20 2d 63 6f 64 65 20 72 65 74 75 eturn -code retu
46d0: 72 6e 20 2d 6c 65 76 65 6c 20 58 5d 20 74 6f 20 rn -level X] to
46e0: 5b 72 65 74 75 72 6e 20 2d 63 6f 64 65 20 6f 6b [return -code ok
46f0: 20 2d 6c 65 76 65 6c 20 58 2b 31 5d 0a 20 20 20 -level X+1].
4700: 20 20 20 2a 2f 0a 20 0a 40 40 20 2d 31 35 30 35 */. .@@ -1505
4710: 2c 36 20 2b 31 35 38 31 2c 37 20 40 40 0a 20 0a ,6 +1581,7 @@. .
4720: 20 20 20 20 20 69 66 20 28 72 65 73 75 6c 74 20 if (result
4730: 3d 3d 20 54 43 4c 5f 45 52 52 4f 52 29 20 7b 0a == TCL_ERROR) {.
4740: 20 09 54 63 6c 5f 41 64 64 4f 62 6a 45 72 72 6f .Tcl_AddObjErro
4750: 72 49 6e 66 6f 28 69 6e 74 65 72 70 2c 20 22 22 rInfo(interp, ""
4760: 2c 20 2d 31 29 3b 0a 2b 20 20 20 20 20 20 20 20 , -1);.+
4770: 54 63 6c 5f 44 69 63 74 4f 62 6a 50 75 74 28 4e Tcl_DictObjPut(N
4780: 55 4c 4c 2c 20 6f 70 74 69 6f 6e 73 2c 20 6b 65 ULL, options, ke
4790: 79 73 5b 4b 45 59 5f 45 52 52 4f 52 53 54 41 43 ys[KEY_ERRORSTAC
47a0: 4b 5d 2c 20 69 50 74 72 2d 3e 65 72 72 6f 72 53 K], iPtr->errorS
47b0: 74 61 63 6b 29 3b 0a 20 20 20 20 20 7d 0a 20 20 tack);. }.
47c0: 20 20 20 69 66 20 28 69 50 74 72 2d 3e 65 72 72 if (iPtr->err
47d0: 6f 72 43 6f 64 65 29 20 7b 0a 20 09 54 63 6c 5f orCode) {. .Tcl_
47e0: 44 69 63 74 4f 62 6a 50 75 74 28 4e 55 4c 4c 2c DictObjPut(NULL,
47f0: 20 6f 70 74 69 6f 6e 73 2c 20 6b 65 79 73 5b 4b options, keys[K
4800: 45 59 5f 45 52 52 4f 52 43 4f 44 45 5d 2c 20 69 EY_ERRORCODE], i
4810: 50 74 72 2d 3e 65 72 72 6f 72 43 6f 64 65 29 3b Ptr->errorCode);
4820: 0a 40 40 20 2d 31 36 33 36 2c 35 20 2b 31 37 31 .@@ -1636,5 +171
4830: 33 2c 37 20 40 40 0a 20 20 2a 20 6d 6f 64 65 3a 3,7 @@. * mode:
4840: 20 63 0a 20 20 2a 20 63 2d 62 61 73 69 63 2d 6f c. * c-basic-o
4850: 66 66 73 65 74 3a 20 34 0a 20 20 2a 20 66 69 6c ffset: 4. * fil
4860: 6c 2d 63 6f 6c 75 6d 6e 3a 20 37 38 0a 2b 20 2a l-column: 78.+ *
4870: 20 74 61 62 2d 77 69 64 74 68 3a 20 38 0a 2b 20 tab-width: 8.+
4880: 2a 20 69 6e 64 65 6e 74 2d 74 61 62 73 2d 6d 6f * indent-tabs-mo
4890: 64 65 3a 20 6e 69 6c 0a 20 20 2a 20 45 6e 64 3a de: nil. * End:
48a0: 0a 20 20 2a 2f 0a 49 6e 64 65 78 3a 20 74 65 73 . */.Index: tes
48b0: 74 73 2f 63 6d 64 4d 5a 2e 74 65 73 74 0a 3d 3d ts/cmdMZ.test.==
48c0: 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d ================
48d0: 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d ================
48e0: 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d ================
48f0: 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d ================
4900: 3d 0a 52 43 53 20 66 69 6c 65 3a 20 2f 63 76 73 =.RCS file: /cvs
4910: 72 6f 6f 74 2f 74 63 6c 2f 74 63 6c 2f 74 65 73 root/tcl/tcl/tes
4920: 74 73 2f 63 6d 64 4d 5a 2e 74 65 73 74 2c 76 0a ts/cmdMZ.test,v.
4930: 72 65 74 72 69 65 76 69 6e 67 20 72 65 76 69 73 retrieving revis
4940: 69 6f 6e 20 31 2e 32 39 0a 64 69 66 66 20 2d 75 ion 1.29.diff -u
4950: 20 2d 72 31 2e 32 39 20 63 6d 64 4d 5a 2e 74 65 -r1.29 cmdMZ.te
4960: 73 74 0a 2d 2d 2d 20 74 65 73 74 73 2f 63 6d 64 st.--- tests/cmd
4970: 4d 5a 2e 74 65 73 74 09 33 31 20 4d 61 72 20 32 MZ.test.31 Mar 2
4980: 30 31 30 20 31 30 3a 32 39 3a 32 32 20 2d 30 30 010 10:29:22 -00
4990: 30 30 09 31 2e 32 39 0a 2b 2b 2b 20 74 65 73 74 00.1.29.+++ test
49a0: 73 2f 63 6d 64 4d 5a 2e 74 65 73 74 09 33 31 20 s/cmdMZ.test.31
49b0: 4d 61 72 20 32 30 31 30 20 31 35 3a 34 36 3a 30 Mar 2010 15:46:0
49c0: 34 20 2d 30 30 30 30 0a 40 40 20 2d 31 34 39 2c 4 -0000.@@ -149,
49d0: 31 31 20 2b 31 34 39 2c 31 31 20 40 40 0a 20 74 11 +149,11 @@. t
49e0: 65 73 74 20 63 6d 64 4d 5a 2d 72 65 74 75 72 6e est cmdMZ-return
49f0: 2d 32 2e 39 20 7b 72 65 74 75 72 6e 20 6f 70 74 -2.9 {return opt
4a00: 69 6f 6e 20 68 61 6e 64 6c 69 6e 67 7d 20 2d 62 ion handling} -b
4a10: 6f 64 79 20 7b 0a 20 20 20 20 20 72 65 74 75 72 ody {. retur
4a20: 6e 20 2d 6c 65 76 65 6c 20 30 20 2d 63 6f 64 65 n -level 0 -code
4a30: 20 31 30 0a 20 7d 20 2d 72 65 74 75 72 6e 43 6f 10. } -returnCo
4a40: 64 65 73 20 31 30 20 2d 72 65 73 75 6c 74 20 7b des 10 -result {
4a50: 7d 0a 2d 74 65 73 74 20 63 6d 64 4d 5a 2d 72 65 }.-test cmdMZ-re
4a60: 74 75 72 6e 2d 32 2e 31 30 20 7b 72 65 74 75 72 turn-2.10 {retur
4a70: 6e 20 6f 70 74 69 6f 6e 20 68 61 6e 64 6c 69 6e n option handlin
4a80: 67 7d 20 7b 0a 2b 74 65 73 74 20 63 6d 64 4d 5a g} {.+test cmdMZ
4a90: 2d 72 65 74 75 72 6e 2d 32 2e 31 30 20 7b 72 65 -return-2.10 {re
4aa0: 74 75 72 6e 20 6f 70 74 69 6f 6e 20 68 61 6e 64 turn option hand
4ab0: 6c 69 6e 67 7d 20 2d 62 6f 64 79 20 7b 0a 20 20 ling} -body {.
4ac0: 20 20 20 6c 69 73 74 20 5b 63 61 74 63 68 20 7b list [catch {
4ad0: 72 65 74 75 72 6e 20 2d 6c 65 76 65 6c 20 30 20 return -level 0
4ae0: 2d 63 6f 64 65 20 65 72 72 6f 72 7d 20 2d 3e 20 -code error} ->
4af0: 66 6f 6f 5d 20 5b 64 69 63 74 53 6f 72 74 20 24 foo] [dictSort $
4b00: 66 6f 6f 5d 0a 2d 7d 20 7b 31 20 7b 2d 63 6f 64 foo].-} {1 {-cod
4b10: 65 20 31 20 2d 65 72 72 6f 72 63 6f 64 65 20 4e e 1 -errorcode N
4b20: 4f 4e 45 20 2d 65 72 72 6f 72 69 6e 66 6f 20 7b ONE -errorinfo {
4b30: 0a 2b 7d 20 2d 6d 61 74 63 68 20 67 6c 6f 62 20 .+} -match glob
4b40: 2d 72 65 73 75 6c 74 20 7b 31 20 7b 2d 63 6f 64 -result {1 {-cod
4b50: 65 20 31 20 2d 65 72 72 6f 72 63 6f 64 65 20 4e e 1 -errorcode N
4b60: 4f 4e 45 20 2d 65 72 72 6f 72 69 6e 66 6f 20 7b ONE -errorinfo {
4b70: 0a 20 20 20 20 20 77 68 69 6c 65 20 65 78 65 63 . while exec
4b80: 75 74 69 6e 67 0a 2d 22 72 65 74 75 72 6e 20 2d uting.-"return -
4b90: 6c 65 76 65 6c 20 30 20 2d 63 6f 64 65 20 65 72 level 0 -code er
4ba0: 72 6f 72 22 7d 20 2d 65 72 72 6f 72 6c 69 6e 65 ror"} -errorline
4bb0: 20 31 20 2d 6c 65 76 65 6c 20 30 7d 7d 0a 2b 22 1 -level 0}}.+"
4bc0: 72 65 74 75 72 6e 20 2d 6c 65 76 65 6c 20 30 20 return -level 0
4bd0: 2d 63 6f 64 65 20 65 72 72 6f 72 22 7d 20 2d 65 -code error"} -e
4be0: 72 72 6f 72 6c 69 6e 65 20 31 20 2d 65 72 72 6f rrorline 1 -erro
4bf0: 72 73 74 61 63 6b 20 2a 20 2d 6c 65 76 65 6c 20 rstack * -level
4c00: 30 7d 7d 0a 20 74 65 73 74 20 63 6d 64 4d 5a 2d 0}}. test cmdMZ-
4c10: 72 65 74 75 72 6e 2d 32 2e 31 31 20 7b 72 65 74 return-2.11 {ret
4c20: 75 72 6e 20 6f 70 74 69 6f 6e 20 68 61 6e 64 6c urn option handl
4c30: 69 6e 67 7d 20 7b 0a 20 20 20 20 20 6c 69 73 74 ing} {. list
4c40: 20 5b 63 61 74 63 68 20 7b 72 65 74 75 72 6e 20 [catch {return
4c50: 2d 6c 65 76 65 6c 20 30 20 2d 63 6f 64 65 20 62 -level 0 -code b
4c60: 72 65 61 6b 7d 20 2d 3e 20 66 6f 6f 5d 20 5b 64 reak} -> foo] [d
4c70: 69 63 74 53 6f 72 74 20 24 66 6f 6f 5d 0a 20 7d ictSort $foo]. }
4c80: 20 7b 33 20 7b 2d 63 6f 64 65 20 33 20 2d 6c 65 {3 {-code 3 -le
4c90: 76 65 6c 20 30 7d 7d 0a 40 40 20 2d 31 39 33 2c vel 0}}.@@ -193,
4ca0: 36 20 2b 31 39 33 2c 39 20 40 40 0a 20 7d 20 2d 6 +193,9 @@. } -
4cb0: 63 6c 65 61 6e 75 70 20 7b 0a 20 20 20 20 20 72 cleanup {. r
4cc0: 65 6e 61 6d 65 20 70 20 7b 7d 0a 20 7d 20 2d 72 ename p {}. } -r
4cd0: 65 73 75 6c 74 20 7b 31 20 63 20 7b 61 20 62 7d esult {1 c {a b}
4ce0: 7d 0a 2b 74 65 73 74 20 63 6d 64 4d 5a 2d 72 65 }.+test cmdMZ-re
4cf0: 74 75 72 6e 2d 32 2e 31 38 20 7b 72 65 74 75 72 turn-2.18 {retur
4d00: 6e 20 6f 70 74 69 6f 6e 20 68 61 6e 64 6c 69 6e n option handlin
4d10: 67 7d 20 7b 0a 2b 20 20 20 20 6c 69 73 74 20 5b g} {.+ list [
4d20: 63 61 74 63 68 20 7b 72 65 74 75 72 6e 20 2d 63 catch {return -c
4d30: 6f 64 65 20 65 72 72 6f 72 20 2d 65 72 72 6f 72 ode error -error
4d40: 73 74 61 63 6b 20 5b 6c 69 73 74 20 43 41 4c 4c stack [list CALL
4d50: 20 61 20 43 41 4c 4c 20 62 5d 20 79 6f 7d 20 2d a CALL b] yo} -
4d60: 3e 20 66 6f 6f 5d 20 5b 64 69 63 74 53 6f 72 74 > foo] [dictSort
4d70: 20 24 66 6f 6f 5d 20 5b 69 6e 66 6f 20 65 72 72 $foo] [info err
4d80: 6f 72 73 74 61 63 6b 5d 0a 2b 7d 20 7b 32 20 7b orstack].+} {2 {
4d90: 2d 63 6f 64 65 20 31 20 2d 65 72 72 6f 72 63 6f -code 1 -errorco
4da0: 64 65 20 4e 4f 4e 45 20 2d 65 72 72 6f 72 73 74 de NONE -errorst
4db0: 61 63 6b 20 7b 43 41 4c 4c 20 61 20 43 41 4c 4c ack {CALL a CALL
4dc0: 20 62 7d 20 2d 6c 65 76 65 6c 20 31 7d 20 7b 43 b} -level 1} {C
4dd0: 41 4c 4c 20 61 20 43 41 4c 4c 20 62 7d 7d 0a 20 ALL a CALL b}}.
4de0: 0a 20 23 20 43 68 65 63 6b 20 74 68 61 74 20 74 . # Check that t
4df0: 68 65 20 72 65 73 75 6c 74 20 6f 66 20 61 20 5b he result of a [
4e00: 72 65 74 75 72 6e 20 2d 6f 70 74 69 6f 6e 73 20 return -options
4e10: 24 6f 70 74 73 20 24 72 65 73 75 6c 74 5d 20 69 $opts $result] i
4e20: 73 0a 20 23 20 69 6e 64 69 73 74 69 6e 67 75 69 s. # indistingui
4e30: 73 68 61 62 6c 65 20 66 72 6f 6d 20 74 68 61 74 shable from that
4e40: 20 6f 66 20 74 68 65 20 6f 72 69 67 69 6e 61 6c of the original
4e50: 6c 79 20 63 61 75 67 68 74 20 73 63 72 69 70 74 ly caught script
4e60: 2c 20 6e 6f 20 6d 61 74 74 65 72 20 77 68 61 74 , no matter what
4e70: 0a 40 40 20 2d 32 31 31 2c 36 20 2b 32 31 34 2c .@@ -211,6 +214,
4e80: 37 20 40 40 0a 20 20 20 20 20 63 6d 64 4d 5a 2d 7 @@. cmdMZ-
4e90: 72 65 74 75 72 6e 2d 33 2e 31 30 20 7b 72 65 74 return-3.10 {ret
4ea0: 75 72 6e 20 2d 63 6f 64 65 20 65 72 72 6f 72 20 urn -code error
4eb0: 2d 65 72 72 6f 72 69 6e 66 6f 20 66 6f 6f 7d 0a -errorinfo foo}.
4ec0: 20 20 20 20 20 63 6d 64 4d 5a 2d 72 65 74 75 72 cmdMZ-retur
4ed0: 6e 2d 33 2e 31 31 20 7b 72 65 74 75 72 6e 20 2d n-3.11 {return -
4ee0: 63 6f 64 65 20 65 72 72 6f 72 20 2d 65 72 72 6f code error -erro
4ef0: 72 69 6e 66 6f 20 66 6f 6f 20 2d 65 72 72 6f 72 rinfo foo -error
4f00: 63 6f 64 65 20 62 61 72 7d 0a 20 20 20 20 20 63 code bar}. c
4f10: 6d 64 4d 5a 2d 72 65 74 75 72 6e 2d 33 2e 31 32 mdMZ-return-3.12
4f20: 20 7b 72 65 74 75 72 6e 20 2d 63 6f 64 65 20 65 {return -code e
4f30: 72 72 6f 72 20 2d 65 72 72 6f 72 69 6e 66 6f 20 rror -errorinfo
4f40: 66 6f 6f 20 2d 65 72 72 6f 72 63 6f 64 65 20 62 foo -errorcode b
4f50: 61 72 20 2d 65 72 72 6f 72 6c 69 6e 65 20 31 30 ar -errorline 10
4f60: 7d 0a 2b 20 20 20 20 63 6d 64 4d 5a 2d 72 65 74 }.+ cmdMZ-ret
4f70: 75 72 6e 2d 33 2e 31 32 2e 31 20 7b 72 65 74 75 urn-3.12.1 {retu
4f80: 72 6e 20 2d 63 6f 64 65 20 65 72 72 6f 72 20 2d rn -code error -
4f90: 65 72 72 6f 72 69 6e 66 6f 20 66 6f 6f 20 2d 65 errorinfo foo -e
4fa0: 72 72 6f 72 63 6f 64 65 20 62 61 72 20 2d 65 72 rrorcode bar -er
4fb0: 72 6f 72 6c 69 6e 65 20 31 30 20 2d 65 72 72 6f rorline 10 -erro
4fc0: 72 73 74 61 63 6b 20 62 61 7a 7d 0a 20 20 20 20 rstack baz}.
4fd0: 20 63 6d 64 4d 5a 2d 72 65 74 75 72 6e 2d 33 2e cmdMZ-return-3.
4fe0: 31 33 20 7b 72 65 74 75 72 6e 20 2d 6f 70 74 69 13 {return -opti
4ff0: 6f 6e 73 20 7b 78 20 79 20 7a 20 32 7d 7d 0a 20 ons {x y z 2}}.
5000: 20 20 20 20 63 6d 64 4d 5a 2d 72 65 74 75 72 6e cmdMZ-return
5010: 2d 33 2e 31 34 20 7b 72 65 74 75 72 6e 20 2d 6c -3.14 {return -l
5020: 65 76 65 6c 20 33 20 2d 63 6f 64 65 20 62 72 65 evel 3 -code bre
5030: 61 6b 20 73 64 66 7d 0a 20 7d 20 7b 0a 49 6e 64 ak sdf}. } {.Ind
5040: 65 78 3a 20 74 65 73 74 73 2f 65 72 72 6f 72 2e ex: tests/error.
5050: 74 65 73 74 0a 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d test.===========
5060: 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d ================
5070: 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d ================
5080: 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d ================
5090: 3d 3d 3d 3d 3d 3d 3d 3d 0a 52 43 53 20 66 69 6c ========.RCS fil
50a0: 65 3a 20 2f 63 76 73 72 6f 6f 74 2f 74 63 6c 2f e: /cvsroot/tcl/
50b0: 74 63 6c 2f 74 65 73 74 73 2f 65 72 72 6f 72 2e tcl/tests/error.
50c0: 74 65 73 74 2c 76 0a 72 65 74 72 69 65 76 69 6e test,v.retrievin
50d0: 67 20 72 65 76 69 73 69 6f 6e 20 31 2e 32 39 0a g revision 1.29.
50e0: 64 69 66 66 20 2d 75 20 2d 72 31 2e 32 39 20 65 diff -u -r1.29 e
50f0: 72 72 6f 72 2e 74 65 73 74 0a 2d 2d 2d 20 74 65 rror.test.--- te
5100: 73 74 73 2f 65 72 72 6f 72 2e 74 65 73 74 09 33 sts/error.test.3
5110: 31 20 4d 61 72 20 32 30 31 30 20 31 30 3a 32 39 1 Mar 2010 10:29
5120: 3a 32 32 20 2d 30 30 30 30 09 31 2e 32 39 0a 2b :22 -0000.1.29.+
5130: 2b 2b 20 74 65 73 74 73 2f 65 72 72 6f 72 2e 74 ++ tests/error.t
5140: 65 73 74 09 33 31 20 4d 61 72 20 32 30 31 30 20 est.31 Mar 2010
5150: 31 35 3a 34 36 3a 30 34 20 2d 30 30 30 30 0a 40 15:46:04 -0000.@
5160: 40 20 2d 31 36 39 2c 36 20 2b 31 36 39 2c 31 39 @ -169,6 +169,19
5170: 20 40 40 0a 20 20 20 20 20 6c 69 73 74 20 5b 63 @@. list [c
5180: 61 74 63 68 20 7b 65 72 72 6f 72 20 6d 73 67 31 atch {error msg1
5190: 20 6d 73 67 32 20 7b 7d 7d 20 6d 73 67 5d 20 24 msg2 {}} msg] $
51a0: 6d 73 67 20 24 3a 3a 65 72 72 6f 72 49 6e 66 6f msg $::errorInfo
51b0: 20 24 3a 3a 65 72 72 6f 72 43 6f 64 65 0a 20 7d $::errorCode. }
51c0: 20 7b 31 20 6d 73 67 31 20 6d 73 67 32 20 7b 7d {1 msg1 msg2 {}
51d0: 7d 0a 20 0a 2b 74 65 73 74 20 65 72 72 6f 72 2d }. .+test error-
51e0: 34 2e 36 20 7b 65 72 72 6f 72 73 74 61 63 6b 20 4.6 {errorstack
51f0: 76 69 61 20 69 6e 66 6f 20 7d 20 2d 62 6f 64 79 via info } -body
5200: 20 7b 0a 2b 20 20 20 20 70 72 6f 63 20 66 20 78 {.+ proc f x
5210: 20 7b 67 20 24 78 24 78 7d 0a 2b 20 20 20 20 70 {g $x$x}.+ p
5220: 72 6f 63 20 67 20 78 20 7b 65 72 72 6f 72 20 47 roc g x {error G
5230: 3a 24 78 7d 0a 2b 20 20 20 20 63 61 74 63 68 20 :$x}.+ catch
5240: 7b 66 20 31 32 7d 0a 2b 20 20 20 20 69 6e 66 6f {f 12}.+ info
5250: 20 65 72 72 6f 72 73 74 61 63 6b 0a 2b 7d 20 2d errorstack.+} -
5260: 6d 61 74 63 68 20 67 6c 6f 62 20 2d 72 65 73 75 match glob -resu
5270: 6c 74 20 7b 43 41 4c 4c 20 7b 67 20 31 32 31 32 lt {CALL {g 1212
5280: 7d 20 43 41 4c 4c 20 7b 66 20 31 32 7d 20 55 50 } CALL {f 12} UP
5290: 20 31 7d 0a 2b 74 65 73 74 20 65 72 72 6f 72 2d 1}.+test error-
52a0: 34 2e 37 20 7b 65 72 72 6f 72 73 74 61 63 6b 20 4.7 {errorstack
52b0: 76 69 61 20 6f 70 74 69 6f 6e 73 20 64 69 63 74 via options dict
52c0: 20 7d 20 2d 62 6f 64 79 20 7b 0a 2b 20 20 20 20 } -body {.+
52d0: 70 72 6f 63 20 66 20 78 20 7b 67 20 24 78 24 78 proc f x {g $x$x
52e0: 7d 0a 2b 20 20 20 20 70 72 6f 63 20 67 20 78 20 }.+ proc g x
52f0: 7b 65 72 72 6f 72 20 47 3a 24 78 7d 0a 2b 20 20 {error G:$x}.+
5300: 20 20 63 61 74 63 68 20 7b 66 20 31 32 7d 20 6d catch {f 12} m
5310: 20 64 0a 2b 20 20 20 20 64 69 63 74 20 67 65 74 d.+ dict get
5320: 20 24 64 20 2d 65 72 72 6f 72 73 74 61 63 6b 0a $d -errorstack.
5330: 2b 7d 20 2d 6d 61 74 63 68 20 67 6c 6f 62 20 2d +} -match glob -
5340: 72 65 73 75 6c 74 20 7b 43 41 4c 4c 20 7b 67 20 result {CALL {g
5350: 31 32 31 32 7d 20 43 41 4c 4c 20 7b 66 20 31 32 1212} CALL {f 12
5360: 7d 20 55 50 20 31 7d 0a 2b 0a 20 23 20 45 72 72 } UP 1}.+. # Err
5370: 6f 72 73 20 69 6e 20 65 72 72 6f 72 20 63 6f 6d ors in error com
5380: 6d 61 6e 64 20 69 74 73 65 6c 66 0a 20 0a 20 74 mand itself. . t
5390: 65 73 74 20 65 72 72 6f 72 2d 35 2e 31 20 7b 65 est error-5.1 {e
53a0: 72 72 6f 72 73 20 69 6e 20 65 72 72 6f 72 20 63 rrors in error c
53b0: 6f 6d 6d 61 6e 64 7d 20 7b 0a 40 40 20 2d 32 32 ommand} {.@@ -22
53c0: 33 2c 36 20 2b 32 33 36 2c 31 35 20 40 40 0a 20 3,6 +236,15 @@.
53d0: 20 20 20 20 63 61 74 63 68 20 66 6f 6f 0a 20 20 catch foo.
53e0: 20 20 20 6c 69 73 74 20 24 3a 3a 65 72 72 6f 72 list $::error
53f0: 43 6f 64 65 0a 20 7d 20 7b 4e 4f 4e 45 7d 0a 2b Code. } {NONE}.+
5400: 74 65 73 74 20 65 72 72 6f 72 2d 36 2e 31 30 20 test error-6.10
5410: 7b 63 61 74 63 68 20 6d 75 73 74 20 72 65 73 65 {catch must rese
5420: 74 20 65 72 72 6f 72 73 74 61 63 6b 7d 20 2d 62 t errorstack} -b
5430: 6f 64 79 20 7b 0a 2b 09 70 72 6f 63 20 66 20 78 ody {.+.proc f x
5440: 20 7b 67 20 24 78 24 78 7d 0a 2b 09 70 72 6f 63 {g $x$x}.+.proc
5450: 20 67 20 78 20 7b 65 72 72 6f 72 20 47 3a 24 78 g x {error G:$x
5460: 7d 0a 2b 09 63 61 74 63 68 20 7b 66 20 31 32 7d }.+.catch {f 12}
5470: 0a 2b 09 73 65 74 20 65 31 20 5b 69 6e 66 6f 20 .+.set e1 [info
5480: 65 72 72 6f 72 73 74 61 63 6b 5d 0a 2b 09 63 61 errorstack].+.ca
5490: 74 63 68 20 7b 66 20 31 33 7d 0a 2b 09 73 65 74 tch {f 13}.+.set
54a0: 20 65 32 20 5b 69 6e 66 6f 20 65 72 72 6f 72 73 e2 [info errors
54b0: 74 61 63 6b 5d 0a 2b 09 6c 69 73 74 20 24 65 31 tack].+.list $e1
54c0: 20 24 65 32 0a 2b 7d 20 2d 6d 61 74 63 68 20 67 $e2.+} -match g
54d0: 6c 6f 62 20 2d 72 65 73 75 6c 74 20 7b 7b 43 41 lob -result {{CA
54e0: 4c 4c 20 7b 67 20 31 32 31 32 7d 20 43 41 4c 4c LL {g 1212} CALL
54f0: 20 7b 66 20 31 32 7d 20 55 50 20 31 7d 20 7b 43 {f 12} UP 1} {C
5500: 41 4c 4c 20 7b 67 20 31 33 31 33 7d 20 43 41 4c ALL {g 1313} CAL
5510: 4c 20 7b 66 20 31 33 7d 20 55 50 20 31 7d 7d 0a L {f 13} UP 1}}.
5520: 20 0a 20 74 65 73 74 20 65 72 72 6f 72 2d 37 2e . test error-7.
5530: 31 20 7b 42 75 67 20 31 33 39 37 38 34 33 7d 20 1 {Bug 1397843}
5540: 2d 62 6f 64 79 20 7b 0a 20 20 20 20 20 76 61 72 -body {. var
5550: 69 61 62 6c 65 20 63 6d 64 73 0a 49 6e 64 65 78 iable cmds.Index
5560: 3a 20 74 65 73 74 73 2f 65 78 65 63 75 74 65 2e : tests/execute.
5570: 74 65 73 74 0a 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d test.===========
5580: 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d ================
5590: 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d ================
55a0: 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d ================
55b0: 3d 3d 3d 3d 3d 3d 3d 3d 0a 52 43 53 20 66 69 6c ========.RCS fil
55c0: 65 3a 20 2f 63 76 73 72 6f 6f 74 2f 74 63 6c 2f e: /cvsroot/tcl/
55d0: 74 63 6c 2f 74 65 73 74 73 2f 65 78 65 63 75 74 tcl/tests/execut
55e0: 65 2e 74 65 73 74 2c 76 0a 72 65 74 72 69 65 76 e.test,v.retriev
55f0: 69 6e 67 20 72 65 76 69 73 69 6f 6e 20 31 2e 33 ing revision 1.3
5600: 34 0a 64 69 66 66 20 2d 75 20 2d 72 31 2e 33 34 4.diff -u -r1.34
5610: 20 65 78 65 63 75 74 65 2e 74 65 73 74 0a 2d 2d execute.test.--
5620: 2d 20 74 65 73 74 73 2f 65 78 65 63 75 74 65 2e - tests/execute.
5630: 74 65 73 74 09 31 36 20 4e 6f 76 20 32 30 30 39 test.16 Nov 2009
5640: 20 31 38 3a 30 30 3a 31 31 20 2d 30 30 30 30 09 18:00:11 -0000.
5650: 31 2e 33 34 0a 2b 2b 2b 20 74 65 73 74 73 2f 65 1.34.+++ tests/e
5660: 78 65 63 75 74 65 2e 74 65 73 74 09 33 31 20 4d xecute.test.31 M
5670: 61 72 20 32 30 31 30 20 31 35 3a 34 36 3a 30 34 ar 2010 15:46:04
5680: 20 2d 30 30 30 30 0a 40 40 20 2d 39 35 36 2c 31 -0000.@@ -956,1
5690: 31 20 2b 39 35 36 2c 31 31 20 40 40 0a 20 20 20 1 +956,11 @@.
56a0: 20 20 64 65 6d 6f 0a 20 7d 20 2d 63 6c 65 61 6e demo. } -clean
56b0: 75 70 20 7b 0a 20 20 20 20 20 72 65 6e 61 6d 65 up {. rename
56c0: 20 64 65 6d 6f 20 7b 7d 0a 2d 7d 20 2d 72 65 73 demo {}.-} -res
56d0: 75 6c 74 20 7b 2d 63 6f 64 65 20 31 20 2d 6c 65 ult {-code 1 -le
56e0: 76 65 6c 20 30 20 2d 65 72 72 6f 72 63 6f 64 65 vel 0 -errorcode
56f0: 20 4e 4f 4e 45 20 2d 65 72 72 6f 72 69 6e 66 6f NONE -errorinfo
5700: 20 7b 46 4f 4f 0a 2b 7d 20 2d 6d 61 74 63 68 20 {FOO.+} -match
5710: 67 6c 6f 62 20 2d 72 65 73 75 6c 74 20 7b 2d 63 glob -result {-c
5720: 6f 64 65 20 31 20 2d 6c 65 76 65 6c 20 30 20 2d ode 1 -level 0 -
5730: 65 72 72 6f 72 73 74 61 63 6b 20 2a 20 2d 65 72 errorstack * -er
5740: 72 6f 72 63 6f 64 65 20 4e 4f 4e 45 20 2d 65 72 rorcode NONE -er
5750: 72 6f 72 69 6e 66 6f 20 7b 46 4f 4f 0a 20 20 20 rorinfo {FOO.
5760: 20 20 77 68 69 6c 65 20 65 78 65 63 75 74 69 6e while executin
5770: 67 0a 20 22 65 72 72 6f 72 20 46 4f 4f 22 0a 20 g. "error FOO".
5780: 20 20 20 20 69 6e 76 6f 6b 65 64 20 66 72 6f 6d invoked from
5790: 20 77 69 74 68 69 6e 0a 2d 22 63 61 74 63 68 20 within.-"catch
57a0: 5b 6c 69 73 74 20 65 72 72 6f 72 20 46 4f 4f 5d [list error FOO]
57b0: 20 6d 20 6f 22 7d 20 2d 65 72 72 6f 72 6c 69 6e m o"} -errorlin
57c0: 65 20 32 7d 0a 2b 22 63 61 74 63 68 20 5c 5b 6c e 2}.+"catch \[l
57d0: 69 73 74 20 65 72 72 6f 72 20 46 4f 4f 5c 5d 20 ist error FOO\]
57e0: 6d 20 6f 22 7d 20 2d 65 72 72 6f 72 6c 69 6e 65 m o"} -errorline
57f0: 20 32 7d 0a 20 0a 20 74 65 73 74 20 65 78 65 63 2}. . test exec
5800: 75 74 65 2d 39 2e 31 20 7b 49 6e 74 65 72 70 20 ute-9.1 {Interp
5810: 72 65 73 75 6c 74 20 72 65 73 65 74 74 69 6e 67 result resetting
5820: 20 5b 42 75 67 20 31 35 32 32 38 30 33 5d 7d 20 [Bug 1522803]}
5830: 7b 0a 20 20 20 20 20 73 65 74 20 63 20 30 0a 49 {. set c 0.I
5840: 6e 64 65 78 3a 20 74 65 73 74 73 2f 69 6e 66 6f ndex: tests/info
5850: 2e 74 65 73 74 0a 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d .test.==========
5860: 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d ================
5870: 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d ================
5880: 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d ================
5890: 3d 3d 3d 3d 3d 3d 3d 3d 3d 0a 52 43 53 20 66 69 =========.RCS fi
58a0: 6c 65 3a 20 2f 63 76 73 72 6f 6f 74 2f 74 63 6c le: /cvsroot/tcl
58b0: 2f 74 63 6c 2f 74 65 73 74 73 2f 69 6e 66 6f 2e /tcl/tests/info.
58c0: 74 65 73 74 2c 76 0a 72 65 74 72 69 65 76 69 6e test,v.retrievin
58d0: 67 20 72 65 76 69 73 69 6f 6e 20 31 2e 37 35 0a g revision 1.75.
58e0: 64 69 66 66 20 2d 75 20 2d 72 31 2e 37 35 20 69 diff -u -r1.75 i
58f0: 6e 66 6f 2e 74 65 73 74 0a 2d 2d 2d 20 74 65 73 nfo.test.--- tes
5900: 74 73 2f 69 6e 66 6f 2e 74 65 73 74 09 31 30 20 ts/info.test.10
5910: 46 65 62 20 32 30 31 30 20 32 33 3a 32 34 3a 32 Feb 2010 23:24:2
5920: 35 20 2d 30 30 30 30 09 31 2e 37 35 0a 2b 2b 2b 5 -0000.1.75.+++
5930: 20 74 65 73 74 73 2f 69 6e 66 6f 2e 74 65 73 74 tests/info.test
5940: 09 33 31 20 4d 61 72 20 32 30 31 30 20 31 35 3a .31 Mar 2010 15:
5950: 34 36 3a 30 34 20 2d 30 30 30 30 0a 40 40 20 2d 46:04 -0000.@@ -
5960: 36 37 36 2c 31 36 20 2b 36 37 36 2c 31 36 20 40 676,16 +676,16 @
5970: 40 0a 20 7d 20 2d 72 65 73 75 6c 74 20 7b 77 72 @. } -result {wr
5980: 6f 6e 67 20 23 20 61 72 67 73 3a 20 73 68 6f 75 ong # args: shou
5990: 6c 64 20 62 65 20 22 69 6e 66 6f 20 73 75 62 63 ld be "info subc
59a0: 6f 6d 6d 61 6e 64 20 3f 61 72 67 20 2e 2e 2e 3f ommand ?arg ...?
59b0: 22 7d 0a 20 74 65 73 74 20 69 6e 66 6f 2d 32 31 "}. test info-21
59c0: 2e 32 20 7b 6d 69 73 63 65 6c 6c 61 6e 65 6f 75 .2 {miscellaneou
59d0: 73 20 65 72 72 6f 72 20 63 6f 6e 64 69 74 69 6f s error conditio
59e0: 6e 73 7d 20 2d 72 65 74 75 72 6e 43 6f 64 65 73 ns} -returnCodes
59f0: 20 65 72 72 6f 72 20 2d 62 6f 64 79 20 7b 0a 20 error -body {.
5a00: 20 20 20 20 69 6e 66 6f 20 67 6f 72 70 0a 2d 7d info gorp.-}
5a10: 20 2d 72 65 73 75 6c 74 20 7b 75 6e 6b 6e 6f 77 -result {unknow
5a20: 6e 20 6f 72 20 61 6d 62 69 67 75 6f 75 73 20 73 n or ambiguous s
5a30: 75 62 63 6f 6d 6d 61 6e 64 20 22 67 6f 72 70 22 ubcommand "gorp"
5a40: 3a 20 6d 75 73 74 20 62 65 20 61 72 67 73 2c 20 : must be args,
5a50: 62 6f 64 79 2c 20 63 6c 61 73 73 2c 20 63 6d 64 body, class, cmd
5a60: 63 6f 75 6e 74 2c 20 63 6f 6d 6d 61 6e 64 73 2c count, commands,
5a70: 20 63 6f 6d 70 6c 65 74 65 2c 20 63 6f 72 6f 75 complete, corou
5a80: 74 69 6e 65 2c 20 64 65 66 61 75 6c 74 2c 20 65 tine, default, e
5a90: 78 69 73 74 73 2c 20 66 72 61 6d 65 2c 20 66 75 xists, frame, fu
5aa0: 6e 63 74 69 6f 6e 73 2c 20 67 6c 6f 62 61 6c 73 nctions, globals
5ab0: 2c 20 68 6f 73 74 6e 61 6d 65 2c 20 6c 65 76 65 , hostname, leve
5ac0: 6c 2c 20 6c 69 62 72 61 72 79 2c 20 6c 6f 61 64 l, library, load
5ad0: 65 64 2c 20 6c 6f 63 61 6c 73 2c 20 6e 61 6d 65 ed, locals, name
5ae0: 6f 66 65 78 65 63 75 74 61 62 6c 65 2c 20 6f 62 ofexecutable, ob
5af0: 6a 65 63 74 2c 20 70 61 74 63 68 6c 65 76 65 6c ject, patchlevel
5b00: 2c 20 70 72 6f 63 73 2c 20 73 63 72 69 70 74 2c , procs, script,
5b10: 20 73 68 61 72 65 64 6c 69 62 65 78 74 65 6e 73 sharedlibextens
5b20: 69 6f 6e 2c 20 74 63 6c 76 65 72 73 69 6f 6e 2c ion, tclversion,
5b30: 20 6f 72 20 76 61 72 73 7d 0a 2b 7d 20 2d 72 65 or vars}.+} -re
5b40: 73 75 6c 74 20 7b 75 6e 6b 6e 6f 77 6e 20 6f 72 sult {unknown or
5b50: 20 61 6d 62 69 67 75 6f 75 73 20 73 75 62 63 6f ambiguous subco
5b60: 6d 6d 61 6e 64 20 22 67 6f 72 70 22 3a 20 6d 75 mmand "gorp": mu
5b70: 73 74 20 62 65 20 61 72 67 73 2c 20 62 6f 64 79 st be args, body
5b80: 2c 20 63 6c 61 73 73 2c 20 63 6d 64 63 6f 75 6e , class, cmdcoun
5b90: 74 2c 20 63 6f 6d 6d 61 6e 64 73 2c 20 63 6f 6d t, commands, com
5ba0: 70 6c 65 74 65 2c 20 63 6f 72 6f 75 74 69 6e 65 plete, coroutine
5bb0: 2c 20 64 65 66 61 75 6c 74 2c 20 65 72 72 6f 72 , default, error
5bc0: 73 74 61 63 6b 2c 20 65 78 69 73 74 73 2c 20 66 stack, exists, f
5bd0: 72 61 6d 65 2c 20 66 75 6e 63 74 69 6f 6e 73 2c rame, functions,
5be0: 20 67 6c 6f 62 61 6c 73 2c 20 68 6f 73 74 6e 61 globals, hostna
5bf0: 6d 65 2c 20 6c 65 76 65 6c 2c 20 6c 69 62 72 61 me, level, libra
5c00: 72 79 2c 20 6c 6f 61 64 65 64 2c 20 6c 6f 63 61 ry, loaded, loca
5c10: 6c 73 2c 20 6e 61 6d 65 6f 66 65 78 65 63 75 74 ls, nameofexecut
5c20: 61 62 6c 65 2c 20 6f 62 6a 65 63 74 2c 20 70 61 able, object, pa
5c30: 74 63 68 6c 65 76 65 6c 2c 20 70 72 6f 63 73 2c tchlevel, procs,
5c40: 20 73 63 72 69 70 74 2c 20 73 68 61 72 65 64 6c script, sharedl
5c50: 69 62 65 78 74 65 6e 73 69 6f 6e 2c 20 74 63 6c ibextension, tcl
5c60: 76 65 72 73 69 6f 6e 2c 20 6f 72 20 76 61 72 73 version, or vars
5c70: 7d 0a 20 74 65 73 74 20 69 6e 66 6f 2d 32 31 2e }. test info-21.
5c80: 33 20 7b 6d 69 73 63 65 6c 6c 61 6e 65 6f 75 73 3 {miscellaneous
5c90: 20 65 72 72 6f 72 20 63 6f 6e 64 69 74 69 6f 6e error condition
5ca0: 73 7d 20 2d 72 65 74 75 72 6e 43 6f 64 65 73 20 s} -returnCodes
5cb0: 65 72 72 6f 72 20 2d 62 6f 64 79 20 7b 0a 20 20 error -body {.
5cc0: 20 20 20 69 6e 66 6f 20 63 0a 2d 7d 20 2d 72 65 info c.-} -re
5cd0: 73 75 6c 74 20 7b 75 6e 6b 6e 6f 77 6e 20 6f 72 sult {unknown or
5ce0: 20 61 6d 62 69 67 75 6f 75 73 20 73 75 62 63 6f ambiguous subco
5cf0: 6d 6d 61 6e 64 20 22 63 22 3a 20 6d 75 73 74 20 mmand "c": must
5d00: 62 65 20 61 72 67 73 2c 20 62 6f 64 79 2c 20 63 be args, body, c
5d10: 6c 61 73 73 2c 20 63 6d 64 63 6f 75 6e 74 2c 20 lass, cmdcount,
5d20: 63 6f 6d 6d 61 6e 64 73 2c 20 63 6f 6d 70 6c 65 commands, comple
5d30: 74 65 2c 20 63 6f 72 6f 75 74 69 6e 65 2c 20 64 te, coroutine, d
5d40: 65 66 61 75 6c 74 2c 20 65 78 69 73 74 73 2c 20 efault, exists,
5d50: 66 72 61 6d 65 2c 20 66 75 6e 63 74 69 6f 6e 73 frame, functions
5d60: 2c 20 67 6c 6f 62 61 6c 73 2c 20 68 6f 73 74 6e , globals, hostn
5d70: 61 6d 65 2c 20 6c 65 76 65 6c 2c 20 6c 69 62 72 ame, level, libr
5d80: 61 72 79 2c 20 6c 6f 61 64 65 64 2c 20 6c 6f 63 ary, loaded, loc
5d90: 61 6c 73 2c 20 6e 61 6d 65 6f 66 65 78 65 63 75 als, nameofexecu
5da0: 74 61 62 6c 65 2c 20 6f 62 6a 65 63 74 2c 20 70 table, object, p
5db0: 61 74 63 68 6c 65 76 65 6c 2c 20 70 72 6f 63 73 atchlevel, procs
5dc0: 2c 20 73 63 72 69 70 74 2c 20 73 68 61 72 65 64 , script, shared
5dd0: 6c 69 62 65 78 74 65 6e 73 69 6f 6e 2c 20 74 63 libextension, tc
5de0: 6c 76 65 72 73 69 6f 6e 2c 20 6f 72 20 76 61 72 lversion, or var
5df0: 73 7d 0a 2b 7d 20 2d 72 65 73 75 6c 74 20 7b 75 s}.+} -result {u
5e00: 6e 6b 6e 6f 77 6e 20 6f 72 20 61 6d 62 69 67 75 nknown or ambigu
5e10: 6f 75 73 20 73 75 62 63 6f 6d 6d 61 6e 64 20 22 ous subcommand "
5e20: 63 22 3a 20 6d 75 73 74 20 62 65 20 61 72 67 73 c": must be args
5e30: 2c 20 62 6f 64 79 2c 20 63 6c 61 73 73 2c 20 63 , body, class, c
5e40: 6d 64 63 6f 75 6e 74 2c 20 63 6f 6d 6d 61 6e 64 mdcount, command
5e50: 73 2c 20 63 6f 6d 70 6c 65 74 65 2c 20 63 6f 72 s, complete, cor
5e60: 6f 75 74 69 6e 65 2c 20 64 65 66 61 75 6c 74 2c outine, default,
5e70: 20 65 72 72 6f 72 73 74 61 63 6b 2c 20 65 78 69 errorstack, exi
5e80: 73 74 73 2c 20 66 72 61 6d 65 2c 20 66 75 6e 63 sts, frame, func
5e90: 74 69 6f 6e 73 2c 20 67 6c 6f 62 61 6c 73 2c 20 tions, globals,
5ea0: 68 6f 73 74 6e 61 6d 65 2c 20 6c 65 76 65 6c 2c hostname, level,
5eb0: 20 6c 69 62 72 61 72 79 2c 20 6c 6f 61 64 65 64 library, loaded
5ec0: 2c 20 6c 6f 63 61 6c 73 2c 20 6e 61 6d 65 6f 66 , locals, nameof
5ed0: 65 78 65 63 75 74 61 62 6c 65 2c 20 6f 62 6a 65 executable, obje
5ee0: 63 74 2c 20 70 61 74 63 68 6c 65 76 65 6c 2c 20 ct, patchlevel,
5ef0: 70 72 6f 63 73 2c 20 73 63 72 69 70 74 2c 20 73 procs, script, s
5f00: 68 61 72 65 64 6c 69 62 65 78 74 65 6e 73 69 6f haredlibextensio
5f10: 6e 2c 20 74 63 6c 76 65 72 73 69 6f 6e 2c 20 6f n, tclversion, o
5f20: 72 20 76 61 72 73 7d 0a 20 74 65 73 74 20 69 6e r vars}. test in
5f30: 66 6f 2d 32 31 2e 34 20 7b 6d 69 73 63 65 6c 6c fo-21.4 {miscell
5f40: 61 6e 65 6f 75 73 20 65 72 72 6f 72 20 63 6f 6e aneous error con
5f50: 64 69 74 69 6f 6e 73 7d 20 2d 72 65 74 75 72 6e ditions} -return
5f60: 43 6f 64 65 73 20 65 72 72 6f 72 20 2d 62 6f 64 Codes error -bod
5f70: 79 20 7b 0a 20 20 20 20 20 69 6e 66 6f 20 6c 0a y {. info l.
5f80: 2d 7d 20 2d 72 65 73 75 6c 74 20 7b 75 6e 6b 6e -} -result {unkn
5f90: 6f 77 6e 20 6f 72 20 61 6d 62 69 67 75 6f 75 73 own or ambiguous
5fa0: 20 73 75 62 63 6f 6d 6d 61 6e 64 20 22 6c 22 3a subcommand "l":
5fb0: 20 6d 75 73 74 20 62 65 20 61 72 67 73 2c 20 62 must be args, b
5fc0: 6f 64 79 2c 20 63 6c 61 73 73 2c 20 63 6d 64 63 ody, class, cmdc
5fd0: 6f 75 6e 74 2c 20 63 6f 6d 6d 61 6e 64 73 2c 20 ount, commands,
5fe0: 63 6f 6d 70 6c 65 74 65 2c 20 63 6f 72 6f 75 74 complete, corout
5ff0: 69 6e 65 2c 20 64 65 66 61 75 6c 74 2c 20 65 78 ine, default, ex
6000: 69 73 74 73 2c 20 66 72 61 6d 65 2c 20 66 75 6e ists, frame, fun
6010: 63 74 69 6f 6e 73 2c 20 67 6c 6f 62 61 6c 73 2c ctions, globals,
6020: 20 68 6f 73 74 6e 61 6d 65 2c 20 6c 65 76 65 6c hostname, level
6030: 2c 20 6c 69 62 72 61 72 79 2c 20 6c 6f 61 64 65 , library, loade
6040: 64 2c 20 6c 6f 63 61 6c 73 2c 20 6e 61 6d 65 6f d, locals, nameo
6050: 66 65 78 65 63 75 74 61 62 6c 65 2c 20 6f 62 6a fexecutable, obj
6060: 65 63 74 2c 20 70 61 74 63 68 6c 65 76 65 6c 2c ect, patchlevel,
6070: 20 70 72 6f 63 73 2c 20 73 63 72 69 70 74 2c 20 procs, script,
6080: 73 68 61 72 65 64 6c 69 62 65 78 74 65 6e 73 69 sharedlibextensi
6090: 6f 6e 2c 20 74 63 6c 76 65 72 73 69 6f 6e 2c 20 on, tclversion,
60a0: 6f 72 20 76 61 72 73 7d 0a 2b 7d 20 2d 72 65 73 or vars}.+} -res
60b0: 75 6c 74 20 7b 75 6e 6b 6e 6f 77 6e 20 6f 72 20 ult {unknown or
60c0: 61 6d 62 69 67 75 6f 75 73 20 73 75 62 63 6f 6d ambiguous subcom
60d0: 6d 61 6e 64 20 22 6c 22 3a 20 6d 75 73 74 20 62 mand "l": must b
60e0: 65 20 61 72 67 73 2c 20 62 6f 64 79 2c 20 63 6c e args, body, cl
60f0: 61 73 73 2c 20 63 6d 64 63 6f 75 6e 74 2c 20 63 ass, cmdcount, c
6100: 6f 6d 6d 61 6e 64 73 2c 20 63 6f 6d 70 6c 65 74 ommands, complet
6110: 65 2c 20 63 6f 72 6f 75 74 69 6e 65 2c 20 64 65 e, coroutine, de
6120: 66 61 75 6c 74 2c 20 65 72 72 6f 72 73 74 61 63 fault, errorstac
6130: 6b 2c 20 65 78 69 73 74 73 2c 20 66 72 61 6d 65 k, exists, frame
6140: 2c 20 66 75 6e 63 74 69 6f 6e 73 2c 20 67 6c 6f , functions, glo
6150: 62 61 6c 73 2c 20 68 6f 73 74 6e 61 6d 65 2c 20 bals, hostname,
6160: 6c 65 76 65 6c 2c 20 6c 69 62 72 61 72 79 2c 20 level, library,
6170: 6c 6f 61 64 65 64 2c 20 6c 6f 63 61 6c 73 2c 20 loaded, locals,
6180: 6e 61 6d 65 6f 66 65 78 65 63 75 74 61 62 6c 65 nameofexecutable
6190: 2c 20 6f 62 6a 65 63 74 2c 20 70 61 74 63 68 6c , object, patchl
61a0: 65 76 65 6c 2c 20 70 72 6f 63 73 2c 20 73 63 72 evel, procs, scr
61b0: 69 70 74 2c 20 73 68 61 72 65 64 6c 69 62 65 78 ipt, sharedlibex
61c0: 74 65 6e 73 69 6f 6e 2c 20 74 63 6c 76 65 72 73 tension, tclvers
61d0: 69 6f 6e 2c 20 6f 72 20 76 61 72 73 7d 0a 20 74 ion, or vars}. t
61e0: 65 73 74 20 69 6e 66 6f 2d 32 31 2e 35 20 7b 6d est info-21.5 {m
61f0: 69 73 63 65 6c 6c 61 6e 65 6f 75 73 20 65 72 72 iscellaneous err
6200: 6f 72 20 63 6f 6e 64 69 74 69 6f 6e 73 7d 20 2d or conditions} -
6210: 72 65 74 75 72 6e 43 6f 64 65 73 20 65 72 72 6f returnCodes erro
6220: 72 20 2d 62 6f 64 79 20 7b 0a 20 20 20 20 20 69 r -body {. i
6230: 6e 66 6f 20 73 0a 2d 7d 20 2d 72 65 73 75 6c 74 nfo s.-} -result
6240: 20 7b 75 6e 6b 6e 6f 77 6e 20 6f 72 20 61 6d 62 {unknown or amb
6250: 69 67 75 6f 75 73 20 73 75 62 63 6f 6d 6d 61 6e iguous subcomman
6260: 64 20 22 73 22 3a 20 6d 75 73 74 20 62 65 20 61 d "s": must be a
6270: 72 67 73 2c 20 62 6f 64 79 2c 20 63 6c 61 73 73 rgs, body, class
6280: 2c 20 63 6d 64 63 6f 75 6e 74 2c 20 63 6f 6d 6d , cmdcount, comm
6290: 61 6e 64 73 2c 20 63 6f 6d 70 6c 65 74 65 2c 20 ands, complete,
62a0: 63 6f 72 6f 75 74 69 6e 65 2c 20 64 65 66 61 75 coroutine, defau
62b0: 6c 74 2c 20 65 78 69 73 74 73 2c 20 66 72 61 6d lt, exists, fram
62c0: 65 2c 20 66 75 6e 63 74 69 6f 6e 73 2c 20 67 6c e, functions, gl
62d0: 6f 62 61 6c 73 2c 20 68 6f 73 74 6e 61 6d 65 2c obals, hostname,
62e0: 20 6c 65 76 65 6c 2c 20 6c 69 62 72 61 72 79 2c level, library,
62f0: 20 6c 6f 61 64 65 64 2c 20 6c 6f 63 61 6c 73 2c loaded, locals,
6300: 20 6e 61 6d 65 6f 66 65 78 65 63 75 74 61 62 6c nameofexecutabl
6310: 65 2c 20 6f 62 6a 65 63 74 2c 20 70 61 74 63 68 e, object, patch
6320: 6c 65 76 65 6c 2c 20 70 72 6f 63 73 2c 20 73 63 level, procs, sc
6330: 72 69 70 74 2c 20 73 68 61 72 65 64 6c 69 62 65 ript, sharedlibe
6340: 78 74 65 6e 73 69 6f 6e 2c 20 74 63 6c 76 65 72 xtension, tclver
6350: 73 69 6f 6e 2c 20 6f 72 20 76 61 72 73 7d 0a 2b sion, or vars}.+
6360: 7d 20 2d 72 65 73 75 6c 74 20 7b 75 6e 6b 6e 6f } -result {unkno
6370: 77 6e 20 6f 72 20 61 6d 62 69 67 75 6f 75 73 20 wn or ambiguous
6380: 73 75 62 63 6f 6d 6d 61 6e 64 20 22 73 22 3a 20 subcommand "s":
6390: 6d 75 73 74 20 62 65 20 61 72 67 73 2c 20 62 6f must be args, bo
63a0: 64 79 2c 20 63 6c 61 73 73 2c 20 63 6d 64 63 6f dy, class, cmdco
63b0: 75 6e 74 2c 20 63 6f 6d 6d 61 6e 64 73 2c 20 63 unt, commands, c
63c0: 6f 6d 70 6c 65 74 65 2c 20 63 6f 72 6f 75 74 69 omplete, corouti
63d0: 6e 65 2c 20 64 65 66 61 75 6c 74 2c 20 65 72 72 ne, default, err
63e0: 6f 72 73 74 61 63 6b 2c 20 65 78 69 73 74 73 2c orstack, exists,
63f0: 20 66 72 61 6d 65 2c 20 66 75 6e 63 74 69 6f 6e frame, function
6400: 73 2c 20 67 6c 6f 62 61 6c 73 2c 20 68 6f 73 74 s, globals, host
6410: 6e 61 6d 65 2c 20 6c 65 76 65 6c 2c 20 6c 69 62 name, level, lib
6420: 72 61 72 79 2c 20 6c 6f 61 64 65 64 2c 20 6c 6f rary, loaded, lo
6430: 63 61 6c 73 2c 20 6e 61 6d 65 6f 66 65 78 65 63 cals, nameofexec
6440: 75 74 61 62 6c 65 2c 20 6f 62 6a 65 63 74 2c 20 utable, object,
6450: 70 61 74 63 68 6c 65 76 65 6c 2c 20 70 72 6f 63 patchlevel, proc
6460: 73 2c 20 73 63 72 69 70 74 2c 20 73 68 61 72 65 s, script, share
6470: 64 6c 69 62 65 78 74 65 6e 73 69 6f 6e 2c 20 74 dlibextension, t
6480: 63 6c 76 65 72 73 69 6f 6e 2c 20 6f 72 20 76 61 clversion, or va
6490: 72 73 7d 0a 20 0a 20 23 23 0a 20 23 20 23 23 23 rs}. . ##. # ###
64a0: 20 23 23 23 20 23 23 23 20 23 23 23 23 23 23 23 ### ### #######
64b0: 23 23 20 23 23 23 23 23 23 23 23 23 20 23 23 23 ## ######### ###
64c0: 23 23 23 23 23 23 0a 49 6e 64 65 78 3a 20 74 65 ######.Index: te
64d0: 73 74 73 2f 69 6e 69 74 2e 74 65 73 74 0a 3d 3d sts/init.test.==
64e0: 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d ================
64f0: 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d ================
6500: 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d ================
6510: 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d ================
6520: 3d 0a 52 43 53 20 66 69 6c 65 3a 20 2f 63 76 73 =.RCS file: /cvs
6530: 72 6f 6f 74 2f 74 63 6c 2f 74 63 6c 2f 74 65 73 root/tcl/tcl/tes
6540: 74 73 2f 69 6e 69 74 2e 74 65 73 74 2c 76 0a 72 ts/init.test,v.r
6550: 65 74 72 69 65 76 69 6e 67 20 72 65 76 69 73 69 etrieving revisi
6560: 6f 6e 20 31 2e 32 31 0a 64 69 66 66 20 2d 75 20 on 1.21.diff -u
6570: 2d 72 31 2e 32 31 20 69 6e 69 74 2e 74 65 73 74 -r1.21 init.test
6580: 0a 2d 2d 2d 20 74 65 73 74 73 2f 69 6e 69 74 2e .--- tests/init.
6590: 74 65 73 74 09 31 36 20 4e 6f 76 20 32 30 30 39 test.16 Nov 2009
65a0: 20 31 38 3a 30 30 3a 31 31 20 2d 30 30 30 30 09 18:00:11 -0000.
65b0: 31 2e 32 31 0a 2b 2b 2b 20 74 65 73 74 73 2f 69 1.21.+++ tests/i
65c0: 6e 69 74 2e 74 65 73 74 09 33 31 20 4d 61 72 20 nit.test.31 Mar
65d0: 32 30 31 30 20 31 35 3a 34 36 3a 30 34 20 2d 30 2010 15:46:04 -0
65e0: 30 30 30 0a 40 40 20 2d 31 38 31 2c 37 20 2b 31 000.@@ -181,7 +1
65f0: 38 31 2c 37 20 40 40 0a 20 20 20 20 20 6c 69 73 81,7 @@. lis
6600: 74 20 24 63 6f 64 65 20 24 66 6f 6f 20 24 62 61 t $code $foo $ba
6610: 72 20 24 63 6f 64 65 32 20 24 66 6f 6f 32 20 24 r $code2 $foo2 $
6620: 62 61 72 32 0a 20 7d 20 2d 63 6c 65 61 6e 75 70 bar2. } -cleanup
6630: 20 7b 0a 20 20 20 20 20 75 6e 73 65 74 20 3a 3a {. unset ::
6640: 61 75 74 6f 5f 69 6e 64 65 78 28 3a 3a 78 78 78 auto_index(::xxx
6650: 29 0a 2d 7d 20 2d 72 65 73 75 6c 74 20 7b 32 20 ).-} -result {2
6660: 78 78 78 20 7b 2d 65 72 72 6f 72 63 6f 64 65 20 xxx {-errorcode
6670: 4e 4f 4e 45 20 2d 63 6f 64 65 20 31 20 2d 6c 65 NONE -code 1 -le
6680: 76 65 6c 20 31 7d 20 32 20 78 78 78 20 7b 2d 63 vel 1} 2 xxx {-c
6690: 6f 64 65 20 31 20 2d 6c 65 76 65 6c 20 31 20 2d ode 1 -level 1 -
66a0: 65 72 72 6f 72 63 6f 64 65 20 4e 4f 4e 45 7d 7d errorcode NONE}}
66b0: 0a 2b 7d 20 2d 6d 61 74 63 68 20 67 6c 6f 62 20 .+} -match glob
66c0: 2d 72 65 73 75 6c 74 20 7b 32 20 78 78 78 20 7b -result {2 xxx {
66d0: 2d 65 72 72 6f 72 63 6f 64 65 20 4e 4f 4e 45 20 -errorcode NONE
66e0: 2d 63 6f 64 65 20 31 20 2d 6c 65 76 65 6c 20 31 -code 1 -level 1
66f0: 7d 20 32 20 78 78 78 20 7b 2d 63 6f 64 65 20 31 } 2 xxx {-code 1
6700: 20 2d 6c 65 76 65 6c 20 31 20 2d 65 72 72 6f 72 -level 1 -error
6710: 63 6f 64 65 20 4e 4f 4e 45 7d 7d 0a 20 0c 0a 20 code NONE}}. ..
6720: 63 6c 65 61 6e 75 70 54 65 73 74 73 0a 20 7d 09 cleanupTests. }.
6730: 3b 23 20 20 45 6e 64 20 6f 66 20 5b 69 6e 74 65 ;# End of [inte
6740: 72 70 20 65 76 61 6c 20 24 74 65 73 74 49 6e 74 rp eval $testInt
6750: 65 72 70 5d 0a 49 6e 64 65 78 3a 20 74 65 73 74 erp].Index: test
6760: 73 2f 72 65 73 75 6c 74 2e 74 65 73 74 0a 3d 3d s/result.test.==
6770: 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d ================
6780: 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d ================
6790: 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d ================
67a0: 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d ================
67b0: 3d 0a 52 43 53 20 66 69 6c 65 3a 20 2f 63 76 73 =.RCS file: /cvs
67c0: 72 6f 6f 74 2f 74 63 6c 2f 74 63 6c 2f 74 65 73 root/tcl/tcl/tes
67d0: 74 73 2f 72 65 73 75 6c 74 2e 74 65 73 74 2c 76 ts/result.test,v
67e0: 0a 72 65 74 72 69 65 76 69 6e 67 20 72 65 76 69 .retrieving revi
67f0: 73 69 6f 6e 20 31 2e 31 36 0a 64 69 66 66 20 2d sion 1.16.diff -
6800: 75 20 2d 72 31 2e 31 36 20 72 65 73 75 6c 74 2e u -r1.16 result.
6810: 74 65 73 74 0a 2d 2d 2d 20 74 65 73 74 73 2f 72 test.--- tests/r
6820: 65 73 75 6c 74 2e 74 65 73 74 09 32 34 20 4d 61 esult.test.24 Ma
6830: 72 20 32 30 31 30 20 31 35 3a 33 33 3a 31 34 20 r 2010 15:33:14
6840: 2d 30 30 30 30 09 31 2e 31 36 0a 2b 2b 2b 20 74 -0000.1.16.+++ t
6850: 65 73 74 73 2f 72 65 73 75 6c 74 2e 74 65 73 74 ests/result.test
6860: 09 33 31 20 4d 61 72 20 32 30 31 30 20 31 35 3a .31 Mar 2010 15:
6870: 34 36 3a 30 34 20 2d 30 30 30 30 0a 40 40 20 2d 46:04 -0000.@@ -
6880: 31 33 35 2c 36 20 2b 31 33 35 2c 31 34 20 40 40 135,6 +135,14 @@
6890: 0a 20 20 20 20 20 20 63 61 74 63 68 20 7b 72 65 . catch {re
68a0: 74 75 72 6e 20 2d 63 6f 64 65 20 65 72 72 6f 72 turn -code error
68b0: 20 2d 65 72 72 6f 72 63 6f 64 65 20 7b 7b 7d 61 -errorcode {{}a
68c0: 7d 20 65 65 6b 7d 20 6d 0a 20 20 20 20 20 20 73 } eek} m. s
68d0: 65 74 20 6d 0a 20 7d 20 7b 62 61 64 20 2d 65 72 et m. } {bad -er
68e0: 72 6f 72 63 6f 64 65 20 76 61 6c 75 65 3a 20 65 rorcode value: e
68f0: 78 70 65 63 74 65 64 20 61 20 6c 69 73 74 20 62 xpected a list b
6900: 75 74 20 67 6f 74 20 22 7b 7d 61 22 7d 0a 2b 74 ut got "{}a"}.+t
6910: 65 73 74 20 72 65 73 75 6c 74 2d 36 2e 34 20 7b est result-6.4 {
6920: 6e 6f 6e 2d 6c 69 73 74 20 2d 65 72 72 6f 72 73 non-list -errors
6930: 74 61 63 6b 7d 20 7b 0a 2b 20 20 20 20 20 63 61 tack} {.+ ca
6940: 74 63 68 20 7b 72 65 74 75 72 6e 20 2d 63 6f 64 tch {return -cod
6950: 65 20 65 72 72 6f 72 20 2d 65 72 72 6f 72 73 74 e error -errorst
6960: 61 63 6b 20 7b 7b 7d 61 7d 20 65 65 6b 7d 20 6d ack {{}a} eek} m
6970: 20 6f 0a 2b 20 20 20 20 20 6c 69 73 74 20 24 6d o.+ list $m
6980: 20 5b 64 69 63 74 20 67 65 74 20 24 6f 20 2d 65 [dict get $o -e
6990: 72 72 6f 72 63 6f 64 65 5d 20 5b 64 69 63 74 20 rrorcode] [dict
69a0: 67 65 74 20 24 6f 20 2d 65 72 72 6f 72 73 74 61 get $o -errorsta
69b0: 63 6b 5d 0a 2b 7d 20 7b 7b 62 61 64 20 2d 65 72 ck].+} {{bad -er
69c0: 72 6f 72 73 74 61 63 6b 20 76 61 6c 75 65 3a 20 rorstack value:
69d0: 65 78 70 65 63 74 65 64 20 61 20 6c 69 73 74 20 expected a list
69e0: 62 75 74 20 67 6f 74 20 22 7b 7d 61 22 7d 20 7b but got "{}a"} {
69f0: 54 43 4c 20 52 45 53 55 4c 54 20 4e 4f 4e 4c 49 TCL RESULT NONLI
6a00: 53 54 5f 45 52 52 4f 52 53 54 41 43 4b 7d 20 7b ST_ERRORSTACK} {
6a10: 55 50 20 31 7d 7d 0a 2b 74 65 73 74 20 72 65 73 UP 1}}.+test res
6a20: 75 6c 74 2d 36 2e 35 20 7b 6f 64 64 2d 73 69 7a ult-6.5 {odd-siz
6a30: 65 64 2d 6c 69 73 74 20 2d 65 72 72 6f 72 73 74 ed-list -errorst
6a40: 61 63 6b 7d 20 7b 0a 2b 20 20 20 20 20 63 61 74 ack} {.+ cat
6a50: 63 68 20 7b 72 65 74 75 72 6e 20 2d 63 6f 64 65 ch {return -code
6a60: 20 65 72 72 6f 72 20 2d 65 72 72 6f 72 73 74 61 error -errorsta
6a70: 63 6b 20 61 20 65 65 6b 7d 20 6d 20 6f 0a 2b 20 ck a eek} m o.+
6a80: 20 20 20 20 6c 69 73 74 20 24 6d 20 5b 64 69 63 list $m [dic
6a90: 74 20 67 65 74 20 24 6f 20 2d 65 72 72 6f 72 63 t get $o -errorc
6aa0: 6f 64 65 5d 20 5b 64 69 63 74 20 67 65 74 20 24 ode] [dict get $
6ab0: 6f 20 2d 65 72 72 6f 72 73 74 61 63 6b 5d 0a 2b o -errorstack].+
6ac0: 7d 20 7b 7b 66 6f 72 62 69 64 64 65 6e 20 6f 64 } {{forbidden od
6ad0: 64 2d 73 69 7a 65 64 20 6c 69 73 74 20 66 6f 72 d-sized list for
6ae0: 20 2d 65 72 72 6f 72 73 74 61 63 6b 3a 20 22 61 -errorstack: "a
6af0: 22 7d 20 7b 54 43 4c 20 52 45 53 55 4c 54 20 4f "} {TCL RESULT O
6b00: 44 44 53 49 5a 45 44 4c 49 53 54 5f 45 52 52 4f DDSIZEDLIST_ERRO
6b10: 52 53 54 41 43 4b 7d 20 7b 55 50 20 31 7d 7d 0a RSTACK} {UP 1}}.
6b20: 20 23 20 63 6c 65 61 6e 75 70 0a 20 63 6c 65 61 # cleanup. clea
6b30: 6e 75 70 54 65 73 74 73 0a 20 72 65 74 75 72 6e nupTests. return
6b40: 0a .