Tcl Source Code

Hex Artifact Content
Login

Artifact 05be81633607f6aafa21d3a9ee4958043bd5b445:

Attachment "errorstack15.patch" to ticket [2868499fff] added by ferrieux 2010-03-31 21:16:26.
0000: 49 6e 64 65 78 3a 20 64 6f 63 2f 63 61 74 63 68  Index: doc/catch
0010: 2e 6e 0a 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d  .n.=============
0020: 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d  ================
0030: 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d  ================
0040: 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d  ================
0050: 3d 3d 3d 3d 3d 3d 0a 52 43 53 20 66 69 6c 65 3a  ======.RCS file:
0060: 20 2f 63 76 73 72 6f 6f 74 2f 74 63 6c 2f 74 63   /cvsroot/tcl/tc
0070: 6c 2f 64 6f 63 2f 63 61 74 63 68 2e 6e 2c 76 0a  l/doc/catch.n,v.
0080: 72 65 74 72 69 65 76 69 6e 67 20 72 65 76 69 73  retrieving revis
0090: 69 6f 6e 20 31 2e 32 33 0a 64 69 66 66 20 2d 75  ion 1.23.diff -u
00a0: 20 2d 70 20 2d 75 20 2d 70 20 2d 72 31 2e 32 33   -p -u -p -r1.23
00b0: 20 63 61 74 63 68 2e 6e 0a 2d 2d 2d 20 64 6f 63   catch.n.--- doc
00c0: 2f 63 61 74 63 68 2e 6e 09 31 33 20 4a 61 6e 20  /catch.n.13 Jan 
00d0: 32 30 31 30 20 31 32 3a 30 38 3a 33 30 20 2d 30  2010 12:08:30 -0
00e0: 30 30 30 09 31 2e 32 33 0a 2b 2b 2b 20 64 6f 63  000.1.23.+++ doc
00f0: 2f 63 61 74 63 68 2e 6e 09 33 31 20 4d 61 72 20  /catch.n.31 Mar 
0100: 32 30 31 30 20 31 34 3a 31 34 3a 33 39 20 2d 30  2010 14:14:39 -0
0110: 30 30 30 0a 40 40 20 2d 35 34 2c 32 32 20 2b 35  000.@@ -54,22 +5
0120: 34 2c 33 36 20 40 40 20 4f 6e 6c 79 20 77 68 65  4,36 @@ Only whe
0130: 6e 20 74 68 65 20 72 65 74 75 72 6e 20 63 6f 64  n the return cod
0140: 65 20 69 73 20 5c 66 42 54 43 4c 5f 52 45 54 55  e is \fBTCL_RETU
0150: 0a 20 74 68 65 20 5c 66 42 5c 2d 6c 65 76 65 6c  . the \fB\-level
0160: 5c 66 52 20 61 6e 64 20 5c 66 42 5c 2d 63 6f 64  \fR and \fB\-cod
0170: 65 5c 66 52 20 65 6e 74 72 69 65 73 20 62 65 20  e\fR entries be 
0180: 73 6f 6d 65 74 68 69 6e 67 20 65 6c 73 65 2c 20  something else, 
0190: 61 73 0a 20 66 75 72 74 68 65 72 20 64 65 73 63  as. further desc
01a0: 72 69 62 65 64 20 69 6e 20 74 68 65 20 64 6f 63  ribed in the doc
01b0: 75 6d 65 6e 74 61 74 69 6f 6e 20 66 6f 72 20 74  umentation for t
01c0: 68 65 20 5c 66 42 72 65 74 75 72 6e 5c 66 52 20  he \fBreturn\fR 
01d0: 63 6f 6d 6d 61 6e 64 2e 0a 20 2e 50 50 0a 2d 57  command.. .PP.-W
01e0: 68 65 6e 20 74 68 65 20 72 65 74 75 72 6e 20 63  hen the return c
01f0: 6f 64 65 20 66 72 6f 6d 20 65 76 61 6c 75 61 74  ode from evaluat
0200: 69 6f 6e 20 6f 66 20 5c 66 49 73 63 72 69 70 74  ion of \fIscript
0210: 5c 66 52 20 69 73 20 5c 66 42 54 43 4c 5f 45 52  \fR is \fBTCL_ER
0220: 52 4f 52 5c 66 52 2c 0a 2d 74 68 72 65 65 20 61  ROR\fR,.-three a
0230: 64 64 69 74 69 6f 6e 61 6c 20 65 6e 74 72 69 65  dditional entrie
0240: 73 20 61 72 65 20 64 65 66 69 6e 65 64 20 69 6e  s are defined in
0250: 20 74 68 65 20 64 69 63 74 69 6f 6e 61 72 79 20   the dictionary 
0260: 6f 66 20 72 65 74 75 72 6e 20 6f 70 74 69 6f 6e  of return option
0270: 73 0a 2d 73 74 6f 72 65 64 20 69 6e 20 5c 66 49  s.-stored in \fI
0280: 6f 70 74 69 6f 6e 73 56 61 72 4e 61 6d 65 5c 66  optionsVarName\f
0290: 52 3a 20 5c 66 42 5c 2d 65 72 72 6f 72 69 6e 66  R: \fB\-errorinf
02a0: 6f 5c 66 52 2c 20 5c 66 42 5c 2d 65 72 72 6f 72  o\fR, \fB\-error
02b0: 63 6f 64 65 5c 66 52 2c 20 0a 2d 61 6e 64 20 5c  code\fR, .-and \
02c0: 66 42 5c 2d 65 72 72 6f 72 6c 69 6e 65 5c 66 52  fB\-errorline\fR
02d0: 2e 20 20 54 68 65 20 76 61 6c 75 65 20 6f 66 20  .  The value of 
02e0: 74 68 65 20 5c 66 42 5c 2d 65 72 72 6f 72 69 6e  the \fB\-errorin
02f0: 66 6f 5c 66 52 20 65 6e 74 72 79 0a 2d 69 73 20  fo\fR entry.-is 
0300: 61 20 66 6f 72 6d 61 74 74 65 64 20 73 74 61 63  a formatted stac
0310: 6b 20 74 72 61 63 65 20 63 6f 6e 74 61 69 6e 69  k trace containi
0320: 6e 67 20 6d 6f 72 65 20 69 6e 66 6f 72 6d 61 74  ng more informat
0330: 69 6f 6e 20 61 62 6f 75 74 0a 2d 74 68 65 20 63  ion about.-the c
0340: 6f 6e 74 65 78 74 20 69 6e 20 77 68 69 63 68 20  ontext in which 
0350: 74 68 65 20 65 72 72 6f 72 20 68 61 70 70 65 6e  the error happen
0360: 65 64 2e 20 20 54 68 65 20 66 6f 72 6d 61 74 74  ed.  The formatt
0370: 65 64 20 73 74 61 63 6b 0a 2d 74 72 61 63 65 20  ed stack.-trace 
0380: 69 73 20 6d 65 61 6e 74 20 74 6f 20 62 65 20 72  is meant to be r
0390: 65 61 64 20 62 79 20 61 20 70 65 72 73 6f 6e 2e  ead by a person.
03a0: 20 20 54 68 65 20 76 61 6c 75 65 20 6f 66 0a 2d    The value of.-
03b0: 74 68 65 20 5c 66 42 5c 2d 65 72 72 6f 72 63 6f  the \fB\-errorco
03c0: 64 65 5c 66 52 20 65 6e 74 72 79 20 69 73 20 61  de\fR entry is a
03d0: 64 64 69 74 69 6f 6e 61 6c 20 69 6e 66 6f 72 6d  dditional inform
03e0: 61 74 69 6f 6e 20 61 62 6f 75 74 20 74 68 65 0a  ation about the.
03f0: 2d 65 72 72 6f 72 20 73 74 6f 72 65 64 20 61 73  -error stored as
0400: 20 61 20 6c 69 73 74 2e 20 20 54 68 65 20 5c 66   a list.  The \f
0410: 42 5c 2d 65 72 72 6f 72 63 6f 64 65 5c 66 52 20  B\-errorcode\fR 
0420: 76 61 6c 75 65 20 69 73 20 6d 65 61 6e 74 20 74  value is meant t
0430: 6f 0a 2d 62 65 20 66 75 72 74 68 65 72 20 70 72  o.-be further pr
0440: 6f 63 65 73 73 65 64 20 62 79 20 70 72 6f 67 72  ocessed by progr
0450: 61 6d 73 2c 20 61 6e 64 20 6d 61 79 20 6e 6f 74  ams, and may not
0460: 20 62 65 20 70 61 72 74 69 63 75 6c 61 72 6c 79   be particularly
0470: 0a 2d 72 65 61 64 61 62 6c 65 20 62 79 20 70 65  .-readable by pe
0480: 6f 70 6c 65 2e 20 20 54 68 65 20 76 61 6c 75 65  ople.  The value
0490: 20 6f 66 20 74 68 65 20 5c 66 42 5c 2d 65 72 72   of the \fB\-err
04a0: 6f 72 6c 69 6e 65 5c 66 52 20 65 6e 74 72 79 0a  orline\fR entry.
04b0: 2d 69 73 20 61 6e 20 69 6e 74 65 67 65 72 20 69  -is an integer i
04c0: 6e 64 69 63 61 74 69 6e 67 20 77 68 69 63 68 20  ndicating which 
04d0: 6c 69 6e 65 20 6f 66 20 5c 66 49 73 63 72 69 70  line of \fIscrip
04e0: 74 5c 66 52 20 77 61 73 20 62 65 69 6e 67 0a 2d  t\fR was being.-
04f0: 65 76 61 6c 75 61 74 65 64 20 77 68 65 6e 20 74  evaluated when t
0500: 68 65 20 65 72 72 6f 72 20 6f 63 63 75 72 72 65  he error occurre
0510: 64 2e 20 20 54 68 65 20 76 61 6c 75 65 73 20 6f  d.  The values o
0520: 66 20 74 68 65 20 5c 66 42 5c 2d 65 72 72 6f 72  f the \fB\-error
0530: 69 6e 66 6f 5c 66 52 0a 2d 61 6e 64 20 5c 66 42  info\fR.-and \fB
0540: 5c 2d 65 72 72 6f 72 63 6f 64 65 5c 66 52 20 65  \-errorcode\fR e
0550: 6e 74 72 69 65 73 20 6f 66 20 74 68 65 20 6d 6f  ntries of the mo
0560: 73 74 20 72 65 63 65 6e 74 20 65 72 72 6f 72 20  st recent error 
0570: 61 72 65 20 61 6c 73 6f 0a 2d 61 76 61 69 6c 61  are also.-availa
0580: 62 6c 65 20 61 73 20 76 61 6c 75 65 73 20 6f 66  ble as values of
0590: 20 74 68 65 20 67 6c 6f 62 61 6c 20 76 61 72 69   the global vari
05a0: 61 62 6c 65 73 20 5c 66 42 3a 3a 65 72 72 6f 72  ables \fB::error
05b0: 49 6e 66 6f 5c 66 52 0a 2d 61 6e 64 20 5c 66 42  Info\fR.-and \fB
05c0: 3a 3a 65 72 72 6f 72 43 6f 64 65 5c 66 52 20 72  ::errorCode\fR r
05d0: 65 73 70 65 63 74 69 76 65 6c 79 2e 0a 2b 57 68  espectively..+Wh
05e0: 65 6e 20 74 68 65 20 72 65 74 75 72 6e 20 63 6f  en the return co
05f0: 64 65 20 66 72 6f 6d 20 65 76 61 6c 75 61 74 69  de from evaluati
0600: 6f 6e 20 6f 66 20 5c 66 49 73 63 72 69 70 74 5c  on of \fIscript\
0610: 66 52 20 69 73 0a 2b 5c 66 42 54 43 4c 5f 45 52  fR is.+\fBTCL_ER
0620: 52 4f 52 5c 66 52 2c 20 66 6f 75 72 20 61 64 64  ROR\fR, four add
0630: 69 74 69 6f 6e 61 6c 20 65 6e 74 72 69 65 73 20  itional entries 
0640: 61 72 65 20 64 65 66 69 6e 65 64 20 69 6e 20 74  are defined in t
0650: 68 65 20 64 69 63 74 69 6f 6e 61 72 79 0a 2b 6f  he dictionary.+o
0660: 66 20 72 65 74 75 72 6e 20 6f 70 74 69 6f 6e 73  f return options
0670: 20 73 74 6f 72 65 64 20 69 6e 20 5c 66 49 6f 70   stored in \fIop
0680: 74 69 6f 6e 73 56 61 72 4e 61 6d 65 5c 66 52 3a  tionsVarName\fR:
0690: 20 5c 66 42 5c 2d 65 72 72 6f 72 69 6e 66 6f 5c   \fB\-errorinfo\
06a0: 66 52 2c 0a 2b 5c 66 42 5c 2d 65 72 72 6f 72 63  fR,.+\fB\-errorc
06b0: 6f 64 65 5c 66 52 2c 20 5c 66 42 5c 2d 65 72 72  ode\fR, \fB\-err
06c0: 6f 72 6c 69 6e 65 5c 66 52 2c 20 61 6e 64 20 5c  orline\fR, and \
06d0: 66 42 5c 2d 65 72 72 6f 72 73 74 61 63 6b 5c 66  fB\-errorstack\f
06e0: 52 2e 20 20 54 68 65 0a 2b 76 61 6c 75 65 20 6f  R.  The.+value o
06f0: 66 20 74 68 65 20 5c 66 42 5c 2d 65 72 72 6f 72  f the \fB\-error
0700: 69 6e 66 6f 5c 66 52 20 65 6e 74 72 79 20 69 73  info\fR entry is
0710: 20 61 20 66 6f 72 6d 61 74 74 65 64 20 73 74 61   a formatted sta
0720: 63 6b 20 74 72 61 63 65 0a 2b 63 6f 6e 74 61 69  ck trace.+contai
0730: 6e 69 6e 67 20 6d 6f 72 65 20 69 6e 66 6f 72 6d  ning more inform
0740: 61 74 69 6f 6e 20 61 62 6f 75 74 20 74 68 65 20  ation about the 
0750: 63 6f 6e 74 65 78 74 20 69 6e 20 77 68 69 63 68  context in which
0760: 20 74 68 65 20 65 72 72 6f 72 0a 2b 68 61 70 70   the error.+happ
0770: 65 6e 65 64 2e 20 20 54 68 65 20 66 6f 72 6d 61  ened.  The forma
0780: 74 74 65 64 20 73 74 61 63 6b 20 74 72 61 63 65  tted stack trace
0790: 20 69 73 20 6d 65 61 6e 74 20 74 6f 20 62 65 20   is meant to be 
07a0: 72 65 61 64 20 62 79 20 61 20 70 65 72 73 6f 6e  read by a person
07b0: 2e 0a 2b 54 68 65 20 76 61 6c 75 65 20 6f 66 20  ..+The value of 
07c0: 74 68 65 20 5c 66 42 5c 2d 65 72 72 6f 72 63 6f  the \fB\-errorco
07d0: 64 65 5c 66 52 20 65 6e 74 72 79 20 69 73 20 61  de\fR entry is a
07e0: 64 64 69 74 69 6f 6e 61 6c 20 69 6e 66 6f 72 6d  dditional inform
07f0: 61 74 69 6f 6e 0a 2b 61 62 6f 75 74 20 74 68 65  ation.+about the
0800: 20 65 72 72 6f 72 20 73 74 6f 72 65 64 20 61 73   error stored as
0810: 20 61 20 6c 69 73 74 2e 20 20 54 68 65 20 5c 66   a list.  The \f
0820: 42 5c 2d 65 72 72 6f 72 63 6f 64 65 5c 66 52 20  B\-errorcode\fR 
0830: 76 61 6c 75 65 20 69 73 0a 2b 6d 65 61 6e 74 20  value is.+meant 
0840: 74 6f 20 62 65 20 66 75 72 74 68 65 72 20 70 72  to be further pr
0850: 6f 63 65 73 73 65 64 20 62 79 20 70 72 6f 67 72  ocessed by progr
0860: 61 6d 73 2c 20 61 6e 64 20 6d 61 79 20 6e 6f 74  ams, and may not
0870: 20 62 65 20 70 61 72 74 69 63 75 6c 61 72 6c 79   be particularly
0880: 0a 2b 72 65 61 64 61 62 6c 65 20 62 79 20 70 65  .+readable by pe
0890: 6f 70 6c 65 2e 20 20 54 68 65 20 76 61 6c 75 65  ople.  The value
08a0: 20 6f 66 20 74 68 65 20 5c 66 42 5c 2d 65 72 72   of the \fB\-err
08b0: 6f 72 6c 69 6e 65 5c 66 52 20 65 6e 74 72 79 20  orline\fR entry 
08c0: 69 73 20 61 6e 0a 2b 69 6e 74 65 67 65 72 20 69  is an.+integer i
08d0: 6e 64 69 63 61 74 69 6e 67 20 77 68 69 63 68 20  ndicating which 
08e0: 6c 69 6e 65 20 6f 66 20 5c 66 49 73 63 72 69 70  line of \fIscrip
08f0: 74 5c 66 52 20 77 61 73 20 62 65 69 6e 67 20 65  t\fR was being e
0900: 76 61 6c 75 61 74 65 64 20 77 68 65 6e 0a 2b 74  valuated when.+t
0910: 68 65 20 65 72 72 6f 72 20 6f 63 63 75 72 72 65  he error occurre
0920: 64 2e 20 20 54 68 65 20 76 61 6c 75 65 20 6f 66  d.  The value of
0930: 20 74 68 65 20 5c 66 42 5c 2d 65 72 72 6f 72 73   the \fB\-errors
0940: 74 61 63 6b 5c 66 52 20 65 6e 74 72 79 20 69 73  tack\fR entry is
0950: 20 61 6e 0a 2b 65 76 65 6e 2d 73 69 7a 65 64 20   an.+even-sized 
0960: 6c 69 73 74 20 6d 61 64 65 20 6f 66 20 74 6f 6b  list made of tok
0970: 65 6e 2d 70 61 72 61 6d 65 74 65 72 20 70 61 69  en-parameter pai
0980: 72 73 20 61 63 63 75 6d 75 6c 61 74 65 64 20 77  rs accumulated w
0990: 68 69 6c 65 0a 2b 75 6e 77 69 6e 64 69 6e 67 20  hile.+unwinding 
09a0: 74 68 65 20 73 74 61 63 6b 2e 20 54 68 65 20 74  the stack. The t
09b0: 6f 6b 65 6e 20 6d 61 79 20 62 65 20 22 43 41 4c  oken may be "CAL
09c0: 4c 22 2c 20 69 6e 20 77 68 69 63 68 20 63 61 73  L", in which cas
09d0: 65 20 74 68 65 0a 2b 70 61 72 61 6d 65 74 65 72  e the.+parameter
09e0: 20 69 73 20 61 20 6c 69 73 74 20 6d 61 64 65 20   is a list made 
09f0: 6f 66 20 74 68 65 20 70 72 6f 63 20 6e 61 6d 65  of the proc name
0a00: 20 61 6e 64 20 61 72 67 75 6d 65 6e 74 73 20 61   and arguments a
0a10: 74 20 74 68 65 0a 2b 63 6f 72 72 65 73 70 6f 6e  t the.+correspon
0a20: 64 69 6e 67 20 6c 65 76 65 6c 3b 20 6f 72 20 69  ding level; or i
0a30: 74 20 6d 61 79 20 62 65 20 22 55 50 22 2c 20 69  t may be "UP", i
0a40: 6e 20 77 68 69 63 68 20 63 61 73 65 20 74 68 65  n which case the
0a50: 20 70 61 72 61 6d 65 74 65 72 20 69 73 0a 2b 74   parameter is.+t
0a60: 68 65 20 72 65 6c 61 74 69 76 65 20 5b 75 70 6c  he relative [upl
0a70: 65 76 65 6c 5d 20 6f 66 20 74 68 65 20 70 72 65  evel] of the pre
0a80: 76 69 6f 75 73 20 43 41 4c 4c 2e 20 54 68 65 20  vious CALL. The 
0a90: 73 61 6c 69 65 6e 74 20 64 69 66 66 65 72 65 6e  salient differen
0aa0: 63 65 73 0a 2b 77 72 74 20 2d 65 72 72 6f 72 69  ces.+wrt -errori
0ab0: 6e 66 6f 20 61 72 65 20 74 68 61 74 20 28 31 29  nfo are that (1)
0ac0: 20 69 74 20 69 73 20 61 20 6d 61 63 68 69 6e 65   it is a machine
0ad0: 2d 72 65 61 64 61 62 6c 65 20 66 6f 72 6d 20 61  -readable form a
0ae0: 6d 65 6e 61 62 6c 65 20 74 6f 0a 2b 5b 66 6f 72  menable to.+[for
0af0: 65 61 63 68 20 7b 74 6f 6b 20 70 72 6d 7d 20 2e  each {tok prm} .
0b00: 2e 2e 5d 2c 20 28 32 29 20 69 74 20 63 6f 6e 74  ..], (2) it cont
0b10: 61 69 6e 73 20 74 68 65 20 74 72 75 65 20 28 73  ains the true (s
0b20: 75 62 73 74 69 74 75 74 65 64 29 20 76 61 6c 75  ubstituted) valu
0b30: 65 73 0a 2b 70 61 73 73 65 64 20 74 6f 20 74 68  es.+passed to th
0b40: 65 20 66 75 6e 63 74 69 6f 6e 73 2c 20 69 6e 73  e functions, ins
0b50: 74 65 61 64 20 6f 66 20 74 68 65 20 73 74 61 74  tead of the stat
0b60: 69 63 20 74 65 78 74 20 6f 66 20 74 68 65 20 63  ic text of the c
0b70: 61 6c 6c 69 6e 67 0a 2b 73 69 74 65 73 2c 20 61  alling.+sites, a
0b80: 6e 64 20 28 33 29 20 69 74 20 69 73 20 63 6f 61  nd (3) it is coa
0b90: 72 73 65 72 2d 67 72 61 69 6e 65 64 2c 20 77 69  rser-grained, wi
0ba0: 74 68 20 6f 6e 6c 79 20 6f 6e 65 20 65 6c 65 6d  th only one elem
0bb0: 65 6e 74 20 70 65 72 20 73 74 61 63 6b 0a 2b 66  ent per stack.+f
0bc0: 72 61 6d 65 20 28 6c 69 6b 65 20 70 72 6f 63 73  rame (like procs
0bd0: 3b 20 6e 6f 20 73 65 70 61 72 61 74 65 20 65 6c  ; no separate el
0be0: 65 6d 65 6e 74 73 20 66 6f 72 20 5b 66 6f 72 65  ements for [fore
0bf0: 61 63 68 5d 20 63 6f 6e 73 74 72 75 63 74 73 20  ach] constructs 
0c00: 66 6f 72 0a 2b 65 78 61 6d 70 6c 65 29 2e 0a 2b  for.+example)..+
0c10: 0a 2b 54 68 65 20 76 61 6c 75 65 73 20 6f 66 20  .+The values of 
0c20: 74 68 65 20 5c 66 42 5c 2d 65 72 72 6f 72 69 6e  the \fB\-errorin
0c30: 66 6f 5c 66 52 20 61 6e 64 20 5c 66 42 5c 2d 65  fo\fR and \fB\-e
0c40: 72 72 6f 72 63 6f 64 65 5c 66 52 20 65 6e 74 72  rrorcode\fR entr
0c50: 69 65 73 20 6f 66 0a 2b 74 68 65 20 6d 6f 73 74  ies of.+the most
0c60: 20 72 65 63 65 6e 74 20 65 72 72 6f 72 20 61 72   recent error ar
0c70: 65 20 61 6c 73 6f 20 61 76 61 69 6c 61 62 6c 65  e also available
0c80: 20 61 73 20 76 61 6c 75 65 73 20 6f 66 20 74 68   as values of th
0c90: 65 20 67 6c 6f 62 61 6c 0a 2b 76 61 72 69 61 62  e global.+variab
0ca0: 6c 65 73 20 5c 66 42 3a 3a 65 72 72 6f 72 49 6e  les \fB::errorIn
0cb0: 66 6f 5c 66 52 20 61 6e 64 20 5c 66 42 3a 3a 65  fo\fR and \fB::e
0cc0: 72 72 6f 72 43 6f 64 65 5c 66 52 20 72 65 73 70  rrorCode\fR resp
0cd0: 65 63 74 69 76 65 6c 79 2e 20 54 68 65 0a 2b 76  ectively. The.+v
0ce0: 61 6c 75 65 20 6f 66 20 74 68 65 20 5c 66 42 5c  alue of the \fB\
0cf0: 2d 65 72 72 6f 72 73 74 61 63 6b 5c 66 52 20 65  -errorstack\fR e
0d00: 6e 74 72 79 20 73 75 72 66 61 63 65 73 20 61 73  ntry surfaces as
0d10: 20 5c 66 42 69 6e 66 6f 0a 2b 65 72 72 6f 72 73   \fBinfo.+errors
0d20: 74 61 63 6b 5c 66 52 2e 0a 20 2e 50 50 0a 20 54  tack\fR.. .PP. T
0d30: 63 6c 20 70 61 63 6b 61 67 65 73 20 6d 61 79 20  cl packages may 
0d40: 70 72 6f 76 69 64 65 20 63 6f 6d 6d 61 6e 64 73  provide commands
0d50: 20 74 68 61 74 20 73 65 74 20 6f 74 68 65 72 20   that set other 
0d60: 65 6e 74 72 69 65 73 20 69 6e 20 74 68 65 0a 20  entries in the. 
0d70: 64 69 63 74 69 6f 6e 61 72 79 20 6f 66 20 72 65  dictionary of re
0d80: 74 75 72 6e 20 6f 70 74 69 6f 6e 73 2c 20 61 6e  turn options, an
0d90: 64 20 74 68 65 20 5c 66 42 72 65 74 75 72 6e 5c  d the \fBreturn\
0da0: 66 52 20 63 6f 6d 6d 61 6e 64 20 6d 61 79 20 62  fR command may b
0db0: 65 0a 49 6e 64 65 78 3a 20 64 6f 63 2f 69 6e 66  e.Index: doc/inf
0dc0: 6f 2e 6e 0a 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d  o.n.============
0dd0: 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d  ================
0de0: 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d  ================
0df0: 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d  ================
0e00: 3d 3d 3d 3d 3d 3d 3d 0a 52 43 53 20 66 69 6c 65  =======.RCS file
0e10: 3a 20 2f 63 76 73 72 6f 6f 74 2f 74 63 6c 2f 74  : /cvsroot/tcl/t
0e20: 63 6c 2f 64 6f 63 2f 69 6e 66 6f 2e 6e 2c 76 0a  cl/doc/info.n,v.
0e30: 72 65 74 72 69 65 76 69 6e 67 20 72 65 76 69 73  retrieving revis
0e40: 69 6f 6e 20 31 2e 33 36 0a 64 69 66 66 20 2d 75  ion 1.36.diff -u
0e50: 20 2d 70 20 2d 75 20 2d 70 20 2d 72 31 2e 33 36   -p -u -p -r1.36
0e60: 20 69 6e 66 6f 2e 6e 0a 2d 2d 2d 20 64 6f 63 2f   info.n.--- doc/
0e70: 69 6e 66 6f 2e 6e 09 32 34 20 4d 61 72 20 32 30  info.n.24 Mar 20
0e80: 31 30 20 31 33 3a 32 31 3a 31 31 20 2d 30 30 30  10 13:21:11 -000
0e90: 30 09 31 2e 33 36 0a 2b 2b 2b 20 64 6f 63 2f 69  0.1.36.+++ doc/i
0ea0: 6e 66 6f 2e 6e 09 33 31 20 4d 61 72 20 32 30 31  nfo.n.31 Mar 201
0eb0: 30 20 31 34 3a 31 34 3a 33 39 20 2d 30 30 30 30  0 14:14:39 -0000
0ec0: 0a 40 40 20 2d 39 34 2c 36 20 2b 39 34 2c 31 36  .@@ -94,6 +94,16
0ed0: 20 40 40 20 64 6f 65 73 20 6e 6f 74 20 68 61 76   @@ does not hav
0ee0: 65 20 61 20 64 65 66 61 75 6c 74 20 76 61 6c 75  e a default valu
0ef0: 65 20 74 68 65 6e 20 74 68 65 20 63 0a 20 4f 74  e then the c. Ot
0f00: 68 65 72 77 69 73 65 20 69 74 20 72 65 74 75 72  herwise it retur
0f10: 6e 73 20 5c 66 42 31 5c 66 52 20 61 6e 64 20 70  ns \fB1\fR and p
0f20: 6c 61 63 65 73 20 74 68 65 20 64 65 66 61 75 6c  laces the defaul
0f30: 74 20 76 61 6c 75 65 20 6f 66 20 5c 66 49 61 72  t value of \fIar
0f40: 67 5c 66 52 0a 20 69 6e 74 6f 20 76 61 72 69 61  g\fR. into varia
0f50: 62 6c 65 20 5c 66 49 76 61 72 6e 61 6d 65 5c 66  ble \fIvarname\f
0f60: 52 2e 0a 20 2e 54 50 0a 2b 5c 66 42 69 6e 66 6f  R.. .TP.+\fBinfo
0f70: 20 65 72 72 6f 72 73 74 61 63 6b 20 5c 66 52 3f   errorstack \fR?
0f80: 5c 66 49 69 6e 74 65 72 70 5c 66 52 3f 0a 2b 2e  \fIinterp\fR?.+.
0f90: 0a 2b 52 65 74 75 72 6e 73 20 61 20 6c 69 73 74  .+Returns a list
0fa0: 20 6f 66 20 6c 69 73 74 73 20 6d 61 64 65 20 6f   of lists made o
0fb0: 66 20 74 68 65 20 66 75 6e 63 74 69 6f 6e 20 6e  f the function n
0fc0: 61 6d 65 73 20 61 6e 64 20 61 72 67 75 6d 65 6e  ames and argumen
0fd0: 74 73 20 61 74 0a 2b 65 61 63 68 20 6c 65 76 65  ts at.+each leve
0fe0: 6c 20 66 72 6f 6d 20 74 68 65 20 63 61 6c 6c 20  l from the call 
0ff0: 73 74 61 63 6b 20 6f 66 20 74 68 65 20 6c 61 73  stack of the las
1000: 74 20 65 72 72 6f 72 20 69 6e 20 74 68 65 20 67  t error in the g
1010: 69 76 65 6e 0a 2b 5c 66 49 69 6e 74 65 72 70 5c  iven.+\fIinterp\
1020: 66 52 2c 20 6f 72 20 69 6e 20 74 68 65 20 63 75  fR, or in the cu
1030: 72 72 65 6e 74 20 6f 6e 65 20 69 66 20 6e 6f 74  rrent one if not
1040: 20 73 70 65 63 69 66 69 65 64 2e 20 20 54 68 69   specified.  Thi
1050: 73 0a 2b 69 6e 66 6f 72 6d 61 74 69 6f 6e 20 69  s.+information i
1060: 73 20 61 6c 73 6f 20 70 72 65 73 65 6e 74 20 69  s also present i
1070: 6e 20 74 68 65 20 2d 65 72 72 6f 72 73 74 61 63  n the -errorstac
1080: 6b 20 65 6e 74 72 79 20 6f 66 20 74 68 65 20 6f  k entry of the o
1090: 70 74 69 6f 6e 73 0a 2b 64 69 63 74 69 6f 6e 61  ptions.+dictiona
10a0: 72 79 20 72 65 74 75 72 6e 65 64 20 62 79 20 33  ry returned by 3
10b0: 2d 61 72 67 20 5c 66 42 63 61 74 63 68 5c 66 52  -arg \fBcatch\fR
10c0: 3b 20 5c 66 42 69 6e 66 6f 20 65 72 72 6f 72 73  ; \fBinfo errors
10d0: 74 61 63 6b 5c 66 52 20 69 73 20 61 0a 2b 63 6f  tack\fR is a.+co
10e0: 6e 76 65 6e 69 65 6e 74 20 77 61 79 20 6f 66 20  nvenient way of 
10f0: 72 65 74 72 69 65 76 69 6e 67 20 69 74 20 66 6f  retrieving it fo
1100: 72 20 75 6e 63 61 75 67 68 74 20 65 72 72 6f 72  r uncaught error
1110: 73 20 61 74 20 74 6f 70 6c 65 76 65 6c 20 69 6e  s at toplevel in
1120: 20 61 6e 0a 2b 69 6e 74 65 72 61 63 74 69 76 65   an.+interactive
1130: 20 74 63 6c 73 68 2e 0a 2b 2e 54 50 0a 20 5c 66   tclsh..+.TP. \f
1140: 42 69 6e 66 6f 20 65 78 69 73 74 73 20 5c 66 49  Binfo exists \fI
1150: 76 61 72 4e 61 6d 65 5c 66 52 0a 20 2e 0a 20 52  varName\fR. .. R
1160: 65 74 75 72 6e 73 20 5c 66 42 31 5c 66 52 20 69  eturns \fB1\fR i
1170: 66 20 74 68 65 20 76 61 72 69 61 62 6c 65 20 6e  f the variable n
1180: 61 6d 65 64 20 5c 66 49 76 61 72 4e 61 6d 65 5c  amed \fIvarName\
1190: 66 52 20 65 78 69 73 74 73 20 69 6e 20 74 68 65  fR exists in the
11a0: 0a 49 6e 64 65 78 3a 20 64 6f 63 2f 72 65 74 75  .Index: doc/retu
11b0: 72 6e 2e 6e 0a 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d  rn.n.===========
11c0: 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d  ================
11d0: 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d  ================
11e0: 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d  ================
11f0: 3d 3d 3d 3d 3d 3d 3d 3d 0a 52 43 53 20 66 69 6c  ========.RCS fil
1200: 65 3a 20 2f 63 76 73 72 6f 6f 74 2f 74 63 6c 2f  e: /cvsroot/tcl/
1210: 74 63 6c 2f 64 6f 63 2f 72 65 74 75 72 6e 2e 6e  tcl/doc/return.n
1220: 2c 76 0a 72 65 74 72 69 65 76 69 6e 67 20 72 65  ,v.retrieving re
1230: 76 69 73 69 6f 6e 20 31 2e 32 35 0a 64 69 66 66  vision 1.25.diff
1240: 20 2d 75 20 2d 70 20 2d 75 20 2d 70 20 2d 72 31   -u -p -u -p -r1
1250: 2e 32 35 20 72 65 74 75 72 6e 2e 6e 0a 2d 2d 2d  .25 return.n.---
1260: 20 64 6f 63 2f 72 65 74 75 72 6e 2e 6e 09 32 30   doc/return.n.20
1270: 20 4a 61 6e 20 32 30 31 30 20 31 33 3a 34 32 3a   Jan 2010 13:42:
1280: 31 37 20 2d 30 30 30 30 09 31 2e 32 35 0a 2b 2b  17 -0000.1.25.++
1290: 2b 20 64 6f 63 2f 72 65 74 75 72 6e 2e 6e 09 33  + doc/return.n.3
12a0: 31 20 4d 61 72 20 32 30 31 30 20 31 34 3a 31 34  1 Mar 2010 14:14
12b0: 3a 33 39 20 2d 30 30 30 30 0a 40 40 20 2d 31 33  :39 -0000.@@ -13
12c0: 38 2c 36 20 2b 31 33 38 2c 32 32 20 40 40 20 74  8,6 +138,22 @@ t
12d0: 68 65 20 76 61 6c 75 65 20 6f 66 20 5c 66 42 5c  he value of \fB\
12e0: 2d 65 72 72 6f 72 69 6e 66 6f 5c 66 52 20 69 6e  -errorinfo\fR in
12f0: 20 61 20 72 65 74 75 0a 20 62 79 20 74 68 65 20   a retu. by the 
1300: 5c 66 42 63 61 74 63 68 5c 66 52 20 63 6f 6d 6d  \fBcatch\fR comm
1310: 61 6e 64 20 28 6f 72 20 66 72 6f 6d 20 74 68 65  and (or from the
1320: 20 63 6f 70 79 20 6f 66 20 74 68 61 74 20 69 6e   copy of that in
1330: 66 6f 72 6d 61 74 69 6f 6e 0a 20 73 74 6f 72 65  formation. store
1340: 64 20 69 6e 20 74 68 65 20 67 6c 6f 62 61 6c 20  d in the global 
1350: 76 61 72 69 61 62 6c 65 20 5c 66 42 65 72 72 6f  variable \fBerro
1360: 72 49 6e 66 6f 5c 66 52 29 2e 0a 20 2e 54 50 0a  rInfo\fR).. .TP.
1370: 2b 5c 66 42 5c 2d 65 72 72 6f 72 73 74 61 63 6b  +\fB\-errorstack
1380: 20 5c 66 49 6c 69 73 74 5c 66 52 0a 2b 2e 0a 2b   \fIlist\fR.+..+
1390: 54 68 65 20 5c 66 42 5c 2d 65 72 72 6f 72 73 74  The \fB\-errorst
13a0: 61 63 6b 5c 66 52 20 6f 70 74 69 6f 6e 20 72 65  ack\fR option re
13b0: 63 65 69 76 65 73 20 73 70 65 63 69 61 6c 20 74  ceives special t
13c0: 72 65 61 74 6d 65 6e 74 20 6f 6e 6c 79 20 77 68  reatment only wh
13d0: 65 6e 20 74 68 65 20 76 61 6c 75 65 0a 2b 6f 66  en the value.+of
13e0: 20 74 68 65 20 5c 66 42 5c 2d 63 6f 64 65 5c 66   the \fB\-code\f
13f0: 52 20 6f 70 74 69 6f 6e 20 69 73 20 5c 66 42 54  R option is \fBT
1400: 43 4c 5f 45 52 52 4f 52 5c 66 52 2e 20 20 54 68  CL_ERROR\fR.  Th
1410: 65 6e 20 5c 66 49 6c 69 73 74 5c 66 52 20 69 73  en \fIlist\fR is
1420: 20 74 68 65 20 69 6e 69 74 69 61 6c 0a 2b 65 72   the initial.+er
1430: 72 6f 72 20 73 74 61 63 6b 2c 20 72 65 63 6f 72  ror stack, recor
1440: 64 69 6e 67 20 61 63 74 75 61 6c 20 61 72 67 75  ding actual argu
1450: 6d 65 6e 74 20 76 61 6c 75 65 73 20 70 61 73 73  ment values pass
1460: 65 64 20 74 6f 20 65 61 63 68 20 70 72 6f 63 20  ed to each proc 
1470: 6c 65 76 65 6c 2e 20 20 54 68 65 20 65 72 72 6f  level.  The erro
1480: 72 20 73 74 61 63 6b 20 77 69 6c 6c 0a 2b 61 6c  r stack will.+al
1490: 73 6f 20 62 65 20 72 65 61 63 68 61 62 6c 65 20  so be reachable 
14a0: 74 68 72 6f 75 67 68 20 5b 69 6e 66 6f 20 65 72  through [info er
14b0: 72 6f 72 73 74 61 63 6b 5d 2e 0a 2b 49 66 20 6e  rorstack]..+If n
14c0: 6f 20 5c 66 42 5c 2d 65 72 72 6f 72 73 74 61 63  o \fB\-errorstac
14d0: 6b 5c 66 52 20 6f 70 74 69 6f 6e 20 69 73 20 70  k\fR option is p
14e0: 72 6f 76 69 64 65 64 20 74 6f 20 5c 66 42 72 65  rovided to \fBre
14f0: 74 75 72 6e 5c 66 52 20 77 68 65 6e 0a 2b 74 68  turn\fR when.+th
1500: 65 20 5c 66 42 5c 2d 63 6f 64 65 20 65 72 72 6f  e \fB\-code erro
1510: 72 5c 66 52 20 6f 70 74 69 6f 6e 20 69 73 20 70  r\fR option is p
1520: 72 6f 76 69 64 65 64 2c 20 54 63 6c 20 77 69 6c  rovided, Tcl wil
1530: 6c 20 70 72 6f 76 69 64 65 20 69 74 73 20 6f 77  l provide its ow
1540: 6e 0a 2b 69 6e 69 74 69 61 6c 20 65 72 72 6f 72  n.+initial error
1550: 20 73 74 61 63 6b 20 69 6e 20 74 68 65 20 65 6e   stack in the en
1560: 74 72 79 20 66 6f 72 20 5c 66 42 5c 2d 65 72 72  try for \fB\-err
1570: 6f 72 73 74 61 63 6b 5c 66 52 2e 20 20 54 63 6c  orstack\fR.  Tcl
1580: 27 73 0a 2b 69 6e 69 74 69 61 6c 20 65 72 72 6f  's.+initial erro
1590: 72 20 73 74 61 63 6b 20 77 69 6c 6c 20 69 6e 63  r stack will inc
15a0: 6c 75 64 65 20 6f 6e 6c 79 20 74 68 65 20 63 61  lude only the ca
15b0: 6c 6c 20 74 6f 20 74 68 65 20 70 72 6f 63 65 64  ll to the proced
15c0: 75 72 65 2c 20 61 6e 64 0a 2b 73 74 61 63 6b 20  ure, and.+stack 
15d0: 75 6e 77 69 6e 64 69 6e 67 20 77 69 6c 6c 20 61  unwinding will a
15e0: 70 70 65 6e 64 20 69 6e 66 6f 72 6d 61 74 69 6f  ppend informatio
15f0: 6e 20 61 62 6f 75 74 20 68 69 67 68 65 72 20 73  n about higher s
1600: 74 61 63 6b 20 6c 65 76 65 6c 73 2c 20 62 75 74  tack levels, but
1610: 0a 2b 74 68 65 72 65 20 77 69 6c 6c 20 62 65 20  .+there will be 
1620: 6e 6f 20 69 6e 66 6f 72 6d 61 74 69 6f 6e 20 61  no information a
1630: 62 6f 75 74 20 74 68 65 20 63 6f 6e 74 65 78 74  bout the context
1640: 20 6f 66 20 74 68 65 20 65 72 72 6f 72 20 77 69   of the error wi
1650: 74 68 69 6e 0a 2b 74 68 65 20 70 72 6f 63 65 64  thin.+the proced
1660: 75 72 65 2e 20 20 54 79 70 69 63 61 6c 6c 79 20  ure.  Typically 
1670: 74 68 65 20 5c 66 49 6c 69 73 74 5c 66 52 20 76  the \fIlist\fR v
1680: 61 6c 75 65 20 69 73 20 73 75 70 70 6c 69 65 64  alue is supplied
1690: 20 66 72 6f 6d 0a 2b 74 68 65 20 76 61 6c 75 65   from.+the value
16a0: 20 6f 66 20 5c 66 42 5c 2d 65 72 72 6f 72 73 74   of \fB\-errorst
16b0: 61 63 6b 5c 66 52 20 69 6e 20 61 20 72 65 74 75  ack\fR in a retu
16c0: 72 6e 20 6f 70 74 69 6f 6e 73 20 64 69 63 74 69  rn options dicti
16d0: 6f 6e 61 72 79 20 63 61 70 74 75 72 65 64 0a 2b  onary captured.+
16e0: 62 79 20 74 68 65 20 5c 66 42 63 61 74 63 68 5c  by the \fBcatch\
16f0: 66 52 20 63 6f 6d 6d 61 6e 64 20 28 6f 72 20 66  fR command (or f
1700: 72 6f 6d 20 74 68 65 20 63 6f 70 79 20 6f 66 20  rom the copy of 
1710: 74 68 61 74 20 69 6e 66 6f 72 6d 61 74 69 6f 6e  that information
1720: 20 66 72 6f 6d 20 5b 69 6e 66 6f 20 65 72 72 6f   from [info erro
1730: 72 73 74 61 63 6b 5d 29 2e 0a 2b 2e 54 50 0a 20  rstack])..+.TP. 
1740: 5c 66 42 5c 2d 6c 65 76 65 6c 20 5c 66 49 6c 65  \fB\-level \fIle
1750: 76 65 6c 5c 66 52 0a 20 2e 0a 20 54 68 65 20 5c  vel\fR. .. The \
1760: 66 42 5c 2d 6c 65 76 65 6c 5c 66 52 20 61 6e 64  fB\-level\fR and
1770: 20 5c 66 42 5c 2d 63 6f 64 65 5c 66 52 20 6f 70   \fB\-code\fR op
1780: 74 69 6f 6e 73 20 77 6f 72 6b 20 74 6f 67 65 74  tions work toget
1790: 68 65 72 20 74 6f 20 73 65 74 20 74 68 65 20 72  her to set the r
17a0: 65 74 75 72 6e 0a 49 6e 64 65 78 3a 20 67 65 6e  eturn.Index: gen
17b0: 65 72 69 63 2f 74 63 6c 42 61 73 69 63 2e 63 0a  eric/tclBasic.c.
17c0: 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d  ================
17d0: 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d  ================
17e0: 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d  ================
17f0: 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d  ================
1800: 3d 3d 3d 0a 52 43 53 20 66 69 6c 65 3a 20 2f 63  ===.RCS file: /c
1810: 76 73 72 6f 6f 74 2f 74 63 6c 2f 74 63 6c 2f 67  vsroot/tcl/tcl/g
1820: 65 6e 65 72 69 63 2f 74 63 6c 42 61 73 69 63 2e  eneric/tclBasic.
1830: 63 2c 76 0a 72 65 74 72 69 65 76 69 6e 67 20 72  c,v.retrieving r
1840: 65 76 69 73 69 6f 6e 20 31 2e 34 34 39 0a 64 69  evision 1.449.di
1850: 66 66 20 2d 75 20 2d 70 20 2d 75 20 2d 70 20 2d  ff -u -p -u -p -
1860: 72 31 2e 34 34 39 20 74 63 6c 42 61 73 69 63 2e  r1.449 tclBasic.
1870: 63 0a 2d 2d 2d 20 67 65 6e 65 72 69 63 2f 74 63  c.--- generic/tc
1880: 6c 42 61 73 69 63 2e 63 09 31 39 20 4d 61 72 20  lBasic.c.19 Mar 
1890: 32 30 31 30 20 31 31 3a 35 34 3a 30 36 20 2d 30  2010 11:54:06 -0
18a0: 30 30 30 09 31 2e 34 34 39 0a 2b 2b 2b 20 67 65  000.1.449.+++ ge
18b0: 6e 65 72 69 63 2f 74 63 6c 42 61 73 69 63 2e 63  neric/tclBasic.c
18c0: 09 33 31 20 4d 61 72 20 32 30 31 30 20 31 34 3a  .31 Mar 2010 14:
18d0: 31 34 3a 33 39 20 2d 30 30 30 30 0a 40 40 20 2d  14:39 -0000.@@ -
18e0: 35 32 39 2c 36 20 2b 35 32 39 2c 31 33 20 40 40  529,6 +529,13 @@
18f0: 20 54 63 6c 5f 43 72 65 61 74 65 49 6e 74 65 72   Tcl_CreateInter
1900: 70 28 76 6f 69 64 29 0a 20 20 20 20 20 69 50 74  p(void).     iPt
1910: 72 2d 3e 65 72 72 6f 72 49 6e 66 6f 20 3d 20 4e  r->errorInfo = N
1920: 55 4c 4c 3b 0a 20 20 20 20 20 54 63 6c 4e 65 77  ULL;.     TclNew
1930: 4c 69 74 65 72 61 6c 53 74 72 69 6e 67 4f 62 6a  LiteralStringObj
1940: 28 69 50 74 72 2d 3e 65 69 56 61 72 2c 20 22 3a  (iPtr->eiVar, ":
1950: 3a 65 72 72 6f 72 49 6e 66 6f 22 29 3b 0a 20 20  :errorInfo");.  
1960: 20 20 20 54 63 6c 5f 49 6e 63 72 52 65 66 43 6f     Tcl_IncrRefCo
1970: 75 6e 74 28 69 50 74 72 2d 3e 65 69 56 61 72 29  unt(iPtr->eiVar)
1980: 3b 0a 2b 20 20 20 20 69 50 74 72 2d 3e 65 72 72  ;.+    iPtr->err
1990: 6f 72 53 74 61 63 6b 20 3d 20 54 63 6c 5f 4e 65  orStack = Tcl_Ne
19a0: 77 4c 69 73 74 4f 62 6a 28 30 2c 20 4e 55 4c 4c  wListObj(0, NULL
19b0: 29 3b 0a 2b 20 20 20 20 54 63 6c 5f 49 6e 63 72  );.+    Tcl_Incr
19c0: 52 65 66 43 6f 75 6e 74 28 69 50 74 72 2d 3e 65  RefCount(iPtr->e
19d0: 72 72 6f 72 53 74 61 63 6b 29 3b 0a 2b 20 20 20  rrorStack);.+   
19e0: 20 69 50 74 72 2d 3e 72 65 73 65 74 45 72 72 6f   iPtr->resetErro
19f0: 72 53 74 61 63 6b 20 3d 20 31 3b 0a 2b 20 20 20  rStack = 1;.+   
1a00: 20 54 63 6c 4e 65 77 4c 69 74 65 72 61 6c 53 74   TclNewLiteralSt
1a10: 72 69 6e 67 4f 62 6a 28 69 50 74 72 2d 3e 75 70  ringObj(iPtr->up
1a20: 4c 69 74 65 72 61 6c 2c 22 55 50 22 29 3b 0a 2b  Literal,"UP");.+
1a30: 20 20 20 20 54 63 6c 5f 49 6e 63 72 52 65 66 43      Tcl_IncrRefC
1a40: 6f 75 6e 74 28 69 50 74 72 2d 3e 75 70 4c 69 74  ount(iPtr->upLit
1a50: 65 72 61 6c 29 3b 0a 2b 20 20 20 20 54 63 6c 4e  eral);.+    TclN
1a60: 65 77 4c 69 74 65 72 61 6c 53 74 72 69 6e 67 4f  ewLiteralStringO
1a70: 62 6a 28 69 50 74 72 2d 3e 63 61 6c 6c 4c 69 74  bj(iPtr->callLit
1a80: 65 72 61 6c 2c 22 43 41 4c 4c 22 29 3b 0a 2b 20  eral,"CALL");.+ 
1a90: 20 20 20 54 63 6c 5f 49 6e 63 72 52 65 66 43 6f     Tcl_IncrRefCo
1aa0: 75 6e 74 28 69 50 74 72 2d 3e 63 61 6c 6c 4c 69  unt(iPtr->callLi
1ab0: 74 65 72 61 6c 29 3b 0a 20 20 20 20 20 69 50 74  teral);.     iPt
1ac0: 72 2d 3e 65 72 72 6f 72 43 6f 64 65 20 3d 20 4e  r->errorCode = N
1ad0: 55 4c 4c 3b 0a 20 20 20 20 20 54 63 6c 4e 65 77  ULL;.     TclNew
1ae0: 4c 69 74 65 72 61 6c 53 74 72 69 6e 67 4f 62 6a  LiteralStringObj
1af0: 28 69 50 74 72 2d 3e 65 63 56 61 72 2c 20 22 3a  (iPtr->ecVar, ":
1b00: 3a 65 72 72 6f 72 43 6f 64 65 22 29 3b 0a 20 20  :errorCode");.  
1b10: 20 20 20 54 63 6c 5f 49 6e 63 72 52 65 66 43 6f     Tcl_IncrRefCo
1b20: 75 6e 74 28 69 50 74 72 2d 3e 65 63 56 61 72 29  unt(iPtr->ecVar)
1b30: 3b 0a 40 40 20 2d 31 34 36 37 2c 36 20 2b 31 34  ;.@@ -1467,6 +14
1b40: 37 34 2c 31 30 20 40 40 20 44 65 6c 65 74 65 49  74,10 @@ DeleteI
1b50: 6e 74 65 72 70 50 72 6f 63 28 0a 20 09 54 63 6c  nterpProc(. .Tcl
1b60: 5f 44 65 63 72 52 65 66 43 6f 75 6e 74 28 69 50  _DecrRefCount(iP
1b70: 74 72 2d 3e 65 72 72 6f 72 49 6e 66 6f 29 3b 0a  tr->errorInfo);.
1b80: 20 09 69 50 74 72 2d 3e 65 72 72 6f 72 49 6e 66   .iPtr->errorInf
1b90: 6f 20 3d 20 4e 55 4c 4c 3b 0a 20 20 20 20 20 7d  o = NULL;.     }
1ba0: 0a 2b 20 20 20 20 54 63 6c 5f 44 65 63 72 52 65  .+    Tcl_DecrRe
1bb0: 66 43 6f 75 6e 74 28 69 50 74 72 2d 3e 65 72 72  fCount(iPtr->err
1bc0: 6f 72 53 74 61 63 6b 29 3b 0a 2b 20 20 20 20 69  orStack);.+    i
1bd0: 50 74 72 2d 3e 65 72 72 6f 72 53 74 61 63 6b 20  Ptr->errorStack 
1be0: 3d 20 4e 55 4c 4c 3b 0a 2b 20 20 20 20 54 63 6c  = NULL;.+    Tcl
1bf0: 5f 44 65 63 72 52 65 66 43 6f 75 6e 74 28 69 50  _DecrRefCount(iP
1c00: 74 72 2d 3e 75 70 4c 69 74 65 72 61 6c 29 3b 0a  tr->upLiteral);.
1c10: 2b 20 20 20 20 54 63 6c 5f 44 65 63 72 52 65 66  +    Tcl_DecrRef
1c20: 43 6f 75 6e 74 28 69 50 74 72 2d 3e 63 61 6c 6c  Count(iPtr->call
1c30: 4c 69 74 65 72 61 6c 29 3b 0a 20 20 20 20 20 69  Literal);.     i
1c40: 66 20 28 69 50 74 72 2d 3e 72 65 74 75 72 6e 4f  f (iPtr->returnO
1c50: 70 74 73 29 20 7b 0a 20 09 54 63 6c 5f 44 65 63  pts) {. .Tcl_Dec
1c60: 72 52 65 66 43 6f 75 6e 74 28 69 50 74 72 2d 3e  rRefCount(iPtr->
1c70: 72 65 74 75 72 6e 4f 70 74 73 29 3b 0a 20 20 20  returnOpts);.   
1c80: 20 20 7d 0a 40 40 20 2d 38 39 34 33 2c 35 20 2b    }.@@ -8943,5 +
1c90: 38 39 35 34 2c 37 20 40 40 20 54 63 6c 49 6e 66  8954,7 @@ TclInf
1ca0: 6f 43 6f 72 6f 75 74 69 6e 65 43 6d 64 28 0a 20  oCoroutineCmd(. 
1cb0: 20 2a 20 6d 6f 64 65 3a 20 63 0a 20 20 2a 20 63   * mode: c.  * c
1cc0: 2d 62 61 73 69 63 2d 6f 66 66 73 65 74 3a 20 34  -basic-offset: 4
1cd0: 0a 20 20 2a 20 66 69 6c 6c 2d 63 6f 6c 75 6d 6e  .  * fill-column
1ce0: 3a 20 37 38 0a 2b 20 2a 20 74 61 62 2d 77 69 64  : 78.+ * tab-wid
1cf0: 74 68 3a 20 38 0a 2b 20 2a 20 69 6e 64 65 6e 74  th: 8.+ * indent
1d00: 2d 74 61 62 73 2d 6d 6f 64 65 3a 20 6e 69 6c 0a  -tabs-mode: nil.
1d10: 20 20 2a 20 45 6e 64 3a 0a 20 20 2a 2f 0a 49 6e    * End:.  */.In
1d20: 64 65 78 3a 20 67 65 6e 65 72 69 63 2f 74 63 6c  dex: generic/tcl
1d30: 43 6d 64 49 4c 2e 63 0a 3d 3d 3d 3d 3d 3d 3d 3d  CmdIL.c.========
1d40: 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d  ================
1d50: 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d  ================
1d60: 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d  ================
1d70: 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 0a 52 43 53 20  ===========.RCS 
1d80: 66 69 6c 65 3a 20 2f 63 76 73 72 6f 6f 74 2f 74  file: /cvsroot/t
1d90: 63 6c 2f 74 63 6c 2f 67 65 6e 65 72 69 63 2f 74  cl/tcl/generic/t
1da0: 63 6c 43 6d 64 49 4c 2e 63 2c 76 0a 72 65 74 72  clCmdIL.c,v.retr
1db0: 69 65 76 69 6e 67 20 72 65 76 69 73 69 6f 6e 20  ieving revision 
1dc0: 31 2e 31 38 30 0a 64 69 66 66 20 2d 75 20 2d 70  1.180.diff -u -p
1dd0: 20 2d 75 20 2d 70 20 2d 72 31 2e 31 38 30 20 74   -u -p -r1.180 t
1de0: 63 6c 43 6d 64 49 4c 2e 63 0a 2d 2d 2d 20 67 65  clCmdIL.c.--- ge
1df0: 6e 65 72 69 63 2f 74 63 6c 43 6d 64 49 4c 2e 63  neric/tclCmdIL.c
1e00: 09 35 20 4d 61 72 20 32 30 31 30 20 31 34 3a 33  .5 Mar 2010 14:3
1e10: 34 3a 30 33 20 2d 30 30 30 30 09 31 2e 31 38 30  4:03 -0000.1.180
1e20: 0a 2b 2b 2b 20 67 65 6e 65 72 69 63 2f 74 63 6c  .+++ generic/tcl
1e30: 43 6d 64 49 4c 2e 63 09 33 31 20 4d 61 72 20 32  CmdIL.c.31 Mar 2
1e40: 30 31 30 20 31 34 3a 31 34 3a 33 39 20 2d 30 30  010 14:14:39 -00
1e50: 30 30 0a 40 40 20 2d 31 31 38 2c 36 20 2b 31 31  00.@@ -118,6 +11
1e60: 38 2c 39 20 40 40 20 73 74 61 74 69 63 20 69 6e  8,9 @@ static in
1e70: 74 09 09 49 6e 66 6f 43 6f 6d 70 6c 65 74 65 43  t..InfoCompleteC
1e80: 6d 64 28 43 6c 69 65 6e 74 44 61 74 61 20 64 0a  md(ClientData d.
1e90: 20 09 09 09 20 20 20 20 69 6e 74 20 6f 62 6a 63   ...    int objc
1ea0: 2c 20 54 63 6c 5f 4f 62 6a 20 2a 63 6f 6e 73 74  , Tcl_Obj *const
1eb0: 20 6f 62 6a 76 5b 5d 29 3b 0a 20 73 74 61 74 69   objv[]);. stati
1ec0: 63 20 69 6e 74 09 09 49 6e 66 6f 44 65 66 61 75  c int..InfoDefau
1ed0: 6c 74 43 6d 64 28 43 6c 69 65 6e 74 44 61 74 61  ltCmd(ClientData
1ee0: 20 64 75 6d 6d 79 2c 20 54 63 6c 5f 49 6e 74 65   dummy, Tcl_Inte
1ef0: 72 70 20 2a 69 6e 74 65 72 70 2c 0a 20 09 09 09  rp *interp,. ...
1f00: 20 20 20 20 69 6e 74 20 6f 62 6a 63 2c 20 54 63      int objc, Tc
1f10: 6c 5f 4f 62 6a 20 2a 63 6f 6e 73 74 20 6f 62 6a  l_Obj *const obj
1f20: 76 5b 5d 29 3b 0a 2b 2f 2a 20 54 49 50 20 23 33  v[]);.+/* TIP #3
1f30: 34 38 20 2d 20 4e 65 77 20 27 69 6e 66 6f 27 20  48 - New 'info' 
1f40: 73 75 62 63 6f 6d 6d 61 6e 64 20 27 65 72 72 6f  subcommand 'erro
1f50: 72 73 74 61 63 6b 27 20 2a 2f 0a 2b 73 74 61 74  rstack' */.+stat
1f60: 69 63 20 69 6e 74 09 09 49 6e 66 6f 45 72 72 6f  ic int..InfoErro
1f70: 72 53 74 61 63 6b 43 6d 64 28 43 6c 69 65 6e 74  rStackCmd(Client
1f80: 44 61 74 61 20 64 75 6d 6d 79 2c 20 54 63 6c 5f  Data dummy, Tcl_
1f90: 49 6e 74 65 72 70 20 2a 69 6e 74 65 72 70 2c 0a  Interp *interp,.
1fa0: 2b 09 09 09 20 20 20 20 69 6e 74 20 6f 62 6a 63  +...    int objc
1fb0: 2c 20 54 63 6c 5f 4f 62 6a 20 2a 63 6f 6e 73 74  , Tcl_Obj *const
1fc0: 20 6f 62 6a 76 5b 5d 29 3b 0a 20 2f 2a 20 54 49   objv[]);. /* TI
1fd0: 50 20 23 32 38 30 20 2d 20 4e 65 77 20 27 69 6e  P #280 - New 'in
1fe0: 66 6f 27 20 73 75 62 63 6f 6d 6d 61 6e 64 20 27  fo' subcommand '
1ff0: 66 72 61 6d 65 27 20 2a 2f 0a 20 73 74 61 74 69  frame' */. stati
2000: 63 20 69 6e 74 09 09 49 6e 66 6f 46 72 61 6d 65  c int..InfoFrame
2010: 43 6d 64 28 43 6c 69 65 6e 74 44 61 74 61 20 64  Cmd(ClientData d
2020: 75 6d 6d 79 2c 20 54 63 6c 5f 49 6e 74 65 72 70  ummy, Tcl_Interp
2030: 20 2a 69 6e 74 65 72 70 2c 0a 20 09 09 09 20 20   *interp,. ...  
2040: 20 20 69 6e 74 20 6f 62 6a 63 2c 20 54 63 6c 5f    int objc, Tcl_
2050: 4f 62 6a 20 2a 63 6f 6e 73 74 20 6f 62 6a 76 5b  Obj *const objv[
2060: 5d 29 3b 0a 40 40 20 2d 31 36 34 2c 36 20 2b 31  ]);.@@ -164,6 +1
2070: 36 37 2c 37 20 40 40 20 73 74 61 74 69 63 20 63  67,7 @@ static c
2080: 6f 6e 73 74 20 45 6e 73 65 6d 62 6c 65 49 6d 70  onst EnsembleImp
2090: 6c 4d 61 70 20 64 65 66 61 75 6c 74 49 6e 66 6f  lMap defaultInfo
20a0: 0a 20 20 20 20 20 7b 22 63 6f 6d 70 6c 65 74 65  .     {"complete
20b0: 22 2c 09 20 20 20 49 6e 66 6f 43 6f 6d 70 6c 65  ",.   InfoComple
20c0: 74 65 43 6d 64 2c 09 20 20 20 20 4e 55 4c 4c 2c  teCmd,.    NULL,
20d0: 20 4e 55 4c 4c 2c 20 4e 55 4c 4c 7d 2c 0a 20 20   NULL, NULL},.  
20e0: 20 20 20 7b 22 63 6f 72 6f 75 74 69 6e 65 22 2c     {"coroutine",
20f0: 09 20 20 20 54 63 6c 49 6e 66 6f 43 6f 72 6f 75  .   TclInfoCorou
2100: 74 69 6e 65 43 6d 64 2c 20 20 20 20 20 4e 55 4c  tineCmd,     NUL
2110: 4c 2c 20 4e 55 4c 4c 2c 20 4e 55 4c 4c 7d 2c 0a  L, NULL, NULL},.
2120: 20 20 20 20 20 7b 22 64 65 66 61 75 6c 74 22 2c       {"default",
2130: 09 09 20 20 20 49 6e 66 6f 44 65 66 61 75 6c 74  ..   InfoDefault
2140: 43 6d 64 2c 09 20 20 20 20 4e 55 4c 4c 2c 20 4e  Cmd,.    NULL, N
2150: 55 4c 4c 2c 20 4e 55 4c 4c 7d 2c 0a 2b 20 20 20  ULL, NULL},.+   
2160: 20 7b 22 65 72 72 6f 72 73 74 61 63 6b 22 2c 09   {"errorstack",.
2170: 20 20 20 49 6e 66 6f 45 72 72 6f 72 53 74 61 63     InfoErrorStac
2180: 6b 43 6d 64 2c 09 20 20 20 20 4e 55 4c 4c 2c 20  kCmd,.    NULL, 
2190: 4e 55 4c 4c 2c 20 4e 55 4c 4c 7d 2c 0a 20 20 20  NULL, NULL},.   
21a0: 20 20 7b 22 65 78 69 73 74 73 22 2c 09 09 20 20    {"exists",..  
21b0: 20 54 63 6c 49 6e 66 6f 45 78 69 73 74 73 43 6d   TclInfoExistsCm
21c0: 64 2c 09 20 20 20 20 54 63 6c 43 6f 6d 70 69 6c  d,.    TclCompil
21d0: 65 49 6e 66 6f 45 78 69 73 74 73 43 6d 64 2c 20  eInfoExistsCmd, 
21e0: 4e 55 4c 4c 2c 20 4e 55 4c 4c 7d 2c 0a 20 20 20  NULL, NULL},.   
21f0: 20 20 7b 22 66 72 61 6d 65 22 2c 09 09 20 20 20    {"frame",..   
2200: 49 6e 66 6f 46 72 61 6d 65 43 6d 64 2c 09 20 20  InfoFrameCmd,.  
2210: 20 20 4e 55 4c 4c 2c 20 4e 55 4c 4c 2c 20 4e 55    NULL, NULL, NU
2220: 4c 4c 7d 2c 0a 20 20 20 20 20 7b 22 66 75 6e 63  LL},.     {"func
2230: 74 69 6f 6e 73 22 2c 09 20 20 20 49 6e 66 6f 46  tions",.   InfoF
2240: 75 6e 63 74 69 6f 6e 73 43 6d 64 2c 09 20 20 20  unctionsCmd,.   
2250: 20 4e 55 4c 4c 2c 20 4e 55 4c 4c 2c 20 4e 55 4c   NULL, NULL, NUL
2260: 4c 7d 2c 0a 40 40 20 2d 31 30 32 32 2c 36 20 2b  L},.@@ -1022,6 +
2270: 31 30 32 36 2c 35 35 20 40 40 20 49 6e 66 6f 44  1026,55 @@ InfoD
2280: 65 66 61 75 6c 74 43 6d 64 28 0a 20 2f 2a 0a 20  efaultCmd(. /*. 
2290: 20 2a 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d   *--------------
22a0: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d  ----------------
22b0: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d  ----------------
22c0: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d  ----------------
22d0: 2d 2d 2d 2d 2d 2d 2d 2d 0a 20 20 2a 0a 2b 20 2a  --------.  *.+ *
22e0: 20 49 6e 66 6f 45 72 72 6f 72 53 74 61 63 6b 43   InfoErrorStackC
22f0: 6d 64 20 2d 2d 0a 2b 20 2a 0a 2b 20 2a 09 43 61  md --.+ *.+ *.Ca
2300: 6c 6c 65 64 20 74 6f 20 69 6d 70 6c 65 6d 65 6e  lled to implemen
2310: 74 20 74 68 65 20 22 69 6e 66 6f 20 65 72 72 6f  t the "info erro
2320: 72 73 74 61 63 6b 22 20 63 6f 6d 6d 61 6e 64 20  rstack" command 
2330: 74 68 61 74 20 72 65 74 75 72 6e 73 20 69 6e 66  that returns inf
2340: 6f 72 6d 61 74 69 6f 6e 0a 2b 20 2a 09 61 62 6f  ormation.+ *.abo
2350: 75 74 20 74 68 65 20 6c 61 73 74 20 65 72 72 6f  ut the last erro
2360: 72 27 73 20 63 61 6c 6c 20 73 74 61 63 6b 2e 20  r's call stack. 
2370: 48 61 6e 64 6c 65 73 20 74 68 65 20 66 6f 6c 6c  Handles the foll
2380: 6f 77 69 6e 67 20 73 79 6e 74 61 78 3a 0a 2b 20  owing syntax:.+ 
2390: 2a 0a 2b 20 2a 09 20 20 20 20 69 6e 66 6f 20 65  *.+ *.    info e
23a0: 72 72 6f 72 73 74 61 63 6b 20 3f 69 6e 74 65 72  rrorstack ?inter
23b0: 70 3f 0a 2b 20 2a 0a 2b 20 2a 20 52 65 73 75 6c  p?.+ *.+ * Resul
23c0: 74 73 3a 0a 2b 20 2a 09 52 65 74 75 72 6e 73 20  ts:.+ *.Returns 
23d0: 54 43 4c 5f 4f 4b 20 69 66 20 73 75 63 63 65 73  TCL_OK if succes
23e0: 73 66 75 6c 20 61 6e 64 20 54 43 4c 5f 45 52 52  sful and TCL_ERR
23f0: 4f 52 20 69 66 20 74 68 65 72 65 20 69 73 20 61  OR if there is a
2400: 6e 20 65 72 72 6f 72 2e 0a 2b 20 2a 0a 2b 20 2a  n error..+ *.+ *
2410: 20 53 69 64 65 20 65 66 66 65 63 74 73 3a 0a 2b   Side effects:.+
2420: 20 2a 09 52 65 74 75 72 6e 73 20 61 20 72 65 73   *.Returns a res
2430: 75 6c 74 20 69 6e 20 74 68 65 20 69 6e 74 65 72  ult in the inter
2440: 70 72 65 74 65 72 27 73 20 72 65 73 75 6c 74 20  preter's result 
2450: 6f 62 6a 65 63 74 2e 20 49 66 20 74 68 65 72 65  object. If there
2460: 20 69 73 20 61 6e 0a 2b 20 2a 09 65 72 72 6f 72   is an.+ *.error
2470: 2c 20 74 68 65 20 72 65 73 75 6c 74 20 69 73 20  , the result is 
2480: 61 6e 20 65 72 72 6f 72 20 6d 65 73 73 61 67 65  an error message
2490: 2e 0a 2b 20 2a 0a 2b 20 2a 2d 2d 2d 2d 2d 2d 2d  ..+ *.+ *-------
24a0: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d  ----------------
24b0: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d  ----------------
24c0: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d  ----------------
24d0: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 0a  ---------------.
24e0: 2b 20 2a 2f 0a 2b 0a 2b 73 74 61 74 69 63 20 69  + */.+.+static i
24f0: 6e 74 0a 2b 49 6e 66 6f 45 72 72 6f 72 53 74 61  nt.+InfoErrorSta
2500: 63 6b 43 6d 64 28 0a 2b 20 20 20 20 43 6c 69 65  ckCmd(.+    Clie
2510: 6e 74 44 61 74 61 20 64 75 6d 6d 79 2c 09 09 2f  ntData dummy,../
2520: 2a 20 4e 6f 74 20 75 73 65 64 2e 20 2a 2f 0a 2b  * Not used. */.+
2530: 20 20 20 20 54 63 6c 5f 49 6e 74 65 72 70 20 2a      Tcl_Interp *
2540: 69 6e 74 65 72 70 2c 09 09 2f 2a 20 43 75 72 72  interp,../* Curr
2550: 65 6e 74 20 69 6e 74 65 72 70 72 65 74 65 72 2e  ent interpreter.
2560: 20 2a 2f 0a 2b 20 20 20 20 69 6e 74 20 6f 62 6a   */.+    int obj
2570: 63 2c 09 09 09 2f 2a 20 4e 75 6d 62 65 72 20 6f  c,.../* Number o
2580: 66 20 61 72 67 75 6d 65 6e 74 73 2e 20 2a 2f 0a  f arguments. */.
2590: 2b 20 20 20 20 54 63 6c 5f 4f 62 6a 20 2a 63 6f  +    Tcl_Obj *co
25a0: 6e 73 74 20 6f 62 6a 76 5b 5d 29 09 2f 2a 20 41  nst objv[])./* A
25b0: 72 67 75 6d 65 6e 74 20 6f 62 6a 65 63 74 73 2e  rgument objects.
25c0: 20 2a 2f 0a 2b 7b 0a 2b 20 20 20 20 54 63 6c 5f   */.+{.+    Tcl_
25d0: 49 6e 74 65 72 70 20 2a 74 61 72 67 65 74 3b 0a  Interp *target;.
25e0: 2b 20 20 20 20 49 6e 74 65 72 70 20 2a 69 50 74  +    Interp *iPt
25f0: 72 3b 0a 2b 0a 2b 20 20 20 20 69 66 20 28 28 6f  r;.+.+    if ((o
2600: 62 6a 63 20 21 3d 20 31 29 20 26 26 20 28 6f 62  bjc != 1) && (ob
2610: 6a 63 20 21 3d 20 32 29 29 20 7b 0a 2b 09 54 63  jc != 2)) {.+.Tc
2620: 6c 5f 57 72 6f 6e 67 4e 75 6d 41 72 67 73 28 69  l_WrongNumArgs(i
2630: 6e 74 65 72 70 2c 20 31 2c 20 6f 62 6a 76 2c 20  nterp, 1, objv, 
2640: 22 3f 69 6e 74 65 72 70 3f 22 29 3b 0a 2b 09 72  "?interp?");.+.r
2650: 65 74 75 72 6e 20 54 43 4c 5f 45 52 52 4f 52 3b  eturn TCL_ERROR;
2660: 0a 2b 20 20 20 20 7d 0a 2b 20 20 20 20 0a 2b 20  .+    }.+    .+ 
2670: 20 20 20 74 61 72 67 65 74 20 3d 20 69 6e 74 65     target = inte
2680: 72 70 3b 0a 2b 20 20 20 20 69 66 20 28 6f 62 6a  rp;.+    if (obj
2690: 63 20 3d 3d 20 32 29 20 7b 0a 2b 20 20 20 20 20  c == 2) {.+     
26a0: 20 20 20 74 61 72 67 65 74 20 3d 20 54 63 6c 5f     target = Tcl_
26b0: 47 65 74 53 6c 61 76 65 28 69 6e 74 65 72 70 2c  GetSlave(interp,
26c0: 20 54 63 6c 5f 47 65 74 53 74 72 69 6e 67 28 6f   Tcl_GetString(o
26d0: 62 6a 76 5b 31 5d 29 29 3b 0a 2b 20 20 20 20 20  bjv[1]));.+     
26e0: 20 20 20 69 66 20 28 74 61 72 67 65 74 20 3d 3d     if (target ==
26f0: 20 4e 55 4c 4c 29 20 7b 0a 2b 20 20 20 20 20 20   NULL) {.+      
2700: 20 20 20 20 20 20 72 65 74 75 72 6e 20 54 43 4c        return TCL
2710: 5f 45 52 52 4f 52 3b 0a 2b 20 20 20 20 20 20 20  _ERROR;.+       
2720: 20 7d 0a 2b 20 20 20 20 7d 0a 2b 0a 2b 20 20 20   }.+    }.+.+   
2730: 20 69 50 74 72 20 3d 20 28 49 6e 74 65 72 70 20   iPtr = (Interp 
2740: 2a 29 20 74 61 72 67 65 74 3b 0a 2b 20 20 20 20  *) target;.+    
2750: 54 63 6c 5f 53 65 74 4f 62 6a 52 65 73 75 6c 74  Tcl_SetObjResult
2760: 28 69 6e 74 65 72 70 2c 20 69 50 74 72 2d 3e 65  (interp, iPtr->e
2770: 72 72 6f 72 53 74 61 63 6b 29 3b 0a 2b 20 20 20  rrorStack);.+   
2780: 20 0a 2b 20 20 20 20 72 65 74 75 72 6e 20 54 43   .+    return TC
2790: 4c 5f 4f 4b 3b 0a 2b 7d 0a 2b 0c 0a 2b 2f 2a 0a  L_OK;.+}.+..+/*.
27a0: 2b 20 2a 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d  + *-------------
27b0: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d  ----------------
27c0: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d  ----------------
27d0: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d  ----------------
27e0: 2d 2d 2d 2d 2d 2d 2d 2d 2d 0a 2b 20 2a 0a 20 20  ---------.+ *.  
27f0: 2a 20 54 63 6c 49 6e 66 6f 45 78 69 73 74 73 43  * TclInfoExistsC
2800: 6d 64 20 2d 2d 0a 20 20 2a 0a 20 20 2a 09 43 61  md --.  *.  *.Ca
2810: 6c 6c 65 64 20 74 6f 20 69 6d 70 6c 65 6d 65 6e  lled to implemen
2820: 74 20 74 68 65 20 22 69 6e 66 6f 20 65 78 69 73  t the "info exis
2830: 74 73 22 20 63 6f 6d 6d 61 6e 64 20 74 68 61 74  ts" command that
2840: 20 64 65 74 65 72 6d 69 6e 65 73 20 77 68 65 74   determines whet
2850: 68 65 72 0a 40 40 20 2d 34 34 30 31 2c 35 20 2b  her.@@ -4401,5 +
2860: 34 34 35 34 2c 37 20 40 40 20 53 65 6c 65 63 74  4454,7 @@ Select
2870: 4f 62 6a 46 72 6f 6d 53 75 62 6c 69 73 74 28 0a  ObjFromSublist(.
2880: 20 20 2a 20 6d 6f 64 65 3a 20 63 0a 20 20 2a 20    * mode: c.  * 
2890: 63 2d 62 61 73 69 63 2d 6f 66 66 73 65 74 3a 20  c-basic-offset: 
28a0: 34 0a 20 20 2a 20 66 69 6c 6c 2d 63 6f 6c 75 6d  4.  * fill-colum
28b0: 6e 3a 20 37 38 0a 2b 20 2a 20 74 61 62 2d 77 69  n: 78.+ * tab-wi
28c0: 64 74 68 3a 20 38 0a 2b 20 2a 20 69 6e 64 65 6e  dth: 8.+ * inden
28d0: 74 2d 74 61 62 73 2d 6d 6f 64 65 3a 20 6e 69 6c  t-tabs-mode: nil
28e0: 0a 20 20 2a 20 45 6e 64 3a 0a 20 20 2a 2f 0a 49  .  * End:.  */.I
28f0: 6e 64 65 78 3a 20 67 65 6e 65 72 69 63 2f 74 63  ndex: generic/tc
2900: 6c 49 6e 74 2e 68 0a 3d 3d 3d 3d 3d 3d 3d 3d 3d  lInt.h.=========
2910: 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d  ================
2920: 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d  ================
2930: 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d  ================
2940: 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 0a 52 43 53 20 66  ==========.RCS f
2950: 69 6c 65 3a 20 2f 63 76 73 72 6f 6f 74 2f 74 63  ile: /cvsroot/tc
2960: 6c 2f 74 63 6c 2f 67 65 6e 65 72 69 63 2f 74 63  l/tcl/generic/tc
2970: 6c 49 6e 74 2e 68 2c 76 0a 72 65 74 72 69 65 76  lInt.h,v.retriev
2980: 69 6e 67 20 72 65 76 69 73 69 6f 6e 20 31 2e 34  ing revision 1.4
2990: 36 36 0a 64 69 66 66 20 2d 75 20 2d 70 20 2d 75  66.diff -u -p -u
29a0: 20 2d 70 20 2d 72 31 2e 34 36 36 20 74 63 6c 49   -p -r1.466 tclI
29b0: 6e 74 2e 68 0a 2d 2d 2d 20 67 65 6e 65 72 69 63  nt.h.--- generic
29c0: 2f 74 63 6c 49 6e 74 2e 68 09 32 37 20 4d 61 72  /tclInt.h.27 Mar
29d0: 20 32 30 31 30 20 32 32 3a 34 30 3a 31 34 20 2d   2010 22:40:14 -
29e0: 30 30 30 30 09 31 2e 34 36 36 0a 2b 2b 2b 20 67  0000.1.466.+++ g
29f0: 65 6e 65 72 69 63 2f 74 63 6c 49 6e 74 2e 68 09  eneric/tclInt.h.
2a00: 33 31 20 4d 61 72 20 32 30 31 30 20 31 34 3a 31  31 Mar 2010 14:1
2a10: 34 3a 34 30 20 2d 30 30 30 30 0a 40 40 20 2d 31  4:40 -0000.@@ -1
2a20: 39 38 34 2c 36 20 2b 31 39 38 34 2c 31 30 20 40  984,6 +1984,10 @
2a30: 40 20 74 79 70 65 64 65 66 20 73 74 72 75 63 74  @ typedef struct
2a40: 20 49 6e 74 65 72 70 20 7b 0a 20 20 20 20 20 54   Interp {.     T
2a50: 63 6c 5f 4f 62 6a 20 2a 65 69 56 61 72 3b 09 09  cl_Obj *eiVar;..
2a60: 2f 2a 20 63 61 63 68 65 64 20 72 65 66 20 74 6f  /* cached ref to
2a70: 20 3a 3a 65 72 72 6f 72 49 6e 66 6f 20 76 61 72   ::errorInfo var
2a80: 69 61 62 6c 65 2e 20 2a 2f 0a 20 20 20 20 20 54  iable. */.     T
2a90: 63 6c 5f 4f 62 6a 20 2a 65 72 72 6f 72 43 6f 64  cl_Obj *errorCod
2aa0: 65 3b 09 09 2f 2a 20 65 72 72 6f 72 43 6f 64 65  e;../* errorCode
2ab0: 20 76 61 6c 75 65 20 28 6e 6f 77 20 61 73 20 61   value (now as a
2ac0: 20 54 63 6c 5f 4f 62 6a 29 2e 20 2a 2f 0a 20 20   Tcl_Obj). */.  
2ad0: 20 20 20 54 63 6c 5f 4f 62 6a 20 2a 65 63 56 61     Tcl_Obj *ecVa
2ae0: 72 3b 09 09 2f 2a 20 63 61 63 68 65 64 20 72 65  r;../* cached re
2af0: 66 20 74 6f 20 3a 3a 65 72 72 6f 72 49 6e 66 6f  f to ::errorInfo
2b00: 20 76 61 72 69 61 62 6c 65 2e 20 2a 2f 0a 2b 20   variable. */.+ 
2b10: 20 20 20 54 63 6c 5f 4f 62 6a 20 2a 65 72 72 6f     Tcl_Obj *erro
2b20: 72 53 74 61 63 6b 3b 09 2f 2a 20 5b 69 6e 66 6f  rStack;./* [info
2b30: 20 65 72 72 6f 72 73 74 61 63 6b 5d 20 76 61 6c   errorstack] val
2b40: 75 65 20 28 61 73 20 61 20 54 63 6c 5f 4f 62 6a  ue (as a Tcl_Obj
2b50: 29 2e 20 2a 2f 0a 2b 20 20 20 20 54 63 6c 5f 4f  ). */.+    Tcl_O
2b60: 62 6a 20 2a 75 70 4c 69 74 65 72 61 6c 3b 09 09  bj *upLiteral;..
2b70: 2f 2a 20 22 55 50 22 20 6c 69 74 65 72 61 6c 20  /* "UP" literal 
2b80: 66 6f 72 20 5b 69 6e 66 6f 20 65 72 72 6f 72 73  for [info errors
2b90: 74 61 63 6b 5d 20 2a 2f 0a 2b 20 20 20 20 54 63  tack] */.+    Tc
2ba0: 6c 5f 4f 62 6a 20 2a 63 61 6c 6c 4c 69 74 65 72  l_Obj *callLiter
2bb0: 61 6c 3b 09 2f 2a 20 22 43 41 4c 4c 22 20 6c 69  al;./* "CALL" li
2bc0: 74 65 72 61 6c 20 66 6f 72 20 5b 69 6e 66 6f 20  teral for [info 
2bd0: 65 72 72 6f 72 73 74 61 63 6b 5d 20 2a 2f 0a 2b  errorstack] */.+
2be0: 20 20 20 20 69 6e 74 20 72 65 73 65 74 45 72 72      int resetErr
2bf0: 6f 72 53 74 61 63 6b 3b 20 20 20 20 20 20 20 20  orStack;        
2c00: 2f 2a 20 63 6f 6e 74 72 6f 6c 73 20 63 6c 65 61  /* controls clea
2c10: 6e 69 6e 67 20 75 70 20 6f 66 20 3a 3a 65 72 72  ning up of ::err
2c20: 6f 72 53 74 61 63 6b 20 2a 2f 0a 20 20 20 20 20  orStack */.     
2c30: 69 6e 74 20 72 65 74 75 72 6e 4c 65 76 65 6c 3b  int returnLevel;
2c40: 09 09 2f 2a 20 5b 72 65 74 75 72 6e 20 2d 6c 65  ../* [return -le
2c50: 76 65 6c 5d 20 70 61 72 61 6d 65 74 65 72 2e 20  vel] parameter. 
2c60: 2a 2f 0a 20 0a 20 20 20 20 20 2f 2a 0a 49 6e 64  */. .     /*.Ind
2c70: 65 78 3a 20 67 65 6e 65 72 69 63 2f 74 63 6c 4e  ex: generic/tclN
2c80: 61 6d 65 73 70 2e 63 0a 3d 3d 3d 3d 3d 3d 3d 3d  amesp.c.========
2c90: 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d  ================
2ca0: 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d  ================
2cb0: 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d  ================
2cc0: 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 0a 52 43 53 20  ===========.RCS 
2cd0: 66 69 6c 65 3a 20 2f 63 76 73 72 6f 6f 74 2f 74  file: /cvsroot/t
2ce0: 63 6c 2f 74 63 6c 2f 67 65 6e 65 72 69 63 2f 74  cl/tcl/generic/t
2cf0: 63 6c 4e 61 6d 65 73 70 2e 63 2c 76 0a 72 65 74  clNamesp.c,v.ret
2d00: 72 69 65 76 69 6e 67 20 72 65 76 69 73 69 6f 6e  rieving revision
2d10: 20 31 2e 32 30 34 0a 64 69 66 66 20 2d 75 20 2d   1.204.diff -u -
2d20: 70 20 2d 75 20 2d 70 20 2d 72 31 2e 32 30 34 20  p -u -p -r1.204 
2d30: 74 63 6c 4e 61 6d 65 73 70 2e 63 0a 2d 2d 2d 20  tclNamesp.c.--- 
2d40: 67 65 6e 65 72 69 63 2f 74 63 6c 4e 61 6d 65 73  generic/tclNames
2d50: 70 2e 63 09 35 20 4d 61 72 20 32 30 31 30 20 31  p.c.5 Mar 2010 1
2d60: 34 3a 33 34 3a 30 34 20 2d 30 30 30 30 09 31 2e  4:34:04 -0000.1.
2d70: 32 30 34 0a 2b 2b 2b 20 67 65 6e 65 72 69 63 2f  204.+++ generic/
2d80: 74 63 6c 4e 61 6d 65 73 70 2e 63 09 33 31 20 4d  tclNamesp.c.31 M
2d90: 61 72 20 32 30 31 30 20 31 34 3a 31 34 3a 34 30  ar 2010 14:14:40
2da0: 20 2d 30 30 30 30 0a 40 40 20 2d 34 38 37 33 2c   -0000.@@ -4873,
2db0: 37 20 2b 34 38 37 33 2c 37 20 40 40 20 54 63 6c  7 +4873,7 @@ Tcl
2dc0: 5f 4c 6f 67 43 6f 6d 6d 61 6e 64 49 6e 66 6f 28  _LogCommandInfo(
2dd0: 0a 20 7b 0a 20 20 20 20 20 72 65 67 69 73 74 65  . {.     registe
2de0: 72 20 63 6f 6e 73 74 20 63 68 61 72 20 2a 70 3b  r const char *p;
2df0: 0a 20 20 20 20 20 49 6e 74 65 72 70 20 2a 69 50  .     Interp *iP
2e00: 74 72 20 3d 20 28 49 6e 74 65 72 70 20 2a 29 20  tr = (Interp *) 
2e10: 69 6e 74 65 72 70 3b 0a 2d 20 20 20 20 69 6e 74  interp;.-    int
2e20: 20 6f 76 65 72 66 6c 6f 77 2c 20 6c 69 6d 69 74   overflow, limit
2e30: 20 3d 20 31 35 30 3b 0a 2b 20 20 20 20 69 6e 74   = 150;.+    int
2e40: 20 6f 76 65 72 66 6c 6f 77 2c 20 6c 69 6d 69 74   overflow, limit
2e50: 20 3d 20 31 35 30 2c 20 6c 65 6e 3b 0a 20 20 20   = 150, len;.   
2e60: 20 20 56 61 72 20 2a 76 61 72 50 74 72 2c 20 2a    Var *varPtr, *
2e70: 61 72 72 61 79 50 74 72 3b 0a 20 0a 20 20 20 20  arrayPtr;. .    
2e80: 20 69 66 20 28 69 50 74 72 2d 3e 66 6c 61 67 73   if (iPtr->flags
2e90: 20 26 20 45 52 52 5f 41 4c 52 45 41 44 59 5f 4c   & ERR_ALREADY_L
2ea0: 4f 47 47 45 44 29 20 7b 0a 40 40 20 2d 34 39 33  OGGED) {.@@ -493
2eb0: 32 2c 36 20 2b 34 39 33 32 2c 34 34 20 40 40 20  2,6 +4932,44 @@ 
2ec0: 54 63 6c 5f 4c 6f 67 43 6f 6d 6d 61 6e 64 49 6e  Tcl_LogCommandIn
2ed0: 66 6f 28 0a 20 09 09 20 20 20 20 54 43 4c 5f 47  fo(. ..    TCL_G
2ee0: 4c 4f 42 41 4c 5f 4f 4e 4c 59 29 3b 0a 20 09 7d  LOBAL_ONLY);. .}
2ef0: 0a 20 20 20 20 20 7d 0a 2b 0a 2b 20 20 20 20 2f  .     }.+.+    /
2f00: 2a 0a 2b 20 20 20 20 20 2a 20 54 49 50 20 23 33  *.+     * TIP #3
2f10: 34 38 0a 2b 20 20 20 20 20 2a 2f 0a 2b 0a 2b 20  48.+     */.+.+ 
2f20: 20 20 20 69 66 20 28 54 63 6c 5f 49 73 53 68 61     if (Tcl_IsSha
2f30: 72 65 64 28 69 50 74 72 2d 3e 65 72 72 6f 72 53  red(iPtr->errorS
2f40: 74 61 63 6b 29 29 20 7b 0a 2b 20 20 20 20 20 20  tack)) {.+      
2f50: 20 20 54 63 6c 5f 4f 62 6a 20 2a 6e 65 77 4f 62    Tcl_Obj *newOb
2f60: 6a 3b 0a 2b 20 20 20 20 20 20 20 20 20 20 20 20  j;.+            
2f70: 0a 2b 20 20 20 20 20 20 20 20 6e 65 77 4f 62 6a  .+        newObj
2f80: 20 3d 20 54 63 6c 5f 44 75 70 6c 69 63 61 74 65   = Tcl_Duplicate
2f90: 4f 62 6a 28 69 50 74 72 2d 3e 65 72 72 6f 72 53  Obj(iPtr->errorS
2fa0: 74 61 63 6b 29 3b 0a 2b 20 20 20 20 20 20 20 20  tack);.+        
2fb0: 54 63 6c 5f 44 65 63 72 52 65 66 43 6f 75 6e 74  Tcl_DecrRefCount
2fc0: 28 69 50 74 72 2d 3e 65 72 72 6f 72 53 74 61 63  (iPtr->errorStac
2fd0: 6b 29 3b 0a 2b 20 20 20 20 20 20 20 20 54 63 6c  k);.+        Tcl
2fe0: 5f 49 6e 63 72 52 65 66 43 6f 75 6e 74 28 6e 65  _IncrRefCount(ne
2ff0: 77 4f 62 6a 29 3b 0a 2b 20 20 20 20 20 20 20 20  wObj);.+        
3000: 69 50 74 72 2d 3e 65 72 72 6f 72 53 74 61 63 6b  iPtr->errorStack
3010: 20 3d 20 6e 65 77 4f 62 6a 3b 0a 2b 20 20 20 20   = newObj;.+    
3020: 7d 0a 2b 20 20 20 20 54 63 6c 5f 4c 69 73 74 4f  }.+    Tcl_ListO
3030: 62 6a 4c 65 6e 67 74 68 28 69 6e 74 65 72 70 2c  bjLength(interp,
3040: 20 69 50 74 72 2d 3e 65 72 72 6f 72 53 74 61 63   iPtr->errorStac
3050: 6b 2c 20 26 6c 65 6e 29 3b 0a 2b 20 20 20 20 69  k, &len);.+    i
3060: 66 20 28 69 50 74 72 2d 3e 72 65 73 65 74 45 72  f (iPtr->resetEr
3070: 72 6f 72 53 74 61 63 6b 29 20 7b 0a 2b 20 20 20  rorStack) {.+   
3080: 20 20 20 20 20 69 50 74 72 2d 3e 72 65 73 65 74       iPtr->reset
3090: 45 72 72 6f 72 53 74 61 63 6b 20 3d 20 30 3b 0a  ErrorStack = 0;.
30a0: 2b 20 20 20 20 20 20 20 20 2f 2a 20 72 65 73 65  +        /* rese
30b0: 74 20 77 68 69 6c 65 20 6b 65 65 70 69 6e 67 20  t while keeping 
30c0: 74 68 65 20 6c 69 73 74 20 69 6e 74 72 65 70 20  the list intrep 
30d0: 61 73 20 6d 75 63 68 20 61 73 20 70 6f 73 73 69  as much as possi
30e0: 62 6c 65 20 2a 2f 0a 2b 20 20 20 20 20 20 20 20  ble */.+        
30f0: 54 63 6c 5f 4c 69 73 74 4f 62 6a 52 65 70 6c 61  Tcl_ListObjRepla
3100: 63 65 28 69 6e 74 65 72 70 2c 20 69 50 74 72 2d  ce(interp, iPtr-
3110: 3e 65 72 72 6f 72 53 74 61 63 6b 2c 20 30 2c 20  >errorStack, 0, 
3120: 6c 65 6e 2c 20 30 2c 20 4e 55 4c 4c 29 3b 0a 2b  len, 0, NULL);.+
3130: 20 20 20 20 20 20 20 20 6c 65 6e 3d 30 3b 0a 2b          len=0;.+
3140: 20 20 20 20 7d 20 0a 2b 0a 2b 20 20 20 20 69 66      } .+.+    if
3150: 20 28 69 50 74 72 2d 3e 76 61 72 46 72 61 6d 65   (iPtr->varFrame
3160: 50 74 72 20 21 3d 20 69 50 74 72 2d 3e 66 72 61  Ptr != iPtr->fra
3170: 6d 65 50 74 72 29 20 7b 0a 2b 20 20 20 20 20 20  mePtr) {.+      
3180: 20 20 2f 2a 20 75 70 6c 65 76 65 6c 20 63 61 73    /* uplevel cas
3190: 65 2c 20 5b 6c 61 70 70 65 6e 64 20 65 72 72 6f  e, [lappend erro
31a0: 72 73 74 61 63 6b 20 55 50 20 24 72 65 6c 61 74  rstack UP $relat
31b0: 69 76 65 6c 65 76 65 6c 5d 20 2a 2f 0a 2b 20 20  ivelevel] */.+  
31c0: 20 20 20 20 20 20 73 74 72 75 63 74 20 43 61 6c        struct Cal
31d0: 6c 46 72 61 6d 65 20 2a 66 72 61 6d 65 3b 0a 2b  lFrame *frame;.+
31e0: 20 20 20 20 20 20 20 20 69 6e 74 20 6e 3b 0a 2b          int n;.+
31f0: 0a 2b 20 20 20 20 20 20 20 20 66 6f 72 20 28 6e  .+        for (n
3200: 3d 30 2c 20 66 72 61 6d 65 3d 69 50 74 72 2d 3e  =0, frame=iPtr->
3210: 66 72 61 6d 65 50 74 72 3b 0a 2b 09 09 28 66 72  framePtr;.+..(fr
3220: 61 6d 65 20 26 26 20 28 66 72 61 6d 65 20 21 3d  ame && (frame !=
3230: 20 69 50 74 72 2d 3e 76 61 72 46 72 61 6d 65 50   iPtr->varFrameP
3240: 74 72 29 29 3b 0a 2b 09 09 6e 2b 2b 2c 20 66 72  tr));.+..n++, fr
3250: 61 6d 65 3d 66 72 61 6d 65 2d 3e 63 61 6c 6c 65  ame=frame->calle
3260: 72 56 61 72 50 74 72 29 3b 0a 2b 20 20 20 20 20  rVarPtr);.+     
3270: 20 20 20 54 63 6c 5f 4c 69 73 74 4f 62 6a 41 70     Tcl_ListObjAp
3280: 70 65 6e 64 45 6c 65 6d 65 6e 74 28 4e 55 4c 4c  pendElement(NULL
3290: 2c 20 69 50 74 72 2d 3e 65 72 72 6f 72 53 74 61  , iPtr->errorSta
32a0: 63 6b 2c 20 69 50 74 72 2d 3e 75 70 4c 69 74 65  ck, iPtr->upLite
32b0: 72 61 6c 29 3b 0a 2b 20 20 20 20 20 20 20 20 54  ral);.+        T
32c0: 63 6c 5f 4c 69 73 74 4f 62 6a 41 70 70 65 6e 64  cl_ListObjAppend
32d0: 45 6c 65 6d 65 6e 74 28 4e 55 4c 4c 2c 20 69 50  Element(NULL, iP
32e0: 74 72 2d 3e 65 72 72 6f 72 53 74 61 63 6b 2c 20  tr->errorStack, 
32f0: 54 63 6c 5f 4e 65 77 49 6e 74 4f 62 6a 28 6e 29  Tcl_NewIntObj(n)
3300: 29 3b 0a 2b 20 20 20 20 7d 20 65 6c 73 65 20 69  );.+    } else i
3310: 66 20 28 69 50 74 72 2d 3e 66 72 61 6d 65 50 74  f (iPtr->framePt
3320: 72 20 21 3d 20 69 50 74 72 2d 3e 72 6f 6f 74 46  r != iPtr->rootF
3330: 72 61 6d 65 50 74 72 29 20 7b 0a 2b 20 20 20 20  ramePtr) {.+    
3340: 20 20 20 20 2f 2a 20 6e 6f 72 6d 61 6c 20 63 61      /* normal ca
3350: 73 65 2c 20 5b 6c 61 70 70 65 6e 64 20 65 72 72  se, [lappend err
3360: 6f 72 73 74 61 63 6b 20 43 41 4c 4c 20 5b 69 6e  orstack CALL [in
3370: 66 6f 20 6c 65 76 65 6c 20 30 5d 5d 20 2a 2f 0a  fo level 0]] */.
3380: 2b 20 20 20 20 20 20 20 20 54 63 6c 5f 4c 69 73  +        Tcl_Lis
3390: 74 4f 62 6a 41 70 70 65 6e 64 45 6c 65 6d 65 6e  tObjAppendElemen
33a0: 74 28 4e 55 4c 4c 2c 20 69 50 74 72 2d 3e 65 72  t(NULL, iPtr->er
33b0: 72 6f 72 53 74 61 63 6b 2c 20 69 50 74 72 2d 3e  rorStack, iPtr->
33c0: 63 61 6c 6c 4c 69 74 65 72 61 6c 29 3b 0a 2b 20  callLiteral);.+ 
33d0: 20 20 20 20 20 20 20 54 63 6c 5f 4c 69 73 74 4f         Tcl_ListO
33e0: 62 6a 41 70 70 65 6e 64 45 6c 65 6d 65 6e 74 28  bjAppendElement(
33f0: 4e 55 4c 4c 2c 20 69 50 74 72 2d 3e 65 72 72 6f  NULL, iPtr->erro
3400: 72 53 74 61 63 6b 2c 0a 2b 20 20 20 20 20 20 20  rStack,.+       
3410: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
3420: 20 20 20 20 20 20 20 20 20 20 54 63 6c 5f 4e 65            Tcl_Ne
3430: 77 4c 69 73 74 4f 62 6a 28 69 50 74 72 2d 3e 76  wListObj(iPtr->v
3440: 61 72 46 72 61 6d 65 50 74 72 2d 3e 6f 62 6a 63  arFramePtr->objc
3450: 2c 0a 2b 20 20 20 20 20 20 20 20 20 20 20 20 20  ,.+             
3460: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
3470: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
3480: 20 20 20 69 50 74 72 2d 3e 76 61 72 46 72 61 6d     iPtr->varFram
3490: 65 50 74 72 2d 3e 6f 62 6a 76 29 29 3b 0a 2b 20  ePtr->objv));.+ 
34a0: 20 20 20 7d 0a 20 7d 0a 20 0c 0a 20 2f 2a 0a 40     }. }. .. /*.@
34b0: 40 20 2d 34 39 33 39 2c 35 20 2b 34 39 37 37 2c  @ -4939,5 +4977,
34c0: 37 20 40 40 20 54 63 6c 5f 4c 6f 67 43 6f 6d 6d  7 @@ Tcl_LogComm
34d0: 61 6e 64 49 6e 66 6f 28 0a 20 20 2a 20 6d 6f 64  andInfo(.  * mod
34e0: 65 3a 20 63 0a 20 20 2a 20 63 2d 62 61 73 69 63  e: c.  * c-basic
34f0: 2d 6f 66 66 73 65 74 3a 20 34 0a 20 20 2a 20 66  -offset: 4.  * f
3500: 69 6c 6c 2d 63 6f 6c 75 6d 6e 3a 20 37 38 0a 2b  ill-column: 78.+
3510: 20 2a 20 74 61 62 2d 77 69 64 74 68 3a 20 38 0a   * tab-width: 8.
3520: 2b 20 2a 20 69 6e 64 65 6e 74 2d 74 61 62 73 2d  + * indent-tabs-
3530: 6d 6f 64 65 3a 20 6e 69 6c 0a 20 20 2a 20 45 6e  mode: nil.  * En
3540: 64 3a 0a 20 20 2a 2f 0a 49 6e 64 65 78 3a 20 67  d:.  */.Index: g
3550: 65 6e 65 72 69 63 2f 74 63 6c 52 65 73 75 6c 74  eneric/tclResult
3560: 2e 63 0a 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d  .c.=============
3570: 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d  ================
3580: 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d  ================
3590: 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d  ================
35a0: 3d 3d 3d 3d 3d 3d 0a 52 43 53 20 66 69 6c 65 3a  ======.RCS file:
35b0: 20 2f 63 76 73 72 6f 6f 74 2f 74 63 6c 2f 74 63   /cvsroot/tcl/tc
35c0: 6c 2f 67 65 6e 65 72 69 63 2f 74 63 6c 52 65 73  l/generic/tclRes
35d0: 75 6c 74 2e 63 2c 76 0a 72 65 74 72 69 65 76 69  ult.c,v.retrievi
35e0: 6e 67 20 72 65 76 69 73 69 6f 6e 20 31 2e 36 30  ng revision 1.60
35f0: 0a 64 69 66 66 20 2d 75 20 2d 70 20 2d 75 20 2d  .diff -u -p -u -
3600: 70 20 2d 72 31 2e 36 30 20 74 63 6c 52 65 73 75  p -r1.60 tclResu
3610: 6c 74 2e 63 0a 2d 2d 2d 20 67 65 6e 65 72 69 63  lt.c.--- generic
3620: 2f 74 63 6c 52 65 73 75 6c 74 2e 63 09 33 30 20  /tclResult.c.30 
3630: 4d 61 72 20 32 30 31 30 20 31 33 3a 31 37 3a 31  Mar 2010 13:17:1
3640: 38 20 2d 30 30 30 30 09 31 2e 36 30 0a 2b 2b 2b  8 -0000.1.60.+++
3650: 20 67 65 6e 65 72 69 63 2f 74 63 6c 52 65 73 75   generic/tclResu
3660: 6c 74 2e 63 09 33 31 20 4d 61 72 20 32 30 31 30  lt.c.31 Mar 2010
3670: 20 31 34 3a 31 34 3a 34 31 20 2d 30 30 30 30 0a   14:14:41 -0000.
3680: 40 40 20 2d 31 39 2c 37 20 2b 31 39 2c 37 20 40  @@ -19,7 +19,7 @
3690: 40 0a 20 0a 20 65 6e 75 6d 20 72 65 74 75 72 6e  @. . enum return
36a0: 4b 65 79 73 20 7b 0a 20 20 20 20 20 4b 45 59 5f  Keys {.     KEY_
36b0: 43 4f 44 45 2c 09 4b 45 59 5f 45 52 52 4f 52 43  CODE,.KEY_ERRORC
36c0: 4f 44 45 2c 09 4b 45 59 5f 45 52 52 4f 52 49 4e  ODE,.KEY_ERRORIN
36d0: 46 4f 2c 09 4b 45 59 5f 45 52 52 4f 52 4c 49 4e  FO,.KEY_ERRORLIN
36e0: 45 2c 0a 2d 20 20 20 20 4b 45 59 5f 4c 45 56 45  E,.-    KEY_LEVE
36f0: 4c 2c 09 4b 45 59 5f 4f 50 54 49 4f 4e 53 2c 09  L,.KEY_OPTIONS,.
3700: 4b 45 59 5f 4c 41 53 54 0a 2b 20 20 20 20 4b 45  KEY_LAST.+    KE
3710: 59 5f 4c 45 56 45 4c 2c 09 4b 45 59 5f 4f 50 54  Y_LEVEL,.KEY_OPT
3720: 49 4f 4e 53 2c 09 4b 45 59 5f 45 52 52 4f 52 53  IONS,.KEY_ERRORS
3730: 54 41 43 4b 2c 09 4b 45 59 5f 4c 41 53 54 0a 20  TACK,.KEY_LAST. 
3740: 7d 3b 0a 20 0a 20 2f 2a 0a 40 40 20 2d 34 36 2c  };. . /*.@@ -46,
3750: 36 20 2b 34 36 2c 38 20 40 40 20 74 79 70 65 64  6 +46,8 @@ typed
3760: 65 66 20 73 74 72 75 63 74 20 49 6e 74 65 72 70  ef struct Interp
3770: 53 74 61 74 65 20 7b 0a 20 20 20 20 20 54 63 6c  State {.     Tcl
3780: 5f 4f 62 6a 20 2a 65 72 72 6f 72 43 6f 64 65 3b  _Obj *errorCode;
3790: 0a 20 20 20 20 20 54 63 6c 5f 4f 62 6a 20 2a 72  .     Tcl_Obj *r
37a0: 65 74 75 72 6e 4f 70 74 73 3b 0a 20 20 20 20 20  eturnOpts;.     
37b0: 54 63 6c 5f 4f 62 6a 20 2a 6f 62 6a 52 65 73 75  Tcl_Obj *objResu
37c0: 6c 74 3b 0a 2b 20 20 20 20 54 63 6c 5f 4f 62 6a  lt;.+    Tcl_Obj
37d0: 20 2a 65 72 72 6f 72 53 74 61 63 6b 3b 0a 2b 20   *errorStack;.+ 
37e0: 20 20 20 69 6e 74 20 72 65 73 65 74 45 72 72 6f     int resetErro
37f0: 72 53 74 61 63 6b 3b 0a 20 7d 20 49 6e 74 65 72  rStack;. } Inter
3800: 70 53 74 61 74 65 3b 0a 20 0c 0a 20 2f 2a 0a 40  pState;. .. /*.@
3810: 40 20 2d 38 32 2c 36 20 2b 38 34 2c 38 20 40 40  @ -82,6 +84,8 @@
3820: 20 54 63 6c 5f 53 61 76 65 49 6e 74 65 72 70 53   Tcl_SaveInterpS
3830: 74 61 74 65 28 0a 20 20 20 20 20 73 74 61 74 65  tate(.     state
3840: 50 74 72 2d 3e 72 65 74 75 72 6e 4c 65 76 65 6c  Ptr->returnLevel
3850: 20 3d 20 69 50 74 72 2d 3e 72 65 74 75 72 6e 4c   = iPtr->returnL
3860: 65 76 65 6c 3b 0a 20 20 20 20 20 73 74 61 74 65  evel;.     state
3870: 50 74 72 2d 3e 72 65 74 75 72 6e 43 6f 64 65 20  Ptr->returnCode 
3880: 3d 20 69 50 74 72 2d 3e 72 65 74 75 72 6e 43 6f  = iPtr->returnCo
3890: 64 65 3b 0a 20 20 20 20 20 73 74 61 74 65 50 74  de;.     statePt
38a0: 72 2d 3e 65 72 72 6f 72 49 6e 66 6f 20 3d 20 69  r->errorInfo = i
38b0: 50 74 72 2d 3e 65 72 72 6f 72 49 6e 66 6f 3b 0a  Ptr->errorInfo;.
38c0: 2b 20 20 20 20 73 74 61 74 65 50 74 72 2d 3e 65  +    statePtr->e
38d0: 72 72 6f 72 53 74 61 63 6b 20 3d 20 69 50 74 72  rrorStack = iPtr
38e0: 2d 3e 65 72 72 6f 72 53 74 61 63 6b 3b 0a 2b 20  ->errorStack;.+ 
38f0: 20 20 20 73 74 61 74 65 50 74 72 2d 3e 72 65 73     statePtr->res
3900: 65 74 45 72 72 6f 72 53 74 61 63 6b 20 3d 20 69  etErrorStack = i
3910: 50 74 72 2d 3e 72 65 73 65 74 45 72 72 6f 72 53  Ptr->resetErrorS
3920: 74 61 63 6b 3b 0a 20 20 20 20 20 69 66 20 28 73  tack;.     if (s
3930: 74 61 74 65 50 74 72 2d 3e 65 72 72 6f 72 49 6e  tatePtr->errorIn
3940: 66 6f 29 20 7b 0a 20 09 54 63 6c 5f 49 6e 63 72  fo) {. .Tcl_Incr
3950: 52 65 66 43 6f 75 6e 74 28 73 74 61 74 65 50 74  RefCount(statePt
3960: 72 2d 3e 65 72 72 6f 72 49 6e 66 6f 29 3b 0a 20  r->errorInfo);. 
3970: 20 20 20 20 7d 0a 40 40 20 2d 39 33 2c 36 20 2b      }.@@ -93,6 +
3980: 39 37 2c 39 20 40 40 20 54 63 6c 5f 53 61 76 65  97,9 @@ Tcl_Save
3990: 49 6e 74 65 72 70 53 74 61 74 65 28 0a 20 20 20  InterpState(.   
39a0: 20 20 69 66 20 28 73 74 61 74 65 50 74 72 2d 3e    if (statePtr->
39b0: 72 65 74 75 72 6e 4f 70 74 73 29 20 7b 0a 20 09  returnOpts) {. .
39c0: 54 63 6c 5f 49 6e 63 72 52 65 66 43 6f 75 6e 74  Tcl_IncrRefCount
39d0: 28 73 74 61 74 65 50 74 72 2d 3e 72 65 74 75 72  (statePtr->retur
39e0: 6e 4f 70 74 73 29 3b 0a 20 20 20 20 20 7d 0a 2b  nOpts);.     }.+
39f0: 20 20 20 20 69 66 20 28 73 74 61 74 65 50 74 72      if (statePtr
3a00: 2d 3e 65 72 72 6f 72 53 74 61 63 6b 29 20 7b 0a  ->errorStack) {.
3a10: 2b 09 54 63 6c 5f 49 6e 63 72 52 65 66 43 6f 75  +.Tcl_IncrRefCou
3a20: 6e 74 28 73 74 61 74 65 50 74 72 2d 3e 65 72 72  nt(statePtr->err
3a30: 6f 72 53 74 61 63 6b 29 3b 0a 2b 20 20 20 20 7d  orStack);.+    }
3a40: 0a 20 20 20 20 20 73 74 61 74 65 50 74 72 2d 3e  .     statePtr->
3a50: 6f 62 6a 52 65 73 75 6c 74 20 3d 20 54 63 6c 5f  objResult = Tcl_
3a60: 47 65 74 4f 62 6a 52 65 73 75 6c 74 28 69 6e 74  GetObjResult(int
3a70: 65 72 70 29 3b 0a 20 20 20 20 20 54 63 6c 5f 49  erp);.     Tcl_I
3a80: 6e 63 72 52 65 66 43 6f 75 6e 74 28 73 74 61 74  ncrRefCount(stat
3a90: 65 50 74 72 2d 3e 6f 62 6a 52 65 73 75 6c 74 29  ePtr->objResult)
3aa0: 3b 0a 20 20 20 20 20 72 65 74 75 72 6e 20 28 54  ;.     return (T
3ab0: 63 6c 5f 49 6e 74 65 72 70 53 74 61 74 65 29 20  cl_InterpState) 
3ac0: 73 74 61 74 65 50 74 72 3b 0a 40 40 20 2d 31 33  statePtr;.@@ -13
3ad0: 30 2c 36 20 2b 31 33 37 2c 37 20 40 40 20 54 63  0,6 +137,7 @@ Tc
3ae0: 6c 5f 52 65 73 74 6f 72 65 49 6e 74 65 72 70 53  l_RestoreInterpS
3af0: 74 61 74 65 28 0a 20 0a 20 20 20 20 20 69 50 74  tate(. .     iPt
3b00: 72 2d 3e 72 65 74 75 72 6e 4c 65 76 65 6c 20 3d  r->returnLevel =
3b10: 20 73 74 61 74 65 50 74 72 2d 3e 72 65 74 75 72   statePtr->retur
3b20: 6e 4c 65 76 65 6c 3b 0a 20 20 20 20 20 69 50 74  nLevel;.     iPt
3b30: 72 2d 3e 72 65 74 75 72 6e 43 6f 64 65 20 3d 20  r->returnCode = 
3b40: 73 74 61 74 65 50 74 72 2d 3e 72 65 74 75 72 6e  statePtr->return
3b50: 43 6f 64 65 3b 0a 2b 20 20 20 20 69 50 74 72 2d  Code;.+    iPtr-
3b60: 3e 72 65 73 65 74 45 72 72 6f 72 53 74 61 63 6b  >resetErrorStack
3b70: 20 3d 20 73 74 61 74 65 50 74 72 2d 3e 72 65 73   = statePtr->res
3b80: 65 74 45 72 72 6f 72 53 74 61 63 6b 3b 0a 20 20  etErrorStack;.  
3b90: 20 20 20 69 66 20 28 69 50 74 72 2d 3e 65 72 72     if (iPtr->err
3ba0: 6f 72 49 6e 66 6f 29 20 7b 0a 20 09 54 63 6c 5f  orInfo) {. .Tcl_
3bb0: 44 65 63 72 52 65 66 43 6f 75 6e 74 28 69 50 74  DecrRefCount(iPt
3bc0: 72 2d 3e 65 72 72 6f 72 49 6e 66 6f 29 3b 0a 20  r->errorInfo);. 
3bd0: 20 20 20 20 7d 0a 40 40 20 2d 31 34 34 2c 36 20      }.@@ -144,6 
3be0: 2b 31 35 32 2c 31 33 20 40 40 20 54 63 6c 5f 52  +152,13 @@ Tcl_R
3bf0: 65 73 74 6f 72 65 49 6e 74 65 72 70 53 74 61 74  estoreInterpStat
3c00: 65 28 0a 20 20 20 20 20 69 66 20 28 69 50 74 72  e(.     if (iPtr
3c10: 2d 3e 65 72 72 6f 72 43 6f 64 65 29 20 7b 0a 20  ->errorCode) {. 
3c20: 09 54 63 6c 5f 49 6e 63 72 52 65 66 43 6f 75 6e  .Tcl_IncrRefCoun
3c30: 74 28 69 50 74 72 2d 3e 65 72 72 6f 72 43 6f 64  t(iPtr->errorCod
3c40: 65 29 3b 0a 20 20 20 20 20 7d 0a 2b 20 20 20 20  e);.     }.+    
3c50: 69 66 20 28 69 50 74 72 2d 3e 65 72 72 6f 72 53  if (iPtr->errorS
3c60: 74 61 63 6b 29 20 7b 0a 2b 09 54 63 6c 5f 44 65  tack) {.+.Tcl_De
3c70: 63 72 52 65 66 43 6f 75 6e 74 28 69 50 74 72 2d  crRefCount(iPtr-
3c80: 3e 65 72 72 6f 72 53 74 61 63 6b 29 3b 0a 2b 20  >errorStack);.+ 
3c90: 20 20 20 7d 0a 2b 20 20 20 20 69 50 74 72 2d 3e     }.+    iPtr->
3ca0: 65 72 72 6f 72 53 74 61 63 6b 20 3d 20 73 74 61  errorStack = sta
3cb0: 74 65 50 74 72 2d 3e 65 72 72 6f 72 53 74 61 63  tePtr->errorStac
3cc0: 6b 3b 0a 2b 20 20 20 20 69 66 20 28 69 50 74 72  k;.+    if (iPtr
3cd0: 2d 3e 65 72 72 6f 72 53 74 61 63 6b 29 20 7b 0a  ->errorStack) {.
3ce0: 2b 09 54 63 6c 5f 49 6e 63 72 52 65 66 43 6f 75  +.Tcl_IncrRefCou
3cf0: 6e 74 28 69 50 74 72 2d 3e 65 72 72 6f 72 53 74  nt(iPtr->errorSt
3d00: 61 63 6b 29 3b 0a 2b 20 20 20 20 7d 0a 20 20 20  ack);.+    }.   
3d10: 20 20 69 66 20 28 69 50 74 72 2d 3e 72 65 74 75    if (iPtr->retu
3d20: 72 6e 4f 70 74 73 29 20 7b 0a 20 09 54 63 6c 5f  rnOpts) {. .Tcl_
3d30: 44 65 63 72 52 65 66 43 6f 75 6e 74 28 69 50 74  DecrRefCount(iPt
3d40: 72 2d 3e 72 65 74 75 72 6e 4f 70 74 73 29 3b 0a  r->returnOpts);.
3d50: 20 20 20 20 20 7d 0a 40 40 20 2d 31 38 38 2c 36       }.@@ -188,6
3d60: 20 2b 32 30 33 2c 39 20 40 40 20 54 63 6c 5f 44   +203,9 @@ Tcl_D
3d70: 69 73 63 61 72 64 49 6e 74 65 72 70 53 74 61 74  iscardInterpStat
3d80: 65 28 0a 20 20 20 20 20 69 66 20 28 73 74 61 74  e(.     if (stat
3d90: 65 50 74 72 2d 3e 72 65 74 75 72 6e 4f 70 74 73  ePtr->returnOpts
3da0: 29 20 7b 0a 20 09 54 63 6c 5f 44 65 63 72 52 65  ) {. .Tcl_DecrRe
3db0: 66 43 6f 75 6e 74 28 73 74 61 74 65 50 74 72 2d  fCount(statePtr-
3dc0: 3e 72 65 74 75 72 6e 4f 70 74 73 29 3b 0a 20 20  >returnOpts);.  
3dd0: 20 20 20 7d 0a 2b 20 20 20 20 69 66 20 28 73 74     }.+    if (st
3de0: 61 74 65 50 74 72 2d 3e 65 72 72 6f 72 53 74 61  atePtr->errorSta
3df0: 63 6b 29 20 7b 0a 2b 09 54 63 6c 5f 44 65 63 72  ck) {.+.Tcl_Decr
3e00: 52 65 66 43 6f 75 6e 74 28 73 74 61 74 65 50 74  RefCount(statePt
3e10: 72 2d 3e 65 72 72 6f 72 53 74 61 63 6b 29 3b 0a  r->errorStack);.
3e20: 2b 20 20 20 20 7d 0a 20 20 20 20 20 54 63 6c 5f  +    }.     Tcl_
3e30: 44 65 63 72 52 65 66 43 6f 75 6e 74 28 73 74 61  DecrRefCount(sta
3e40: 74 65 50 74 72 2d 3e 6f 62 6a 52 65 73 75 6c 74  tePtr->objResult
3e50: 29 3b 0a 20 20 20 20 20 63 6b 66 72 65 65 28 28  );.     ckfree((
3e60: 63 68 61 72 20 2a 29 20 73 74 61 74 65 50 74 72  char *) statePtr
3e70: 29 3b 0a 20 7d 0a 40 40 20 2d 39 32 34 2c 36 20  );. }.@@ -924,6 
3e80: 2b 39 34 32 2c 37 20 40 40 20 54 63 6c 5f 52 65  +942,7 @@ Tcl_Re
3e90: 73 65 74 52 65 73 75 6c 74 28 0a 20 09 54 63 6c  setResult(. .Tcl
3ea0: 5f 44 65 63 72 52 65 66 43 6f 75 6e 74 28 69 50  _DecrRefCount(iP
3eb0: 74 72 2d 3e 65 72 72 6f 72 49 6e 66 6f 29 3b 0a  tr->errorInfo);.
3ec0: 20 09 69 50 74 72 2d 3e 65 72 72 6f 72 49 6e 66   .iPtr->errorInf
3ed0: 6f 20 3d 20 4e 55 4c 4c 3b 0a 20 20 20 20 20 7d  o = NULL;.     }
3ee0: 0a 2b 20 20 20 20 69 50 74 72 2d 3e 72 65 73 65  .+    iPtr->rese
3ef0: 74 45 72 72 6f 72 53 74 61 63 6b 20 3d 20 31 3b  tErrorStack = 1;
3f00: 0a 20 20 20 20 20 69 50 74 72 2d 3e 72 65 74 75  .     iPtr->retu
3f10: 72 6e 4c 65 76 65 6c 20 3d 20 31 3b 0a 20 20 20  rnLevel = 1;.   
3f20: 20 20 69 50 74 72 2d 3e 72 65 74 75 72 6e 43 6f    iPtr->returnCo
3f30: 64 65 20 3d 20 54 43 4c 5f 4f 4b 3b 0a 20 20 20  de = TCL_OK;.   
3f40: 20 20 69 66 20 28 69 50 74 72 2d 3e 72 65 74 75    if (iPtr->retu
3f50: 72 6e 4f 70 74 73 29 20 7b 0a 40 40 20 2d 31 31  rnOpts) {.@@ -11
3f60: 36 31 2c 36 20 2b 31 31 38 30 2c 37 20 40 40 20  61,6 +1180,7 @@ 
3f70: 47 65 74 4b 65 79 73 28 76 6f 69 64 29 0a 20 09  GetKeys(void). .
3f80: 54 63 6c 4e 65 77 4c 69 74 65 72 61 6c 53 74 72  TclNewLiteralStr
3f90: 69 6e 67 4f 62 6a 28 6b 65 79 73 5b 4b 45 59 5f  ingObj(keys[KEY_
3fa0: 45 52 52 4f 52 43 4f 44 45 5d 2c 20 22 2d 65 72  ERRORCODE], "-er
3fb0: 72 6f 72 63 6f 64 65 22 29 3b 0a 20 09 54 63 6c  rorcode");. .Tcl
3fc0: 4e 65 77 4c 69 74 65 72 61 6c 53 74 72 69 6e 67  NewLiteralString
3fd0: 4f 62 6a 28 6b 65 79 73 5b 4b 45 59 5f 45 52 52  Obj(keys[KEY_ERR
3fe0: 4f 52 49 4e 46 4f 5d 2c 20 22 2d 65 72 72 6f 72  ORINFO], "-error
3ff0: 69 6e 66 6f 22 29 3b 0a 20 09 54 63 6c 4e 65 77  info");. .TclNew
4000: 4c 69 74 65 72 61 6c 53 74 72 69 6e 67 4f 62 6a  LiteralStringObj
4010: 28 6b 65 79 73 5b 4b 45 59 5f 45 52 52 4f 52 4c  (keys[KEY_ERRORL
4020: 49 4e 45 5d 2c 20 22 2d 65 72 72 6f 72 6c 69 6e  INE], "-errorlin
4030: 65 22 29 3b 0a 2b 09 54 63 6c 4e 65 77 4c 69 74  e");.+.TclNewLit
4040: 65 72 61 6c 53 74 72 69 6e 67 4f 62 6a 28 6b 65  eralStringObj(ke
4050: 79 73 5b 4b 45 59 5f 45 52 52 4f 52 53 54 41 43  ys[KEY_ERRORSTAC
4060: 4b 5d 2c 22 2d 65 72 72 6f 72 73 74 61 63 6b 22  K],"-errorstack"
4070: 29 3b 0a 20 09 54 63 6c 4e 65 77 4c 69 74 65 72  );. .TclNewLiter
4080: 61 6c 53 74 72 69 6e 67 4f 62 6a 28 6b 65 79 73  alStringObj(keys
4090: 5b 4b 45 59 5f 4c 45 56 45 4c 5d 2c 09 20 20 20  [KEY_LEVEL],.   
40a0: 20 22 2d 6c 65 76 65 6c 22 29 3b 0a 20 09 54 63   "-level");. .Tc
40b0: 6c 4e 65 77 4c 69 74 65 72 61 6c 53 74 72 69 6e  lNewLiteralStrin
40c0: 67 4f 62 6a 28 6b 65 79 73 5b 4b 45 59 5f 4f 50  gObj(keys[KEY_OP
40d0: 54 49 4f 4e 53 5d 2c 20 20 20 22 2d 6f 70 74 69  TIONS],   "-opti
40e0: 6f 6e 73 22 29 3b 0a 20 0a 40 40 20 2d 31 32 36  ons");. .@@ -126
40f0: 36 2c 36 20 2b 31 32 38 36 2c 33 31 20 40 40 20  6,6 +1286,31 @@ 
4100: 54 63 6c 50 72 6f 63 65 73 73 52 65 74 75 72 6e  TclProcessReturn
4110: 28 0a 20 09 09 69 50 74 72 2d 3e 66 6c 61 67 73  (. ..iPtr->flags
4120: 20 7c 3d 20 45 52 52 5f 41 4c 52 45 41 44 59 5f   |= ERR_ALREADY_
4130: 4c 4f 47 47 45 44 3b 0a 20 09 20 20 20 20 7d 0a  LOGGED;. .    }.
4140: 20 09 7d 0a 2b 09 54 63 6c 5f 44 69 63 74 4f 62   .}.+.Tcl_DictOb
4150: 6a 47 65 74 28 4e 55 4c 4c 2c 20 69 50 74 72 2d  jGet(NULL, iPtr-
4160: 3e 72 65 74 75 72 6e 4f 70 74 73 2c 20 6b 65 79  >returnOpts, key
4170: 73 5b 4b 45 59 5f 45 52 52 4f 52 53 54 41 43 4b  s[KEY_ERRORSTACK
4180: 5d 2c 20 26 76 61 6c 75 65 50 74 72 29 3b 0a 2b  ], &valuePtr);.+
4190: 09 69 66 20 28 76 61 6c 75 65 50 74 72 20 21 3d  .if (valuePtr !=
41a0: 20 4e 55 4c 4c 29 20 7b 0a 2b 20 20 20 20 20 20   NULL) {.+      
41b0: 20 20 20 20 20 20 69 6e 74 20 6c 65 6e 2c 20 76        int len, v
41c0: 61 6c 75 65 4f 62 6a 63 3b 0a 2b 20 20 20 20 20  alueObjc;.+     
41d0: 20 20 20 20 20 20 20 54 63 6c 5f 4f 62 6a 20 2a         Tcl_Obj *
41e0: 2a 76 61 6c 75 65 4f 62 6a 76 3b 0a 2b 0a 2b 20  *valueObjv;.+.+ 
41f0: 20 20 20 20 20 20 20 20 20 20 20 69 66 20 28 54             if (T
4200: 63 6c 5f 49 73 53 68 61 72 65 64 28 69 50 74 72  cl_IsShared(iPtr
4210: 2d 3e 65 72 72 6f 72 53 74 61 63 6b 29 29 20 7b  ->errorStack)) {
4220: 0a 2b 20 20 20 20 20 20 20 20 20 20 20 20 20 20  .+              
4230: 20 20 54 63 6c 5f 4f 62 6a 20 2a 6e 65 77 4f 62    Tcl_Obj *newOb
4240: 6a 3b 0a 2b 20 20 20 20 20 20 20 20 20 20 20 20  j;.+            
4250: 20 20 20 20 0a 2b 20 20 20 20 20 20 20 20 20 20      .+          
4260: 20 20 20 20 20 20 6e 65 77 4f 62 6a 20 3d 20 54        newObj = T
4270: 63 6c 5f 44 75 70 6c 69 63 61 74 65 4f 62 6a 28  cl_DuplicateObj(
4280: 69 50 74 72 2d 3e 65 72 72 6f 72 53 74 61 63 6b  iPtr->errorStack
4290: 29 3b 0a 2b 20 20 20 20 20 20 20 20 20 20 20 20  );.+            
42a0: 20 20 20 20 54 63 6c 5f 44 65 63 72 52 65 66 43      Tcl_DecrRefC
42b0: 6f 75 6e 74 28 69 50 74 72 2d 3e 65 72 72 6f 72  ount(iPtr->error
42c0: 53 74 61 63 6b 29 3b 0a 2b 20 20 20 20 20 20 20  Stack);.+       
42d0: 20 20 20 20 20 20 20 20 20 54 63 6c 5f 49 6e 63           Tcl_Inc
42e0: 72 52 65 66 43 6f 75 6e 74 28 6e 65 77 4f 62 6a  rRefCount(newObj
42f0: 29 3b 0a 2b 20 20 20 20 20 20 20 20 20 20 20 20  );.+            
4300: 20 20 20 20 69 50 74 72 2d 3e 65 72 72 6f 72 53      iPtr->errorS
4310: 74 61 63 6b 20 3d 20 6e 65 77 4f 62 6a 3b 0a 2b  tack = newObj;.+
4320: 20 20 20 20 20 20 20 20 20 20 20 20 7d 0a 2b 20              }.+ 
4330: 20 20 20 20 20 20 20 20 20 20 20 2f 2a 0a 2b 20             /*.+ 
4340: 20 20 20 20 20 20 20 20 20 20 20 20 2a 20 4c 69              * Li
4350: 73 74 20 65 78 74 72 61 63 74 69 6f 6e 20 64 6f  st extraction do
4360: 6e 65 20 61 66 74 65 72 20 64 75 70 6c 69 63 61  ne after duplica
4370: 74 69 6f 6e 20 74 6f 20 61 76 6f 69 64 20 6d 6f  tion to avoid mo
4380: 76 69 6e 67 20 74 68 65 20 72 75 67 0a 2b 20 20  ving the rug.+  
4390: 20 20 20 20 20 20 20 20 20 20 20 2a 20 69 66 20             * if 
43a0: 73 6f 6d 65 6f 6e 65 20 64 6f 65 73 20 5b 72 65  someone does [re
43b0: 74 75 72 6e 20 2d 65 72 72 6f 72 73 74 61 63 6b  turn -errorstack
43c0: 20 5b 69 6e 66 6f 20 65 72 72 6f 72 73 74 61 63   [info errorstac
43d0: 6b 5d 5d 0a 2b 20 20 20 20 20 20 20 20 20 20 20  k]].+           
43e0: 20 20 2a 2f 0a 2b 20 20 20 20 20 20 20 20 20 20    */.+          
43f0: 20 20 69 66 20 28 54 63 6c 5f 4c 69 73 74 4f 62    if (Tcl_ListOb
4400: 6a 47 65 74 45 6c 65 6d 65 6e 74 73 28 69 6e 74  jGetElements(int
4410: 65 72 70 2c 20 76 61 6c 75 65 50 74 72 2c 20 26  erp, valuePtr, &
4420: 76 61 6c 75 65 4f 62 6a 63 2c 20 26 76 61 6c 75  valueObjc, &valu
4430: 65 4f 62 6a 76 29 20 3d 3d 20 54 43 4c 5f 45 52  eObjv) == TCL_ER
4440: 52 4f 52 29 20 7b 0a 2b 20 20 20 20 20 20 20 20  ROR) {.+        
4450: 20 20 20 20 20 20 20 20 72 65 74 75 72 6e 20 54          return T
4460: 43 4c 5f 45 52 52 4f 52 3b 0a 2b 20 20 20 20 20  CL_ERROR;.+     
4470: 20 20 20 20 20 20 20 7d 0a 2b 20 20 20 20 20 20         }.+      
4480: 20 20 20 20 20 20 69 50 74 72 2d 3e 72 65 73 65        iPtr->rese
4490: 74 45 72 72 6f 72 53 74 61 63 6b 20 3d 20 30 3b  tErrorStack = 0;
44a0: 0a 2b 20 20 20 20 20 20 20 20 20 20 20 20 54 63  .+            Tc
44b0: 6c 5f 4c 69 73 74 4f 62 6a 4c 65 6e 67 74 68 28  l_ListObjLength(
44c0: 69 6e 74 65 72 70 2c 20 69 50 74 72 2d 3e 65 72  interp, iPtr->er
44d0: 72 6f 72 53 74 61 63 6b 2c 20 26 6c 65 6e 29 3b  rorStack, &len);
44e0: 0a 2b 20 20 20 20 20 20 20 20 20 20 20 20 2f 2a  .+            /*
44f0: 20 72 65 73 65 74 20 77 68 69 6c 65 20 6b 65 65   reset while kee
4500: 70 69 6e 67 20 74 68 65 20 6c 69 73 74 20 69 6e  ping the list in
4510: 74 72 65 70 20 61 73 20 6d 75 63 68 20 61 73 20  trep as much as 
4520: 70 6f 73 73 69 62 6c 65 20 2a 2f 0a 2b 20 20 20  possible */.+   
4530: 20 20 20 20 20 20 20 20 20 54 63 6c 5f 4c 69 73           Tcl_Lis
4540: 74 4f 62 6a 52 65 70 6c 61 63 65 28 69 6e 74 65  tObjReplace(inte
4550: 72 70 2c 20 69 50 74 72 2d 3e 65 72 72 6f 72 53  rp, iPtr->errorS
4560: 74 61 63 6b 2c 20 30 2c 20 6c 65 6e 2c 20 76 61  tack, 0, len, va
4570: 6c 75 65 4f 62 6a 63 2c 20 76 61 6c 75 65 4f 62  lueObjc, valueOb
4580: 6a 76 29 3b 0a 2b 20 09 7d 0a 20 09 54 63 6c 5f  jv);.+ .}. .Tcl_
4590: 44 69 63 74 4f 62 6a 47 65 74 28 4e 55 4c 4c 2c  DictObjGet(NULL,
45a0: 20 69 50 74 72 2d 3e 72 65 74 75 72 6e 4f 70 74   iPtr->returnOpt
45b0: 73 2c 20 6b 65 79 73 5b 4b 45 59 5f 45 52 52 4f  s, keys[KEY_ERRO
45c0: 52 43 4f 44 45 5d 2c 20 26 76 61 6c 75 65 50 74  RCODE], &valuePt
45d0: 72 29 3b 0a 20 09 69 66 20 28 76 61 6c 75 65 50  r);. .if (valueP
45e0: 74 72 20 21 3d 20 4e 55 4c 4c 29 20 7b 0a 20 09  tr != NULL) {. .
45f0: 20 20 20 20 54 63 6c 5f 53 65 74 4f 62 6a 45 72      Tcl_SetObjEr
4600: 72 6f 72 43 6f 64 65 28 69 6e 74 65 72 70 2c 20  rorCode(interp, 
4610: 76 61 6c 75 65 50 74 72 29 3b 0a 40 40 20 2d 31  valuePtr);.@@ -1
4620: 34 32 39 2c 36 20 2b 31 34 37 34 2c 33 37 20 40  429,6 +1474,37 @
4630: 40 20 54 63 6c 4d 65 72 67 65 52 65 74 75 72 6e  @ TclMergeReturn
4640: 4f 70 74 69 6f 6e 73 28 0a 20 20 20 20 20 7d 0a  Options(.     }.
4650: 20 0a 20 20 20 20 20 2f 2a 0a 2b 20 20 20 20 20   .     /*.+     
4660: 2a 20 43 68 65 63 6b 20 66 6f 72 20 62 6f 67 75  * Check for bogu
4670: 73 20 2d 65 72 72 6f 72 73 74 61 63 6b 20 76 61  s -errorstack va
4680: 6c 75 65 2e 0a 2b 20 20 20 20 20 2a 2f 0a 2b 0a  lue..+     */.+.
4690: 2b 20 20 20 20 54 63 6c 5f 44 69 63 74 4f 62 6a  +    Tcl_DictObj
46a0: 47 65 74 28 4e 55 4c 4c 2c 20 72 65 74 75 72 6e  Get(NULL, return
46b0: 4f 70 74 73 2c 20 6b 65 79 73 5b 4b 45 59 5f 45  Opts, keys[KEY_E
46c0: 52 52 4f 52 53 54 41 43 4b 5d 2c 20 26 76 61 6c  RRORSTACK], &val
46d0: 75 65 50 74 72 29 3b 0a 2b 20 20 20 20 69 66 20  uePtr);.+    if 
46e0: 28 76 61 6c 75 65 50 74 72 20 21 3d 20 4e 55 4c  (valuePtr != NUL
46f0: 4c 29 20 7b 0a 2b 09 69 6e 74 20 6c 65 6e 67 74  L) {.+.int lengt
4700: 68 3b 0a 2b 0a 2b 09 69 66 20 28 54 43 4c 5f 45  h;.+.+.if (TCL_E
4710: 52 52 4f 52 20 3d 3d 20 54 63 6c 5f 4c 69 73 74  RROR == Tcl_List
4720: 4f 62 6a 4c 65 6e 67 74 68 28 4e 55 4c 4c 2c 20  ObjLength(NULL, 
4730: 76 61 6c 75 65 50 74 72 2c 20 26 6c 65 6e 67 74  valuePtr, &lengt
4740: 68 20 29 29 20 7b 0a 2b 09 20 20 20 20 2f 2a 0a  h )) {.+.    /*.
4750: 2b 09 20 20 20 20 20 2a 20 56 61 6c 75 65 20 69  +.     * Value i
4760: 73 20 6e 6f 74 20 61 20 6c 69 73 74 2c 20 77 68  s not a list, wh
4770: 69 63 68 20 69 73 20 69 6c 6c 65 67 61 6c 20 66  ich is illegal f
4780: 6f 72 20 2d 65 72 72 6f 72 73 74 61 63 6b 2e 0a  or -errorstack..
4790: 2b 09 20 20 20 20 20 2a 2f 0a 2b 09 20 20 20 20  +.     */.+.    
47a0: 54 63 6c 5f 52 65 73 65 74 52 65 73 75 6c 74 28  Tcl_ResetResult(
47b0: 69 6e 74 65 72 70 29 3b 0a 2b 09 20 20 20 20 54  interp);.+.    T
47c0: 63 6c 5f 41 70 70 65 6e 64 52 65 73 75 6c 74 28  cl_AppendResult(
47d0: 69 6e 74 65 72 70 2c 20 22 62 61 64 20 2d 65 72  interp, "bad -er
47e0: 72 6f 72 73 74 61 63 6b 20 76 61 6c 75 65 3a 20  rorstack value: 
47f0: 22 0a 2b 09 09 09 20 20 20 20 20 22 65 78 70 65  ".+...     "expe
4800: 63 74 65 64 20 61 20 6c 69 73 74 20 62 75 74 20  cted a list but 
4810: 67 6f 74 20 5c 22 22 2c 0a 2b 09 09 09 20 20 20  got \"",.+...   
4820: 20 20 54 63 6c 47 65 74 53 74 72 69 6e 67 28 76    TclGetString(v
4830: 61 6c 75 65 50 74 72 29 2c 20 22 5c 22 22 2c 20  aluePtr), "\"", 
4840: 4e 55 4c 4c 29 3b 0a 2b 09 20 20 20 20 54 63 6c  NULL);.+.    Tcl
4850: 5f 53 65 74 45 72 72 6f 72 43 6f 64 65 28 69 6e  _SetErrorCode(in
4860: 74 65 72 70 2c 20 22 54 43 4c 22 2c 20 22 52 45  terp, "TCL", "RE
4870: 53 55 4c 54 22 2c 20 22 4e 4f 4e 4c 49 53 54 5f  SULT", "NONLIST_
4880: 45 52 52 4f 52 53 54 41 43 4b 22 2c 20 4e 55 4c  ERRORSTACK", NUL
4890: 4c 29 3b 0a 2b 09 20 20 20 20 67 6f 74 6f 20 65  L);.+.    goto e
48a0: 72 72 6f 72 3b 0a 2b 09 7d 0a 2b 20 20 20 20 20  rror;.+.}.+     
48b0: 20 20 20 69 66 20 28 6c 65 6e 67 74 68 20 25 20     if (length % 
48c0: 32 29 20 7b 0a 2b 20 20 20 20 20 20 20 20 20 20  2) {.+          
48d0: 20 20 2f 2a 0a 2b 20 20 20 20 20 20 20 20 20 20    /*.+          
48e0: 20 20 20 2a 20 45 72 72 6f 72 73 74 61 63 6b 20     * Errorstack 
48f0: 6d 75 73 74 20 61 6c 77 61 79 73 20 62 65 20 61  must always be a
4900: 6e 20 65 76 65 6e 2d 73 69 7a 65 64 20 6c 69 73  n even-sized lis
4910: 74 0a 2b 20 20 20 20 20 20 20 20 20 20 20 20 20  t.+             
4920: 2a 2f 0a 2b 20 20 20 20 20 20 20 20 20 20 20 20  */.+            
4930: 54 63 6c 5f 52 65 73 65 74 52 65 73 75 6c 74 28  Tcl_ResetResult(
4940: 69 6e 74 65 72 70 29 3b 0a 2b 09 20 20 20 20 54  interp);.+.    T
4950: 63 6c 5f 41 70 70 65 6e 64 52 65 73 75 6c 74 28  cl_AppendResult(
4960: 69 6e 74 65 72 70 2c 20 22 66 6f 72 62 69 64 64  interp, "forbidd
4970: 65 6e 20 6f 64 64 2d 73 69 7a 65 64 20 6c 69 73  en odd-sized lis
4980: 74 20 66 6f 72 20 2d 65 72 72 6f 72 73 74 61 63  t for -errorstac
4990: 6b 3a 20 5c 22 22 2c 0a 2b 09 09 09 20 20 20 20  k: \"",.+...    
49a0: 20 54 63 6c 47 65 74 53 74 72 69 6e 67 28 76 61   TclGetString(va
49b0: 6c 75 65 50 74 72 29 2c 20 22 5c 22 22 2c 20 4e  luePtr), "\"", N
49c0: 55 4c 4c 29 3b 0a 2b 09 20 20 20 20 54 63 6c 5f  ULL);.+.    Tcl_
49d0: 53 65 74 45 72 72 6f 72 43 6f 64 65 28 69 6e 74  SetErrorCode(int
49e0: 65 72 70 2c 20 22 54 43 4c 22 2c 20 22 52 45 53  erp, "TCL", "RES
49f0: 55 4c 54 22 2c 20 22 4f 44 44 53 49 5a 45 44 4c  ULT", "ODDSIZEDL
4a00: 49 53 54 5f 45 52 52 4f 52 53 54 41 43 4b 22 2c  IST_ERRORSTACK",
4a10: 20 4e 55 4c 4c 29 3b 0a 2b 09 20 20 20 20 67 6f   NULL);.+.    go
4a20: 74 6f 20 65 72 72 6f 72 3b 0a 2b 20 20 20 20 20  to error;.+     
4a30: 20 20 20 7d 0a 2b 20 20 20 20 7d 0a 2b 0a 2b 20     }.+    }.+.+ 
4a40: 20 20 20 2f 2a 0a 20 20 20 20 20 20 2a 20 43 6f     /*.      * Co
4a50: 6e 76 65 72 74 20 5b 72 65 74 75 72 6e 20 2d 63  nvert [return -c
4a60: 6f 64 65 20 72 65 74 75 72 6e 20 2d 6c 65 76 65  ode return -leve
4a70: 6c 20 58 5d 20 74 6f 20 5b 72 65 74 75 72 6e 20  l X] to [return 
4a80: 2d 63 6f 64 65 20 6f 6b 20 2d 6c 65 76 65 6c 20  -code ok -level 
4a90: 58 2b 31 5d 0a 20 20 20 20 20 20 2a 2f 0a 20 0a  X+1].      */. .
4aa0: 40 40 20 2d 31 35 30 35 2c 36 20 2b 31 35 38 31  @@ -1505,6 +1581
4ab0: 2c 37 20 40 40 20 54 63 6c 5f 47 65 74 52 65 74  ,7 @@ Tcl_GetRet
4ac0: 75 72 6e 4f 70 74 69 6f 6e 73 28 0a 20 0a 20 20  urnOptions(. .  
4ad0: 20 20 20 69 66 20 28 72 65 73 75 6c 74 20 3d 3d     if (result ==
4ae0: 20 54 43 4c 5f 45 52 52 4f 52 29 20 7b 0a 20 09   TCL_ERROR) {. .
4af0: 54 63 6c 5f 41 64 64 4f 62 6a 45 72 72 6f 72 49  Tcl_AddObjErrorI
4b00: 6e 66 6f 28 69 6e 74 65 72 70 2c 20 22 22 2c 20  nfo(interp, "", 
4b10: 2d 31 29 3b 0a 2b 20 20 20 20 20 20 20 20 54 63  -1);.+        Tc
4b20: 6c 5f 44 69 63 74 4f 62 6a 50 75 74 28 4e 55 4c  l_DictObjPut(NUL
4b30: 4c 2c 20 6f 70 74 69 6f 6e 73 2c 20 6b 65 79 73  L, options, keys
4b40: 5b 4b 45 59 5f 45 52 52 4f 52 53 54 41 43 4b 5d  [KEY_ERRORSTACK]
4b50: 2c 20 69 50 74 72 2d 3e 65 72 72 6f 72 53 74 61  , iPtr->errorSta
4b60: 63 6b 29 3b 0a 20 20 20 20 20 7d 0a 20 20 20 20  ck);.     }.    
4b70: 20 69 66 20 28 69 50 74 72 2d 3e 65 72 72 6f 72   if (iPtr->error
4b80: 43 6f 64 65 29 20 7b 0a 20 09 54 63 6c 5f 44 69  Code) {. .Tcl_Di
4b90: 63 74 4f 62 6a 50 75 74 28 4e 55 4c 4c 2c 20 6f  ctObjPut(NULL, o
4ba0: 70 74 69 6f 6e 73 2c 20 6b 65 79 73 5b 4b 45 59  ptions, keys[KEY
4bb0: 5f 45 52 52 4f 52 43 4f 44 45 5d 2c 20 69 50 74  _ERRORCODE], iPt
4bc0: 72 2d 3e 65 72 72 6f 72 43 6f 64 65 29 3b 0a 40  r->errorCode);.@
4bd0: 40 20 2d 31 36 33 36 2c 35 20 2b 31 37 31 33 2c  @ -1636,5 +1713,
4be0: 37 20 40 40 20 54 63 6c 5f 54 72 61 6e 73 66 65  7 @@ Tcl_Transfe
4bf0: 72 52 65 73 75 6c 74 28 0a 20 20 2a 20 6d 6f 64  rResult(.  * mod
4c00: 65 3a 20 63 0a 20 20 2a 20 63 2d 62 61 73 69 63  e: c.  * c-basic
4c10: 2d 6f 66 66 73 65 74 3a 20 34 0a 20 20 2a 20 66  -offset: 4.  * f
4c20: 69 6c 6c 2d 63 6f 6c 75 6d 6e 3a 20 37 38 0a 2b  ill-column: 78.+
4c30: 20 2a 20 74 61 62 2d 77 69 64 74 68 3a 20 38 0a   * tab-width: 8.
4c40: 2b 20 2a 20 69 6e 64 65 6e 74 2d 74 61 62 73 2d  + * indent-tabs-
4c50: 6d 6f 64 65 3a 20 6e 69 6c 0a 20 20 2a 20 45 6e  mode: nil.  * En
4c60: 64 3a 0a 20 20 2a 2f 0a 49 6e 64 65 78 3a 20 74  d:.  */.Index: t
4c70: 65 73 74 73 2f 63 6d 64 4d 5a 2e 74 65 73 74 0a  ests/cmdMZ.test.
4c80: 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d  ================
4c90: 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d  ================
4ca0: 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d  ================
4cb0: 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d  ================
4cc0: 3d 3d 3d 0a 52 43 53 20 66 69 6c 65 3a 20 2f 63  ===.RCS file: /c
4cd0: 76 73 72 6f 6f 74 2f 74 63 6c 2f 74 63 6c 2f 74  vsroot/tcl/tcl/t
4ce0: 65 73 74 73 2f 63 6d 64 4d 5a 2e 74 65 73 74 2c  ests/cmdMZ.test,
4cf0: 76 0a 72 65 74 72 69 65 76 69 6e 67 20 72 65 76  v.retrieving rev
4d00: 69 73 69 6f 6e 20 31 2e 32 38 0a 64 69 66 66 20  ision 1.28.diff 
4d10: 2d 75 20 2d 70 20 2d 75 20 2d 70 20 2d 72 31 2e  -u -p -u -p -r1.
4d20: 32 38 20 63 6d 64 4d 5a 2e 74 65 73 74 0a 2d 2d  28 cmdMZ.test.--
4d30: 2d 20 74 65 73 74 73 2f 63 6d 64 4d 5a 2e 74 65  - tests/cmdMZ.te
4d40: 73 74 09 31 36 20 4e 6f 76 20 32 30 30 39 20 31  st.16 Nov 2009 1
4d50: 38 3a 30 30 3a 31 31 20 2d 30 30 30 30 09 31 2e  8:00:11 -0000.1.
4d60: 32 38 0a 2b 2b 2b 20 74 65 73 74 73 2f 63 6d 64  28.+++ tests/cmd
4d70: 4d 5a 2e 74 65 73 74 09 33 31 20 4d 61 72 20 32  MZ.test.31 Mar 2
4d80: 30 31 30 20 31 34 3a 31 34 3a 34 31 20 2d 30 30  010 14:14:41 -00
4d90: 30 30 0a 40 40 20 2d 31 34 39 2c 31 31 20 2b 31  00.@@ -149,11 +1
4da0: 34 39 2c 31 31 20 40 40 20 74 65 73 74 20 63 6d  49,11 @@ test cm
4db0: 64 4d 5a 2d 72 65 74 75 72 6e 2d 32 2e 38 20 7b  dMZ-return-2.8 {
4dc0: 72 65 74 75 72 6e 20 6f 70 74 69 6f 6e 20 68 61  return option ha
4dd0: 6e 0a 20 74 65 73 74 20 63 6d 64 4d 5a 2d 72 65  n. test cmdMZ-re
4de0: 74 75 72 6e 2d 32 2e 39 20 7b 72 65 74 75 72 6e  turn-2.9 {return
4df0: 20 6f 70 74 69 6f 6e 20 68 61 6e 64 6c 69 6e 67   option handling
4e00: 7d 20 2d 62 6f 64 79 20 7b 0a 20 20 20 20 20 72  } -body {.     r
4e10: 65 74 75 72 6e 20 2d 6c 65 76 65 6c 20 30 20 2d  eturn -level 0 -
4e20: 63 6f 64 65 20 31 30 0a 20 7d 20 2d 72 65 74 75  code 10. } -retu
4e30: 72 6e 43 6f 64 65 73 20 31 30 20 2d 72 65 73 75  rnCodes 10 -resu
4e40: 6c 74 20 7b 7d 0a 2d 74 65 73 74 20 63 6d 64 4d  lt {}.-test cmdM
4e50: 5a 2d 72 65 74 75 72 6e 2d 32 2e 31 30 20 7b 72  Z-return-2.10 {r
4e60: 65 74 75 72 6e 20 6f 70 74 69 6f 6e 20 68 61 6e  eturn option han
4e70: 64 6c 69 6e 67 7d 20 7b 0a 2b 74 65 73 74 20 63  dling} {.+test c
4e80: 6d 64 4d 5a 2d 72 65 74 75 72 6e 2d 32 2e 31 30  mdMZ-return-2.10
4e90: 20 7b 72 65 74 75 72 6e 20 6f 70 74 69 6f 6e 20   {return option 
4ea0: 68 61 6e 64 6c 69 6e 67 7d 20 2d 62 6f 64 79 20  handling} -body 
4eb0: 7b 0a 20 20 20 20 20 6c 69 73 74 20 5b 63 61 74  {.     list [cat
4ec0: 63 68 20 7b 72 65 74 75 72 6e 20 2d 6c 65 76 65  ch {return -leve
4ed0: 6c 20 30 20 2d 63 6f 64 65 20 65 72 72 6f 72 7d  l 0 -code error}
4ee0: 20 2d 3e 20 66 6f 6f 5d 20 5b 64 69 63 74 53 6f   -> foo] [dictSo
4ef0: 72 74 20 24 66 6f 6f 5d 0a 2d 7d 20 7b 31 20 7b  rt $foo].-} {1 {
4f00: 2d 63 6f 64 65 20 31 20 2d 65 72 72 6f 72 63 6f  -code 1 -errorco
4f10: 64 65 20 4e 4f 4e 45 20 2d 65 72 72 6f 72 69 6e  de NONE -errorin
4f20: 66 6f 20 7b 0a 2b 7d 20 2d 6d 61 74 63 68 20 67  fo {.+} -match g
4f30: 6c 6f 62 20 2d 72 65 73 75 6c 74 20 7b 31 20 7b  lob -result {1 {
4f40: 2d 63 6f 64 65 20 31 20 2d 65 72 72 6f 72 63 6f  -code 1 -errorco
4f50: 64 65 20 4e 4f 4e 45 20 2d 65 72 72 6f 72 69 6e  de NONE -errorin
4f60: 66 6f 20 7b 0a 20 20 20 20 20 77 68 69 6c 65 20  fo {.     while 
4f70: 65 78 65 63 75 74 69 6e 67 0a 2d 22 72 65 74 75  executing.-"retu
4f80: 72 6e 20 2d 6c 65 76 65 6c 20 30 20 2d 63 6f 64  rn -level 0 -cod
4f90: 65 20 65 72 72 6f 72 22 7d 20 2d 65 72 72 6f 72  e error"} -error
4fa0: 6c 69 6e 65 20 31 20 2d 6c 65 76 65 6c 20 30 7d  line 1 -level 0}
4fb0: 7d 0a 2b 22 72 65 74 75 72 6e 20 2d 6c 65 76 65  }.+"return -leve
4fc0: 6c 20 30 20 2d 63 6f 64 65 20 65 72 72 6f 72 22  l 0 -code error"
4fd0: 7d 20 2d 65 72 72 6f 72 6c 69 6e 65 20 31 20 2d  } -errorline 1 -
4fe0: 65 72 72 6f 72 73 74 61 63 6b 20 2a 20 2d 6c 65  errorstack * -le
4ff0: 76 65 6c 20 30 7d 7d 0a 20 74 65 73 74 20 63 6d  vel 0}}. test cm
5000: 64 4d 5a 2d 72 65 74 75 72 6e 2d 32 2e 31 31 20  dMZ-return-2.11 
5010: 7b 72 65 74 75 72 6e 20 6f 70 74 69 6f 6e 20 68  {return option h
5020: 61 6e 64 6c 69 6e 67 7d 20 7b 0a 20 20 20 20 20  andling} {.     
5030: 6c 69 73 74 20 5b 63 61 74 63 68 20 7b 72 65 74  list [catch {ret
5040: 75 72 6e 20 2d 6c 65 76 65 6c 20 30 20 2d 63 6f  urn -level 0 -co
5050: 64 65 20 62 72 65 61 6b 7d 20 2d 3e 20 66 6f 6f  de break} -> foo
5060: 5d 20 5b 64 69 63 74 53 6f 72 74 20 24 66 6f 6f  ] [dictSort $foo
5070: 5d 0a 20 7d 20 7b 33 20 7b 2d 63 6f 64 65 20 33  ]. } {3 {-code 3
5080: 20 2d 6c 65 76 65 6c 20 30 7d 7d 0a 40 40 20 2d   -level 0}}.@@ -
5090: 31 39 33 2c 36 20 2b 31 39 33 2c 39 20 40 40 20  193,6 +193,9 @@ 
50a0: 74 65 73 74 20 63 6d 64 4d 5a 2d 72 65 74 75 72  test cmdMZ-retur
50b0: 6e 2d 32 2e 31 37 20 7b 72 65 74 75 72 6e 20 6f  n-2.17 {return o
50c0: 70 74 6f 6e 20 68 61 6e 0a 20 7d 20 2d 63 6c 65  pton han. } -cle
50d0: 61 6e 75 70 20 7b 0a 20 20 20 20 20 72 65 6e 61  anup {.     rena
50e0: 6d 65 20 70 20 7b 7d 0a 20 7d 20 2d 72 65 73 75  me p {}. } -resu
50f0: 6c 74 20 7b 31 20 63 20 7b 61 20 62 7d 7d 0a 2b  lt {1 c {a b}}.+
5100: 74 65 73 74 20 63 6d 64 4d 5a 2d 72 65 74 75 72  test cmdMZ-retur
5110: 6e 2d 32 2e 31 38 20 7b 72 65 74 75 72 6e 20 6f  n-2.18 {return o
5120: 70 74 69 6f 6e 20 68 61 6e 64 6c 69 6e 67 7d 20  ption handling} 
5130: 7b 0a 2b 20 20 20 20 6c 69 73 74 20 5b 63 61 74  {.+    list [cat
5140: 63 68 20 7b 72 65 74 75 72 6e 20 2d 63 6f 64 65  ch {return -code
5150: 20 65 72 72 6f 72 20 2d 65 72 72 6f 72 73 74 61   error -errorsta
5160: 63 6b 20 5b 6c 69 73 74 20 43 41 4c 4c 20 61 20  ck [list CALL a 
5170: 43 41 4c 4c 20 62 5d 20 79 6f 7d 20 2d 3e 20 66  CALL b] yo} -> f
5180: 6f 6f 5d 20 5b 64 69 63 74 53 6f 72 74 20 24 66  oo] [dictSort $f
5190: 6f 6f 5d 20 5b 69 6e 66 6f 20 65 72 72 6f 72 73  oo] [info errors
51a0: 74 61 63 6b 5d 0a 2b 7d 20 7b 32 20 7b 2d 63 6f  tack].+} {2 {-co
51b0: 64 65 20 31 20 2d 65 72 72 6f 72 63 6f 64 65 20  de 1 -errorcode 
51c0: 4e 4f 4e 45 20 2d 65 72 72 6f 72 73 74 61 63 6b  NONE -errorstack
51d0: 20 7b 43 41 4c 4c 20 61 20 43 41 4c 4c 20 62 7d   {CALL a CALL b}
51e0: 20 2d 6c 65 76 65 6c 20 31 7d 20 7b 43 41 4c 4c   -level 1} {CALL
51f0: 20 61 20 43 41 4c 4c 20 62 7d 7d 0a 20 0a 20 23   a CALL b}}. . #
5200: 20 43 68 65 63 6b 20 74 68 61 74 20 74 68 65 20   Check that the 
5210: 72 65 73 75 6c 74 20 6f 66 20 61 20 5b 72 65 74  result of a [ret
5220: 75 72 6e 20 2d 6f 70 74 69 6f 6e 73 20 24 6f 70  urn -options $op
5230: 74 73 20 24 72 65 73 75 6c 74 5d 20 69 73 0a 20  ts $result] is. 
5240: 23 20 69 6e 64 69 73 74 69 6e 67 75 69 73 68 61  # indistinguisha
5250: 62 6c 65 20 66 72 6f 6d 20 74 68 61 74 20 6f 66  ble from that of
5260: 20 74 68 65 20 6f 72 69 67 69 6e 61 6c 6c 79 20   the originally 
5270: 63 61 75 67 68 74 20 73 63 72 69 70 74 2c 20 6e  caught script, n
5280: 6f 20 6d 61 74 74 65 72 20 77 68 61 74 0a 40 40  o matter what.@@
5290: 20 2d 32 31 31 2c 36 20 2b 32 31 34 2c 37 20 40   -211,6 +214,7 @
52a0: 40 20 66 6f 72 65 61 63 68 20 7b 74 65 73 74 69  @ foreach {testi
52b0: 64 20 73 63 72 69 70 74 7d 20 7b 0a 20 20 20 20  d script} {.    
52c0: 20 63 6d 64 4d 5a 2d 72 65 74 75 72 6e 2d 33 2e   cmdMZ-return-3.
52d0: 31 30 20 7b 72 65 74 75 72 6e 20 2d 63 6f 64 65  10 {return -code
52e0: 20 65 72 72 6f 72 20 2d 65 72 72 6f 72 69 6e 66   error -errorinf
52f0: 6f 20 66 6f 6f 7d 0a 20 20 20 20 20 63 6d 64 4d  o foo}.     cmdM
5300: 5a 2d 72 65 74 75 72 6e 2d 33 2e 31 31 20 7b 72  Z-return-3.11 {r
5310: 65 74 75 72 6e 20 2d 63 6f 64 65 20 65 72 72 6f  eturn -code erro
5320: 72 20 2d 65 72 72 6f 72 69 6e 66 6f 20 66 6f 6f  r -errorinfo foo
5330: 20 2d 65 72 72 6f 72 63 6f 64 65 20 62 61 72 7d   -errorcode bar}
5340: 0a 20 20 20 20 20 63 6d 64 4d 5a 2d 72 65 74 75  .     cmdMZ-retu
5350: 72 6e 2d 33 2e 31 32 20 7b 72 65 74 75 72 6e 20  rn-3.12 {return 
5360: 2d 63 6f 64 65 20 65 72 72 6f 72 20 2d 65 72 72  -code error -err
5370: 6f 72 69 6e 66 6f 20 66 6f 6f 20 2d 65 72 72 6f  orinfo foo -erro
5380: 72 63 6f 64 65 20 62 61 72 20 2d 65 72 72 6f 72  rcode bar -error
5390: 6c 69 6e 65 20 31 30 7d 0a 2b 20 20 20 20 63 6d  line 10}.+    cm
53a0: 64 4d 5a 2d 72 65 74 75 72 6e 2d 33 2e 31 32 2e  dMZ-return-3.12.
53b0: 31 20 7b 72 65 74 75 72 6e 20 2d 63 6f 64 65 20  1 {return -code 
53c0: 65 72 72 6f 72 20 2d 65 72 72 6f 72 69 6e 66 6f  error -errorinfo
53d0: 20 66 6f 6f 20 2d 65 72 72 6f 72 63 6f 64 65 20   foo -errorcode 
53e0: 62 61 72 20 2d 65 72 72 6f 72 6c 69 6e 65 20 31  bar -errorline 1
53f0: 30 20 2d 65 72 72 6f 72 73 74 61 63 6b 20 62 61  0 -errorstack ba
5400: 7a 7d 0a 20 20 20 20 20 63 6d 64 4d 5a 2d 72 65  z}.     cmdMZ-re
5410: 74 75 72 6e 2d 33 2e 31 33 20 7b 72 65 74 75 72  turn-3.13 {retur
5420: 6e 20 2d 6f 70 74 69 6f 6e 73 20 7b 78 20 79 20  n -options {x y 
5430: 7a 20 32 7d 7d 0a 20 20 20 20 20 63 6d 64 4d 5a  z 2}}.     cmdMZ
5440: 2d 72 65 74 75 72 6e 2d 33 2e 31 34 20 7b 72 65  -return-3.14 {re
5450: 74 75 72 6e 20 2d 6c 65 76 65 6c 20 33 20 2d 63  turn -level 3 -c
5460: 6f 64 65 20 62 72 65 61 6b 20 73 64 66 7d 0a 20  ode break sdf}. 
5470: 7d 20 7b 0a 49 6e 64 65 78 3a 20 74 65 73 74 73  } {.Index: tests
5480: 2f 65 72 72 6f 72 2e 74 65 73 74 0a 3d 3d 3d 3d  /error.test.====
5490: 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d  ================
54a0: 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d  ================
54b0: 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d  ================
54c0: 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 0a  ===============.
54d0: 52 43 53 20 66 69 6c 65 3a 20 2f 63 76 73 72 6f  RCS file: /cvsro
54e0: 6f 74 2f 74 63 6c 2f 74 63 6c 2f 74 65 73 74 73  ot/tcl/tcl/tests
54f0: 2f 65 72 72 6f 72 2e 74 65 73 74 2c 76 0a 72 65  /error.test,v.re
5500: 74 72 69 65 76 69 6e 67 20 72 65 76 69 73 69 6f  trieving revisio
5510: 6e 20 31 2e 32 38 0a 64 69 66 66 20 2d 75 20 2d  n 1.28.diff -u -
5520: 70 20 2d 75 20 2d 70 20 2d 72 31 2e 32 38 20 65  p -u -p -r1.28 e
5530: 72 72 6f 72 2e 74 65 73 74 0a 2d 2d 2d 20 74 65  rror.test.--- te
5540: 73 74 73 2f 65 72 72 6f 72 2e 74 65 73 74 09 32  sts/error.test.2
5550: 33 20 4d 61 72 20 32 30 31 30 20 31 32 3a 35 38  3 Mar 2010 12:58
5560: 3a 33 39 20 2d 30 30 30 30 09 31 2e 32 38 0a 2b  :39 -0000.1.28.+
5570: 2b 2b 20 74 65 73 74 73 2f 65 72 72 6f 72 2e 74  ++ tests/error.t
5580: 65 73 74 09 33 31 20 4d 61 72 20 32 30 31 30 20  est.31 Mar 2010 
5590: 31 34 3a 31 34 3a 34 31 20 2d 30 30 30 30 0a 40  14:14:41 -0000.@
55a0: 40 20 2d 31 36 39 2c 36 20 2b 31 36 39 2c 31 39  @ -169,6 +169,19
55b0: 20 40 40 20 74 65 73 74 20 65 72 72 6f 72 2d 34   @@ test error-4
55c0: 2e 35 20 7b 65 72 72 6f 72 49 6e 66 6f 20 61 6e  .5 {errorInfo an
55d0: 64 20 65 72 72 6f 72 43 6f 64 65 20 0a 20 20 20  d errorCode .   
55e0: 20 20 6c 69 73 74 20 5b 63 61 74 63 68 20 7b 65    list [catch {e
55f0: 72 72 6f 72 20 6d 73 67 31 20 6d 73 67 32 20 7b  rror msg1 msg2 {
5600: 7d 7d 20 6d 73 67 5d 20 24 6d 73 67 20 24 3a 3a  }} msg] $msg $::
5610: 65 72 72 6f 72 49 6e 66 6f 20 24 3a 3a 65 72 72  errorInfo $::err
5620: 6f 72 43 6f 64 65 0a 20 7d 20 7b 31 20 6d 73 67  orCode. } {1 msg
5630: 31 20 6d 73 67 32 20 7b 7d 7d 0a 20 0a 2b 74 65  1 msg2 {}}. .+te
5640: 73 74 20 65 72 72 6f 72 2d 34 2e 36 20 7b 65 72  st error-4.6 {er
5650: 72 6f 72 73 74 61 63 6b 20 76 69 61 20 69 6e 66  rorstack via inf
5660: 6f 20 7d 20 2d 62 6f 64 79 20 7b 0a 2b 20 20 20  o } -body {.+   
5670: 20 70 72 6f 63 20 66 20 78 20 7b 67 20 24 78 24   proc f x {g $x$
5680: 78 7d 0a 2b 20 20 20 20 70 72 6f 63 20 67 20 78  x}.+    proc g x
5690: 20 7b 65 72 72 6f 72 20 47 3a 24 78 7d 0a 2b 20   {error G:$x}.+ 
56a0: 20 20 20 63 61 74 63 68 20 7b 66 20 31 32 7d 0a     catch {f 12}.
56b0: 2b 20 20 20 20 69 6e 66 6f 20 65 72 72 6f 72 73  +    info errors
56c0: 74 61 63 6b 0a 2b 7d 20 2d 6d 61 74 63 68 20 67  tack.+} -match g
56d0: 6c 6f 62 20 2d 72 65 73 75 6c 74 20 7b 43 41 4c  lob -result {CAL
56e0: 4c 20 7b 67 20 31 32 31 32 7d 20 43 41 4c 4c 20  L {g 1212} CALL 
56f0: 7b 66 20 31 32 7d 20 55 50 20 31 7d 0a 2b 74 65  {f 12} UP 1}.+te
5700: 73 74 20 65 72 72 6f 72 2d 34 2e 37 20 7b 65 72  st error-4.7 {er
5710: 72 6f 72 73 74 61 63 6b 20 76 69 61 20 6f 70 74  rorstack via opt
5720: 69 6f 6e 73 20 64 69 63 74 20 7d 20 2d 62 6f 64  ions dict } -bod
5730: 79 20 7b 0a 2b 20 20 20 20 70 72 6f 63 20 66 20  y {.+    proc f 
5740: 78 20 7b 67 20 24 78 24 78 7d 0a 2b 20 20 20 20  x {g $x$x}.+    
5750: 70 72 6f 63 20 67 20 78 20 7b 65 72 72 6f 72 20  proc g x {error 
5760: 47 3a 24 78 7d 0a 2b 20 20 20 20 63 61 74 63 68  G:$x}.+    catch
5770: 20 7b 66 20 31 32 7d 20 6d 20 64 0a 2b 20 20 20   {f 12} m d.+   
5780: 20 64 69 63 74 20 67 65 74 20 24 64 20 2d 65 72   dict get $d -er
5790: 72 6f 72 73 74 61 63 6b 0a 2b 7d 20 2d 6d 61 74  rorstack.+} -mat
57a0: 63 68 20 67 6c 6f 62 20 2d 72 65 73 75 6c 74 20  ch glob -result 
57b0: 7b 43 41 4c 4c 20 7b 67 20 31 32 31 32 7d 20 43  {CALL {g 1212} C
57c0: 41 4c 4c 20 7b 66 20 31 32 7d 20 55 50 20 31 7d  ALL {f 12} UP 1}
57d0: 0a 2b 0a 20 23 20 45 72 72 6f 72 73 20 69 6e 20  .+. # Errors in 
57e0: 65 72 72 6f 72 20 63 6f 6d 6d 61 6e 64 20 69 74  error command it
57f0: 73 65 6c 66 0a 20 0a 20 74 65 73 74 20 65 72 72  self. . test err
5800: 6f 72 2d 35 2e 31 20 7b 65 72 72 6f 72 73 20 69  or-5.1 {errors i
5810: 6e 20 65 72 72 6f 72 20 63 6f 6d 6d 61 6e 64 7d  n error command}
5820: 20 7b 0a 40 40 20 2d 32 32 33 2c 36 20 2b 32 33   {.@@ -223,6 +23
5830: 36 2c 31 35 20 40 40 20 74 65 73 74 20 65 72 72  6,15 @@ test err
5840: 6f 72 2d 36 2e 39 20 7b 63 61 74 63 68 20 6d 75  or-6.9 {catch mu
5850: 73 74 20 72 65 73 65 74 20 65 72 72 6f 72 20 73  st reset error s
5860: 0a 20 20 20 20 20 63 61 74 63 68 20 66 6f 6f 0a  .     catch foo.
5870: 20 20 20 20 20 6c 69 73 74 20 24 3a 3a 65 72 72       list $::err
5880: 6f 72 43 6f 64 65 0a 20 7d 20 7b 4e 4f 4e 45 7d  orCode. } {NONE}
5890: 0a 2b 74 65 73 74 20 65 72 72 6f 72 2d 36 2e 31  .+test error-6.1
58a0: 30 20 7b 63 61 74 63 68 20 6d 75 73 74 20 72 65  0 {catch must re
58b0: 73 65 74 20 65 72 72 6f 72 73 74 61 63 6b 7d 20  set errorstack} 
58c0: 2d 62 6f 64 79 20 7b 0a 2b 09 70 72 6f 63 20 66  -body {.+.proc f
58d0: 20 78 20 7b 67 20 24 78 24 78 7d 0a 2b 09 70 72   x {g $x$x}.+.pr
58e0: 6f 63 20 67 20 78 20 7b 65 72 72 6f 72 20 47 3a  oc g x {error G:
58f0: 24 78 7d 0a 2b 09 63 61 74 63 68 20 7b 66 20 31  $x}.+.catch {f 1
5900: 32 7d 0a 2b 09 73 65 74 20 65 31 20 5b 69 6e 66  2}.+.set e1 [inf
5910: 6f 20 65 72 72 6f 72 73 74 61 63 6b 5d 0a 2b 09  o errorstack].+.
5920: 63 61 74 63 68 20 7b 66 20 31 33 7d 0a 2b 09 73  catch {f 13}.+.s
5930: 65 74 20 65 32 20 5b 69 6e 66 6f 20 65 72 72 6f  et e2 [info erro
5940: 72 73 74 61 63 6b 5d 0a 2b 09 6c 69 73 74 20 24  rstack].+.list $
5950: 65 31 20 24 65 32 0a 2b 7d 20 2d 6d 61 74 63 68  e1 $e2.+} -match
5960: 20 67 6c 6f 62 20 2d 72 65 73 75 6c 74 20 7b 7b   glob -result {{
5970: 43 41 4c 4c 20 7b 67 20 31 32 31 32 7d 20 43 41  CALL {g 1212} CA
5980: 4c 4c 20 7b 66 20 31 32 7d 20 55 50 20 31 7d 20  LL {f 12} UP 1} 
5990: 7b 43 41 4c 4c 20 7b 67 20 31 33 31 33 7d 20 43  {CALL {g 1313} C
59a0: 41 4c 4c 20 7b 66 20 31 33 7d 20 55 50 20 31 7d  ALL {f 13} UP 1}
59b0: 7d 0a 20 0a 20 74 65 73 74 20 65 72 72 6f 72 2d  }. . test error-
59c0: 37 2e 31 20 7b 42 75 67 20 31 33 39 37 38 34 33  7.1 {Bug 1397843
59d0: 7d 20 2d 62 6f 64 79 20 7b 0a 20 20 20 20 20 76  } -body {.     v
59e0: 61 72 69 61 62 6c 65 20 63 6d 64 73 0a 49 6e 64  ariable cmds.Ind
59f0: 65 78 3a 20 74 65 73 74 73 2f 65 78 65 63 75 74  ex: tests/execut
5a00: 65 2e 74 65 73 74 0a 3d 3d 3d 3d 3d 3d 3d 3d 3d  e.test.=========
5a10: 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d  ================
5a20: 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d  ================
5a30: 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d  ================
5a40: 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 0a 52 43 53 20 66  ==========.RCS f
5a50: 69 6c 65 3a 20 2f 63 76 73 72 6f 6f 74 2f 74 63  ile: /cvsroot/tc
5a60: 6c 2f 74 63 6c 2f 74 65 73 74 73 2f 65 78 65 63  l/tcl/tests/exec
5a70: 75 74 65 2e 74 65 73 74 2c 76 0a 72 65 74 72 69  ute.test,v.retri
5a80: 65 76 69 6e 67 20 72 65 76 69 73 69 6f 6e 20 31  eving revision 1
5a90: 2e 33 34 0a 64 69 66 66 20 2d 75 20 2d 70 20 2d  .34.diff -u -p -
5aa0: 75 20 2d 70 20 2d 72 31 2e 33 34 20 65 78 65 63  u -p -r1.34 exec
5ab0: 75 74 65 2e 74 65 73 74 0a 2d 2d 2d 20 74 65 73  ute.test.--- tes
5ac0: 74 73 2f 65 78 65 63 75 74 65 2e 74 65 73 74 09  ts/execute.test.
5ad0: 31 36 20 4e 6f 76 20 32 30 30 39 20 31 38 3a 30  16 Nov 2009 18:0
5ae0: 30 3a 31 31 20 2d 30 30 30 30 09 31 2e 33 34 0a  0:11 -0000.1.34.
5af0: 2b 2b 2b 20 74 65 73 74 73 2f 65 78 65 63 75 74  +++ tests/execut
5b00: 65 2e 74 65 73 74 09 33 31 20 4d 61 72 20 32 30  e.test.31 Mar 20
5b10: 31 30 20 31 34 3a 31 34 3a 34 31 20 2d 30 30 30  10 14:14:41 -000
5b20: 30 0a 40 40 20 2d 39 35 36 2c 31 31 20 2b 39 35  0.@@ -956,11 +95
5b30: 36 2c 31 31 20 40 40 20 74 65 73 74 20 65 78 65  6,11 @@ test exe
5b40: 63 75 74 65 2d 38 2e 35 20 7b 42 75 67 20 32 30  cute-8.5 {Bug 20
5b50: 33 38 30 36 39 7d 20 2d 73 65 74 75 70 20 7b 0a  38069} -setup {.
5b60: 20 20 20 20 20 64 65 6d 6f 0a 20 7d 20 2d 63 6c       demo. } -cl
5b70: 65 61 6e 75 70 20 7b 0a 20 20 20 20 20 72 65 6e  eanup {.     ren
5b80: 61 6d 65 20 64 65 6d 6f 20 7b 7d 0a 2d 7d 20 2d  ame demo {}.-} -
5b90: 72 65 73 75 6c 74 20 7b 2d 63 6f 64 65 20 31 20  result {-code 1 
5ba0: 2d 6c 65 76 65 6c 20 30 20 2d 65 72 72 6f 72 63  -level 0 -errorc
5bb0: 6f 64 65 20 4e 4f 4e 45 20 2d 65 72 72 6f 72 69  ode NONE -errori
5bc0: 6e 66 6f 20 7b 46 4f 4f 0a 2b 7d 20 2d 6d 61 74  nfo {FOO.+} -mat
5bd0: 63 68 20 67 6c 6f 62 20 2d 72 65 73 75 6c 74 20  ch glob -result 
5be0: 7b 2d 63 6f 64 65 20 31 20 2d 6c 65 76 65 6c 20  {-code 1 -level 
5bf0: 30 20 2d 65 72 72 6f 72 73 74 61 63 6b 20 2a 20  0 -errorstack * 
5c00: 2d 65 72 72 6f 72 63 6f 64 65 20 4e 4f 4e 45 20  -errorcode NONE 
5c10: 2d 65 72 72 6f 72 69 6e 66 6f 20 7b 46 4f 4f 0a  -errorinfo {FOO.
5c20: 20 20 20 20 20 77 68 69 6c 65 20 65 78 65 63 75       while execu
5c30: 74 69 6e 67 0a 20 22 65 72 72 6f 72 20 46 4f 4f  ting. "error FOO
5c40: 22 0a 20 20 20 20 20 69 6e 76 6f 6b 65 64 20 66  ".     invoked f
5c50: 72 6f 6d 20 77 69 74 68 69 6e 0a 2d 22 63 61 74  rom within.-"cat
5c60: 63 68 20 5b 6c 69 73 74 20 65 72 72 6f 72 20 46  ch [list error F
5c70: 4f 4f 5d 20 6d 20 6f 22 7d 20 2d 65 72 72 6f 72  OO] m o"} -error
5c80: 6c 69 6e 65 20 32 7d 0a 2b 22 63 61 74 63 68 20  line 2}.+"catch 
5c90: 5c 5b 6c 69 73 74 20 65 72 72 6f 72 20 46 4f 4f  \[list error FOO
5ca0: 5c 5d 20 6d 20 6f 22 7d 20 2d 65 72 72 6f 72 6c  \] m o"} -errorl
5cb0: 69 6e 65 20 32 7d 0a 20 0a 20 74 65 73 74 20 65  ine 2}. . test e
5cc0: 78 65 63 75 74 65 2d 39 2e 31 20 7b 49 6e 74 65  xecute-9.1 {Inte
5cd0: 72 70 20 72 65 73 75 6c 74 20 72 65 73 65 74 74  rp result resett
5ce0: 69 6e 67 20 5b 42 75 67 20 31 35 32 32 38 30 33  ing [Bug 1522803
5cf0: 5d 7d 20 7b 0a 20 20 20 20 20 73 65 74 20 63 20  ]} {.     set c 
5d00: 30 0a 49 6e 64 65 78 3a 20 74 65 73 74 73 2f 69  0.Index: tests/i
5d10: 6e 66 6f 2e 74 65 73 74 0a 3d 3d 3d 3d 3d 3d 3d  nfo.test.=======
5d20: 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d  ================
5d30: 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d  ================
5d40: 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d  ================
5d50: 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 0a 52 43 53  ============.RCS
5d60: 20 66 69 6c 65 3a 20 2f 63 76 73 72 6f 6f 74 2f   file: /cvsroot/
5d70: 74 63 6c 2f 74 63 6c 2f 74 65 73 74 73 2f 69 6e  tcl/tcl/tests/in
5d80: 66 6f 2e 74 65 73 74 2c 76 0a 72 65 74 72 69 65  fo.test,v.retrie
5d90: 76 69 6e 67 20 72 65 76 69 73 69 6f 6e 20 31 2e  ving revision 1.
5da0: 37 35 0a 64 69 66 66 20 2d 75 20 2d 70 20 2d 75  75.diff -u -p -u
5db0: 20 2d 70 20 2d 72 31 2e 37 35 20 69 6e 66 6f 2e   -p -r1.75 info.
5dc0: 74 65 73 74 0a 2d 2d 2d 20 74 65 73 74 73 2f 69  test.--- tests/i
5dd0: 6e 66 6f 2e 74 65 73 74 09 31 30 20 46 65 62 20  nfo.test.10 Feb 
5de0: 32 30 31 30 20 32 33 3a 32 34 3a 32 35 20 2d 30  2010 23:24:25 -0
5df0: 30 30 30 09 31 2e 37 35 0a 2b 2b 2b 20 74 65 73  000.1.75.+++ tes
5e00: 74 73 2f 69 6e 66 6f 2e 74 65 73 74 09 33 31 20  ts/info.test.31 
5e10: 4d 61 72 20 32 30 31 30 20 31 34 3a 31 34 3a 34  Mar 2010 14:14:4
5e20: 31 20 2d 30 30 30 30 0a 40 40 20 2d 36 37 36 2c  1 -0000.@@ -676,
5e30: 31 36 20 2b 36 37 36 2c 31 36 20 40 40 20 74 65  16 +676,16 @@ te
5e40: 73 74 20 69 6e 66 6f 2d 32 31 2e 31 20 7b 6d 69  st info-21.1 {mi
5e50: 73 63 65 6c 6c 61 6e 65 6f 75 73 20 65 72 72 6f  scellaneous erro
5e60: 72 20 63 6f 6e 64 0a 20 7d 20 2d 72 65 73 75 6c  r cond. } -resul
5e70: 74 20 7b 77 72 6f 6e 67 20 23 20 61 72 67 73 3a  t {wrong # args:
5e80: 20 73 68 6f 75 6c 64 20 62 65 20 22 69 6e 66 6f   should be "info
5e90: 20 73 75 62 63 6f 6d 6d 61 6e 64 20 3f 61 72 67   subcommand ?arg
5ea0: 20 2e 2e 2e 3f 22 7d 0a 20 74 65 73 74 20 69 6e   ...?"}. test in
5eb0: 66 6f 2d 32 31 2e 32 20 7b 6d 69 73 63 65 6c 6c  fo-21.2 {miscell
5ec0: 61 6e 65 6f 75 73 20 65 72 72 6f 72 20 63 6f 6e  aneous error con
5ed0: 64 69 74 69 6f 6e 73 7d 20 2d 72 65 74 75 72 6e  ditions} -return
5ee0: 43 6f 64 65 73 20 65 72 72 6f 72 20 2d 62 6f 64  Codes error -bod
5ef0: 79 20 7b 0a 20 20 20 20 20 69 6e 66 6f 20 67 6f  y {.     info go
5f00: 72 70 0a 2d 7d 20 2d 72 65 73 75 6c 74 20 7b 75  rp.-} -result {u
5f10: 6e 6b 6e 6f 77 6e 20 6f 72 20 61 6d 62 69 67 75  nknown or ambigu
5f20: 6f 75 73 20 73 75 62 63 6f 6d 6d 61 6e 64 20 22  ous subcommand "
5f30: 67 6f 72 70 22 3a 20 6d 75 73 74 20 62 65 20 61  gorp": must be a
5f40: 72 67 73 2c 20 62 6f 64 79 2c 20 63 6c 61 73 73  rgs, body, class
5f50: 2c 20 63 6d 64 63 6f 75 6e 74 2c 20 63 6f 6d 6d  , cmdcount, comm
5f60: 61 6e 64 73 2c 20 63 6f 6d 70 6c 65 74 65 2c 20  ands, complete, 
5f70: 63 6f 72 6f 75 74 69 6e 65 2c 20 64 65 66 61 75  coroutine, defau
5f80: 6c 74 2c 20 65 78 69 73 74 73 2c 20 66 72 61 6d  lt, exists, fram
5f90: 65 2c 20 66 75 6e 63 74 69 6f 6e 73 2c 20 67 6c  e, functions, gl
5fa0: 6f 62 61 6c 73 2c 20 68 6f 73 74 6e 61 6d 65 2c  obals, hostname,
5fb0: 20 6c 65 76 65 6c 2c 20 6c 69 62 72 61 72 79 2c   level, library,
5fc0: 20 6c 6f 61 64 65 64 2c 20 6c 6f 63 61 6c 73 2c   loaded, locals,
5fd0: 20 6e 61 6d 65 6f 66 65 78 65 63 75 74 61 62 6c   nameofexecutabl
5fe0: 65 2c 20 6f 62 6a 65 63 74 2c 20 70 61 74 63 68  e, object, patch
5ff0: 6c 65 76 65 6c 2c 20 70 72 6f 63 73 2c 20 73 63  level, procs, sc
6000: 72 69 70 74 2c 20 73 68 61 72 65 64 6c 69 62 65  ript, sharedlibe
6010: 78 74 65 6e 73 69 6f 6e 2c 20 74 63 6c 76 65 72  xtension, tclver
6020: 73 69 6f 6e 2c 20 6f 72 20 76 61 72 73 7d 0a 2b  sion, or vars}.+
6030: 7d 20 2d 72 65 73 75 6c 74 20 7b 75 6e 6b 6e 6f  } -result {unkno
6040: 77 6e 20 6f 72 20 61 6d 62 69 67 75 6f 75 73 20  wn or ambiguous 
6050: 73 75 62 63 6f 6d 6d 61 6e 64 20 22 67 6f 72 70  subcommand "gorp
6060: 22 3a 20 6d 75 73 74 20 62 65 20 61 72 67 73 2c  ": must be args,
6070: 20 62 6f 64 79 2c 20 63 6c 61 73 73 2c 20 63 6d   body, class, cm
6080: 64 63 6f 75 6e 74 2c 20 63 6f 6d 6d 61 6e 64 73  dcount, commands
6090: 2c 20 63 6f 6d 70 6c 65 74 65 2c 20 63 6f 72 6f  , complete, coro
60a0: 75 74 69 6e 65 2c 20 64 65 66 61 75 6c 74 2c 20  utine, default, 
60b0: 65 72 72 6f 72 73 74 61 63 6b 2c 20 65 78 69 73  errorstack, exis
60c0: 74 73 2c 20 66 72 61 6d 65 2c 20 66 75 6e 63 74  ts, frame, funct
60d0: 69 6f 6e 73 2c 20 67 6c 6f 62 61 6c 73 2c 20 68  ions, globals, h
60e0: 6f 73 74 6e 61 6d 65 2c 20 6c 65 76 65 6c 2c 20  ostname, level, 
60f0: 6c 69 62 72 61 72 79 2c 20 6c 6f 61 64 65 64 2c  library, loaded,
6100: 20 6c 6f 63 61 6c 73 2c 20 6e 61 6d 65 6f 66 65   locals, nameofe
6110: 78 65 63 75 74 61 62 6c 65 2c 20 6f 62 6a 65 63  xecutable, objec
6120: 74 2c 20 70 61 74 63 68 6c 65 76 65 6c 2c 20 70  t, patchlevel, p
6130: 72 6f 63 73 2c 20 73 63 72 69 70 74 2c 20 73 68  rocs, script, sh
6140: 61 72 65 64 6c 69 62 65 78 74 65 6e 73 69 6f 6e  aredlibextension
6150: 2c 20 74 63 6c 76 65 72 73 69 6f 6e 2c 20 6f 72  , tclversion, or
6160: 20 76 61 72 73 7d 0a 20 74 65 73 74 20 69 6e 66   vars}. test inf
6170: 6f 2d 32 31 2e 33 20 7b 6d 69 73 63 65 6c 6c 61  o-21.3 {miscella
6180: 6e 65 6f 75 73 20 65 72 72 6f 72 20 63 6f 6e 64  neous error cond
6190: 69 74 69 6f 6e 73 7d 20 2d 72 65 74 75 72 6e 43  itions} -returnC
61a0: 6f 64 65 73 20 65 72 72 6f 72 20 2d 62 6f 64 79  odes error -body
61b0: 20 7b 0a 20 20 20 20 20 69 6e 66 6f 20 63 0a 2d   {.     info c.-
61c0: 7d 20 2d 72 65 73 75 6c 74 20 7b 75 6e 6b 6e 6f  } -result {unkno
61d0: 77 6e 20 6f 72 20 61 6d 62 69 67 75 6f 75 73 20  wn or ambiguous 
61e0: 73 75 62 63 6f 6d 6d 61 6e 64 20 22 63 22 3a 20  subcommand "c": 
61f0: 6d 75 73 74 20 62 65 20 61 72 67 73 2c 20 62 6f  must be args, bo
6200: 64 79 2c 20 63 6c 61 73 73 2c 20 63 6d 64 63 6f  dy, class, cmdco
6210: 75 6e 74 2c 20 63 6f 6d 6d 61 6e 64 73 2c 20 63  unt, commands, c
6220: 6f 6d 70 6c 65 74 65 2c 20 63 6f 72 6f 75 74 69  omplete, corouti
6230: 6e 65 2c 20 64 65 66 61 75 6c 74 2c 20 65 78 69  ne, default, exi
6240: 73 74 73 2c 20 66 72 61 6d 65 2c 20 66 75 6e 63  sts, frame, func
6250: 74 69 6f 6e 73 2c 20 67 6c 6f 62 61 6c 73 2c 20  tions, globals, 
6260: 68 6f 73 74 6e 61 6d 65 2c 20 6c 65 76 65 6c 2c  hostname, level,
6270: 20 6c 69 62 72 61 72 79 2c 20 6c 6f 61 64 65 64   library, loaded
6280: 2c 20 6c 6f 63 61 6c 73 2c 20 6e 61 6d 65 6f 66  , locals, nameof
6290: 65 78 65 63 75 74 61 62 6c 65 2c 20 6f 62 6a 65  executable, obje
62a0: 63 74 2c 20 70 61 74 63 68 6c 65 76 65 6c 2c 20  ct, patchlevel, 
62b0: 70 72 6f 63 73 2c 20 73 63 72 69 70 74 2c 20 73  procs, script, s
62c0: 68 61 72 65 64 6c 69 62 65 78 74 65 6e 73 69 6f  haredlibextensio
62d0: 6e 2c 20 74 63 6c 76 65 72 73 69 6f 6e 2c 20 6f  n, tclversion, o
62e0: 72 20 76 61 72 73 7d 0a 2b 7d 20 2d 72 65 73 75  r vars}.+} -resu
62f0: 6c 74 20 7b 75 6e 6b 6e 6f 77 6e 20 6f 72 20 61  lt {unknown or a
6300: 6d 62 69 67 75 6f 75 73 20 73 75 62 63 6f 6d 6d  mbiguous subcomm
6310: 61 6e 64 20 22 63 22 3a 20 6d 75 73 74 20 62 65  and "c": must be
6320: 20 61 72 67 73 2c 20 62 6f 64 79 2c 20 63 6c 61   args, body, cla
6330: 73 73 2c 20 63 6d 64 63 6f 75 6e 74 2c 20 63 6f  ss, cmdcount, co
6340: 6d 6d 61 6e 64 73 2c 20 63 6f 6d 70 6c 65 74 65  mmands, complete
6350: 2c 20 63 6f 72 6f 75 74 69 6e 65 2c 20 64 65 66  , coroutine, def
6360: 61 75 6c 74 2c 20 65 72 72 6f 72 73 74 61 63 6b  ault, errorstack
6370: 2c 20 65 78 69 73 74 73 2c 20 66 72 61 6d 65 2c  , exists, frame,
6380: 20 66 75 6e 63 74 69 6f 6e 73 2c 20 67 6c 6f 62   functions, glob
6390: 61 6c 73 2c 20 68 6f 73 74 6e 61 6d 65 2c 20 6c  als, hostname, l
63a0: 65 76 65 6c 2c 20 6c 69 62 72 61 72 79 2c 20 6c  evel, library, l
63b0: 6f 61 64 65 64 2c 20 6c 6f 63 61 6c 73 2c 20 6e  oaded, locals, n
63c0: 61 6d 65 6f 66 65 78 65 63 75 74 61 62 6c 65 2c  ameofexecutable,
63d0: 20 6f 62 6a 65 63 74 2c 20 70 61 74 63 68 6c 65   object, patchle
63e0: 76 65 6c 2c 20 70 72 6f 63 73 2c 20 73 63 72 69  vel, procs, scri
63f0: 70 74 2c 20 73 68 61 72 65 64 6c 69 62 65 78 74  pt, sharedlibext
6400: 65 6e 73 69 6f 6e 2c 20 74 63 6c 76 65 72 73 69  ension, tclversi
6410: 6f 6e 2c 20 6f 72 20 76 61 72 73 7d 0a 20 74 65  on, or vars}. te
6420: 73 74 20 69 6e 66 6f 2d 32 31 2e 34 20 7b 6d 69  st info-21.4 {mi
6430: 73 63 65 6c 6c 61 6e 65 6f 75 73 20 65 72 72 6f  scellaneous erro
6440: 72 20 63 6f 6e 64 69 74 69 6f 6e 73 7d 20 2d 72  r conditions} -r
6450: 65 74 75 72 6e 43 6f 64 65 73 20 65 72 72 6f 72  eturnCodes error
6460: 20 2d 62 6f 64 79 20 7b 0a 20 20 20 20 20 69 6e   -body {.     in
6470: 66 6f 20 6c 0a 2d 7d 20 2d 72 65 73 75 6c 74 20  fo l.-} -result 
6480: 7b 75 6e 6b 6e 6f 77 6e 20 6f 72 20 61 6d 62 69  {unknown or ambi
6490: 67 75 6f 75 73 20 73 75 62 63 6f 6d 6d 61 6e 64  guous subcommand
64a0: 20 22 6c 22 3a 20 6d 75 73 74 20 62 65 20 61 72   "l": must be ar
64b0: 67 73 2c 20 62 6f 64 79 2c 20 63 6c 61 73 73 2c  gs, body, class,
64c0: 20 63 6d 64 63 6f 75 6e 74 2c 20 63 6f 6d 6d 61   cmdcount, comma
64d0: 6e 64 73 2c 20 63 6f 6d 70 6c 65 74 65 2c 20 63  nds, complete, c
64e0: 6f 72 6f 75 74 69 6e 65 2c 20 64 65 66 61 75 6c  oroutine, defaul
64f0: 74 2c 20 65 78 69 73 74 73 2c 20 66 72 61 6d 65  t, exists, frame
6500: 2c 20 66 75 6e 63 74 69 6f 6e 73 2c 20 67 6c 6f  , functions, glo
6510: 62 61 6c 73 2c 20 68 6f 73 74 6e 61 6d 65 2c 20  bals, hostname, 
6520: 6c 65 76 65 6c 2c 20 6c 69 62 72 61 72 79 2c 20  level, library, 
6530: 6c 6f 61 64 65 64 2c 20 6c 6f 63 61 6c 73 2c 20  loaded, locals, 
6540: 6e 61 6d 65 6f 66 65 78 65 63 75 74 61 62 6c 65  nameofexecutable
6550: 2c 20 6f 62 6a 65 63 74 2c 20 70 61 74 63 68 6c  , object, patchl
6560: 65 76 65 6c 2c 20 70 72 6f 63 73 2c 20 73 63 72  evel, procs, scr
6570: 69 70 74 2c 20 73 68 61 72 65 64 6c 69 62 65 78  ipt, sharedlibex
6580: 74 65 6e 73 69 6f 6e 2c 20 74 63 6c 76 65 72 73  tension, tclvers
6590: 69 6f 6e 2c 20 6f 72 20 76 61 72 73 7d 0a 2b 7d  ion, or vars}.+}
65a0: 20 2d 72 65 73 75 6c 74 20 7b 75 6e 6b 6e 6f 77   -result {unknow
65b0: 6e 20 6f 72 20 61 6d 62 69 67 75 6f 75 73 20 73  n or ambiguous s
65c0: 75 62 63 6f 6d 6d 61 6e 64 20 22 6c 22 3a 20 6d  ubcommand "l": m
65d0: 75 73 74 20 62 65 20 61 72 67 73 2c 20 62 6f 64  ust be args, bod
65e0: 79 2c 20 63 6c 61 73 73 2c 20 63 6d 64 63 6f 75  y, class, cmdcou
65f0: 6e 74 2c 20 63 6f 6d 6d 61 6e 64 73 2c 20 63 6f  nt, commands, co
6600: 6d 70 6c 65 74 65 2c 20 63 6f 72 6f 75 74 69 6e  mplete, coroutin
6610: 65 2c 20 64 65 66 61 75 6c 74 2c 20 65 72 72 6f  e, default, erro
6620: 72 73 74 61 63 6b 2c 20 65 78 69 73 74 73 2c 20  rstack, exists, 
6630: 66 72 61 6d 65 2c 20 66 75 6e 63 74 69 6f 6e 73  frame, functions
6640: 2c 20 67 6c 6f 62 61 6c 73 2c 20 68 6f 73 74 6e  , globals, hostn
6650: 61 6d 65 2c 20 6c 65 76 65 6c 2c 20 6c 69 62 72  ame, level, libr
6660: 61 72 79 2c 20 6c 6f 61 64 65 64 2c 20 6c 6f 63  ary, loaded, loc
6670: 61 6c 73 2c 20 6e 61 6d 65 6f 66 65 78 65 63 75  als, nameofexecu
6680: 74 61 62 6c 65 2c 20 6f 62 6a 65 63 74 2c 20 70  table, object, p
6690: 61 74 63 68 6c 65 76 65 6c 2c 20 70 72 6f 63 73  atchlevel, procs
66a0: 2c 20 73 63 72 69 70 74 2c 20 73 68 61 72 65 64  , script, shared
66b0: 6c 69 62 65 78 74 65 6e 73 69 6f 6e 2c 20 74 63  libextension, tc
66c0: 6c 76 65 72 73 69 6f 6e 2c 20 6f 72 20 76 61 72  lversion, or var
66d0: 73 7d 0a 20 74 65 73 74 20 69 6e 66 6f 2d 32 31  s}. test info-21
66e0: 2e 35 20 7b 6d 69 73 63 65 6c 6c 61 6e 65 6f 75  .5 {miscellaneou
66f0: 73 20 65 72 72 6f 72 20 63 6f 6e 64 69 74 69 6f  s error conditio
6700: 6e 73 7d 20 2d 72 65 74 75 72 6e 43 6f 64 65 73  ns} -returnCodes
6710: 20 65 72 72 6f 72 20 2d 62 6f 64 79 20 7b 0a 20   error -body {. 
6720: 20 20 20 20 69 6e 66 6f 20 73 0a 2d 7d 20 2d 72      info s.-} -r
6730: 65 73 75 6c 74 20 7b 75 6e 6b 6e 6f 77 6e 20 6f  esult {unknown o
6740: 72 20 61 6d 62 69 67 75 6f 75 73 20 73 75 62 63  r ambiguous subc
6750: 6f 6d 6d 61 6e 64 20 22 73 22 3a 20 6d 75 73 74  ommand "s": must
6760: 20 62 65 20 61 72 67 73 2c 20 62 6f 64 79 2c 20   be args, body, 
6770: 63 6c 61 73 73 2c 20 63 6d 64 63 6f 75 6e 74 2c  class, cmdcount,
6780: 20 63 6f 6d 6d 61 6e 64 73 2c 20 63 6f 6d 70 6c   commands, compl
6790: 65 74 65 2c 20 63 6f 72 6f 75 74 69 6e 65 2c 20  ete, coroutine, 
67a0: 64 65 66 61 75 6c 74 2c 20 65 78 69 73 74 73 2c  default, exists,
67b0: 20 66 72 61 6d 65 2c 20 66 75 6e 63 74 69 6f 6e   frame, function
67c0: 73 2c 20 67 6c 6f 62 61 6c 73 2c 20 68 6f 73 74  s, globals, host
67d0: 6e 61 6d 65 2c 20 6c 65 76 65 6c 2c 20 6c 69 62  name, level, lib
67e0: 72 61 72 79 2c 20 6c 6f 61 64 65 64 2c 20 6c 6f  rary, loaded, lo
67f0: 63 61 6c 73 2c 20 6e 61 6d 65 6f 66 65 78 65 63  cals, nameofexec
6800: 75 74 61 62 6c 65 2c 20 6f 62 6a 65 63 74 2c 20  utable, object, 
6810: 70 61 74 63 68 6c 65 76 65 6c 2c 20 70 72 6f 63  patchlevel, proc
6820: 73 2c 20 73 63 72 69 70 74 2c 20 73 68 61 72 65  s, script, share
6830: 64 6c 69 62 65 78 74 65 6e 73 69 6f 6e 2c 20 74  dlibextension, t
6840: 63 6c 76 65 72 73 69 6f 6e 2c 20 6f 72 20 76 61  clversion, or va
6850: 72 73 7d 0a 2b 7d 20 2d 72 65 73 75 6c 74 20 7b  rs}.+} -result {
6860: 75 6e 6b 6e 6f 77 6e 20 6f 72 20 61 6d 62 69 67  unknown or ambig
6870: 75 6f 75 73 20 73 75 62 63 6f 6d 6d 61 6e 64 20  uous subcommand 
6880: 22 73 22 3a 20 6d 75 73 74 20 62 65 20 61 72 67  "s": must be arg
6890: 73 2c 20 62 6f 64 79 2c 20 63 6c 61 73 73 2c 20  s, body, class, 
68a0: 63 6d 64 63 6f 75 6e 74 2c 20 63 6f 6d 6d 61 6e  cmdcount, comman
68b0: 64 73 2c 20 63 6f 6d 70 6c 65 74 65 2c 20 63 6f  ds, complete, co
68c0: 72 6f 75 74 69 6e 65 2c 20 64 65 66 61 75 6c 74  routine, default
68d0: 2c 20 65 72 72 6f 72 73 74 61 63 6b 2c 20 65 78  , errorstack, ex
68e0: 69 73 74 73 2c 20 66 72 61 6d 65 2c 20 66 75 6e  ists, frame, fun
68f0: 63 74 69 6f 6e 73 2c 20 67 6c 6f 62 61 6c 73 2c  ctions, globals,
6900: 20 68 6f 73 74 6e 61 6d 65 2c 20 6c 65 76 65 6c   hostname, level
6910: 2c 20 6c 69 62 72 61 72 79 2c 20 6c 6f 61 64 65  , library, loade
6920: 64 2c 20 6c 6f 63 61 6c 73 2c 20 6e 61 6d 65 6f  d, locals, nameo
6930: 66 65 78 65 63 75 74 61 62 6c 65 2c 20 6f 62 6a  fexecutable, obj
6940: 65 63 74 2c 20 70 61 74 63 68 6c 65 76 65 6c 2c  ect, patchlevel,
6950: 20 70 72 6f 63 73 2c 20 73 63 72 69 70 74 2c 20   procs, script, 
6960: 73 68 61 72 65 64 6c 69 62 65 78 74 65 6e 73 69  sharedlibextensi
6970: 6f 6e 2c 20 74 63 6c 76 65 72 73 69 6f 6e 2c 20  on, tclversion, 
6980: 6f 72 20 76 61 72 73 7d 0a 20 0a 20 23 23 0a 20  or vars}. . ##. 
6990: 23 20 23 23 23 20 23 23 23 20 23 23 23 20 23 23  # ### ### ### ##
69a0: 23 23 23 23 23 23 23 20 23 23 23 23 23 23 23 23  ####### ########
69b0: 23 20 23 23 23 23 23 23 23 23 23 0a 49 6e 64 65  # #########.Inde
69c0: 78 3a 20 74 65 73 74 73 2f 69 6e 69 74 2e 74 65  x: tests/init.te
69d0: 73 74 0a 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d  st.=============
69e0: 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d  ================
69f0: 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d  ================
6a00: 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d  ================
6a10: 3d 3d 3d 3d 3d 3d 0a 52 43 53 20 66 69 6c 65 3a  ======.RCS file:
6a20: 20 2f 63 76 73 72 6f 6f 74 2f 74 63 6c 2f 74 63   /cvsroot/tcl/tc
6a30: 6c 2f 74 65 73 74 73 2f 69 6e 69 74 2e 74 65 73  l/tests/init.tes
6a40: 74 2c 76 0a 72 65 74 72 69 65 76 69 6e 67 20 72  t,v.retrieving r
6a50: 65 76 69 73 69 6f 6e 20 31 2e 32 31 0a 64 69 66  evision 1.21.dif
6a60: 66 20 2d 75 20 2d 70 20 2d 75 20 2d 70 20 2d 72  f -u -p -u -p -r
6a70: 31 2e 32 31 20 69 6e 69 74 2e 74 65 73 74 0a 2d  1.21 init.test.-
6a80: 2d 2d 20 74 65 73 74 73 2f 69 6e 69 74 2e 74 65  -- tests/init.te
6a90: 73 74 09 31 36 20 4e 6f 76 20 32 30 30 39 20 31  st.16 Nov 2009 1
6aa0: 38 3a 30 30 3a 31 31 20 2d 30 30 30 30 09 31 2e  8:00:11 -0000.1.
6ab0: 32 31 0a 2b 2b 2b 20 74 65 73 74 73 2f 69 6e 69  21.+++ tests/ini
6ac0: 74 2e 74 65 73 74 09 33 31 20 4d 61 72 20 32 30  t.test.31 Mar 20
6ad0: 31 30 20 31 34 3a 31 34 3a 34 31 20 2d 30 30 30  10 14:14:41 -000
6ae0: 30 0a 40 40 20 2d 31 38 31 2c 37 20 2b 31 38 31  0.@@ -181,7 +181
6af0: 2c 37 20 40 40 20 74 65 73 74 20 69 6e 69 74 2d  ,7 @@ test init-
6b00: 35 2e 30 20 7b 72 65 74 75 72 6e 20 6f 70 74 69  5.0 {return opti
6b10: 6f 6e 73 20 70 61 73 73 65 64 20 74 68 72 0a 20  ons passed thr. 
6b20: 20 20 20 20 6c 69 73 74 20 24 63 6f 64 65 20 24      list $code $
6b30: 66 6f 6f 20 24 62 61 72 20 24 63 6f 64 65 32 20  foo $bar $code2 
6b40: 24 66 6f 6f 32 20 24 62 61 72 32 0a 20 7d 20 2d  $foo2 $bar2. } -
6b50: 63 6c 65 61 6e 75 70 20 7b 0a 20 20 20 20 20 75  cleanup {.     u
6b60: 6e 73 65 74 20 3a 3a 61 75 74 6f 5f 69 6e 64 65  nset ::auto_inde
6b70: 78 28 3a 3a 78 78 78 29 0a 2d 7d 20 2d 72 65 73  x(::xxx).-} -res
6b80: 75 6c 74 20 7b 32 20 78 78 78 20 7b 2d 65 72 72  ult {2 xxx {-err
6b90: 6f 72 63 6f 64 65 20 4e 4f 4e 45 20 2d 63 6f 64  orcode NONE -cod
6ba0: 65 20 31 20 2d 6c 65 76 65 6c 20 31 7d 20 32 20  e 1 -level 1} 2 
6bb0: 78 78 78 20 7b 2d 63 6f 64 65 20 31 20 2d 6c 65  xxx {-code 1 -le
6bc0: 76 65 6c 20 31 20 2d 65 72 72 6f 72 63 6f 64 65  vel 1 -errorcode
6bd0: 20 4e 4f 4e 45 7d 7d 0a 2b 7d 20 2d 6d 61 74 63   NONE}}.+} -matc
6be0: 68 20 67 6c 6f 62 20 2d 72 65 73 75 6c 74 20 7b  h glob -result {
6bf0: 32 20 78 78 78 20 7b 2d 65 72 72 6f 72 63 6f 64  2 xxx {-errorcod
6c00: 65 20 4e 4f 4e 45 20 2d 63 6f 64 65 20 31 20 2d  e NONE -code 1 -
6c10: 6c 65 76 65 6c 20 31 7d 20 32 20 78 78 78 20 7b  level 1} 2 xxx {
6c20: 2d 63 6f 64 65 20 31 20 2d 6c 65 76 65 6c 20 31  -code 1 -level 1
6c30: 20 2d 65 72 72 6f 72 63 6f 64 65 20 4e 4f 4e 45   -errorcode NONE
6c40: 7d 7d 0a 20 0c 0a 20 63 6c 65 61 6e 75 70 54 65  }}. .. cleanupTe
6c50: 73 74 73 0a 20 7d 09 3b 23 20 20 45 6e 64 20 6f  sts. }.;#  End o
6c60: 66 20 5b 69 6e 74 65 72 70 20 65 76 61 6c 20 24  f [interp eval $
6c70: 74 65 73 74 49 6e 74 65 72 70 5d 0a 49 6e 64 65  testInterp].Inde
6c80: 78 3a 20 74 65 73 74 73 2f 72 65 73 75 6c 74 2e  x: tests/result.
6c90: 74 65 73 74 0a 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d  test.===========
6ca0: 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d  ================
6cb0: 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d  ================
6cc0: 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d  ================
6cd0: 3d 3d 3d 3d 3d 3d 3d 3d 0a 52 43 53 20 66 69 6c  ========.RCS fil
6ce0: 65 3a 20 2f 63 76 73 72 6f 6f 74 2f 74 63 6c 2f  e: /cvsroot/tcl/
6cf0: 74 63 6c 2f 74 65 73 74 73 2f 72 65 73 75 6c 74  tcl/tests/result
6d00: 2e 74 65 73 74 2c 76 0a 72 65 74 72 69 65 76 69  .test,v.retrievi
6d10: 6e 67 20 72 65 76 69 73 69 6f 6e 20 31 2e 31 36  ng revision 1.16
6d20: 0a 64 69 66 66 20 2d 75 20 2d 70 20 2d 75 20 2d  .diff -u -p -u -
6d30: 70 20 2d 72 31 2e 31 36 20 72 65 73 75 6c 74 2e  p -r1.16 result.
6d40: 74 65 73 74 0a 2d 2d 2d 20 74 65 73 74 73 2f 72  test.--- tests/r
6d50: 65 73 75 6c 74 2e 74 65 73 74 09 32 34 20 4d 61  esult.test.24 Ma
6d60: 72 20 32 30 31 30 20 31 35 3a 33 33 3a 31 34 20  r 2010 15:33:14 
6d70: 2d 30 30 30 30 09 31 2e 31 36 0a 2b 2b 2b 20 74  -0000.1.16.+++ t
6d80: 65 73 74 73 2f 72 65 73 75 6c 74 2e 74 65 73 74  ests/result.test
6d90: 09 33 31 20 4d 61 72 20 32 30 31 30 20 31 34 3a  .31 Mar 2010 14:
6da0: 31 34 3a 34 31 20 2d 30 30 30 30 0a 40 40 20 2d  14:41 -0000.@@ -
6db0: 31 33 35 2c 36 20 2b 31 33 35 2c 31 34 20 40 40  135,6 +135,14 @@
6dc0: 20 74 65 73 74 20 72 65 73 75 6c 74 2d 36 2e 33   test result-6.3
6dd0: 20 7b 42 75 67 20 32 33 38 33 30 30 35 7d 20 7b   {Bug 2383005} {
6de0: 0a 20 20 20 20 20 20 63 61 74 63 68 20 7b 72 65  .      catch {re
6df0: 74 75 72 6e 20 2d 63 6f 64 65 20 65 72 72 6f 72  turn -code error
6e00: 20 2d 65 72 72 6f 72 63 6f 64 65 20 7b 7b 7d 61   -errorcode {{}a
6e10: 7d 20 65 65 6b 7d 20 6d 0a 20 20 20 20 20 20 73  } eek} m.      s
6e20: 65 74 20 6d 0a 20 7d 20 7b 62 61 64 20 2d 65 72  et m. } {bad -er
6e30: 72 6f 72 63 6f 64 65 20 76 61 6c 75 65 3a 20 65  rorcode value: e
6e40: 78 70 65 63 74 65 64 20 61 20 6c 69 73 74 20 62  xpected a list b
6e50: 75 74 20 67 6f 74 20 22 7b 7d 61 22 7d 0a 2b 74  ut got "{}a"}.+t
6e60: 65 73 74 20 72 65 73 75 6c 74 2d 36 2e 34 20 7b  est result-6.4 {
6e70: 6e 6f 6e 2d 6c 69 73 74 20 2d 65 72 72 6f 72 73  non-list -errors
6e80: 74 61 63 6b 7d 20 7b 0a 2b 20 20 20 20 20 63 61  tack} {.+     ca
6e90: 74 63 68 20 7b 72 65 74 75 72 6e 20 2d 63 6f 64  tch {return -cod
6ea0: 65 20 65 72 72 6f 72 20 2d 65 72 72 6f 72 73 74  e error -errorst
6eb0: 61 63 6b 20 7b 7b 7d 61 7d 20 65 65 6b 7d 20 6d  ack {{}a} eek} m
6ec0: 20 6f 0a 2b 20 20 20 20 20 6c 69 73 74 20 24 6d   o.+     list $m
6ed0: 20 5b 64 69 63 74 20 67 65 74 20 24 6f 20 2d 65   [dict get $o -e
6ee0: 72 72 6f 72 63 6f 64 65 5d 20 5b 64 69 63 74 20  rrorcode] [dict 
6ef0: 67 65 74 20 24 6f 20 2d 65 72 72 6f 72 73 74 61  get $o -errorsta
6f00: 63 6b 5d 0a 2b 7d 20 7b 7b 62 61 64 20 2d 65 72  ck].+} {{bad -er
6f10: 72 6f 72 73 74 61 63 6b 20 76 61 6c 75 65 3a 20  rorstack value: 
6f20: 65 78 70 65 63 74 65 64 20 61 20 6c 69 73 74 20  expected a list 
6f30: 62 75 74 20 67 6f 74 20 22 7b 7d 61 22 7d 20 7b  but got "{}a"} {
6f40: 54 43 4c 20 52 45 53 55 4c 54 20 4e 4f 4e 4c 49  TCL RESULT NONLI
6f50: 53 54 5f 45 52 52 4f 52 53 54 41 43 4b 7d 20 7b  ST_ERRORSTACK} {
6f60: 55 50 20 31 7d 7d 0a 2b 74 65 73 74 20 72 65 73  UP 1}}.+test res
6f70: 75 6c 74 2d 36 2e 35 20 7b 6f 64 64 2d 73 69 7a  ult-6.5 {odd-siz
6f80: 65 64 2d 6c 69 73 74 20 2d 65 72 72 6f 72 73 74  ed-list -errorst
6f90: 61 63 6b 7d 20 7b 0a 2b 20 20 20 20 20 63 61 74  ack} {.+     cat
6fa0: 63 68 20 7b 72 65 74 75 72 6e 20 2d 63 6f 64 65  ch {return -code
6fb0: 20 65 72 72 6f 72 20 2d 65 72 72 6f 72 73 74 61   error -errorsta
6fc0: 63 6b 20 61 20 65 65 6b 7d 20 6d 20 6f 0a 2b 20  ck a eek} m o.+ 
6fd0: 20 20 20 20 6c 69 73 74 20 24 6d 20 5b 64 69 63      list $m [dic
6fe0: 74 20 67 65 74 20 24 6f 20 2d 65 72 72 6f 72 63  t get $o -errorc
6ff0: 6f 64 65 5d 20 5b 64 69 63 74 20 67 65 74 20 24  ode] [dict get $
7000: 6f 20 2d 65 72 72 6f 72 73 74 61 63 6b 5d 0a 2b  o -errorstack].+
7010: 7d 20 7b 7b 66 6f 72 62 69 64 64 65 6e 20 6f 64  } {{forbidden od
7020: 64 2d 73 69 7a 65 64 20 6c 69 73 74 20 66 6f 72  d-sized list for
7030: 20 2d 65 72 72 6f 72 73 74 61 63 6b 3a 20 22 61   -errorstack: "a
7040: 22 7d 20 7b 54 43 4c 20 52 45 53 55 4c 54 20 4f  "} {TCL RESULT O
7050: 44 44 53 49 5a 45 44 4c 49 53 54 5f 45 52 52 4f  DDSIZEDLIST_ERRO
7060: 52 53 54 41 43 4b 7d 20 7b 55 50 20 31 7d 7d 0a  RSTACK} {UP 1}}.
7070: 20 23 20 63 6c 65 61 6e 75 70 0a 20 63 6c 65 61   # cleanup. clea
7080: 6e 75 70 54 65 73 74 73 0a 20 72 65 74 75 72 6e  nupTests. return
7090: 0a                                               .