Attachment "1165695.patch" to
ticket [1165695fff]
added by
dgp
2005-04-30 03:34:05.
0000: 49 6e 64 65 78 3a 20 64 6f 63 2f 6c 69 6e 64 65 Index: doc/linde
0010: 78 2e 6e 0a 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d x.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 3d 0a 52 43 53 20 66 69 6c 65 =======.RCS file
0060: 3a 20 2f 63 76 73 72 6f 6f 74 2f 74 63 6c 2f 74 : /cvsroot/tcl/t
0070: 63 6c 2f 64 6f 63 2f 6c 69 6e 64 65 78 2e 6e 2c cl/doc/lindex.n,
0080: 76 0a 72 65 74 72 69 65 76 69 6e 67 20 72 65 76 v.retrieving rev
0090: 69 73 69 6f 6e 20 31 2e 39 0a 64 69 66 66 20 2d ision 1.9.diff -
00a0: 75 20 2d 72 31 2e 39 20 6c 69 6e 64 65 78 2e 6e u -r1.9 lindex.n
00b0: 0a 2d 2d 2d 20 64 6f 63 2f 6c 69 6e 64 65 78 2e .--- doc/lindex.
00c0: 6e 09 36 20 41 70 72 20 32 30 30 35 20 32 30 3a n.6 Apr 2005 20:
00d0: 35 35 3a 32 33 20 2d 30 30 30 30 09 31 2e 39 0a 55:23 -0000.1.9.
00e0: 2b 2b 2b 20 64 6f 63 2f 6c 69 6e 64 65 78 2e 6e +++ doc/lindex.n
00f0: 09 32 39 20 41 70 72 20 32 30 30 35 20 32 30 3a .29 Apr 2005 20:
0100: 33 30 3a 33 38 20 2d 30 30 30 30 0a 40 40 20 2d 30:38 -0000.@@ -
0110: 34 36 2c 39 20 2b 34 36 2c 31 31 20 40 40 0a 20 46,9 +46,11 @@.
0120: 49 66 20 5c 66 49 69 6e 64 65 78 5c 66 52 20 69 If \fIindex\fR i
0130: 73 20 6e 65 67 61 74 69 76 65 20 6f 72 20 67 72 s negative or gr
0140: 65 61 74 65 72 20 74 68 61 6e 20 6f 72 20 65 71 eater than or eq
0150: 75 61 6c 20 74 6f 20 74 68 65 20 6e 75 6d 62 65 ual to the numbe
0160: 72 0a 20 6f 66 20 65 6c 65 6d 65 6e 74 73 20 69 r. of elements i
0170: 6e 20 5c 66 49 76 61 6c 75 65 5c 66 52 2c 20 74 n \fIvalue\fR, t
0180: 68 65 6e 20 61 6e 20 65 6d 70 74 79 0a 20 73 74 hen an empty. st
0190: 72 69 6e 67 20 69 73 20 72 65 74 75 72 6e 65 64 ring is returned
01a0: 2e 0a 2d 49 66 20 5c 66 49 69 6e 64 65 78 5c 66 ..-If \fIindex\f
01b0: 52 20 68 61 73 20 74 68 65 20 76 61 6c 75 65 20 R has the value
01c0: 5c 66 42 65 6e 64 5c 66 52 2c 20 69 74 20 72 65 \fBend\fR, it re
01d0: 66 65 72 73 20 74 6f 20 74 68 65 20 6c 61 73 74 fers to the last
01e0: 20 65 6c 65 6d 65 6e 74 0a 2d 69 6e 20 74 68 65 element.-in the
01f0: 20 6c 69 73 74 2c 20 61 6e 64 20 5c 66 42 65 6e list, and \fBen
0200: 64 5c 2d 5c 66 49 69 6e 74 65 67 65 72 5c 66 52 d\-\fIinteger\fR
0210: 20 72 65 66 65 72 73 20 74 6f 20 74 68 65 20 6c refers to the l
0220: 61 73 74 20 65 6c 65 6d 65 6e 74 20 69 6e 0a 2d ast element in.-
0230: 74 68 65 20 6c 69 73 74 20 6d 69 6e 75 73 20 74 the list minus t
0240: 68 65 20 73 70 65 63 69 66 69 65 64 20 69 6e 74 he specified int
0250: 65 67 65 72 20 6f 66 66 73 65 74 2e 0a 2b 2e 56 eger offset..+.V
0260: 53 20 38 2e 35 0a 2b 54 68 65 20 69 6e 74 65 72 S 8.5.+The inter
0270: 70 72 65 74 61 74 69 6f 6e 20 6f 66 20 65 61 63 pretation of eac
0280: 68 20 73 69 6d 70 6c 65 20 5c 66 49 69 6e 64 65 h simple \fIinde
0290: 78 5c 66 52 20 76 61 6c 75 65 20 69 73 20 74 68 x\fR value is th
02a0: 65 20 73 61 6d 65 20 61 73 20 0a 2b 66 6f 72 20 e same as .+for
02b0: 74 68 65 20 63 6f 6d 6d 61 6e 64 20 5c 66 42 73 the command \fBs
02c0: 74 72 69 6e 67 20 69 6e 64 65 78 5c 66 52 2c 20 tring index\fR,
02d0: 73 75 70 70 6f 72 74 69 6e 67 20 73 69 6d 70 6c supporting simpl
02e0: 65 20 69 6e 64 65 78 0a 2b 61 72 69 74 68 6d 65 e index.+arithme
02f0: 74 69 63 20 61 6e 64 20 69 6e 64 69 63 65 73 20 tic and indices
0300: 72 65 6c 61 74 69 76 65 20 74 6f 20 74 68 65 20 relative to the
0310: 65 6e 64 20 6f 66 20 74 68 65 20 6c 69 73 74 2e end of the list.
0320: 0a 2b 2e 56 45 20 38 2e 35 0a 20 2e 50 50 0a 20 .+.VE 8.5. .PP.
0330: 49 66 20 61 64 64 69 74 69 6f 6e 61 6c 20 5c 66 If additional \f
0340: 49 69 6e 64 65 78 5c 66 52 20 61 72 67 75 6d 65 Iindex\fR argume
0350: 6e 74 73 20 61 72 65 20 73 75 70 70 6c 69 65 64 nts are supplied
0360: 2c 20 74 68 65 6e 20 65 61 63 68 20 61 72 67 75 , then each argu
0370: 6d 65 6e 74 20 69 73 0a 20 75 73 65 64 20 69 6e ment is. used in
0380: 20 74 75 72 6e 20 74 6f 20 73 65 6c 65 63 74 20 turn to select
0390: 61 6e 20 65 6c 65 6d 65 6e 74 20 66 72 6f 6d 20 an element from
03a0: 74 68 65 20 70 72 65 76 69 6f 75 73 20 69 6e 64 the previous ind
03b0: 65 78 69 6e 67 20 6f 70 65 72 61 74 69 6f 6e 2c exing operation,
03c0: 0a 40 40 20 2d 37 39 2c 37 20 2b 38 31 2c 31 30 .@@ -79,7 +81,10
03d0: 20 40 40 0a 20 2e 43 45 0a 20 2e 53 48 20 22 53 @@. .CE. .SH "S
03e0: 45 45 20 41 4c 53 4f 22 0a 20 6c 69 73 74 28 6e EE ALSO". list(n
03f0: 29 2c 20 6c 61 70 70 65 6e 64 28 6e 29 2c 20 6c ), lappend(n), l
0400: 69 6e 73 65 72 74 28 6e 29 2c 20 6c 6c 65 6e 67 insert(n), lleng
0410: 74 68 28 6e 29 2c 20 6c 73 65 61 72 63 68 28 6e th(n), lsearch(n
0420: 29 2c 20 0a 2d 6c 73 65 74 28 6e 29 2c 20 6c 73 ), .-lset(n), ls
0430: 6f 72 74 28 6e 29 2c 20 6c 72 61 6e 67 65 28 6e ort(n), lrange(n
0440: 29 2c 20 6c 72 65 70 6c 61 63 65 28 6e 29 0a 2b ), lreplace(n).+
0450: 6c 73 65 74 28 6e 29 2c 20 6c 73 6f 72 74 28 6e lset(n), lsort(n
0460: 29 2c 20 6c 72 61 6e 67 65 28 6e 29 2c 20 6c 72 ), lrange(n), lr
0470: 65 70 6c 61 63 65 28 6e 29 2c 0a 2b 2e 56 53 20 eplace(n),.+.VS
0480: 38 2e 35 0a 2b 73 74 72 69 6e 67 28 6e 29 0a 2b 8.5.+string(n).+
0490: 2e 56 45 0a 20 0a 20 2e 53 48 20 4b 45 59 57 4f .VE. . .SH KEYWO
04a0: 52 44 53 0a 20 65 6c 65 6d 65 6e 74 2c 20 69 6e RDS. element, in
04b0: 64 65 78 2c 20 6c 69 73 74 0a 49 6e 64 65 78 3a dex, list.Index:
04c0: 20 64 6f 63 2f 6c 69 6e 73 65 72 74 2e 6e 0a 3d doc/linsert.n.=
04d0: 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d ================
04e0: 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d ================
04f0: 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d ================
0500: 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d ================
0510: 3d 3d 0a 52 43 53 20 66 69 6c 65 3a 20 2f 63 76 ==.RCS file: /cv
0520: 73 72 6f 6f 74 2f 74 63 6c 2f 74 63 6c 2f 64 6f sroot/tcl/tcl/do
0530: 63 2f 6c 69 6e 73 65 72 74 2e 6e 2c 76 0a 72 65 c/linsert.n,v.re
0540: 74 72 69 65 76 69 6e 67 20 72 65 76 69 73 69 6f trieving revisio
0550: 6e 20 31 2e 31 31 0a 64 69 66 66 20 2d 75 20 2d n 1.11.diff -u -
0560: 72 31 2e 31 31 20 6c 69 6e 73 65 72 74 2e 6e 0a r1.11 linsert.n.
0570: 2d 2d 2d 20 64 6f 63 2f 6c 69 6e 73 65 72 74 2e --- doc/linsert.
0580: 6e 09 36 20 41 70 72 20 32 30 30 35 20 32 30 3a n.6 Apr 2005 20:
0590: 35 35 3a 32 33 20 2d 30 30 30 30 09 31 2e 31 31 55:23 -0000.1.11
05a0: 0a 2b 2b 2b 20 64 6f 63 2f 6c 69 6e 73 65 72 74 .+++ doc/linsert
05b0: 2e 6e 09 32 39 20 41 70 72 20 32 30 30 35 20 32 .n.29 Apr 2005 2
05c0: 30 3a 33 30 3a 33 38 20 2d 30 30 30 30 0a 40 40 0:30:38 -0000.@@
05d0: 20 2d 32 34 2c 31 31 20 2b 32 34 2c 31 32 20 40 -24,11 +24,12 @
05e0: 40 0a 20 5c 66 49 65 6c 65 6d 65 6e 74 5c 66 52 @. \fIelement\fR
05f0: 20 61 72 67 75 6d 65 6e 74 73 20 6a 75 73 74 20 arguments just
0600: 62 65 66 6f 72 65 20 74 68 65 20 5c 66 49 69 6e before the \fIin
0610: 64 65 78 5c 66 52 27 74 68 20 65 6c 65 6d 65 6e dex\fR'th elemen
0620: 74 20 6f 66 0a 20 5c 66 49 6c 69 73 74 5c 66 52 t of. \fIlist\fR
0630: 2e 20 20 45 61 63 68 20 5c 66 49 65 6c 65 6d 65 . Each \fIeleme
0640: 6e 74 5c 66 52 20 61 72 67 75 6d 65 6e 74 20 77 nt\fR argument w
0650: 69 6c 6c 20 62 65 63 6f 6d 65 20 61 20 73 65 70 ill become a sep
0660: 61 72 61 74 65 20 65 6c 65 6d 65 6e 74 20 6f 66 arate element of
0670: 0a 20 74 68 65 20 6e 65 77 20 6c 69 73 74 2e 20 . the new list.
0680: 20 49 66 20 5c 66 49 69 6e 64 65 78 5c 66 52 20 If \fIindex\fR
0690: 69 73 20 6c 65 73 73 20 74 68 61 6e 20 6f 72 20 is less than or
06a0: 65 71 75 61 6c 20 74 6f 20 7a 65 72 6f 2c 20 74 equal to zero, t
06b0: 68 65 6e 20 74 68 65 20 6e 65 77 0a 2d 65 6c 65 hen the new.-ele
06c0: 6d 65 6e 74 73 20 61 72 65 20 69 6e 73 65 72 74 ments are insert
06d0: 65 64 20 61 74 20 74 68 65 20 62 65 67 69 6e 6e ed at the beginn
06e0: 69 6e 67 20 6f 66 20 74 68 65 20 6c 69 73 74 2e ing of the list.
06f0: 20 20 49 66 20 5c 66 49 69 6e 64 65 78 5c 66 52 If \fIindex\fR
0700: 20 68 61 73 20 74 68 65 0a 2d 76 61 6c 75 65 20 has the.-value
0710: 5c 66 42 65 6e 64 5c 66 52 2c 20 6f 72 20 69 66 \fBend\fR, or if
0720: 20 69 74 20 69 73 20 67 72 65 61 74 65 72 20 74 it is greater t
0730: 68 61 6e 20 6f 72 20 65 71 75 61 6c 20 74 6f 20 han or equal to
0740: 74 68 65 20 6e 75 6d 62 65 72 20 6f 66 0a 2d 65 the number of.-e
0750: 6c 65 6d 65 6e 74 73 20 69 6e 20 74 68 65 20 6c lements in the l
0760: 69 73 74 2c 20 74 68 65 6e 20 74 68 65 20 6e 65 ist, then the ne
0770: 77 20 65 6c 65 6d 65 6e 74 73 20 61 72 65 20 61 w elements are a
0780: 70 70 65 6e 64 65 64 20 74 6f 20 74 68 65 20 6c ppended to the l
0790: 69 73 74 2e 0a 2d 5c 66 42 65 6e 64 5c 2d 5c 66 ist..-\fBend\-\f
07a0: 49 69 6e 74 65 67 65 72 5c 66 52 20 72 65 66 65 Iinteger\fR refe
07b0: 72 73 20 74 6f 20 74 68 65 20 6c 61 73 74 20 65 rs to the last e
07c0: 6c 65 6d 65 6e 74 20 69 6e 20 74 68 65 20 6c 69 lement in the li
07d0: 73 74 20 6d 69 6e 75 73 20 74 68 65 0a 2d 73 70 st minus the.-sp
07e0: 65 63 69 66 69 65 64 20 69 6e 74 65 67 65 72 20 ecified integer
07f0: 6f 66 66 73 65 74 2e 0a 2b 65 6c 65 6d 65 6e 74 offset..+element
0800: 73 20 61 72 65 20 69 6e 73 65 72 74 65 64 20 61 s are inserted a
0810: 74 20 74 68 65 20 62 65 67 69 6e 6e 69 6e 67 20 t the beginning
0820: 6f 66 20 74 68 65 20 6c 69 73 74 2e 20 20 0a 2b of the list. .+
0830: 2e 56 53 20 38 2e 35 0a 2b 54 68 65 20 69 6e 74 .VS 8.5.+The int
0840: 65 72 70 72 65 74 61 74 69 6f 6e 20 6f 66 20 74 erpretation of t
0850: 68 65 20 5c 66 49 69 6e 64 65 78 5c 66 52 20 76 he \fIindex\fR v
0860: 61 6c 75 65 20 69 73 20 74 68 65 20 73 61 6d 65 alue is the same
0870: 20 61 73 0a 2b 66 6f 72 20 74 68 65 20 63 6f 6d as.+for the com
0880: 6d 61 6e 64 20 5c 66 42 73 74 72 69 6e 67 20 69 mand \fBstring i
0890: 6e 64 65 78 5c 66 52 2c 20 73 75 70 70 6f 72 74 ndex\fR, support
08a0: 69 6e 67 20 73 69 6d 70 6c 65 20 69 6e 64 65 78 ing simple index
08b0: 0a 2b 61 72 69 74 68 6d 65 74 69 63 20 61 6e 64 .+arithmetic and
08c0: 20 69 6e 64 69 63 65 73 20 72 65 6c 61 74 69 76 indices relativ
08d0: 65 20 74 6f 20 74 68 65 20 65 6e 64 20 6f 66 20 e to the end of
08e0: 74 68 65 20 6c 69 73 74 2e 0a 2b 2e 56 45 0a 20 the list..+.VE.
08f0: 2e 53 48 20 45 58 41 4d 50 4c 45 0a 20 50 75 74 .SH EXAMPLE. Put
0900: 74 69 6e 67 20 73 6f 6d 65 20 76 61 6c 75 65 73 ting some values
0910: 20 69 6e 74 6f 20 61 20 6c 69 73 74 2c 20 66 69 into a list, fi
0920: 72 73 74 20 69 6e 64 65 78 69 6e 67 20 66 72 6f rst indexing fro
0930: 6d 20 74 68 65 20 73 74 61 72 74 20 61 6e 64 0a m the start and.
0940: 20 74 68 65 6e 20 69 6e 64 65 78 69 6e 67 20 66 then indexing f
0950: 72 6f 6d 20 74 68 65 20 65 6e 64 2c 20 61 6e 64 rom the end, and
0960: 20 74 68 65 6e 20 63 68 61 69 6e 69 6e 67 20 74 then chaining t
0970: 68 65 6d 20 74 6f 67 65 74 68 65 72 3a 0a 40 40 hem together:.@@
0980: 20 2d 34 32 2c 37 20 2b 34 33 2c 31 30 20 40 40 -42,7 +43,10 @@
0990: 0a 20 0a 20 2e 53 48 20 22 53 45 45 20 41 4c 53 . . .SH "SEE ALS
09a0: 4f 22 0a 20 6c 69 73 74 28 6e 29 2c 20 6c 61 70 O". list(n), lap
09b0: 70 65 6e 64 28 6e 29 2c 20 6c 69 6e 64 65 78 28 pend(n), lindex(
09c0: 6e 29 2c 20 6c 6c 65 6e 67 74 68 28 6e 29 2c 20 n), llength(n),
09d0: 6c 73 65 61 72 63 68 28 6e 29 2c 20 0a 2d 6c 73 lsearch(n), .-ls
09e0: 65 74 28 6e 29 2c 20 6c 73 6f 72 74 28 6e 29 2c et(n), lsort(n),
09f0: 20 6c 72 61 6e 67 65 28 6e 29 2c 20 6c 72 65 70 lrange(n), lrep
0a00: 6c 61 63 65 28 6e 29 0a 2b 6c 73 65 74 28 6e 29 lace(n).+lset(n)
0a10: 2c 20 6c 73 6f 72 74 28 6e 29 2c 20 6c 72 61 6e , lsort(n), lran
0a20: 67 65 28 6e 29 2c 20 6c 72 65 70 6c 61 63 65 28 ge(n), lreplace(
0a30: 6e 29 2c 0a 2b 2e 56 53 20 38 2e 35 0a 2b 73 74 n),.+.VS 8.5.+st
0a40: 72 69 6e 67 28 6e 29 0a 2b 2e 56 45 0a 20 0a 20 ring(n).+.VE. .
0a50: 2e 53 48 20 4b 45 59 57 4f 52 44 53 0a 20 65 6c .SH KEYWORDS. el
0a60: 65 6d 65 6e 74 2c 20 69 6e 73 65 72 74 2c 20 6c ement, insert, l
0a70: 69 73 74 0a 49 6e 64 65 78 3a 20 64 6f 63 2f 6c ist.Index: doc/l
0a80: 72 61 6e 67 65 2e 6e 0a 3d 3d 3d 3d 3d 3d 3d 3d range.n.========
0a90: 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d ================
0aa0: 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d ================
0ab0: 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d ================
0ac0: 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 0a 52 43 53 20 ===========.RCS
0ad0: 66 69 6c 65 3a 20 2f 63 76 73 72 6f 6f 74 2f 74 file: /cvsroot/t
0ae0: 63 6c 2f 74 63 6c 2f 64 6f 63 2f 6c 72 61 6e 67 cl/tcl/doc/lrang
0af0: 65 2e 6e 2c 76 0a 72 65 74 72 69 65 76 69 6e 67 e.n,v.retrieving
0b00: 20 72 65 76 69 73 69 6f 6e 20 31 2e 31 30 0a 64 revision 1.10.d
0b10: 69 66 66 20 2d 75 20 2d 72 31 2e 31 30 20 6c 72 iff -u -r1.10 lr
0b20: 61 6e 67 65 2e 6e 0a 2d 2d 2d 20 64 6f 63 2f 6c ange.n.--- doc/l
0b30: 72 61 6e 67 65 2e 6e 09 36 20 41 70 72 20 32 30 range.n.6 Apr 20
0b40: 30 35 20 32 30 3a 35 35 3a 32 33 20 2d 30 30 30 05 20:55:23 -000
0b50: 30 09 31 2e 31 30 0a 2b 2b 2b 20 64 6f 63 2f 6c 0.1.10.+++ doc/l
0b60: 72 61 6e 67 65 2e 6e 09 32 39 20 41 70 72 20 32 range.n.29 Apr 2
0b70: 30 30 35 20 32 30 3a 33 30 3a 33 38 20 2d 30 30 005 20:30:38 -00
0b80: 30 30 0a 40 40 20 2d 32 33 2c 39 20 2b 32 33 2c 00.@@ -23,9 +23,
0b90: 31 32 20 40 40 0a 20 5c 66 49 4c 69 73 74 5c 66 12 @@. \fIList\f
0ba0: 52 20 6d 75 73 74 20 62 65 20 61 20 76 61 6c 69 R must be a vali
0bb0: 64 20 54 63 6c 20 6c 69 73 74 2e 20 20 54 68 69 d Tcl list. Thi
0bc0: 73 20 63 6f 6d 6d 61 6e 64 20 77 69 6c 6c 0a 20 s command will.
0bd0: 72 65 74 75 72 6e 20 61 20 6e 65 77 20 6c 69 73 return a new lis
0be0: 74 20 63 6f 6e 73 69 73 74 69 6e 67 20 6f 66 20 t consisting of
0bf0: 65 6c 65 6d 65 6e 74 73 0a 20 5c 66 49 66 69 72 elements. \fIfir
0c00: 73 74 5c 66 52 20 74 68 72 6f 75 67 68 20 5c 66 st\fR through \f
0c10: 49 6c 61 73 74 5c 66 52 2c 20 69 6e 63 6c 75 73 Ilast\fR, inclus
0c20: 69 76 65 2e 0a 2d 5c 66 49 46 69 72 73 74 5c 66 ive..-\fIFirst\f
0c30: 52 20 6f 72 20 5c 66 49 6c 61 73 74 5c 66 52 0a R or \fIlast\fR.
0c40: 2d 6d 61 79 20 62 65 20 5c 66 42 65 6e 64 5c 66 -may be \fBend\f
0c50: 52 20 28 6f 72 20 61 6e 79 20 61 62 62 72 65 76 R (or any abbrev
0c60: 69 61 74 69 6f 6e 20 6f 66 20 69 74 29 20 74 6f iation of it) to
0c70: 20 72 65 66 65 72 20 74 6f 20 74 68 65 20 6c 61 refer to the la
0c80: 73 74 0a 2d 65 6c 65 6d 65 6e 74 20 6f 66 20 74 st.-element of t
0c90: 68 65 20 6c 69 73 74 2e 0a 2b 2e 56 53 20 38 2e he list..+.VS 8.
0ca0: 35 0a 2b 54 68 65 20 69 6e 64 65 78 20 76 61 6c 5.+The index val
0cb0: 75 65 73 20 5c 66 49 66 69 72 73 74 5c 66 52 20 ues \fIfirst\fR
0cc0: 61 6e 64 20 5c 66 49 6c 61 73 74 5c 66 52 20 61 and \fIlast\fR a
0cd0: 72 65 20 69 6e 74 65 72 70 72 65 74 65 64 0a 2b re interpreted.+
0ce0: 74 68 65 20 73 61 6d 65 20 61 73 20 69 6e 64 65 the same as inde
0cf0: 78 20 76 61 6c 75 65 73 20 66 6f 72 20 74 68 65 x values for the
0d00: 20 63 6f 6d 6d 61 6e 64 20 5c 66 42 73 74 72 69 command \fBstri
0d10: 6e 67 20 69 6e 64 65 78 5c 66 52 2c 0a 2b 73 75 ng index\fR,.+su
0d20: 70 70 6f 72 74 69 6e 67 20 73 69 6d 70 6c 65 20 pporting simple
0d30: 69 6e 64 65 78 20 61 72 69 74 68 6d 65 74 69 63 index arithmetic
0d40: 20 61 6e 64 20 69 6e 64 69 63 65 73 20 72 65 6c and indices rel
0d50: 61 74 69 76 65 20 74 6f 20 74 68 65 0a 2b 65 6e ative to the.+en
0d60: 64 20 6f 66 20 74 68 65 20 6c 69 73 74 2e 0a 2b d of the list..+
0d70: 2e 56 45 0a 20 49 66 20 5c 66 49 66 69 72 73 74 .VE. If \fIfirst
0d80: 5c 66 52 20 69 73 20 6c 65 73 73 20 74 68 61 6e \fR is less than
0d90: 20 7a 65 72 6f 2c 20 69 74 20 69 73 20 74 72 65 zero, it is tre
0da0: 61 74 65 64 20 61 73 20 69 66 20 69 74 20 77 65 ated as if it we
0db0: 72 65 20 7a 65 72 6f 2e 0a 20 49 66 20 5c 66 49 re zero.. If \fI
0dc0: 6c 61 73 74 5c 66 52 20 69 73 20 67 72 65 61 74 last\fR is great
0dd0: 65 72 20 74 68 61 6e 20 6f 72 20 65 71 75 61 6c er than or equal
0de0: 20 74 6f 20 74 68 65 20 6e 75 6d 62 65 72 20 6f to the number o
0df0: 66 20 65 6c 65 6d 65 6e 74 73 0a 20 69 6e 20 74 f elements. in t
0e00: 68 65 20 6c 69 73 74 2c 20 74 68 65 6e 20 69 74 he list, then it
0e10: 20 69 73 20 74 72 65 61 74 65 64 20 61 73 20 69 is treated as i
0e20: 66 20 69 74 20 77 65 72 65 20 5c 66 42 65 6e 64 f it were \fBend
0e30: 5c 66 52 2e 0a 40 40 20 2d 36 37 2c 37 20 2b 37 \fR..@@ -67,7 +7
0e40: 30 2c 31 30 20 40 40 0a 20 0a 20 2e 53 48 20 22 0,10 @@. . .SH "
0e50: 53 45 45 20 41 4c 53 4f 22 0a 20 6c 69 73 74 28 SEE ALSO". list(
0e60: 6e 29 2c 20 6c 61 70 70 65 6e 64 28 6e 29 2c 20 n), lappend(n),
0e70: 6c 69 6e 64 65 78 28 6e 29 2c 20 6c 69 6e 73 65 lindex(n), linse
0e80: 72 74 28 6e 29 2c 20 6c 6c 65 6e 67 74 68 28 6e rt(n), llength(n
0e90: 29 2c 20 6c 73 65 61 72 63 68 28 6e 29 2c 20 0a ), lsearch(n), .
0ea0: 2d 6c 73 65 74 28 6e 29 2c 20 6c 72 65 70 6c 61 -lset(n), lrepla
0eb0: 63 65 28 6e 29 2c 20 6c 73 6f 72 74 28 6e 29 0a ce(n), lsort(n).
0ec0: 2b 6c 73 65 74 28 6e 29 2c 20 6c 72 65 70 6c 61 +lset(n), lrepla
0ed0: 63 65 28 6e 29 2c 20 6c 73 6f 72 74 28 6e 29 2c ce(n), lsort(n),
0ee0: 0a 2b 2e 56 53 20 38 2e 35 0a 2b 73 74 72 69 6e .+.VS 8.5.+strin
0ef0: 67 28 6e 29 0a 2b 2e 56 45 0a 20 0a 20 2e 53 48 g(n).+.VE. . .SH
0f00: 20 4b 45 59 57 4f 52 44 53 0a 20 65 6c 65 6d 65 KEYWORDS. eleme
0f10: 6e 74 2c 20 6c 69 73 74 2c 20 72 61 6e 67 65 2c nt, list, range,
0f20: 20 73 75 62 6c 69 73 74 0a 49 6e 64 65 78 3a 20 sublist.Index:
0f30: 64 6f 63 2f 6c 72 65 70 6c 61 63 65 2e 6e 0a 3d doc/lreplace.n.=
0f40: 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d ================
0f50: 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d ================
0f60: 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d ================
0f70: 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d ================
0f80: 3d 3d 0a 52 43 53 20 66 69 6c 65 3a 20 2f 63 76 ==.RCS file: /cv
0f90: 73 72 6f 6f 74 2f 74 63 6c 2f 74 63 6c 2f 64 6f sroot/tcl/tcl/do
0fa0: 63 2f 6c 72 65 70 6c 61 63 65 2e 6e 2c 76 0a 72 c/lreplace.n,v.r
0fb0: 65 74 72 69 65 76 69 6e 67 20 72 65 76 69 73 69 etrieving revisi
0fc0: 6f 6e 20 31 2e 31 31 0a 64 69 66 66 20 2d 75 20 on 1.11.diff -u
0fd0: 2d 72 31 2e 31 31 20 6c 72 65 70 6c 61 63 65 2e -r1.11 lreplace.
0fe0: 6e 0a 2d 2d 2d 20 64 6f 63 2f 6c 72 65 70 6c 61 n.--- doc/lrepla
0ff0: 63 65 2e 6e 09 36 20 41 70 72 20 32 30 30 35 20 ce.n.6 Apr 2005
1000: 32 30 3a 35 35 3a 32 33 20 2d 30 30 30 30 09 31 20:55:23 -0000.1
1010: 2e 31 31 0a 2b 2b 2b 20 64 6f 63 2f 6c 72 65 70 .11.+++ doc/lrep
1020: 6c 61 63 65 2e 6e 09 32 39 20 41 70 72 20 32 30 lace.n.29 Apr 20
1030: 30 35 20 32 30 3a 33 30 3a 33 38 20 2d 30 30 30 05 20:30:38 -000
1040: 30 0a 40 40 20 2d 32 32 2c 31 31 20 2b 32 32 2c 0.@@ -22,11 +22,
1050: 31 37 20 40 40 0a 20 2e 50 50 0a 20 5c 66 42 6c 17 @@. .PP. \fBl
1060: 72 65 70 6c 61 63 65 5c 66 52 20 72 65 74 75 72 replace\fR retur
1070: 6e 73 20 61 20 6e 65 77 20 6c 69 73 74 20 66 6f ns a new list fo
1080: 72 6d 65 64 20 62 79 20 72 65 70 6c 61 63 69 6e rmed by replacin
1090: 67 20 6f 6e 65 20 6f 72 20 6d 6f 72 65 20 65 6c g one or more el
10a0: 65 6d 65 6e 74 73 20 6f 66 0a 20 5c 66 49 6c 69 ements of. \fIli
10b0: 73 74 5c 66 52 20 77 69 74 68 20 74 68 65 20 5c st\fR with the \
10c0: 66 49 65 6c 65 6d 65 6e 74 5c 66 52 20 61 72 67 fIelement\fR arg
10d0: 75 6d 65 6e 74 73 2e 0a 2d 5c 66 49 66 69 72 73 uments..-\fIfirs
10e0: 74 5c 66 52 20 61 6e 64 20 5c 66 49 6c 61 73 74 t\fR and \fIlast
10f0: 5c 66 52 20 73 70 65 63 69 66 79 20 74 68 65 20 \fR specify the
1100: 66 69 72 73 74 20 61 6e 64 20 6c 61 73 74 20 69 first and last i
1110: 6e 64 65 78 20 6f 66 20 74 68 65 0a 2d 72 61 6e ndex of the.-ran
1120: 67 65 20 6f 66 20 65 6c 65 6d 65 6e 74 73 20 74 ge of elements t
1130: 6f 20 72 65 70 6c 61 63 65 2e 20 20 30 20 72 65 o replace. 0 re
1140: 66 65 72 73 20 74 6f 20 74 68 65 20 66 69 72 73 fers to the firs
1150: 74 20 65 6c 65 6d 65 6e 74 20 6f 66 20 74 68 65 t element of the
1160: 0a 2d 6c 69 73 74 2c 20 61 6e 64 20 5c 66 42 65 .-list, and \fBe
1170: 6e 64 5c 66 52 20 28 6f 72 20 61 6e 79 20 61 62 nd\fR (or any ab
1180: 62 72 65 76 69 61 74 69 6f 6e 20 6f 66 20 69 74 breviation of it
1190: 29 20 6d 61 79 20 62 65 20 75 73 65 64 20 74 6f ) may be used to
11a0: 20 72 65 66 65 72 0a 2d 74 6f 20 74 68 65 20 6c refer.-to the l
11b0: 61 73 74 20 65 6c 65 6d 65 6e 74 20 6f 66 20 74 ast element of t
11c0: 68 65 20 6c 69 73 74 2e 20 20 49 66 20 5c 66 49 he list. If \fI
11d0: 6c 69 73 74 5c 66 52 20 69 73 20 65 6d 70 74 79 list\fR is empty
11e0: 2c 20 74 68 65 6e 0a 2d 5c 66 49 66 69 72 73 74 , then.-\fIfirst
11f0: 5c 66 52 20 61 6e 64 20 5c 66 49 6c 61 73 74 5c \fR and \fIlast\
1200: 66 52 20 61 72 65 20 69 67 6e 6f 72 65 64 2e 0a fR are ignored..
1210: 2b 2e 56 53 20 38 2e 35 0a 2b 5c 66 49 66 69 72 +.VS 8.5.+\fIfir
1220: 73 74 5c 66 52 20 61 6e 64 20 5c 66 49 6c 61 73 st\fR and \fIlas
1230: 74 5c 66 52 20 61 72 65 20 69 6e 64 65 78 20 76 t\fR are index v
1240: 61 6c 75 65 73 20 73 70 65 63 69 66 79 69 6e 67 alues specifying
1250: 20 74 68 65 20 66 69 72 73 74 20 61 6e 64 0a 2b the first and.+
1260: 6c 61 73 74 20 65 6c 65 6d 65 6e 74 73 20 6f 66 last elements of
1270: 20 74 68 65 20 72 61 6e 67 65 20 74 6f 20 72 65 the range to re
1280: 70 6c 61 63 65 2e 20 20 0a 2b 54 68 65 20 69 6e place. .+The in
1290: 64 65 78 20 76 61 6c 75 65 73 20 5c 66 49 66 69 dex values \fIfi
12a0: 72 73 74 5c 66 52 20 61 6e 64 20 5c 66 49 6c 61 rst\fR and \fIla
12b0: 73 74 5c 66 52 20 61 72 65 20 69 6e 74 65 72 70 st\fR are interp
12c0: 72 65 74 65 64 0a 2b 74 68 65 20 73 61 6d 65 20 reted.+the same
12d0: 61 73 20 69 6e 64 65 78 20 76 61 6c 75 65 73 20 as index values
12e0: 66 6f 72 20 74 68 65 20 63 6f 6d 6d 61 6e 64 20 for the command
12f0: 5c 66 42 73 74 72 69 6e 67 20 69 6e 64 65 78 5c \fBstring index\
1300: 66 52 2c 0a 2b 73 75 70 70 6f 72 74 69 6e 67 20 fR,.+supporting
1310: 73 69 6d 70 6c 65 20 69 6e 64 65 78 20 61 72 69 simple index ari
1320: 74 68 6d 65 74 69 63 20 61 6e 64 20 69 6e 64 69 thmetic and indi
1330: 63 65 73 20 72 65 6c 61 74 69 76 65 20 74 6f 20 ces relative to
1340: 74 68 65 0a 2b 65 6e 64 20 6f 66 20 74 68 65 20 the.+end of the
1350: 6c 69 73 74 2e 0a 2b 30 20 72 65 66 65 72 73 20 list..+0 refers
1360: 74 6f 20 74 68 65 20 66 69 72 73 74 20 65 6c 65 to the first ele
1370: 6d 65 6e 74 20 6f 66 20 74 68 65 0a 2b 6c 69 73 ment of the.+lis
1380: 74 2c 20 61 6e 64 20 5c 66 42 65 6e 64 5c 66 52 t, and \fBend\fR
1390: 20 72 65 66 65 72 73 20 74 6f 20 74 68 65 20 6c refers to the l
13a0: 61 73 74 20 65 6c 65 6d 65 6e 74 20 6f 66 20 74 ast element of t
13b0: 68 65 20 6c 69 73 74 2e 0a 2b 49 66 20 5c 66 49 he list..+If \fI
13c0: 6c 69 73 74 5c 66 52 20 69 73 20 65 6d 70 74 79 list\fR is empty
13d0: 2c 20 74 68 65 6e 20 5c 66 49 66 69 72 73 74 5c , then \fIfirst\
13e0: 66 52 20 61 6e 64 20 5c 66 49 6c 61 73 74 5c 66 fR and \fIlast\f
13f0: 52 20 61 72 65 20 69 67 6e 6f 72 65 64 2e 0a 2b R are ignored..+
1400: 2e 56 45 0a 20 0a 20 49 66 20 5c 66 49 66 69 72 .VE. . If \fIfir
1410: 73 74 5c 66 52 20 69 73 20 6c 65 73 73 20 74 68 st\fR is less th
1420: 61 6e 20 7a 65 72 6f 2c 20 69 74 20 69 73 20 63 an zero, it is c
1430: 6f 6e 73 69 64 65 72 65 64 20 74 6f 20 72 65 66 onsidered to ref
1440: 65 72 20 74 6f 20 74 68 65 0a 20 66 69 72 73 74 er to the. first
1450: 20 65 6c 65 6d 65 6e 74 20 6f 66 20 74 68 65 20 element of the
1460: 6c 69 73 74 2e 20 20 46 6f 72 20 6e 6f 6e 2d 65 list. For non-e
1470: 6d 70 74 79 20 6c 69 73 74 73 2c 20 74 68 65 20 mpty lists, the
1480: 65 6c 65 6d 65 6e 74 20 69 6e 64 69 63 61 74 65 element indicate
1490: 64 0a 40 40 20 2d 36 36 2c 37 20 2b 37 32 2c 31 d.@@ -66,7 +72,1
14a0: 31 20 40 40 0a 20 0a 20 2e 53 48 20 22 53 45 45 1 @@. . .SH "SEE
14b0: 20 41 4c 53 4f 22 0a 20 6c 69 73 74 28 6e 29 2c ALSO". list(n),
14c0: 20 6c 61 70 70 65 6e 64 28 6e 29 2c 20 6c 69 6e lappend(n), lin
14d0: 64 65 78 28 6e 29 2c 20 6c 69 6e 73 65 72 74 28 dex(n), linsert(
14e0: 6e 29 2c 20 6c 6c 65 6e 67 74 68 28 6e 29 2c 20 n), llength(n),
14f0: 6c 73 65 61 72 63 68 28 6e 29 2c 20 0a 2d 6c 73 lsearch(n), .-ls
1500: 65 74 28 6e 29 2c 20 6c 72 61 6e 67 65 28 6e 29 et(n), lrange(n)
1510: 2c 20 6c 73 6f 72 74 28 6e 29 0a 2b 6c 73 65 74 , lsort(n).+lset
1520: 28 6e 29 2c 20 6c 72 61 6e 67 65 28 6e 29 2c 20 (n), lrange(n),
1530: 6c 73 6f 72 74 28 6e 29 2c 0a 2b 2e 56 53 20 38 lsort(n),.+.VS 8
1540: 2e 35 0a 2b 73 74 72 69 6e 67 28 6e 29 0a 2b 2e .5.+string(n).+.
1550: 56 45 0a 2b 0a 20 0a 20 2e 53 48 20 4b 45 59 57 VE.+. . .SH KEYW
1560: 4f 52 44 53 0a 20 65 6c 65 6d 65 6e 74 2c 20 6c ORDS. element, l
1570: 69 73 74 2c 20 72 65 70 6c 61 63 65 0a 49 6e 64 ist, replace.Ind
1580: 65 78 3a 20 64 6f 63 2f 6c 73 65 61 72 63 68 2e ex: doc/lsearch.
1590: 6e 0a 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d n.==============
15a0: 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d ================
15b0: 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d ================
15c0: 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d ================
15d0: 3d 3d 3d 3d 3d 0a 52 43 53 20 66 69 6c 65 3a 20 =====.RCS file:
15e0: 2f 63 76 73 72 6f 6f 74 2f 74 63 6c 2f 74 63 6c /cvsroot/tcl/tcl
15f0: 2f 64 6f 63 2f 6c 73 65 61 72 63 68 2e 6e 2c 76 /doc/lsearch.n,v
1600: 0a 72 65 74 72 69 65 76 69 6e 67 20 72 65 76 69 .retrieving revi
1610: 73 69 6f 6e 20 31 2e 32 32 0a 64 69 66 66 20 2d sion 1.22.diff -
1620: 75 20 2d 72 31 2e 32 32 20 6c 73 65 61 72 63 68 u -r1.22 lsearch
1630: 2e 6e 0a 2d 2d 2d 20 64 6f 63 2f 6c 73 65 61 72 .n.--- doc/lsear
1640: 63 68 2e 6e 09 35 20 4a 61 6e 20 32 30 30 35 20 ch.n.5 Jan 2005
1650: 31 36 3a 33 38 3a 35 34 20 2d 30 30 30 30 09 31 16:38:54 -0000.1
1660: 2e 32 32 0a 2b 2b 2b 20 64 6f 63 2f 6c 73 65 61 .22.+++ doc/lsea
1670: 72 63 68 2e 6e 09 32 39 20 41 70 72 20 32 30 30 rch.n.29 Apr 200
1680: 35 20 32 30 3a 33 30 3a 33 38 20 2d 30 30 30 30 5 20:30:38 -0000
1690: 0a 40 40 20 2d 37 30 2c 31 30 20 2b 37 30 2c 31 .@@ -70,10 +70,1
16a0: 32 20 40 40 0a 20 6e 6f 6e 2d 6d 61 74 63 68 69 2 @@. non-matchi
16b0: 6e 67 20 76 61 6c 75 65 20 69 6e 20 74 68 65 20 ng value in the
16c0: 6c 69 73 74 2e 0a 20 2e 54 50 0a 20 5c 66 42 5c list.. .TP. \fB\
16d0: 2d 73 74 61 72 74 5c 66 52 5c 30 5c 66 49 69 6e -start\fR\0\fIin
16e0: 64 65 78 5c 66 52 0a 2d 54 68 65 20 6c 69 73 74 dex\fR.-The list
16f0: 20 69 73 20 73 65 61 72 63 68 65 64 20 73 74 61 is searched sta
1700: 72 74 69 6e 67 20 61 74 20 70 6f 73 69 74 69 6f rting at positio
1710: 6e 20 5c 66 49 69 6e 64 65 78 5c 66 52 2e 20 20 n \fIindex\fR.
1720: 49 66 20 5c 66 49 69 6e 64 65 78 5c 66 52 0a 2d If \fIindex\fR.-
1730: 68 61 73 20 74 68 65 20 76 61 6c 75 65 20 5c 66 has the value \f
1740: 42 65 6e 64 5c 66 52 2c 20 69 74 20 72 65 66 65 Bend\fR, it refe
1750: 72 73 20 74 6f 20 74 68 65 20 6c 61 73 74 20 65 rs to the last e
1760: 6c 65 6d 65 6e 74 20 69 6e 20 74 68 65 20 6c 69 lement in the li
1770: 73 74 2c 0a 2d 61 6e 64 20 5c 66 42 65 6e 64 5c st,.-and \fBend\
1780: 2d 5c 66 49 69 6e 74 65 67 65 72 5c 66 52 20 72 -\fIinteger\fR r
1790: 65 66 65 72 73 20 74 6f 20 74 68 65 20 6c 61 73 efers to the las
17a0: 74 20 65 6c 65 6d 65 6e 74 20 69 6e 20 74 68 65 t element in the
17b0: 20 6c 69 73 74 20 6d 69 6e 75 73 0a 2d 74 68 65 list minus.-the
17c0: 20 73 70 65 63 69 66 69 65 64 20 69 6e 74 65 67 specified integ
17d0: 65 72 20 6f 66 66 73 65 74 2e 0a 2b 54 68 65 20 er offset..+The
17e0: 6c 69 73 74 20 69 73 20 73 65 61 72 63 68 65 64 list is searched
17f0: 20 73 74 61 72 74 69 6e 67 20 61 74 20 70 6f 73 starting at pos
1800: 69 74 69 6f 6e 20 5c 66 49 69 6e 64 65 78 5c 66 ition \fIindex\f
1810: 52 2e 20 20 0a 2b 2e 56 53 20 38 2e 35 0a 2b 54 R. .+.VS 8.5.+T
1820: 68 65 20 69 6e 74 65 72 70 72 65 74 61 74 69 6f he interpretatio
1830: 6e 20 6f 66 20 74 68 65 20 5c 66 49 69 6e 64 65 n of the \fIinde
1840: 78 5c 66 52 20 76 61 6c 75 65 20 69 73 20 74 68 x\fR value is th
1850: 65 20 73 61 6d 65 20 61 73 0a 2b 66 6f 72 20 74 e same as.+for t
1860: 68 65 20 63 6f 6d 6d 61 6e 64 20 5c 66 42 73 74 he command \fBst
1870: 72 69 6e 67 20 69 6e 64 65 78 5c 66 52 2c 20 73 ring index\fR, s
1880: 75 70 70 6f 72 74 69 6e 67 20 73 69 6d 70 6c 65 upporting simple
1890: 20 69 6e 64 65 78 0a 2b 61 72 69 74 68 6d 65 74 index.+arithmet
18a0: 69 63 20 61 6e 64 20 69 6e 64 69 63 65 73 20 72 ic and indices r
18b0: 65 6c 61 74 69 76 65 20 74 6f 20 74 68 65 20 65 elative to the e
18c0: 6e 64 20 6f 66 20 74 68 65 20 6c 69 73 74 2e 0a nd of the list..
18d0: 2b 2e 56 45 20 38 2e 35 0a 20 2e 53 53 20 22 43 +.VE 8.5. .SS "C
18e0: 4f 4e 54 45 4e 54 53 20 44 45 53 43 52 49 50 54 ONTENTS DESCRIPT
18f0: 49 4f 4e 20 4f 50 54 49 4f 4e 53 22 0a 20 54 68 ION OPTIONS". Th
1900: 65 73 65 20 6f 70 74 69 6f 6e 73 20 64 65 73 63 ese options desc
1910: 72 69 62 65 20 68 6f 77 20 74 6f 20 69 6e 74 65 ribe how to inte
1920: 72 70 72 65 74 20 74 68 65 20 69 74 65 6d 73 20 rpret the items
1930: 69 6e 20 74 68 65 20 6c 69 73 74 20 62 65 69 6e in the list bein
1940: 67 0a 20 73 65 61 72 63 68 65 64 2e 20 20 54 68 g. searched. Th
1950: 65 79 20 61 72 65 20 6f 6e 6c 79 20 6d 65 61 6e ey are only mean
1960: 69 6e 67 66 75 6c 20 77 68 65 6e 20 75 73 65 64 ingful when used
1970: 20 77 69 74 68 20 74 68 65 20 5c 66 42 5c 2d 65 with the \fB\-e
1980: 78 61 63 74 5c 66 52 0a 40 40 20 2d 31 36 36 2c xact\fR.@@ -166,
1990: 37 20 2b 31 36 38 2c 31 31 20 40 40 0a 20 0a 20 7 +168,11 @@. .
19a0: 2e 53 48 20 22 53 45 45 20 41 4c 53 4f 22 0a 20 .SH "SEE ALSO".
19b0: 66 6f 72 65 61 63 68 28 6e 29 2c 20 6c 69 73 74 foreach(n), list
19c0: 28 6e 29 2c 20 6c 61 70 70 65 6e 64 28 6e 29 2c (n), lappend(n),
19d0: 20 6c 69 6e 64 65 78 28 6e 29 2c 20 6c 69 6e 73 lindex(n), lins
19e0: 65 72 74 28 6e 29 2c 20 6c 6c 65 6e 67 74 68 28 ert(n), llength(
19f0: 6e 29 2c 20 0a 2d 6c 73 65 74 28 6e 29 2c 20 6c n), .-lset(n), l
1a00: 73 6f 72 74 28 6e 29 2c 20 6c 72 61 6e 67 65 28 sort(n), lrange(
1a10: 6e 29 2c 20 6c 72 65 70 6c 61 63 65 28 6e 29 0a n), lreplace(n).
1a20: 2b 6c 73 65 74 28 6e 29 2c 20 6c 73 6f 72 74 28 +lset(n), lsort(
1a30: 6e 29 2c 20 6c 72 61 6e 67 65 28 6e 29 2c 20 6c n), lrange(n), l
1a40: 72 65 70 6c 61 63 65 28 6e 29 2c 0a 2b 2e 56 53 replace(n),.+.VS
1a50: 20 38 2e 35 0a 2b 73 74 72 69 6e 67 28 6e 29 0a 8.5.+string(n).
1a60: 2b 2e 56 45 0a 2b 0a 20 0a 20 2e 53 48 20 4b 45 +.VE.+. . .SH KE
1a70: 59 57 4f 52 44 53 0a 20 6c 69 73 74 2c 20 6d 61 YWORDS. list, ma
1a80: 74 63 68 2c 20 70 61 74 74 65 72 6e 2c 20 72 65 tch, pattern, re
1a90: 67 75 6c 61 72 20 65 78 70 72 65 73 73 69 6f 6e gular expression
1aa0: 2c 20 73 65 61 72 63 68 2c 20 73 74 72 69 6e 67 , search, string
1ab0: 0a 49 6e 64 65 78 3a 20 64 6f 63 2f 6c 73 65 74 .Index: doc/lset
1ac0: 2e 6e 0a 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d .n.=============
1ad0: 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d ================
1ae0: 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d ================
1af0: 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d ================
1b00: 3d 3d 3d 3d 3d 3d 0a 52 43 53 20 66 69 6c 65 3a ======.RCS file:
1b10: 20 2f 63 76 73 72 6f 6f 74 2f 74 63 6c 2f 74 63 /cvsroot/tcl/tc
1b20: 6c 2f 64 6f 63 2f 6c 73 65 74 2e 6e 2c 76 0a 72 l/doc/lset.n,v.r
1b30: 65 74 72 69 65 76 69 6e 67 20 72 65 76 69 73 69 etrieving revisi
1b40: 6f 6e 20 31 2e 37 0a 64 69 66 66 20 2d 75 20 2d on 1.7.diff -u -
1b50: 72 31 2e 37 20 6c 73 65 74 2e 6e 0a 2d 2d 2d 20 r1.7 lset.n.---
1b60: 64 6f 63 2f 6c 73 65 74 2e 6e 09 31 20 44 65 63 doc/lset.n.1 Dec
1b70: 20 32 30 30 33 20 32 31 3a 32 37 3a 31 34 20 2d 2003 21:27:14 -
1b80: 30 30 30 30 09 31 2e 37 0a 2b 2b 2b 20 64 6f 63 0000.1.7.+++ doc
1b90: 2f 6c 73 65 74 2e 6e 09 32 39 20 41 70 72 20 32 /lset.n.29 Apr 2
1ba0: 30 30 35 20 32 30 3a 33 30 3a 33 38 20 2d 30 30 005 20:30:38 -00
1bb0: 30 30 0a 40 40 20 2d 35 32 2c 39 20 2b 35 32 2c 00.@@ -52,9 +52,
1bc0: 31 31 20 40 40 0a 20 49 66 20 5c 66 49 69 6e 64 11 @@. If \fIind
1bd0: 65 78 5c 66 52 20 69 73 20 6e 65 67 61 74 69 76 ex\fR is negativ
1be0: 65 20 6f 72 20 67 72 65 61 74 65 72 20 74 68 61 e or greater tha
1bf0: 6e 20 6f 72 20 65 71 75 61 6c 20 74 6f 20 74 68 n or equal to th
1c00: 65 20 6e 75 6d 62 65 72 0a 20 6f 66 20 65 6c 65 e number. of ele
1c10: 6d 65 6e 74 73 20 69 6e 20 5c 66 49 24 76 61 72 ments in \fI$var
1c20: 4e 61 6d 65 5c 66 52 2c 20 74 68 65 6e 20 61 6e Name\fR, then an
1c30: 20 65 72 72 6f 72 20 6f 63 63 75 72 73 2e 0a 20 error occurs..
1c40: 2e 50 50 0a 2d 49 66 20 5c 66 49 69 6e 64 65 78 .PP.-If \fIindex
1c50: 5c 66 52 20 68 61 73 20 74 68 65 20 76 61 6c 75 \fR has the valu
1c60: 65 20 5c 66 42 65 6e 64 5c 66 52 2c 20 69 74 20 e \fBend\fR, it
1c70: 72 65 66 65 72 73 20 74 6f 20 74 68 65 20 6c 61 refers to the la
1c80: 73 74 20 65 6c 65 6d 65 6e 74 0a 2d 69 6e 20 74 st element.-in t
1c90: 68 65 20 6c 69 73 74 2c 20 61 6e 64 20 5c 66 42 he list, and \fB
1ca0: 65 6e 64 5c 2d 5c 66 49 69 6e 74 65 67 65 72 5c end\-\fIinteger\
1cb0: 66 52 20 72 65 66 65 72 73 20 74 6f 20 74 68 65 fR refers to the
1cc0: 20 6c 61 73 74 20 65 6c 65 6d 65 6e 74 20 69 6e last element in
1cd0: 0a 2d 74 68 65 20 6c 69 73 74 20 6d 69 6e 75 73 .-the list minus
1ce0: 20 74 68 65 20 73 70 65 63 69 66 69 65 64 20 69 the specified i
1cf0: 6e 74 65 67 65 72 20 6f 66 66 73 65 74 2e 0a 2b nteger offset..+
1d00: 2e 56 53 20 38 2e 35 0a 2b 54 68 65 20 69 6e 74 .VS 8.5.+The int
1d10: 65 72 70 72 65 74 61 74 69 6f 6e 20 6f 66 20 65 erpretation of e
1d20: 61 63 68 20 73 69 6d 70 6c 65 20 5c 66 49 69 6e ach simple \fIin
1d30: 64 65 78 5c 66 52 20 76 61 6c 75 65 20 69 73 20 dex\fR value is
1d40: 74 68 65 20 73 61 6d 65 20 61 73 0a 2b 66 6f 72 the same as.+for
1d50: 20 74 68 65 20 63 6f 6d 6d 61 6e 64 20 5c 66 42 the command \fB
1d60: 73 74 72 69 6e 67 20 69 6e 64 65 78 5c 66 52 2c string index\fR,
1d70: 20 73 75 70 70 6f 72 74 69 6e 67 20 73 69 6d 70 supporting simp
1d80: 6c 65 20 69 6e 64 65 78 0a 2b 61 72 69 74 68 6d le index.+arithm
1d90: 65 74 69 63 20 61 6e 64 20 69 6e 64 69 63 65 73 etic and indices
1da0: 20 72 65 6c 61 74 69 76 65 20 74 6f 20 74 68 65 relative to the
1db0: 20 65 6e 64 20 6f 66 20 74 68 65 20 6c 69 73 74 end of the list
1dc0: 2e 0a 2b 2e 56 45 20 38 2e 35 0a 20 2e 50 50 0a ..+.VE 8.5. .PP.
1dd0: 20 49 66 20 61 64 64 69 74 69 6f 6e 61 6c 20 5c If additional \
1de0: 66 49 69 6e 64 65 78 5c 66 52 20 61 72 67 75 6d fIindex\fR argum
1df0: 65 6e 74 73 20 61 72 65 20 73 75 70 70 6c 69 65 ents are supplie
1e00: 64 2c 20 74 68 65 6e 20 65 61 63 68 20 61 72 67 d, then each arg
1e10: 75 6d 65 6e 74 20 69 73 0a 20 75 73 65 64 20 69 ument is. used i
1e20: 6e 20 74 75 72 6e 20 74 6f 20 61 64 64 72 65 73 n turn to addres
1e30: 73 20 61 6e 20 65 6c 65 6d 65 6e 74 20 77 69 74 s an element wit
1e40: 68 69 6e 20 61 20 73 75 62 6c 69 73 74 20 64 65 hin a sublist de
1e50: 73 69 67 6e 61 74 65 64 0a 40 40 20 2d 31 30 37 signated.@@ -107
1e60: 2c 37 20 2b 31 30 39 2c 31 31 20 40 40 0a 20 2e ,7 +109,11 @@. .
1e70: 43 45 0a 20 2e 53 48 20 22 53 45 45 20 41 4c 53 CE. .SH "SEE ALS
1e80: 4f 22 0a 20 6c 69 73 74 28 6e 29 2c 20 6c 61 70 O". list(n), lap
1e90: 70 65 6e 64 28 6e 29 2c 20 6c 69 6e 64 65 78 28 pend(n), lindex(
1ea0: 6e 29 2c 20 6c 69 6e 73 65 72 74 28 6e 29 2c 20 n), linsert(n),
1eb0: 6c 6c 65 6e 67 74 68 28 6e 29 2c 20 6c 73 65 61 llength(n), lsea
1ec0: 72 63 68 28 6e 29 2c 20 0a 2d 6c 73 6f 72 74 28 rch(n), .-lsort(
1ed0: 6e 29 2c 20 6c 72 61 6e 67 65 28 6e 29 2c 20 6c n), lrange(n), l
1ee0: 72 65 70 6c 61 63 65 28 6e 29 0a 2b 6c 73 6f 72 replace(n).+lsor
1ef0: 74 28 6e 29 2c 20 6c 72 61 6e 67 65 28 6e 29 2c t(n), lrange(n),
1f00: 20 6c 72 65 70 6c 61 63 65 28 6e 29 2c 0a 2b 2e lreplace(n),.+.
1f10: 56 53 20 38 2e 35 0a 2b 73 74 72 69 6e 67 28 6e VS 8.5.+string(n
1f20: 29 0a 2b 2e 56 45 0a 2b 0a 20 0a 20 2e 53 48 20 ).+.VE.+. . .SH
1f30: 4b 45 59 57 4f 52 44 53 0a 20 65 6c 65 6d 65 6e KEYWORDS. elemen
1f40: 74 2c 20 69 6e 64 65 78 2c 20 6c 69 73 74 2c 20 t, index, list,
1f50: 72 65 70 6c 61 63 65 2c 20 73 65 74 0a 49 6e 64 replace, set.Ind
1f60: 65 78 3a 20 64 6f 63 2f 6c 73 6f 72 74 2e 6e 0a ex: doc/lsort.n.
1f70: 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d ================
1f80: 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d ================
1f90: 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d ================
1fa0: 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d ================
1fb0: 3d 3d 3d 0a 52 43 53 20 66 69 6c 65 3a 20 2f 63 ===.RCS file: /c
1fc0: 76 73 72 6f 6f 74 2f 74 63 6c 2f 74 63 6c 2f 64 vsroot/tcl/tcl/d
1fd0: 6f 63 2f 6c 73 6f 72 74 2e 6e 2c 76 0a 72 65 74 oc/lsort.n,v.ret
1fe0: 72 69 65 76 69 6e 67 20 72 65 76 69 73 69 6f 6e rieving revision
1ff0: 20 31 2e 31 38 0a 64 69 66 66 20 2d 75 20 2d 72 1.18.diff -u -r
2000: 31 2e 31 38 20 6c 73 6f 72 74 2e 6e 0a 2d 2d 2d 1.18 lsort.n.---
2010: 20 64 6f 63 2f 6c 73 6f 72 74 2e 6e 09 32 37 20 doc/lsort.n.27
2020: 4f 63 74 20 32 30 30 34 20 31 32 3a 35 33 3a 32 Oct 2004 12:53:2
2030: 32 20 2d 30 30 30 30 09 31 2e 31 38 0a 2b 2b 2b 2 -0000.1.18.+++
2040: 20 64 6f 63 2f 6c 73 6f 72 74 2e 6e 09 32 39 20 doc/lsort.n.29
2050: 41 70 72 20 32 30 30 35 20 32 30 3a 33 30 3a 33 Apr 2005 20:30:3
2060: 38 20 2d 30 30 30 30 0a 40 40 20 2d 37 38 2c 31 8 -0000.@@ -78,1
2070: 30 20 2b 37 38 2c 37 20 40 40 0a 20 65 61 63 68 0 +78,7 @@. each
2080: 20 73 75 62 6c 69 73 74 0a 20 2e 56 53 20 38 2e sublist. .VS 8.
2090: 35 0a 20 28 61 73 20 69 66 20 74 68 65 20 6f 76 5. (as if the ov
20a0: 65 72 61 6c 6c 20 65 6c 65 6d 65 6e 74 20 61 6e erall element an
20b0: 64 20 74 68 65 20 5c 66 49 69 6e 64 65 78 4c 69 d the \fIindexLi
20c0: 73 74 5c 66 52 20 77 65 72 65 20 70 61 73 73 65 st\fR were passe
20d0: 64 20 74 6f 0a 2d 5c 66 42 6c 69 6e 64 65 78 5c d to.-\fBlindex\
20e0: 66 52 29 20 61 6e 64 20 73 6f 72 74 20 62 61 73 fR) and sort bas
20f0: 65 64 20 6f 6e 20 74 68 65 20 67 69 76 65 6e 20 ed on the given
2100: 65 6c 65 6d 65 6e 74 2e 20 20 54 68 65 20 6b 65 element. The ke
2110: 79 77 6f 72 64 0a 2d 5c 66 42 65 6e 64 5c 66 50 yword.-\fBend\fP
2120: 20 69 73 20 61 6c 6c 6f 77 65 64 20 66 6f 72 20 is allowed for
2130: 65 61 63 68 20 65 6c 65 6d 65 6e 74 20 6f 66 20 each element of
2140: 74 68 65 20 5c 66 49 69 6e 64 65 78 4c 69 73 74 the \fIindexList
2150: 5c 66 52 20 74 6f 20 73 6f 72 74 0a 2d 6f 6e 20 \fR to sort.-on
2160: 74 68 65 20 6c 61 73 74 20 73 75 62 6c 69 73 74 the last sublist
2170: 20 65 6c 65 6d 65 6e 74 2c 20 61 6e 64 20 5c 66 element, and \f
2180: 42 65 6e 64 2d 5c 66 49 69 6e 64 65 78 5c 66 52 Bend-\fIindex\fR
2190: 20 73 6f 72 74 73 20 6f 6e 20 61 20 73 75 62 6c sorts on a subl
21a0: 69 73 74 0a 2d 65 6c 65 6d 65 6e 74 20 6f 66 66 ist.-element off
21b0: 73 65 74 20 66 72 6f 6d 20 74 68 65 20 65 6e 64 set from the end
21c0: 2e 0a 2b 5c 66 42 6c 69 6e 64 65 78 5c 66 52 29 ..+\fBlindex\fR)
21d0: 20 61 6e 64 20 73 6f 72 74 20 62 61 73 65 64 20 and sort based
21e0: 6f 6e 20 74 68 65 20 67 69 76 65 6e 20 65 6c 65 on the given ele
21f0: 6d 65 6e 74 2e 20 20 0a 20 2e 56 45 20 38 2e 35 ment. . .VE 8.5
2200: 0a 20 46 6f 72 20 65 78 61 6d 70 6c 65 2c 0a 20 . For example,.
2210: 2e 52 53 0a 49 6e 64 65 78 3a 20 64 6f 63 2f 72 .RS.Index: doc/r
2220: 65 67 65 78 70 2e 6e 0a 3d 3d 3d 3d 3d 3d 3d 3d egexp.n.========
2230: 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d ================
2240: 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d ================
2250: 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d ================
2260: 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 0a 52 43 53 20 ===========.RCS
2270: 66 69 6c 65 3a 20 2f 63 76 73 72 6f 6f 74 2f 74 file: /cvsroot/t
2280: 63 6c 2f 74 63 6c 2f 64 6f 63 2f 72 65 67 65 78 cl/tcl/doc/regex
2290: 70 2e 6e 2c 76 0a 72 65 74 72 69 65 76 69 6e 67 p.n,v.retrieving
22a0: 20 72 65 76 69 73 69 6f 6e 20 31 2e 31 37 0a 64 revision 1.17.d
22b0: 69 66 66 20 2d 75 20 2d 72 31 2e 31 37 20 72 65 iff -u -r1.17 re
22c0: 67 65 78 70 2e 6e 0a 2d 2d 2d 20 64 6f 63 2f 72 gexp.n.--- doc/r
22d0: 65 67 65 78 70 2e 6e 09 36 20 41 70 72 20 32 30 egexp.n.6 Apr 20
22e0: 30 35 20 32 30 3a 35 35 3a 32 33 20 2d 30 30 30 05 20:55:23 -000
22f0: 30 09 31 2e 31 37 0a 2b 2b 2b 20 64 6f 63 2f 72 0.1.17.+++ doc/r
2300: 65 67 65 78 70 2e 6e 09 32 39 20 41 70 72 20 32 egexp.n.29 Apr 2
2310: 30 30 35 20 32 30 3a 33 30 3a 33 38 20 2d 30 30 005 20:30:38 -00
2320: 30 30 0a 40 40 20 2d 31 30 37 2c 37 20 2b 31 30 00.@@ -107,7 +10
2330: 37 2c 31 32 20 40 40 0a 20 2e 54 50 20 31 35 0a 7,12 @@. .TP 15.
2340: 20 5c 66 42 5c 2d 73 74 61 72 74 5c 66 52 20 5c \fB\-start\fR \
2350: 66 49 69 6e 64 65 78 5c 66 52 0a 20 53 70 65 63 fIindex\fR. Spec
2360: 69 66 69 65 73 20 61 20 63 68 61 72 61 63 74 65 ifies a characte
2370: 72 20 69 6e 64 65 78 20 6f 66 66 73 65 74 20 69 r index offset i
2380: 6e 74 6f 20 74 68 65 20 73 74 72 69 6e 67 20 74 nto the string t
2390: 6f 20 73 74 61 72 74 0a 2d 6d 61 74 63 68 69 6e o start.-matchin
23a0: 67 20 74 68 65 20 72 65 67 75 6c 61 72 20 65 78 g the regular ex
23b0: 70 72 65 73 73 69 6f 6e 20 61 74 2e 20 20 57 68 pression at. Wh
23c0: 65 6e 20 75 73 69 6e 67 20 74 68 69 73 20 73 77 en using this sw
23d0: 69 74 63 68 2c 20 60 5e 27 0a 2b 6d 61 74 63 68 itch, `^'.+match
23e0: 69 6e 67 20 74 68 65 20 72 65 67 75 6c 61 72 20 ing the regular
23f0: 65 78 70 72 65 73 73 69 6f 6e 20 61 74 2e 20 20 expression at.
2400: 0a 2b 2e 56 53 20 38 2e 35 0a 2b 54 68 65 20 5c .+.VS 8.5.+The \
2410: 66 49 69 6e 64 65 78 5c 66 52 20 76 61 6c 75 65 fIindex\fR value
2420: 20 69 73 20 69 6e 74 65 72 70 72 65 74 65 64 20 is interpreted
2430: 69 6e 20 74 68 65 20 73 61 6d 65 20 6d 61 6e 6e in the same mann
2440: 65 72 0a 2b 61 73 20 74 68 65 20 5c 66 49 69 6e er.+as the \fIin
2450: 64 65 78 5c 66 52 20 61 72 67 75 6d 65 6e 74 20 dex\fR argument
2460: 74 6f 20 5c 66 42 73 74 72 69 6e 67 20 69 6e 64 to \fBstring ind
2470: 65 78 5c 66 52 2e 0a 2b 2e 56 45 20 38 2e 35 0a ex\fR..+.VE 8.5.
2480: 2b 57 68 65 6e 20 75 73 69 6e 67 20 74 68 69 73 +When using this
2490: 20 73 77 69 74 63 68 2c 20 60 5e 27 0a 20 77 69 switch, `^'. wi
24a0: 6c 6c 20 6e 6f 74 20 6d 61 74 63 68 20 74 68 65 ll not match the
24b0: 20 62 65 67 69 6e 6e 69 6e 67 20 6f 66 20 74 68 beginning of th
24c0: 65 20 6c 69 6e 65 2c 20 61 6e 64 20 5c 5c 41 20 e line, and \\A
24d0: 77 69 6c 6c 20 73 74 69 6c 6c 0a 20 6d 61 74 63 will still. matc
24e0: 68 20 74 68 65 20 73 74 61 72 74 20 6f 66 20 74 h the start of t
24f0: 68 65 20 73 74 72 69 6e 67 20 61 74 20 5c 66 49 he string at \fI
2500: 69 6e 64 65 78 5c 66 52 2e 20 20 49 66 20 5c 66 index\fR. If \f
2510: 42 5c 2d 69 6e 64 69 63 65 73 5c 66 52 0a 20 69 B\-indices\fR. i
2520: 73 20 73 70 65 63 69 66 69 65 64 2c 20 74 68 65 s specified, the
2530: 20 69 6e 64 69 63 65 73 20 77 69 6c 6c 20 62 65 indices will be
2540: 20 69 6e 64 65 78 65 64 20 73 74 61 72 74 69 6e indexed startin
2550: 67 20 66 72 6f 6d 20 74 68 65 0a 40 40 20 2d 31 g from the.@@ -1
2560: 35 33 2c 37 20 2b 31 35 38 2c 31 31 20 40 40 0a 53,7 +158,11 @@.
2570: 20 2e 43 45 0a 20 0a 20 2e 53 48 20 22 53 45 45 .CE. . .SH "SEE
2580: 20 41 4c 53 4f 22 0a 2d 72 65 5f 73 79 6e 74 61 ALSO".-re_synta
2590: 78 28 6e 29 2c 20 72 65 67 73 75 62 28 6e 29 0a x(n), regsub(n).
25a0: 2b 72 65 5f 73 79 6e 74 61 78 28 6e 29 2c 20 72 +re_syntax(n), r
25b0: 65 67 73 75 62 28 6e 29 2c 0a 2b 2e 56 53 20 38 egsub(n),.+.VS 8
25c0: 2e 35 0a 2b 73 74 72 69 6e 67 28 6e 29 0a 2b 2e .5.+string(n).+.
25d0: 56 45 0a 2b 0a 20 0a 20 2e 53 48 20 4b 45 59 57 VE.+. . .SH KEYW
25e0: 4f 52 44 53 0a 20 6d 61 74 63 68 2c 20 72 65 67 ORDS. match, reg
25f0: 75 6c 61 72 20 65 78 70 72 65 73 73 69 6f 6e 2c ular expression,
2600: 20 73 74 72 69 6e 67 0a 49 6e 64 65 78 3a 20 64 string.Index: d
2610: 6f 63 2f 72 65 67 73 75 62 2e 6e 0a 3d 3d 3d 3d oc/regsub.n.====
2620: 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d ================
2630: 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d ================
2640: 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d ================
2650: 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 0a ===============.
2660: 52 43 53 20 66 69 6c 65 3a 20 2f 63 76 73 72 6f RCS file: /cvsro
2670: 6f 74 2f 74 63 6c 2f 74 63 6c 2f 64 6f 63 2f 72 ot/tcl/tcl/doc/r
2680: 65 67 73 75 62 2e 6e 2c 76 0a 72 65 74 72 69 65 egsub.n,v.retrie
2690: 76 69 6e 67 20 72 65 76 69 73 69 6f 6e 20 31 2e ving revision 1.
26a0: 31 33 0a 64 69 66 66 20 2d 75 20 2d 72 31 2e 31 13.diff -u -r1.1
26b0: 33 20 72 65 67 73 75 62 2e 6e 0a 2d 2d 2d 20 64 3 regsub.n.--- d
26c0: 6f 63 2f 72 65 67 73 75 62 2e 6e 09 36 20 41 70 oc/regsub.n.6 Ap
26d0: 72 20 32 30 30 35 20 32 30 3a 35 35 3a 32 34 20 r 2005 20:55:24
26e0: 2d 30 30 30 30 09 31 2e 31 33 0a 2b 2b 2b 20 64 -0000.1.13.+++ d
26f0: 6f 63 2f 72 65 67 73 75 62 2e 6e 09 32 39 20 41 oc/regsub.n.29 A
2700: 70 72 20 32 30 30 35 20 32 30 3a 33 30 3a 33 38 pr 2005 20:30:38
2710: 20 2d 30 30 30 30 0a 40 40 20 2d 39 32 2c 37 20 -0000.@@ -92,7
2720: 2b 39 32 2c 31 32 20 40 40 0a 20 2e 54 50 20 31 +92,12 @@. .TP 1
2730: 30 0a 20 5c 66 42 5c 2d 73 74 61 72 74 5c 66 52 0. \fB\-start\fR
2740: 20 5c 66 49 69 6e 64 65 78 5c 66 52 0a 20 53 70 \fIindex\fR. Sp
2750: 65 63 69 66 69 65 73 20 61 20 63 68 61 72 61 63 ecifies a charac
2760: 74 65 72 20 69 6e 64 65 78 20 6f 66 66 73 65 74 ter index offset
2770: 20 69 6e 74 6f 20 74 68 65 20 73 74 72 69 6e 67 into the string
2780: 20 74 6f 20 73 74 61 72 74 0a 2d 6d 61 74 63 68 to start.-match
2790: 69 6e 67 20 74 68 65 20 72 65 67 75 6c 61 72 20 ing the regular
27a0: 65 78 70 72 65 73 73 69 6f 6e 20 61 74 2e 20 20 expression at.
27b0: 57 68 65 6e 20 75 73 69 6e 67 20 74 68 69 73 20 When using this
27c0: 73 77 69 74 63 68 2c 20 60 5e 27 0a 2b 6d 61 74 switch, `^'.+mat
27d0: 63 68 69 6e 67 20 74 68 65 20 72 65 67 75 6c 61 ching the regula
27e0: 72 20 65 78 70 72 65 73 73 69 6f 6e 20 61 74 2e r expression at.
27f0: 20 20 0a 2b 2e 56 53 20 38 2e 35 0a 2b 54 68 65 .+.VS 8.5.+The
2800: 20 5c 66 49 69 6e 64 65 78 5c 66 52 20 76 61 6c \fIindex\fR val
2810: 75 65 20 69 73 20 69 6e 74 65 72 70 72 65 74 65 ue is interprete
2820: 64 20 69 6e 20 74 68 65 20 73 61 6d 65 20 6d 61 d in the same ma
2830: 6e 6e 65 72 0a 2b 61 73 20 74 68 65 20 5c 66 49 nner.+as the \fI
2840: 69 6e 64 65 78 5c 66 52 20 61 72 67 75 6d 65 6e index\fR argumen
2850: 74 20 74 6f 20 5c 66 42 73 74 72 69 6e 67 20 69 t to \fBstring i
2860: 6e 64 65 78 5c 66 52 2e 0a 2b 2e 56 45 20 38 2e ndex\fR..+.VE 8.
2870: 35 0a 2b 57 68 65 6e 20 75 73 69 6e 67 20 74 68 5.+When using th
2880: 69 73 20 73 77 69 74 63 68 2c 20 60 5e 27 0a 20 is switch, `^'.
2890: 77 69 6c 6c 20 6e 6f 74 20 6d 61 74 63 68 20 74 will not match t
28a0: 68 65 20 62 65 67 69 6e 6e 69 6e 67 20 6f 66 20 he beginning of
28b0: 74 68 65 20 6c 69 6e 65 2c 20 61 6e 64 20 5c 5c the line, and \\
28c0: 41 20 77 69 6c 6c 20 73 74 69 6c 6c 0a 20 6d 61 A will still. ma
28d0: 74 63 68 20 74 68 65 20 73 74 61 72 74 20 6f 66 tch the start of
28e0: 20 74 68 65 20 73 74 72 69 6e 67 20 61 74 20 5c the string at \
28f0: 66 49 69 6e 64 65 78 5c 66 52 2e 0a 20 5c 66 49 fIindex\fR.. \fI
2900: 69 6e 64 65 78 5c 66 52 20 77 69 6c 6c 20 62 65 index\fR will be
2910: 20 63 6f 6e 73 74 72 61 69 6e 65 64 20 74 6f 20 constrained to
2920: 74 68 65 20 62 6f 75 6e 64 73 20 6f 66 20 74 68 the bounds of th
2930: 65 20 69 6e 70 75 74 20 73 74 72 69 6e 67 2e 0a e input string..
2940: 40 40 20 2d 31 33 34 2c 37 20 2b 31 33 39 2c 31 @@ -134,7 +139,1
2950: 31 20 40 40 0a 20 2e 43 45 0a 20 0a 20 2e 53 48 1 @@. .CE. . .SH
2960: 20 22 53 45 45 20 41 4c 53 4f 22 0a 2d 72 65 67 "SEE ALSO".-reg
2970: 65 78 70 28 6e 29 2c 20 72 65 5f 73 79 6e 74 61 exp(n), re_synta
2980: 78 28 6e 29 2c 20 73 75 62 73 74 28 6e 29 0a 2b x(n), subst(n).+
2990: 72 65 67 65 78 70 28 6e 29 2c 20 72 65 5f 73 79 regexp(n), re_sy
29a0: 6e 74 61 78 28 6e 29 2c 20 73 75 62 73 74 28 6e ntax(n), subst(n
29b0: 29 2c 0a 2b 2e 56 53 20 38 2e 35 0a 2b 73 74 72 ),.+.VS 8.5.+str
29c0: 69 6e 67 28 6e 29 0a 2b 2e 56 45 0a 2b 0a 20 0a ing(n).+.VE.+. .
29d0: 20 2e 53 48 20 4b 45 59 57 4f 52 44 53 0a 20 6d .SH KEYWORDS. m
29e0: 61 74 63 68 2c 20 70 61 74 74 65 72 6e 2c 20 72 atch, pattern, r
29f0: 65 67 75 6c 61 72 20 65 78 70 72 65 73 73 69 6f egular expressio
2a00: 6e 2c 20 73 75 62 73 74 69 74 75 74 65 0a 49 6e n, substitute.In
2a10: 64 65 78 3a 20 64 6f 63 2f 73 74 72 69 6e 67 2e dex: doc/string.
2a20: 6e 0a 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d n.==============
2a30: 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d ================
2a40: 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d ================
2a50: 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d ================
2a60: 3d 3d 3d 3d 3d 0a 52 43 53 20 66 69 6c 65 3a 20 =====.RCS file:
2a70: 2f 63 76 73 72 6f 6f 74 2f 74 63 6c 2f 74 63 6c /cvsroot/tcl/tcl
2a80: 2f 64 6f 63 2f 73 74 72 69 6e 67 2e 6e 2c 76 0a /doc/string.n,v.
2a90: 72 65 74 72 69 65 76 69 6e 67 20 72 65 76 69 73 retrieving revis
2aa0: 69 6f 6e 20 31 2e 32 36 0a 64 69 66 66 20 2d 75 ion 1.26.diff -u
2ab0: 20 2d 72 31 2e 32 36 20 73 74 72 69 6e 67 2e 6e -r1.26 string.n
2ac0: 0a 2d 2d 2d 20 64 6f 63 2f 73 74 72 69 6e 67 2e .--- doc/string.
2ad0: 6e 09 37 20 4d 61 72 20 32 30 30 35 20 32 31 3a n.7 Mar 2005 21:
2ae0: 33 38 3a 31 30 20 2d 30 30 30 30 09 31 2e 32 36 38:10 -0000.1.26
2af0: 0a 2b 2b 2b 20 64 6f 63 2f 73 74 72 69 6e 67 2e .+++ doc/string.
2b00: 6e 09 32 39 20 41 70 72 20 32 30 30 35 20 32 30 n.29 Apr 2005 20
2b10: 3a 33 30 3a 33 38 20 2d 30 30 30 30 0a 40 40 20 :30:38 -0000.@@
2b20: 2d 37 32 2c 31 38 20 2b 37 32 2c 33 38 20 40 40 -72,18 +72,38 @@
2b30: 0a 20 52 65 74 75 72 6e 73 20 74 68 65 20 5c 66 . Returns the \f
2b40: 49 63 68 61 72 49 6e 64 65 78 5c 66 52 27 74 68 IcharIndex\fR'th
2b50: 20 63 68 61 72 61 63 74 65 72 20 6f 66 20 74 68 character of th
2b60: 65 20 5c 66 49 73 74 72 69 6e 67 5c 66 52 20 61 e \fIstring\fR a
2b70: 72 67 75 6d 65 6e 74 2e 0a 20 41 20 5c 66 49 63 rgument.. A \fIc
2b80: 68 61 72 49 6e 64 65 78 5c 66 52 20 6f 66 20 30 harIndex\fR of 0
2b90: 20 63 6f 72 72 65 73 70 6f 6e 64 73 20 74 6f 20 corresponds to
2ba0: 74 68 65 20 66 69 72 73 74 20 63 68 61 72 61 63 the first charac
2bb0: 74 65 72 20 6f 66 20 74 68 65 0a 20 73 74 72 69 ter of the. stri
2bc0: 6e 67 2e 20 20 5c 66 49 63 68 61 72 49 6e 64 65 ng. \fIcharInde
2bd0: 78 5c 66 52 20 6d 61 79 20 62 65 20 73 70 65 63 x\fR may be spec
2be0: 69 66 69 65 64 20 61 73 20 66 6f 6c 6c 6f 77 73 ified as follows
2bf0: 3a 0a 2b 2e 56 53 20 38 2e 35 0a 20 2e 52 53 0a :.+.VS 8.5. .RS.
2c00: 20 2e 49 50 20 5c 66 49 69 6e 74 65 67 65 72 5c .IP \fIinteger\
2c10: 66 52 20 31 30 0a 2d 54 68 65 20 63 68 61 72 20 fR 10.-The char
2c20: 73 70 65 63 69 66 69 65 64 20 61 74 20 74 68 69 specified at thi
2c30: 73 20 69 6e 74 65 67 72 61 6c 20 69 6e 64 65 78 s integral index
2c40: 2e 0a 2b 46 6f 72 20 61 6e 79 20 69 6e 64 65 78 ..+For any index
2c50: 20 76 61 6c 75 65 20 74 68 61 74 20 70 61 73 73 value that pass
2c60: 65 73 20 5c 66 42 73 74 72 69 6e 67 20 69 73 20 es \fBstring is
2c70: 69 6e 74 65 67 65 72 20 2d 73 74 72 69 63 74 5c integer -strict\
2c80: 66 52 2c 0a 2b 74 68 65 20 63 68 61 72 20 73 70 fR,.+the char sp
2c90: 65 63 69 66 69 65 64 20 61 74 20 74 68 69 73 20 ecified at this
2ca0: 69 6e 74 65 67 72 61 6c 20 69 6e 64 65 78 0a 2b integral index.+
2cb0: 28 65 2e 67 2e 20 5c 66 42 32 5c 66 52 20 77 6f (e.g. \fB2\fR wo
2cc0: 75 6c 64 20 72 65 66 65 72 20 74 6f 20 74 68 65 uld refer to the
2cd0: 20 22 63 22 20 69 6e 20 22 61 62 63 64 22 29 2e "c" in "abcd").
2ce0: 0a 20 2e 49 50 20 5c 66 42 65 6e 64 5c 66 52 20 . .IP \fBend\fR
2cf0: 31 30 0a 2d 54 68 65 20 6c 61 73 74 20 63 68 61 10.-The last cha
2d00: 72 20 6f 66 20 74 68 65 20 73 74 72 69 6e 67 2e r of the string.
2d10: 0a 2d 2e 49 50 20 5c 66 42 65 6e 64 5c 2d 5c 66 .-.IP \fBend\-\f
2d20: 49 69 6e 74 65 67 65 72 5c 66 52 20 31 30 0a 2d Iinteger\fR 10.-
2d30: 54 68 65 20 6c 61 73 74 20 63 68 61 72 20 6f 66 The last char of
2d40: 20 74 68 65 20 73 74 72 69 6e 67 20 6d 69 6e 75 the string minu
2d50: 73 20 74 68 65 20 73 70 65 63 69 66 69 65 64 20 s the specified
2d60: 69 6e 74 65 67 65 72 20 6f 66 66 73 65 74 0a 2b integer offset.+
2d70: 54 68 65 20 6c 61 73 74 20 63 68 61 72 20 6f 66 The last char of
2d80: 20 74 68 65 20 73 74 72 69 6e 67 0a 2b 28 65 2e the string.+(e.
2d90: 67 2e 20 5c 66 42 65 6e 64 5c 66 52 20 77 6f 75 g. \fBend\fR wou
2da0: 6c 64 20 72 65 66 65 72 20 74 6f 20 74 68 65 20 ld refer to the
2db0: 22 64 22 20 69 6e 20 22 61 62 63 64 22 29 2e 0a "d" in "abcd")..
2dc0: 2b 2e 49 50 20 5c 66 42 65 6e 64 5c 2d 5c 66 49 +.IP \fBend\-\fI
2dd0: 4e 5c 66 52 20 31 30 0a 2b 54 68 65 20 6c 61 73 N\fR 10.+The las
2de0: 74 20 63 68 61 72 20 6f 66 20 74 68 65 20 73 74 t char of the st
2df0: 72 69 6e 67 20 6d 69 6e 75 73 20 74 68 65 20 73 ring minus the s
2e00: 70 65 63 69 66 69 65 64 20 69 6e 74 65 67 65 72 pecified integer
2e10: 20 6f 66 66 73 65 74 20 5c 66 49 4e 5c 66 52 0a offset \fIN\fR.
2e20: 20 28 65 2e 67 2e 20 5c 66 42 65 6e 64 5c 2d 31 (e.g. \fBend\-1
2e30: 5c 66 52 20 77 6f 75 6c 64 20 72 65 66 65 72 20 \fR would refer
2e40: 74 6f 20 74 68 65 20 22 63 22 20 69 6e 20 22 61 to the "c" in "a
2e50: 62 63 64 22 29 2e 0a 2b 2e 49 50 20 5c 66 42 65 bcd")..+.IP \fBe
2e60: 6e 64 5c 2b 5c 66 49 4e 5c 66 52 20 31 30 0a 2b nd\+\fIN\fR 10.+
2e70: 54 68 65 20 6c 61 73 74 20 63 68 61 72 20 6f 66 The last char of
2e80: 20 74 68 65 20 73 74 72 69 6e 67 20 70 6c 75 73 the string plus
2e90: 20 74 68 65 20 73 70 65 63 69 66 69 65 64 20 69 the specified i
2ea0: 6e 74 65 67 65 72 20 6f 66 66 73 65 74 20 5c 66 nteger offset \f
2eb0: 49 4e 5c 66 52 0a 2b 28 65 2e 67 2e 20 5c 66 42 IN\fR.+(e.g. \fB
2ec0: 65 6e 64 5c 2b 5c 2d 31 5c 66 52 20 77 6f 75 6c end\+\-1\fR woul
2ed0: 64 20 72 65 66 65 72 20 74 6f 20 74 68 65 20 22 d refer to the "
2ee0: 63 22 20 69 6e 20 22 61 62 63 64 22 29 2e 0a 2b c" in "abcd")..+
2ef0: 2e 49 50 20 5c 66 49 4d 5c 66 52 5c 2b 5c 66 49 .IP \fIM\fR\+\fI
2f00: 4e 5c 66 52 20 31 30 0a 2b 54 68 65 20 63 68 61 N\fR 10.+The cha
2f10: 72 20 73 70 65 63 69 66 69 65 64 20 61 74 20 74 r specified at t
2f20: 68 65 20 69 6e 74 65 67 72 61 6c 20 69 6e 64 65 he integral inde
2f30: 78 20 74 68 61 74 20 69 73 20 74 68 65 20 73 75 x that is the su
2f40: 6d 20 6f 66 20 0a 2b 69 6e 74 65 67 65 72 20 76 m of .+integer v
2f50: 61 6c 75 65 73 20 5c 66 49 4d 5c 66 52 20 61 6e alues \fIM\fR an
2f60: 64 20 5c 66 49 4e 5c 66 52 0a 2b 28 65 2e 67 2e d \fIN\fR.+(e.g.
2f70: 20 5c 66 42 31 5c 2b 31 5c 66 52 20 77 6f 75 6c \fB1\+1\fR woul
2f80: 64 20 72 65 66 65 72 20 74 6f 20 74 68 65 20 22 d refer to the "
2f90: 63 22 20 69 6e 20 22 61 62 63 64 22 29 2e 0a 2b c" in "abcd")..+
2fa0: 2e 49 50 20 5c 66 49 4d 5c 66 52 5c 2d 5c 66 49 .IP \fIM\fR\-\fI
2fb0: 4e 5c 66 52 20 31 30 0a 2b 54 68 65 20 63 68 61 N\fR 10.+The cha
2fc0: 72 20 73 70 65 63 69 66 69 65 64 20 61 74 20 74 r specified at t
2fd0: 68 65 20 69 6e 74 65 67 72 61 6c 20 69 6e 64 65 he integral inde
2fe0: 78 20 74 68 61 74 20 69 73 20 74 68 65 20 64 69 x that is the di
2ff0: 66 66 65 72 65 6e 63 65 20 6f 66 20 0a 2b 69 6e fference of .+in
3000: 74 65 67 65 72 20 76 61 6c 75 65 73 20 5c 66 49 teger values \fI
3010: 4d 5c 66 52 20 61 6e 64 20 5c 66 49 4e 5c 66 52 M\fR and \fIN\fR
3020: 0a 2b 28 65 2e 67 2e 20 5c 66 42 32 5c 2d 31 5c .+(e.g. \fB2\-1\
3030: 66 52 20 77 6f 75 6c 64 20 72 65 66 65 72 20 74 fR would refer t
3040: 6f 20 74 68 65 20 22 62 22 20 69 6e 20 22 61 62 o the "b" in "ab
3050: 63 64 22 29 2e 0a 2b 2e 50 50 0a 2b 49 6e 20 74 cd")..+.PP.+In t
3060: 68 65 20 73 70 65 63 69 66 69 63 61 74 69 6f 6e he specification
3070: 73 20 61 62 6f 76 65 2c 20 74 68 65 20 69 6e 74 s above, the int
3080: 65 67 65 72 20 76 61 6c 75 65 20 5c 66 49 4d 5c eger value \fIM\
3090: 66 52 20 63 6f 6e 74 61 69 6e 73 20 6e 6f 0a 2b fR contains no.+
30a0: 74 72 61 69 6c 69 6e 67 20 77 68 69 74 65 73 70 trailing whitesp
30b0: 61 63 65 20 61 6e 64 20 74 68 65 20 69 6e 74 65 ace and the inte
30c0: 67 65 72 20 76 61 6c 75 65 20 5c 66 49 4e 5c 66 ger value \fIN\f
30d0: 52 20 63 6f 6e 74 61 69 6e 73 20 6e 6f 0a 2b 6c R contains no.+l
30e0: 65 61 64 69 6e 67 20 77 68 69 74 65 73 70 61 63 eading whitespac
30f0: 65 2e 0a 20 2e 50 50 0a 20 49 66 20 5c 66 49 63 e.. .PP. If \fIc
3100: 68 61 72 49 6e 64 65 78 5c 66 52 20 69 73 20 6c harIndex\fR is l
3110: 65 73 73 20 74 68 61 6e 20 30 20 6f 72 20 67 72 ess than 0 or gr
3120: 65 61 74 65 72 20 74 68 61 6e 20 6f 72 20 65 71 eater than or eq
3130: 75 61 6c 20 74 6f 20 74 68 65 0a 2d 6c 65 6e 67 ual to the.-leng
3140: 74 68 20 6f 66 20 74 68 65 20 73 74 72 69 6e 67 th of the string
3150: 20 74 68 65 6e 20 61 6e 20 65 6d 70 74 79 20 73 then an empty s
3160: 74 72 69 6e 67 20 69 73 20 72 65 74 75 72 6e 65 tring is returne
3170: 64 2e 0a 2b 6c 65 6e 67 74 68 20 6f 66 20 74 68 d..+length of th
3180: 65 20 73 74 72 69 6e 67 20 74 68 65 6e 20 74 68 e string then th
3190: 69 73 20 63 6f 6d 6d 61 6e 64 20 72 65 74 75 72 is command retur
31a0: 6e 73 20 61 6e 20 65 6d 70 74 79 20 73 74 72 69 ns an empty stri
31b0: 6e 67 2e 0a 20 2e 52 45 0a 2b 2e 56 45 0a 20 2e ng.. .RE.+.VE. .
31c0: 54 50 0a 20 5c 66 42 73 74 72 69 6e 67 20 69 73 TP. \fBstring is
31d0: 20 5c 66 49 63 6c 61 73 73 5c 66 52 20 3f 5c 66 \fIclass\fR ?\f
31e0: 42 5c 2d 73 74 72 69 63 74 5c 66 52 3f 20 3f 5c B\-strict\fR? ?\
31f0: 66 42 5c 2d 66 61 69 6c 69 6e 64 65 78 20 5c 66 fB\-failindex \f
3200: 49 76 61 72 6e 61 6d 65 5c 66 52 3f 20 5c 66 49 Ivarname\fR? \fI
3210: 73 74 72 69 6e 67 5c 66 52 0a 20 52 65 74 75 72 string\fR. Retur
3220: 6e 73 20 31 20 69 66 20 5c 66 49 73 74 72 69 6e ns 1 if \fIstrin
3230: 67 5c 66 52 20 69 73 20 61 20 76 61 6c 69 64 20 g\fR is a valid
3240: 6d 65 6d 62 65 72 20 6f 66 20 74 68 65 20 73 70 member of the sp
3250: 65 63 69 66 69 65 64 20 63 68 61 72 61 63 74 65 ecified characte
3260: 72 0a 49 6e 64 65 78 3a 20 67 65 6e 65 72 69 63 r.Index: generic
3270: 2f 74 63 6c 43 6d 64 4d 5a 2e 63 0a 3d 3d 3d 3d /tclCmdMZ.c.====
3280: 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d ================
3290: 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d ================
32a0: 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d ================
32b0: 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 0a ===============.
32c0: 52 43 53 20 66 69 6c 65 3a 20 2f 63 76 73 72 6f RCS file: /cvsro
32d0: 6f 74 2f 74 63 6c 2f 74 63 6c 2f 67 65 6e 65 72 ot/tcl/tcl/gener
32e0: 69 63 2f 74 63 6c 43 6d 64 4d 5a 2e 63 2c 76 0a ic/tclCmdMZ.c,v.
32f0: 72 65 74 72 69 65 76 69 6e 67 20 72 65 76 69 73 retrieving revis
3300: 69 6f 6e 20 31 2e 31 31 36 0a 64 69 66 66 20 2d ion 1.116.diff -
3310: 75 20 2d 72 31 2e 31 31 36 20 74 63 6c 43 6d 64 u -r1.116 tclCmd
3320: 4d 5a 2e 63 0a 2d 2d 2d 20 67 65 6e 65 72 69 63 MZ.c.--- generic
3330: 2f 74 63 6c 43 6d 64 4d 5a 2e 63 09 38 20 41 70 /tclCmdMZ.c.8 Ap
3340: 72 20 32 30 30 35 20 31 30 3a 34 32 3a 35 31 20 r 2005 10:42:51
3350: 2d 30 30 30 30 09 31 2e 31 31 36 0a 2b 2b 2b 20 -0000.1.116.+++
3360: 67 65 6e 65 72 69 63 2f 74 63 6c 43 6d 64 4d 5a generic/tclCmdMZ
3370: 2e 63 09 32 39 20 41 70 72 20 32 30 30 35 20 32 .c.29 Apr 2005 2
3380: 30 3a 33 30 3a 33 39 20 2d 30 30 30 30 0a 40 40 0:30:39 -0000.@@
3390: 20 2d 39 30 2c 37 20 2b 39 30 2c 37 20 40 40 0a -90,7 +90,7 @@.
33a0: 20 20 20 20 20 69 6e 74 20 69 2c 20 69 6e 64 69 int i, indi
33b0: 63 65 73 2c 20 6d 61 74 63 68 2c 20 61 62 6f 75 ces, match, abou
33c0: 74 2c 20 6f 66 66 73 65 74 2c 20 61 6c 6c 2c 20 t, offset, all,
33d0: 64 6f 69 6e 6c 69 6e 65 2c 20 6e 75 6d 4d 61 74 doinline, numMat
33e0: 63 68 65 73 53 61 76 65 64 3b 0a 20 20 20 20 20 chesSaved;.
33f0: 69 6e 74 20 63 66 6c 61 67 73 2c 20 65 66 6c 61 int cflags, efla
3400: 67 73 2c 20 73 74 72 69 6e 67 4c 65 6e 67 74 68 gs, stringLength
3410: 3b 0a 20 20 20 20 20 54 63 6c 5f 52 65 67 45 78 ;. Tcl_RegEx
3420: 70 20 72 65 67 45 78 70 72 3b 0a 2d 20 20 20 20 p regExpr;.-
3430: 54 63 6c 5f 4f 62 6a 20 2a 6f 62 6a 50 74 72 2c Tcl_Obj *objPtr,
3440: 20 2a 72 65 73 75 6c 74 50 74 72 20 3d 20 4e 55 *resultPtr = NU
3450: 4c 4c 3b 0a 2b 20 20 20 20 54 63 6c 5f 4f 62 6a LL;.+ Tcl_Obj
3460: 20 2a 6f 62 6a 50 74 72 2c 20 2a 73 74 61 72 74 *objPtr, *start
3470: 49 6e 64 65 78 20 3d 20 4e 55 4c 4c 2c 20 2a 72 Index = NULL, *r
3480: 65 73 75 6c 74 50 74 72 20 3d 20 4e 55 4c 4c 3b esultPtr = NULL;
3490: 0a 20 20 20 20 20 54 63 6c 5f 52 65 67 45 78 70 . Tcl_RegExp
34a0: 49 6e 66 6f 20 69 6e 66 6f 3b 0a 20 20 20 20 20 Info info;.
34b0: 73 74 61 74 69 63 20 43 4f 4e 53 54 20 63 68 61 static CONST cha
34c0: 72 20 2a 6f 70 74 69 6f 6e 73 5b 5d 20 3d 20 7b r *options[] = {
34d0: 0a 20 09 22 2d 61 6c 6c 22 2c 09 09 22 2d 61 62 . ."-all",.."-ab
34e0: 6f 75 74 22 2c 09 22 2d 69 6e 64 69 63 65 73 22 out",."-indices"
34f0: 2c 09 22 2d 69 6e 6c 69 6e 65 22 2c 0a 40 40 20 ,."-inline",.@@
3500: 2d 31 32 31 2c 37 20 2b 31 32 31 2c 37 20 40 40 -121,7 +121,7 @@
3510: 0a 20 09 7d 0a 20 09 69 66 20 28 54 63 6c 5f 47 . .}. .if (Tcl_G
3520: 65 74 49 6e 64 65 78 46 72 6f 6d 4f 62 6a 28 69 etIndexFromObj(i
3530: 6e 74 65 72 70 2c 20 6f 62 6a 76 5b 69 5d 2c 20 nterp, objv[i],
3540: 6f 70 74 69 6f 6e 73 2c 20 22 73 77 69 74 63 68 options, "switch
3550: 22 2c 20 54 43 4c 5f 45 58 41 43 54 2c 0a 20 09 ", TCL_EXACT,. .
3560: 09 26 69 6e 64 65 78 29 20 21 3d 20 54 43 4c 5f .&index) != TCL_
3570: 4f 4b 29 20 7b 0a 2d 09 20 20 20 20 72 65 74 75 OK) {.-. retu
3580: 72 6e 20 54 43 4c 5f 45 52 52 4f 52 3b 0a 2b 09 rn TCL_ERROR;.+.
3590: 20 20 20 20 67 6f 74 6f 20 6f 70 74 69 6f 6e 45 goto optionE
35a0: 72 72 6f 72 3b 0a 20 09 7d 0a 20 09 73 77 69 74 rror;. .}. .swit
35b0: 63 68 20 28 28 65 6e 75 6d 20 6f 70 74 69 6f 6e ch ((enum option
35c0: 73 29 20 69 6e 64 65 78 29 20 7b 0a 20 09 20 20 s) index) {. .
35d0: 20 20 63 61 73 65 20 52 45 47 45 58 50 5f 41 4c case REGEXP_AL
35e0: 4c 3a 20 7b 0a 40 40 20 2d 31 36 31 2c 31 35 20 L: {.@@ -161,15
35f0: 2b 31 36 31 2c 31 38 20 40 40 0a 20 09 09 62 72 +161,18 @@. ..br
3600: 65 61 6b 3b 0a 20 09 20 20 20 20 7d 0a 20 09 20 eak;. . }. .
3610: 20 20 20 63 61 73 65 20 52 45 47 45 58 50 5f 53 case REGEXP_S
3620: 54 41 52 54 3a 20 7b 0a 2b 09 09 69 6e 74 20 74 TART: {.+..int t
3630: 65 6d 70 3b 0a 20 09 09 69 66 20 28 2b 2b 69 20 emp;. ..if (++i
3640: 3e 3d 20 6f 62 6a 63 29 20 7b 0a 20 09 09 20 20 >= objc) {. ..
3650: 20 20 67 6f 74 6f 20 65 6e 64 4f 66 46 6f 72 4c goto endOfForL
3660: 6f 6f 70 3b 0a 20 09 09 7d 0a 2d 09 09 69 66 20 oop;. ..}.-..if
3670: 28 54 63 6c 5f 47 65 74 49 6e 74 46 72 6f 6d 4f (Tcl_GetIntFromO
3680: 62 6a 28 69 6e 74 65 72 70 2c 20 6f 62 6a 76 5b bj(interp, objv[
3690: 69 5d 2c 20 26 6f 66 66 73 65 74 29 20 21 3d 20 i], &offset) !=
36a0: 54 43 4c 5f 4f 4b 29 20 7b 0a 2d 09 09 20 20 20 TCL_OK) {.-..
36b0: 20 72 65 74 75 72 6e 20 54 43 4c 5f 45 52 52 4f return TCL_ERRO
36c0: 52 3b 0a 2b 09 09 69 66 20 28 54 63 6c 47 65 74 R;.+..if (TclGet
36d0: 49 6e 74 46 6f 72 49 6e 64 65 78 28 69 6e 74 65 IntForIndex(inte
36e0: 72 70 2c 20 6f 62 6a 76 5b 69 5d 2c 20 30 2c 20 rp, objv[i], 0,
36f0: 26 74 65 6d 70 29 20 21 3d 20 54 43 4c 5f 4f 4b &temp) != TCL_OK
3700: 29 20 7b 0a 2b 09 09 20 20 20 20 67 6f 74 6f 20 ) {.+.. goto
3710: 6f 70 74 69 6f 6e 45 72 72 6f 72 3b 0a 20 09 09 optionError;. ..
3720: 7d 0a 2d 09 09 69 66 20 28 6f 66 66 73 65 74 20 }.-..if (offset
3730: 3c 20 30 29 20 7b 0a 2d 09 09 20 20 20 20 6f 66 < 0) {.-.. of
3740: 66 73 65 74 20 3d 20 30 3b 0a 2b 09 09 69 66 20 fset = 0;.+..if
3750: 28 73 74 61 72 74 49 6e 64 65 78 29 20 7b 0a 2b (startIndex) {.+
3760: 09 09 20 20 20 20 54 63 6c 5f 44 65 63 72 52 65 .. Tcl_DecrRe
3770: 66 43 6f 75 6e 74 28 73 74 61 72 74 49 6e 64 65 fCount(startInde
3780: 78 29 3b 0a 20 09 09 7d 0a 2b 09 09 73 74 61 72 x);. ..}.+..star
3790: 74 49 6e 64 65 78 20 3d 20 6f 62 6a 76 5b 69 5d tIndex = objv[i]
37a0: 3b 0a 2b 09 09 54 63 6c 5f 49 6e 63 72 52 65 66 ;.+..Tcl_IncrRef
37b0: 43 6f 75 6e 74 28 73 74 61 72 74 49 6e 64 65 78 Count(startIndex
37c0: 29 3b 0a 20 09 09 62 72 65 61 6b 3b 0a 20 09 20 );. ..break;. .
37d0: 20 20 20 7d 0a 20 09 20 20 20 20 63 61 73 65 20 }. . case
37e0: 52 45 47 45 58 50 5f 4c 41 53 54 3a 20 7b 0a 40 REGEXP_LAST: {.@
37f0: 40 20 2d 31 38 33 2c 37 20 2b 31 38 36 2c 37 20 @ -183,7 +186,7
3800: 40 40 0a 20 20 20 20 20 69 66 20 28 28 6f 62 6a @@. if ((obj
3810: 63 20 2d 20 69 29 20 3c 20 28 32 20 2d 20 61 62 c - i) < (2 - ab
3820: 6f 75 74 29 29 20 7b 0a 20 09 54 63 6c 5f 57 72 out)) {. .Tcl_Wr
3830: 6f 6e 67 4e 75 6d 41 72 67 73 28 69 6e 74 65 72 ongNumArgs(inter
3840: 70 2c 20 31 2c 20 6f 62 6a 76 2c 20 0a 20 09 20 p, 1, objv, . .
3850: 20 22 3f 73 77 69 74 63 68 65 73 3f 20 65 78 70 "?switches? exp
3860: 20 73 74 72 69 6e 67 20 3f 6d 61 74 63 68 56 61 string ?matchVa
3870: 72 3f 20 3f 73 75 62 4d 61 74 63 68 56 61 72 20 r? ?subMatchVar
3880: 73 75 62 4d 61 74 63 68 56 61 72 20 2e 2e 2e 3f subMatchVar ...?
3890: 22 29 3b 0a 2d 09 72 65 74 75 72 6e 20 54 43 4c ");.-.return TCL
38a0: 5f 45 52 52 4f 52 3b 0a 2b 09 67 6f 74 6f 20 6f _ERROR;.+.goto o
38b0: 70 74 69 6f 6e 45 72 72 6f 72 3b 0a 20 20 20 20 ptionError;.
38c0: 20 7d 0a 20 20 20 20 20 6f 62 6a 63 20 2d 3d 20 }. objc -=
38d0: 69 3b 0a 20 20 20 20 20 6f 62 6a 76 20 2b 3d 20 i;. objv +=
38e0: 69 3b 0a 40 40 20 2d 31 39 34 2c 37 20 2b 31 39 i;.@@ -194,7 +19
38f0: 37 2c 37 20 40 40 0a 20 09 20 2a 2f 0a 20 09 54 7,7 @@. . */. .T
3900: 63 6c 5f 41 70 70 65 6e 64 52 65 73 75 6c 74 28 cl_AppendResult(
3910: 69 6e 74 65 72 70 2c 20 22 72 65 67 65 78 70 20 interp, "regexp
3920: 6d 61 74 63 68 20 76 61 72 69 61 62 6c 65 73 20 match variables
3930: 6e 6f 74 20 61 6c 6c 6f 77 65 64 22 2c 0a 20 09 not allowed",. .
3940: 09 22 20 77 68 65 6e 20 75 73 69 6e 67 20 2d 69 ." when using -i
3950: 6e 6c 69 6e 65 22 2c 20 28 63 68 61 72 20 2a 29 nline", (char *)
3960: 20 4e 55 4c 4c 29 3b 0a 2d 09 72 65 74 75 72 6e NULL);.-.return
3970: 20 54 43 4c 5f 45 52 52 4f 52 3b 0a 2b 09 67 6f TCL_ERROR;.+.go
3980: 74 6f 20 6f 70 74 69 6f 6e 45 72 72 6f 72 3b 0a to optionError;.
3990: 20 20 20 20 20 7d 0a 20 0a 20 20 20 20 20 2f 2a }. . /*
39a0: 0a 40 40 20 2d 32 30 33 2c 36 20 2b 32 30 36 2c .@@ -203,6 +206,
39b0: 31 30 20 40 40 0a 20 20 20 20 20 69 66 20 28 61 10 @@. if (a
39c0: 62 6f 75 74 29 20 7b 0a 20 09 72 65 67 45 78 70 bout) {. .regExp
39d0: 72 20 3d 20 54 63 6c 5f 47 65 74 52 65 67 45 78 r = Tcl_GetRegEx
39e0: 70 46 72 6f 6d 4f 62 6a 28 69 6e 74 65 72 70 2c pFromObj(interp,
39f0: 20 6f 62 6a 76 5b 30 5d 2c 20 63 66 6c 61 67 73 objv[0], cflags
3a00: 29 3b 0a 20 09 69 66 20 28 28 72 65 67 45 78 70 );. .if ((regExp
3a10: 72 20 3d 3d 20 4e 55 4c 4c 29 20 7c 7c 20 28 54 r == NULL) || (T
3a20: 63 6c 52 65 67 41 62 6f 75 74 28 69 6e 74 65 72 clRegAbout(inter
3a30: 70 2c 20 72 65 67 45 78 70 72 29 20 3c 20 30 29 p, regExpr) < 0)
3a40: 29 20 7b 0a 2b 6f 70 74 69 6f 6e 45 72 72 6f 72 ) {.+optionError
3a50: 3a 0a 2b 09 20 20 20 20 69 66 20 28 73 74 61 72 :.+. if (star
3a60: 74 49 6e 64 65 78 29 20 7b 0a 2b 09 09 54 63 6c tIndex) {.+..Tcl
3a70: 5f 44 65 63 72 52 65 66 43 6f 75 6e 74 28 73 74 _DecrRefCount(st
3a80: 61 72 74 49 6e 64 65 78 29 3b 0a 2b 09 20 20 20 artIndex);.+.
3a90: 20 7d 0a 20 09 20 20 20 20 72 65 74 75 72 6e 20 }. . return
3aa0: 54 43 4c 5f 45 52 52 4f 52 3b 0a 20 09 7d 0a 20 TCL_ERROR;. .}.
3ab0: 09 72 65 74 75 72 6e 20 54 43 4c 5f 4f 4b 3b 0a .return TCL_OK;.
3ac0: 40 40 20 2d 32 31 36 2c 36 20 2b 32 32 33 2c 31 @@ -216,6 +223,1
3ad0: 34 20 40 40 0a 20 20 20 20 20 6f 62 6a 50 74 72 4 @@. objPtr
3ae0: 20 3d 20 6f 62 6a 76 5b 31 5d 3b 0a 20 20 20 20 = objv[1];.
3af0: 20 73 74 72 69 6e 67 4c 65 6e 67 74 68 20 3d 20 stringLength =
3b00: 54 63 6c 5f 47 65 74 43 68 61 72 4c 65 6e 67 74 Tcl_GetCharLengt
3b10: 68 28 6f 62 6a 50 74 72 29 3b 0a 20 0a 2b 20 20 h(objPtr);. .+
3b20: 20 20 69 66 20 28 73 74 61 72 74 49 6e 64 65 78 if (startIndex
3b30: 29 20 7b 0a 2b 09 54 63 6c 47 65 74 49 6e 74 46 ) {.+.TclGetIntF
3b40: 6f 72 49 6e 64 65 78 28 4e 55 4c 4c 2c 20 73 74 orIndex(NULL, st
3b50: 61 72 74 49 6e 64 65 78 2c 20 73 74 72 69 6e 67 artIndex, string
3b60: 4c 65 6e 67 74 68 2c 20 26 6f 66 66 73 65 74 29 Length, &offset)
3b70: 3b 0a 2b 09 54 63 6c 5f 44 65 63 72 52 65 66 43 ;.+.Tcl_DecrRefC
3b80: 6f 75 6e 74 28 73 74 61 72 74 49 6e 64 65 78 29 ount(startIndex)
3b90: 3b 0a 2b 09 69 66 20 28 6f 66 66 73 65 74 20 3c ;.+.if (offset <
3ba0: 20 30 29 20 7b 0a 2b 09 20 20 20 20 6f 66 66 73 0) {.+. offs
3bb0: 65 74 20 3d 20 30 3b 0a 2b 09 7d 0a 2b 20 20 20 et = 0;.+.}.+
3bc0: 20 7d 0a 2b 0a 20 20 20 20 20 72 65 67 45 78 70 }.+. regExp
3bd0: 72 20 3d 20 54 63 6c 5f 47 65 74 52 65 67 45 78 r = Tcl_GetRegEx
3be0: 70 46 72 6f 6d 4f 62 6a 28 69 6e 74 65 72 70 2c pFromObj(interp,
3bf0: 20 6f 62 6a 76 5b 30 5d 2c 20 63 66 6c 61 67 73 objv[0], cflags
3c00: 29 3b 0a 20 20 20 20 20 69 66 20 28 72 65 67 45 );. if (regE
3c10: 78 70 72 20 3d 3d 20 4e 55 4c 4c 29 20 7b 0a 20 xpr == NULL) {.
3c20: 09 72 65 74 75 72 6e 20 54 43 4c 5f 45 52 52 4f .return TCL_ERRO
3c30: 52 3b 0a 40 40 20 2d 34 32 36 2c 37 20 2b 34 34 R;.@@ -426,7 +44
3c40: 31 2c 37 20 40 40 0a 20 20 20 20 20 69 6e 74 20 1,7 @@. int
3c50: 73 74 61 72 74 2c 20 65 6e 64 2c 20 73 75 62 53 start, end, subS
3c60: 74 61 72 74 2c 20 73 75 62 45 6e 64 2c 20 6d 61 tart, subEnd, ma
3c70: 74 63 68 3b 0a 20 20 20 20 20 54 63 6c 5f 52 65 tch;. Tcl_Re
3c80: 67 45 78 70 20 72 65 67 45 78 70 72 3b 0a 20 20 gExp regExpr;.
3c90: 20 20 20 54 63 6c 5f 52 65 67 45 78 70 49 6e 66 Tcl_RegExpInf
3ca0: 6f 20 69 6e 66 6f 3b 0a 2d 20 20 20 20 54 63 6c o info;.- Tcl
3cb0: 5f 4f 62 6a 20 2a 72 65 73 75 6c 74 50 74 72 2c _Obj *resultPtr,
3cc0: 20 2a 73 75 62 50 74 72 2c 20 2a 6f 62 6a 50 74 *subPtr, *objPt
3cd0: 72 3b 0a 2b 20 20 20 20 54 63 6c 5f 4f 62 6a 20 r;.+ Tcl_Obj
3ce0: 2a 72 65 73 75 6c 74 50 74 72 2c 20 2a 73 75 62 *resultPtr, *sub
3cf0: 50 74 72 2c 20 2a 6f 62 6a 50 74 72 2c 20 2a 73 Ptr, *objPtr, *s
3d00: 74 61 72 74 49 6e 64 65 78 20 3d 20 4e 55 4c 4c tartIndex = NULL
3d10: 3b 0a 20 20 20 20 20 54 63 6c 5f 55 6e 69 43 68 ;. Tcl_UniCh
3d20: 61 72 20 63 68 2c 20 2a 77 73 72 63 2c 20 2a 77 ar ch, *wsrc, *w
3d30: 66 69 72 73 74 43 68 61 72 2c 20 2a 77 73 74 72 firstChar, *wstr
3d40: 69 6e 67 2c 20 2a 77 73 75 62 73 70 65 63 2c 20 ing, *wsubspec,
3d50: 2a 77 65 6e 64 3b 0a 20 0a 20 20 20 20 20 73 74 *wend;. . st
3d60: 61 74 69 63 20 43 4f 4e 53 54 20 63 68 61 72 20 atic CONST char
3d70: 2a 6f 70 74 69 6f 6e 73 5b 5d 20 3d 20 7b 0a 40 *options[] = {.@
3d80: 40 20 2d 34 35 35 2c 37 20 2b 34 37 30 2c 37 20 @ -455,7 +470,7
3d90: 40 40 0a 20 09 7d 0a 20 09 69 66 20 28 54 63 6c @@. .}. .if (Tcl
3da0: 5f 47 65 74 49 6e 64 65 78 46 72 6f 6d 4f 62 6a _GetIndexFromObj
3db0: 28 69 6e 74 65 72 70 2c 20 6f 62 6a 76 5b 69 64 (interp, objv[id
3dc0: 78 5d 2c 20 6f 70 74 69 6f 6e 73 2c 20 22 73 77 x], options, "sw
3dd0: 69 74 63 68 22 2c 0a 20 09 09 54 43 4c 5f 45 58 itch",. ..TCL_EX
3de0: 41 43 54 2c 20 26 69 6e 64 65 78 29 20 21 3d 20 ACT, &index) !=
3df0: 54 43 4c 5f 4f 4b 29 20 7b 0a 2d 09 20 20 20 20 TCL_OK) {.-.
3e00: 72 65 74 75 72 6e 20 54 43 4c 5f 45 52 52 4f 52 return TCL_ERROR
3e10: 3b 0a 2b 09 20 20 20 20 67 6f 74 6f 20 6f 70 74 ;.+. goto opt
3e20: 69 6f 6e 45 72 72 6f 72 3b 0a 20 09 7d 0a 20 09 ionError;. .}. .
3e30: 73 77 69 74 63 68 20 28 28 65 6e 75 6d 20 6f 70 switch ((enum op
3e40: 74 69 6f 6e 73 29 20 69 6e 64 65 78 29 20 7b 0a tions) index) {.
3e50: 20 09 20 20 20 20 63 61 73 65 20 52 45 47 53 55 . case REGSU
3e60: 42 5f 41 4c 4c 3a 20 7b 0a 40 40 20 2d 34 38 33 B_ALL: {.@@ -483
3e70: 2c 31 35 20 2b 34 39 38 2c 31 38 20 40 40 0a 20 ,15 +498,18 @@.
3e80: 09 09 62 72 65 61 6b 3b 0a 20 09 20 20 20 20 7d ..break;. . }
3e90: 0a 20 09 20 20 20 20 63 61 73 65 20 52 45 47 53 . . case REGS
3ea0: 55 42 5f 53 54 41 52 54 3a 20 7b 0a 2b 09 09 69 UB_START: {.+..i
3eb0: 6e 74 20 74 65 6d 70 3b 0a 20 09 09 69 66 20 28 nt temp;. ..if (
3ec0: 2b 2b 69 64 78 20 3e 3d 20 6f 62 6a 63 29 20 7b ++idx >= objc) {
3ed0: 0a 20 09 09 20 20 20 20 67 6f 74 6f 20 65 6e 64 . .. goto end
3ee0: 4f 66 46 6f 72 4c 6f 6f 70 3b 0a 20 09 09 7d 0a OfForLoop;. ..}.
3ef0: 2d 09 09 69 66 20 28 54 63 6c 5f 47 65 74 49 6e -..if (Tcl_GetIn
3f00: 74 46 72 6f 6d 4f 62 6a 28 69 6e 74 65 72 70 2c tFromObj(interp,
3f10: 20 6f 62 6a 76 5b 69 64 78 5d 2c 20 26 6f 66 66 objv[idx], &off
3f20: 73 65 74 29 20 21 3d 20 54 43 4c 5f 4f 4b 29 20 set) != TCL_OK)
3f30: 7b 0a 2d 09 09 20 20 20 20 72 65 74 75 72 6e 20 {.-.. return
3f40: 54 43 4c 5f 45 52 52 4f 52 3b 0a 2b 09 09 69 66 TCL_ERROR;.+..if
3f50: 20 28 54 63 6c 47 65 74 49 6e 74 46 6f 72 49 6e (TclGetIntForIn
3f60: 64 65 78 28 69 6e 74 65 72 70 2c 20 6f 62 6a 76 dex(interp, objv
3f70: 5b 69 64 78 5d 2c 20 30 2c 20 26 74 65 6d 70 29 [idx], 0, &temp)
3f80: 20 21 3d 20 54 43 4c 5f 4f 4b 29 20 7b 0a 2b 09 != TCL_OK) {.+.
3f90: 09 20 20 20 20 67 6f 74 6f 20 6f 70 74 69 6f 6e . goto option
3fa0: 45 72 72 6f 72 3b 0a 20 09 09 7d 0a 2d 09 09 69 Error;. ..}.-..i
3fb0: 66 20 28 6f 66 66 73 65 74 20 3c 20 30 29 20 7b f (offset < 0) {
3fc0: 0a 2d 09 09 20 20 20 20 6f 66 66 73 65 74 20 3d .-.. offset =
3fd0: 20 30 3b 0a 2b 09 09 69 66 20 28 73 74 61 72 74 0;.+..if (start
3fe0: 49 6e 64 65 78 29 20 7b 0a 2b 09 09 20 20 20 20 Index) {.+..
3ff0: 54 63 6c 5f 44 65 63 72 52 65 66 43 6f 75 6e 74 Tcl_DecrRefCount
4000: 28 73 74 61 72 74 49 6e 64 65 78 29 3b 0a 20 09 (startIndex);. .
4010: 09 7d 0a 2b 09 09 73 74 61 72 74 49 6e 64 65 78 .}.+..startIndex
4020: 20 3d 20 6f 62 6a 76 5b 69 64 78 5d 3b 0a 2b 09 = objv[idx];.+.
4030: 09 54 63 6c 5f 49 6e 63 72 52 65 66 43 6f 75 6e .Tcl_IncrRefCoun
4040: 74 28 73 74 61 72 74 49 6e 64 65 78 29 3b 0a 20 t(startIndex);.
4050: 09 09 62 72 65 61 6b 3b 0a 20 09 20 20 20 20 7d ..break;. . }
4060: 0a 20 09 20 20 20 20 63 61 73 65 20 52 45 47 53 . . case REGS
4070: 55 42 5f 4c 41 53 54 3a 20 7b 0a 40 40 20 2d 35 UB_LAST: {.@@ -5
4080: 30 34 2c 31 32 20 2b 35 32 32 2c 32 35 20 40 40 04,12 +522,25 @@
4090: 0a 20 20 20 20 20 69 66 20 28 6f 62 6a 63 2d 69 . if (objc-i
40a0: 64 78 20 3c 20 33 20 7c 7c 20 6f 62 6a 63 2d 69 dx < 3 || objc-i
40b0: 64 78 20 3e 20 34 29 20 7b 0a 20 09 54 63 6c 5f dx > 4) {. .Tcl_
40c0: 57 72 6f 6e 67 4e 75 6d 41 72 67 73 28 69 6e 74 WrongNumArgs(int
40d0: 65 72 70 2c 20 31 2c 20 6f 62 6a 76 2c 0a 20 09 erp, 1, objv,. .
40e0: 09 22 3f 73 77 69 74 63 68 65 73 3f 20 65 78 70 ."?switches? exp
40f0: 20 73 74 72 69 6e 67 20 73 75 62 53 70 65 63 20 string subSpec
4100: 3f 76 61 72 4e 61 6d 65 3f 22 29 3b 0a 2d 09 72 ?varName?");.-.r
4110: 65 74 75 72 6e 20 54 43 4c 5f 45 52 52 4f 52 3b eturn TCL_ERROR;
4120: 0a 2b 6f 70 74 69 6f 6e 45 72 72 6f 72 3a 0a 2b .+optionError:.+
4130: 09 20 20 20 20 69 66 20 28 73 74 61 72 74 49 6e . if (startIn
4140: 64 65 78 29 20 7b 0a 2b 09 09 54 63 6c 5f 44 65 dex) {.+..Tcl_De
4150: 63 72 52 65 66 43 6f 75 6e 74 28 73 74 61 72 74 crRefCount(start
4160: 49 6e 64 65 78 29 3b 0a 2b 09 20 20 20 20 7d 0a Index);.+. }.
4170: 2b 09 20 20 20 20 72 65 74 75 72 6e 20 54 43 4c +. return TCL
4180: 5f 45 52 52 4f 52 3b 0a 20 20 20 20 20 7d 0a 20 _ERROR;. }.
4190: 0a 20 20 20 20 20 6f 62 6a 63 20 2d 3d 20 69 64 . objc -= id
41a0: 78 3b 0a 20 20 20 20 20 6f 62 6a 76 20 2b 3d 20 x;. objv +=
41b0: 69 64 78 3b 0a 20 0a 2b 20 20 20 20 69 66 20 28 idx;. .+ if (
41c0: 73 74 61 72 74 49 6e 64 65 78 29 20 7b 0a 2b 09 startIndex) {.+.
41d0: 69 6e 74 20 73 74 72 69 6e 67 4c 65 6e 67 74 68 int stringLength
41e0: 20 3d 20 54 63 6c 5f 47 65 74 43 68 61 72 4c 65 = Tcl_GetCharLe
41f0: 6e 67 74 68 28 6f 62 6a 76 5b 31 5d 29 3b 0a 2b ngth(objv[1]);.+
4200: 09 54 63 6c 47 65 74 49 6e 74 46 6f 72 49 6e 64 .TclGetIntForInd
4210: 65 78 28 4e 55 4c 4c 2c 20 73 74 61 72 74 49 6e ex(NULL, startIn
4220: 64 65 78 2c 20 73 74 72 69 6e 67 4c 65 6e 67 74 dex, stringLengt
4230: 68 2c 20 26 6f 66 66 73 65 74 29 3b 0a 2b 09 54 h, &offset);.+.T
4240: 63 6c 5f 44 65 63 72 52 65 66 43 6f 75 6e 74 28 cl_DecrRefCount(
4250: 73 74 61 72 74 49 6e 64 65 78 29 3b 0a 2b 09 69 startIndex);.+.i
4260: 66 20 28 6f 66 66 73 65 74 20 3c 20 30 29 20 7b f (offset < 0) {
4270: 0a 2b 09 20 20 20 20 6f 66 66 73 65 74 20 3d 20 .+. offset =
4280: 30 3b 0a 2b 09 7d 0a 2b 20 20 20 20 7d 0a 2b 0a 0;.+.}.+ }.+.
4290: 20 20 20 20 20 69 66 20 28 61 6c 6c 20 26 26 20 if (all &&
42a0: 28 6f 66 66 73 65 74 20 3d 3d 20 30 29 0a 20 09 (offset == 0). .
42b0: 20 20 20 20 26 26 20 28 73 74 72 70 62 72 6b 28 && (strpbrk(
42c0: 54 63 6c 47 65 74 53 74 72 69 6e 67 28 6f 62 6a TclGetString(obj
42d0: 76 5b 32 5d 29 2c 20 22 26 5c 5c 22 29 20 3d 3d v[2]), "&\\") ==
42e0: 20 4e 55 4c 4c 29 0a 20 09 20 20 20 20 26 26 20 NULL). . &&
42f0: 28 73 74 72 70 62 72 6b 28 54 63 6c 47 65 74 53 (strpbrk(TclGetS
4300: 74 72 69 6e 67 28 6f 62 6a 76 5b 30 5d 29 2c 20 tring(objv[0]),
4310: 22 2a 2b 3f 7b 7d 28 29 5b 5d 2e 5c 5c 7c 5e 24 "*+?{}()[].\\|^$
4320: 22 29 20 3d 3d 20 4e 55 4c 4c 29 29 20 7b 0a 49 ") == NULL)) {.I
4330: 6e 64 65 78 3a 20 67 65 6e 65 72 69 63 2f 74 63 ndex: generic/tc
4340: 6c 55 74 69 6c 2e 63 0a 3d 3d 3d 3d 3d 3d 3d 3d lUtil.c.========
4350: 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d ================
4360: 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d ================
4370: 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d ================
4380: 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 0a 52 43 53 20 ===========.RCS
4390: 66 69 6c 65 3a 20 2f 63 76 73 72 6f 6f 74 2f 74 file: /cvsroot/t
43a0: 63 6c 2f 74 63 6c 2f 67 65 6e 65 72 69 63 2f 74 cl/tcl/generic/t
43b0: 63 6c 55 74 69 6c 2e 63 2c 76 0a 72 65 74 72 69 clUtil.c,v.retri
43c0: 65 76 69 6e 67 20 72 65 76 69 73 69 6f 6e 20 31 eving revision 1
43d0: 2e 35 35 0a 64 69 66 66 20 2d 75 20 2d 72 31 2e .55.diff -u -r1.
43e0: 35 35 20 74 63 6c 55 74 69 6c 2e 63 0a 2d 2d 2d 55 tclUtil.c.---
43f0: 20 67 65 6e 65 72 69 63 2f 74 63 6c 55 74 69 6c generic/tclUtil
4400: 2e 63 09 31 32 20 41 70 72 20 32 30 30 35 20 32 .c.12 Apr 2005 2
4410: 30 3a 32 38 3a 34 38 20 2d 30 30 30 30 09 31 2e 0:28:48 -0000.1.
4420: 35 35 0a 2b 2b 2b 20 67 65 6e 65 72 69 63 2f 74 55.+++ generic/t
4430: 63 6c 55 74 69 6c 2e 63 09 32 39 20 41 70 72 20 clUtil.c.29 Apr
4440: 32 30 30 35 20 32 30 3a 33 30 3a 33 39 20 2d 30 2005 20:30:39 -0
4450: 30 30 30 0a 40 40 20 2d 32 32 36 39 2c 31 35 20 000.@@ -2269,15
4460: 2b 32 32 36 39 2c 31 34 20 40 40 0a 20 20 2a 0a +2269,14 @@. *.
4470: 20 20 2a 09 54 68 69 73 20 70 72 6f 63 65 64 75 *.This procedu
4480: 72 65 20 72 65 74 75 72 6e 73 20 61 6e 20 69 6e re returns an in
4490: 74 65 67 65 72 20 63 6f 72 72 65 73 70 6f 6e 64 teger correspond
44a0: 69 6e 67 20 74 6f 20 74 68 65 20 6c 69 73 74 20 ing to the list
44b0: 69 6e 64 65 78 0a 20 20 2a 09 68 65 6c 64 20 69 index. *.held i
44c0: 6e 20 61 20 54 63 6c 20 6f 62 6a 65 63 74 2e 20 n a Tcl object.
44d0: 54 68 65 20 54 63 6c 20 6f 62 6a 65 63 74 27 73 The Tcl object's
44e0: 20 76 61 6c 75 65 20 69 73 20 65 78 70 65 63 74 value is expect
44f0: 65 64 20 74 6f 20 62 65 0a 2d 20 2a 09 65 69 74 ed to be.- *.eit
4500: 68 65 72 20 61 6e 20 69 6e 74 65 67 65 72 20 6f her an integer o
4510: 72 20 61 20 73 74 72 69 6e 67 20 6f 66 20 74 68 r a string of th
4520: 65 20 66 6f 72 6d 20 22 65 6e 64 28 5b 2b 2d 5d e form "end([+-]
4530: 69 6e 74 65 67 65 72 29 3f 22 2e 20 0a 2b 20 2a integer)?". .+ *
4540: 09 69 6e 20 74 68 65 20 66 6f 72 6d 61 74 20 69 .in the format i
4550: 6e 74 65 67 65 72 28 5b 2b 2d 5d 69 6e 74 65 67 nteger([+-]integ
4560: 65 72 29 3f 20 6f 72 20 74 68 65 20 66 6f 72 6d er)? or the form
4570: 61 74 20 65 6e 64 28 5b 2b 2d 5d 69 6e 74 65 67 at end([+-]integ
4580: 65 72 29 3f 2e 20 0a 20 20 2a 0a 20 20 2a 20 52 er)?. . *. * R
4590: 65 73 75 6c 74 73 3a 0a 20 20 2a 09 54 68 65 20 esults:. *.The
45a0: 72 65 74 75 72 6e 20 76 61 6c 75 65 20 69 73 20 return value is
45b0: 6e 6f 72 6d 61 6c 6c 79 20 54 43 4c 5f 4f 4b 2c normally TCL_OK,
45c0: 20 77 68 69 63 68 20 6d 65 61 6e 73 20 74 68 61 which means tha
45d0: 74 20 74 68 65 20 69 6e 64 65 78 20 77 61 73 0a t the index was.
45e0: 20 20 2a 09 73 75 63 63 65 73 73 66 75 6c 6c 79 *.successfully
45f0: 20 73 74 6f 72 65 64 20 69 6e 74 6f 20 74 68 65 stored into the
4600: 20 6c 6f 63 61 74 69 6f 6e 20 72 65 66 65 72 65 location refere
4610: 6e 63 65 64 20 62 79 20 22 69 6e 64 65 78 50 74 nced by "indexPt
4620: 72 22 2e 20 20 49 66 0a 20 20 2a 09 74 68 65 20 r". If. *.the
4630: 54 63 6c 20 6f 62 6a 65 63 74 20 72 65 66 65 72 Tcl object refer
4640: 65 6e 63 65 64 20 62 79 20 22 6f 62 6a 50 74 72 enced by "objPtr
4650: 22 20 68 61 73 20 74 68 65 20 76 61 6c 75 65 20 " has the value
4660: 22 65 6e 64 22 2c 20 74 68 65 0a 2d 20 2a 09 76 "end", the.- *.v
4670: 61 6c 75 65 20 73 74 6f 72 65 64 20 69 73 20 22 alue stored is "
4680: 65 6e 64 56 61 6c 75 65 22 2e 20 49 66 20 22 6f endValue". If "o
4690: 62 6a 50 74 72 22 73 20 76 61 6c 75 65 73 20 69 bjPtr"s values i
46a0: 73 20 6e 6f 74 20 6f 66 20 74 68 65 20 66 6f 72 s not of the for
46b0: 6d 0a 2d 20 2a 09 22 65 6e 64 28 5b 2b 2d 5d 69 m.- *."end([+-]i
46c0: 6e 74 65 67 65 72 29 3f 22 20 61 6e 64 0a 2d 20 nteger)?" and.-
46d0: 2a 09 63 61 6e 20 6e 6f 74 20 62 65 20 63 6f 6e *.can not be con
46e0: 76 65 72 74 65 64 20 74 6f 20 61 6e 20 69 6e 74 verted to an int
46f0: 65 67 65 72 2c 20 54 43 4c 5f 45 52 52 4f 52 20 eger, TCL_ERROR
4700: 69 73 20 72 65 74 75 72 6e 65 64 20 61 6e 64 2c is returned and,
4710: 20 69 66 0a 2b 20 2a 09 76 61 6c 75 65 20 73 74 if.+ *.value st
4720: 6f 72 65 64 20 69 73 20 22 65 6e 64 56 61 6c 75 ored is "endValu
4730: 65 22 2e 20 49 66 20 22 6f 62 6a 50 74 72 22 73 e". If "objPtr"s
4740: 20 76 61 6c 75 65 73 20 69 73 20 6e 6f 74 20 6f values is not o
4750: 66 20 6f 6e 65 0a 2b 20 2a 09 6f 66 20 74 68 65 f one.+ *.of the
4760: 20 65 78 70 65 63 74 65 64 20 66 6f 72 6d 61 74 expected format
4770: 73 2c 20 54 43 4c 5f 45 52 52 4f 52 20 69 73 20 s, TCL_ERROR is
4780: 72 65 74 75 72 6e 65 64 20 61 6e 64 2c 20 69 66 returned and, if
4790: 0a 20 20 2a 09 22 69 6e 74 65 72 70 22 20 69 73 . *."interp" is
47a0: 20 6e 6f 6e 2d 4e 55 4c 4c 2c 20 61 6e 20 65 72 non-NULL, an er
47b0: 72 6f 72 20 6d 65 73 73 61 67 65 20 69 73 20 6c ror message is l
47c0: 65 66 74 20 69 6e 20 74 68 65 20 69 6e 74 65 72 eft in the inter
47d0: 70 72 65 74 65 72 27 73 0a 20 20 2a 09 72 65 73 preter's. *.res
47e0: 75 6c 74 20 6f 62 6a 65 63 74 2e 0a 20 20 2a 0a ult object.. *.
47f0: 40 40 20 2d 32 33 31 33 2c 31 30 20 2b 32 33 31 @@ -2313,10 +231
4800: 32 2c 35 31 20 40 40 0a 20 09 2a 69 6e 64 65 78 2,51 @@. .*index
4810: 50 74 72 20 3d 20 65 6e 64 56 61 6c 75 65 20 2b Ptr = endValue +
4820: 20 6f 62 6a 50 74 72 2d 3e 69 6e 74 65 72 6e 61 objPtr->interna
4830: 6c 52 65 70 2e 6c 6f 6e 67 56 61 6c 75 65 3b 0a lRep.longValue;.
4840: 20 0a 20 20 20 20 20 7d 20 65 6c 73 65 20 7b 0a . } else {.
4850: 2b 09 69 6e 74 20 6f 70 49 64 78 2c 20 6c 65 6e +.int opIdx, len
4860: 67 74 68 3b 0a 2b 09 63 68 61 72 20 2a 62 79 74 gth;.+.char *byt
4870: 65 73 20 3d 20 54 63 6c 5f 47 65 74 53 74 72 69 es = Tcl_GetStri
4880: 6e 67 46 72 6f 6d 4f 62 6a 28 6f 62 6a 50 74 72 ngFromObj(objPtr
4890: 2c 20 26 6c 65 6e 67 74 68 29 3b 0a 2b 09 63 68 , &length);.+.ch
48a0: 61 72 20 2a 70 20 3d 20 62 79 74 65 73 3b 0a 2b ar *p = bytes;.+
48b0: 0a 2b 09 77 68 69 6c 65 20 28 6c 65 6e 67 74 68 .+.while (length
48c0: 20 26 26 20 69 73 73 70 61 63 65 28 55 43 48 41 && isspace(UCHA
48d0: 52 28 2a 70 29 29 29 20 7b 20 2f 2a 20 49 4e 54 R(*p))) { /* INT
48e0: 4c 3a 20 49 53 4f 20 73 70 61 63 65 2e 20 2a 2f L: ISO space. */
48f0: 0a 2b 09 20 20 20 20 6c 65 6e 67 74 68 2d 2d 3b .+. length--;
4900: 20 70 2b 2b 3b 0a 2b 09 7d 0a 2b 09 69 66 20 28 p++;.+.}.+.if (
4910: 6c 65 6e 67 74 68 20 3d 3d 20 30 29 20 7b 0a 2b length == 0) {.+
4920: 20 20 20 20 20 20 20 20 20 20 20 20 67 6f 74 6f goto
4930: 20 70 61 72 73 65 45 72 72 6f 72 3b 0a 2b 09 7d parseError;.+.}
4940: 0a 2b 09 69 66 20 28 28 2a 70 20 3d 3d 20 27 2b .+.if ((*p == '+
4950: 27 29 20 7c 7c 20 28 2a 70 20 3d 3d 20 27 2d 27 ') || (*p == '-'
4960: 29 29 20 7b 0a 2b 09 20 20 20 20 70 2b 2b 3b 20 )) {.+. p++;
4970: 6c 65 6e 67 74 68 2d 2d 3b 0a 2b 09 7d 0a 2b 09 length--;.+.}.+.
4980: 6f 70 49 64 78 20 3d 20 54 63 6c 50 61 72 73 65 opIdx = TclParse
4990: 49 6e 74 65 67 65 72 28 70 2c 20 6c 65 6e 67 74 Integer(p, lengt
49a0: 68 29 20 2b 20 28 69 6e 74 29 20 28 70 2d 62 79 h) + (int) (p-by
49b0: 74 65 73 29 3b 0a 2b 09 69 66 20 28 6f 70 49 64 tes);.+.if (opId
49c0: 78 29 20 7b 0a 2b 09 20 20 20 20 69 6e 74 20 63 x) {.+. int c
49d0: 6f 64 65 2c 20 66 69 72 73 74 2c 20 73 65 63 6f ode, first, seco
49e0: 6e 64 3b 0a 2b 09 20 20 20 20 63 68 61 72 20 73 nd;.+. char s
49f0: 61 76 65 64 4f 70 20 3d 20 62 79 74 65 73 5b 6f avedOp = bytes[o
4a00: 70 49 64 78 5d 3b 0a 2b 09 20 20 20 20 69 66 20 pIdx];.+. if
4a10: 28 28 73 61 76 65 64 4f 70 20 21 3d 20 27 2b 27 ((savedOp != '+'
4a20: 29 20 26 26 20 28 73 61 76 65 64 4f 70 20 21 3d ) && (savedOp !=
4a30: 20 27 2d 27 29 29 20 7b 0a 2b 09 09 67 6f 74 6f '-')) {.+..goto
4a40: 20 70 61 72 73 65 45 72 72 6f 72 3b 0a 2b 09 20 parseError;.+.
4a50: 20 20 20 7d 0a 2b 09 20 20 20 20 69 66 20 28 69 }.+. if (i
4a60: 73 73 70 61 63 65 28 55 43 48 41 52 28 62 79 74 sspace(UCHAR(byt
4a70: 65 73 5b 6f 70 49 64 78 2b 31 5d 29 29 29 20 7b es[opIdx+1]))) {
4a80: 0a 2b 09 09 67 6f 74 6f 20 70 61 72 73 65 45 72 .+..goto parseEr
4a90: 72 6f 72 3b 0a 2b 09 20 20 20 20 7d 0a 2b 09 20 ror;.+. }.+.
4aa0: 20 20 20 62 79 74 65 73 5b 6f 70 49 64 78 5d 20 bytes[opIdx]
4ab0: 3d 20 27 5c 30 27 3b 0a 2b 09 20 20 20 20 63 6f = '\0';.+. co
4ac0: 64 65 20 3d 20 54 63 6c 5f 47 65 74 49 6e 74 28 de = Tcl_GetInt(
4ad0: 69 6e 74 65 72 70 2c 20 62 79 74 65 73 2c 20 26 interp, bytes, &
4ae0: 66 69 72 73 74 29 3b 0a 2b 09 20 20 20 20 62 79 first);.+. by
4af0: 74 65 73 5b 6f 70 49 64 78 5d 20 3d 20 73 61 76 tes[opIdx] = sav
4b00: 65 64 4f 70 3b 0a 2b 09 20 20 20 20 69 66 20 28 edOp;.+. if (
4b10: 63 6f 64 65 20 3d 3d 20 54 43 4c 5f 45 52 52 4f code == TCL_ERRO
4b20: 52 29 20 20 7b 0a 2b 09 09 67 6f 74 6f 20 70 61 R) {.+..goto pa
4b30: 72 73 65 45 72 72 6f 72 3b 0a 2b 09 20 20 20 20 rseError;.+.
4b40: 7d 0a 2b 09 20 20 20 20 69 66 20 28 54 43 4c 5f }.+. if (TCL_
4b50: 45 52 52 4f 52 20 3d 3d 20 54 63 6c 5f 47 65 74 ERROR == Tcl_Get
4b60: 49 6e 74 28 69 6e 74 65 72 70 2c 20 62 79 74 65 Int(interp, byte
4b70: 73 2b 6f 70 49 64 78 2b 31 2c 20 26 73 65 63 6f s+opIdx+1, &seco
4b80: 6e 64 29 29 20 20 7b 0a 2b 09 09 67 6f 74 6f 20 nd)) {.+..goto
4b90: 70 61 72 73 65 45 72 72 6f 72 3b 0a 2b 09 20 20 parseError;.+.
4ba0: 20 20 7d 0a 2b 09 20 20 20 20 69 66 20 28 73 61 }.+. if (sa
4bb0: 76 65 64 4f 70 20 3d 3d 20 27 2b 27 29 20 7b 0a vedOp == '+') {.
4bc0: 2b 09 09 2a 69 6e 64 65 78 50 74 72 20 3d 20 66 +..*indexPtr = f
4bd0: 69 72 73 74 20 2b 20 73 65 63 6f 6e 64 3b 0a 2b irst + second;.+
4be0: 09 20 20 20 20 7d 20 65 6c 73 65 20 7b 0a 2b 09 . } else {.+.
4bf0: 09 2a 69 6e 64 65 78 50 74 72 20 3d 20 66 69 72 .*indexPtr = fir
4c00: 73 74 20 2d 20 73 65 63 6f 6e 64 3b 0a 2b 09 20 st - second;.+.
4c10: 20 20 20 7d 0a 2b 09 20 20 20 20 72 65 74 75 72 }.+. retur
4c20: 6e 20 54 43 4c 5f 4f 4b 3b 0a 2b 09 7d 0a 2b 0a n TCL_OK;.+.}.+.
4c30: 20 09 2f 2a 0a 20 09 20 2a 20 52 65 70 6f 72 74 ./*. . * Report
4c40: 20 61 20 70 61 72 73 65 20 65 72 72 6f 72 2e 0a a parse error..
4c50: 20 09 20 2a 2f 0a 20 0a 2b 70 61 72 73 65 45 72 . */. .+parseEr
4c60: 72 6f 72 3a 0a 20 09 69 66 20 28 69 6e 74 65 72 ror:. .if (inter
4c70: 70 20 21 3d 20 4e 55 4c 4c 29 20 7b 0a 20 09 20 p != NULL) {. .
4c80: 20 20 20 63 68 61 72 20 2a 62 79 74 65 73 20 3d char *bytes =
4c90: 20 54 63 6c 5f 47 65 74 53 74 72 69 6e 67 28 6f Tcl_GetString(o
4ca0: 62 6a 50 74 72 29 3b 0a 20 09 20 20 20 20 2f 2a bjPtr);. . /*
4cb0: 0a 40 40 20 2d 32 33 32 36 2c 37 20 2b 32 33 36 .@@ -2326,7 +236
4cc0: 36 2c 38 20 40 40 0a 20 09 20 20 20 20 20 2a 2f 6,8 @@. . */
4cd0: 0a 20 09 20 20 20 20 54 63 6c 5f 52 65 73 65 74 . . Tcl_Reset
4ce0: 52 65 73 75 6c 74 28 69 6e 74 65 72 70 29 3b 0a Result(interp);.
4cf0: 20 09 20 20 20 20 54 63 6c 5f 41 70 70 65 6e 64 . Tcl_Append
4d00: 52 65 73 75 6c 74 28 69 6e 74 65 72 70 2c 20 22 Result(interp, "
4d10: 62 61 64 20 69 6e 64 65 78 20 5c 22 22 2c 20 62 bad index \"", b
4d20: 79 74 65 73 2c 0a 2d 09 09 20 20 20 20 22 5c 22 ytes,.-.. "\"
4d30: 3a 20 6d 75 73 74 20 62 65 20 69 6e 74 65 67 65 : must be intege
4d40: 72 20 6f 72 20 65 6e 64 3f 2d 69 6e 74 65 67 65 r or end?-intege
4d50: 72 3f 22 2c 20 28 63 68 61 72 20 2a 29 20 4e 55 r?", (char *) NU
4d60: 4c 4c 29 3b 0a 2b 09 09 20 20 20 20 22 5c 22 3a LL);.+.. "\":
4d70: 20 6d 75 73 74 20 62 65 20 69 6e 74 65 67 65 72 must be integer
4d80: 3f 5b 2b 2d 5d 69 6e 74 65 67 65 72 3f 20 6f 72 ?[+-]integer? or
4d90: 20 65 6e 64 3f 5b 2b 2d 5d 69 6e 74 65 67 65 72 end?[+-]integer
4da0: 3f 22 2c 0a 2b 09 09 20 20 20 20 28 63 68 61 72 ?",.+.. (char
4db0: 20 2a 29 20 4e 55 4c 4c 29 3b 0a 20 09 20 20 20 *) NULL);. .
4dc0: 20 69 66 20 28 21 73 74 72 6e 63 6d 70 28 62 79 if (!strncmp(by
4dd0: 74 65 73 2c 20 22 65 6e 64 2d 22 2c 20 33 29 29 tes, "end-", 3))
4de0: 20 7b 0a 20 09 09 62 79 74 65 73 20 2b 3d 20 33 {. ..bytes += 3
4df0: 3b 0a 20 09 20 20 20 20 7d 0a 40 40 20 2d 32 33 ;. . }.@@ -23
4e00: 38 33 2c 37 20 2b 32 34 32 34 2c 37 20 40 40 0a 83,7 +2424,7 @@.
4e10: 20 20 2a 0a 20 20 2a 20 53 65 74 45 6e 64 4f 66 *. * SetEndOf
4e20: 66 73 65 74 46 72 6f 6d 41 6e 79 20 2d 2d 0a 20 fsetFromAny --.
4e30: 20 2a 0a 2d 20 2a 09 4c 6f 6f 6b 20 66 6f 72 20 *.- *.Look for
4e40: 61 20 73 74 72 69 6e 67 20 6f 66 20 74 68 65 20 a string of the
4e50: 66 6f 72 6d 20 22 65 6e 64 2d 6f 66 66 73 65 74 form "end-offset
4e60: 22 20 61 6e 64 20 63 6f 6e 76 65 72 74 20 69 74 " and convert it
4e70: 0a 2b 20 2a 09 4c 6f 6f 6b 20 66 6f 72 20 61 20 .+ *.Look for a
4e80: 73 74 72 69 6e 67 20 6f 66 20 74 68 65 20 66 6f string of the fo
4e90: 72 6d 20 22 65 6e 64 5b 2b 2d 5d 6f 66 66 73 65 rm "end[+-]offse
4ea0: 74 22 20 61 6e 64 20 63 6f 6e 76 65 72 74 20 69 t" and convert i
4eb0: 74 0a 20 20 2a 09 74 6f 20 61 6e 20 69 6e 74 65 t. *.to an inte
4ec0: 72 6e 61 6c 20 72 65 70 72 65 73 65 6e 74 61 74 rnal representat
4ed0: 69 6f 6e 20 68 6f 6c 64 69 6e 67 20 74 68 65 20 ion holding the
4ee0: 6f 66 66 73 65 74 2e 0a 20 20 2a 0a 20 20 2a 20 offset.. *. *
4ef0: 52 65 73 75 6c 74 73 3a 0a 40 40 20 2d 32 34 31 Results:.@@ -241
4f00: 39 2c 37 20 2b 32 34 36 30 2c 37 20 40 40 0a 20 9,7 +2460,7 @@.
4f10: 09 69 66 20 28 69 6e 74 65 72 70 20 21 3d 20 4e .if (interp != N
4f20: 55 4c 4c 29 20 7b 0a 20 09 20 20 20 20 54 63 6c ULL) {. . Tcl
4f30: 5f 52 65 73 65 74 52 65 73 75 6c 74 28 69 6e 74 _ResetResult(int
4f40: 65 72 70 29 3b 0a 20 09 20 20 20 20 54 63 6c 5f erp);. . Tcl_
4f50: 41 70 70 65 6e 64 52 65 73 75 6c 74 28 69 6e 74 AppendResult(int
4f60: 65 72 70 2c 20 22 62 61 64 20 69 6e 64 65 78 20 erp, "bad index
4f70: 5c 22 22 2c 20 62 79 74 65 73 2c 0a 2d 09 09 20 \"", bytes,.-..
4f80: 20 20 20 22 5c 22 3a 20 6d 75 73 74 20 62 65 20 "\": must be
4f90: 65 6e 64 3f 2d 69 6e 74 65 67 65 72 3f 22 2c 20 end?-integer?",
4fa0: 28 63 68 61 72 2a 29 20 4e 55 4c 4c 29 3b 0a 2b (char*) NULL);.+
4fb0: 09 09 20 20 20 20 22 5c 22 3a 20 6d 75 73 74 20 .. "\": must
4fc0: 62 65 20 65 6e 64 3f 5b 2b 2d 5d 69 6e 74 65 67 be end?[+-]integ
4fd0: 65 72 3f 22 2c 20 28 63 68 61 72 2a 29 20 4e 55 er?", (char*) NU
4fe0: 4c 4c 29 3b 0a 20 09 7d 0a 20 09 72 65 74 75 72 LL);. .}. .retur
4ff0: 6e 20 54 43 4c 5f 45 52 52 4f 52 3b 0a 20 20 20 n TCL_ERROR;.
5000: 20 20 7d 0a 40 40 20 2d 32 34 32 38 2c 31 35 20 }.@@ -2428,15
5010: 2b 32 34 36 39 2c 32 30 20 40 40 0a 20 0a 20 20 +2469,20 @@. .
5020: 20 20 20 69 66 20 28 6c 65 6e 67 74 68 20 3c 3d if (length <=
5030: 20 33 29 20 7b 0a 20 09 6f 66 66 73 65 74 20 3d 3) {. .offset =
5040: 20 30 3b 0a 2d 20 20 20 20 7d 20 65 6c 73 65 20 0;.- } else
5050: 69 66 20 28 28 6c 65 6e 67 74 68 20 3e 20 34 29 if ((length > 4)
5060: 20 26 26 20 28 62 79 74 65 73 5b 33 5d 20 3d 3d && (bytes[3] ==
5070: 20 27 2d 27 29 29 20 7b 0a 2b 20 20 20 20 7d 20 '-')) {.+ }
5080: 65 6c 73 65 20 69 66 20 28 28 6c 65 6e 67 74 68 else if ((length
5090: 20 3e 20 34 29 20 26 26 20 28 28 62 79 74 65 73 > 4) && ((bytes
50a0: 5b 33 5d 20 3d 3d 20 27 2d 27 29 20 7c 7c 20 28 [3] == '-') || (
50b0: 62 79 74 65 73 5b 33 5d 20 3d 3d 20 27 2b 27 29 bytes[3] == '+')
50c0: 29 29 20 7b 0a 20 09 2f 2a 0a 20 09 20 2a 20 54 )) {. ./*. . * T
50d0: 68 69 73 20 69 73 20 6f 75 72 20 6c 69 6d 69 74 his is our limit
50e0: 65 64 20 73 74 72 69 6e 67 20 65 78 70 72 65 73 ed string expres
50f0: 73 69 6f 6e 20 65 76 61 6c 75 61 74 6f 72 2e 20 sion evaluator.
5100: 20 50 61 73 73 20 65 76 65 72 79 74 68 69 6e 67 Pass everything
5110: 0a 20 09 20 2a 20 61 66 74 65 72 20 22 65 6e 64 . . * after "end
5120: 2d 22 20 74 6f 20 54 63 6c 5f 47 65 74 49 6e 74 -" to Tcl_GetInt
5130: 2c 20 74 68 65 6e 20 72 65 76 65 72 73 65 20 66 , then reverse f
5140: 6f 72 20 6f 66 66 73 65 74 2e 0a 20 09 20 2a 2f or offset.. . */
5150: 0a 2b 09 69 66 20 28 69 73 73 70 61 63 65 28 55 .+.if (isspace(U
5160: 43 48 41 52 28 62 79 74 65 73 5b 34 5d 29 29 29 CHAR(bytes[4])))
5170: 20 7b 0a 2b 09 20 20 20 20 72 65 74 75 72 6e 20 {.+. return
5180: 54 43 4c 5f 45 52 52 4f 52 3b 0a 2b 09 7d 0a 20 TCL_ERROR;.+.}.
5190: 09 69 66 20 28 54 63 6c 5f 47 65 74 49 6e 74 28 .if (Tcl_GetInt(
51a0: 69 6e 74 65 72 70 2c 20 62 79 74 65 73 2b 34 2c interp, bytes+4,
51b0: 20 26 6f 66 66 73 65 74 29 20 21 3d 20 54 43 4c &offset) != TCL
51c0: 5f 4f 4b 29 20 7b 0a 20 09 20 20 20 20 72 65 74 _OK) {. . ret
51d0: 75 72 6e 20 54 43 4c 5f 45 52 52 4f 52 3b 0a 20 urn TCL_ERROR;.
51e0: 09 7d 0a 2d 09 6f 66 66 73 65 74 20 3d 20 2d 6f .}.-.offset = -o
51f0: 66 66 73 65 74 3b 0a 2b 09 69 66 20 28 62 79 74 ffset;.+.if (byt
5200: 65 73 5b 33 5d 20 3d 3d 20 27 2d 27 29 20 7b 0a es[3] == '-') {.
5210: 2b 09 20 20 20 20 6f 66 66 73 65 74 20 3d 20 2d +. offset = -
5220: 6f 66 66 73 65 74 3b 0a 2b 09 7d 0a 20 20 20 20 offset;.+.}.
5230: 20 7d 20 65 6c 73 65 20 7b 0a 20 09 2f 2a 0a 20 } else {. ./*.
5240: 09 20 2a 20 43 6f 6e 76 65 72 73 69 6f 6e 20 66 . * Conversion f
5250: 61 69 6c 65 64 2e 20 20 52 65 70 6f 72 74 20 74 ailed. Report t
5260: 68 65 20 65 72 72 6f 72 2e 0a 40 40 20 2d 32 34 he error..@@ -24
5270: 34 34 2c 37 20 2b 32 34 39 30 2c 37 20 40 40 0a 44,7 +2490,7 @@.
5280: 20 09 69 66 20 28 69 6e 74 65 72 70 20 21 3d 20 .if (interp !=
5290: 4e 55 4c 4c 29 20 7b 0a 20 09 20 20 20 20 54 63 NULL) {. . Tc
52a0: 6c 5f 52 65 73 65 74 52 65 73 75 6c 74 28 69 6e l_ResetResult(in
52b0: 74 65 72 70 29 3b 0a 20 09 20 20 20 20 54 63 6c terp);. . Tcl
52c0: 5f 41 70 70 65 6e 64 52 65 73 75 6c 74 28 69 6e _AppendResult(in
52d0: 74 65 72 70 2c 20 22 62 61 64 20 69 6e 64 65 78 terp, "bad index
52e0: 20 5c 22 22 2c 20 62 79 74 65 73 2c 0a 2d 09 09 \"", bytes,.-..
52f0: 20 20 20 20 22 5c 22 3a 20 6d 75 73 74 20 62 65 "\": must be
5300: 20 69 6e 74 65 67 65 72 20 6f 72 20 65 6e 64 3f integer or end?
5310: 2d 69 6e 74 65 67 65 72 3f 22 2c 20 28 63 68 61 -integer?", (cha
5320: 72 20 2a 29 20 4e 55 4c 4c 29 3b 0a 2b 09 09 20 r *) NULL);.+..
5330: 20 20 20 22 5c 22 3a 20 6d 75 73 74 20 62 65 20 "\": must be
5340: 65 6e 64 3f 5b 2b 2d 5d 69 6e 74 65 67 65 72 3f end?[+-]integer?
5350: 22 2c 20 28 63 68 61 72 20 2a 29 20 4e 55 4c 4c ", (char *) NULL
5360: 29 3b 0a 20 09 7d 0a 20 09 72 65 74 75 72 6e 20 );. .}. .return
5370: 54 43 4c 5f 45 52 52 4f 52 3b 0a 20 20 20 20 20 TCL_ERROR;.
5380: 7d 0a 49 6e 64 65 78 3a 20 74 65 73 74 73 2f 63 }.Index: tests/c
5390: 6d 64 49 4c 2e 74 65 73 74 0a 3d 3d 3d 3d 3d 3d mdIL.test.======
53a0: 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d ================
53b0: 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d ================
53c0: 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d ================
53d0: 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 0a 52 43 =============.RC
53e0: 53 20 66 69 6c 65 3a 20 2f 63 76 73 72 6f 6f 74 S file: /cvsroot
53f0: 2f 74 63 6c 2f 74 63 6c 2f 74 65 73 74 73 2f 63 /tcl/tcl/tests/c
5400: 6d 64 49 4c 2e 74 65 73 74 2c 76 0a 72 65 74 72 mdIL.test,v.retr
5410: 69 65 76 69 6e 67 20 72 65 76 69 73 69 6f 6e 20 ieving revision
5420: 31 2e 32 33 0a 64 69 66 66 20 2d 75 20 2d 72 31 1.23.diff -u -r1
5430: 2e 32 33 20 63 6d 64 49 4c 2e 74 65 73 74 0a 2d .23 cmdIL.test.-
5440: 2d 2d 20 74 65 73 74 73 2f 63 6d 64 49 4c 2e 74 -- tests/cmdIL.t
5450: 65 73 74 09 31 34 20 4f 63 74 20 32 30 30 34 20 est.14 Oct 2004
5460: 31 37 3a 32 30 3a 31 31 20 2d 30 30 30 30 09 31 17:20:11 -0000.1
5470: 2e 32 33 0a 2b 2b 2b 20 74 65 73 74 73 2f 63 6d .23.+++ tests/cm
5480: 64 49 4c 2e 74 65 73 74 09 32 39 20 41 70 72 20 dIL.test.29 Apr
5490: 32 30 30 35 20 32 30 3a 33 30 3a 34 31 20 2d 30 2005 20:30:41 -0
54a0: 30 30 30 0a 40 40 20 2d 35 39 2c 37 20 2b 35 39 000.@@ -59,7 +59
54b0: 2c 37 20 40 40 0a 20 7d 20 7b 31 20 7b 22 2d 69 ,7 @@. } {1 {"-i
54c0: 6e 64 65 78 22 20 6f 70 74 69 6f 6e 20 6d 75 73 ndex" option mus
54d0: 74 20 62 65 20 66 6f 6c 6c 6f 77 65 64 20 62 79 t be followed by
54e0: 20 6c 69 73 74 20 69 6e 64 65 78 7d 7d 0a 20 74 list index}}. t
54f0: 65 73 74 20 63 6d 64 49 4c 2d 31 2e 31 32 20 7b est cmdIL-1.12 {
5500: 54 63 6c 5f 4c 73 6f 72 74 4f 62 6a 43 6d 64 20 Tcl_LsortObjCmd
5510: 70 72 6f 63 65 64 75 72 65 2c 20 2d 69 6e 64 65 procedure, -inde
5520: 78 20 6f 70 74 69 6f 6e 7d 20 7b 0a 20 20 20 20 x option} {.
5530: 20 6c 69 73 74 20 5b 63 61 74 63 68 20 7b 6c 73 list [catch {ls
5540: 6f 72 74 20 2d 69 6e 64 65 78 20 66 6f 6f 20 7b ort -index foo {
5550: 31 20 33 20 32 20 35 7d 7d 20 6d 73 67 5d 20 24 1 3 2 5}} msg] $
5560: 6d 73 67 0a 2d 7d 20 7b 31 20 7b 62 61 64 20 69 msg.-} {1 {bad i
5570: 6e 64 65 78 20 22 66 6f 6f 22 3a 20 6d 75 73 74 ndex "foo": must
5580: 20 62 65 20 69 6e 74 65 67 65 72 20 6f 72 20 65 be integer or e
5590: 6e 64 3f 2d 69 6e 74 65 67 65 72 3f 7d 7d 0a 2b nd?-integer?}}.+
55a0: 7d 20 7b 31 20 7b 62 61 64 20 69 6e 64 65 78 20 } {1 {bad index
55b0: 22 66 6f 6f 22 3a 20 6d 75 73 74 20 62 65 20 69 "foo": must be i
55c0: 6e 74 65 67 65 72 3f 5b 2b 2d 5d 69 6e 74 65 67 nteger?[+-]integ
55d0: 65 72 3f 20 6f 72 20 65 6e 64 3f 5b 2b 2d 5d 69 er? or end?[+-]i
55e0: 6e 74 65 67 65 72 3f 7d 7d 0a 20 74 65 73 74 20 nteger?}}. test
55f0: 63 6d 64 49 4c 2d 31 2e 31 33 20 7b 54 63 6c 5f cmdIL-1.13 {Tcl_
5600: 4c 73 6f 72 74 4f 62 6a 43 6d 64 20 70 72 6f 63 LsortObjCmd proc
5610: 65 64 75 72 65 2c 20 2d 69 6e 64 65 78 20 6f 70 edure, -index op
5620: 74 69 6f 6e 7d 20 7b 0a 20 20 20 20 20 6c 73 6f tion} {. lso
5630: 72 74 20 2d 69 6e 64 65 78 20 65 6e 64 20 2d 69 rt -index end -i
5640: 6e 74 65 67 65 72 20 7b 7b 32 20 32 35 7d 20 7b nteger {{2 25} {
5650: 31 30 20 32 30 20 35 30 20 31 30 30 7d 20 7b 33 10 20 50 100} {3
5660: 20 31 36 20 34 32 7d 20 31 7d 0a 20 7d 20 7b 31 16 42} 1}. } {1
5670: 20 7b 32 20 32 35 7d 20 7b 33 20 31 36 20 34 32 {2 25} {3 16 42
5680: 7d 20 7b 31 30 20 32 30 20 35 30 20 31 30 30 7d } {10 20 50 100}
5690: 7d 0a 49 6e 64 65 78 3a 20 74 65 73 74 73 2f 63 }.Index: tests/c
56a0: 6f 6d 70 69 6c 65 2e 74 65 73 74 0a 3d 3d 3d 3d ompile.test.====
56b0: 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d ================
56c0: 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d ================
56d0: 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d ================
56e0: 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 0a ===============.
56f0: 52 43 53 20 66 69 6c 65 3a 20 2f 63 76 73 72 6f RCS file: /cvsro
5700: 6f 74 2f 74 63 6c 2f 74 63 6c 2f 74 65 73 74 73 ot/tcl/tcl/tests
5710: 2f 63 6f 6d 70 69 6c 65 2e 74 65 73 74 2c 76 0a /compile.test,v.
5720: 72 65 74 72 69 65 76 69 6e 67 20 72 65 76 69 73 retrieving revis
5730: 69 6f 6e 20 31 2e 33 36 0a 64 69 66 66 20 2d 75 ion 1.36.diff -u
5740: 20 2d 72 31 2e 33 36 20 63 6f 6d 70 69 6c 65 2e -r1.36 compile.
5750: 74 65 73 74 0a 2d 2d 2d 20 74 65 73 74 73 2f 63 test.--- tests/c
5760: 6f 6d 70 69 6c 65 2e 74 65 73 74 09 31 34 20 4a ompile.test.14 J
5770: 61 6e 20 32 30 30 35 20 31 35 3a 32 37 3a 35 33 an 2005 15:27:53
5780: 20 2d 30 30 30 30 09 31 2e 33 36 0a 2b 2b 2b 20 -0000.1.36.+++
5790: 74 65 73 74 73 2f 63 6f 6d 70 69 6c 65 2e 74 65 tests/compile.te
57a0: 73 74 09 32 39 20 41 70 72 20 32 30 30 35 20 32 st.29 Apr 2005 2
57b0: 30 3a 33 30 3a 34 31 20 2d 30 30 30 30 0a 40 40 0:30:41 -0000.@@
57c0: 20 2d 32 33 36 2c 31 35 20 2b 32 33 36 2c 31 35 -236,15 +236,15
57d0: 20 40 40 0a 20 09 6c 69 6e 64 65 78 20 61 20 62 @@. .lindex a b
57e0: 6f 67 75 73 0a 20 20 20 20 20 7d 0a 20 20 20 20 ogus. }.
57f0: 20 6c 69 73 74 20 5b 63 61 74 63 68 20 7b 70 7d list [catch {p}
5800: 20 6d 73 67 5d 20 24 6d 73 67 0a 2d 7d 20 7b 31 msg] $msg.-} {1
5810: 20 7b 62 61 64 20 69 6e 64 65 78 20 22 62 6f 67 {bad index "bog
5820: 75 73 22 3a 20 6d 75 73 74 20 62 65 20 69 6e 74 us": must be int
5830: 65 67 65 72 20 6f 72 20 65 6e 64 3f 2d 69 6e 74 eger or end?-int
5840: 65 67 65 72 3f 7d 7d 0a 2b 7d 20 7b 31 20 7b 62 eger?}}.+} {1 {b
5850: 61 64 20 69 6e 64 65 78 20 22 62 6f 67 75 73 22 ad index "bogus"
5860: 3a 20 6d 75 73 74 20 62 65 20 69 6e 74 65 67 65 : must be intege
5870: 72 3f 5b 2b 2d 5d 69 6e 74 65 67 65 72 3f 20 6f r?[+-]integer? o
5880: 72 20 65 6e 64 3f 5b 2b 2d 5d 69 6e 74 65 67 65 r end?[+-]intege
5890: 72 3f 7d 7d 0a 20 74 65 73 74 20 63 6f 6d 70 69 r?}}. test compi
58a0: 6c 65 2d 31 31 2e 32 20 7b 54 63 6c 5f 41 70 70 le-11.2 {Tcl_App
58b0: 65 6e 64 2a 3a 20 65 6e 73 75 72 65 20 54 63 6c end*: ensure Tcl
58c0: 5f 52 65 73 65 74 52 65 73 75 6c 74 20 69 73 20 _ResetResult is
58d0: 75 73 65 64 20 70 72 6f 70 65 72 6c 79 7d 20 7b used properly} {
58e0: 0a 20 20 20 20 20 70 72 6f 63 20 70 20 7b 7d 20 . proc p {}
58f0: 7b 20 73 65 74 20 72 20 5b 6c 69 73 74 20 66 6f { set r [list fo
5900: 6f 62 61 72 5d 20 3b 20 73 74 72 69 6e 67 20 69 obar] ; string i
5910: 6e 64 65 78 20 61 20 62 6f 67 75 73 20 7d 0a 20 ndex a bogus }.
5920: 20 20 20 20 6c 69 73 74 20 5b 63 61 74 63 68 20 list [catch
5930: 7b 70 7d 20 6d 73 67 5d 20 24 6d 73 67 0a 2d 7d {p} msg] $msg.-}
5940: 20 7b 31 20 7b 62 61 64 20 69 6e 64 65 78 20 22 {1 {bad index "
5950: 62 6f 67 75 73 22 3a 20 6d 75 73 74 20 62 65 20 bogus": must be
5960: 69 6e 74 65 67 65 72 20 6f 72 20 65 6e 64 3f 2d integer or end?-
5970: 69 6e 74 65 67 65 72 3f 7d 7d 0a 2b 7d 20 7b 31 integer?}}.+} {1
5980: 20 7b 62 61 64 20 69 6e 64 65 78 20 22 62 6f 67 {bad index "bog
5990: 75 73 22 3a 20 6d 75 73 74 20 62 65 20 69 6e 74 us": must be int
59a0: 65 67 65 72 3f 5b 2b 2d 5d 69 6e 74 65 67 65 72 eger?[+-]integer
59b0: 3f 20 6f 72 20 65 6e 64 3f 5b 2b 2d 5d 69 6e 74 ? or end?[+-]int
59c0: 65 67 65 72 3f 7d 7d 0a 20 74 65 73 74 20 63 6f eger?}}. test co
59d0: 6d 70 69 6c 65 2d 31 31 2e 33 20 7b 54 63 6c 5f mpile-11.3 {Tcl_
59e0: 41 70 70 65 6e 64 2a 3a 20 65 6e 73 75 72 65 20 Append*: ensure
59f0: 54 63 6c 5f 52 65 73 65 74 52 65 73 75 6c 74 20 Tcl_ResetResult
5a00: 69 73 20 75 73 65 64 20 70 72 6f 70 65 72 6c 79 is used properly
5a10: 7d 20 7b 0a 20 20 20 20 20 70 72 6f 63 20 70 20 } {. proc p
5a20: 7b 7d 20 7b 20 73 65 74 20 72 20 5b 6c 69 73 74 {} { set r [list
5a30: 20 66 6f 6f 62 61 72 5d 20 3b 20 73 74 72 69 6e foobar] ; strin
5a40: 67 20 69 6e 64 65 78 20 61 20 30 39 20 7d 0a 20 g index a 09 }.
5a50: 20 20 20 20 6c 69 73 74 20 5b 63 61 74 63 68 20 list [catch
5a60: 7b 70 7d 20 6d 73 67 5d 20 24 6d 73 67 0a 2d 7d {p} msg] $msg.-}
5a70: 20 7b 31 20 7b 62 61 64 20 69 6e 64 65 78 20 22 {1 {bad index "
5a80: 30 39 22 3a 20 6d 75 73 74 20 62 65 20 69 6e 74 09": must be int
5a90: 65 67 65 72 20 6f 72 20 65 6e 64 3f 2d 69 6e 74 eger or end?-int
5aa0: 65 67 65 72 3f 20 28 6c 6f 6f 6b 73 20 6c 69 6b eger? (looks lik
5ab0: 65 20 69 6e 76 61 6c 69 64 20 6f 63 74 61 6c 20 e invalid octal
5ac0: 6e 75 6d 62 65 72 29 7d 7d 0a 2b 7d 20 7b 31 20 number)}}.+} {1
5ad0: 7b 62 61 64 20 69 6e 64 65 78 20 22 30 39 22 3a {bad index "09":
5ae0: 20 6d 75 73 74 20 62 65 20 69 6e 74 65 67 65 72 must be integer
5af0: 3f 5b 2b 2d 5d 69 6e 74 65 67 65 72 3f 20 6f 72 ?[+-]integer? or
5b00: 20 65 6e 64 3f 5b 2b 2d 5d 69 6e 74 65 67 65 72 end?[+-]integer
5b10: 3f 20 28 6c 6f 6f 6b 73 20 6c 69 6b 65 20 69 6e ? (looks like in
5b20: 76 61 6c 69 64 20 6f 63 74 61 6c 20 6e 75 6d 62 valid octal numb
5b30: 65 72 29 7d 7d 0a 20 74 65 73 74 20 63 6f 6d 70 er)}}. test comp
5b40: 69 6c 65 2d 31 31 2e 34 20 7b 54 63 6c 5f 41 70 ile-11.4 {Tcl_Ap
5b50: 70 65 6e 64 2a 3a 20 65 6e 73 75 72 65 20 54 63 pend*: ensure Tc
5b60: 6c 5f 52 65 73 65 74 52 65 73 75 6c 74 20 69 73 l_ResetResult is
5b70: 20 75 73 65 64 20 70 72 6f 70 65 72 6c 79 7d 20 used properly}
5b80: 7b 0a 20 20 20 20 20 70 72 6f 63 20 70 20 7b 7d {. proc p {}
5b90: 20 7b 20 73 65 74 20 72 20 5b 6c 69 73 74 20 66 { set r [list f
5ba0: 6f 6f 62 61 72 5d 20 3b 20 61 72 72 61 79 20 73 oobar] ; array s
5bb0: 65 74 20 76 61 72 20 7b 6f 6e 65 20 74 77 6f 20 et var {one two
5bc0: 6d 61 6e 79 7d 20 7d 0a 20 20 20 20 20 6c 69 73 many} }. lis
5bd0: 74 20 5b 63 61 74 63 68 20 7b 70 7d 20 6d 73 67 t [catch {p} msg
5be0: 5d 20 24 6d 73 67 0a 49 6e 64 65 78 3a 20 74 65 ] $msg.Index: te
5bf0: 73 74 73 2f 6c 69 6e 64 65 78 2e 74 65 73 74 0a sts/lindex.test.
5c00: 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d ================
5c10: 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d ================
5c20: 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d ================
5c30: 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d ================
5c40: 3d 3d 3d 0a 52 43 53 20 66 69 6c 65 3a 20 2f 63 ===.RCS file: /c
5c50: 76 73 72 6f 6f 74 2f 74 63 6c 2f 74 63 6c 2f 74 vsroot/tcl/tcl/t
5c60: 65 73 74 73 2f 6c 69 6e 64 65 78 2e 74 65 73 74 ests/lindex.test
5c70: 2c 76 0a 72 65 74 72 69 65 76 69 6e 67 20 72 65 ,v.retrieving re
5c80: 76 69 73 69 6f 6e 20 31 2e 31 31 0a 64 69 66 66 vision 1.11.diff
5c90: 20 2d 75 20 2d 72 31 2e 31 31 20 6c 69 6e 64 65 -u -r1.11 linde
5ca0: 78 2e 74 65 73 74 0a 2d 2d 2d 20 74 65 73 74 73 x.test.--- tests
5cb0: 2f 6c 69 6e 64 65 78 2e 74 65 73 74 09 31 34 20 /lindex.test.14
5cc0: 4e 6f 76 20 32 30 30 33 20 32 30 3a 34 34 3a 34 Nov 2003 20:44:4
5cd0: 36 20 2d 30 30 30 30 09 31 2e 31 31 0a 2b 2b 2b 6 -0000.1.11.+++
5ce0: 20 74 65 73 74 73 2f 6c 69 6e 64 65 78 2e 74 65 tests/lindex.te
5cf0: 73 74 09 32 39 20 41 70 72 20 32 30 30 35 20 32 st.29 Apr 2005 2
5d00: 30 3a 33 30 3a 34 31 20 2d 30 30 30 30 0a 40 40 0:30:41 -0000.@@
5d10: 20 2d 34 39 2c 37 20 2b 34 39 2c 37 20 40 40 0a -49,7 +49,7 @@.
5d20: 20 74 65 73 74 20 6c 69 6e 64 65 78 2d 32 2e 34 test lindex-2.4
5d30: 20 7b 6d 61 6c 66 6f 72 6d 65 64 20 69 6e 64 65 {malformed inde
5d40: 78 20 6c 69 73 74 7d 20 74 65 73 74 65 76 61 6c x list} testeval
5d50: 65 78 20 7b 0a 20 20 20 20 20 73 65 74 20 78 20 ex {. set x
5d60: 5c 7b 0a 20 20 20 20 20 6c 69 73 74 20 5b 63 61 \{. list [ca
5d70: 74 63 68 20 7b 20 74 65 73 74 65 76 61 6c 65 78 tch { testevalex
5d80: 20 7b 6c 69 6e 64 65 78 20 7b 61 20 62 20 63 7d {lindex {a b c}
5d90: 20 24 78 7d 20 7d 20 72 65 73 75 6c 74 5d 20 24 $x} } result] $
5da0: 72 65 73 75 6c 74 0a 2d 7d 20 7b 31 20 62 61 64 result.-} {1 bad
5db0: 5c 20 69 6e 64 65 78 5c 20 5c 22 5c 7b 5c 22 3a \ index\ \"\{\":
5dc0: 5c 20 6d 75 73 74 5c 20 62 65 5c 20 69 6e 74 65 \ must\ be\ inte
5dd0: 67 65 72 5c 20 6f 72 5c 20 65 6e 64 3f 2d 69 6e ger\ or\ end?-in
5de0: 74 65 67 65 72 3f 7d 0a 2b 7d 20 7b 31 20 62 61 teger?}.+} {1 ba
5df0: 64 5c 20 69 6e 64 65 78 5c 20 5c 22 5c 7b 5c 22 d\ index\ \"\{\"
5e00: 3a 5c 20 6d 75 73 74 5c 20 62 65 5c 20 69 6e 74 :\ must\ be\ int
5e10: 65 67 65 72 3f 5c 5b 2b 2d 5c 5d 69 6e 74 65 67 eger?\[+-\]integ
5e20: 65 72 3f 5c 20 6f 72 5c 20 65 6e 64 3f 5c 5b 2b er?\ or\ end?\[+
5e30: 2d 5c 5d 69 6e 74 65 67 65 72 3f 7d 0a 20 0a 20 -\]integer?}. .
5e40: 23 20 49 6e 64 69 63 65 73 20 74 68 61 74 20 61 # Indices that a
5e50: 72 65 20 69 6e 74 65 67 65 72 73 20 6f 72 20 63 re integers or c
5e60: 6f 6e 76 65 72 74 69 62 6c 65 20 74 6f 20 69 6e onvertible to in
5e70: 74 65 67 65 72 73 0a 20 0a 40 40 20 2d 37 36 2c tegers. .@@ -76,
5e80: 31 32 20 2b 37 36 2c 31 32 20 40 40 0a 20 74 65 12 +76,12 @@. te
5e90: 73 74 20 6c 69 6e 64 65 78 2d 33 2e 35 20 7b 62 st lindex-3.5 {b
5ea0: 61 64 20 6f 63 74 61 6c 7d 20 74 65 73 74 65 76 ad octal} testev
5eb0: 61 6c 65 78 20 7b 0a 20 20 20 20 20 73 65 74 20 alex {. set
5ec0: 78 20 30 38 0a 20 20 20 20 20 6c 69 73 74 20 5b x 08. list [
5ed0: 63 61 74 63 68 20 7b 20 74 65 73 74 65 76 61 6c catch { testeval
5ee0: 65 78 20 7b 6c 69 6e 64 65 78 20 7b 61 20 62 20 ex {lindex {a b
5ef0: 63 7d 20 24 78 7d 20 7d 20 72 65 73 75 6c 74 5d c} $x} } result]
5f00: 20 24 72 65 73 75 6c 74 0a 2d 7d 20 22 31 20 7b $result.-} "1 {
5f10: 62 61 64 20 69 6e 64 65 78 20 5c 22 30 38 5c 22 bad index \"08\"
5f20: 3a 20 6d 75 73 74 20 62 65 20 69 6e 74 65 67 65 : must be intege
5f30: 72 20 6f 72 20 65 6e 64 3f 2d 69 6e 74 65 67 65 r or end?-intege
5f40: 72 3f 20 28 6c 6f 6f 6b 73 20 6c 69 6b 65 20 69 r? (looks like i
5f50: 6e 76 61 6c 69 64 20 6f 63 74 61 6c 20 6e 75 6d nvalid octal num
5f60: 62 65 72 29 7d 22 0a 2b 7d 20 7b 31 20 7b 62 61 ber)}".+} {1 {ba
5f70: 64 20 69 6e 64 65 78 20 22 30 38 22 3a 20 6d 75 d index "08": mu
5f80: 73 74 20 62 65 20 69 6e 74 65 67 65 72 3f 5b 2b st be integer?[+
5f90: 2d 5d 69 6e 74 65 67 65 72 3f 20 6f 72 20 65 6e -]integer? or en
5fa0: 64 3f 5b 2b 2d 5d 69 6e 74 65 67 65 72 3f 20 28 d?[+-]integer? (
5fb0: 6c 6f 6f 6b 73 20 6c 69 6b 65 20 69 6e 76 61 6c looks like inval
5fc0: 69 64 20 6f 63 74 61 6c 20 6e 75 6d 62 65 72 29 id octal number)
5fd0: 7d 7d 0a 20 0a 20 74 65 73 74 20 6c 69 6e 64 65 }}. . test linde
5fe0: 78 2d 33 2e 36 20 7b 62 61 64 20 6f 63 74 61 6c x-3.6 {bad octal
5ff0: 7d 20 74 65 73 74 65 76 61 6c 65 78 20 7b 0a 20 } testevalex {.
6000: 20 20 20 20 73 65 74 20 78 20 2d 30 39 0a 20 20 set x -09.
6010: 20 20 20 6c 69 73 74 20 5b 63 61 74 63 68 20 7b list [catch {
6020: 20 74 65 73 74 65 76 61 6c 65 78 20 7b 6c 69 6e testevalex {lin
6030: 64 65 78 20 7b 61 20 62 20 63 7d 20 24 78 7d 20 dex {a b c} $x}
6040: 7d 20 72 65 73 75 6c 74 5d 20 24 72 65 73 75 6c } result] $resul
6050: 74 0a 2d 7d 20 22 31 20 7b 62 61 64 20 69 6e 64 t.-} "1 {bad ind
6060: 65 78 20 5c 22 2d 30 39 5c 22 3a 20 6d 75 73 74 ex \"-09\": must
6070: 20 62 65 20 69 6e 74 65 67 65 72 20 6f 72 20 65 be integer or e
6080: 6e 64 3f 2d 69 6e 74 65 67 65 72 3f 20 28 6c 6f nd?-integer? (lo
6090: 6f 6b 73 20 6c 69 6b 65 20 69 6e 76 61 6c 69 64 oks like invalid
60a0: 20 6f 63 74 61 6c 20 6e 75 6d 62 65 72 29 7d 22 octal number)}"
60b0: 0a 2b 7d 20 7b 31 20 7b 62 61 64 20 69 6e 64 65 .+} {1 {bad inde
60c0: 78 20 22 2d 30 39 22 3a 20 6d 75 73 74 20 62 65 x "-09": must be
60d0: 20 69 6e 74 65 67 65 72 3f 5b 2b 2d 5d 69 6e 74 integer?[+-]int
60e0: 65 67 65 72 3f 20 6f 72 20 65 6e 64 3f 5b 2b 2d eger? or end?[+-
60f0: 5d 69 6e 74 65 67 65 72 3f 20 28 6c 6f 6f 6b 73 ]integer? (looks
6100: 20 6c 69 6b 65 20 69 6e 76 61 6c 69 64 20 6f 63 like invalid oc
6110: 74 61 6c 20 6e 75 6d 62 65 72 29 7d 7d 0a 20 0a tal number)}}. .
6120: 20 74 65 73 74 20 6c 69 6e 64 65 78 2d 33 2e 37 test lindex-3.7
6130: 20 7b 69 6e 64 65 78 65 73 20 64 6f 6e 27 74 20 {indexes don't
6140: 73 68 69 6d 6d 65 72 20 77 69 64 65 20 69 6e 74 shimmer wide int
6150: 73 7d 20 7b 0a 20 20 20 20 20 73 65 74 20 78 20 s} {. set x
6160: 5b 65 78 70 72 20 7b 28 77 69 64 65 28 31 29 3c [expr {(wide(1)<
6170: 3c 33 31 29 20 2d 20 32 7d 5d 0a 40 40 20 2d 31 <31) - 2}].@@ -1
6180: 31 38 2c 33 31 20 2b 31 31 38 2c 33 31 20 40 40 18,31 +118,31 @@
6190: 0a 20 74 65 73 74 20 6c 69 6e 64 65 78 2d 34 2e . test lindex-4.
61a0: 36 20 7b 62 61 64 20 6f 63 74 61 6c 7d 20 74 65 6 {bad octal} te
61b0: 73 74 65 76 61 6c 65 78 20 7b 0a 20 20 20 20 20 stevalex {.
61c0: 73 65 74 20 78 20 65 6e 64 2d 30 38 0a 20 20 20 set x end-08.
61d0: 20 20 6c 69 73 74 20 5b 63 61 74 63 68 20 7b 20 list [catch {
61e0: 74 65 73 74 65 76 61 6c 65 78 20 7b 6c 69 6e 64 testevalex {lind
61f0: 65 78 20 7b 61 20 62 20 63 7d 20 24 78 7d 20 7d ex {a b c} $x} }
6200: 20 72 65 73 75 6c 74 5d 20 24 72 65 73 75 6c 74 result] $result
6210: 0a 2d 7d 20 22 31 20 7b 62 61 64 20 69 6e 64 65 .-} "1 {bad inde
6220: 78 20 5c 22 65 6e 64 2d 30 38 5c 22 3a 20 6d 75 x \"end-08\": mu
6230: 73 74 20 62 65 20 69 6e 74 65 67 65 72 20 6f 72 st be integer or
6240: 20 65 6e 64 3f 2d 69 6e 74 65 67 65 72 3f 20 28 end?-integer? (
6250: 6c 6f 6f 6b 73 20 6c 69 6b 65 20 69 6e 76 61 6c looks like inval
6260: 69 64 20 6f 63 74 61 6c 20 6e 75 6d 62 65 72 29 id octal number)
6270: 7d 22 0a 2b 7d 20 7b 31 20 7b 62 61 64 20 69 6e }".+} {1 {bad in
6280: 64 65 78 20 22 65 6e 64 2d 30 38 22 3a 20 6d 75 dex "end-08": mu
6290: 73 74 20 62 65 20 69 6e 74 65 67 65 72 3f 5b 2b st be integer?[+
62a0: 2d 5d 69 6e 74 65 67 65 72 3f 20 6f 72 20 65 6e -]integer? or en
62b0: 64 3f 5b 2b 2d 5d 69 6e 74 65 67 65 72 3f 20 28 d?[+-]integer? (
62c0: 6c 6f 6f 6b 73 20 6c 69 6b 65 20 69 6e 76 61 6c looks like inval
62d0: 69 64 20 6f 63 74 61 6c 20 6e 75 6d 62 65 72 29 id octal number)
62e0: 7d 7d 0a 20 0a 20 74 65 73 74 20 6c 69 6e 64 65 }}. . test linde
62f0: 78 2d 34 2e 37 20 7b 62 61 64 20 6f 63 74 61 6c x-4.7 {bad octal
6300: 7d 20 74 65 73 74 65 76 61 6c 65 78 20 7b 0a 20 } testevalex {.
6310: 20 20 20 20 73 65 74 20 78 20 65 6e 64 2d 2d 30 set x end--0
6320: 39 0a 20 20 20 20 20 6c 69 73 74 20 5b 63 61 74 9. list [cat
6330: 63 68 20 7b 20 74 65 73 74 65 76 61 6c 65 78 20 ch { testevalex
6340: 7b 6c 69 6e 64 65 78 20 7b 61 20 62 20 63 7d 20 {lindex {a b c}
6350: 24 78 7d 20 7d 20 72 65 73 75 6c 74 5d 20 24 72 $x} } result] $r
6360: 65 73 75 6c 74 0a 2d 7d 20 22 31 20 7b 62 61 64 esult.-} "1 {bad
6370: 20 69 6e 64 65 78 20 5c 22 65 6e 64 2d 2d 30 39 index \"end--09
6380: 5c 22 3a 20 6d 75 73 74 20 62 65 20 69 6e 74 65 \": must be inte
6390: 67 65 72 20 6f 72 20 65 6e 64 3f 2d 69 6e 74 65 ger or end?-inte
63a0: 67 65 72 3f 7d 22 0a 2b 7d 20 7b 31 20 7b 62 61 ger?}".+} {1 {ba
63b0: 64 20 69 6e 64 65 78 20 22 65 6e 64 2d 2d 30 39 d index "end--09
63c0: 22 3a 20 6d 75 73 74 20 62 65 20 69 6e 74 65 67 ": must be integ
63d0: 65 72 3f 5b 2b 2d 5d 69 6e 74 65 67 65 72 3f 20 er?[+-]integer?
63e0: 6f 72 20 65 6e 64 3f 5b 2b 2d 5d 69 6e 74 65 67 or end?[+-]integ
63f0: 65 72 3f 7d 7d 0a 20 0a 20 74 65 73 74 20 6c 69 er?}}. . test li
6400: 6e 64 65 78 2d 34 2e 38 20 7b 62 61 64 20 69 6e ndex-4.8 {bad in
6410: 74 65 67 65 72 2c 20 6e 6f 74 20 6f 63 74 61 6c teger, not octal
6420: 7d 20 74 65 73 74 65 76 61 6c 65 78 20 7b 0a 20 } testevalex {.
6430: 20 20 20 20 73 65 74 20 78 20 65 6e 64 2d 30 61 set x end-0a
6440: 32 0a 20 20 20 20 20 6c 69 73 74 20 5b 63 61 74 2. list [cat
6450: 63 68 20 7b 20 74 65 73 74 65 76 61 6c 65 78 20 ch { testevalex
6460: 7b 6c 69 6e 64 65 78 20 7b 61 20 62 20 63 7d 20 {lindex {a b c}
6470: 24 78 7d 20 7d 20 72 65 73 75 6c 74 5d 20 24 72 $x} } result] $r
6480: 65 73 75 6c 74 0a 2d 7d 20 22 31 20 7b 62 61 64 esult.-} "1 {bad
6490: 20 69 6e 64 65 78 20 5c 22 65 6e 64 2d 30 61 32 index \"end-0a2
64a0: 5c 22 3a 20 6d 75 73 74 20 62 65 20 69 6e 74 65 \": must be inte
64b0: 67 65 72 20 6f 72 20 65 6e 64 3f 2d 69 6e 74 65 ger or end?-inte
64c0: 67 65 72 3f 7d 22 0a 2b 7d 20 7b 31 20 7b 62 61 ger?}".+} {1 {ba
64d0: 64 20 69 6e 64 65 78 20 22 65 6e 64 2d 30 61 32 d index "end-0a2
64e0: 22 3a 20 6d 75 73 74 20 62 65 20 69 6e 74 65 67 ": must be integ
64f0: 65 72 3f 5b 2b 2d 5d 69 6e 74 65 67 65 72 3f 20 er?[+-]integer?
6500: 6f 72 20 65 6e 64 3f 5b 2b 2d 5d 69 6e 74 65 67 or end?[+-]integ
6510: 65 72 3f 7d 7d 0a 20 0a 2d 74 65 73 74 20 6c 69 er?}}. .-test li
6520: 6e 64 65 78 2d 34 2e 39 20 7b 69 6e 63 6f 6d 70 ndex-4.9 {incomp
6530: 6c 65 74 65 20 65 6e 64 7d 20 74 65 73 74 65 76 lete end} testev
6540: 61 6c 65 78 20 7b 0a 2d 20 20 20 20 73 65 74 20 alex {.- set
6550: 78 20 65 6e 0a 2b 74 65 73 74 20 6c 69 6e 64 65 x en.+test linde
6560: 78 2d 34 2e 39 20 7b 6f 62 73 6f 6c 65 74 65 20 x-4.9 {obsolete
6570: 74 65 73 74 7d 20 74 65 73 74 65 76 61 6c 65 78 test} testevalex
6580: 20 7b 0a 2b 20 20 20 20 73 65 74 20 78 20 65 6e {.+ set x en
6590: 64 0a 20 20 20 20 20 6c 69 73 74 20 5b 74 65 73 d. list [tes
65a0: 74 65 76 61 6c 65 78 20 7b 6c 69 6e 64 65 78 20 tevalex {lindex
65b0: 7b 61 20 62 20 63 7d 20 24 78 7d 5d 20 5b 74 65 {a b c} $x}] [te
65c0: 73 74 65 76 61 6c 65 78 20 7b 6c 69 6e 64 65 78 stevalex {lindex
65d0: 20 7b 61 20 62 20 63 7d 20 24 78 7d 5d 0a 20 7d {a b c} $x}]. }
65e0: 20 7b 63 20 63 7d 0a 20 0a 20 74 65 73 74 20 6c {c c}. . test l
65f0: 69 6e 64 65 78 2d 34 2e 31 30 20 7b 69 6e 63 6f index-4.10 {inco
6600: 6d 70 6c 65 74 65 20 65 6e 64 2d 7d 20 74 65 73 mplete end-} tes
6610: 74 65 76 61 6c 65 78 20 7b 0a 20 20 20 20 20 73 tevalex {. s
6620: 65 74 20 78 20 65 6e 64 2d 0a 20 20 20 20 20 6c et x end-. l
6630: 69 73 74 20 5b 63 61 74 63 68 20 7b 20 74 65 73 ist [catch { tes
6640: 74 65 76 61 6c 65 78 20 7b 6c 69 6e 64 65 78 20 tevalex {lindex
6650: 7b 61 20 62 20 63 7d 20 24 78 7d 20 7d 20 72 65 {a b c} $x} } re
6660: 73 75 6c 74 5d 20 24 72 65 73 75 6c 74 0a 2d 7d sult] $result.-}
6670: 20 22 31 20 7b 62 61 64 20 69 6e 64 65 78 20 5c "1 {bad index \
6680: 22 65 6e 64 2d 5c 22 3a 20 6d 75 73 74 20 62 65 "end-\": must be
6690: 20 69 6e 74 65 67 65 72 20 6f 72 20 65 6e 64 3f integer or end?
66a0: 2d 69 6e 74 65 67 65 72 3f 7d 22 0a 2b 7d 20 7b -integer?}".+} {
66b0: 31 20 7b 62 61 64 20 69 6e 64 65 78 20 22 65 6e 1 {bad index "en
66c0: 64 2d 22 3a 20 6d 75 73 74 20 62 65 20 69 6e 74 d-": must be int
66d0: 65 67 65 72 3f 5b 2b 2d 5d 69 6e 74 65 67 65 72 eger?[+-]integer
66e0: 3f 20 6f 72 20 65 6e 64 3f 5b 2b 2d 5d 69 6e 74 ? or end?[+-]int
66f0: 65 67 65 72 3f 7d 7d 0a 20 0a 20 74 65 73 74 20 eger?}}. . test
6700: 6c 69 6e 64 65 78 2d 35 2e 31 20 7b 62 61 64 20 lindex-5.1 {bad
6710: 73 65 63 6f 6e 64 20 69 6e 64 65 78 7d 20 74 65 second index} te
6720: 73 74 65 76 61 6c 65 78 20 7b 0a 20 20 20 20 20 stevalex {.
6730: 6c 69 73 74 20 5b 63 61 74 63 68 20 7b 20 74 65 list [catch { te
6740: 73 74 65 76 61 6c 65 78 20 7b 6c 69 6e 64 65 78 stevalex {lindex
6750: 20 7b 61 20 62 20 63 7d 20 30 20 30 61 32 7d 20 {a b c} 0 0a2}
6760: 7d 20 72 65 73 75 6c 74 5d 20 24 72 65 73 75 6c } result] $resul
6770: 74 0a 2d 7d 20 22 31 20 7b 62 61 64 20 69 6e 64 t.-} "1 {bad ind
6780: 65 78 20 5c 22 30 61 32 5c 22 3a 20 6d 75 73 74 ex \"0a2\": must
6790: 20 62 65 20 69 6e 74 65 67 65 72 20 6f 72 20 65 be integer or e
67a0: 6e 64 3f 2d 69 6e 74 65 67 65 72 3f 7d 22 0a 2b nd?-integer?}".+
67b0: 7d 20 7b 31 20 7b 62 61 64 20 69 6e 64 65 78 20 } {1 {bad index
67c0: 22 30 61 32 22 3a 20 6d 75 73 74 20 62 65 20 69 "0a2": must be i
67d0: 6e 74 65 67 65 72 3f 5b 2b 2d 5d 69 6e 74 65 67 nteger?[+-]integ
67e0: 65 72 3f 20 6f 72 20 65 6e 64 3f 5b 2b 2d 5d 69 er? or end?[+-]i
67f0: 6e 74 65 67 65 72 3f 7d 7d 0a 20 0a 20 74 65 73 nteger?}}. . tes
6800: 74 20 6c 69 6e 64 65 78 2d 35 2e 32 20 7b 67 6f t lindex-5.2 {go
6810: 6f 64 20 73 65 63 6f 6e 64 20 69 6e 64 65 78 7d od second index}
6820: 20 74 65 73 74 65 76 61 6c 65 78 20 7b 0a 20 20 testevalex {.
6830: 20 20 20 74 65 73 74 65 76 61 6c 65 78 20 7b 6c testevalex {l
6840: 69 6e 64 65 78 20 7b 7b 61 20 62 20 63 7d 20 7b index {{a b c} {
6850: 64 20 65 20 66 7d 20 7b 67 20 68 20 69 7d 7d 20 d e f} {g h i}}
6860: 31 20 32 7d 0a 40 40 20 2d 32 34 35 2c 37 20 2b 1 2}.@@ -245,7 +
6870: 32 34 35 2c 37 20 40 40 0a 20 74 65 73 74 20 6c 245,7 @@. test l
6880: 69 6e 64 65 78 2d 31 30 2e 34 20 7b 6d 61 6c 66 index-10.4 {malf
6890: 6f 72 6d 65 64 20 69 6e 64 65 78 20 6c 69 73 74 ormed index list
68a0: 7d 20 7b 0a 20 20 20 20 20 73 65 74 20 78 20 5c } {. set x \
68b0: 7b 0a 20 20 20 20 20 6c 69 73 74 20 5b 63 61 74 {. list [cat
68c0: 63 68 20 7b 20 6c 69 6e 64 65 78 20 7b 61 20 62 ch { lindex {a b
68d0: 20 63 7d 20 24 78 20 7d 20 72 65 73 75 6c 74 5d c} $x } result]
68e0: 20 24 72 65 73 75 6c 74 0a 2d 7d 20 7b 31 20 62 $result.-} {1 b
68f0: 61 64 5c 20 69 6e 64 65 78 5c 20 5c 22 5c 7b 5c ad\ index\ \"\{\
6900: 22 3a 5c 20 6d 75 73 74 5c 20 62 65 5c 20 69 6e ":\ must\ be\ in
6910: 74 65 67 65 72 5c 20 6f 72 5c 20 65 6e 64 3f 2d teger\ or\ end?-
6920: 69 6e 74 65 67 65 72 3f 7d 0a 2b 7d 20 7b 31 20 integer?}.+} {1
6930: 62 61 64 5c 20 69 6e 64 65 78 5c 20 5c 22 5c 7b bad\ index\ \"\{
6940: 5c 22 3a 5c 20 6d 75 73 74 5c 20 62 65 5c 20 69 \":\ must\ be\ i
6950: 6e 74 65 67 65 72 3f 5c 5b 2b 2d 5c 5d 69 6e 74 nteger?\[+-\]int
6960: 65 67 65 72 3f 5c 20 6f 72 5c 20 65 6e 64 3f 5c eger?\ or\ end?\
6970: 5b 2b 2d 5c 5d 69 6e 74 65 67 65 72 3f 7d 0a 20 [+-\]integer?}.
6980: 0a 20 23 20 49 6e 64 69 63 65 73 20 74 68 61 74 . # Indices that
6990: 20 61 72 65 20 69 6e 74 65 67 65 72 73 20 6f 72 are integers or
69a0: 20 63 6f 6e 76 65 72 74 69 62 6c 65 20 74 6f 20 convertible to
69b0: 69 6e 74 65 67 65 72 73 0a 20 0a 40 40 20 2d 32 integers. .@@ -2
69c0: 38 34 2c 31 32 20 2b 32 38 34 2c 31 32 20 40 40 84,12 +284,12 @@
69d0: 0a 20 74 65 73 74 20 6c 69 6e 64 65 78 2d 31 31 . test lindex-11
69e0: 2e 35 20 7b 62 61 64 20 6f 63 74 61 6c 7d 20 7b .5 {bad octal} {
69f0: 0a 20 20 20 20 20 73 65 74 20 78 20 30 38 0a 20 . set x 08.
6a00: 20 20 20 20 6c 69 73 74 20 5b 63 61 74 63 68 20 list [catch
6a10: 7b 20 6c 69 6e 64 65 78 20 7b 61 20 62 20 63 7d { lindex {a b c}
6a20: 20 24 78 20 7d 20 72 65 73 75 6c 74 5d 20 24 72 $x } result] $r
6a30: 65 73 75 6c 74 0a 2d 7d 20 22 31 20 7b 62 61 64 esult.-} "1 {bad
6a40: 20 69 6e 64 65 78 20 5c 22 30 38 5c 22 3a 20 6d index \"08\": m
6a50: 75 73 74 20 62 65 20 69 6e 74 65 67 65 72 20 6f ust be integer o
6a60: 72 20 65 6e 64 3f 2d 69 6e 74 65 67 65 72 3f 20 r end?-integer?
6a70: 28 6c 6f 6f 6b 73 20 6c 69 6b 65 20 69 6e 76 61 (looks like inva
6a80: 6c 69 64 20 6f 63 74 61 6c 20 6e 75 6d 62 65 72 lid octal number
6a90: 29 7d 22 0a 2b 7d 20 7b 31 20 7b 62 61 64 20 69 )}".+} {1 {bad i
6aa0: 6e 64 65 78 20 22 30 38 22 3a 20 6d 75 73 74 20 ndex "08": must
6ab0: 62 65 20 69 6e 74 65 67 65 72 3f 5b 2b 2d 5d 69 be integer?[+-]i
6ac0: 6e 74 65 67 65 72 3f 20 6f 72 20 65 6e 64 3f 5b nteger? or end?[
6ad0: 2b 2d 5d 69 6e 74 65 67 65 72 3f 20 28 6c 6f 6f +-]integer? (loo
6ae0: 6b 73 20 6c 69 6b 65 20 69 6e 76 61 6c 69 64 20 ks like invalid
6af0: 6f 63 74 61 6c 20 6e 75 6d 62 65 72 29 7d 7d 0a octal number)}}.
6b00: 20 0a 20 74 65 73 74 20 6c 69 6e 64 65 78 2d 31 . test lindex-1
6b10: 31 2e 36 20 7b 62 61 64 20 6f 63 74 61 6c 7d 20 1.6 {bad octal}
6b20: 7b 0a 20 20 20 20 20 73 65 74 20 78 20 2d 30 39 {. set x -09
6b30: 0a 20 20 20 20 20 6c 69 73 74 20 5b 63 61 74 63 . list [catc
6b40: 68 20 7b 20 6c 69 6e 64 65 78 20 7b 61 20 62 20 h { lindex {a b
6b50: 63 7d 20 24 78 20 7d 20 72 65 73 75 6c 74 5d 20 c} $x } result]
6b60: 24 72 65 73 75 6c 74 0a 2d 7d 20 22 31 20 7b 62 $result.-} "1 {b
6b70: 61 64 20 69 6e 64 65 78 20 5c 22 2d 30 39 5c 22 ad index \"-09\"
6b80: 3a 20 6d 75 73 74 20 62 65 20 69 6e 74 65 67 65 : must be intege
6b90: 72 20 6f 72 20 65 6e 64 3f 2d 69 6e 74 65 67 65 r or end?-intege
6ba0: 72 3f 20 28 6c 6f 6f 6b 73 20 6c 69 6b 65 20 69 r? (looks like i
6bb0: 6e 76 61 6c 69 64 20 6f 63 74 61 6c 20 6e 75 6d nvalid octal num
6bc0: 62 65 72 29 7d 22 0a 2b 7d 20 7b 31 20 7b 62 61 ber)}".+} {1 {ba
6bd0: 64 20 69 6e 64 65 78 20 22 2d 30 39 22 3a 20 6d d index "-09": m
6be0: 75 73 74 20 62 65 20 69 6e 74 65 67 65 72 3f 5b ust be integer?[
6bf0: 2b 2d 5d 69 6e 74 65 67 65 72 3f 20 6f 72 20 65 +-]integer? or e
6c00: 6e 64 3f 5b 2b 2d 5d 69 6e 74 65 67 65 72 3f 20 nd?[+-]integer?
6c10: 28 6c 6f 6f 6b 73 20 6c 69 6b 65 20 69 6e 76 61 (looks like inva
6c20: 6c 69 64 20 6f 63 74 61 6c 20 6e 75 6d 62 65 72 lid octal number
6c30: 29 7d 7d 0a 20 0a 20 23 20 49 6e 64 69 63 65 73 )}}. . # Indices
6c40: 20 72 65 6c 61 74 69 76 65 20 74 6f 20 65 6e 64 relative to end
6c50: 0a 20 0a 40 40 20 2d 33 33 36 2c 32 30 20 2b 33 . .@@ -336,20 +3
6c60: 33 36 2c 32 30 20 40 40 0a 20 74 65 73 74 20 6c 36,20 @@. test l
6c70: 69 6e 64 65 78 2d 31 32 2e 36 20 7b 62 61 64 20 index-12.6 {bad
6c80: 6f 63 74 61 6c 7d 20 7b 0a 20 20 20 20 20 73 65 octal} {. se
6c90: 74 20 78 20 65 6e 64 2d 30 38 0a 20 20 20 20 20 t x end-08.
6ca0: 6c 69 73 74 20 5b 63 61 74 63 68 20 7b 20 6c 69 list [catch { li
6cb0: 6e 64 65 78 20 7b 61 20 62 20 63 7d 20 24 78 20 ndex {a b c} $x
6cc0: 7d 20 72 65 73 75 6c 74 5d 20 24 72 65 73 75 6c } result] $resul
6cd0: 74 0a 2d 7d 20 22 31 20 7b 62 61 64 20 69 6e 64 t.-} "1 {bad ind
6ce0: 65 78 20 5c 22 65 6e 64 2d 30 38 5c 22 3a 20 6d ex \"end-08\": m
6cf0: 75 73 74 20 62 65 20 69 6e 74 65 67 65 72 20 6f ust be integer o
6d00: 72 20 65 6e 64 3f 2d 69 6e 74 65 67 65 72 3f 20 r end?-integer?
6d10: 28 6c 6f 6f 6b 73 20 6c 69 6b 65 20 69 6e 76 61 (looks like inva
6d20: 6c 69 64 20 6f 63 74 61 6c 20 6e 75 6d 62 65 72 lid octal number
6d30: 29 7d 22 0a 2b 7d 20 7b 31 20 7b 62 61 64 20 69 )}".+} {1 {bad i
6d40: 6e 64 65 78 20 22 65 6e 64 2d 30 38 22 3a 20 6d ndex "end-08": m
6d50: 75 73 74 20 62 65 20 69 6e 74 65 67 65 72 3f 5b ust be integer?[
6d60: 2b 2d 5d 69 6e 74 65 67 65 72 3f 20 6f 72 20 65 +-]integer? or e
6d70: 6e 64 3f 5b 2b 2d 5d 69 6e 74 65 67 65 72 3f 20 nd?[+-]integer?
6d80: 28 6c 6f 6f 6b 73 20 6c 69 6b 65 20 69 6e 76 61 (looks like inva
6d90: 6c 69 64 20 6f 63 74 61 6c 20 6e 75 6d 62 65 72 lid octal number
6da0: 29 7d 7d 0a 20 0a 20 74 65 73 74 20 6c 69 6e 64 )}}. . test lind
6db0: 65 78 2d 31 32 2e 37 20 7b 62 61 64 20 6f 63 74 ex-12.7 {bad oct
6dc0: 61 6c 7d 20 7b 0a 20 20 20 20 20 73 65 74 20 78 al} {. set x
6dd0: 20 65 6e 64 2d 2d 30 39 0a 20 20 20 20 20 6c 69 end--09. li
6de0: 73 74 20 5b 63 61 74 63 68 20 7b 20 6c 69 6e 64 st [catch { lind
6df0: 65 78 20 7b 61 20 62 20 63 7d 20 24 78 20 7d 20 ex {a b c} $x }
6e00: 72 65 73 75 6c 74 5d 20 24 72 65 73 75 6c 74 0a result] $result.
6e10: 2d 7d 20 22 31 20 7b 62 61 64 20 69 6e 64 65 78 -} "1 {bad index
6e20: 20 5c 22 65 6e 64 2d 2d 30 39 5c 22 3a 20 6d 75 \"end--09\": mu
6e30: 73 74 20 62 65 20 69 6e 74 65 67 65 72 20 6f 72 st be integer or
6e40: 20 65 6e 64 3f 2d 69 6e 74 65 67 65 72 3f 7d 22 end?-integer?}"
6e50: 0a 2b 7d 20 7b 31 20 7b 62 61 64 20 69 6e 64 65 .+} {1 {bad inde
6e60: 78 20 22 65 6e 64 2d 2d 30 39 22 3a 20 6d 75 73 x "end--09": mus
6e70: 74 20 62 65 20 69 6e 74 65 67 65 72 3f 5b 2b 2d t be integer?[+-
6e80: 5d 69 6e 74 65 67 65 72 3f 20 6f 72 20 65 6e 64 ]integer? or end
6e90: 3f 5b 2b 2d 5d 69 6e 74 65 67 65 72 3f 7d 7d 0a ?[+-]integer?}}.
6ea0: 20 0a 20 74 65 73 74 20 6c 69 6e 64 65 78 2d 31 . test lindex-1
6eb0: 32 2e 38 20 7b 62 61 64 20 69 6e 74 65 67 65 72 2.8 {bad integer
6ec0: 2c 20 6e 6f 74 20 6f 63 74 61 6c 7d 20 7b 0a 20 , not octal} {.
6ed0: 20 20 20 20 73 65 74 20 78 20 65 6e 64 2d 30 61 set x end-0a
6ee0: 32 0a 20 20 20 20 20 6c 69 73 74 20 5b 63 61 74 2. list [cat
6ef0: 63 68 20 7b 20 6c 69 6e 64 65 78 20 7b 61 20 62 ch { lindex {a b
6f00: 20 63 7d 20 24 78 20 7d 20 72 65 73 75 6c 74 5d c} $x } result]
6f10: 20 24 72 65 73 75 6c 74 0a 2d 7d 20 22 31 20 7b $result.-} "1 {
6f20: 62 61 64 20 69 6e 64 65 78 20 5c 22 65 6e 64 2d bad index \"end-
6f30: 30 61 32 5c 22 3a 20 6d 75 73 74 20 62 65 20 69 0a2\": must be i
6f40: 6e 74 65 67 65 72 20 6f 72 20 65 6e 64 3f 2d 69 nteger or end?-i
6f50: 6e 74 65 67 65 72 3f 7d 22 0a 2b 7d 20 7b 31 20 nteger?}".+} {1
6f60: 7b 62 61 64 20 69 6e 64 65 78 20 22 65 6e 64 2d {bad index "end-
6f70: 30 61 32 22 3a 20 6d 75 73 74 20 62 65 20 69 6e 0a2": must be in
6f80: 74 65 67 65 72 3f 5b 2b 2d 5d 69 6e 74 65 67 65 teger?[+-]intege
6f90: 72 3f 20 6f 72 20 65 6e 64 3f 5b 2b 2d 5d 69 6e r? or end?[+-]in
6fa0: 74 65 67 65 72 3f 7d 7d 0a 20 0a 2d 74 65 73 74 teger?}}. .-test
6fb0: 20 6c 69 6e 64 65 78 2d 31 32 2e 39 20 7b 69 6e lindex-12.9 {in
6fc0: 63 6f 6d 70 6c 65 74 65 20 65 6e 64 7d 20 7b 0a complete end} {.
6fd0: 2d 20 20 20 20 73 65 74 20 78 20 65 6e 0a 2b 74 - set x en.+t
6fe0: 65 73 74 20 6c 69 6e 64 65 78 2d 31 32 2e 39 20 est lindex-12.9
6ff0: 7b 6f 62 73 6f 6c 65 74 65 20 74 65 73 74 7d 20 {obsolete test}
7000: 7b 0a 2b 20 20 20 20 73 65 74 20 78 20 65 6e 64 {.+ set x end
7010: 0a 20 20 20 20 20 63 61 74 63 68 20 7b 0a 20 09 . catch {. .
7020: 6c 69 73 74 20 5b 6c 69 6e 64 65 78 20 7b 61 20 list [lindex {a
7030: 62 20 63 7d 20 24 78 5d 20 5b 6c 69 6e 64 65 78 b c} $x] [lindex
7040: 20 7b 61 20 62 20 63 7d 20 24 78 5d 0a 20 20 20 {a b c} $x].
7050: 20 20 7d 20 72 65 73 75 6c 74 0a 40 40 20 2d 33 } result.@@ -3
7060: 35 39 2c 31 31 20 2b 33 35 39 2c 31 31 20 40 40 59,11 +359,11 @@
7070: 0a 20 74 65 73 74 20 6c 69 6e 64 65 78 2d 31 32 . test lindex-12
7080: 2e 31 30 20 7b 69 6e 63 6f 6d 70 6c 65 74 65 20 .10 {incomplete
7090: 65 6e 64 2d 7d 20 7b 0a 20 20 20 20 20 73 65 74 end-} {. set
70a0: 20 78 20 65 6e 64 2d 0a 20 20 20 20 20 6c 69 73 x end-. lis
70b0: 74 20 5b 63 61 74 63 68 20 7b 20 6c 69 6e 64 65 t [catch { linde
70c0: 78 20 7b 61 20 62 20 63 7d 20 24 78 20 7d 20 72 x {a b c} $x } r
70d0: 65 73 75 6c 74 5d 20 24 72 65 73 75 6c 74 0a 2d esult] $result.-
70e0: 7d 20 22 31 20 7b 62 61 64 20 69 6e 64 65 78 20 } "1 {bad index
70f0: 5c 22 65 6e 64 2d 5c 22 3a 20 6d 75 73 74 20 62 \"end-\": must b
7100: 65 20 69 6e 74 65 67 65 72 20 6f 72 20 65 6e 64 e integer or end
7110: 3f 2d 69 6e 74 65 67 65 72 3f 7d 22 0a 2b 7d 20 ?-integer?}".+}
7120: 7b 31 20 7b 62 61 64 20 69 6e 64 65 78 20 22 65 {1 {bad index "e
7130: 6e 64 2d 22 3a 20 6d 75 73 74 20 62 65 20 69 6e nd-": must be in
7140: 74 65 67 65 72 3f 5b 2b 2d 5d 69 6e 74 65 67 65 teger?[+-]intege
7150: 72 3f 20 6f 72 20 65 6e 64 3f 5b 2b 2d 5d 69 6e r? or end?[+-]in
7160: 74 65 67 65 72 3f 7d 7d 0a 20 0a 20 74 65 73 74 teger?}}. . test
7170: 20 6c 69 6e 64 65 78 2d 31 33 2e 31 20 7b 62 61 lindex-13.1 {ba
7180: 64 20 73 65 63 6f 6e 64 20 69 6e 64 65 78 7d 20 d second index}
7190: 7b 0a 20 20 20 20 20 6c 69 73 74 20 5b 63 61 74 {. list [cat
71a0: 63 68 20 7b 20 6c 69 6e 64 65 78 20 7b 61 20 62 ch { lindex {a b
71b0: 20 63 7d 20 30 20 30 61 32 20 7d 20 72 65 73 75 c} 0 0a2 } resu
71c0: 6c 74 5d 20 24 72 65 73 75 6c 74 0a 2d 7d 20 22 lt] $result.-} "
71d0: 31 20 7b 62 61 64 20 69 6e 64 65 78 20 5c 22 30 1 {bad index \"0
71e0: 61 32 5c 22 3a 20 6d 75 73 74 20 62 65 20 69 6e a2\": must be in
71f0: 74 65 67 65 72 20 6f 72 20 65 6e 64 3f 2d 69 6e teger or end?-in
7200: 74 65 67 65 72 3f 7d 22 0a 2b 7d 20 7b 31 20 7b teger?}".+} {1 {
7210: 62 61 64 20 69 6e 64 65 78 20 22 30 61 32 22 3a bad index "0a2":
7220: 20 6d 75 73 74 20 62 65 20 69 6e 74 65 67 65 72 must be integer
7230: 3f 5b 2b 2d 5d 69 6e 74 65 67 65 72 3f 20 6f 72 ?[+-]integer? or
7240: 20 65 6e 64 3f 5b 2b 2d 5d 69 6e 74 65 67 65 72 end?[+-]integer
7250: 3f 7d 7d 0a 20 0a 20 74 65 73 74 20 6c 69 6e 64 ?}}. . test lind
7260: 65 78 2d 31 33 2e 32 20 7b 67 6f 6f 64 20 73 65 ex-13.2 {good se
7270: 63 6f 6e 64 20 69 6e 64 65 78 7d 20 7b 0a 20 20 cond index} {.
7280: 20 20 20 63 61 74 63 68 20 7b 0a 49 6e 64 65 78 catch {.Index
7290: 3a 20 74 65 73 74 73 2f 6c 69 6e 73 65 72 74 2e : tests/linsert.
72a0: 74 65 73 74 0a 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d test.===========
72b0: 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d ================
72c0: 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d ================
72d0: 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d ================
72e0: 3d 3d 3d 3d 3d 3d 3d 3d 0a 52 43 53 20 66 69 6c ========.RCS fil
72f0: 65 3a 20 2f 63 76 73 72 6f 6f 74 2f 74 63 6c 2f e: /cvsroot/tcl/
7300: 74 63 6c 2f 74 65 73 74 73 2f 6c 69 6e 73 65 72 tcl/tests/linser
7310: 74 2e 74 65 73 74 2c 76 0a 72 65 74 72 69 65 76 t.test,v.retriev
7320: 69 6e 67 20 72 65 76 69 73 69 6f 6e 20 31 2e 38 ing revision 1.8
7330: 0a 64 69 66 66 20 2d 75 20 2d 72 31 2e 38 20 6c .diff -u -r1.8 l
7340: 69 6e 73 65 72 74 2e 74 65 73 74 0a 2d 2d 2d 20 insert.test.---
7350: 74 65 73 74 73 2f 6c 69 6e 73 65 72 74 2e 74 65 tests/linsert.te
7360: 73 74 09 31 30 20 41 70 72 20 32 30 30 30 20 31 st.10 Apr 2000 1
7370: 37 3a 31 39 3a 30 31 20 2d 30 30 30 30 09 31 2e 7:19:01 -0000.1.
7380: 38 0a 2b 2b 2b 20 74 65 73 74 73 2f 6c 69 6e 73 8.+++ tests/lins
7390: 65 72 74 2e 74 65 73 74 09 32 39 20 41 70 72 20 ert.test.29 Apr
73a0: 32 30 30 35 20 32 30 3a 33 30 3a 34 31 20 2d 30 2005 20:30:41 -0
73b0: 30 30 30 0a 40 40 20 2d 39 30 2c 37 20 2b 39 30 000.@@ -90,7 +90
73c0: 2c 37 20 40 40 0a 20 7d 20 7b 31 20 7b 77 72 6f ,7 @@. } {1 {wro
73d0: 6e 67 20 23 20 61 72 67 73 3a 20 73 68 6f 75 6c ng # args: shoul
73e0: 64 20 62 65 20 22 6c 69 6e 73 65 72 74 20 6c 69 d be "linsert li
73f0: 73 74 20 69 6e 64 65 78 20 65 6c 65 6d 65 6e 74 st index element
7400: 20 3f 65 6c 65 6d 65 6e 74 20 2e 2e 2e 3f 22 7d ?element ...?"}
7410: 7d 0a 20 74 65 73 74 20 6c 69 6e 73 65 72 74 2d }. test linsert-
7420: 32 2e 33 20 7b 6c 69 6e 73 65 72 74 20 65 72 72 2.3 {linsert err
7430: 6f 72 73 7d 20 7b 0a 20 20 20 20 20 6c 69 73 74 ors} {. list
7440: 20 5b 63 61 74 63 68 20 7b 6c 69 6e 73 65 72 74 [catch {linsert
7450: 20 61 20 31 32 78 20 32 7d 20 6d 73 67 5d 20 24 a 12x 2} msg] $
7460: 6d 73 67 0a 2d 7d 20 7b 31 20 7b 62 61 64 20 69 msg.-} {1 {bad i
7470: 6e 64 65 78 20 22 31 32 78 22 3a 20 6d 75 73 74 ndex "12x": must
7480: 20 62 65 20 69 6e 74 65 67 65 72 20 6f 72 20 65 be integer or e
7490: 6e 64 3f 2d 69 6e 74 65 67 65 72 3f 7d 7d 0a 2b nd?-integer?}}.+
74a0: 7d 20 7b 31 20 7b 62 61 64 20 69 6e 64 65 78 20 } {1 {bad index
74b0: 22 31 32 78 22 3a 20 6d 75 73 74 20 62 65 20 69 "12x": must be i
74c0: 6e 74 65 67 65 72 3f 5b 2b 2d 5d 69 6e 74 65 67 nteger?[+-]integ
74d0: 65 72 3f 20 6f 72 20 65 6e 64 3f 5b 2b 2d 5d 69 er? or end?[+-]i
74e0: 6e 74 65 67 65 72 3f 7d 7d 0a 20 74 65 73 74 20 nteger?}}. test
74f0: 6c 69 6e 73 65 72 74 2d 32 2e 34 20 7b 6c 69 6e linsert-2.4 {lin
7500: 73 65 72 74 20 65 72 72 6f 72 73 7d 20 7b 0a 20 sert errors} {.
7510: 20 20 20 20 6c 69 73 74 20 5b 63 61 74 63 68 20 list [catch
7520: 7b 6c 69 6e 73 65 72 74 20 5c 7b 20 31 32 20 32 {linsert \{ 12 2
7530: 7d 20 6d 73 67 5d 20 24 6d 73 67 0a 20 7d 20 7b } msg] $msg. } {
7540: 31 20 7b 75 6e 6d 61 74 63 68 65 64 20 6f 70 65 1 {unmatched ope
7550: 6e 20 62 72 61 63 65 20 69 6e 20 6c 69 73 74 7d n brace in list}
7560: 7d 0a 49 6e 64 65 78 3a 20 74 65 73 74 73 2f 6c }.Index: tests/l
7570: 72 61 6e 67 65 2e 74 65 73 74 0a 3d 3d 3d 3d 3d range.test.=====
7580: 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d ================
7590: 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d ================
75a0: 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d ================
75b0: 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 0a 52 ==============.R
75c0: 43 53 20 66 69 6c 65 3a 20 2f 63 76 73 72 6f 6f CS file: /cvsroo
75d0: 74 2f 74 63 6c 2f 74 63 6c 2f 74 65 73 74 73 2f t/tcl/tcl/tests/
75e0: 6c 72 61 6e 67 65 2e 74 65 73 74 2c 76 0a 72 65 lrange.test,v.re
75f0: 74 72 69 65 76 69 6e 67 20 72 65 76 69 73 69 6f trieving revisio
7600: 6e 20 31 2e 37 0a 64 69 66 66 20 2d 75 20 2d 72 n 1.7.diff -u -r
7610: 31 2e 37 20 6c 72 61 6e 67 65 2e 74 65 73 74 0a 1.7 lrange.test.
7620: 2d 2d 2d 20 74 65 73 74 73 2f 6c 72 61 6e 67 65 --- tests/lrange
7630: 2e 74 65 73 74 09 31 30 20 41 70 72 20 32 30 30 .test.10 Apr 200
7640: 30 20 31 37 3a 31 39 3a 30 31 20 2d 30 30 30 30 0 17:19:01 -0000
7650: 09 31 2e 37 0a 2b 2b 2b 20 74 65 73 74 73 2f 6c .1.7.+++ tests/l
7660: 72 61 6e 67 65 2e 74 65 73 74 09 32 39 20 41 70 range.test.29 Ap
7670: 72 20 32 30 30 35 20 32 30 3a 33 30 3a 34 31 20 r 2005 20:30:41
7680: 2d 30 30 30 30 0a 40 40 20 2d 34 33 2c 37 20 2b -0000.@@ -43,7 +
7690: 34 33 2c 37 20 40 40 0a 20 20 20 20 20 6c 72 61 43,7 @@. lra
76a0: 6e 67 65 20 7b 61 20 62 20 63 20 64 20 65 7d 20 nge {a b c d e}
76b0: 2d 32 20 2d 31 0a 20 7d 20 7b 7d 0a 20 74 65 73 -2 -1. } {}. tes
76c0: 74 20 6c 72 61 6e 67 65 2d 31 2e 39 20 7b 72 61 t lrange-1.9 {ra
76d0: 6e 67 65 20 6f 66 20 6c 69 73 74 20 65 6c 65 6d nge of list elem
76e0: 65 6e 74 73 7d 20 7b 0a 2d 20 20 20 20 6c 72 61 ents} {.- lra
76f0: 6e 67 65 20 7b 61 20 62 20 63 20 64 20 65 7d 20 nge {a b c d e}
7700: 2d 32 20 65 0a 2b 20 20 20 20 6c 72 61 6e 67 65 -2 e.+ lrange
7710: 20 7b 61 20 62 20 63 20 64 20 65 7d 20 2d 32 20 {a b c d e} -2
7720: 65 6e 64 0a 20 7d 20 7b 61 20 62 20 63 20 64 20 end. } {a b c d
7730: 65 7d 0a 20 74 65 73 74 20 6c 72 61 6e 67 65 2d e}. test lrange-
7740: 31 2e 31 30 20 7b 72 61 6e 67 65 20 6f 66 20 6c 1.10 {range of l
7750: 69 73 74 20 65 6c 65 6d 65 6e 74 73 7d 20 7b 0a ist elements} {.
7760: 20 20 20 20 20 6c 72 61 6e 67 65 20 22 61 20 62 lrange "a b
7770: 5c 7b 63 20 64 22 20 31 20 32 0a 40 40 20 2d 35 \{c d" 1 2.@@ -5
7780: 35 2c 37 20 2b 35 35 2c 37 20 40 40 0a 20 20 20 5,7 +55,7 @@.
7790: 20 20 6c 72 61 6e 67 65 20 22 61 20 62 20 63 20 lrange "a b c
77a0: 64 22 20 65 6e 64 20 31 30 30 30 30 30 0a 20 7d d" end 100000. }
77b0: 20 64 0a 20 74 65 73 74 20 6c 72 61 6e 67 65 2d d. test lrange-
77c0: 31 2e 31 33 20 7b 72 61 6e 67 65 20 6f 66 20 6c 1.13 {range of l
77d0: 69 73 74 20 65 6c 65 6d 65 6e 74 73 7d 20 7b 0a ist elements} {.
77e0: 2d 20 20 20 20 6c 72 61 6e 67 65 20 22 61 20 62 - lrange "a b
77f0: 20 63 20 64 22 20 65 20 33 0a 2b 20 20 20 20 6c c d" e 3.+ l
7800: 72 61 6e 67 65 20 22 61 20 62 20 63 20 64 22 20 range "a b c d"
7810: 65 6e 64 20 33 0a 20 7d 20 64 0a 20 74 65 73 74 end 3. } d. test
7820: 20 6c 72 61 6e 67 65 2d 31 2e 31 34 20 7b 72 61 lrange-1.14 {ra
7830: 6e 67 65 20 6f 66 20 6c 69 73 74 20 65 6c 65 6d nge of list elem
7840: 65 6e 74 73 7d 20 7b 0a 20 20 20 20 20 6c 72 61 ents} {. lra
7850: 6e 67 65 20 22 61 20 62 20 63 20 64 22 20 65 6e nge "a b c d" en
7860: 64 20 32 0a 40 40 20 2d 37 35 2c 31 30 20 2b 37 d 2.@@ -75,10 +7
7870: 35 2c 31 30 20 40 40 0a 20 7d 20 7b 31 20 7b 77 5,10 @@. } {1 {w
7880: 72 6f 6e 67 20 23 20 61 72 67 73 3a 20 73 68 6f rong # args: sho
7890: 75 6c 64 20 62 65 20 22 6c 72 61 6e 67 65 20 6c uld be "lrange l
78a0: 69 73 74 20 66 69 72 73 74 20 6c 61 73 74 22 7d ist first last"}
78b0: 7d 0a 20 74 65 73 74 20 6c 72 61 6e 67 65 2d 32 }. test lrange-2
78c0: 2e 33 20 7b 65 72 72 6f 72 20 63 6f 6e 64 69 74 .3 {error condit
78d0: 69 6f 6e 73 7d 20 7b 0a 20 20 20 20 20 6c 69 73 ions} {. lis
78e0: 74 20 5b 63 61 74 63 68 20 7b 6c 72 61 6e 67 65 t [catch {lrange
78f0: 20 61 20 62 20 36 7d 20 6d 73 67 5d 20 24 6d 73 a b 6} msg] $ms
7900: 67 0a 2d 7d 20 7b 31 20 7b 62 61 64 20 69 6e 64 g.-} {1 {bad ind
7910: 65 78 20 22 62 22 3a 20 6d 75 73 74 20 62 65 20 ex "b": must be
7920: 69 6e 74 65 67 65 72 20 6f 72 20 65 6e 64 3f 2d integer or end?-
7930: 69 6e 74 65 67 65 72 3f 7d 7d 0a 2b 7d 20 7b 31 integer?}}.+} {1
7940: 20 7b 62 61 64 20 69 6e 64 65 78 20 22 62 22 3a {bad index "b":
7950: 20 6d 75 73 74 20 62 65 20 69 6e 74 65 67 65 72 must be integer
7960: 3f 5b 2b 2d 5d 69 6e 74 65 67 65 72 3f 20 6f 72 ?[+-]integer? or
7970: 20 65 6e 64 3f 5b 2b 2d 5d 69 6e 74 65 67 65 72 end?[+-]integer
7980: 3f 7d 7d 0a 20 74 65 73 74 20 6c 72 61 6e 67 65 ?}}. test lrange
7990: 2d 32 2e 34 20 7b 65 72 72 6f 72 20 63 6f 6e 64 -2.4 {error cond
79a0: 69 74 69 6f 6e 73 7d 20 7b 0a 20 20 20 20 20 6c itions} {. l
79b0: 69 73 74 20 5b 63 61 74 63 68 20 7b 6c 72 61 6e ist [catch {lran
79c0: 67 65 20 61 20 30 20 65 6e 69 67 6d 61 7d 20 6d ge a 0 enigma} m
79d0: 73 67 5d 20 24 6d 73 67 0a 2d 7d 20 7b 31 20 7b sg] $msg.-} {1 {
79e0: 62 61 64 20 69 6e 64 65 78 20 22 65 6e 69 67 6d bad index "enigm
79f0: 61 22 3a 20 6d 75 73 74 20 62 65 20 69 6e 74 65 a": must be inte
7a00: 67 65 72 20 6f 72 20 65 6e 64 3f 2d 69 6e 74 65 ger or end?-inte
7a10: 67 65 72 3f 7d 7d 0a 2b 7d 20 7b 31 20 7b 62 61 ger?}}.+} {1 {ba
7a20: 64 20 69 6e 64 65 78 20 22 65 6e 69 67 6d 61 22 d index "enigma"
7a30: 3a 20 6d 75 73 74 20 62 65 20 69 6e 74 65 67 65 : must be intege
7a40: 72 3f 5b 2b 2d 5d 69 6e 74 65 67 65 72 3f 20 6f r?[+-]integer? o
7a50: 72 20 65 6e 64 3f 5b 2b 2d 5d 69 6e 74 65 67 65 r end?[+-]intege
7a60: 72 3f 7d 7d 0a 20 74 65 73 74 20 6c 72 61 6e 67 r?}}. test lrang
7a70: 65 2d 32 2e 35 20 7b 65 72 72 6f 72 20 63 6f 6e e-2.5 {error con
7a80: 64 69 74 69 6f 6e 73 7d 20 7b 0a 20 20 20 20 20 ditions} {.
7a90: 6c 69 73 74 20 5b 63 61 74 63 68 20 7b 6c 72 61 list [catch {lra
7aa0: 6e 67 65 20 22 61 20 5c 7b 62 20 63 22 20 33 20 nge "a \{b c" 3
7ab0: 34 7d 20 6d 73 67 5d 20 24 6d 73 67 0a 20 7d 20 4} msg] $msg. }
7ac0: 7b 31 20 7b 75 6e 6d 61 74 63 68 65 64 20 6f 70 {1 {unmatched op
7ad0: 65 6e 20 62 72 61 63 65 20 69 6e 20 6c 69 73 74 en brace in list
7ae0: 7d 7d 0a 49 6e 64 65 78 3a 20 74 65 73 74 73 2f }}.Index: tests/
7af0: 6c 72 65 70 6c 61 63 65 2e 74 65 73 74 0a 3d 3d lreplace.test.==
7b00: 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d ================
7b10: 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d ================
7b20: 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d ================
7b30: 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d ================
7b40: 3d 0a 52 43 53 20 66 69 6c 65 3a 20 2f 63 76 73 =.RCS file: /cvs
7b50: 72 6f 6f 74 2f 74 63 6c 2f 74 63 6c 2f 74 65 73 root/tcl/tcl/tes
7b60: 74 73 2f 6c 72 65 70 6c 61 63 65 2e 74 65 73 74 ts/lreplace.test
7b70: 2c 76 0a 72 65 74 72 69 65 76 69 6e 67 20 72 65 ,v.retrieving re
7b80: 76 69 73 69 6f 6e 20 31 2e 37 0a 64 69 66 66 20 vision 1.7.diff
7b90: 2d 75 20 2d 72 31 2e 37 20 6c 72 65 70 6c 61 63 -u -r1.7 lreplac
7ba0: 65 2e 74 65 73 74 0a 2d 2d 2d 20 74 65 73 74 73 e.test.--- tests
7bb0: 2f 6c 72 65 70 6c 61 63 65 2e 74 65 73 74 09 31 /lreplace.test.1
7bc0: 30 20 41 70 72 20 32 30 30 30 20 31 37 3a 31 39 0 Apr 2000 17:19
7bd0: 3a 30 31 20 2d 30 30 30 30 09 31 2e 37 0a 2b 2b :01 -0000.1.7.++
7be0: 2b 20 74 65 73 74 73 2f 6c 72 65 70 6c 61 63 65 + tests/lreplace
7bf0: 2e 74 65 73 74 09 32 39 20 41 70 72 20 32 30 30 .test.29 Apr 200
7c00: 35 20 32 30 3a 33 30 3a 34 31 20 2d 30 30 30 30 5 20:30:41 -0000
7c10: 0a 40 40 20 2d 31 31 30 2c 31 33 20 2b 31 31 30 .@@ -110,13 +110
7c20: 2c 31 33 20 40 40 0a 20 7d 20 7b 31 20 7b 77 72 ,13 @@. } {1 {wr
7c30: 6f 6e 67 20 23 20 61 72 67 73 3a 20 73 68 6f 75 ong # args: shou
7c40: 6c 64 20 62 65 20 22 6c 72 65 70 6c 61 63 65 20 ld be "lreplace
7c50: 6c 69 73 74 20 66 69 72 73 74 20 6c 61 73 74 20 list first last
7c60: 3f 65 6c 65 6d 65 6e 74 20 65 6c 65 6d 65 6e 74 ?element element
7c70: 20 2e 2e 2e 3f 22 7d 7d 0a 20 74 65 73 74 20 6c ...?"}}. test l
7c80: 72 65 70 6c 61 63 65 2d 32 2e 33 20 7b 6c 72 65 replace-2.3 {lre
7c90: 70 6c 61 63 65 20 65 72 72 6f 72 73 7d 20 7b 0a place errors} {.
7ca0: 20 20 20 20 20 6c 69 73 74 20 5b 63 61 74 63 68 list [catch
7cb0: 20 7b 6c 72 65 70 6c 61 63 65 20 78 20 61 20 31 {lreplace x a 1
7cc0: 30 7d 20 6d 73 67 5d 20 24 6d 73 67 0a 2d 7d 20 0} msg] $msg.-}
7cd0: 7b 31 20 7b 62 61 64 20 69 6e 64 65 78 20 22 61 {1 {bad index "a
7ce0: 22 3a 20 6d 75 73 74 20 62 65 20 69 6e 74 65 67 ": must be integ
7cf0: 65 72 20 6f 72 20 65 6e 64 3f 2d 69 6e 74 65 67 er or end?-integ
7d00: 65 72 3f 7d 7d 0a 2b 7d 20 7b 31 20 7b 62 61 64 er?}}.+} {1 {bad
7d10: 20 69 6e 64 65 78 20 22 61 22 3a 20 6d 75 73 74 index "a": must
7d20: 20 62 65 20 69 6e 74 65 67 65 72 3f 5b 2b 2d 5d be integer?[+-]
7d30: 69 6e 74 65 67 65 72 3f 20 6f 72 20 65 6e 64 3f integer? or end?
7d40: 5b 2b 2d 5d 69 6e 74 65 67 65 72 3f 7d 7d 0a 20 [+-]integer?}}.
7d50: 74 65 73 74 20 6c 72 65 70 6c 61 63 65 2d 32 2e test lreplace-2.
7d60: 34 20 7b 6c 72 65 70 6c 61 63 65 20 65 72 72 6f 4 {lreplace erro
7d70: 72 73 7d 20 7b 0a 20 20 20 20 20 6c 69 73 74 20 rs} {. list
7d80: 5b 63 61 74 63 68 20 7b 6c 72 65 70 6c 61 63 65 [catch {lreplace
7d90: 20 78 20 31 30 20 78 7d 20 6d 73 67 5d 20 24 6d x 10 x} msg] $m
7da0: 73 67 0a 2d 7d 20 7b 31 20 7b 62 61 64 20 69 6e sg.-} {1 {bad in
7db0: 64 65 78 20 22 78 22 3a 20 6d 75 73 74 20 62 65 dex "x": must be
7dc0: 20 69 6e 74 65 67 65 72 20 6f 72 20 65 6e 64 3f integer or end?
7dd0: 2d 69 6e 74 65 67 65 72 3f 7d 7d 0a 2b 7d 20 7b -integer?}}.+} {
7de0: 31 20 7b 62 61 64 20 69 6e 64 65 78 20 22 78 22 1 {bad index "x"
7df0: 3a 20 6d 75 73 74 20 62 65 20 69 6e 74 65 67 65 : must be intege
7e00: 72 3f 5b 2b 2d 5d 69 6e 74 65 67 65 72 3f 20 6f r?[+-]integer? o
7e10: 72 20 65 6e 64 3f 5b 2b 2d 5d 69 6e 74 65 67 65 r end?[+-]intege
7e20: 72 3f 7d 7d 0a 20 74 65 73 74 20 6c 72 65 70 6c r?}}. test lrepl
7e30: 61 63 65 2d 32 2e 35 20 7b 6c 72 65 70 6c 61 63 ace-2.5 {lreplac
7e40: 65 20 65 72 72 6f 72 73 7d 20 7b 0a 20 20 20 20 e errors} {.
7e50: 20 6c 69 73 74 20 5b 63 61 74 63 68 20 7b 6c 72 list [catch {lr
7e60: 65 70 6c 61 63 65 20 78 20 31 30 20 31 78 7d 20 eplace x 10 1x}
7e70: 6d 73 67 5d 20 24 6d 73 67 0a 2d 7d 20 7b 31 20 msg] $msg.-} {1
7e80: 7b 62 61 64 20 69 6e 64 65 78 20 22 31 78 22 3a {bad index "1x":
7e90: 20 6d 75 73 74 20 62 65 20 69 6e 74 65 67 65 72 must be integer
7ea0: 20 6f 72 20 65 6e 64 3f 2d 69 6e 74 65 67 65 72 or end?-integer
7eb0: 3f 7d 7d 0a 2b 7d 20 7b 31 20 7b 62 61 64 20 69 ?}}.+} {1 {bad i
7ec0: 6e 64 65 78 20 22 31 78 22 3a 20 6d 75 73 74 20 ndex "1x": must
7ed0: 62 65 20 69 6e 74 65 67 65 72 3f 5b 2b 2d 5d 69 be integer?[+-]i
7ee0: 6e 74 65 67 65 72 3f 20 6f 72 20 65 6e 64 3f 5b nteger? or end?[
7ef0: 2b 2d 5d 69 6e 74 65 67 65 72 3f 7d 7d 0a 20 74 +-]integer?}}. t
7f00: 65 73 74 20 6c 72 65 70 6c 61 63 65 2d 32 2e 36 est lreplace-2.6
7f10: 20 7b 6c 72 65 70 6c 61 63 65 20 65 72 72 6f 72 {lreplace error
7f20: 73 7d 20 7b 0a 20 20 20 20 20 6c 69 73 74 20 5b s} {. list [
7f30: 63 61 74 63 68 20 7b 6c 72 65 70 6c 61 63 65 20 catch {lreplace
7f40: 78 20 33 20 32 7d 20 6d 73 67 5d 20 24 6d 73 67 x 3 2} msg] $msg
7f50: 0a 20 7d 20 7b 31 20 7b 6c 69 73 74 20 64 6f 65 . } {1 {list doe
7f60: 73 6e 27 74 20 63 6f 6e 74 61 69 6e 20 65 6c 65 sn't contain ele
7f70: 6d 65 6e 74 20 33 7d 7d 0a 49 6e 64 65 78 3a 20 ment 3}}.Index:
7f80: 74 65 73 74 73 2f 6c 73 65 61 72 63 68 2e 74 65 tests/lsearch.te
7f90: 73 74 0a 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d st.=============
7fa0: 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d ================
7fb0: 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d ================
7fc0: 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d ================
7fd0: 3d 3d 3d 3d 3d 3d 0a 52 43 53 20 66 69 6c 65 3a ======.RCS file:
7fe0: 20 2f 63 76 73 72 6f 6f 74 2f 74 63 6c 2f 74 63 /cvsroot/tcl/tc
7ff0: 6c 2f 74 65 73 74 73 2f 6c 73 65 61 72 63 68 2e l/tests/lsearch.
8000: 74 65 73 74 2c 76 0a 72 65 74 72 69 65 76 69 6e test,v.retrievin
8010: 67 20 72 65 76 69 73 69 6f 6e 20 31 2e 31 33 0a g revision 1.13.
8020: 64 69 66 66 20 2d 75 20 2d 72 31 2e 31 33 20 6c diff -u -r1.13 l
8030: 73 65 61 72 63 68 2e 74 65 73 74 0a 2d 2d 2d 20 search.test.---
8040: 74 65 73 74 73 2f 6c 73 65 61 72 63 68 2e 74 65 tests/lsearch.te
8050: 73 74 09 31 35 20 4f 63 74 20 32 30 30 33 20 31 st.15 Oct 2003 1
8060: 33 3a 31 35 3a 34 35 20 2d 30 30 30 30 09 31 2e 3:15:45 -0000.1.
8070: 31 33 0a 2b 2b 2b 20 74 65 73 74 73 2f 6c 73 65 13.+++ tests/lse
8080: 61 72 63 68 2e 74 65 73 74 09 32 39 20 41 70 72 arch.test.29 Apr
8090: 20 32 30 30 35 20 32 30 3a 33 30 3a 34 31 20 2d 2005 20:30:41 -
80a0: 30 30 30 30 0a 40 40 20 2d 32 38 34 2c 37 20 2b 0000.@@ -284,7 +
80b0: 32 38 34 2c 37 20 40 40 0a 20 7d 20 33 0a 20 74 284,7 @@. } 3. t
80c0: 65 73 74 20 6c 73 65 61 72 63 68 2d 31 30 2e 34 est lsearch-10.4
80d0: 20 7b 6f 66 66 73 65 74 20 73 65 61 72 63 68 69 {offset searchi
80e0: 6e 67 7d 20 7b 0a 20 20 20 20 20 6c 69 73 74 20 ng} {. list
80f0: 5b 63 61 74 63 68 20 7b 6c 73 65 61 72 63 68 20 [catch {lsearch
8100: 2d 73 74 61 72 74 20 66 6f 6f 62 61 72 20 7b 61 -start foobar {a
8110: 20 62 20 63 20 61 20 62 20 63 7d 20 61 7d 20 6d b c a b c} a} m
8120: 73 67 5d 20 24 6d 73 67 0a 2d 7d 20 7b 31 20 7b sg] $msg.-} {1 {
8130: 62 61 64 20 69 6e 64 65 78 20 22 66 6f 6f 62 61 bad index "fooba
8140: 72 22 3a 20 6d 75 73 74 20 62 65 20 69 6e 74 65 r": must be inte
8150: 67 65 72 20 6f 72 20 65 6e 64 3f 2d 69 6e 74 65 ger or end?-inte
8160: 67 65 72 3f 7d 7d 0a 2b 7d 20 7b 31 20 7b 62 61 ger?}}.+} {1 {ba
8170: 64 20 69 6e 64 65 78 20 22 66 6f 6f 62 61 72 22 d index "foobar"
8180: 3a 20 6d 75 73 74 20 62 65 20 69 6e 74 65 67 65 : must be intege
8190: 72 3f 5b 2b 2d 5d 69 6e 74 65 67 65 72 3f 20 6f r?[+-]integer? o
81a0: 72 20 65 6e 64 3f 5b 2b 2d 5d 69 6e 74 65 67 65 r end?[+-]intege
81b0: 72 3f 7d 7d 0a 20 74 65 73 74 20 6c 73 65 61 72 r?}}. test lsear
81c0: 63 68 2d 31 30 2e 35 20 7b 6f 66 66 73 65 74 20 ch-10.5 {offset
81d0: 73 65 61 72 63 68 69 6e 67 7d 20 7b 0a 20 20 20 searching} {.
81e0: 20 20 6c 69 73 74 20 5b 63 61 74 63 68 20 7b 6c list [catch {l
81f0: 73 65 61 72 63 68 20 2d 73 74 61 72 74 20 31 20 search -start 1
8200: 32 7d 20 6d 73 67 5d 20 24 6d 73 67 0a 20 7d 20 2} msg] $msg. }
8210: 7b 31 20 7b 6d 69 73 73 69 6e 67 20 73 74 61 72 {1 {missing star
8220: 74 69 6e 67 20 69 6e 64 65 78 7d 7d 0a 40 40 20 ting index}}.@@
8230: 2d 34 31 35 2c 37 20 2b 34 31 35 2c 37 20 40 40 -415,7 +415,7 @@
8240: 0a 20 7d 20 7b 31 20 7b 65 6c 65 6d 65 6e 74 20 . } {1 {element
8250: 32 20 6d 69 73 73 69 6e 67 20 66 72 6f 6d 20 73 2 missing from s
8260: 75 62 6c 69 73 74 20 22 61 20 63 22 7d 7d 0a 20 ublist "a c"}}.
8270: 74 65 73 74 20 6c 73 65 61 72 63 68 2d 32 30 2e test lsearch-20.
8280: 32 20 7b 6c 73 65 61 72 63 68 20 2d 69 6e 64 65 2 {lsearch -inde
8290: 78 20 6f 70 74 69 6f 6e 2c 20 6d 61 6c 66 6f 72 x option, malfor
82a0: 6d 65 64 20 69 6e 64 65 78 7d 20 7b 0a 20 20 20 med index} {.
82b0: 20 20 6c 69 73 74 20 5b 63 61 74 63 68 20 7b 6c list [catch {l
82c0: 73 65 61 72 63 68 20 2d 69 6e 64 65 78 20 66 6f search -index fo
82d0: 6f 20 7b 7b 61 20 63 7d 20 7b 61 20 62 7d 20 7b o {{a c} {a b} {
82e0: 61 20 61 7d 7d 20 61 7d 20 6d 73 67 5d 20 24 6d a a}} a} msg] $m
82f0: 73 67 0a 2d 7d 20 7b 31 20 7b 62 61 64 20 69 6e sg.-} {1 {bad in
8300: 64 65 78 20 22 66 6f 6f 22 3a 20 6d 75 73 74 20 dex "foo": must
8310: 62 65 20 69 6e 74 65 67 65 72 20 6f 72 20 65 6e be integer or en
8320: 64 3f 2d 69 6e 74 65 67 65 72 3f 7d 7d 0a 2b 7d d?-integer?}}.+}
8330: 20 7b 31 20 7b 62 61 64 20 69 6e 64 65 78 20 22 {1 {bad index "
8340: 66 6f 6f 22 3a 20 6d 75 73 74 20 62 65 20 69 6e foo": must be in
8350: 74 65 67 65 72 3f 5b 2b 2d 5d 69 6e 74 65 67 65 teger?[+-]intege
8360: 72 3f 20 6f 72 20 65 6e 64 3f 5b 2b 2d 5d 69 6e r? or end?[+-]in
8370: 74 65 67 65 72 3f 7d 7d 0a 20 74 65 73 74 20 6c teger?}}. test l
8380: 73 65 61 72 63 68 2d 32 30 2e 33 20 7b 6c 73 65 search-20.3 {lse
8390: 61 72 63 68 20 2d 69 6e 64 65 78 20 6f 70 74 69 arch -index opti
83a0: 6f 6e 2c 20 6d 61 6c 66 6f 72 6d 65 64 20 69 6e on, malformed in
83b0: 64 65 78 7d 20 7b 0a 20 20 20 20 20 6c 69 73 74 dex} {. list
83c0: 20 5b 63 61 74 63 68 20 7b 6c 73 65 61 72 63 68 [catch {lsearch
83d0: 20 2d 69 6e 64 65 78 20 5c 7b 20 7b 7b 61 20 63 -index \{ {{a c
83e0: 7d 20 7b 61 20 62 7d 20 7b 61 20 61 7d 7d 20 61 } {a b} {a a}} a
83f0: 7d 20 6d 73 67 5d 20 24 6d 73 67 0a 20 7d 20 7b } msg] $msg. } {
8400: 31 20 7b 75 6e 6d 61 74 63 68 65 64 20 6f 70 65 1 {unmatched ope
8410: 6e 20 62 72 61 63 65 20 69 6e 20 6c 69 73 74 7d n brace in list}
8420: 7d 0a 49 6e 64 65 78 3a 20 74 65 73 74 73 2f 6c }.Index: tests/l
8430: 73 65 74 2e 74 65 73 74 0a 3d 3d 3d 3d 3d 3d 3d set.test.=======
8440: 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d ================
8450: 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d ================
8460: 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d ================
8470: 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 0a 52 43 53 ============.RCS
8480: 20 66 69 6c 65 3a 20 2f 63 76 73 72 6f 6f 74 2f file: /cvsroot/
8490: 74 63 6c 2f 74 63 6c 2f 74 65 73 74 73 2f 6c 73 tcl/tcl/tests/ls
84a0: 65 74 2e 74 65 73 74 2c 76 0a 72 65 74 72 69 65 et.test,v.retrie
84b0: 76 69 6e 67 20 72 65 76 69 73 69 6f 6e 20 31 2e ving revision 1.
84c0: 34 0a 64 69 66 66 20 2d 75 20 2d 72 31 2e 34 20 4.diff -u -r1.4
84d0: 6c 73 65 74 2e 74 65 73 74 0a 2d 2d 2d 20 74 65 lset.test.--- te
84e0: 73 74 73 2f 6c 73 65 74 2e 74 65 73 74 09 31 34 sts/lset.test.14
84f0: 20 4e 6f 76 20 32 30 30 33 20 32 30 3a 34 34 3a Nov 2003 20:44:
8500: 34 36 20 2d 30 30 30 30 09 31 2e 34 0a 2b 2b 2b 46 -0000.1.4.+++
8510: 20 74 65 73 74 73 2f 6c 73 65 74 2e 74 65 73 74 tests/lset.test
8520: 09 32 39 20 41 70 72 20 32 30 30 35 20 32 30 3a .29 Apr 2005 20:
8530: 33 30 3a 34 31 20 2d 30 30 30 30 0a 40 40 20 2d 30:41 -0000.@@ -
8540: 35 31 2c 37 20 2b 35 31 2c 37 20 40 40 0a 20 20 51,7 +51,7 @@.
8550: 20 20 20 6c 69 73 74 20 5b 63 61 74 63 68 20 7b list [catch {
8560: 0a 20 09 74 65 73 74 65 76 61 6c 65 78 20 7b 6c . .testevalex {l
8570: 73 65 74 20 78 20 7b 7b 62 61 64 7d 31 7d 20 33 set x {{bad}1} 3
8580: 7d 0a 20 20 20 20 20 7d 20 6d 73 67 5d 20 24 6d }. } msg] $m
8590: 73 67 0a 2d 7d 20 22 31 20 7b 62 61 64 20 69 6e sg.-} "1 {bad in
85a0: 64 65 78 20 5c 22 7b 62 61 64 7d 31 5c 22 3a 20 dex \"{bad}1\":
85b0: 6d 75 73 74 20 62 65 20 69 6e 74 65 67 65 72 20 must be integer
85c0: 6f 72 20 65 6e 64 3f 2d 69 6e 74 65 67 65 72 3f or end?-integer?
85d0: 7d 22 0a 2b 7d 20 7b 31 20 7b 62 61 64 20 69 6e }".+} {1 {bad in
85e0: 64 65 78 20 22 7b 62 61 64 7d 31 22 3a 20 6d 75 dex "{bad}1": mu
85f0: 73 74 20 62 65 20 69 6e 74 65 67 65 72 3f 5b 2b st be integer?[+
8600: 2d 5d 69 6e 74 65 67 65 72 3f 20 6f 72 20 65 6e -]integer? or en
8610: 64 3f 5b 2b 2d 5d 69 6e 74 65 67 65 72 3f 7d 7d d?[+-]integer?}}
8620: 0a 20 0a 20 74 65 73 74 20 6c 73 65 74 2d 33 2e . . test lset-3.
8630: 31 20 7b 6c 73 65 74 2c 20 6e 6f 74 20 63 6f 6d 1 {lset, not com
8640: 70 69 6c 65 64 2c 20 33 20 61 72 67 73 2c 20 64 piled, 3 args, d
8650: 61 74 61 20 64 75 70 6c 69 63 61 74 65 64 7d 20 ata duplicated}
8660: 74 65 73 74 65 76 61 6c 65 78 20 7b 0a 20 20 20 testevalex {.
8670: 20 20 73 65 74 20 78 20 7b 30 20 31 20 32 7d 0a set x {0 1 2}.
8680: 40 40 20 2d 39 39 2c 37 20 2b 39 39 2c 37 20 40 @@ -99,7 +99,7 @
8690: 40 0a 20 20 20 20 20 6c 69 73 74 20 5b 63 61 74 @. list [cat
86a0: 63 68 20 7b 0a 20 09 74 65 73 74 65 76 61 6c 65 ch {. .testevale
86b0: 78 20 7b 6c 73 65 74 20 61 20 5b 6c 69 73 74 20 x {lset a [list
86c0: 32 61 32 5d 20 77 7d 0a 20 20 20 20 20 7d 20 6d 2a2] w}. } m
86d0: 73 67 5d 20 24 6d 73 67 0a 2d 7d 20 7b 31 20 7b sg] $msg.-} {1 {
86e0: 62 61 64 20 69 6e 64 65 78 20 22 32 61 32 22 3a bad index "2a2":
86f0: 20 6d 75 73 74 20 62 65 20 69 6e 74 65 67 65 72 must be integer
8700: 20 6f 72 20 65 6e 64 3f 2d 69 6e 74 65 67 65 72 or end?-integer
8710: 3f 7d 7d 0a 2b 7d 20 7b 31 20 7b 62 61 64 20 69 ?}}.+} {1 {bad i
8720: 6e 64 65 78 20 22 32 61 32 22 3a 20 6d 75 73 74 ndex "2a2": must
8730: 20 62 65 20 69 6e 74 65 67 65 72 3f 5b 2b 2d 5d be integer?[+-]
8740: 69 6e 74 65 67 65 72 3f 20 6f 72 20 65 6e 64 3f integer? or end?
8750: 5b 2b 2d 5d 69 6e 74 65 67 65 72 3f 7d 7d 0a 20 [+-]integer?}}.
8760: 0a 20 74 65 73 74 20 6c 73 65 74 2d 34 2e 33 20 . test lset-4.3
8770: 7b 6c 73 65 74 2c 20 6e 6f 74 20 63 6f 6d 70 69 {lset, not compi
8780: 6c 65 64 2c 20 33 20 61 72 67 73 2c 20 69 6e 64 led, 3 args, ind
8790: 65 78 20 6f 75 74 20 6f 66 20 72 61 6e 67 65 7d ex out of range}
87a0: 20 74 65 73 74 65 76 61 6c 65 78 20 7b 0a 20 20 testevalex {.
87b0: 20 20 20 73 65 74 20 61 20 7b 78 20 79 20 7a 7d set a {x y z}
87c0: 0a 40 40 20 2d 31 34 31 2c 37 20 2b 31 34 31 2c .@@ -141,7 +141,
87d0: 37 20 40 40 0a 20 20 20 20 20 6c 69 73 74 20 5b 7 @@. list [
87e0: 63 61 74 63 68 20 7b 0a 20 09 74 65 73 74 65 76 catch {. .testev
87f0: 61 6c 65 78 20 7b 6c 73 65 74 20 61 20 32 61 32 alex {lset a 2a2
8800: 20 77 7d 0a 20 20 20 20 20 7d 20 6d 73 67 5d 20 w}. } msg]
8810: 24 6d 73 67 0a 2d 7d 20 7b 31 20 7b 62 61 64 20 $msg.-} {1 {bad
8820: 69 6e 64 65 78 20 22 32 61 32 22 3a 20 6d 75 73 index "2a2": mus
8830: 74 20 62 65 20 69 6e 74 65 67 65 72 20 6f 72 20 t be integer or
8840: 65 6e 64 3f 2d 69 6e 74 65 67 65 72 3f 7d 7d 0a end?-integer?}}.
8850: 2b 7d 20 7b 31 20 7b 62 61 64 20 69 6e 64 65 78 +} {1 {bad index
8860: 20 22 32 61 32 22 3a 20 6d 75 73 74 20 62 65 20 "2a2": must be
8870: 69 6e 74 65 67 65 72 3f 5b 2b 2d 5d 69 6e 74 65 integer?[+-]inte
8880: 67 65 72 3f 20 6f 72 20 65 6e 64 3f 5b 2b 2d 5d ger? or end?[+-]
8890: 69 6e 74 65 67 65 72 3f 7d 7d 0a 20 0a 20 74 65 integer?}}. . te
88a0: 73 74 20 6c 73 65 74 2d 34 2e 39 20 7b 6c 73 65 st lset-4.9 {lse
88b0: 74 2c 20 6e 6f 74 20 63 6f 6d 70 69 6c 65 64 2c t, not compiled,
88c0: 20 33 20 61 72 67 73 2c 20 69 6e 64 65 78 20 6f 3 args, index o
88d0: 75 74 20 6f 66 20 72 61 6e 67 65 7d 20 74 65 73 ut of range} tes
88e0: 74 65 76 61 6c 65 78 20 7b 0a 20 20 20 20 20 73 tevalex {. s
88f0: 65 74 20 61 20 7b 78 20 79 20 7a 7d 0a 40 40 20 et a {x y z}.@@
8900: 2d 33 30 30 2c 31 32 20 2b 33 30 30 2c 31 32 20 -300,12 +300,12
8910: 40 40 0a 20 74 65 73 74 20 6c 73 65 74 2d 38 2e @@. test lset-8.
8920: 33 20 7b 6c 73 65 74 2c 20 6e 6f 74 20 63 6f 6d 3 {lset, not com
8930: 70 69 6c 65 64 2c 20 62 61 64 20 73 65 63 6f 6e piled, bad secon
8940: 64 20 69 6e 64 65 78 7d 20 74 65 73 74 65 76 61 d index} testeva
8950: 6c 65 78 20 7b 0a 20 20 20 20 20 73 65 74 20 61 lex {. set a
8960: 20 7b 7b 62 20 63 7d 20 7b 64 20 65 7d 7d 0a 20 {{b c} {d e}}.
8970: 20 20 20 20 6c 69 73 74 20 5b 63 61 74 63 68 20 list [catch
8980: 7b 74 65 73 74 65 76 61 6c 65 78 20 7b 6c 73 65 {testevalex {lse
8990: 74 20 61 20 30 20 32 61 32 20 66 7d 7d 20 6d 73 t a 0 2a2 f}} ms
89a0: 67 5d 20 24 6d 73 67 0a 2d 7d 20 7b 31 20 7b 62 g] $msg.-} {1 {b
89b0: 61 64 20 69 6e 64 65 78 20 22 32 61 32 22 3a 20 ad index "2a2":
89c0: 6d 75 73 74 20 62 65 20 69 6e 74 65 67 65 72 20 must be integer
89d0: 6f 72 20 65 6e 64 3f 2d 69 6e 74 65 67 65 72 3f or end?-integer?
89e0: 7d 7d 0a 2b 7d 20 7b 31 20 7b 62 61 64 20 69 6e }}.+} {1 {bad in
89f0: 64 65 78 20 22 32 61 32 22 3a 20 6d 75 73 74 20 dex "2a2": must
8a00: 62 65 20 69 6e 74 65 67 65 72 3f 5b 2b 2d 5d 69 be integer?[+-]i
8a10: 6e 74 65 67 65 72 3f 20 6f 72 20 65 6e 64 3f 5b nteger? or end?[
8a20: 2b 2d 5d 69 6e 74 65 67 65 72 3f 7d 7d 0a 20 0a +-]integer?}}. .
8a30: 20 74 65 73 74 20 6c 73 65 74 2d 38 2e 34 20 7b test lset-8.4 {
8a40: 6c 73 65 74 2c 20 6e 6f 74 20 63 6f 6d 70 69 6c lset, not compil
8a50: 65 64 2c 20 62 61 64 20 73 65 63 6f 6e 64 20 69 ed, bad second i
8a60: 6e 64 65 78 7d 20 74 65 73 74 65 76 61 6c 65 78 ndex} testevalex
8a70: 20 7b 0a 20 20 20 20 20 73 65 74 20 61 20 7b 7b {. set a {{
8a80: 62 20 63 7d 20 7b 64 20 65 7d 7d 0a 20 20 20 20 b c} {d e}}.
8a90: 20 6c 69 73 74 20 5b 63 61 74 63 68 20 7b 74 65 list [catch {te
8aa0: 73 74 65 76 61 6c 65 78 20 7b 6c 73 65 74 20 61 stevalex {lset a
8ab0: 20 7b 30 20 32 61 32 7d 20 66 7d 7d 20 6d 73 67 {0 2a2} f}} msg
8ac0: 5d 20 24 6d 73 67 0a 2d 7d 20 7b 31 20 7b 62 61 ] $msg.-} {1 {ba
8ad0: 64 20 69 6e 64 65 78 20 22 32 61 32 22 3a 20 6d d index "2a2": m
8ae0: 75 73 74 20 62 65 20 69 6e 74 65 67 65 72 20 6f ust be integer o
8af0: 72 20 65 6e 64 3f 2d 69 6e 74 65 67 65 72 3f 7d r end?-integer?}
8b00: 7d 0a 2b 7d 20 7b 31 20 7b 62 61 64 20 69 6e 64 }.+} {1 {bad ind
8b10: 65 78 20 22 32 61 32 22 3a 20 6d 75 73 74 20 62 ex "2a2": must b
8b20: 65 20 69 6e 74 65 67 65 72 3f 5b 2b 2d 5d 69 6e e integer?[+-]in
8b30: 74 65 67 65 72 3f 20 6f 72 20 65 6e 64 3f 5b 2b teger? or end?[+
8b40: 2d 5d 69 6e 74 65 67 65 72 3f 7d 7d 0a 20 0a 20 -]integer?}}. .
8b50: 74 65 73 74 20 6c 73 65 74 2d 38 2e 35 20 7b 6c test lset-8.5 {l
8b60: 73 65 74 2c 20 6e 6f 74 20 63 6f 6d 70 69 6c 65 set, not compile
8b70: 64 2c 20 73 65 63 6f 6e 64 20 69 6e 64 65 78 20 d, second index
8b80: 6f 75 74 20 6f 66 20 72 61 6e 67 65 7d 20 74 65 out of range} te
8b90: 73 74 65 76 61 6c 65 78 20 7b 0a 20 20 20 20 20 stevalex {.
8ba0: 73 65 74 20 61 20 7b 7b 62 20 63 7d 20 7b 64 20 set a {{b c} {d
8bb0: 65 7d 20 7b 66 20 67 7d 7d 0a 49 6e 64 65 78 3a e} {f g}}.Index:
8bc0: 20 74 65 73 74 73 2f 72 65 67 65 78 70 2e 74 65 tests/regexp.te
8bd0: 73 74 0a 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d st.=============
8be0: 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d ================
8bf0: 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d ================
8c00: 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d ================
8c10: 3d 3d 3d 3d 3d 3d 0a 52 43 53 20 66 69 6c 65 3a ======.RCS file:
8c20: 20 2f 63 76 73 72 6f 6f 74 2f 74 63 6c 2f 74 63 /cvsroot/tcl/tc
8c30: 6c 2f 74 65 73 74 73 2f 72 65 67 65 78 70 2e 74 l/tests/regexp.t
8c40: 65 73 74 2c 76 0a 72 65 74 72 69 65 76 69 6e 67 est,v.retrieving
8c50: 20 72 65 76 69 73 69 6f 6e 20 31 2e 32 35 0a 64 revision 1.25.d
8c60: 69 66 66 20 2d 75 20 2d 72 31 2e 32 35 20 72 65 iff -u -r1.25 re
8c70: 67 65 78 70 2e 74 65 73 74 0a 2d 2d 2d 20 74 65 gexp.test.--- te
8c80: 73 74 73 2f 72 65 67 65 78 70 2e 74 65 73 74 09 sts/regexp.test.
8c90: 31 34 20 4f 63 74 20 32 30 30 33 20 31 38 3a 32 14 Oct 2003 18:2
8ca0: 33 3a 33 31 20 2d 30 30 30 30 09 31 2e 32 35 0a 3:31 -0000.1.25.
8cb0: 2b 2b 2b 20 74 65 73 74 73 2f 72 65 67 65 78 70 +++ tests/regexp
8cc0: 2e 74 65 73 74 09 32 39 20 41 70 72 20 32 30 30 .test.29 Apr 200
8cd0: 35 20 32 30 3a 33 30 3a 34 31 20 2d 30 30 30 30 5 20:30:41 -0000
8ce0: 0a 40 40 20 2d 32 32 30 2c 37 20 2b 32 32 30 2c .@@ -220,7 +220,
8cf0: 37 20 40 40 0a 20 7d 20 7b 31 20 7b 63 6f 75 6c 7 @@. } {1 {coul
8d00: 64 6e 27 74 20 73 65 74 20 76 61 72 69 61 62 6c dn't set variabl
8d10: 65 20 22 66 31 28 66 32 29 22 7d 7d 0a 20 74 65 e "f1(f2)"}}. te
8d20: 73 74 20 72 65 67 65 78 70 2d 36 2e 39 20 7b 72 st regexp-6.9 {r
8d30: 65 67 65 78 70 20 65 72 72 6f 72 73 2c 20 2d 73 egexp errors, -s
8d40: 74 61 72 74 20 62 61 64 20 69 6e 74 20 63 68 65 tart bad int che
8d50: 63 6b 7d 20 7b 0a 20 20 20 20 20 6c 69 73 74 20 ck} {. list
8d60: 5b 63 61 74 63 68 20 7b 72 65 67 65 78 70 20 2d [catch {regexp -
8d70: 73 74 61 72 74 20 62 6f 67 75 73 20 7b 5e 24 7d start bogus {^$}
8d80: 20 7b 7d 7d 20 6d 73 67 5d 20 24 6d 73 67 0a 2d {}} msg] $msg.-
8d90: 7d 20 7b 31 20 7b 65 78 70 65 63 74 65 64 20 69 } {1 {expected i
8da0: 6e 74 65 67 65 72 20 62 75 74 20 67 6f 74 20 22 nteger but got "
8db0: 62 6f 67 75 73 22 7d 7d 0a 2b 7d 20 7b 31 20 7b bogus"}}.+} {1 {
8dc0: 62 61 64 20 69 6e 64 65 78 20 22 62 6f 67 75 73 bad index "bogus
8dd0: 22 3a 20 6d 75 73 74 20 62 65 20 69 6e 74 65 67 ": must be integ
8de0: 65 72 3f 5b 2b 2d 5d 69 6e 74 65 67 65 72 3f 20 er?[+-]integer?
8df0: 6f 72 20 65 6e 64 3f 5b 2b 2d 5d 69 6e 74 65 67 or end?[+-]integ
8e00: 65 72 3f 7d 7d 0a 20 0a 20 74 65 73 74 20 72 65 er?}}. . test re
8e10: 67 65 78 70 2d 37 2e 31 20 7b 62 61 73 69 63 20 gexp-7.1 {basic
8e20: 72 65 67 73 75 62 20 6f 70 65 72 61 74 69 6f 6e regsub operation
8e30: 7d 20 7b 0a 20 20 20 20 20 6c 69 73 74 20 5b 72 } {. list [r
8e40: 65 67 73 75 62 20 61 61 2b 20 78 61 78 61 61 61 egsub aa+ xaxaaa
8e50: 78 61 61 20 31 31 31 26 32 32 32 20 66 6f 6f 5d xaa 111&222 foo]
8e60: 20 24 66 6f 6f 0a 40 40 20 2d 33 37 37 2c 37 20 $foo.@@ -377,7
8e70: 2b 33 37 37 2c 37 20 40 40 0a 20 7d 20 7b 31 20 +377,7 @@. } {1
8e80: 7b 63 6f 75 6c 64 6e 27 74 20 73 65 74 20 76 61 {couldn't set va
8e90: 72 69 61 62 6c 65 20 22 66 31 28 66 32 29 22 7d riable "f1(f2)"}
8ea0: 7d 0a 20 74 65 73 74 20 72 65 67 65 78 70 2d 31 }. test regexp-1
8eb0: 31 2e 38 20 7b 72 65 67 73 75 62 20 65 72 72 6f 1.8 {regsub erro
8ec0: 72 73 2c 20 2d 73 74 61 72 74 20 62 61 64 20 69 rs, -start bad i
8ed0: 6e 74 20 63 68 65 63 6b 7d 20 7b 0a 20 20 20 20 nt check} {.
8ee0: 20 6c 69 73 74 20 5b 63 61 74 63 68 20 7b 72 65 list [catch {re
8ef0: 67 73 75 62 20 2d 73 74 61 72 74 20 62 6f 67 75 gsub -start bogu
8f00: 73 20 70 61 74 74 65 72 6e 20 73 74 72 69 6e 67 s pattern string
8f10: 20 72 65 70 20 76 61 72 7d 20 6d 73 67 5d 20 24 rep var} msg] $
8f20: 6d 73 67 0a 2d 7d 20 7b 31 20 7b 65 78 70 65 63 msg.-} {1 {expec
8f30: 74 65 64 20 69 6e 74 65 67 65 72 20 62 75 74 20 ted integer but
8f40: 67 6f 74 20 22 62 6f 67 75 73 22 7d 7d 0a 2b 7d got "bogus"}}.+}
8f50: 20 7b 31 20 7b 62 61 64 20 69 6e 64 65 78 20 22 {1 {bad index "
8f60: 62 6f 67 75 73 22 3a 20 6d 75 73 74 20 62 65 20 bogus": must be
8f70: 69 6e 74 65 67 65 72 3f 5b 2b 2d 5d 69 6e 74 65 integer?[+-]inte
8f80: 67 65 72 3f 20 6f 72 20 65 6e 64 3f 5b 2b 2d 5d ger? or end?[+-]
8f90: 69 6e 74 65 67 65 72 3f 7d 7d 0a 20 74 65 73 74 integer?}}. test
8fa0: 20 72 65 67 65 78 70 2d 31 31 2e 39 20 7b 72 65 regexp-11.9 {re
8fb0: 67 73 75 62 20 77 69 74 68 6f 75 74 20 66 69 6e gsub without fin
8fc0: 61 6c 20 76 61 72 69 61 62 6c 65 20 6e 61 6d 65 al variable name
8fd0: 20 72 65 74 75 72 6e 73 20 76 61 6c 75 65 7d 20 returns value}
8fe0: 7b 0a 20 20 20 20 20 72 65 67 73 75 62 20 62 20 {. regsub b
8ff0: 61 62 61 63 61 20 58 0a 20 7d 20 7b 61 58 61 63 abaca X. } {aXac
9000: 61 7d 0a 40 40 20 2d 34 36 37 2c 36 20 2b 34 36 a}.@@ -467,6 +46
9010: 37 2c 32 30 20 40 40 0a 20 74 65 73 74 20 72 65 7,20 @@. test re
9020: 67 65 78 70 2d 31 35 2e 36 20 7b 72 65 67 65 78 gexp-15.6 {regex
9030: 70 20 2d 73 74 61 72 74 2c 20 6c 6f 73 73 20 6f p -start, loss o
9040: 66 20 5e 24 20 62 65 68 61 76 69 6f 72 7d 20 7b f ^$ behavior} {
9050: 0a 20 20 20 20 20 6c 69 73 74 20 5b 72 65 67 65 . list [rege
9060: 78 70 20 2d 73 74 61 72 74 20 32 20 7b 5e 24 7d xp -start 2 {^$}
9070: 20 7b 7d 5d 0a 20 7d 20 7b 30 7d 0a 2b 74 65 73 {}]. } {0}.+tes
9080: 74 20 72 65 67 65 78 70 2d 31 35 2e 37 20 7b 72 t regexp-15.7 {r
9090: 65 67 65 78 70 20 2d 73 74 61 72 74 2c 20 64 6f egexp -start, do
90a0: 75 62 6c 65 20 6f 70 74 69 6f 6e 7d 20 7b 0a 2b uble option} {.+
90b0: 20 20 20 20 72 65 67 65 78 70 20 2d 73 74 61 72 regexp -star
90c0: 74 20 32 20 2d 73 74 61 72 74 20 30 20 61 20 61 t 2 -start 0 a a
90d0: 62 63 0a 2b 7d 20 31 0a 2b 74 65 73 74 20 72 65 bc.+} 1.+test re
90e0: 67 65 78 70 2d 31 35 2e 38 20 7b 72 65 67 65 78 gexp-15.8 {regex
90f0: 70 20 2d 73 74 61 72 74 2c 20 64 6f 75 62 6c 65 p -start, double
9100: 20 6f 70 74 69 6f 6e 7d 20 7b 0a 2b 20 20 20 20 option} {.+
9110: 72 65 67 65 78 70 20 2d 73 74 61 72 74 20 30 20 regexp -start 0
9120: 2d 73 74 61 72 74 20 32 20 61 20 61 62 63 0a 2b -start 2 a abc.+
9130: 7d 20 30 0a 2b 74 65 73 74 20 72 65 67 65 78 70 } 0.+test regexp
9140: 2d 31 35 2e 39 20 7b 72 65 67 65 78 70 20 2d 73 -15.9 {regexp -s
9150: 74 61 72 74 2c 20 65 6e 64 20 72 65 6c 61 74 69 tart, end relati
9160: 76 65 20 69 6e 64 65 78 7d 20 7b 0a 2b 20 20 20 ve index} {.+
9170: 20 63 61 74 63 68 20 7b 75 6e 73 65 74 20 78 7d catch {unset x}
9180: 0a 2b 20 20 20 20 6c 69 73 74 20 5b 72 65 67 65 .+ list [rege
9190: 78 70 20 2d 73 74 61 72 74 20 65 6e 64 20 7b 5c xp -start end {\
91a0: 64 7d 20 31 61 62 63 32 64 65 33 20 78 5d 20 5b d} 1abc2de3 x] [
91b0: 69 6e 66 6f 20 65 78 69 73 74 73 20 78 5d 0a 2b info exists x].+
91c0: 7d 20 7b 30 20 30 7d 0a 2b 74 65 73 74 20 72 65 } {0 0}.+test re
91d0: 67 65 78 70 2d 31 35 2e 31 30 20 7b 72 65 67 65 gexp-15.10 {rege
91e0: 78 70 20 2d 73 74 61 72 74 2c 20 65 6e 64 20 72 xp -start, end r
91f0: 65 6c 61 74 69 76 65 20 69 6e 64 65 78 7d 20 7b elative index} {
9200: 0a 2b 20 20 20 20 63 61 74 63 68 20 7b 75 6e 73 .+ catch {uns
9210: 65 74 20 78 7d 0a 2b 20 20 20 20 6c 69 73 74 20 et x}.+ list
9220: 5b 72 65 67 65 78 70 20 2d 73 74 61 72 74 20 65 [regexp -start e
9230: 6e 64 2d 31 20 7b 5c 64 7d 20 31 61 62 63 32 64 nd-1 {\d} 1abc2d
9240: 65 33 20 78 5d 20 5b 69 6e 66 6f 20 65 78 69 73 e3 x] [info exis
9250: 74 73 20 78 5d 20 24 78 0a 2b 7d 20 7b 31 20 31 ts x] $x.+} {1 1
9260: 20 33 7d 0a 20 0a 20 74 65 73 74 20 72 65 67 65 3}. . test rege
9270: 78 70 2d 31 36 2e 31 20 7b 72 65 67 73 75 62 20 xp-16.1 {regsub
9280: 2d 73 74 61 72 74 7d 20 7b 0a 20 20 20 20 20 63 -start} {. c
9290: 61 74 63 68 20 7b 75 6e 73 65 74 20 78 7d 0a 40 atch {unset x}.@
92a0: 40 20 2d 34 38 35 2c 36 20 2b 34 39 39 2c 31 38 @ -485,6 +499,18
92b0: 20 40 40 0a 20 20 20 20 20 6c 61 70 70 65 6e 64 @@. lappend
92c0: 20 6f 75 74 20 5b 72 65 67 73 75 62 20 2d 73 74 out [regsub -st
92d0: 61 72 74 20 30 20 2d 61 6c 6c 20 7b 5c 41 28 5c art 0 -all {\A(\
92e0: 77 29 7d 20 7b 61 62 63 64 65 7d 20 7b 2f 5c 31 w)} {abcde} {/\1
92f0: 7d 20 78 5d 20 24 78 0a 20 20 20 20 20 6c 61 70 } x] $x. lap
9300: 70 65 6e 64 20 6f 75 74 20 5b 72 65 67 73 75 62 pend out [regsub
9310: 20 2d 73 74 61 72 74 20 32 20 2d 61 6c 6c 20 7b -start 2 -all {
9320: 5c 41 28 5c 77 29 7d 20 7b 61 62 63 64 65 7d 20 \A(\w)} {abcde}
9330: 7b 2f 5c 31 7d 20 78 5d 20 24 78 0a 20 7d 20 7b {/\1} x] $x. } {
9340: 35 20 2f 61 2f 62 2f 63 2f 64 2f 65 20 33 20 61 5 /a/b/c/d/e 3 a
9350: 62 2f 63 2f 64 2f 65 7d 0a 2b 74 65 73 74 20 72 b/c/d/e}.+test r
9360: 65 67 65 78 70 2d 31 36 2e 35 20 7b 72 65 67 73 egexp-16.5 {regs
9370: 75 62 20 2d 73 74 61 72 74 2c 20 64 6f 75 62 6c ub -start, doubl
9380: 65 20 6f 70 74 69 6f 6e 7d 20 7b 0a 2b 20 20 20 e option} {.+
9390: 20 6c 69 73 74 20 5b 72 65 67 73 75 62 20 2d 73 list [regsub -s
93a0: 74 61 72 74 20 32 20 2d 73 74 61 72 74 20 30 20 tart 2 -start 0
93b0: 61 20 61 62 63 20 63 20 78 5d 20 24 78 0a 2b 7d a abc c x] $x.+}
93c0: 20 7b 31 20 63 62 63 7d 0a 2b 74 65 73 74 20 72 {1 cbc}.+test r
93d0: 65 67 65 78 70 2d 31 36 2e 36 20 7b 72 65 67 73 egexp-16.6 {regs
93e0: 75 62 20 2d 73 74 61 72 74 2c 20 64 6f 75 62 6c ub -start, doubl
93f0: 65 20 6f 70 74 69 6f 6e 7d 20 7b 0a 2b 20 20 20 e option} {.+
9400: 20 6c 69 73 74 20 5b 72 65 67 73 75 62 20 2d 73 list [regsub -s
9410: 74 61 72 74 20 30 20 2d 73 74 61 72 74 20 32 20 tart 0 -start 2
9420: 61 20 61 62 63 20 63 20 78 5d 20 24 78 0a 2b 7d a abc c x] $x.+}
9430: 20 7b 30 20 61 62 63 7d 0a 2b 74 65 73 74 20 72 {0 abc}.+test r
9440: 65 67 65 78 70 2d 31 36 2e 37 20 7b 72 65 67 65 egexp-16.7 {rege
9450: 78 70 20 2d 73 74 61 72 74 2c 20 65 6e 64 20 72 xp -start, end r
9460: 65 6c 61 74 69 76 65 20 69 6e 64 65 78 7d 20 7b elative index} {
9470: 0a 2b 20 20 20 20 6c 69 73 74 20 5b 72 65 67 73 .+ list [regs
9480: 75 62 20 2d 73 74 61 72 74 20 65 6e 64 20 61 20 ub -start end a
9490: 61 61 61 20 62 20 78 5d 20 24 78 0a 2b 7d 20 7b aaa b x] $x.+} {
94a0: 30 20 61 61 61 7d 0a 2b 74 65 73 74 20 72 65 67 0 aaa}.+test reg
94b0: 65 78 70 2d 31 36 2e 38 20 7b 72 65 67 65 78 70 exp-16.8 {regexp
94c0: 20 2d 73 74 61 72 74 2c 20 65 6e 64 20 72 65 6c -start, end rel
94d0: 61 74 69 76 65 20 69 6e 64 65 78 7d 20 7b 0a 2b ative index} {.+
94e0: 20 20 20 20 6c 69 73 74 20 5b 72 65 67 73 75 62 list [regsub
94f0: 20 2d 73 74 61 72 74 20 65 6e 64 2d 31 20 61 20 -start end-1 a
9500: 61 61 61 20 62 20 78 5d 20 24 78 0a 2b 7d 20 7b aaa b x] $x.+} {
9510: 31 20 61 61 62 7d 0a 20 0a 20 74 65 73 74 20 72 1 aab}. . test r
9520: 65 67 65 78 70 2d 31 37 2e 31 20 7b 72 65 67 65 egexp-17.1 {rege
9530: 78 70 20 2d 69 6e 6c 69 6e 65 7d 20 7b 0a 20 20 xp -inline} {.
9540: 20 20 20 72 65 67 65 78 70 20 2d 69 6e 6c 69 6e regexp -inlin
9550: 65 20 62 20 61 62 61 62 61 0a 49 6e 64 65 78 3a e b ababa.Index:
9560: 20 74 65 73 74 73 2f 72 65 67 65 78 70 43 6f 6d tests/regexpCom
9570: 70 2e 74 65 73 74 0a 3d 3d 3d 3d 3d 3d 3d 3d 3d p.test.=========
9580: 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d ================
9590: 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d ================
95a0: 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d ================
95b0: 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 0a 52 43 53 20 66 ==========.RCS f
95c0: 69 6c 65 3a 20 2f 63 76 73 72 6f 6f 74 2f 74 63 ile: /cvsroot/tc
95d0: 6c 2f 74 63 6c 2f 74 65 73 74 73 2f 72 65 67 65 l/tcl/tests/rege
95e0: 78 70 43 6f 6d 70 2e 74 65 73 74 2c 76 0a 72 65 xpComp.test,v.re
95f0: 74 72 69 65 76 69 6e 67 20 72 65 76 69 73 69 6f trieving revisio
9600: 6e 20 31 2e 39 0a 64 69 66 66 20 2d 75 20 2d 72 n 1.9.diff -u -r
9610: 31 2e 39 20 72 65 67 65 78 70 43 6f 6d 70 2e 74 1.9 regexpComp.t
9620: 65 73 74 0a 2d 2d 2d 20 74 65 73 74 73 2f 72 65 est.--- tests/re
9630: 67 65 78 70 43 6f 6d 70 2e 74 65 73 74 09 32 35 gexpComp.test.25
9640: 20 4d 61 79 20 32 30 30 34 20 31 38 3a 35 38 3a May 2004 18:58:
9650: 30 35 20 2d 30 30 30 30 09 31 2e 39 0a 2b 2b 2b 05 -0000.1.9.+++
9660: 20 74 65 73 74 73 2f 72 65 67 65 78 70 43 6f 6d tests/regexpCom
9670: 70 2e 74 65 73 74 09 32 39 20 41 70 72 20 32 30 p.test.29 Apr 20
9680: 30 35 20 32 30 3a 33 30 3a 34 31 20 2d 30 30 30 05 20:30:41 -000
9690: 30 0a 40 40 20 2d 33 30 31 2c 37 20 2b 33 30 31 0.@@ -301,7 +301
96a0: 2c 37 20 40 40 0a 20 20 20 20 20 65 76 61 6c 49 ,7 @@. evalI
96b0: 6e 50 72 6f 63 20 7b 0a 20 09 6c 69 73 74 20 5b nProc {. .list [
96c0: 63 61 74 63 68 20 7b 72 65 67 65 78 70 20 2d 73 catch {regexp -s
96d0: 74 61 72 74 20 62 6f 67 75 73 20 7b 5e 24 7d 20 tart bogus {^$}
96e0: 7b 7d 7d 20 6d 73 67 5d 20 24 6d 73 67 0a 20 20 {}} msg] $msg.
96f0: 20 20 20 7d 0a 2d 7d 20 7b 31 20 7b 65 78 70 65 }.-} {1 {expe
9700: 63 74 65 64 20 69 6e 74 65 67 65 72 20 62 75 74 cted integer but
9710: 20 67 6f 74 20 22 62 6f 67 75 73 22 7d 7d 0a 2b got "bogus"}}.+
9720: 7d 20 7b 31 20 7b 62 61 64 20 69 6e 64 65 78 20 } {1 {bad index
9730: 22 62 6f 67 75 73 22 3a 20 6d 75 73 74 20 62 65 "bogus": must be
9740: 20 69 6e 74 65 67 65 72 3f 5b 2b 2d 5d 69 6e 74 integer?[+-]int
9750: 65 67 65 72 3f 20 6f 72 20 65 6e 64 3f 5b 2b 2d eger? or end?[+-
9760: 5d 69 6e 74 65 67 65 72 3f 7d 7d 0a 20 0a 20 74 ]integer?}}. . t
9770: 65 73 74 20 72 65 67 65 78 70 43 6f 6d 70 2d 37 est regexpComp-7
9780: 2e 31 20 7b 62 61 73 69 63 20 72 65 67 73 75 62 .1 {basic regsub
9790: 20 6f 70 65 72 61 74 69 6f 6e 7d 20 7b 0a 20 20 operation} {.
97a0: 20 20 20 65 76 61 6c 49 6e 50 72 6f 63 20 7b 0a evalInProc {.
97b0: 40 40 20 2d 35 34 32 2c 37 20 2b 35 34 32 2c 37 @@ -542,7 +542,7
97c0: 20 40 40 0a 20 20 20 20 20 65 76 61 6c 49 6e 50 @@. evalInP
97d0: 72 6f 63 20 7b 0a 20 09 6c 69 73 74 20 5b 63 61 roc {. .list [ca
97e0: 74 63 68 20 7b 72 65 67 73 75 62 20 2d 73 74 61 tch {regsub -sta
97f0: 72 74 20 62 6f 67 75 73 20 70 61 74 74 65 72 6e rt bogus pattern
9800: 20 73 74 72 69 6e 67 20 72 65 70 20 76 61 72 7d string rep var}
9810: 20 6d 73 67 5d 20 24 6d 73 67 0a 20 20 20 20 20 msg] $msg.
9820: 7d 0a 2d 7d 20 7b 31 20 7b 65 78 70 65 63 74 65 }.-} {1 {expecte
9830: 64 20 69 6e 74 65 67 65 72 20 62 75 74 20 67 6f d integer but go
9840: 74 20 22 62 6f 67 75 73 22 7d 7d 0a 2b 7d 20 7b t "bogus"}}.+} {
9850: 31 20 7b 62 61 64 20 69 6e 64 65 78 20 22 62 6f 1 {bad index "bo
9860: 67 75 73 22 3a 20 6d 75 73 74 20 62 65 20 69 6e gus": must be in
9870: 74 65 67 65 72 3f 5b 2b 2d 5d 69 6e 74 65 67 65 teger?[+-]intege
9880: 72 3f 20 6f 72 20 65 6e 64 3f 5b 2b 2d 5d 69 6e r? or end?[+-]in
9890: 74 65 67 65 72 3f 7d 7d 0a 20 0a 20 23 20 54 68 teger?}}. . # Th
98a0: 69 73 20 74 65 73 74 20 63 72 61 73 68 65 73 20 is test crashes
98b0: 6f 6e 20 74 68 65 20 4d 61 63 20 75 6e 6c 65 73 on the Mac unles
98c0: 73 20 79 6f 75 20 69 6e 63 72 65 61 73 65 20 74 s you increase t
98d0: 68 65 20 53 74 61 63 6b 20 53 70 61 63 65 20 74 he Stack Space t
98e0: 6f 20 61 62 6f 75 74 20 31 0a 20 23 20 4d 65 67 o about 1. # Meg
98f0: 2e 20 20 54 68 69 73 20 69 73 20 70 72 6f 62 61 . This is proba
9900: 62 6c 79 20 62 69 67 67 65 72 20 74 68 61 6e 20 bly bigger than
9910: 6d 6f 73 74 20 75 73 65 72 73 20 77 61 6e 74 2e most users want.
9920: 2e 2e 20 0a 49 6e 64 65 78 3a 20 74 65 73 74 73 .. .Index: tests
9930: 2f 73 74 72 69 6e 67 2e 74 65 73 74 0a 3d 3d 3d /string.test.===
9940: 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d ================
9950: 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d ================
9960: 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d ================
9970: 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d ================
9980: 0a 52 43 53 20 66 69 6c 65 3a 20 2f 63 76 73 72 .RCS file: /cvsr
9990: 6f 6f 74 2f 74 63 6c 2f 74 63 6c 2f 74 65 73 74 oot/tcl/tcl/test
99a0: 73 2f 73 74 72 69 6e 67 2e 74 65 73 74 2c 76 0a s/string.test,v.
99b0: 72 65 74 72 69 65 76 69 6e 67 20 72 65 76 69 73 retrieving revis
99c0: 69 6f 6e 20 31 2e 34 35 0a 64 69 66 66 20 2d 75 ion 1.45.diff -u
99d0: 20 2d 72 31 2e 34 35 20 73 74 72 69 6e 67 2e 74 -r1.45 string.t
99e0: 65 73 74 0a 2d 2d 2d 20 74 65 73 74 73 2f 73 74 est.--- tests/st
99f0: 72 69 6e 67 2e 74 65 73 74 09 32 32 20 41 70 72 ring.test.22 Apr
9a00: 20 32 30 30 35 20 31 36 3a 32 36 3a 30 34 20 2d 2005 16:26:04 -
9a10: 30 30 30 30 09 31 2e 34 35 0a 2b 2b 2b 20 74 65 0000.1.45.+++ te
9a20: 73 74 73 2f 73 74 72 69 6e 67 2e 74 65 73 74 09 sts/string.test.
9a30: 32 39 20 41 70 72 20 32 30 30 35 20 32 30 3a 33 29 Apr 2005 20:3
9a40: 30 3a 34 31 20 2d 30 30 30 30 0a 40 40 20 2d 31 0:41 -0000.@@ -1
9a50: 37 36 2c 37 20 2b 31 37 36 2c 37 20 40 40 0a 20 76,7 +176,7 @@.
9a60: 7d 20 7b 31 20 7b 77 72 6f 6e 67 20 23 20 61 72 } {1 {wrong # ar
9a70: 67 73 3a 20 73 68 6f 75 6c 64 20 62 65 20 22 73 gs: should be "s
9a80: 74 72 69 6e 67 20 66 69 72 73 74 20 73 75 62 53 tring first subS
9a90: 74 72 69 6e 67 20 73 74 72 69 6e 67 20 3f 73 74 tring string ?st
9aa0: 61 72 74 49 6e 64 65 78 3f 22 7d 7d 0a 20 74 65 artIndex?"}}. te
9ab0: 73 74 20 73 74 72 69 6e 67 2d 34 2e 32 20 7b 73 st string-4.2 {s
9ac0: 74 72 69 6e 67 20 66 69 72 73 74 2c 20 62 61 64 tring first, bad
9ad0: 20 61 72 67 73 7d 20 7b 0a 20 20 20 20 20 6c 69 args} {. li
9ae0: 73 74 20 5b 63 61 74 63 68 20 7b 73 74 72 69 6e st [catch {strin
9af0: 67 20 66 69 72 73 74 20 61 20 62 20 63 7d 20 6d g first a b c} m
9b00: 73 67 5d 20 24 6d 73 67 0a 2d 7d 20 7b 31 20 7b sg] $msg.-} {1 {
9b10: 62 61 64 20 69 6e 64 65 78 20 22 63 22 3a 20 6d bad index "c": m
9b20: 75 73 74 20 62 65 20 69 6e 74 65 67 65 72 20 6f ust be integer o
9b30: 72 20 65 6e 64 3f 2d 69 6e 74 65 67 65 72 3f 7d r end?-integer?}
9b40: 7d 0a 2b 7d 20 7b 31 20 7b 62 61 64 20 69 6e 64 }.+} {1 {bad ind
9b50: 65 78 20 22 63 22 3a 20 6d 75 73 74 20 62 65 20 ex "c": must be
9b60: 69 6e 74 65 67 65 72 3f 5b 2b 2d 5d 69 6e 74 65 integer?[+-]inte
9b70: 67 65 72 3f 20 6f 72 20 65 6e 64 3f 5b 2b 2d 5d ger? or end?[+-]
9b80: 69 6e 74 65 67 65 72 3f 7d 7d 0a 20 74 65 73 74 integer?}}. test
9b90: 20 73 74 72 69 6e 67 2d 34 2e 33 20 7b 73 74 72 string-4.3 {str
9ba0: 69 6e 67 20 66 69 72 73 74 2c 20 74 6f 6f 20 6d ing first, too m
9bb0: 61 6e 79 20 61 72 67 73 7d 20 7b 0a 20 20 20 20 any args} {.
9bc0: 20 6c 69 73 74 20 5b 63 61 74 63 68 20 7b 73 74 list [catch {st
9bd0: 72 69 6e 67 20 66 69 72 73 74 20 61 20 62 20 35 ring first a b 5
9be0: 20 64 7d 20 6d 73 67 5d 20 24 6d 73 67 0a 20 7d d} msg] $msg. }
9bf0: 20 7b 31 20 7b 77 72 6f 6e 67 20 23 20 61 72 67 {1 {wrong # arg
9c00: 73 3a 20 73 68 6f 75 6c 64 20 62 65 20 22 73 74 s: should be "st
9c10: 72 69 6e 67 20 66 69 72 73 74 20 73 75 62 53 74 ring first subSt
9c20: 72 69 6e 67 20 73 74 72 69 6e 67 20 3f 73 74 61 ring string ?sta
9c30: 72 74 49 6e 64 65 78 3f 22 7d 7d 0a 40 40 20 2d rtIndex?"}}.@@ -
9c40: 32 34 31 2c 37 20 2b 32 34 31 2c 37 20 40 40 0a 241,7 +241,7 @@.
9c50: 20 7d 20 7b 30 20 7b 7d 7d 0a 20 74 65 73 74 20 } {0 {}}. test
9c60: 73 74 72 69 6e 67 2d 35 2e 37 20 7b 73 74 72 69 string-5.7 {stri
9c70: 6e 67 20 69 6e 64 65 78 7d 20 7b 0a 20 20 20 20 ng index} {.
9c80: 20 6c 69 73 74 20 5b 63 61 74 63 68 20 7b 73 74 list [catch {st
9c90: 72 69 6e 67 20 69 6e 64 65 78 20 61 20 78 79 7a ring index a xyz
9ca0: 7d 20 6d 73 67 5d 20 24 6d 73 67 0a 2d 7d 20 7b } msg] $msg.-} {
9cb0: 31 20 7b 62 61 64 20 69 6e 64 65 78 20 22 78 79 1 {bad index "xy
9cc0: 7a 22 3a 20 6d 75 73 74 20 62 65 20 69 6e 74 65 z": must be inte
9cd0: 67 65 72 20 6f 72 20 65 6e 64 3f 2d 69 6e 74 65 ger or end?-inte
9ce0: 67 65 72 3f 7d 7d 0a 2b 7d 20 7b 31 20 7b 62 61 ger?}}.+} {1 {ba
9cf0: 64 20 69 6e 64 65 78 20 22 78 79 7a 22 3a 20 6d d index "xyz": m
9d00: 75 73 74 20 62 65 20 69 6e 74 65 67 65 72 3f 5b ust be integer?[
9d10: 2b 2d 5d 69 6e 74 65 67 65 72 3f 20 6f 72 20 65 +-]integer? or e
9d20: 6e 64 3f 5b 2b 2d 5d 69 6e 74 65 67 65 72 3f 7d nd?[+-]integer?}
9d30: 7d 0a 20 74 65 73 74 20 73 74 72 69 6e 67 2d 35 }. test string-5
9d40: 2e 38 20 7b 73 74 72 69 6e 67 20 69 6e 64 65 78 .8 {string index
9d50: 7d 20 7b 0a 20 20 20 20 20 73 74 72 69 6e 67 20 } {. string
9d60: 69 6e 64 65 78 20 61 62 63 20 65 6e 64 0a 20 7d index abc end. }
9d70: 20 63 0a 40 40 20 2d 32 37 36 2c 31 30 20 2b 32 c.@@ -276,10 +2
9d80: 37 36 2c 31 30 20 40 40 0a 20 7d 20 30 0a 20 74 76,10 @@. } 0. t
9d90: 65 73 74 20 73 74 72 69 6e 67 2d 35 2e 31 37 20 est string-5.17
9da0: 7b 73 74 72 69 6e 67 20 69 6e 64 65 78 2c 20 62 {string index, b
9db0: 61 64 20 69 6e 74 65 67 65 72 7d 20 7b 0a 20 20 ad integer} {.
9dc0: 20 20 20 6c 69 73 74 20 5b 63 61 74 63 68 20 7b list [catch {
9dd0: 73 74 72 69 6e 67 20 69 6e 64 65 78 20 22 61 62 string index "ab
9de0: 63 22 20 30 38 7d 20 6d 73 67 5d 20 24 6d 73 67 c" 08} msg] $msg
9df0: 0a 2d 7d 20 7b 31 20 7b 62 61 64 20 69 6e 64 65 .-} {1 {bad inde
9e00: 78 20 22 30 38 22 3a 20 6d 75 73 74 20 62 65 20 x "08": must be
9e10: 69 6e 74 65 67 65 72 20 6f 72 20 65 6e 64 3f 2d integer or end?-
9e20: 69 6e 74 65 67 65 72 3f 20 28 6c 6f 6f 6b 73 20 integer? (looks
9e30: 6c 69 6b 65 20 69 6e 76 61 6c 69 64 20 6f 63 74 like invalid oct
9e40: 61 6c 20 6e 75 6d 62 65 72 29 7d 7d 0a 2b 7d 20 al number)}}.+}
9e50: 7b 31 20 7b 62 61 64 20 69 6e 64 65 78 20 22 30 {1 {bad index "0
9e60: 38 22 3a 20 6d 75 73 74 20 62 65 20 69 6e 74 65 8": must be inte
9e70: 67 65 72 3f 5b 2b 2d 5d 69 6e 74 65 67 65 72 3f ger?[+-]integer?
9e80: 20 6f 72 20 65 6e 64 3f 5b 2b 2d 5d 69 6e 74 65 or end?[+-]inte
9e90: 67 65 72 3f 20 28 6c 6f 6f 6b 73 20 6c 69 6b 65 ger? (looks like
9ea0: 20 69 6e 76 61 6c 69 64 20 6f 63 74 61 6c 20 6e invalid octal n
9eb0: 75 6d 62 65 72 29 7d 7d 0a 20 74 65 73 74 20 73 umber)}}. test s
9ec0: 74 72 69 6e 67 2d 35 2e 31 38 20 7b 73 74 72 69 tring-5.18 {stri
9ed0: 6e 67 20 69 6e 64 65 78 2c 20 62 61 64 20 69 6e ng index, bad in
9ee0: 74 65 67 65 72 7d 20 7b 0a 20 20 20 20 20 6c 69 teger} {. li
9ef0: 73 74 20 5b 63 61 74 63 68 20 7b 73 74 72 69 6e st [catch {strin
9f00: 67 20 69 6e 64 65 78 20 22 61 62 63 22 20 65 6e g index "abc" en
9f10: 64 2d 30 30 32 38 39 7d 20 6d 73 67 5d 20 24 6d d-00289} msg] $m
9f20: 73 67 0a 2d 7d 20 7b 31 20 7b 62 61 64 20 69 6e sg.-} {1 {bad in
9f30: 64 65 78 20 22 65 6e 64 2d 30 30 32 38 39 22 3a dex "end-00289":
9f40: 20 6d 75 73 74 20 62 65 20 69 6e 74 65 67 65 72 must be integer
9f50: 20 6f 72 20 65 6e 64 3f 2d 69 6e 74 65 67 65 72 or end?-integer
9f60: 3f 20 28 6c 6f 6f 6b 73 20 6c 69 6b 65 20 69 6e ? (looks like in
9f70: 76 61 6c 69 64 20 6f 63 74 61 6c 20 6e 75 6d 62 valid octal numb
9f80: 65 72 29 7d 7d 0a 2b 7d 20 7b 31 20 7b 62 61 64 er)}}.+} {1 {bad
9f90: 20 69 6e 64 65 78 20 22 65 6e 64 2d 30 30 32 38 index "end-0028
9fa0: 39 22 3a 20 6d 75 73 74 20 62 65 20 69 6e 74 65 9": must be inte
9fb0: 67 65 72 3f 5b 2b 2d 5d 69 6e 74 65 67 65 72 3f ger?[+-]integer?
9fc0: 20 6f 72 20 65 6e 64 3f 5b 2b 2d 5d 69 6e 74 65 or end?[+-]inte
9fd0: 67 65 72 3f 20 28 6c 6f 6f 6b 73 20 6c 69 6b 65 ger? (looks like
9fe0: 20 69 6e 76 61 6c 69 64 20 6f 63 74 61 6c 20 6e invalid octal n
9ff0: 75 6d 62 65 72 29 7d 7d 0a 20 74 65 73 74 20 73 umber)}}. test s
a000: 74 72 69 6e 67 2d 35 2e 31 39 20 7b 73 74 72 69 tring-5.19 {stri
a010: 6e 67 20 69 6e 64 65 78 2c 20 62 79 74 65 61 72 ng index, bytear
a020: 72 61 79 20 6f 62 6a 65 63 74 20 6f 75 74 20 6f ray object out o
a030: 66 20 62 6f 75 6e 64 73 7d 20 7b 0a 20 20 20 20 f bounds} {.
a040: 20 73 74 72 69 6e 67 20 69 6e 64 65 78 20 5b 62 string index [b
a050: 69 6e 61 72 79 20 66 6f 72 6d 61 74 20 49 2a 20 inary format I*
a060: 7b 30 78 35 30 35 31 35 32 35 33 20 30 78 35 32 {0x50515253 0x52
a070: 7d 5d 20 2d 31 0a 20 7d 20 7b 7d 0a 40 40 20 2d }] -1. } {}.@@ -
a080: 36 36 37 2c 37 20 2b 36 36 37 2c 37 20 40 40 0a 667,7 +667,7 @@.
a090: 20 7d 20 7b 31 20 7b 77 72 6f 6e 67 20 23 20 61 } {1 {wrong # a
a0a0: 72 67 73 3a 20 73 68 6f 75 6c 64 20 62 65 20 22 rgs: should be "
a0b0: 73 74 72 69 6e 67 20 6c 61 73 74 20 73 75 62 53 string last subS
a0c0: 74 72 69 6e 67 20 73 74 72 69 6e 67 20 3f 73 74 tring string ?st
a0d0: 61 72 74 49 6e 64 65 78 3f 22 7d 7d 0a 20 74 65 artIndex?"}}. te
a0e0: 73 74 20 73 74 72 69 6e 67 2d 37 2e 32 20 7b 73 st string-7.2 {s
a0f0: 74 72 69 6e 67 20 6c 61 73 74 2c 20 62 61 64 20 tring last, bad
a100: 61 72 67 73 7d 20 7b 0a 20 20 20 20 20 6c 69 73 args} {. lis
a110: 74 20 5b 63 61 74 63 68 20 7b 73 74 72 69 6e 67 t [catch {string
a120: 20 6c 61 73 74 20 61 20 62 20 63 7d 20 6d 73 67 last a b c} msg
a130: 5d 20 24 6d 73 67 0a 2d 7d 20 7b 31 20 7b 62 61 ] $msg.-} {1 {ba
a140: 64 20 69 6e 64 65 78 20 22 63 22 3a 20 6d 75 73 d index "c": mus
a150: 74 20 62 65 20 69 6e 74 65 67 65 72 20 6f 72 20 t be integer or
a160: 65 6e 64 3f 2d 69 6e 74 65 67 65 72 3f 7d 7d 0a end?-integer?}}.
a170: 2b 7d 20 7b 31 20 7b 62 61 64 20 69 6e 64 65 78 +} {1 {bad index
a180: 20 22 63 22 3a 20 6d 75 73 74 20 62 65 20 69 6e "c": must be in
a190: 74 65 67 65 72 3f 5b 2b 2d 5d 69 6e 74 65 67 65 teger?[+-]intege
a1a0: 72 3f 20 6f 72 20 65 6e 64 3f 5b 2b 2d 5d 69 6e r? or end?[+-]in
a1b0: 74 65 67 65 72 3f 7d 7d 0a 20 74 65 73 74 20 73 teger?}}. test s
a1c0: 74 72 69 6e 67 2d 37 2e 33 20 7b 73 74 72 69 6e tring-7.3 {strin
a1d0: 67 20 6c 61 73 74 2c 20 74 6f 6f 20 6d 61 6e 79 g last, too many
a1e0: 20 61 72 67 73 7d 20 7b 0a 20 20 20 20 20 6c 69 args} {. li
a1f0: 73 74 20 5b 63 61 74 63 68 20 7b 73 74 72 69 6e st [catch {strin
a200: 67 20 6c 61 73 74 20 61 20 62 20 63 20 64 7d 20 g last a b c d}
a210: 6d 73 67 5d 20 24 6d 73 67 0a 20 7d 20 7b 31 20 msg] $msg. } {1
a220: 7b 77 72 6f 6e 67 20 23 20 61 72 67 73 3a 20 73 {wrong # args: s
a230: 68 6f 75 6c 64 20 62 65 20 22 73 74 72 69 6e 67 hould be "string
a240: 20 6c 61 73 74 20 73 75 62 53 74 72 69 6e 67 20 last subString
a250: 73 74 72 69 6e 67 20 3f 73 74 61 72 74 49 6e 64 string ?startInd
a260: 65 78 3f 22 7d 7d 0a 40 40 20 2d 31 30 32 32 2c ex?"}}.@@ -1022,
a270: 37 20 2b 31 30 32 32 2c 37 20 40 40 0a 20 20 20 7 +1022,7 @@.
a280: 20 20 73 74 72 69 6e 67 20 72 61 6e 67 65 20 61 string range a
a290: 62 63 64 65 66 67 68 69 6a 6b 6c 6d 6e 6f 70 20 bcdefghijklmnop
a2a0: 37 20 31 30 30 30 0a 20 7d 20 7b 68 69 6a 6b 6c 7 1000. } {hijkl
a2b0: 6d 6e 6f 70 7d 0a 20 74 65 73 74 20 73 74 72 69 mnop}. test stri
a2c0: 6e 67 2d 31 32 2e 36 20 7b 73 74 72 69 6e 67 20 ng-12.6 {string
a2d0: 72 61 6e 67 65 7d 20 7b 0a 2d 20 20 20 20 73 74 range} {.- st
a2e0: 72 69 6e 67 20 72 61 6e 67 65 20 61 62 63 64 65 ring range abcde
a2f0: 66 67 68 69 6a 6b 6c 6d 6e 6f 70 20 31 30 20 65 fghijklmnop 10 e
a300: 0a 2b 20 20 20 20 73 74 72 69 6e 67 20 72 61 6e .+ string ran
a310: 67 65 20 61 62 63 64 65 66 67 68 69 6a 6b 6c 6d ge abcdefghijklm
a320: 6e 6f 70 20 31 30 20 65 6e 64 0a 20 7d 20 7b 6b nop 10 end. } {k
a330: 6c 6d 6e 6f 70 7d 0a 20 74 65 73 74 20 73 74 72 lmnop}. test str
a340: 69 6e 67 2d 31 32 2e 37 20 7b 73 74 72 69 6e 67 ing-12.7 {string
a350: 20 72 61 6e 67 65 2c 20 6c 61 73 74 20 3c 20 66 range, last < f
a360: 69 72 73 74 7d 20 7b 0a 20 20 20 20 20 73 74 72 irst} {. str
a370: 69 6e 67 20 72 61 6e 67 65 20 61 62 63 64 65 66 ing range abcdef
a380: 67 68 69 6a 6b 6c 6d 6e 6f 70 20 31 30 20 39 0a ghijklmnop 10 9.
a390: 40 40 20 2d 31 30 34 31 2c 31 35 20 2b 31 30 34 @@ -1041,15 +104
a3a0: 31 2c 31 35 20 40 40 0a 20 7d 20 7b 61 62 63 64 1,15 @@. } {abcd
a3b0: 65 66 67 68 69 6a 6b 6c 6d 6e 6f 70 7d 0a 20 74 efghijklmnop}. t
a3c0: 65 73 74 20 73 74 72 69 6e 67 2d 31 32 2e 31 32 est string-12.12
a3d0: 20 7b 73 74 72 69 6e 67 20 72 61 6e 67 65 7d 20 {string range}
a3e0: 7b 0a 20 20 20 20 20 6c 69 73 74 20 5b 63 61 74 {. list [cat
a3f0: 63 68 20 7b 73 74 72 69 6e 67 20 72 61 6e 67 65 ch {string range
a400: 20 61 62 63 20 61 62 63 20 31 7d 20 6d 73 67 5d abc abc 1} msg]
a410: 20 24 6d 73 67 0a 2d 7d 20 7b 31 20 7b 62 61 64 $msg.-} {1 {bad
a420: 20 69 6e 64 65 78 20 22 61 62 63 22 3a 20 6d 75 index "abc": mu
a430: 73 74 20 62 65 20 69 6e 74 65 67 65 72 20 6f 72 st be integer or
a440: 20 65 6e 64 3f 2d 69 6e 74 65 67 65 72 3f 7d 7d end?-integer?}}
a450: 0a 2b 7d 20 7b 31 20 7b 62 61 64 20 69 6e 64 65 .+} {1 {bad inde
a460: 78 20 22 61 62 63 22 3a 20 6d 75 73 74 20 62 65 x "abc": must be
a470: 20 69 6e 74 65 67 65 72 3f 5b 2b 2d 5d 69 6e 74 integer?[+-]int
a480: 65 67 65 72 3f 20 6f 72 20 65 6e 64 3f 5b 2b 2d eger? or end?[+-
a490: 5d 69 6e 74 65 67 65 72 3f 7d 7d 0a 20 74 65 73 ]integer?}}. tes
a4a0: 74 20 73 74 72 69 6e 67 2d 31 32 2e 31 33 20 7b t string-12.13 {
a4b0: 73 74 72 69 6e 67 20 72 61 6e 67 65 7d 20 7b 0a string range} {.
a4c0: 20 20 20 20 20 6c 69 73 74 20 5b 63 61 74 63 68 list [catch
a4d0: 20 7b 73 74 72 69 6e 67 20 72 61 6e 67 65 20 61 {string range a
a4e0: 62 63 20 31 20 65 6f 66 7d 20 6d 73 67 5d 20 24 bc 1 eof} msg] $
a4f0: 6d 73 67 0a 2d 7d 20 7b 31 20 7b 62 61 64 20 69 msg.-} {1 {bad i
a500: 6e 64 65 78 20 22 65 6f 66 22 3a 20 6d 75 73 74 ndex "eof": must
a510: 20 62 65 20 69 6e 74 65 67 65 72 20 6f 72 20 65 be integer or e
a520: 6e 64 3f 2d 69 6e 74 65 67 65 72 3f 7d 7d 0a 2b nd?-integer?}}.+
a530: 7d 20 7b 31 20 7b 62 61 64 20 69 6e 64 65 78 20 } {1 {bad index
a540: 22 65 6f 66 22 3a 20 6d 75 73 74 20 62 65 20 69 "eof": must be i
a550: 6e 74 65 67 65 72 3f 5b 2b 2d 5d 69 6e 74 65 67 nteger?[+-]integ
a560: 65 72 3f 20 6f 72 20 65 6e 64 3f 5b 2b 2d 5d 69 er? or end?[+-]i
a570: 6e 74 65 67 65 72 3f 7d 7d 0a 20 74 65 73 74 20 nteger?}}. test
a580: 73 74 72 69 6e 67 2d 31 32 2e 31 34 20 7b 73 74 string-12.14 {st
a590: 72 69 6e 67 20 72 61 6e 67 65 7d 20 7b 0a 20 20 ring range} {.
a5a0: 20 20 20 73 74 72 69 6e 67 20 72 61 6e 67 65 20 string range
a5b0: 61 62 63 64 65 66 67 68 69 6a 6b 6c 6d 6e 6f 70 abcdefghijklmnop
a5c0: 20 65 6e 64 2d 31 20 65 6e 64 0a 20 7d 20 7b 6f end-1 end. } {o
a5d0: 70 7d 0a 20 74 65 73 74 20 73 74 72 69 6e 67 2d p}. test string-
a5e0: 31 32 2e 31 35 20 7b 73 74 72 69 6e 67 20 72 61 12.15 {string ra
a5f0: 6e 67 65 7d 20 7b 0a 2d 20 20 20 20 73 74 72 69 nge} {.- stri
a600: 6e 67 20 72 61 6e 67 65 20 61 62 63 64 65 66 67 ng range abcdefg
a610: 68 69 6a 6b 6c 6d 6e 6f 70 20 65 20 31 30 30 30 hijklmnop e 1000
a620: 0a 2b 20 20 20 20 73 74 72 69 6e 67 20 72 61 6e .+ string ran
a630: 67 65 20 61 62 63 64 65 66 67 68 69 6a 6b 6c 6d ge abcdefghijklm
a640: 6e 6f 70 20 65 6e 64 20 31 30 30 30 0a 20 7d 20 nop end 1000. }
a650: 7b 70 7d 0a 20 74 65 73 74 20 73 74 72 69 6e 67 {p}. test string
a660: 2d 31 32 2e 31 36 20 7b 73 74 72 69 6e 67 20 72 -12.16 {string r
a670: 61 6e 67 65 7d 20 7b 0a 20 20 20 20 20 73 74 72 ange} {. str
a680: 69 6e 67 20 72 61 6e 67 65 20 61 62 63 64 65 66 ing range abcdef
a690: 67 68 69 6a 6b 6c 6d 6e 6f 70 20 65 6e 64 20 65 ghijklmnop end e
a6a0: 6e 64 2d 31 0a 40 40 20 2d 31 31 33 32 2c 37 20 nd-1.@@ -1132,7
a6b0: 2b 31 31 33 32 2c 37 20 40 40 0a 20 20 20 20 20 +1132,7 @@.
a6c0: 73 74 72 69 6e 67 20 72 65 70 6c 61 63 65 20 61 string replace a
a6d0: 62 63 64 65 66 67 68 69 6a 6b 6c 6d 6e 6f 70 20 bcdefghijklmnop
a6e0: 37 20 31 30 30 30 0a 20 7d 20 7b 61 62 63 64 65 7 1000. } {abcde
a6f0: 66 67 7d 0a 20 74 65 73 74 20 73 74 72 69 6e 67 fg}. test string
a700: 2d 31 34 2e 37 20 7b 73 74 72 69 6e 67 20 72 65 -14.7 {string re
a710: 70 6c 61 63 65 7d 20 7b 0a 2d 20 20 20 20 73 74 place} {.- st
a720: 72 69 6e 67 20 72 65 70 6c 61 63 65 20 61 62 63 ring replace abc
a730: 64 65 66 67 68 69 6a 6b 6c 6d 6e 6f 70 20 31 30 defghijklmnop 10
a740: 20 65 0a 2b 20 20 20 20 73 74 72 69 6e 67 20 72 e.+ string r
a750: 65 70 6c 61 63 65 20 61 62 63 64 65 66 67 68 69 eplace abcdefghi
a760: 6a 6b 6c 6d 6e 6f 70 20 31 30 20 65 6e 64 0a 20 jklmnop 10 end.
a770: 7d 20 7b 61 62 63 64 65 66 67 68 69 6a 7d 0a 20 } {abcdefghij}.
a780: 74 65 73 74 20 73 74 72 69 6e 67 2d 31 34 2e 38 test string-14.8
a790: 20 7b 73 74 72 69 6e 67 20 72 65 70 6c 61 63 65 {string replace
a7a0: 7d 20 7b 0a 20 20 20 20 20 73 74 72 69 6e 67 20 } {. string
a7b0: 72 65 70 6c 61 63 65 20 61 62 63 64 65 66 67 68 replace abcdefgh
a7c0: 69 6a 6b 6c 6d 6e 6f 70 20 31 30 20 39 0a 40 40 ijklmnop 10 9.@@
a7d0: 20 2d 31 31 35 31 2c 31 35 20 2b 31 31 35 31 2c -1151,15 +1151,
a7e0: 31 35 20 40 40 0a 20 7d 20 7b 7d 0a 20 74 65 73 15 @@. } {}. tes
a7f0: 74 20 73 74 72 69 6e 67 2d 31 34 2e 31 33 20 7b t string-14.13 {
a800: 73 74 72 69 6e 67 20 72 65 70 6c 61 63 65 7d 20 string replace}
a810: 7b 0a 20 20 20 20 20 6c 69 73 74 20 5b 63 61 74 {. list [cat
a820: 63 68 20 7b 73 74 72 69 6e 67 20 72 65 70 6c 61 ch {string repla
a830: 63 65 20 61 62 63 20 61 62 63 20 31 7d 20 6d 73 ce abc abc 1} ms
a840: 67 5d 20 24 6d 73 67 0a 2d 7d 20 7b 31 20 7b 62 g] $msg.-} {1 {b
a850: 61 64 20 69 6e 64 65 78 20 22 61 62 63 22 3a 20 ad index "abc":
a860: 6d 75 73 74 20 62 65 20 69 6e 74 65 67 65 72 20 must be integer
a870: 6f 72 20 65 6e 64 3f 2d 69 6e 74 65 67 65 72 3f or end?-integer?
a880: 7d 7d 0a 2b 7d 20 7b 31 20 7b 62 61 64 20 69 6e }}.+} {1 {bad in
a890: 64 65 78 20 22 61 62 63 22 3a 20 6d 75 73 74 20 dex "abc": must
a8a0: 62 65 20 69 6e 74 65 67 65 72 3f 5b 2b 2d 5d 69 be integer?[+-]i
a8b0: 6e 74 65 67 65 72 3f 20 6f 72 20 65 6e 64 3f 5b nteger? or end?[
a8c0: 2b 2d 5d 69 6e 74 65 67 65 72 3f 7d 7d 0a 20 74 +-]integer?}}. t
a8d0: 65 73 74 20 73 74 72 69 6e 67 2d 31 34 2e 31 34 est string-14.14
a8e0: 20 7b 73 74 72 69 6e 67 20 72 65 70 6c 61 63 65 {string replace
a8f0: 7d 20 7b 0a 20 20 20 20 20 6c 69 73 74 20 5b 63 } {. list [c
a900: 61 74 63 68 20 7b 73 74 72 69 6e 67 20 72 65 70 atch {string rep
a910: 6c 61 63 65 20 61 62 63 20 31 20 65 6f 66 7d 20 lace abc 1 eof}
a920: 6d 73 67 5d 20 24 6d 73 67 0a 2d 7d 20 7b 31 20 msg] $msg.-} {1
a930: 7b 62 61 64 20 69 6e 64 65 78 20 22 65 6f 66 22 {bad index "eof"
a940: 3a 20 6d 75 73 74 20 62 65 20 69 6e 74 65 67 65 : must be intege
a950: 72 20 6f 72 20 65 6e 64 3f 2d 69 6e 74 65 67 65 r or end?-intege
a960: 72 3f 7d 7d 0a 2b 7d 20 7b 31 20 7b 62 61 64 20 r?}}.+} {1 {bad
a970: 69 6e 64 65 78 20 22 65 6f 66 22 3a 20 6d 75 73 index "eof": mus
a980: 74 20 62 65 20 69 6e 74 65 67 65 72 3f 5b 2b 2d t be integer?[+-
a990: 5d 69 6e 74 65 67 65 72 3f 20 6f 72 20 65 6e 64 ]integer? or end
a9a0: 3f 5b 2b 2d 5d 69 6e 74 65 67 65 72 3f 7d 7d 0a ?[+-]integer?}}.
a9b0: 20 74 65 73 74 20 73 74 72 69 6e 67 2d 31 34 2e test string-14.
a9c0: 31 35 20 7b 73 74 72 69 6e 67 20 72 65 70 6c 61 15 {string repla
a9d0: 63 65 7d 20 7b 0a 20 20 20 20 20 73 74 72 69 6e ce} {. strin
a9e0: 67 20 72 65 70 6c 61 63 65 20 61 62 63 64 65 66 g replace abcdef
a9f0: 67 68 69 6a 6b 6c 6d 6e 6f 70 20 65 6e 64 2d 31 ghijklmnop end-1
aa00: 30 20 65 6e 64 2d 32 20 4e 45 57 0a 20 7d 20 7b 0 end-2 NEW. } {
aa10: 61 62 63 64 65 4e 45 57 6f 70 7d 0a 20 74 65 73 abcdeNEWop}. tes
aa20: 74 20 73 74 72 69 6e 67 2d 31 34 2e 31 36 20 7b t string-14.16 {
aa30: 73 74 72 69 6e 67 20 72 65 70 6c 61 63 65 7d 20 string replace}
aa40: 7b 0a 2d 20 20 20 20 73 74 72 69 6e 67 20 72 65 {.- string re
aa50: 70 6c 61 63 65 20 61 62 63 64 65 66 67 68 69 6a place abcdefghij
aa60: 6b 6c 6d 6e 6f 70 20 30 20 65 20 66 6f 6f 0a 2b klmnop 0 e foo.+
aa70: 20 20 20 20 73 74 72 69 6e 67 20 72 65 70 6c 61 string repla
aa80: 63 65 20 61 62 63 64 65 66 67 68 69 6a 6b 6c 6d ce abcdefghijklm
aa90: 6e 6f 70 20 30 20 65 6e 64 20 66 6f 6f 0a 20 7d nop 0 end foo. }
aaa0: 20 7b 66 6f 6f 7d 0a 20 74 65 73 74 20 73 74 72 {foo}. test str
aab0: 69 6e 67 2d 31 34 2e 31 37 20 7b 73 74 72 69 6e ing-14.17 {strin
aac0: 67 20 72 65 70 6c 61 63 65 7d 20 7b 0a 20 20 20 g replace} {.
aad0: 20 20 73 74 72 69 6e 67 20 72 65 70 6c 61 63 65 string replace
aae0: 20 61 62 63 64 65 66 67 68 69 6a 6b 6c 6d 6e 6f abcdefghijklmno
aaf0: 70 20 65 6e 64 20 65 6e 64 2d 31 0a 40 40 20 2d p end end-1.@@ -
ab00: 31 31 37 30 2c 37 20 2b 31 31 37 30 2c 37 20 40 1170,7 +1170,7 @
ab10: 40 0a 20 7d 20 7b 31 20 7b 77 72 6f 6e 67 20 23 @. } {1 {wrong #
ab20: 20 61 72 67 73 3a 20 73 68 6f 75 6c 64 20 62 65 args: should be
ab30: 20 22 73 74 72 69 6e 67 20 74 6f 6c 6f 77 65 72 "string tolower
ab40: 20 73 74 72 69 6e 67 20 3f 66 69 72 73 74 3f 20 string ?first?
ab50: 3f 6c 61 73 74 3f 22 7d 7d 0a 20 74 65 73 74 20 ?last?"}}. test
ab60: 73 74 72 69 6e 67 2d 31 35 2e 32 20 7b 73 74 72 string-15.2 {str
ab70: 69 6e 67 20 74 6f 6c 6f 77 65 72 20 62 61 64 20 ing tolower bad
ab80: 61 72 67 73 7d 20 7b 0a 20 20 20 20 20 6c 69 73 args} {. lis
ab90: 74 20 5b 63 61 74 63 68 20 7b 73 74 72 69 6e 67 t [catch {string
aba0: 20 74 6f 6c 6f 77 65 72 20 61 20 62 7d 20 6d 73 tolower a b} ms
abb0: 67 5d 20 24 6d 73 67 0a 2d 7d 20 7b 31 20 7b 62 g] $msg.-} {1 {b
abc0: 61 64 20 69 6e 64 65 78 20 22 62 22 3a 20 6d 75 ad index "b": mu
abd0: 73 74 20 62 65 20 69 6e 74 65 67 65 72 20 6f 72 st be integer or
abe0: 20 65 6e 64 3f 2d 69 6e 74 65 67 65 72 3f 7d 7d end?-integer?}}
abf0: 0a 2b 7d 20 7b 31 20 7b 62 61 64 20 69 6e 64 65 .+} {1 {bad inde
ac00: 78 20 22 62 22 3a 20 6d 75 73 74 20 62 65 20 69 x "b": must be i
ac10: 6e 74 65 67 65 72 3f 5b 2b 2d 5d 69 6e 74 65 67 nteger?[+-]integ
ac20: 65 72 3f 20 6f 72 20 65 6e 64 3f 5b 2b 2d 5d 69 er? or end?[+-]i
ac30: 6e 74 65 67 65 72 3f 7d 7d 0a 20 74 65 73 74 20 nteger?}}. test
ac40: 73 74 72 69 6e 67 2d 31 35 2e 33 20 7b 73 74 72 string-15.3 {str
ac50: 69 6e 67 20 74 6f 6c 6f 77 65 72 20 74 6f 6f 20 ing tolower too
ac60: 6d 61 6e 79 20 61 72 67 73 7d 20 7b 0a 20 20 20 many args} {.
ac70: 20 20 6c 69 73 74 20 5b 63 61 74 63 68 20 7b 73 list [catch {s
ac80: 74 72 69 6e 67 20 74 6f 6c 6f 77 65 72 20 41 42 tring tolower AB
ac90: 43 20 31 20 65 6e 64 20 6f 6f 70 73 7d 20 6d 73 C 1 end oops} ms
aca0: 67 5d 20 24 6d 73 67 0a 20 7d 20 7b 31 20 7b 77 g] $msg. } {1 {w
acb0: 72 6f 6e 67 20 23 20 61 72 67 73 3a 20 73 68 6f rong # args: sho
acc0: 75 6c 64 20 62 65 20 22 73 74 72 69 6e 67 20 74 uld be "string t
acd0: 6f 6c 6f 77 65 72 20 73 74 72 69 6e 67 20 3f 66 olower string ?f
ace0: 69 72 73 74 3f 20 3f 6c 61 73 74 3f 22 7d 7d 0a irst? ?last?"}}.
acf0: 40 40 20 2d 31 32 30 31 2c 37 20 2b 31 32 30 31 @@ -1201,7 +1201
ad00: 2c 37 20 40 40 0a 20 7d 20 7b 31 20 7b 77 72 6f ,7 @@. } {1 {wro
ad10: 6e 67 20 23 20 61 72 67 73 3a 20 73 68 6f 75 6c ng # args: shoul
ad20: 64 20 62 65 20 22 73 74 72 69 6e 67 20 74 6f 75 d be "string tou
ad30: 70 70 65 72 20 73 74 72 69 6e 67 20 3f 66 69 72 pper string ?fir
ad40: 73 74 3f 20 3f 6c 61 73 74 3f 22 7d 7d 0a 20 74 st? ?last?"}}. t
ad50: 65 73 74 20 73 74 72 69 6e 67 2d 31 36 2e 32 20 est string-16.2
ad60: 7b 73 74 72 69 6e 67 20 74 6f 75 70 70 65 72 7d {string toupper}
ad70: 20 7b 0a 20 20 20 20 20 6c 69 73 74 20 5b 63 61 {. list [ca
ad80: 74 63 68 20 7b 73 74 72 69 6e 67 20 74 6f 75 70 tch {string toup
ad90: 70 65 72 20 61 20 62 7d 20 6d 73 67 5d 20 24 6d per a b} msg] $m
ada0: 73 67 0a 2d 7d 20 7b 31 20 7b 62 61 64 20 69 6e sg.-} {1 {bad in
adb0: 64 65 78 20 22 62 22 3a 20 6d 75 73 74 20 62 65 dex "b": must be
adc0: 20 69 6e 74 65 67 65 72 20 6f 72 20 65 6e 64 3f integer or end?
add0: 2d 69 6e 74 65 67 65 72 3f 7d 7d 0a 2b 7d 20 7b -integer?}}.+} {
ade0: 31 20 7b 62 61 64 20 69 6e 64 65 78 20 22 62 22 1 {bad index "b"
adf0: 3a 20 6d 75 73 74 20 62 65 20 69 6e 74 65 67 65 : must be intege
ae00: 72 3f 5b 2b 2d 5d 69 6e 74 65 67 65 72 3f 20 6f r?[+-]integer? o
ae10: 72 20 65 6e 64 3f 5b 2b 2d 5d 69 6e 74 65 67 65 r end?[+-]intege
ae20: 72 3f 7d 7d 0a 20 74 65 73 74 20 73 74 72 69 6e r?}}. test strin
ae30: 67 2d 31 36 2e 33 20 7b 73 74 72 69 6e 67 20 74 g-16.3 {string t
ae40: 6f 75 70 70 65 72 7d 20 7b 0a 20 20 20 20 20 6c oupper} {. l
ae50: 69 73 74 20 5b 63 61 74 63 68 20 7b 73 74 72 69 ist [catch {stri
ae60: 6e 67 20 74 6f 75 70 70 65 72 20 61 20 31 20 65 ng toupper a 1 e
ae70: 6e 64 20 6f 6f 70 73 7d 20 6d 73 67 5d 20 24 6d nd oops} msg] $m
ae80: 73 67 0a 20 7d 20 7b 31 20 7b 77 72 6f 6e 67 20 sg. } {1 {wrong
ae90: 23 20 61 72 67 73 3a 20 73 68 6f 75 6c 64 20 62 # args: should b
aea0: 65 20 22 73 74 72 69 6e 67 20 74 6f 75 70 70 65 e "string touppe
aeb0: 72 20 73 74 72 69 6e 67 20 3f 66 69 72 73 74 3f r string ?first?
aec0: 20 3f 6c 61 73 74 3f 22 7d 7d 0a 40 40 20 2d 31 ?last?"}}.@@ -1
aed0: 32 33 32 2c 37 20 2b 31 32 33 32 2c 37 20 40 40 232,7 +1232,7 @@
aee0: 0a 20 7d 20 7b 31 20 7b 77 72 6f 6e 67 20 23 20 . } {1 {wrong #
aef0: 61 72 67 73 3a 20 73 68 6f 75 6c 64 20 62 65 20 args: should be
af00: 22 73 74 72 69 6e 67 20 74 6f 74 69 74 6c 65 20 "string totitle
af10: 73 74 72 69 6e 67 20 3f 66 69 72 73 74 3f 20 3f string ?first? ?
af20: 6c 61 73 74 3f 22 7d 7d 0a 20 74 65 73 74 20 73 last?"}}. test s
af30: 74 72 69 6e 67 2d 31 37 2e 32 20 7b 73 74 72 69 tring-17.2 {stri
af40: 6e 67 20 74 6f 74 69 74 6c 65 7d 20 7b 0a 20 20 ng totitle} {.
af50: 20 20 20 6c 69 73 74 20 5b 63 61 74 63 68 20 7b list [catch {
af60: 73 74 72 69 6e 67 20 74 6f 74 69 74 6c 65 20 61 string totitle a
af70: 20 62 7d 20 6d 73 67 5d 20 24 6d 73 67 0a 2d 7d b} msg] $msg.-}
af80: 20 7b 31 20 7b 62 61 64 20 69 6e 64 65 78 20 22 {1 {bad index "
af90: 62 22 3a 20 6d 75 73 74 20 62 65 20 69 6e 74 65 b": must be inte
afa0: 67 65 72 20 6f 72 20 65 6e 64 3f 2d 69 6e 74 65 ger or end?-inte
afb0: 67 65 72 3f 7d 7d 0a 2b 7d 20 7b 31 20 7b 62 61 ger?}}.+} {1 {ba
afc0: 64 20 69 6e 64 65 78 20 22 62 22 3a 20 6d 75 73 d index "b": mus
afd0: 74 20 62 65 20 69 6e 74 65 67 65 72 3f 5b 2b 2d t be integer?[+-
afe0: 5d 69 6e 74 65 67 65 72 3f 20 6f 72 20 65 6e 64 ]integer? or end
aff0: 3f 5b 2b 2d 5d 69 6e 74 65 67 65 72 3f 7d 7d 0a ?[+-]integer?}}.
b000: 20 74 65 73 74 20 73 74 72 69 6e 67 2d 31 37 2e test string-17.
b010: 33 20 7b 73 74 72 69 6e 67 20 74 6f 74 69 74 6c 3 {string totitl
b020: 65 7d 20 7b 0a 20 20 20 20 20 73 74 72 69 6e 67 e} {. string
b030: 20 74 6f 74 69 74 6c 65 20 61 62 43 44 45 66 0a totitle abCDEf.
b040: 20 7d 20 7b 41 62 63 64 65 66 7d 0a 40 40 20 2d } {Abcdef}.@@ -
b050: 31 33 31 34 2c 37 20 2b 31 33 31 34 2c 37 20 40 1314,7 +1314,7 @
b060: 40 0a 20 7d 20 7b 31 20 7b 77 72 6f 6e 67 20 23 @. } {1 {wrong #
b070: 20 61 72 67 73 3a 20 73 68 6f 75 6c 64 20 62 65 args: should be
b080: 20 22 73 74 72 69 6e 67 20 77 6f 72 64 65 6e 64 "string wordend
b090: 20 73 74 72 69 6e 67 20 69 6e 64 65 78 22 7d 7d string index"}}
b0a0: 0a 20 74 65 73 74 20 73 74 72 69 6e 67 2d 32 31 . test string-21
b0b0: 2e 33 20 7b 73 74 72 69 6e 67 20 77 6f 72 64 65 .3 {string worde
b0c0: 6e 64 7d 20 7b 0a 20 20 20 20 20 6c 69 73 74 20 nd} {. list
b0d0: 5b 63 61 74 63 68 20 7b 73 74 72 69 6e 67 20 77 [catch {string w
b0e0: 6f 72 64 65 6e 64 20 61 20 67 6f 72 70 7d 20 6d ordend a gorp} m
b0f0: 73 67 5d 20 24 6d 73 67 0a 2d 7d 20 7b 31 20 7b sg] $msg.-} {1 {
b100: 62 61 64 20 69 6e 64 65 78 20 22 67 6f 72 70 22 bad index "gorp"
b110: 3a 20 6d 75 73 74 20 62 65 20 69 6e 74 65 67 65 : must be intege
b120: 72 20 6f 72 20 65 6e 64 3f 2d 69 6e 74 65 67 65 r or end?-intege
b130: 72 3f 7d 7d 0a 2b 7d 20 7b 31 20 7b 62 61 64 20 r?}}.+} {1 {bad
b140: 69 6e 64 65 78 20 22 67 6f 72 70 22 3a 20 6d 75 index "gorp": mu
b150: 73 74 20 62 65 20 69 6e 74 65 67 65 72 3f 5b 2b st be integer?[+
b160: 2d 5d 69 6e 74 65 67 65 72 3f 20 6f 72 20 65 6e -]integer? or en
b170: 64 3f 5b 2b 2d 5d 69 6e 74 65 67 65 72 3f 7d 7d d?[+-]integer?}}
b180: 0a 20 74 65 73 74 20 73 74 72 69 6e 67 2d 32 31 . test string-21
b190: 2e 34 20 7b 73 74 72 69 6e 67 20 77 6f 72 64 65 .4 {string worde
b1a0: 6e 64 7d 20 7b 0a 20 20 20 20 20 73 74 72 69 6e nd} {. strin
b1b0: 67 20 77 6f 72 64 65 6e 64 20 61 62 63 2e 20 2d g wordend abc. -
b1c0: 31 0a 20 7d 20 33 0a 40 40 20 2d 31 33 36 30 2c 1. } 3.@@ -1360,
b1d0: 37 20 2b 31 33 36 30 2c 37 20 40 40 0a 20 7d 20 7 +1360,7 @@. }
b1e0: 7b 31 20 7b 77 72 6f 6e 67 20 23 20 61 72 67 73 {1 {wrong # args
b1f0: 3a 20 73 68 6f 75 6c 64 20 62 65 20 22 73 74 72 : should be "str
b200: 69 6e 67 20 77 6f 72 64 73 74 61 72 74 20 73 74 ing wordstart st
b210: 72 69 6e 67 20 69 6e 64 65 78 22 7d 7d 0a 20 74 ring index"}}. t
b220: 65 73 74 20 73 74 72 69 6e 67 2d 32 32 2e 34 20 est string-22.4
b230: 7b 73 74 72 69 6e 67 20 77 6f 72 64 73 74 61 72 {string wordstar
b240: 74 7d 20 7b 0a 20 20 20 20 20 6c 69 73 74 20 5b t} {. list [
b250: 63 61 74 63 68 20 7b 73 74 72 69 6e 67 20 77 6f catch {string wo
b260: 72 64 73 74 61 72 74 20 61 20 67 6f 72 70 7d 20 rdstart a gorp}
b270: 6d 73 67 5d 20 24 6d 73 67 0a 2d 7d 20 7b 31 20 msg] $msg.-} {1
b280: 7b 62 61 64 20 69 6e 64 65 78 20 22 67 6f 72 70 {bad index "gorp
b290: 22 3a 20 6d 75 73 74 20 62 65 20 69 6e 74 65 67 ": must be integ
b2a0: 65 72 20 6f 72 20 65 6e 64 3f 2d 69 6e 74 65 67 er or end?-integ
b2b0: 65 72 3f 7d 7d 0a 2b 7d 20 7b 31 20 7b 62 61 64 er?}}.+} {1 {bad
b2c0: 20 69 6e 64 65 78 20 22 67 6f 72 70 22 3a 20 6d index "gorp": m
b2d0: 75 73 74 20 62 65 20 69 6e 74 65 67 65 72 3f 5b ust be integer?[
b2e0: 2b 2d 5d 69 6e 74 65 67 65 72 3f 20 6f 72 20 65 +-]integer? or e
b2f0: 6e 64 3f 5b 2b 2d 5d 69 6e 74 65 67 65 72 3f 7d nd?[+-]integer?}
b300: 7d 0a 20 74 65 73 74 20 73 74 72 69 6e 67 2d 32 }. test string-2
b310: 32 2e 35 20 7b 73 74 72 69 6e 67 20 77 6f 72 64 2.5 {string word
b320: 73 74 61 72 74 7d 20 7b 0a 20 20 20 20 20 73 74 start} {. st
b330: 72 69 6e 67 20 77 6f 72 64 73 74 61 72 74 20 22 ring wordstart "
b340: 6f 6e 65 20 74 77 6f 20 74 68 72 65 65 5f 77 6f one two three_wo
b350: 72 64 73 22 20 34 30 30 0a 20 7d 20 38 0a 49 6e rds" 400. } 8.In
b360: 64 65 78 3a 20 74 65 73 74 73 2f 73 74 72 69 6e dex: tests/strin
b370: 67 43 6f 6d 70 2e 74 65 73 74 0a 3d 3d 3d 3d 3d gComp.test.=====
b380: 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d ================
b390: 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d ================
b3a0: 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d ================
b3b0: 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 0a 52 ==============.R
b3c0: 43 53 20 66 69 6c 65 3a 20 2f 63 76 73 72 6f 6f CS file: /cvsroo
b3d0: 74 2f 74 63 6c 2f 74 63 6c 2f 74 65 73 74 73 2f t/tcl/tcl/tests/
b3e0: 73 74 72 69 6e 67 43 6f 6d 70 2e 74 65 73 74 2c stringComp.test,
b3f0: 76 0a 72 65 74 72 69 65 76 69 6e 67 20 72 65 76 v.retrieving rev
b400: 69 73 69 6f 6e 20 31 2e 38 0a 64 69 66 66 20 2d ision 1.8.diff -
b410: 75 20 2d 72 31 2e 38 20 73 74 72 69 6e 67 43 6f u -r1.8 stringCo
b420: 6d 70 2e 74 65 73 74 0a 2d 2d 2d 20 74 65 73 74 mp.test.--- test
b430: 73 2f 73 74 72 69 6e 67 43 6f 6d 70 2e 74 65 73 s/stringComp.tes
b440: 74 09 32 35 20 4d 61 79 20 32 30 30 34 20 31 38 t.25 May 2004 18
b450: 3a 35 38 3a 30 35 20 2d 30 30 30 30 09 31 2e 38 :58:05 -0000.1.8
b460: 0a 2b 2b 2b 20 74 65 73 74 73 2f 73 74 72 69 6e .+++ tests/strin
b470: 67 43 6f 6d 70 2e 74 65 73 74 09 32 39 20 41 70 gComp.test.29 Ap
b480: 72 20 32 30 30 35 20 32 30 3a 33 30 3a 34 31 20 r 2005 20:30:41
b490: 2d 30 30 30 30 0a 40 40 20 2d 32 32 36 2c 37 20 -0000.@@ -226,7
b4a0: 2b 32 32 36 2c 37 20 40 40 0a 20 74 65 73 74 20 +226,7 @@. test
b4b0: 73 74 72 69 6e 67 43 6f 6d 70 2d 34 2e 32 20 7b stringComp-4.2 {
b4c0: 73 74 72 69 6e 67 20 66 69 72 73 74 2c 20 62 61 string first, ba
b4d0: 64 20 61 72 67 73 7d 20 7b 0a 20 20 20 20 20 70 d args} {. p
b4e0: 72 6f 63 20 66 6f 6f 20 7b 7d 20 7b 73 74 72 69 roc foo {} {stri
b4f0: 6e 67 20 66 69 72 73 74 20 61 20 62 20 63 7d 0a ng first a b c}.
b500: 20 20 20 20 20 6c 69 73 74 20 5b 63 61 74 63 68 list [catch
b510: 20 7b 66 6f 6f 7d 20 6d 73 67 5d 20 24 6d 73 67 {foo} msg] $msg
b520: 0a 2d 7d 20 7b 31 20 7b 62 61 64 20 69 6e 64 65 .-} {1 {bad inde
b530: 78 20 22 63 22 3a 20 6d 75 73 74 20 62 65 20 69 x "c": must be i
b540: 6e 74 65 67 65 72 20 6f 72 20 65 6e 64 3f 2d 69 nteger or end?-i
b550: 6e 74 65 67 65 72 3f 7d 7d 0a 2b 7d 20 7b 31 20 nteger?}}.+} {1
b560: 7b 62 61 64 20 69 6e 64 65 78 20 22 63 22 3a 20 {bad index "c":
b570: 6d 75 73 74 20 62 65 20 69 6e 74 65 67 65 72 3f must be integer?
b580: 5b 2b 2d 5d 69 6e 74 65 67 65 72 3f 20 6f 72 20 [+-]integer? or
b590: 65 6e 64 3f 5b 2b 2d 5d 69 6e 74 65 67 65 72 3f end?[+-]integer?
b5a0: 7d 7d 0a 20 74 65 73 74 20 73 74 72 69 6e 67 43 }}. test stringC
b5b0: 6f 6d 70 2d 34 2e 33 20 7b 73 74 72 69 6e 67 20 omp-4.3 {string
b5c0: 66 69 72 73 74 2c 20 74 6f 6f 20 6d 61 6e 79 20 first, too many
b5d0: 61 72 67 73 7d 20 7b 0a 20 20 20 20 20 70 72 6f args} {. pro
b5e0: 63 20 66 6f 6f 20 7b 7d 20 7b 73 74 72 69 6e 67 c foo {} {string
b5f0: 20 66 69 72 73 74 20 61 20 62 20 35 20 64 7d 0a first a b 5 d}.
b600: 20 20 20 20 20 6c 69 73 74 20 5b 63 61 74 63 68 list [catch
b610: 20 7b 66 6f 6f 7d 20 6d 73 67 5d 20 24 6d 73 67 {foo} msg] $msg
b620: 0a 40 40 20 2d 33 30 33 2c 37 20 2b 33 30 33 2c .@@ -303,7 +303,
b630: 37 20 40 40 0a 20 74 65 73 74 20 73 74 72 69 6e 7 @@. test strin
b640: 67 43 6f 6d 70 2d 35 2e 37 20 7b 73 74 72 69 6e gComp-5.7 {strin
b650: 67 20 69 6e 64 65 78 7d 20 7b 0a 20 20 20 20 20 g index} {.
b660: 70 72 6f 63 20 66 6f 6f 20 7b 7d 20 7b 73 74 72 proc foo {} {str
b670: 69 6e 67 20 69 6e 64 65 78 20 61 20 78 79 7a 7d ing index a xyz}
b680: 0a 20 20 20 20 20 6c 69 73 74 20 5b 63 61 74 63 . list [catc
b690: 68 20 7b 66 6f 6f 7d 20 6d 73 67 5d 20 24 6d 73 h {foo} msg] $ms
b6a0: 67 0a 2d 7d 20 7b 31 20 7b 62 61 64 20 69 6e 64 g.-} {1 {bad ind
b6b0: 65 78 20 22 78 79 7a 22 3a 20 6d 75 73 74 20 62 ex "xyz": must b
b6c0: 65 20 69 6e 74 65 67 65 72 20 6f 72 20 65 6e 64 e integer or end
b6d0: 3f 2d 69 6e 74 65 67 65 72 3f 7d 7d 0a 2b 7d 20 ?-integer?}}.+}
b6e0: 7b 31 20 7b 62 61 64 20 69 6e 64 65 78 20 22 78 {1 {bad index "x
b6f0: 79 7a 22 3a 20 6d 75 73 74 20 62 65 20 69 6e 74 yz": must be int
b700: 65 67 65 72 3f 5b 2b 2d 5d 69 6e 74 65 67 65 72 eger?[+-]integer
b710: 3f 20 6f 72 20 65 6e 64 3f 5b 2b 2d 5d 69 6e 74 ? or end?[+-]int
b720: 65 67 65 72 3f 7d 7d 0a 20 74 65 73 74 20 73 74 eger?}}. test st
b730: 72 69 6e 67 43 6f 6d 70 2d 35 2e 38 20 7b 73 74 ringComp-5.8 {st
b740: 72 69 6e 67 20 69 6e 64 65 78 7d 20 7b 0a 20 20 ring index} {.
b750: 20 20 20 70 72 6f 63 20 66 6f 6f 20 7b 7d 20 7b proc foo {} {
b760: 73 74 72 69 6e 67 20 69 6e 64 65 78 20 61 62 63 string index abc
b770: 20 65 6e 64 7d 0a 20 20 20 20 20 66 6f 6f 0a 40 end}. foo.@
b780: 40 20 2d 33 35 32 2c 31 31 20 2b 33 35 32 2c 31 @ -352,11 +352,1
b790: 31 20 40 40 0a 20 74 65 73 74 20 73 74 72 69 6e 1 @@. test strin
b7a0: 67 43 6f 6d 70 2d 35 2e 31 37 20 7b 73 74 72 69 gComp-5.17 {stri
b7b0: 6e 67 20 69 6e 64 65 78 2c 20 62 61 64 20 69 6e ng index, bad in
b7c0: 74 65 67 65 72 7d 20 7b 0a 20 20 20 20 20 70 72 teger} {. pr
b7d0: 6f 63 20 66 6f 6f 20 7b 7d 20 7b 73 74 72 69 6e oc foo {} {strin
b7e0: 67 20 69 6e 64 65 78 20 22 61 62 63 22 20 30 38 g index "abc" 08
b7f0: 7d 0a 20 20 20 20 20 6c 69 73 74 20 5b 63 61 74 }. list [cat
b800: 63 68 20 7b 66 6f 6f 7d 20 6d 73 67 5d 20 24 6d ch {foo} msg] $m
b810: 73 67 0a 2d 7d 20 7b 31 20 7b 62 61 64 20 69 6e sg.-} {1 {bad in
b820: 64 65 78 20 22 30 38 22 3a 20 6d 75 73 74 20 62 dex "08": must b
b830: 65 20 69 6e 74 65 67 65 72 20 6f 72 20 65 6e 64 e integer or end
b840: 3f 2d 69 6e 74 65 67 65 72 3f 20 28 6c 6f 6f 6b ?-integer? (look
b850: 73 20 6c 69 6b 65 20 69 6e 76 61 6c 69 64 20 6f s like invalid o
b860: 63 74 61 6c 20 6e 75 6d 62 65 72 29 7d 7d 0a 2b ctal number)}}.+
b870: 7d 20 7b 31 20 7b 62 61 64 20 69 6e 64 65 78 20 } {1 {bad index
b880: 22 30 38 22 3a 20 6d 75 73 74 20 62 65 20 69 6e "08": must be in
b890: 74 65 67 65 72 3f 5b 2b 2d 5d 69 6e 74 65 67 65 teger?[+-]intege
b8a0: 72 3f 20 6f 72 20 65 6e 64 3f 5b 2b 2d 5d 69 6e r? or end?[+-]in
b8b0: 74 65 67 65 72 3f 20 28 6c 6f 6f 6b 73 20 6c 69 teger? (looks li
b8c0: 6b 65 20 69 6e 76 61 6c 69 64 20 6f 63 74 61 6c ke invalid octal
b8d0: 20 6e 75 6d 62 65 72 29 7d 7d 0a 20 74 65 73 74 number)}}. test
b8e0: 20 73 74 72 69 6e 67 43 6f 6d 70 2d 35 2e 31 38 stringComp-5.18
b8f0: 20 7b 73 74 72 69 6e 67 20 69 6e 64 65 78 2c 20 {string index,
b900: 62 61 64 20 69 6e 74 65 67 65 72 7d 20 7b 0a 20 bad integer} {.
b910: 20 20 20 20 70 72 6f 63 20 66 6f 6f 20 7b 7d 20 proc foo {}
b920: 7b 73 74 72 69 6e 67 20 69 6e 64 65 78 20 22 61 {string index "a
b930: 62 63 22 20 65 6e 64 2d 30 30 32 38 39 7d 0a 20 bc" end-00289}.
b940: 20 20 20 20 6c 69 73 74 20 5b 63 61 74 63 68 20 list [catch
b950: 7b 66 6f 6f 7d 20 6d 73 67 5d 20 24 6d 73 67 0a {foo} msg] $msg.
b960: 2d 7d 20 7b 31 20 7b 62 61 64 20 69 6e 64 65 78 -} {1 {bad index
b970: 20 22 65 6e 64 2d 30 30 32 38 39 22 3a 20 6d 75 "end-00289": mu
b980: 73 74 20 62 65 20 69 6e 74 65 67 65 72 20 6f 72 st be integer or
b990: 20 65 6e 64 3f 2d 69 6e 74 65 67 65 72 3f 20 28 end?-integer? (
b9a0: 6c 6f 6f 6b 73 20 6c 69 6b 65 20 69 6e 76 61 6c looks like inval
b9b0: 69 64 20 6f 63 74 61 6c 20 6e 75 6d 62 65 72 29 id octal number)
b9c0: 7d 7d 0a 2b 7d 20 7b 31 20 7b 62 61 64 20 69 6e }}.+} {1 {bad in
b9d0: 64 65 78 20 22 65 6e 64 2d 30 30 32 38 39 22 3a dex "end-00289":
b9e0: 20 6d 75 73 74 20 62 65 20 69 6e 74 65 67 65 72 must be integer
b9f0: 3f 5b 2b 2d 5d 69 6e 74 65 67 65 72 3f 20 6f 72 ?[+-]integer? or
ba00: 20 65 6e 64 3f 5b 2b 2d 5d 69 6e 74 65 67 65 72 end?[+-]integer
ba10: 3f 20 28 6c 6f 6f 6b 73 20 6c 69 6b 65 20 69 6e ? (looks like in
ba20: 76 61 6c 69 64 20 6f 63 74 61 6c 20 6e 75 6d 62 valid octal numb
ba30: 65 72 29 7d 7d 0a 20 74 65 73 74 20 73 74 72 69 er)}}. test stri
ba40: 6e 67 43 6f 6d 70 2d 35 2e 31 39 20 7b 73 74 72 ngComp-5.19 {str
ba50: 69 6e 67 20 69 6e 64 65 78 2c 20 62 79 74 65 61 ing index, bytea
ba60: 72 72 61 79 20 6f 62 6a 65 63 74 20 6f 75 74 20 rray object out
ba70: 6f 66 20 62 6f 75 6e 64 73 7d 20 7b 0a 20 20 20 of bounds} {.
ba80: 20 20 70 72 6f 63 20 66 6f 6f 20 7b 7d 20 7b 73 proc foo {} {s
ba90: 74 72 69 6e 67 20 69 6e 64 65 78 20 5b 62 69 6e tring index [bin
baa0: 61 72 79 20 66 6f 72 6d 61 74 20 49 2a 20 7b 30 ary format I* {0
bab0: 78 35 30 35 31 35 32 35 33 20 30 78 35 32 7d 5d x50515253 0x52}]
bac0: 20 2d 31 7d 0a 20 20 20 20 20 66 6f 6f 0a 49 6e -1}. foo.In
bad0: 64 65 78 3a 20 74 65 73 74 73 2f 75 74 69 6c 2e dex: tests/util.
bae0: 74 65 73 74 0a 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d test.===========
baf0: 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d ================
bb00: 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d ================
bb10: 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d ================
bb20: 3d 3d 3d 3d 3d 3d 3d 3d 0a 52 43 53 20 66 69 6c ========.RCS fil
bb30: 65 3a 20 2f 63 76 73 72 6f 6f 74 2f 74 63 6c 2f e: /cvsroot/tcl/
bb40: 74 63 6c 2f 74 65 73 74 73 2f 75 74 69 6c 2e 74 tcl/tests/util.t
bb50: 65 73 74 2c 76 0a 72 65 74 72 69 65 76 69 6e 67 est,v.retrieving
bb60: 20 72 65 76 69 73 69 6f 6e 20 31 2e 31 34 0a 64 revision 1.14.d
bb70: 69 66 66 20 2d 75 20 2d 72 31 2e 31 34 20 75 74 iff -u -r1.14 ut
bb80: 69 6c 2e 74 65 73 74 0a 2d 2d 2d 20 74 65 73 74 il.test.--- test
bb90: 73 2f 75 74 69 6c 2e 74 65 73 74 09 31 39 20 4d s/util.test.19 M
bba0: 61 79 20 32 30 30 34 20 32 30 3a 31 35 3a 33 32 ay 2004 20:15:32
bbb0: 20 2d 30 30 30 30 09 31 2e 31 34 0a 2b 2b 2b 20 -0000.1.14.+++
bbc0: 74 65 73 74 73 2f 75 74 69 6c 2e 74 65 73 74 09 tests/util.test.
bbd0: 32 39 20 41 70 72 20 32 30 30 35 20 32 30 3a 33 29 Apr 2005 20:3
bbe0: 30 3a 34 32 20 2d 30 30 30 30 0a 40 40 20 2d 33 0:42 -0000.@@ -3
bbf0: 38 38 2c 36 20 2b 33 38 38 2c 31 39 30 20 40 40 88,6 +388,190 @@
bc00: 0a 20 20 20 20 20 6c 69 73 74 20 5b 6c 6c 65 6e . list [llen
bc10: 67 74 68 20 5b 74 65 73 74 64 73 74 72 69 6e 67 gth [testdstring
bc20: 20 67 65 74 5d 5d 20 5b 73 74 72 69 6e 67 20 6c get]] [string l
bc30: 65 6e 67 74 68 20 5b 74 65 73 74 64 73 74 72 69 ength [testdstri
bc40: 6e 67 20 67 65 74 5d 5d 0a 20 7d 20 7b 32 20 39 ng get]]. } {2 9
bc50: 7d 0a 20 0a 2b 74 65 73 74 20 75 74 69 6c 2d 39 }. .+test util-9
bc60: 2e 30 2e 30 20 7b 54 63 6c 47 65 74 49 6e 74 46 .0.0 {TclGetIntF
bc70: 6f 72 49 6e 64 65 78 7d 20 7b 0a 2b 20 20 20 20 orIndex} {.+
bc80: 73 74 72 69 6e 67 20 69 6e 64 65 78 20 61 62 63 string index abc
bc90: 64 20 30 0a 2b 7d 20 61 0a 2b 74 65 73 74 20 75 d 0.+} a.+test u
bca0: 74 69 6c 2d 39 2e 30 2e 31 20 7b 54 63 6c 47 65 til-9.0.1 {TclGe
bcb0: 74 49 6e 74 46 6f 72 49 6e 64 65 78 7d 20 7b 0a tIntForIndex} {.
bcc0: 2b 20 20 20 20 73 74 72 69 6e 67 20 69 6e 64 65 + string inde
bcd0: 78 20 61 62 63 64 20 30 78 30 0a 2b 7d 20 61 0a x abcd 0x0.+} a.
bce0: 2b 74 65 73 74 20 75 74 69 6c 2d 39 2e 30 2e 32 +test util-9.0.2
bcf0: 20 7b 54 63 6c 47 65 74 49 6e 74 46 6f 72 49 6e {TclGetIntForIn
bd00: 64 65 78 7d 20 7b 0a 2b 20 20 20 20 73 74 72 69 dex} {.+ stri
bd10: 6e 67 20 69 6e 64 65 78 20 61 62 63 64 20 2d 30 ng index abcd -0
bd20: 78 30 0a 2b 7d 20 61 0a 2b 74 65 73 74 20 75 74 x0.+} a.+test ut
bd30: 69 6c 2d 39 2e 30 2e 33 20 7b 54 63 6c 47 65 74 il-9.0.3 {TclGet
bd40: 49 6e 74 46 6f 72 49 6e 64 65 78 7d 20 7b 0a 2b IntForIndex} {.+
bd50: 20 20 20 20 73 74 72 69 6e 67 20 69 6e 64 65 78 string index
bd60: 20 61 62 63 64 20 7b 20 30 20 7d 0a 2b 7d 20 61 abcd { 0 }.+} a
bd70: 0a 2b 74 65 73 74 20 75 74 69 6c 2d 39 2e 30 2e .+test util-9.0.
bd80: 34 20 7b 54 63 6c 47 65 74 49 6e 74 46 6f 72 49 4 {TclGetIntForI
bd90: 6e 64 65 78 7d 20 7b 0a 2b 20 20 20 20 73 74 72 ndex} {.+ str
bda0: 69 6e 67 20 69 6e 64 65 78 20 61 62 63 64 20 7b ing index abcd {
bdb0: 20 30 78 30 20 7d 0a 2b 7d 20 61 0a 2b 74 65 73 0x0 }.+} a.+tes
bdc0: 74 20 75 74 69 6c 2d 39 2e 30 2e 35 20 7b 54 63 t util-9.0.5 {Tc
bdd0: 6c 47 65 74 49 6e 74 46 6f 72 49 6e 64 65 78 7d lGetIntForIndex}
bde0: 20 7b 0a 2b 20 20 20 20 73 74 72 69 6e 67 20 69 {.+ string i
bdf0: 6e 64 65 78 20 61 62 63 64 20 7b 20 2d 30 78 30 ndex abcd { -0x0
be00: 20 7d 0a 2b 7d 20 61 0a 2b 74 65 73 74 20 75 74 }.+} a.+test ut
be10: 69 6c 2d 39 2e 30 2e 36 20 7b 54 63 6c 47 65 74 il-9.0.6 {TclGet
be20: 49 6e 74 46 6f 72 49 6e 64 65 78 7d 20 7b 0a 2b IntForIndex} {.+
be30: 20 20 20 20 73 74 72 69 6e 67 20 69 6e 64 65 78 string index
be40: 20 61 62 63 64 20 30 31 0a 2b 7d 20 62 0a 2b 74 abcd 01.+} b.+t
be50: 65 73 74 20 75 74 69 6c 2d 39 2e 30 2e 37 20 7b est util-9.0.7 {
be60: 54 63 6c 47 65 74 49 6e 74 46 6f 72 49 6e 64 65 TclGetIntForInde
be70: 78 7d 20 7b 0a 2b 20 20 20 20 73 74 72 69 6e 67 x} {.+ string
be80: 20 69 6e 64 65 78 20 61 62 63 64 20 7b 20 30 31 index abcd { 01
be90: 20 7d 0a 2b 7d 20 62 0a 2b 74 65 73 74 20 75 74 }.+} b.+test ut
bea0: 69 6c 2d 39 2e 31 2e 30 20 7b 54 63 6c 47 65 74 il-9.1.0 {TclGet
beb0: 49 6e 74 46 6f 72 49 6e 64 65 78 7d 20 7b 0a 2b IntForIndex} {.+
bec0: 20 20 20 20 73 74 72 69 6e 67 20 69 6e 64 65 78 string index
bed0: 20 61 62 63 64 20 33 0a 2b 7d 20 64 0a 2b 74 65 abcd 3.+} d.+te
bee0: 73 74 20 75 74 69 6c 2d 39 2e 31 2e 31 20 7b 54 st util-9.1.1 {T
bef0: 63 6c 47 65 74 49 6e 74 46 6f 72 49 6e 64 65 78 clGetIntForIndex
bf00: 7d 20 7b 0a 2b 20 20 20 20 73 74 72 69 6e 67 20 } {.+ string
bf10: 69 6e 64 65 78 20 61 62 63 64 20 7b 20 33 20 7d index abcd { 3 }
bf20: 0a 2b 7d 20 64 0a 2b 74 65 73 74 20 75 74 69 6c .+} d.+test util
bf30: 2d 39 2e 31 2e 32 20 7b 54 63 6c 47 65 74 49 6e -9.1.2 {TclGetIn
bf40: 74 46 6f 72 49 6e 64 65 78 7d 20 7b 0a 2b 20 20 tForIndex} {.+
bf50: 20 20 73 74 72 69 6e 67 20 69 6e 64 65 78 20 61 string index a
bf60: 62 63 64 65 66 67 68 69 6a 6b 20 30 78 61 0a 2b bcdefghijk 0xa.+
bf70: 7d 20 6b 0a 2b 74 65 73 74 20 75 74 69 6c 2d 39 } k.+test util-9
bf80: 2e 31 2e 33 20 7b 54 63 6c 47 65 74 49 6e 74 46 .1.3 {TclGetIntF
bf90: 6f 72 49 6e 64 65 78 7d 20 7b 0a 2b 20 20 20 20 orIndex} {.+
bfa0: 73 74 72 69 6e 67 20 69 6e 64 65 78 20 61 62 63 string index abc
bfb0: 64 65 66 67 68 69 6a 6b 20 7b 20 30 78 61 20 7d defghijk { 0xa }
bfc0: 0a 2b 7d 20 6b 0a 2b 74 65 73 74 20 75 74 69 6c .+} k.+test util
bfd0: 2d 39 2e 32 2e 30 20 7b 54 63 6c 47 65 74 49 6e -9.2.0 {TclGetIn
bfe0: 74 46 6f 72 49 6e 64 65 78 7d 20 7b 0a 2b 20 20 tForIndex} {.+
bff0: 20 20 73 74 72 69 6e 67 20 69 6e 64 65 78 20 61 string index a
c000: 62 63 64 20 65 6e 64 0a 2b 7d 20 64 20 0a 2b 74 bcd end.+} d .+t
c010: 65 73 74 20 75 74 69 6c 2d 39 2e 32 2e 31 20 7b est util-9.2.1 {
c020: 54 63 6c 47 65 74 49 6e 74 46 6f 72 49 6e 64 65 TclGetIntForInde
c030: 78 7d 20 2d 62 6f 64 79 20 7b 0a 2b 20 20 20 20 x} -body {.+
c040: 73 74 72 69 6e 67 20 69 6e 64 65 78 20 61 62 63 string index abc
c050: 64 20 7b 20 65 6e 64 7d 0a 2b 7d 20 2d 72 65 74 d { end}.+} -ret
c060: 75 72 6e 43 6f 64 65 73 20 65 72 72 6f 72 20 2d urnCodes error -
c070: 6d 61 74 63 68 20 67 6c 6f 62 20 2d 72 65 73 75 match glob -resu
c080: 6c 74 20 2a 0a 2b 74 65 73 74 20 75 74 69 6c 2d lt *.+test util-
c090: 39 2e 32 2e 32 20 7b 54 63 6c 47 65 74 49 6e 74 9.2.2 {TclGetInt
c0a0: 46 6f 72 49 6e 64 65 78 7d 20 2d 62 6f 64 79 20 ForIndex} -body
c0b0: 7b 0a 2b 20 20 20 20 73 74 72 69 6e 67 20 69 6e {.+ string in
c0c0: 64 65 78 20 61 62 63 64 20 7b 65 6e 64 20 7d 0a dex abcd {end }.
c0d0: 2b 7d 20 2d 72 65 74 75 72 6e 43 6f 64 65 73 20 +} -returnCodes
c0e0: 65 72 72 6f 72 20 2d 6d 61 74 63 68 20 67 6c 6f error -match glo
c0f0: 62 20 2d 72 65 73 75 6c 74 20 2a 0a 2b 74 65 73 b -result *.+tes
c100: 74 20 75 74 69 6c 2d 39 2e 33 20 7b 54 63 6c 47 t util-9.3 {TclG
c110: 65 74 49 6e 74 46 6f 72 49 6e 64 65 78 7d 20 7b etIntForIndex} {
c120: 0a 2b 20 20 20 20 23 20 44 65 70 72 65 63 61 74 .+ # Deprecat
c130: 65 64 0a 2b 20 20 20 20 73 74 72 69 6e 67 20 69 ed.+ string i
c140: 6e 64 65 78 20 61 62 63 64 20 65 6e 0a 2b 7d 20 ndex abcd en.+}
c150: 64 0a 2b 74 65 73 74 20 75 74 69 6c 2d 39 2e 34 d.+test util-9.4
c160: 20 7b 54 63 6c 47 65 74 49 6e 74 46 6f 72 49 6e {TclGetIntForIn
c170: 64 65 78 7d 20 7b 0a 2b 20 20 20 20 23 20 44 65 dex} {.+ # De
c180: 70 72 65 63 61 74 65 64 0a 2b 20 20 20 20 73 74 precated.+ st
c190: 72 69 6e 67 20 69 6e 64 65 78 20 61 62 63 64 20 ring index abcd
c1a0: 65 0a 2b 7d 20 64 0a 2b 74 65 73 74 20 75 74 69 e.+} d.+test uti
c1b0: 6c 2d 39 2e 35 2e 30 20 7b 54 63 6c 47 65 74 49 l-9.5.0 {TclGetI
c1c0: 6e 74 46 6f 72 49 6e 64 65 78 7d 20 7b 0a 2b 20 ntForIndex} {.+
c1d0: 20 20 20 73 74 72 69 6e 67 20 69 6e 64 65 78 20 string index
c1e0: 61 62 63 64 20 65 6e 64 2d 31 0a 2b 7d 20 63 0a abcd end-1.+} c.
c1f0: 2b 74 65 73 74 20 75 74 69 6c 2d 39 2e 35 2e 31 +test util-9.5.1
c200: 20 7b 54 63 6c 47 65 74 49 6e 74 46 6f 72 49 6e {TclGetIntForIn
c210: 64 65 78 7d 20 7b 0a 2b 20 20 20 20 73 74 72 69 dex} {.+ stri
c220: 6e 67 20 69 6e 64 65 78 20 61 62 63 64 20 7b 65 ng index abcd {e
c230: 6e 64 2d 31 20 7d 0a 2b 7d 20 63 0a 2b 74 65 73 nd-1 }.+} c.+tes
c240: 74 20 75 74 69 6c 2d 39 2e 35 2e 32 20 7b 54 63 t util-9.5.2 {Tc
c250: 6c 47 65 74 49 6e 74 46 6f 72 49 6e 64 65 78 7d lGetIntForIndex}
c260: 20 2d 62 6f 64 79 20 7b 0a 2b 20 20 20 20 73 74 -body {.+ st
c270: 72 69 6e 67 20 69 6e 64 65 78 20 61 62 63 64 20 ring index abcd
c280: 7b 20 65 6e 64 2d 31 7d 0a 2b 7d 20 2d 72 65 74 { end-1}.+} -ret
c290: 75 72 6e 43 6f 64 65 73 20 65 72 72 6f 72 20 2d urnCodes error -
c2a0: 6d 61 74 63 68 20 67 6c 6f 62 20 2d 72 65 73 75 match glob -resu
c2b0: 6c 74 20 2a 0a 2b 74 65 73 74 20 75 74 69 6c 2d lt *.+test util-
c2c0: 39 2e 36 20 7b 54 63 6c 47 65 74 49 6e 74 46 6f 9.6 {TclGetIntFo
c2d0: 72 49 6e 64 65 78 7d 20 7b 0a 2b 20 20 20 20 73 rIndex} {.+ s
c2e0: 74 72 69 6e 67 20 69 6e 64 65 78 20 61 62 63 64 tring index abcd
c2f0: 20 65 6e 64 2b 2d 31 0a 2b 7d 20 63 0a 2b 74 65 end+-1.+} c.+te
c300: 73 74 20 75 74 69 6c 2d 39 2e 37 20 7b 54 63 6c st util-9.7 {Tcl
c310: 47 65 74 49 6e 74 46 6f 72 49 6e 64 65 78 7d 20 GetIntForIndex}
c320: 7b 0a 2b 20 20 20 20 73 74 72 69 6e 67 20 69 6e {.+ string in
c330: 64 65 78 20 61 62 63 64 20 65 6e 64 2b 31 0a 2b dex abcd end+1.+
c340: 7d 20 7b 7d 0a 2b 74 65 73 74 20 75 74 69 6c 2d } {}.+test util-
c350: 39 2e 38 20 7b 54 63 6c 47 65 74 49 6e 74 46 6f 9.8 {TclGetIntFo
c360: 72 49 6e 64 65 78 7d 20 7b 0a 2b 20 20 20 20 73 rIndex} {.+ s
c370: 74 72 69 6e 67 20 69 6e 64 65 78 20 61 62 63 64 tring index abcd
c380: 20 65 6e 64 2d 2d 31 0a 2b 7d 20 7b 7d 0a 2b 74 end--1.+} {}.+t
c390: 65 73 74 20 75 74 69 6c 2d 39 2e 39 2e 30 20 7b est util-9.9.0 {
c3a0: 54 63 6c 47 65 74 49 6e 74 46 6f 72 49 6e 64 65 TclGetIntForInde
c3b0: 78 7d 20 7b 0a 2b 20 20 20 20 73 74 72 69 6e 67 x} {.+ string
c3c0: 20 69 6e 64 65 78 20 61 62 63 64 20 30 2b 30 0a index abcd 0+0.
c3d0: 2b 7d 20 61 0a 2b 74 65 73 74 20 75 74 69 6c 2d +} a.+test util-
c3e0: 39 2e 39 2e 31 20 7b 54 63 6c 47 65 74 49 6e 74 9.9.1 {TclGetInt
c3f0: 46 6f 72 49 6e 64 65 78 7d 20 7b 0a 2b 20 20 20 ForIndex} {.+
c400: 20 73 74 72 69 6e 67 20 69 6e 64 65 78 20 61 62 string index ab
c410: 63 64 20 7b 20 30 2b 30 20 7d 0a 2b 7d 20 61 0a cd { 0+0 }.+} a.
c420: 2b 74 65 73 74 20 75 74 69 6c 2d 39 2e 31 30 20 +test util-9.10
c430: 7b 54 63 6c 47 65 74 49 6e 74 46 6f 72 49 6e 64 {TclGetIntForInd
c440: 65 78 7d 20 7b 0a 2b 20 20 20 20 73 74 72 69 6e ex} {.+ strin
c450: 67 20 69 6e 64 65 78 20 61 62 63 64 20 30 2d 30 g index abcd 0-0
c460: 0a 2b 7d 20 61 0a 2b 74 65 73 74 20 75 74 69 6c .+} a.+test util
c470: 2d 39 2e 31 31 20 7b 54 63 6c 47 65 74 49 6e 74 -9.11 {TclGetInt
c480: 46 6f 72 49 6e 64 65 78 7d 20 7b 0a 2b 20 20 20 ForIndex} {.+
c490: 20 73 74 72 69 6e 67 20 69 6e 64 65 78 20 61 62 string index ab
c4a0: 63 64 20 31 2b 30 0a 2b 7d 20 62 0a 2b 74 65 73 cd 1+0.+} b.+tes
c4b0: 74 20 75 74 69 6c 2d 39 2e 31 32 20 7b 54 63 6c t util-9.12 {Tcl
c4c0: 47 65 74 49 6e 74 46 6f 72 49 6e 64 65 78 7d 20 GetIntForIndex}
c4d0: 7b 0a 2b 20 20 20 20 73 74 72 69 6e 67 20 69 6e {.+ string in
c4e0: 64 65 78 20 61 62 63 64 20 31 2d 30 0a 2b 7d 20 dex abcd 1-0.+}
c4f0: 62 0a 2b 74 65 73 74 20 75 74 69 6c 2d 39 2e 31 b.+test util-9.1
c500: 33 20 7b 54 63 6c 47 65 74 49 6e 74 46 6f 72 49 3 {TclGetIntForI
c510: 6e 64 65 78 7d 20 7b 0a 2b 20 20 20 20 73 74 72 ndex} {.+ str
c520: 69 6e 67 20 69 6e 64 65 78 20 61 62 63 64 20 31 ing index abcd 1
c530: 2b 31 0a 2b 7d 20 63 0a 2b 74 65 73 74 20 75 74 +1.+} c.+test ut
c540: 69 6c 2d 39 2e 31 34 20 7b 54 63 6c 47 65 74 49 il-9.14 {TclGetI
c550: 6e 74 46 6f 72 49 6e 64 65 78 7d 20 7b 0a 2b 20 ntForIndex} {.+
c560: 20 20 20 73 74 72 69 6e 67 20 69 6e 64 65 78 20 string index
c570: 61 62 63 64 20 31 2d 31 0a 2b 7d 20 61 0a 2b 74 abcd 1-1.+} a.+t
c580: 65 73 74 20 75 74 69 6c 2d 39 2e 31 35 20 7b 54 est util-9.15 {T
c590: 63 6c 47 65 74 49 6e 74 46 6f 72 49 6e 64 65 78 clGetIntForIndex
c5a0: 7d 20 7b 0a 2b 20 20 20 20 73 74 72 69 6e 67 20 } {.+ string
c5b0: 69 6e 64 65 78 20 61 62 63 64 20 2d 31 2b 32 0a index abcd -1+2.
c5c0: 2b 7d 20 62 0a 2b 74 65 73 74 20 75 74 69 6c 2d +} b.+test util-
c5d0: 39 2e 31 36 20 7b 54 63 6c 47 65 74 49 6e 74 46 9.16 {TclGetIntF
c5e0: 6f 72 49 6e 64 65 78 7d 20 7b 0a 2b 20 20 20 20 orIndex} {.+
c5f0: 73 74 72 69 6e 67 20 69 6e 64 65 78 20 61 62 63 string index abc
c600: 64 20 2d 31 2d 2d 32 0a 2b 7d 20 62 0a 2b 74 65 d -1--2.+} b.+te
c610: 73 74 20 75 74 69 6c 2d 39 2e 31 37 20 7b 54 63 st util-9.17 {Tc
c620: 6c 47 65 74 49 6e 74 46 6f 72 49 6e 64 65 78 7d lGetIntForIndex}
c630: 20 7b 0a 2b 20 20 20 20 73 74 72 69 6e 67 20 69 {.+ string i
c640: 6e 64 65 78 20 61 62 63 64 20 7b 20 2d 31 2b 32 ndex abcd { -1+2
c650: 20 7d 0a 2b 7d 20 62 0a 2b 74 65 73 74 20 75 74 }.+} b.+test ut
c660: 69 6c 2d 39 2e 31 38 20 7b 54 63 6c 47 65 74 49 il-9.18 {TclGetI
c670: 6e 74 46 6f 72 49 6e 64 65 78 7d 20 7b 0a 2b 20 ntForIndex} {.+
c680: 20 20 20 73 74 72 69 6e 67 20 69 6e 64 65 78 20 string index
c690: 61 62 63 64 20 7b 20 2d 31 2d 2d 32 20 7d 0a 2b abcd { -1--2 }.+
c6a0: 7d 20 62 0a 2b 74 65 73 74 20 75 74 69 6c 2d 39 } b.+test util-9
c6b0: 2e 31 39 20 7b 54 63 6c 47 65 74 49 6e 74 46 6f .19 {TclGetIntFo
c6c0: 72 49 6e 64 65 78 7d 20 2d 62 6f 64 79 20 7b 0a rIndex} -body {.
c6d0: 2b 20 20 20 20 73 74 72 69 6e 67 20 69 6e 64 65 + string inde
c6e0: 78 20 61 20 7b 7d 0a 2b 7d 20 2d 72 65 74 75 72 x a {}.+} -retur
c6f0: 6e 43 6f 64 65 73 20 65 72 72 6f 72 20 2d 6d 61 nCodes error -ma
c700: 74 63 68 20 67 6c 6f 62 20 2d 72 65 73 75 6c 74 tch glob -result
c710: 20 2a 0a 2b 74 65 73 74 20 75 74 69 6c 2d 39 2e *.+test util-9.
c720: 32 30 20 7b 54 63 6c 47 65 74 49 6e 74 46 6f 72 20 {TclGetIntFor
c730: 49 6e 64 65 78 7d 20 2d 62 6f 64 79 20 7b 0a 2b Index} -body {.+
c740: 20 20 20 20 73 74 72 69 6e 67 20 69 6e 64 65 78 string index
c750: 20 61 20 7b 20 7d 0a 2b 7d 20 2d 72 65 74 75 72 a { }.+} -retur
c760: 6e 43 6f 64 65 73 20 65 72 72 6f 72 20 2d 6d 61 nCodes error -ma
c770: 74 63 68 20 67 6c 6f 62 20 2d 72 65 73 75 6c 74 tch glob -result
c780: 20 2a 0a 2b 74 65 73 74 20 75 74 69 6c 2d 39 2e *.+test util-9.
c790: 32 31 20 7b 54 63 6c 47 65 74 49 6e 74 46 6f 72 21 {TclGetIntFor
c7a0: 49 6e 64 65 78 7d 20 2d 62 6f 64 79 20 7b 0a 2b Index} -body {.+
c7b0: 20 20 20 20 73 74 72 69 6e 67 20 69 6e 64 65 78 string index
c7c0: 20 61 20 22 20 5c 72 5c 74 5c 6e 22 0a 2b 7d 20 a " \r\t\n".+}
c7d0: 2d 72 65 74 75 72 6e 43 6f 64 65 73 20 65 72 72 -returnCodes err
c7e0: 6f 72 20 2d 6d 61 74 63 68 20 67 6c 6f 62 20 2d or -match glob -
c7f0: 72 65 73 75 6c 74 20 2a 0a 2b 74 65 73 74 20 75 result *.+test u
c800: 74 69 6c 2d 39 2e 32 32 20 7b 54 63 6c 47 65 74 til-9.22 {TclGet
c810: 49 6e 74 46 6f 72 49 6e 64 65 78 7d 20 2d 62 6f IntForIndex} -bo
c820: 64 79 20 7b 0a 2b 20 20 20 20 73 74 72 69 6e 67 dy {.+ string
c830: 20 69 6e 64 65 78 20 61 20 2b 0a 2b 7d 20 2d 72 index a +.+} -r
c840: 65 74 75 72 6e 43 6f 64 65 73 20 65 72 72 6f 72 eturnCodes error
c850: 20 2d 6d 61 74 63 68 20 67 6c 6f 62 20 2d 72 65 -match glob -re
c860: 73 75 6c 74 20 2a 0a 2b 74 65 73 74 20 75 74 69 sult *.+test uti
c870: 6c 2d 39 2e 32 33 20 7b 54 63 6c 47 65 74 49 6e l-9.23 {TclGetIn
c880: 74 46 6f 72 49 6e 64 65 78 7d 20 2d 62 6f 64 79 tForIndex} -body
c890: 20 7b 0a 2b 20 20 20 20 73 74 72 69 6e 67 20 69 {.+ string i
c8a0: 6e 64 65 78 20 61 20 2d 0a 2b 7d 20 2d 72 65 74 ndex a -.+} -ret
c8b0: 75 72 6e 43 6f 64 65 73 20 65 72 72 6f 72 20 2d urnCodes error -
c8c0: 6d 61 74 63 68 20 67 6c 6f 62 20 2d 72 65 73 75 match glob -resu
c8d0: 6c 74 20 2a 0a 2b 74 65 73 74 20 75 74 69 6c 2d lt *.+test util-
c8e0: 39 2e 32 34 20 7b 54 63 6c 47 65 74 49 6e 74 46 9.24 {TclGetIntF
c8f0: 6f 72 49 6e 64 65 78 7d 20 2d 62 6f 64 79 20 7b orIndex} -body {
c900: 0a 2b 20 20 20 20 73 74 72 69 6e 67 20 69 6e 64 .+ string ind
c910: 65 78 20 61 20 78 0a 2b 7d 20 2d 72 65 74 75 72 ex a x.+} -retur
c920: 6e 43 6f 64 65 73 20 65 72 72 6f 72 20 2d 6d 61 nCodes error -ma
c930: 74 63 68 20 67 6c 6f 62 20 2d 72 65 73 75 6c 74 tch glob -result
c940: 20 2a 0a 2b 74 65 73 74 20 75 74 69 6c 2d 39 2e *.+test util-9.
c950: 32 35 20 7b 54 63 6c 47 65 74 49 6e 74 46 6f 72 25 {TclGetIntFor
c960: 49 6e 64 65 78 7d 20 2d 62 6f 64 79 20 7b 0a 2b Index} -body {.+
c970: 20 20 20 20 73 74 72 69 6e 67 20 69 6e 64 65 78 string index
c980: 20 61 20 2b 78 0a 2b 7d 20 2d 72 65 74 75 72 6e a +x.+} -return
c990: 43 6f 64 65 73 20 65 72 72 6f 72 20 2d 6d 61 74 Codes error -mat
c9a0: 63 68 20 67 6c 6f 62 20 2d 72 65 73 75 6c 74 20 ch glob -result
c9b0: 2a 0a 2b 74 65 73 74 20 75 74 69 6c 2d 39 2e 32 *.+test util-9.2
c9c0: 36 20 7b 54 63 6c 47 65 74 49 6e 74 46 6f 72 49 6 {TclGetIntForI
c9d0: 6e 64 65 78 7d 20 2d 62 6f 64 79 20 7b 0a 2b 20 ndex} -body {.+
c9e0: 20 20 20 73 74 72 69 6e 67 20 69 6e 64 65 78 20 string index
c9f0: 61 20 2d 78 0a 2b 7d 20 2d 72 65 74 75 72 6e 43 a -x.+} -returnC
ca00: 6f 64 65 73 20 65 72 72 6f 72 20 2d 6d 61 74 63 odes error -matc
ca10: 68 20 67 6c 6f 62 20 2d 72 65 73 75 6c 74 20 2a h glob -result *
ca20: 0a 2b 74 65 73 74 20 75 74 69 6c 2d 39 2e 32 37 .+test util-9.27
ca30: 20 7b 54 63 6c 47 65 74 49 6e 74 46 6f 72 49 6e {TclGetIntForIn
ca40: 64 65 78 7d 20 2d 62 6f 64 79 20 7b 0a 2b 20 20 dex} -body {.+
ca50: 20 20 73 74 72 69 6e 67 20 69 6e 64 65 78 20 61 string index a
ca60: 20 30 79 0a 2b 7d 20 2d 72 65 74 75 72 6e 43 6f 0y.+} -returnCo
ca70: 64 65 73 20 65 72 72 6f 72 20 2d 6d 61 74 63 68 des error -match
ca80: 20 67 6c 6f 62 20 2d 72 65 73 75 6c 74 20 2a 0a glob -result *.
ca90: 2b 74 65 73 74 20 75 74 69 6c 2d 39 2e 32 38 20 +test util-9.28
caa0: 7b 54 63 6c 47 65 74 49 6e 74 46 6f 72 49 6e 64 {TclGetIntForInd
cab0: 65 78 7d 20 2d 62 6f 64 79 20 7b 0a 2b 20 20 20 ex} -body {.+
cac0: 20 73 74 72 69 6e 67 20 69 6e 64 65 78 20 61 20 string index a
cad0: 31 2a 0a 2b 7d 20 2d 72 65 74 75 72 6e 43 6f 64 1*.+} -returnCod
cae0: 65 73 20 65 72 72 6f 72 20 2d 6d 61 74 63 68 20 es error -match
caf0: 67 6c 6f 62 20 2d 72 65 73 75 6c 74 20 2a 0a 2b glob -result *.+
cb00: 74 65 73 74 20 75 74 69 6c 2d 39 2e 32 39 20 7b test util-9.29 {
cb10: 54 63 6c 47 65 74 49 6e 74 46 6f 72 49 6e 64 65 TclGetIntForInde
cb20: 78 7d 20 2d 62 6f 64 79 20 7b 0a 2b 20 20 20 20 x} -body {.+
cb30: 73 74 72 69 6e 67 20 69 6e 64 65 78 20 61 20 30 string index a 0
cb40: 2b 0a 2b 7d 20 2d 72 65 74 75 72 6e 43 6f 64 65 +.+} -returnCode
cb50: 73 20 65 72 72 6f 72 20 2d 6d 61 74 63 68 20 67 s error -match g
cb60: 6c 6f 62 20 2d 72 65 73 75 6c 74 20 2a 0a 2b 74 lob -result *.+t
cb70: 65 73 74 20 75 74 69 6c 2d 39 2e 33 30 20 7b 54 est util-9.30 {T
cb80: 63 6c 47 65 74 49 6e 74 46 6f 72 49 6e 64 65 78 clGetIntForIndex
cb90: 7d 20 2d 62 6f 64 79 20 7b 0a 2b 20 20 20 20 73 } -body {.+ s
cba0: 74 72 69 6e 67 20 69 6e 64 65 78 20 61 20 7b 30 tring index a {0
cbb0: 2b 20 7d 0a 2b 7d 20 2d 72 65 74 75 72 6e 43 6f + }.+} -returnCo
cbc0: 64 65 73 20 65 72 72 6f 72 20 2d 6d 61 74 63 68 des error -match
cbd0: 20 67 6c 6f 62 20 2d 72 65 73 75 6c 74 20 2a 0a glob -result *.
cbe0: 2b 74 65 73 74 20 75 74 69 6c 2d 39 2e 33 31 20 +test util-9.31
cbf0: 7b 54 63 6c 47 65 74 49 6e 74 46 6f 72 49 6e 64 {TclGetIntForInd
cc00: 65 78 7d 20 2d 62 6f 64 79 20 7b 0a 2b 20 20 20 ex} -body {.+
cc10: 20 73 74 72 69 6e 67 20 69 6e 64 65 78 20 61 20 string index a
cc20: 30 78 0a 2b 7d 20 2d 72 65 74 75 72 6e 43 6f 64 0x.+} -returnCod
cc30: 65 73 20 65 72 72 6f 72 20 2d 6d 61 74 63 68 20 es error -match
cc40: 67 6c 6f 62 20 2d 72 65 73 75 6c 74 20 2a 0a 2b glob -result *.+
cc50: 74 65 73 74 20 75 74 69 6c 2d 39 2e 33 32 20 7b test util-9.32 {
cc60: 54 63 6c 47 65 74 49 6e 74 46 6f 72 49 6e 64 65 TclGetIntForInde
cc70: 78 7d 20 2d 62 6f 64 79 20 7b 0a 2b 20 20 20 20 x} -body {.+
cc80: 73 74 72 69 6e 67 20 69 6e 64 65 78 20 61 20 30 string index a 0
cc90: 78 31 46 46 46 46 46 46 46 46 2b 30 0a 2b 7d 20 x1FFFFFFFF+0.+}
cca0: 2d 72 65 74 75 72 6e 43 6f 64 65 73 20 65 72 72 -returnCodes err
ccb0: 6f 72 20 2d 6d 61 74 63 68 20 67 6c 6f 62 20 2d or -match glob -
ccc0: 72 65 73 75 6c 74 20 2a 0a 2b 74 65 73 74 20 75 result *.+test u
ccd0: 74 69 6c 2d 39 2e 33 33 20 7b 54 63 6c 47 65 74 til-9.33 {TclGet
cce0: 49 6e 74 46 6f 72 49 6e 64 65 78 7d 20 2d 62 6f IntForIndex} -bo
ccf0: 64 79 20 7b 0a 2b 20 20 20 20 73 74 72 69 6e 67 dy {.+ string
cd00: 20 69 6e 64 65 78 20 61 20 31 30 30 30 30 30 30 index a 1000000
cd10: 30 30 30 30 30 2b 30 0a 2b 7d 20 2d 72 65 74 75 00000+0.+} -retu
cd20: 72 6e 43 6f 64 65 73 20 65 72 72 6f 72 20 2d 6d rnCodes error -m
cd30: 61 74 63 68 20 67 6c 6f 62 20 2d 72 65 73 75 6c atch glob -resul
cd40: 74 20 2a 0a 2b 74 65 73 74 20 75 74 69 6c 2d 39 t *.+test util-9
cd50: 2e 33 34 20 7b 54 63 6c 47 65 74 49 6e 74 46 6f .34 {TclGetIntFo
cd60: 72 49 6e 64 65 78 7d 20 2d 62 6f 64 79 20 7b 0a rIndex} -body {.
cd70: 2b 20 20 20 20 73 74 72 69 6e 67 20 69 6e 64 65 + string inde
cd80: 78 20 61 20 31 2e 30 0a 2b 7d 20 2d 72 65 74 75 x a 1.0.+} -retu
cd90: 72 6e 43 6f 64 65 73 20 65 72 72 6f 72 20 2d 6d rnCodes error -m
cda0: 61 74 63 68 20 67 6c 6f 62 20 2d 72 65 73 75 6c atch glob -resul
cdb0: 74 20 2a 0a 2b 74 65 73 74 20 75 74 69 6c 2d 39 t *.+test util-9
cdc0: 2e 33 35 20 7b 54 63 6c 47 65 74 49 6e 74 46 6f .35 {TclGetIntFo
cdd0: 72 49 6e 64 65 78 7d 20 2d 62 6f 64 79 20 7b 0a rIndex} -body {.
cde0: 2b 20 20 20 20 73 74 72 69 6e 67 20 69 6e 64 65 + string inde
cdf0: 78 20 61 20 31 65 32 33 0a 2b 7d 20 2d 72 65 74 x a 1e23.+} -ret
ce00: 75 72 6e 43 6f 64 65 73 20 65 72 72 6f 72 20 2d urnCodes error -
ce10: 6d 61 74 63 68 20 67 6c 6f 62 20 2d 72 65 73 75 match glob -resu
ce20: 6c 74 20 2a 0a 2b 74 65 73 74 20 75 74 69 6c 2d lt *.+test util-
ce30: 39 2e 33 36 20 7b 54 63 6c 47 65 74 49 6e 74 46 9.36 {TclGetIntF
ce40: 6f 72 49 6e 64 65 78 7d 20 2d 62 6f 64 79 20 7b orIndex} -body {
ce50: 0a 2b 20 20 20 20 73 74 72 69 6e 67 20 69 6e 64 .+ string ind
ce60: 65 78 20 61 20 31 2e 35 65 32 0a 2b 7d 20 2d 72 ex a 1.5e2.+} -r
ce70: 65 74 75 72 6e 43 6f 64 65 73 20 65 72 72 6f 72 eturnCodes error
ce80: 20 2d 6d 61 74 63 68 20 67 6c 6f 62 20 2d 72 65 -match glob -re
ce90: 73 75 6c 74 20 2a 0a 2b 74 65 73 74 20 75 74 69 sult *.+test uti
cea0: 6c 2d 39 2e 33 37 20 7b 54 63 6c 47 65 74 49 6e l-9.37 {TclGetIn
ceb0: 74 46 6f 72 49 6e 64 65 78 7d 20 2d 62 6f 64 79 tForIndex} -body
cec0: 20 7b 0a 2b 20 20 20 20 73 74 72 69 6e 67 20 69 {.+ string i
ced0: 6e 64 65 78 20 61 20 30 2b 78 0a 2b 7d 20 2d 72 ndex a 0+x.+} -r
cee0: 65 74 75 72 6e 43 6f 64 65 73 20 65 72 72 6f 72 eturnCodes error
cef0: 20 2d 6d 61 74 63 68 20 67 6c 6f 62 20 2d 72 65 -match glob -re
cf00: 73 75 6c 74 20 2a 0a 2b 74 65 73 74 20 75 74 69 sult *.+test uti
cf10: 6c 2d 39 2e 33 38 20 7b 54 63 6c 47 65 74 49 6e l-9.38 {TclGetIn
cf20: 74 46 6f 72 49 6e 64 65 78 7d 20 2d 62 6f 64 79 tForIndex} -body
cf30: 20 7b 0a 2b 20 20 20 20 73 74 72 69 6e 67 20 69 {.+ string i
cf40: 6e 64 65 78 20 61 20 30 2b 30 78 0a 2b 7d 20 2d ndex a 0+0x.+} -
cf50: 72 65 74 75 72 6e 43 6f 64 65 73 20 65 72 72 6f returnCodes erro
cf60: 72 20 2d 6d 61 74 63 68 20 67 6c 6f 62 20 2d 72 r -match glob -r
cf70: 65 73 75 6c 74 20 2a 0a 2b 74 65 73 74 20 75 74 esult *.+test ut
cf80: 69 6c 2d 39 2e 33 39 20 7b 54 63 6c 47 65 74 49 il-9.39 {TclGetI
cf90: 6e 74 46 6f 72 49 6e 64 65 78 7d 20 2d 62 6f 64 ntForIndex} -bod
cfa0: 79 20 7b 0a 2b 20 20 20 20 73 74 72 69 6e 67 20 y {.+ string
cfb0: 69 6e 64 65 78 20 61 20 30 2b 30 78 67 0a 2b 7d index a 0+0xg.+}
cfc0: 20 2d 72 65 74 75 72 6e 43 6f 64 65 73 20 65 72 -returnCodes er
cfd0: 72 6f 72 20 2d 6d 61 74 63 68 20 67 6c 6f 62 20 ror -match glob
cfe0: 2d 72 65 73 75 6c 74 20 2a 0a 2b 74 65 73 74 20 -result *.+test
cff0: 75 74 69 6c 2d 39 2e 34 30 20 7b 54 63 6c 47 65 util-9.40 {TclGe
d000: 74 49 6e 74 46 6f 72 49 6e 64 65 78 7d 20 2d 62 tIntForIndex} -b
d010: 6f 64 79 20 7b 0a 2b 20 20 20 20 73 74 72 69 6e ody {.+ strin
d020: 67 20 69 6e 64 65 78 20 61 20 30 2b 30 78 67 0a g index a 0+0xg.
d030: 2b 7d 20 2d 72 65 74 75 72 6e 43 6f 64 65 73 20 +} -returnCodes
d040: 65 72 72 6f 72 20 2d 6d 61 74 63 68 20 67 6c 6f error -match glo
d050: 62 20 2d 72 65 73 75 6c 74 20 2a 0a 2b 74 65 73 b -result *.+tes
d060: 74 20 75 74 69 6c 2d 39 2e 34 31 20 7b 54 63 6c t util-9.41 {Tcl
d070: 47 65 74 49 6e 74 46 6f 72 49 6e 64 65 78 7d 20 GetIntForIndex}
d080: 2d 62 6f 64 79 20 7b 0a 2b 20 20 20 20 73 74 72 -body {.+ str
d090: 69 6e 67 20 69 6e 64 65 78 20 61 20 30 2b 31 2e ing index a 0+1.
d0a0: 30 0a 2b 7d 20 2d 72 65 74 75 72 6e 43 6f 64 65 0.+} -returnCode
d0b0: 73 20 65 72 72 6f 72 20 2d 6d 61 74 63 68 20 67 s error -match g
d0c0: 6c 6f 62 20 2d 72 65 73 75 6c 74 20 2a 0a 2b 74 lob -result *.+t
d0d0: 65 73 74 20 75 74 69 6c 2d 39 2e 34 32 20 7b 54 est util-9.42 {T
d0e0: 63 6c 47 65 74 49 6e 74 46 6f 72 49 6e 64 65 78 clGetIntForIndex
d0f0: 7d 20 2d 62 6f 64 79 20 7b 0a 2b 20 20 20 20 73 } -body {.+ s
d100: 74 72 69 6e 67 20 69 6e 64 65 78 20 61 20 30 2b tring index a 0+
d110: 31 65 32 0a 2b 7d 20 2d 72 65 74 75 72 6e 43 6f 1e2.+} -returnCo
d120: 64 65 73 20 65 72 72 6f 72 20 2d 6d 61 74 63 68 des error -match
d130: 20 67 6c 6f 62 20 2d 72 65 73 75 6c 74 20 2a 0a glob -result *.
d140: 2b 74 65 73 74 20 75 74 69 6c 2d 39 2e 34 33 20 +test util-9.43
d150: 7b 54 63 6c 47 65 74 49 6e 74 46 6f 72 49 6e 64 {TclGetIntForInd
d160: 65 78 7d 20 2d 62 6f 64 79 20 7b 0a 2b 20 20 20 ex} -body {.+
d170: 20 73 74 72 69 6e 67 20 69 6e 64 65 78 20 61 20 string index a
d180: 30 2b 31 2e 35 65 31 0a 2b 7d 20 2d 72 65 74 75 0+1.5e1.+} -retu
d190: 72 6e 43 6f 64 65 73 20 65 72 72 6f 72 20 2d 6d rnCodes error -m
d1a0: 61 74 63 68 20 67 6c 6f 62 20 2d 72 65 73 75 6c atch glob -resul
d1b0: 74 20 2a 0a 2b 74 65 73 74 20 75 74 69 6c 2d 39 t *.+test util-9
d1c0: 2e 34 34 20 7b 54 63 6c 47 65 74 49 6e 74 46 6f .44 {TclGetIntFo
d1d0: 72 49 6e 64 65 78 7d 20 2d 62 6f 64 79 20 7b 0a rIndex} -body {.
d1e0: 2b 20 20 20 20 73 74 72 69 6e 67 20 69 6e 64 65 + string inde
d1f0: 78 20 61 20 30 2b 31 30 30 30 30 30 30 30 30 30 x a 0+1000000000
d200: 30 30 30 0a 2b 7d 20 2d 72 65 74 75 72 6e 43 6f 000.+} -returnCo
d210: 64 65 73 20 65 72 72 6f 72 20 2d 6d 61 74 63 68 des error -match
d220: 20 67 6c 6f 62 20 2d 72 65 73 75 6c 74 20 2a 0a glob -result *.
d230: 2b 0a 2b 0a 20 23 20 63 6c 65 61 6e 75 70 0a 20 +.+. # cleanup.
d240: 3a 3a 74 63 6c 74 65 73 74 3a 3a 63 6c 65 61 6e ::tcltest::clean
d250: 75 70 54 65 73 74 73 0a 20 72 65 74 75 72 6e 0a upTests. return.