Attachment "TIP-241v4.diff" to
ticket [1152746fff]
added by
mistachkin
2005-03-02 13:53:53.
0000: 49 6e 64 65 78 3a 20 64 6f 63 2f 6c 73 65 61 72 Index: doc/lsear
0010: 63 68 2e 6e 0d 0a 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d ch.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 3d 3d 0d 0a 52 43 53 20 66 =========..RCS f
0060: 69 6c 65 3a 20 2f 63 76 73 72 6f 6f 74 2f 74 63 ile: /cvsroot/tc
0070: 6c 2f 74 63 6c 2f 64 6f 63 2f 6c 73 65 61 72 63 l/tcl/doc/lsearc
0080: 68 2e 6e 2c 76 0d 0a 72 65 74 72 69 65 76 69 6e h.n,v..retrievin
0090: 67 20 72 65 76 69 73 69 6f 6e 20 31 2e 32 32 0d g revision 1.22.
00a0: 0a 64 69 66 66 20 2d 75 20 2d 72 31 2e 32 32 20 .diff -u -r1.22
00b0: 6c 73 65 61 72 63 68 2e 6e 0d 0a 2d 2d 2d 20 64 lsearch.n..--- d
00c0: 6f 63 2f 6c 73 65 61 72 63 68 2e 6e 09 35 20 4a oc/lsearch.n.5 J
00d0: 61 6e 20 32 30 30 35 20 31 36 3a 33 38 3a 35 34 an 2005 16:38:54
00e0: 20 2d 30 30 30 30 09 31 2e 32 32 0d 0a 2b 2b 2b -0000.1.22..+++
00f0: 20 64 6f 63 2f 6c 73 65 61 72 63 68 2e 6e 09 32 doc/lsearch.n.2
0100: 20 4d 61 72 20 32 30 30 35 20 30 36 3a 33 36 3a Mar 2005 06:36:
0110: 31 32 20 2d 30 30 30 30 0d 0a 40 40 20 2d 39 33 12 -0000..@@ -93
0120: 2c 36 20 2b 39 33 2c 31 33 20 40 40 0d 0a 20 2e ,6 +93,13 @@.. .
0130: 54 50 0d 0a 20 5c 66 42 5c 2d 69 6e 74 65 67 65 TP.. \fB\-intege
0140: 72 5c 66 52 0d 0a 20 54 68 65 20 6c 69 73 74 20 r\fR.. The list
0150: 65 6c 65 6d 65 6e 74 73 20 61 72 65 20 74 6f 20 elements are to
0160: 62 65 20 63 6f 6d 70 61 72 65 64 20 61 73 20 69 be compared as i
0170: 6e 74 65 67 65 72 73 2e 0d 0a 2b 2e 56 53 20 38 ntegers...+.VS 8
0180: 2e 35 0d 0a 2b 2e 54 50 0d 0a 2b 5c 66 42 5c 2d .5..+.TP..+\fB\-
0190: 6e 6f 63 61 73 65 5c 66 52 0d 0a 2b 43 61 75 73 nocase\fR..+Caus
01a0: 65 73 20 63 6f 6d 70 61 72 69 73 6f 6e 73 20 74 es comparisons t
01b0: 6f 20 62 65 20 68 61 6e 64 6c 65 64 20 69 6e 20 o be handled in
01c0: 61 20 63 61 73 65 2d 69 6e 73 65 6e 73 69 74 69 a case-insensiti
01d0: 76 65 20 6d 61 6e 6e 65 72 2e 20 20 48 61 73 20 ve manner. Has
01e0: 6e 6f 0d 0a 2b 65 66 66 65 63 74 20 69 66 20 63 no..+effect if c
01f0: 6f 6d 62 69 6e 65 64 20 77 69 74 68 20 74 68 65 ombined with the
0200: 20 5c 66 42 5c 2d 64 69 63 74 69 6f 6e 61 72 79 \fB\-dictionary
0210: 5c 66 52 2c 20 5c 66 42 5c 2d 69 6e 74 65 67 65 \fR, \fB\-intege
0220: 72 5c 66 52 2c 20 6f 72 20 0d 0a 2b 5c 66 42 5c r\fR, or ..+\fB\
0230: 2d 72 65 61 6c 5c 66 52 20 6f 70 74 69 6f 6e 73 -real\fR options
0240: 2e 0d 0a 2b 2e 56 45 20 38 2e 35 0d 0a 20 2e 54 ...+.VE 8.5.. .T
0250: 50 0d 0a 20 5c 66 42 5c 2d 72 65 61 6c 5c 66 52 P.. \fB\-real\fR
0260: 0d 0a 20 54 68 65 20 6c 69 73 74 20 65 6c 65 6d .. The list elem
0270: 65 6e 74 73 20 61 72 65 20 74 6f 20 62 65 20 63 ents are to be c
0280: 6f 6d 70 61 72 65 64 20 61 73 20 66 6c 6f 61 74 ompared as float
0290: 69 6e 67 2d 70 6f 69 6e 74 20 76 61 6c 75 65 73 ing-point values
02a0: 2e 0d 0a 49 6e 64 65 78 3a 20 64 6f 63 2f 6c 73 ...Index: doc/ls
02b0: 6f 72 74 2e 6e 0d 0a 3d 3d 3d 3d 3d 3d 3d 3d 3d ort.n..=========
02c0: 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d ================
02d0: 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d ================
02e0: 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d ================
02f0: 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 0d 0a 52 43 53 20 ==========..RCS
0300: 66 69 6c 65 3a 20 2f 63 76 73 72 6f 6f 74 2f 74 file: /cvsroot/t
0310: 63 6c 2f 74 63 6c 2f 64 6f 63 2f 6c 73 6f 72 74 cl/tcl/doc/lsort
0320: 2e 6e 2c 76 0d 0a 72 65 74 72 69 65 76 69 6e 67 .n,v..retrieving
0330: 20 72 65 76 69 73 69 6f 6e 20 31 2e 31 38 0d 0a revision 1.18..
0340: 64 69 66 66 20 2d 75 20 2d 72 31 2e 31 38 20 6c diff -u -r1.18 l
0350: 73 6f 72 74 2e 6e 0d 0a 2d 2d 2d 20 64 6f 63 2f sort.n..--- doc/
0360: 6c 73 6f 72 74 2e 6e 09 32 37 20 4f 63 74 20 32 lsort.n.27 Oct 2
0370: 30 30 34 20 31 32 3a 35 33 3a 32 32 20 2d 30 30 004 12:53:22 -00
0380: 30 30 09 31 2e 31 38 0d 0a 2b 2b 2b 20 64 6f 63 00.1.18..+++ doc
0390: 2f 6c 73 6f 72 74 2e 6e 09 32 20 4d 61 72 20 32 /lsort.n.2 Mar 2
03a0: 30 30 35 20 30 36 3a 33 36 3a 31 32 20 2d 30 30 005 06:36:12 -00
03b0: 30 30 0d 0a 40 40 20 2d 31 30 2c 37 20 2b 31 30 00..@@ -10,7 +10
03c0: 2c 37 20 40 40 0d 0a 20 27 5c 22 20 52 43 53 3a ,7 @@.. '\" RCS:
03d0: 20 40 28 23 29 20 24 49 64 3a 20 6c 73 6f 72 74 @(#) $Id: lsort
03e0: 2e 6e 2c 76 20 31 2e 31 37 20 32 30 30 34 2f 31 .n,v 1.17 2004/1
03f0: 30 2f 31 34 20 31 37 3a 32 30 3a 31 31 20 64 6b 0/14 17:20:11 dk
0400: 66 20 45 78 70 20 24 0d 0a 20 27 5c 22 20 0d 0a f Exp $.. '\" ..
0410: 20 2e 73 6f 20 6d 61 6e 2e 6d 61 63 72 6f 73 0d .so man.macros.
0420: 0a 2d 2e 54 48 20 6c 73 6f 72 74 20 6e 20 38 2e .-.TH lsort n 8.
0430: 33 20 54 63 6c 20 22 54 63 6c 20 42 75 69 6c 74 3 Tcl "Tcl Built
0440: 2d 49 6e 20 43 6f 6d 6d 61 6e 64 73 22 0d 0a 2b -In Commands"..+
0450: 2e 54 48 20 6c 73 6f 72 74 20 6e 20 38 2e 35 20 .TH lsort n 8.5
0460: 54 63 6c 20 22 54 63 6c 20 42 75 69 6c 74 2d 49 Tcl "Tcl Built-I
0470: 6e 20 43 6f 6d 6d 61 6e 64 73 22 0d 0a 20 2e 42 n Commands".. .B
0480: 53 0d 0a 20 27 5c 22 20 4e 6f 74 65 3a 20 20 64 S.. '\" Note: d
0490: 6f 20 6e 6f 74 20 6d 6f 64 69 66 79 20 74 68 65 o not modify the
04a0: 20 2e 53 48 20 4e 41 4d 45 20 6c 69 6e 65 20 69 .SH NAME line i
04b0: 6d 6d 65 64 69 61 74 65 6c 79 20 62 65 6c 6f 77 mmediately below
04c0: 21 0d 0a 20 2e 53 48 20 4e 41 4d 45 0d 0a 40 40 !.. .SH NAME..@@
04d0: 20 2d 31 30 37 2c 36 20 2b 31 30 37 2c 31 33 20 -107,6 +107,13
04e0: 40 40 0d 0a 20 54 68 69 73 20 6f 70 74 69 6f 6e @@.. This option
04f0: 20 69 73 20 6d 75 63 68 20 6d 6f 72 65 20 65 66 is much more ef
0500: 66 69 63 69 65 6e 74 20 74 68 61 6e 20 75 73 69 ficient than usi
0510: 6e 67 20 5c 66 42 5c 2d 63 6f 6d 6d 61 6e 64 5c ng \fB\-command\
0520: 66 52 0d 0a 20 74 6f 20 61 63 68 69 65 76 65 20 fR.. to achieve
0530: 74 68 65 20 73 61 6d 65 20 65 66 66 65 63 74 2e the same effect.
0540: 0d 0a 20 2e 52 45 0d 0a 2b 2e 56 53 20 38 2e 35 .. .RE..+.VS 8.5
0550: 0d 0a 2b 2e 54 50 20 32 30 0d 0a 2b 5c 66 42 5c ..+.TP 20..+\fB\
0560: 2d 6e 6f 63 61 73 65 5c 66 52 0d 0a 2b 43 61 75 -nocase\fR..+Cau
0570: 73 65 73 20 63 6f 6d 70 61 72 69 73 6f 6e 73 20 ses comparisons
0580: 74 6f 20 62 65 20 68 61 6e 64 6c 65 64 20 69 6e to be handled in
0590: 20 61 20 63 61 73 65 2d 69 6e 73 65 6e 73 69 74 a case-insensit
05a0: 69 76 65 20 6d 61 6e 6e 65 72 2e 20 20 48 61 73 ive manner. Has
05b0: 20 6e 6f 0d 0a 2b 65 66 66 65 63 74 20 69 66 20 no..+effect if
05c0: 63 6f 6d 62 69 6e 65 64 20 77 69 74 68 20 74 68 combined with th
05d0: 65 20 5c 66 42 5c 2d 64 69 63 74 69 6f 6e 61 72 e \fB\-dictionar
05e0: 79 5c 66 52 2c 20 5c 66 42 5c 2d 69 6e 74 65 67 y\fR, \fB\-integ
05f0: 65 72 5c 66 52 2c 20 6f 72 20 0d 0a 2b 5c 66 42 er\fR, or ..+\fB
0600: 5c 2d 72 65 61 6c 5c 66 52 20 6f 70 74 69 6f 6e \-real\fR option
0610: 73 2e 0d 0a 2b 2e 56 45 20 38 2e 35 0d 0a 20 2e s...+.VE 8.5.. .
0620: 54 50 20 32 30 0d 0a 20 5c 66 42 5c 2d 75 6e 69 TP 20.. \fB\-uni
0630: 71 75 65 5c 66 52 0d 0a 20 49 66 20 74 68 69 73 que\fR.. If this
0640: 20 6f 70 74 69 6f 6e 20 69 73 20 73 70 65 63 69 option is speci
0650: 66 69 65 64 2c 20 74 68 65 6e 20 6f 6e 6c 79 20 fied, then only
0660: 74 68 65 20 6c 61 73 74 20 73 65 74 20 6f 66 20 the last set of
0670: 64 75 70 6c 69 63 61 74 65 0d 0a 49 6e 64 65 78 duplicate..Index
0680: 3a 20 64 6f 63 2f 73 77 69 74 63 68 2e 6e 0d 0a : doc/switch.n..
0690: 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d ================
06a0: 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d ================
06b0: 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d ================
06c0: 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d ================
06d0: 3d 3d 3d 0d 0a 52 43 53 20 66 69 6c 65 3a 20 2f ===..RCS file: /
06e0: 63 76 73 72 6f 6f 74 2f 74 63 6c 2f 74 63 6c 2f cvsroot/tcl/tcl/
06f0: 64 6f 63 2f 73 77 69 74 63 68 2e 6e 2c 76 0d 0a doc/switch.n,v..
0700: 72 65 74 72 69 65 76 69 6e 67 20 72 65 76 69 73 retrieving revis
0710: 69 6f 6e 20 31 2e 38 0d 0a 64 69 66 66 20 2d 75 ion 1.8..diff -u
0720: 20 2d 72 31 2e 38 20 73 77 69 74 63 68 2e 6e 0d -r1.8 switch.n.
0730: 0a 2d 2d 2d 20 64 6f 63 2f 73 77 69 74 63 68 2e .--- doc/switch.
0740: 6e 09 32 37 20 4f 63 74 20 32 30 30 34 20 31 34 n.27 Oct 2004 14
0750: 3a 32 34 3a 33 37 20 2d 30 30 30 30 09 31 2e 38 :24:37 -0000.1.8
0760: 0d 0a 2b 2b 2b 20 64 6f 63 2f 73 77 69 74 63 68 ..+++ doc/switch
0770: 2e 6e 09 32 20 4d 61 72 20 32 30 30 35 20 30 36 .n.2 Mar 2005 06
0780: 3a 33 36 3a 31 33 20 2d 30 30 30 30 0d 0a 40 40 :36:13 -0000..@@
0790: 20 2d 38 2c 37 20 2b 38 2c 37 20 40 40 0d 0a 20 -8,7 +8,7 @@..
07a0: 27 5c 22 20 52 43 53 3a 20 40 28 23 29 20 24 49 '\" RCS: @(#) $I
07b0: 64 3a 20 73 77 69 74 63 68 2e 6e 2c 76 20 31 2e d: switch.n,v 1.
07c0: 37 20 32 30 30 34 2f 30 34 2f 32 32 20 32 32 3a 7 2004/04/22 22:
07d0: 33 36 3a 32 32 20 64 6b 66 20 45 78 70 20 24 0d 36:22 dkf Exp $.
07e0: 0a 20 27 5c 22 20 0d 0a 20 2e 73 6f 20 6d 61 6e . '\" .. .so man
07f0: 2e 6d 61 63 72 6f 73 0d 0a 2d 2e 54 48 20 73 77 .macros..-.TH sw
0800: 69 74 63 68 20 6e 20 37 2e 30 20 54 63 6c 20 22 itch n 7.0 Tcl "
0810: 54 63 6c 20 42 75 69 6c 74 2d 49 6e 20 43 6f 6d Tcl Built-In Com
0820: 6d 61 6e 64 73 22 0d 0a 2b 2e 54 48 20 73 77 69 mands"..+.TH swi
0830: 74 63 68 20 6e 20 38 2e 35 20 54 63 6c 20 22 54 tch n 8.5 Tcl "T
0840: 63 6c 20 42 75 69 6c 74 2d 49 6e 20 43 6f 6d 6d cl Built-In Comm
0850: 61 6e 64 73 22 0d 0a 20 2e 42 53 0d 0a 20 27 5c ands".. .BS.. '\
0860: 22 20 4e 6f 74 65 3a 20 20 64 6f 20 6e 6f 74 20 " Note: do not
0870: 6d 6f 64 69 66 79 20 74 68 65 20 2e 53 48 20 4e modify the .SH N
0880: 41 4d 45 20 6c 69 6e 65 20 69 6d 6d 65 64 69 61 AME line immedia
0890: 74 65 6c 79 20 62 65 6c 6f 77 21 0d 0a 20 2e 53 tely below!.. .S
08a0: 48 20 4e 41 4d 45 0d 0a 40 40 20 2d 35 31 2c 36 H NAME..@@ -51,6
08b0: 20 2b 35 31 2c 39 20 40 40 0d 0a 20 27 5c 22 20 +51,9 @@.. '\"
08c0: 4f 70 74 69 6f 6e 73 20 64 65 66 69 6e 65 64 20 Options defined
08d0: 62 79 20 54 49 50 23 37 35 0d 0a 20 2e 56 53 20 by TIP#75.. .VS
08e0: 38 2e 35 0d 0a 20 2e 54 50 20 31 30 0d 0a 2b 5c 8.5.. .TP 10..+\
08f0: 66 42 5c 2d 6e 6f 63 61 73 65 5c 66 52 0d 0a 2b fB\-nocase\fR..+
0900: 43 61 75 73 65 73 20 63 6f 6d 70 61 72 69 73 6f Causes compariso
0910: 6e 73 20 74 6f 20 62 65 20 68 61 6e 64 6c 65 64 ns to be handled
0920: 20 69 6e 20 61 20 63 61 73 65 2d 69 6e 73 65 6e in a case-insen
0930: 73 69 74 69 76 65 20 6d 61 6e 6e 65 72 2e 0d 0a sitive manner...
0940: 2b 2e 54 50 20 31 30 0d 0a 20 5c 66 42 5c 2d 6d +.TP 10.. \fB\-m
0950: 61 74 63 68 76 61 72 5c 66 52 20 5c 66 49 76 61 atchvar\fR \fIva
0960: 72 4e 61 6d 65 5c 66 52 0d 0a 20 54 68 69 73 20 rName\fR.. This
0970: 6f 70 74 69 6f 6e 20 28 6f 6e 6c 79 20 6c 65 67 option (only leg
0980: 61 6c 20 77 68 65 6e 20 5c 66 42 5c 2d 72 65 67 al when \fB\-reg
0990: 65 78 70 5c 66 52 20 69 73 20 61 6c 73 6f 20 73 exp\fR is also s
09a0: 70 65 63 69 66 69 65 64 29 0d 0a 20 73 70 65 63 pecified).. spec
09b0: 69 66 69 65 73 20 74 68 65 20 6e 61 6d 65 20 6f ifies the name o
09c0: 66 20 61 20 76 61 72 69 61 62 6c 65 20 69 6e 74 f a variable int
09d0: 6f 20 77 68 69 63 68 20 74 68 65 20 6c 69 73 74 o which the list
09e0: 20 6f 66 20 6d 61 74 63 68 65 73 0d 0a 49 6e 64 of matches..Ind
09f0: 65 78 3a 20 67 65 6e 65 72 69 63 2f 74 63 6c 43 ex: generic/tclC
0a00: 6d 64 49 4c 2e 63 0d 0a 3d 3d 3d 3d 3d 3d 3d 3d mdIL.c..========
0a10: 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d ================
0a20: 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d ================
0a30: 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d ================
0a40: 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 0d 0a 52 43 53 ===========..RCS
0a50: 20 66 69 6c 65 3a 20 2f 63 76 73 72 6f 6f 74 2f file: /cvsroot/
0a60: 74 63 6c 2f 74 63 6c 2f 67 65 6e 65 72 69 63 2f tcl/tcl/generic/
0a70: 74 63 6c 43 6d 64 49 4c 2e 63 2c 76 0d 0a 72 65 tclCmdIL.c,v..re
0a80: 74 72 69 65 76 69 6e 67 20 72 65 76 69 73 69 6f trieving revisio
0a90: 6e 20 31 2e 37 31 0d 0a 64 69 66 66 20 2d 75 20 n 1.71..diff -u
0aa0: 2d 72 31 2e 37 31 20 74 63 6c 43 6d 64 49 4c 2e -r1.71 tclCmdIL.
0ab0: 63 0d 0a 2d 2d 2d 20 67 65 6e 65 72 69 63 2f 74 c..--- generic/t
0ac0: 63 6c 43 6d 64 49 4c 2e 63 09 31 34 20 44 65 63 clCmdIL.c.14 Dec
0ad0: 20 32 30 30 34 20 32 31 3a 31 31 3a 34 35 20 2d 2004 21:11:45 -
0ae0: 30 30 30 30 09 31 2e 37 31 0d 0a 2b 2b 2b 20 67 0000.1.71..+++ g
0af0: 65 6e 65 72 69 63 2f 74 63 6c 43 6d 64 49 4c 2e eneric/tclCmdIL.
0b00: 63 09 32 20 4d 61 72 20 32 30 30 35 20 30 36 3a c.2 Mar 2005 06:
0b10: 33 36 3a 32 33 20 2d 30 30 30 30 0d 0a 40 40 20 36:23 -0000..@@
0b20: 2d 33 35 2c 36 20 2b 33 35 2c 31 35 20 40 40 0d -35,6 +35,15 @@.
0b30: 0a 20 7d 20 53 6f 72 74 45 6c 65 6d 65 6e 74 3b . } SortElement;
0b40: 0d 0a 20 0d 0a 20 2f 2a 0d 0a 2b 20 2a 20 54 68 .. .. /*..+ * Th
0b50: 65 73 65 20 66 75 6e 63 74 69 6f 6e 20 70 6f 69 ese function poi
0b60: 6e 74 65 72 20 74 79 70 65 73 20 61 72 65 20 75 nter types are u
0b70: 73 65 64 20 77 69 74 68 20 74 68 65 20 22 6c 73 sed with the "ls
0b80: 65 61 72 63 68 22 20 61 6e 64 20 22 6c 73 6f 72 earch" and "lsor
0b90: 74 22 0d 0a 2b 20 2a 20 63 6f 6d 6d 61 6e 64 73 t"..+ * commands
0ba0: 20 74 6f 20 66 61 63 69 6c 69 74 61 74 65 20 74 to facilitate t
0bb0: 68 65 20 22 2d 6e 6f 63 61 73 65 22 20 6f 70 74 he "-nocase" opt
0bc0: 69 6f 6e 2e 0d 0a 2b 20 2a 2f 0d 0a 2b 0d 0a 2b ion...+ */..+..+
0bd0: 74 79 70 65 64 65 66 20 69 6e 74 20 28 2a 53 6f typedef int (*So
0be0: 72 74 53 74 72 43 6d 70 46 6e 5f 74 29 20 5f 41 rtStrCmpFn_t) _A
0bf0: 4e 53 49 5f 41 52 47 53 5f 28 28 63 6f 6e 73 74 NSI_ARGS_((const
0c00: 20 63 68 61 72 20 2a 2c 20 63 6f 6e 73 74 20 63 char *, const c
0c10: 68 61 72 20 2a 29 29 3b 0d 0a 2b 74 79 70 65 64 har *));..+typed
0c20: 65 66 20 69 6e 74 20 28 2a 53 6f 72 74 4d 65 6d ef int (*SortMem
0c30: 43 6d 70 46 6e 5f 74 29 20 5f 41 4e 53 49 5f 41 CmpFn_t) _ANSI_A
0c40: 52 47 53 5f 28 28 63 6f 6e 73 74 20 76 6f 69 64 RGS_((const void
0c50: 20 2a 2c 20 63 6f 6e 73 74 20 76 6f 69 64 20 2a *, const void *
0c60: 2c 0d 0a 2b 09 09 09 20 20 20 20 73 69 7a 65 5f ,..+... size_
0c70: 74 29 29 3b 0d 0a 2b 0d 0a 2b 2f 2a 0d 0a 20 20 t));..+..+/*..
0c80: 2a 20 54 68 65 20 22 6c 73 6f 72 74 22 20 63 6f * The "lsort" co
0c90: 6d 6d 61 6e 64 20 6e 65 65 64 73 20 74 6f 20 70 mmand needs to p
0ca0: 61 73 73 20 63 65 72 74 61 69 6e 20 69 6e 66 6f ass certain info
0cb0: 72 6d 61 74 69 6f 6e 20 64 6f 77 6e 20 74 6f 20 rmation down to
0cc0: 74 68 65 0d 0a 20 20 2a 20 66 75 6e 63 74 69 6f the.. * functio
0cd0: 6e 20 74 68 61 74 20 63 6f 6d 70 61 72 65 73 20 n that compares
0ce0: 74 77 6f 20 6c 69 73 74 20 65 6c 65 6d 65 6e 74 two list element
0cf0: 73 2c 20 61 6e 64 20 74 68 65 20 63 6f 6d 70 61 s, and the compa
0d00: 72 69 73 6f 6e 20 66 75 6e 63 74 69 6f 6e 0d 0a rison function..
0d10: 20 20 2a 20 6e 65 65 64 73 20 74 6f 20 70 61 73 * needs to pas
0d20: 73 20 73 75 63 63 65 73 73 20 6f 72 20 66 61 69 s success or fai
0d30: 6c 75 72 65 20 69 6e 66 6f 72 6d 61 74 69 6f 6e lure information
0d40: 20 62 61 63 6b 20 75 70 20 74 6f 20 74 68 65 20 back up to the
0d50: 74 6f 70 2d 6c 65 76 65 6c 0d 0a 40 40 20 2d 34 top-level..@@ -4
0d60: 36 2c 36 20 2b 35 35 2c 38 20 40 40 0d 0a 20 20 6,6 +55,8 @@..
0d70: 20 20 20 69 6e 74 20 69 73 49 6e 63 72 65 61 73 int isIncreas
0d80: 69 6e 67 3b 09 09 2f 2a 20 4e 6f 6e 7a 65 72 6f ing;../* Nonzero
0d90: 20 6d 65 61 6e 73 20 73 6f 72 74 20 69 6e 20 69 means sort in i
0da0: 6e 63 72 65 61 73 69 6e 67 20 6f 72 64 65 72 2e ncreasing order.
0db0: 20 2a 2f 0d 0a 20 20 20 20 20 69 6e 74 20 73 6f */.. int so
0dc0: 72 74 4d 6f 64 65 3b 09 09 2f 2a 20 54 68 65 20 rtMode;../* The
0dd0: 73 6f 72 74 20 6d 6f 64 65 2e 20 20 4f 6e 65 20 sort mode. One
0de0: 6f 66 20 53 4f 52 54 4d 4f 44 45 5f 2a 0d 0a 20 of SORTMODE_*..
0df0: 09 09 09 09 20 2a 20 76 61 6c 75 65 73 20 64 65 .... * values de
0e00: 66 69 6e 65 64 20 62 65 6c 6f 77 20 2a 2f 0d 0a fined below */..
0e10: 2b 20 20 20 20 53 6f 72 74 53 74 72 43 6d 70 46 + SortStrCmpF
0e20: 6e 5f 74 20 73 74 72 43 6d 70 46 6e 3b 20 20 20 n_t strCmpFn;
0e30: 20 20 2f 2a 20 42 61 73 69 63 20 73 74 72 69 6e /* Basic strin
0e40: 67 20 63 6f 6d 70 61 72 65 20 63 6f 6d 6d 61 6e g compare comman
0e50: 64 20 28 75 73 65 64 20 77 69 74 68 0d 0a 2b 09 d (used with..+.
0e60: 09 09 09 20 2a 20 41 53 43 49 49 20 6d 6f 64 65 ... * ASCII mode
0e70: 29 2e 20 2a 2f 0d 0a 20 20 20 20 20 54 63 6c 5f ). */.. Tcl_
0e80: 4f 62 6a 20 2a 63 6f 6d 70 61 72 65 43 6d 64 50 Obj *compareCmdP
0e90: 74 72 3b 20 20 20 20 20 2f 2a 20 54 68 65 20 54 tr; /* The T
0ea0: 63 6c 20 63 6f 6d 70 61 72 69 73 6f 6e 20 63 6f cl comparison co
0eb0: 6d 6d 61 6e 64 20 77 68 65 6e 20 73 6f 72 74 4d mmand when sortM
0ec0: 6f 64 65 0d 0a 20 09 09 09 09 20 2a 20 69 73 20 ode.. .... * is
0ed0: 53 4f 52 54 4d 4f 44 45 5f 43 4f 4d 4d 41 4e 44 SORTMODE_COMMAND
0ee0: 2e 20 20 50 72 65 2d 69 6e 69 74 69 61 6c 69 7a . Pre-initializ
0ef0: 65 64 20 74 6f 0d 0a 20 09 09 09 09 20 2a 20 68 ed to.. .... * h
0f00: 6f 6c 64 20 62 61 73 65 20 6f 66 20 63 6f 6d 6d old base of comm
0f10: 61 6e 64 2e 2a 2f 0d 0a 40 40 20 2d 33 30 39 36 and.*/..@@ -3096
0f20: 2c 37 20 2b 33 31 30 37 2c 37 20 40 40 0d 0a 20 ,7 +3107,7 @@..
0f30: 20 20 20 20 63 68 61 72 20 2a 62 79 74 65 73 2c char *bytes,
0f40: 20 2a 70 61 74 74 65 72 6e 42 79 74 65 73 3b 0d *patternBytes;.
0f50: 0a 20 20 20 20 20 69 6e 74 20 69 2c 20 6d 61 74 . int i, mat
0f60: 63 68 2c 20 6d 6f 64 65 2c 20 69 6e 64 65 78 2c ch, mode, index,
0f70: 20 72 65 73 75 6c 74 2c 20 6c 69 73 74 63 2c 20 result, listc,
0f80: 6c 65 6e 67 74 68 2c 20 65 6c 65 6d 4c 65 6e 3b length, elemLen;
0f90: 0d 0a 20 20 20 20 20 69 6e 74 20 64 61 74 61 54 .. int dataT
0fa0: 79 70 65 2c 20 69 73 49 6e 63 72 65 61 73 69 6e ype, isIncreasin
0fb0: 67 2c 20 6c 6f 77 65 72 2c 20 75 70 70 65 72 2c g, lower, upper,
0fc0: 20 70 61 74 49 6e 74 2c 20 6f 62 6a 49 6e 74 3b patInt, objInt;
0fd0: 0d 0a 2d 20 20 20 20 69 6e 74 20 6f 66 66 73 65 ..- int offse
0fe0: 74 2c 20 61 6c 6c 4d 61 74 63 68 65 73 2c 20 69 t, allMatches, i
0ff0: 6e 6c 69 6e 65 52 65 74 75 72 6e 2c 20 6e 65 67 nlineReturn, neg
1000: 61 74 65 64 4d 61 74 63 68 2c 20 72 65 74 75 72 atedMatch, retur
1010: 6e 53 75 62 69 6e 64 69 63 65 73 3b 0d 0a 2b 20 nSubindices;..+
1020: 20 20 20 69 6e 74 20 6f 66 66 73 65 74 2c 20 61 int offset, a
1030: 6c 6c 4d 61 74 63 68 65 73 2c 20 69 6e 6c 69 6e llMatches, inlin
1040: 65 52 65 74 75 72 6e 2c 20 6e 65 67 61 74 65 64 eReturn, negated
1050: 4d 61 74 63 68 2c 20 72 65 74 75 72 6e 53 75 62 Match, returnSub
1060: 69 6e 64 69 63 65 73 2c 20 6e 6f 43 61 73 65 3b indices, noCase;
1070: 0d 0a 20 20 20 20 20 64 6f 75 62 6c 65 20 70 61 .. double pa
1080: 74 44 6f 75 62 6c 65 2c 20 6f 62 6a 44 6f 75 62 tDouble, objDoub
1090: 6c 65 3b 0d 0a 20 20 20 20 20 53 6f 72 74 49 6e le;.. SortIn
10a0: 66 6f 20 73 6f 72 74 49 6e 66 6f 3b 0d 0a 20 20 fo sortInfo;..
10b0: 20 20 20 54 63 6c 5f 4f 62 6a 20 2a 70 61 74 4f Tcl_Obj *patO
10c0: 62 6a 2c 20 2a 2a 6c 69 73 74 76 2c 20 2a 6c 69 bj, **listv, *li
10d0: 73 74 50 74 72 2c 20 2a 73 74 61 72 74 50 74 72 stPtr, *startPtr
10e0: 2c 20 2a 69 74 65 6d 50 74 72 3b 0d 0a 40 40 20 , *itemPtr;..@@
10f0: 2d 33 31 30 34 2c 31 35 20 2b 33 31 31 35 2c 31 -3104,15 +3115,1
1100: 37 20 40 40 0d 0a 20 20 20 20 20 73 74 61 74 69 7 @@.. stati
1110: 63 20 43 4f 4e 53 54 20 63 68 61 72 20 2a 6f 70 c CONST char *op
1120: 74 69 6f 6e 73 5b 5d 20 3d 20 7b 0d 0a 20 09 22 tions[] = {.. ."
1130: 2d 61 6c 6c 22 2c 09 20 20 20 20 22 2d 61 73 63 -all",. "-asc
1140: 69 69 22 2c 20 20 20 22 2d 64 65 63 72 65 61 73 ii", "-decreas
1150: 69 6e 67 22 2c 20 22 2d 64 69 63 74 69 6f 6e 61 ing", "-dictiona
1160: 72 79 22 2c 0d 0a 20 09 22 2d 65 78 61 63 74 22 ry",.. ."-exact"
1170: 2c 20 20 20 22 2d 67 6c 6f 62 22 2c 20 20 20 20 , "-glob",
1180: 22 2d 69 6e 63 72 65 61 73 69 6e 67 22 2c 20 22 "-increasing", "
1190: 2d 69 6e 64 65 78 22 2c 0d 0a 2d 09 22 2d 69 6e -index",..-."-in
11a0: 6c 69 6e 65 22 2c 20 20 22 2d 69 6e 74 65 67 65 line", "-intege
11b0: 72 22 2c 20 22 2d 6e 6f 74 22 2c 20 20 20 20 20 r", "-not",
11c0: 20 20 20 22 2d 72 65 61 6c 22 2c 0d 0a 2d 09 22 "-real",..-."
11d0: 2d 72 65 67 65 78 70 22 2c 20 20 22 2d 73 6f 72 -regexp", "-sor
11e0: 74 65 64 22 2c 20 20 22 2d 73 74 61 72 74 22 2c ted", "-start",
11f0: 20 20 20 20 20 20 22 2d 73 75 62 69 6e 64 69 63 "-subindic
1200: 65 73 22 2c 0d 0a 2b 09 22 2d 69 6e 6c 69 6e 65 es",..+."-inline
1210: 22 2c 20 20 22 2d 69 6e 74 65 67 65 72 22 2c 20 ", "-integer",
1220: 22 2d 6e 6f 63 61 73 65 22 2c 20 20 20 20 20 22 "-nocase", "
1230: 2d 6e 6f 74 22 2c 0d 0a 2b 09 22 2d 72 65 61 6c -not",..+."-real
1240: 22 2c 20 20 20 20 22 2d 72 65 67 65 78 70 22 2c ", "-regexp",
1250: 20 20 22 2d 73 6f 72 74 65 64 22 2c 20 20 20 20 "-sorted",
1260: 20 22 2d 73 74 61 72 74 22 2c 0d 0a 2b 09 22 2d "-start",..+."-
1270: 73 75 62 69 6e 64 69 63 65 73 22 2c 0d 0a 20 09 subindices",.. .
1280: 4e 55 4c 4c 0d 0a 20 20 20 20 20 7d 3b 0d 0a 20 NULL.. };..
1290: 20 20 20 20 65 6e 75 6d 20 6f 70 74 69 6f 6e 73 enum options
12a0: 20 7b 0d 0a 20 09 4c 53 45 41 52 43 48 5f 41 4c {.. .LSEARCH_AL
12b0: 4c 2c 20 4c 53 45 41 52 43 48 5f 41 53 43 49 49 L, LSEARCH_ASCII
12c0: 2c 20 4c 53 45 41 52 43 48 5f 44 45 43 52 45 41 , LSEARCH_DECREA
12d0: 53 49 4e 47 2c 20 4c 53 45 41 52 43 48 5f 44 49 SING, LSEARCH_DI
12e0: 43 54 49 4f 4e 41 52 59 2c 0d 0a 20 09 4c 53 45 CTIONARY,.. .LSE
12f0: 41 52 43 48 5f 45 58 41 43 54 2c 20 4c 53 45 41 ARCH_EXACT, LSEA
1300: 52 43 48 5f 47 4c 4f 42 2c 20 4c 53 45 41 52 43 RCH_GLOB, LSEARC
1310: 48 5f 49 4e 43 52 45 41 53 49 4e 47 2c 20 4c 53 H_INCREASING, LS
1320: 45 41 52 43 48 5f 49 4e 44 45 58 2c 0d 0a 2d 09 EARCH_INDEX,..-.
1330: 4c 53 45 41 52 43 48 5f 49 4e 4c 49 4e 45 2c 20 LSEARCH_INLINE,
1340: 4c 53 45 41 52 43 48 5f 49 4e 54 45 47 45 52 2c LSEARCH_INTEGER,
1350: 20 4c 53 45 41 52 43 48 5f 4e 4f 54 2c 20 4c 53 LSEARCH_NOT, LS
1360: 45 41 52 43 48 5f 52 45 41 4c 2c 0d 0a 2d 09 4c EARCH_REAL,..-.L
1370: 53 45 41 52 43 48 5f 52 45 47 45 58 50 2c 20 4c SEARCH_REGEXP, L
1380: 53 45 41 52 43 48 5f 53 4f 52 54 45 44 2c 20 4c SEARCH_SORTED, L
1390: 53 45 41 52 43 48 5f 53 54 41 52 54 2c 20 4c 53 SEARCH_START, LS
13a0: 45 41 52 43 48 5f 53 55 42 49 4e 44 49 43 45 53 EARCH_SUBINDICES
13b0: 0d 0a 2b 09 4c 53 45 41 52 43 48 5f 49 4e 4c 49 ..+.LSEARCH_INLI
13c0: 4e 45 2c 20 4c 53 45 41 52 43 48 5f 49 4e 54 45 NE, LSEARCH_INTE
13d0: 47 45 52 2c 20 4c 53 45 41 52 43 48 5f 4e 4f 43 GER, LSEARCH_NOC
13e0: 41 53 45 2c 20 4c 53 45 41 52 43 48 5f 4e 4f 54 ASE, LSEARCH_NOT
13f0: 2c 0d 0a 2b 09 4c 53 45 41 52 43 48 5f 52 45 41 ,..+.LSEARCH_REA
1400: 4c 2c 20 4c 53 45 41 52 43 48 5f 52 45 47 45 58 L, LSEARCH_REGEX
1410: 50 2c 20 4c 53 45 41 52 43 48 5f 53 4f 52 54 45 P, LSEARCH_SORTE
1420: 44 2c 20 4c 53 45 41 52 43 48 5f 53 54 41 52 54 D, LSEARCH_START
1430: 2c 0d 0a 2b 09 4c 53 45 41 52 43 48 5f 53 55 42 ,..+.LSEARCH_SUB
1440: 49 4e 44 49 43 45 53 0d 0a 20 20 20 20 20 7d 3b INDICES.. };
1450: 0d 0a 20 20 20 20 20 65 6e 75 6d 20 64 61 74 61 .. enum data
1460: 74 79 70 65 73 20 7b 0d 0a 20 09 41 53 43 49 49 types {.. .ASCII
1470: 2c 20 44 49 43 54 49 4f 4e 41 52 59 2c 20 49 4e , DICTIONARY, IN
1480: 54 45 47 45 52 2c 20 52 45 41 4c 0d 0a 40 40 20 TEGER, REAL..@@
1490: 2d 33 31 32 30 2c 36 20 2b 33 31 33 33 2c 38 20 -3120,6 +3133,8
14a0: 40 40 0d 0a 20 20 20 20 20 65 6e 75 6d 20 6d 6f @@.. enum mo
14b0: 64 65 73 20 7b 0d 0a 20 09 45 58 41 43 54 2c 20 des {.. .EXACT,
14c0: 47 4c 4f 42 2c 20 52 45 47 45 58 50 2c 20 53 4f GLOB, REGEXP, SO
14d0: 52 54 45 44 0d 0a 20 20 20 20 20 7d 3b 0d 0a 2b RTED.. };..+
14e0: 09 53 6f 72 74 53 74 72 43 6d 70 46 6e 5f 74 20 .SortStrCmpFn_t
14f0: 73 74 72 43 6d 70 46 6e 20 3d 20 73 74 72 63 6d strCmpFn = strcm
1500: 70 3b 0d 0a 2b 09 53 6f 72 74 4d 65 6d 43 6d 70 p;..+.SortMemCmp
1510: 46 6e 5f 74 20 6d 65 6d 43 6d 70 46 6e 20 3d 20 Fn_t memCmpFn =
1520: 6d 65 6d 63 6d 70 3b 0d 0a 20 0d 0a 20 20 20 20 memcmp;.. ..
1530: 20 6d 6f 64 65 20 3d 20 47 4c 4f 42 3b 0d 0a 20 mode = GLOB;..
1540: 20 20 20 20 64 61 74 61 54 79 70 65 20 3d 20 41 dataType = A
1550: 53 43 49 49 3b 0d 0a 40 40 20 2d 33 31 33 31 2c SCII;..@@ -3131,
1560: 36 20 2b 33 31 34 36 2c 37 20 40 40 0d 0a 20 20 6 +3146,7 @@..
1570: 20 20 20 6c 69 73 74 50 74 72 20 3d 20 4e 55 4c listPtr = NUL
1580: 4c 3b 0d 0a 20 20 20 20 20 73 74 61 72 74 50 74 L;.. startPt
1590: 72 20 3d 20 4e 55 4c 4c 3b 0d 0a 20 20 20 20 20 r = NULL;..
15a0: 6f 66 66 73 65 74 20 3d 20 30 3b 0d 0a 2b 20 20 offset = 0;..+
15b0: 20 20 6e 6f 43 61 73 65 20 3d 20 30 3b 0d 0a 20 noCase = 0;..
15c0: 20 20 20 20 73 6f 72 74 49 6e 66 6f 2e 63 6f 6d sortInfo.com
15d0: 70 61 72 65 43 6d 64 50 74 72 20 3d 20 4e 55 4c pareCmdPtr = NUL
15e0: 4c 3b 0d 0a 20 20 20 20 20 73 6f 72 74 49 6e 66 L;.. sortInf
15f0: 6f 2e 69 73 49 6e 63 72 65 61 73 69 6e 67 20 3d o.isIncreasing =
1600: 20 30 3b 0d 0a 20 20 20 20 20 73 6f 72 74 49 6e 0;.. sortIn
1610: 66 6f 2e 73 6f 72 74 4d 6f 64 65 20 3d 20 30 3b fo.sortMode = 0;
1620: 0d 0a 40 40 20 2d 33 31 38 33 2c 36 20 2b 33 31 ..@@ -3183,6 +31
1630: 39 39 2c 31 31 20 40 40 0d 0a 20 09 63 61 73 65 99,11 @@.. .case
1640: 20 4c 53 45 41 52 43 48 5f 49 4e 54 45 47 45 52 LSEARCH_INTEGER
1650: 3a 09 09 2f 2a 20 2d 69 6e 74 65 67 65 72 20 2a :../* -integer *
1660: 2f 0d 0a 20 09 20 20 20 20 64 61 74 61 54 79 70 /.. . dataTyp
1670: 65 20 3d 20 49 4e 54 45 47 45 52 3b 0d 0a 20 09 e = INTEGER;.. .
1680: 20 20 20 20 62 72 65 61 6b 3b 0d 0a 2b 09 63 61 break;..+.ca
1690: 73 65 20 4c 53 45 41 52 43 48 5f 4e 4f 43 41 53 se LSEARCH_NOCAS
16a0: 45 3a 09 09 2f 2a 20 2d 6e 6f 63 61 73 65 20 2a E:../* -nocase *
16b0: 2f 0d 0a 2b 09 20 20 20 20 73 74 72 43 6d 70 46 /..+. strCmpF
16c0: 6e 20 3d 20 73 74 72 63 61 73 65 63 6d 70 3b 0d n = strcasecmp;.
16d0: 0a 2b 09 20 20 20 20 6d 65 6d 43 6d 70 46 6e 20 .+. memCmpFn
16e0: 3d 20 73 74 72 6e 63 61 73 65 63 6d 70 3b 0d 0a = strncasecmp;..
16f0: 2b 09 20 20 20 20 6e 6f 43 61 73 65 20 3d 20 31 +. noCase = 1
1700: 3b 0d 0a 2b 09 20 20 20 20 62 72 65 61 6b 3b 0d ;..+. break;.
1710: 0a 20 09 63 61 73 65 20 4c 53 45 41 52 43 48 5f . .case LSEARCH_
1720: 4e 4f 54 3a 09 09 2f 2a 20 2d 6e 6f 74 20 2a 2f NOT:../* -not */
1730: 0d 0a 20 09 20 20 20 20 6e 65 67 61 74 65 64 4d .. . negatedM
1740: 61 74 63 68 20 3d 20 31 3b 0d 0a 20 09 20 20 20 atch = 1;.. .
1750: 20 62 72 65 61 6b 3b 0d 0a 40 40 20 2d 33 33 31 break;..@@ -331
1760: 37 2c 37 20 2b 33 33 33 38 2c 37 20 40 40 0d 0a 7,7 +3338,7 @@..
1770: 20 09 20 2a 20 72 65 67 65 78 70 20 72 65 70 20 . * regexp rep
1780: 62 65 66 6f 72 65 20 74 68 65 20 6c 69 73 74 20 before the list
1790: 72 65 70 2e 0d 0a 20 09 20 2a 2f 0d 0a 20 09 72 rep... . */.. .r
17a0: 65 67 65 78 70 20 3d 20 54 63 6c 5f 47 65 74 52 egexp = Tcl_GetR
17b0: 65 67 45 78 70 46 72 6f 6d 4f 62 6a 28 69 6e 74 egExpFromObj(int
17c0: 65 72 70 2c 20 6f 62 6a 76 5b 6f 62 6a 63 20 2d erp, objv[objc -
17d0: 20 31 5d 2c 0d 0a 2d 09 09 54 43 4c 5f 52 45 47 1],..-..TCL_REG
17e0: 5f 41 44 56 41 4e 43 45 44 20 7c 20 54 43 4c 5f _ADVANCED | TCL_
17f0: 52 45 47 5f 4e 4f 53 55 42 29 3b 0d 0a 2b 09 09 REG_NOSUB);..+..
1800: 54 43 4c 5f 52 45 47 5f 41 44 56 41 4e 43 45 44 TCL_REG_ADVANCED
1810: 20 7c 20 54 43 4c 5f 52 45 47 5f 4e 4f 53 55 42 | TCL_REG_NOSUB
1820: 20 7c 20 28 6e 6f 43 61 73 65 20 3f 20 54 43 4c | (noCase ? TCL
1830: 5f 52 45 47 5f 4e 4f 43 41 53 45 20 3a 20 30 29 _REG_NOCASE : 0)
1840: 29 3b 0d 0a 20 09 69 66 20 28 72 65 67 65 78 70 );.. .if (regexp
1850: 20 3d 3d 20 4e 55 4c 4c 29 20 7b 0d 0a 20 09 20 == NULL) {.. .
1860: 20 20 20 69 66 20 28 73 74 61 72 74 50 74 72 20 if (startPtr
1870: 21 3d 20 4e 55 4c 4c 29 20 7b 0d 0a 20 09 09 54 != NULL) {.. ..T
1880: 63 6c 5f 44 65 63 72 52 65 66 43 6f 75 6e 74 28 cl_DecrRefCount(
1890: 73 74 61 72 74 50 74 72 29 3b 0d 0a 40 40 20 2d startPtr);..@@ -
18a0: 33 34 32 36 2c 37 20 2b 33 34 34 37 2c 37 20 40 3426,7 +3447,7 @
18b0: 40 0d 0a 20 09 20 20 20 20 73 77 69 74 63 68 20 @.. . switch
18c0: 28 28 65 6e 75 6d 20 64 61 74 61 74 79 70 65 73 ((enum datatypes
18d0: 29 20 64 61 74 61 54 79 70 65 29 20 7b 0d 0a 20 ) dataType) {..
18e0: 09 20 20 20 20 63 61 73 65 20 41 53 43 49 49 3a . case ASCII:
18f0: 0d 0a 20 09 09 62 79 74 65 73 20 3d 20 54 63 6c .. ..bytes = Tcl
1900: 47 65 74 53 74 72 69 6e 67 28 69 74 65 6d 50 74 GetString(itemPt
1910: 72 29 3b 0d 0a 2d 09 09 6d 61 74 63 68 20 3d 20 r);..-..match =
1920: 73 74 72 63 6d 70 28 70 61 74 74 65 72 6e 42 79 strcmp(patternBy
1930: 74 65 73 2c 20 62 79 74 65 73 29 3b 0d 0a 2b 09 tes, bytes);..+.
1940: 09 6d 61 74 63 68 20 3d 20 73 74 72 43 6d 70 46 .match = strCmpF
1950: 6e 28 70 61 74 74 65 72 6e 42 79 74 65 73 2c 20 n(patternBytes,
1960: 62 79 74 65 73 29 3b 0d 0a 20 09 09 62 72 65 61 bytes);.. ..brea
1970: 6b 3b 0d 0a 20 09 20 20 20 20 63 61 73 65 20 44 k;.. . case D
1980: 49 43 54 49 4f 4e 41 52 59 3a 0d 0a 20 09 09 62 ICTIONARY:.. ..b
1990: 79 74 65 73 20 3d 20 54 63 6c 47 65 74 53 74 72 ytes = TclGetStr
19a0: 69 6e 67 28 69 74 65 6d 50 74 72 29 3b 0d 0a 40 ing(itemPtr);..@
19b0: 40 20 2d 33 35 32 34 2c 37 20 2b 33 35 34 35 2c @ -3524,7 +3545,
19c0: 37 20 40 40 0d 0a 20 09 09 63 61 73 65 20 41 53 7 @@.. ..case AS
19d0: 43 49 49 3a 0d 0a 20 09 09 20 20 20 20 62 79 74 CII:.. .. byt
19e0: 65 73 20 3d 20 54 63 6c 5f 47 65 74 53 74 72 69 es = Tcl_GetStri
19f0: 6e 67 46 72 6f 6d 4f 62 6a 28 69 74 65 6d 50 74 ngFromObj(itemPt
1a00: 72 2c 20 26 65 6c 65 6d 4c 65 6e 29 3b 0d 0a 20 r, &elemLen);..
1a10: 09 09 20 20 20 20 69 66 20 28 6c 65 6e 67 74 68 .. if (length
1a20: 20 3d 3d 20 65 6c 65 6d 4c 65 6e 29 20 7b 0d 0a == elemLen) {..
1a30: 2d 09 09 09 6d 61 74 63 68 20 3d 20 28 6d 65 6d -...match = (mem
1a40: 63 6d 70 28 62 79 74 65 73 2c 20 70 61 74 74 65 cmp(bytes, patte
1a50: 72 6e 42 79 74 65 73 2c 0d 0a 2b 09 09 09 6d 61 rnBytes,..+...ma
1a60: 74 63 68 20 3d 20 28 6d 65 6d 43 6d 70 46 6e 28 tch = (memCmpFn(
1a70: 62 79 74 65 73 2c 20 70 61 74 74 65 72 6e 42 79 bytes, patternBy
1a80: 74 65 73 2c 0d 0a 20 09 09 09 09 28 73 69 7a 65 tes,.. ....(size
1a90: 5f 74 29 20 6c 65 6e 67 74 68 29 20 3d 3d 20 30 _t) length) == 0
1aa0: 29 3b 0d 0a 20 09 09 20 20 20 20 7d 0d 0a 20 09 );.. .. }.. .
1ab0: 09 20 20 20 20 62 72 65 61 6b 3b 0d 0a 40 40 20 . break;..@@
1ac0: 2d 33 35 36 34 2c 37 20 2b 33 35 38 35 2c 37 20 -3564,7 +3585,7
1ad0: 40 40 0d 0a 20 09 09 62 72 65 61 6b 3b 0d 0a 20 @@.. ..break;..
1ae0: 0d 0a 20 09 20 20 20 20 63 61 73 65 20 47 4c 4f .. . case GLO
1af0: 42 3a 0d 0a 2d 09 09 6d 61 74 63 68 20 3d 20 54 B:..-..match = T
1b00: 63 6c 5f 53 74 72 69 6e 67 4d 61 74 63 68 28 54 cl_StringMatch(T
1b10: 63 6c 47 65 74 53 74 72 69 6e 67 28 69 74 65 6d clGetString(item
1b20: 50 74 72 29 2c 20 70 61 74 74 65 72 6e 42 79 74 Ptr), patternByt
1b30: 65 73 29 3b 0d 0a 2b 09 09 6d 61 74 63 68 20 3d es);..+..match =
1b40: 20 54 63 6c 5f 53 74 72 69 6e 67 43 61 73 65 4d Tcl_StringCaseM
1b50: 61 74 63 68 28 54 63 6c 47 65 74 53 74 72 69 6e atch(TclGetStrin
1b60: 67 28 69 74 65 6d 50 74 72 29 2c 20 70 61 74 74 g(itemPtr), patt
1b70: 65 72 6e 42 79 74 65 73 2c 20 6e 6f 43 61 73 65 ernBytes, noCase
1b80: 29 3b 0d 0a 20 09 09 62 72 65 61 6b 3b 0d 0a 20 );.. ..break;..
1b90: 09 20 20 20 20 63 61 73 65 20 52 45 47 45 58 50 . case REGEXP
1ba0: 3a 0d 0a 20 09 09 6d 61 74 63 68 20 3d 20 54 63 :.. ..match = Tc
1bb0: 6c 5f 52 65 67 45 78 70 45 78 65 63 4f 62 6a 28 l_RegExpExecObj(
1bc0: 69 6e 74 65 72 70 2c 20 72 65 67 65 78 70 2c 20 interp, regexp,
1bd0: 69 74 65 6d 50 74 72 2c 20 30 2c 20 30 2c 20 30 itemPtr, 0, 0, 0
1be0: 29 3b 0d 0a 40 40 20 2d 33 37 36 36 2c 31 32 20 );..@@ -3766,12
1bf0: 2b 33 37 38 37 2c 31 32 20 40 40 0d 0a 20 09 09 +3787,12 @@.. ..
1c00: 09 09 09 20 2a 20 63 6f 6d 70 61 72 69 73 6f 6e ... * comparison
1c10: 20 66 75 6e 63 74 69 6f 6e 20 2a 2f 0d 0a 20 20 function */..
1c20: 20 20 20 73 74 61 74 69 63 20 43 4f 4e 53 54 20 static CONST
1c30: 63 68 61 72 20 2a 73 77 69 74 63 68 65 73 5b 5d char *switches[]
1c40: 20 3d 20 7b 0d 0a 20 09 22 2d 61 73 63 69 69 22 = {.. ."-ascii"
1c50: 2c 20 22 2d 63 6f 6d 6d 61 6e 64 22 2c 20 22 2d , "-command", "-
1c60: 64 65 63 72 65 61 73 69 6e 67 22 2c 20 22 2d 64 decreasing", "-d
1c70: 69 63 74 69 6f 6e 61 72 79 22 2c 20 22 2d 69 6e ictionary", "-in
1c80: 63 72 65 61 73 69 6e 67 22 2c 0d 0a 2d 09 22 2d creasing",..-."-
1c90: 69 6e 64 65 78 22 2c 20 22 2d 69 6e 64 69 63 65 index", "-indice
1ca0: 73 22 2c 20 22 2d 69 6e 74 65 67 65 72 22 2c 20 s", "-integer",
1cb0: 22 2d 72 65 61 6c 22 2c 20 22 2d 75 6e 69 71 75 "-real", "-uniqu
1cc0: 65 22 2c 20 28 63 68 61 72 20 2a 29 20 4e 55 4c e", (char *) NUL
1cd0: 4c 0d 0a 2b 09 22 2d 69 6e 64 65 78 22 2c 20 22 L..+."-index", "
1ce0: 2d 69 6e 64 69 63 65 73 22 2c 20 22 2d 69 6e 74 -indices", "-int
1cf0: 65 67 65 72 22 2c 20 22 2d 6e 6f 63 61 73 65 22 eger", "-nocase"
1d00: 2c 20 22 2d 72 65 61 6c 22 2c 20 22 2d 75 6e 69 , "-real", "-uni
1d10: 71 75 65 22 2c 20 28 63 68 61 72 20 2a 29 20 4e que", (char *) N
1d20: 55 4c 4c 0d 0a 20 20 20 20 20 7d 3b 0d 0a 20 20 ULL.. };..
1d30: 20 20 20 65 6e 75 6d 20 4c 73 6f 72 74 5f 53 77 enum Lsort_Sw
1d40: 69 74 63 68 65 73 20 7b 0d 0a 20 09 4c 53 4f 52 itches {.. .LSOR
1d50: 54 5f 41 53 43 49 49 2c 20 4c 53 4f 52 54 5f 43 T_ASCII, LSORT_C
1d60: 4f 4d 4d 41 4e 44 2c 20 4c 53 4f 52 54 5f 44 45 OMMAND, LSORT_DE
1d70: 43 52 45 41 53 49 4e 47 2c 20 4c 53 4f 52 54 5f CREASING, LSORT_
1d80: 44 49 43 54 49 4f 4e 41 52 59 2c 0d 0a 20 09 4c DICTIONARY,.. .L
1d90: 53 4f 52 54 5f 49 4e 43 52 45 41 53 49 4e 47 2c SORT_INCREASING,
1da0: 20 4c 53 4f 52 54 5f 49 4e 44 45 58 2c 20 4c 53 LSORT_INDEX, LS
1db0: 4f 52 54 5f 49 4e 44 49 43 45 53 2c 20 4c 53 4f ORT_INDICES, LSO
1dc0: 52 54 5f 49 4e 54 45 47 45 52 2c 0d 0a 2d 09 4c RT_INTEGER,..-.L
1dd0: 53 4f 52 54 5f 52 45 41 4c 2c 20 4c 53 4f 52 54 SORT_REAL, LSORT
1de0: 5f 55 4e 49 51 55 45 0d 0a 2b 09 4c 53 4f 52 54 _UNIQUE..+.LSORT
1df0: 5f 4e 4f 43 41 53 45 2c 20 4c 53 4f 52 54 5f 52 _NOCASE, LSORT_R
1e00: 45 41 4c 2c 20 4c 53 4f 52 54 5f 55 4e 49 51 55 EAL, LSORT_UNIQU
1e10: 45 0d 0a 20 20 20 20 20 7d 3b 0d 0a 20 0d 0a 20 E.. };.. ..
1e20: 20 20 20 20 69 66 20 28 6f 62 6a 63 20 3c 20 32 if (objc < 2
1e30: 29 20 7b 0d 0a 40 40 20 2d 33 37 38 35 2c 36 20 ) {..@@ -3785,6
1e40: 2b 33 38 30 36 2c 37 20 40 40 0d 0a 20 0d 0a 20 +3806,7 @@.. ..
1e50: 20 20 20 20 73 6f 72 74 49 6e 66 6f 2e 69 73 49 sortInfo.isI
1e60: 6e 63 72 65 61 73 69 6e 67 20 3d 20 31 3b 0d 0a ncreasing = 1;..
1e70: 20 20 20 20 20 73 6f 72 74 49 6e 66 6f 2e 73 6f sortInfo.so
1e80: 72 74 4d 6f 64 65 20 3d 20 53 4f 52 54 4d 4f 44 rtMode = SORTMOD
1e90: 45 5f 41 53 43 49 49 3b 0d 0a 2b 20 20 20 20 73 E_ASCII;..+ s
1ea0: 6f 72 74 49 6e 66 6f 2e 73 74 72 43 6d 70 46 6e ortInfo.strCmpFn
1eb0: 20 3d 20 73 74 72 63 6d 70 3b 0d 0a 20 20 20 20 = strcmp;..
1ec0: 20 73 6f 72 74 49 6e 66 6f 2e 69 6e 64 65 78 76 sortInfo.indexv
1ed0: 20 3d 20 4e 55 4c 4c 3b 0d 0a 20 20 20 20 20 73 = NULL;.. s
1ee0: 6f 72 74 49 6e 66 6f 2e 69 6e 64 65 78 63 20 3d ortInfo.indexc =
1ef0: 20 30 3b 0d 0a 20 20 20 20 20 73 6f 72 74 49 6e 0;.. sortIn
1f00: 66 6f 2e 69 6e 74 65 72 70 20 3d 20 69 6e 74 65 fo.interp = inte
1f10: 72 70 3b 0d 0a 40 40 20 2d 33 38 38 33 2c 36 20 rp;..@@ -3883,6
1f20: 2b 33 39 30 35 2c 39 20 40 40 0d 0a 20 09 63 61 +3905,9 @@.. .ca
1f30: 73 65 20 4c 53 4f 52 54 5f 49 4e 54 45 47 45 52 se LSORT_INTEGER
1f40: 3a 0d 0a 20 09 20 20 20 20 73 6f 72 74 49 6e 66 :.. . sortInf
1f50: 6f 2e 73 6f 72 74 4d 6f 64 65 20 3d 20 53 4f 52 o.sortMode = SOR
1f60: 54 4d 4f 44 45 5f 49 4e 54 45 47 45 52 3b 0d 0a TMODE_INTEGER;..
1f70: 20 09 20 20 20 20 62 72 65 61 6b 3b 0d 0a 2b 09 . break;..+.
1f80: 63 61 73 65 20 4c 53 4f 52 54 5f 4e 4f 43 41 53 case LSORT_NOCAS
1f90: 45 3a 0d 0a 2b 09 20 20 20 20 73 6f 72 74 49 6e E:..+. sortIn
1fa0: 66 6f 2e 73 74 72 43 6d 70 46 6e 20 3d 20 73 74 fo.strCmpFn = st
1fb0: 72 63 61 73 65 63 6d 70 3b 0d 0a 2b 09 20 20 20 rcasecmp;..+.
1fc0: 20 62 72 65 61 6b 3b 0d 0a 20 09 63 61 73 65 20 break;.. .case
1fd0: 4c 53 4f 52 54 5f 52 45 41 4c 3a 0d 0a 20 09 20 LSORT_REAL:.. .
1fe0: 20 20 20 73 6f 72 74 49 6e 66 6f 2e 73 6f 72 74 sortInfo.sort
1ff0: 4d 6f 64 65 20 3d 20 53 4f 52 54 4d 4f 44 45 5f Mode = SORTMODE_
2000: 52 45 41 4c 3b 0d 0a 20 09 20 20 20 20 62 72 65 REAL;.. . bre
2010: 61 6b 3b 0d 0a 40 40 20 2d 34 31 35 37 2c 37 20 ak;..@@ -4157,7
2020: 2b 34 31 38 32 2c 37 20 40 40 0d 0a 20 20 20 20 +4182,7 @@..
2030: 20 7d 0d 0a 20 0d 0a 20 20 20 20 20 69 66 20 28 }.. .. if (
2040: 69 6e 66 6f 50 74 72 2d 3e 73 6f 72 74 4d 6f 64 infoPtr->sortMod
2050: 65 20 3d 3d 20 53 4f 52 54 4d 4f 44 45 5f 41 53 e == SORTMODE_AS
2060: 43 49 49 29 20 7b 0d 0a 2d 09 6f 72 64 65 72 20 CII) {..-.order
2070: 3d 20 73 74 72 63 6d 70 28 54 63 6c 47 65 74 53 = strcmp(TclGetS
2080: 74 72 69 6e 67 28 6f 62 6a 50 74 72 31 29 2c 20 tring(objPtr1),
2090: 54 63 6c 47 65 74 53 74 72 69 6e 67 28 6f 62 6a TclGetString(obj
20a0: 50 74 72 32 29 29 3b 0d 0a 2b 09 6f 72 64 65 72 Ptr2));..+.order
20b0: 20 3d 20 69 6e 66 6f 50 74 72 2d 3e 73 74 72 43 = infoPtr->strC
20c0: 6d 70 46 6e 28 54 63 6c 47 65 74 53 74 72 69 6e mpFn(TclGetStrin
20d0: 67 28 6f 62 6a 50 74 72 31 29 2c 20 54 63 6c 47 g(objPtr1), TclG
20e0: 65 74 53 74 72 69 6e 67 28 6f 62 6a 50 74 72 32 etString(objPtr2
20f0: 29 29 3b 0d 0a 20 20 20 20 20 7d 20 65 6c 73 65 ));.. } else
2100: 20 69 66 20 28 69 6e 66 6f 50 74 72 2d 3e 73 6f if (infoPtr->so
2110: 72 74 4d 6f 64 65 20 3d 3d 20 53 4f 52 54 4d 4f rtMode == SORTMO
2120: 44 45 5f 44 49 43 54 49 4f 4e 41 52 59 29 20 7b DE_DICTIONARY) {
2130: 0d 0a 20 09 6f 72 64 65 72 20 3d 20 44 69 63 74 .. .order = Dict
2140: 69 6f 6e 61 72 79 43 6f 6d 70 61 72 65 28 0d 0a ionaryCompare(..
2150: 20 09 09 54 63 6c 47 65 74 53 74 72 69 6e 67 28 ..TclGetString(
2160: 6f 62 6a 50 74 72 31 29 2c 20 54 63 6c 47 65 74 objPtr1), TclGet
2170: 53 74 72 69 6e 67 28 6f 62 6a 50 74 72 32 29 29 String(objPtr2))
2180: 3b 0d 0a 49 6e 64 65 78 3a 20 67 65 6e 65 72 69 ;..Index: generi
2190: 63 2f 74 63 6c 43 6d 64 4d 5a 2e 63 0d 0a 3d 3d c/tclCmdMZ.c..==
21a0: 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d ================
21b0: 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d ================
21c0: 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d ================
21d0: 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d ================
21e0: 3d 0d 0a 52 43 53 20 66 69 6c 65 3a 20 2f 63 76 =..RCS file: /cv
21f0: 73 72 6f 6f 74 2f 74 63 6c 2f 74 63 6c 2f 67 65 sroot/tcl/tcl/ge
2200: 6e 65 72 69 63 2f 74 63 6c 43 6d 64 4d 5a 2e 63 neric/tclCmdMZ.c
2210: 2c 76 0d 0a 72 65 74 72 69 65 76 69 6e 67 20 72 ,v..retrieving r
2220: 65 76 69 73 69 6f 6e 20 31 2e 31 31 35 0d 0a 64 evision 1.115..d
2230: 69 66 66 20 2d 75 20 2d 72 31 2e 31 31 35 20 74 iff -u -r1.115 t
2240: 63 6c 43 6d 64 4d 5a 2e 63 0d 0a 2d 2d 2d 20 67 clCmdMZ.c..--- g
2250: 65 6e 65 72 69 63 2f 74 63 6c 43 6d 64 4d 5a 2e eneric/tclCmdMZ.
2260: 63 09 32 31 20 4f 63 74 20 32 30 30 34 20 31 35 c.21 Oct 2004 15
2270: 3a 31 39 3a 34 36 20 2d 30 30 30 30 09 31 2e 31 :19:46 -0000.1.1
2280: 31 35 0d 0a 2b 2b 2b 20 67 65 6e 65 72 69 63 2f 15..+++ generic/
2290: 74 63 6c 43 6d 64 4d 5a 2e 63 09 32 20 4d 61 72 tclCmdMZ.c.2 Mar
22a0: 20 32 30 30 35 20 30 36 3a 33 36 3a 32 38 20 2d 2005 06:36:28 -
22b0: 30 30 30 30 0d 0a 40 40 20 2d 32 35 30 31 2c 32 0000..@@ -2501,2
22c0: 33 20 2b 32 35 30 31 2c 32 36 20 40 40 0d 0a 20 3 +2501,26 @@..
22d0: 20 20 20 20 69 6e 74 20 6f 62 6a 63 3b 09 09 09 int objc;...
22e0: 2f 2a 20 4e 75 6d 62 65 72 20 6f 66 20 61 72 67 /* Number of arg
22f0: 75 6d 65 6e 74 73 2e 20 2a 2f 0d 0a 20 20 20 20 uments. */..
2300: 20 54 63 6c 5f 4f 62 6a 20 2a 43 4f 4e 53 54 20 Tcl_Obj *CONST
2310: 6f 62 6a 76 5b 5d 3b 09 2f 2a 20 41 72 67 75 6d objv[];./* Argum
2320: 65 6e 74 20 6f 62 6a 65 63 74 73 2e 20 2a 2f 0d ent objects. */.
2330: 0a 20 7b 0d 0a 2d 20 20 20 20 69 6e 74 20 69 2c . {..- int i,
2340: 20 6a 2c 20 69 6e 64 65 78 2c 20 6d 6f 64 65 2c j, index, mode,
2350: 20 72 65 73 75 6c 74 2c 20 73 70 6c 69 74 4f 62 result, splitOb
2360: 6a 73 2c 20 6e 75 6d 4d 61 74 63 68 65 73 53 61 js, numMatchesSa
2370: 76 65 64 3b 0d 0a 2b 20 20 20 20 69 6e 74 20 69 ved;..+ int i
2380: 2c 20 6a 2c 20 69 6e 64 65 78 2c 20 6d 6f 64 65 , j, index, mode
2390: 2c 20 72 65 73 75 6c 74 2c 20 73 70 6c 69 74 4f , result, splitO
23a0: 62 6a 73 2c 20 6e 75 6d 4d 61 74 63 68 65 73 53 bjs, numMatchesS
23b0: 61 76 65 64 2c 20 6e 6f 43 61 73 65 3b 0d 0a 20 aved, noCase;..
23c0: 20 20 20 20 63 68 61 72 20 2a 70 61 74 74 65 72 char *patter
23d0: 6e 3b 0d 0a 20 20 20 20 20 54 63 6c 5f 4f 62 6a n;.. Tcl_Obj
23e0: 20 2a 73 74 72 69 6e 67 4f 62 6a 2c 20 2a 69 6e *stringObj, *in
23f0: 64 65 78 56 61 72 4f 62 6a 2c 20 2a 6d 61 74 63 dexVarObj, *matc
2400: 68 56 61 72 4f 62 6a 3b 0d 0a 20 20 20 20 20 54 hVarObj;.. T
2410: 63 6c 5f 4f 62 6a 20 2a 43 4f 4e 53 54 20 2a 73 cl_Obj *CONST *s
2420: 61 76 65 64 4f 62 6a 76 20 3d 20 6f 62 6a 76 3b avedObjv = objv;
2430: 0d 0a 20 20 20 20 20 54 63 6c 5f 52 65 67 45 78 .. Tcl_RegEx
2440: 70 20 72 65 67 45 78 70 72 20 3d 20 4e 55 4c 4c p regExpr = NULL
2450: 3b 0d 0a 20 20 20 20 20 73 74 61 74 69 63 20 43 ;.. static C
2460: 4f 4e 53 54 20 63 68 61 72 20 2a 6f 70 74 69 6f ONST char *optio
2470: 6e 73 5b 5d 20 3d 20 7b 0d 0a 2d 09 22 2d 65 78 ns[] = {..-."-ex
2480: 61 63 74 22 2c 20 22 2d 67 6c 6f 62 22 2c 20 22 act", "-glob", "
2490: 2d 69 6e 64 65 78 76 61 72 22 2c 20 22 2d 6d 61 -indexvar", "-ma
24a0: 74 63 68 76 61 72 22 2c 20 22 2d 72 65 67 65 78 tchvar", "-regex
24b0: 70 22 2c 20 22 2d 2d 22 2c 20 0d 0a 2b 09 22 2d p", "--", ..+."-
24c0: 65 78 61 63 74 22 2c 20 22 2d 67 6c 6f 62 22 2c exact", "-glob",
24d0: 20 22 2d 69 6e 64 65 78 76 61 72 22 2c 20 22 2d "-indexvar", "-
24e0: 6d 61 74 63 68 76 61 72 22 2c 20 22 2d 6e 6f 63 matchvar", "-noc
24f0: 61 73 65 22 2c 20 22 2d 72 65 67 65 78 70 22 2c ase", "-regexp",
2500: 20 22 2d 2d 22 2c 20 0d 0a 20 09 4e 55 4c 4c 0d "--", .. .NULL.
2510: 0a 20 20 20 20 20 7d 3b 0d 0a 20 20 20 20 20 65 . };.. e
2520: 6e 75 6d 20 6f 70 74 69 6f 6e 73 20 7b 0d 0a 2d num options {..-
2530: 09 4f 50 54 5f 45 58 41 43 54 2c 20 4f 50 54 5f .OPT_EXACT, OPT_
2540: 47 4c 4f 42 2c 20 4f 50 54 5f 49 4e 44 45 58 56 GLOB, OPT_INDEXV
2550: 2c 20 4f 50 54 5f 4d 41 54 43 48 56 2c 20 4f 50 , OPT_MATCHV, OP
2560: 54 5f 52 45 47 45 58 50 2c 20 4f 50 54 5f 4c 41 T_REGEXP, OPT_LA
2570: 53 54 0d 0a 2b 09 4f 50 54 5f 45 58 41 43 54 2c ST..+.OPT_EXACT,
2580: 20 4f 50 54 5f 47 4c 4f 42 2c 20 4f 50 54 5f 49 OPT_GLOB, OPT_I
2590: 4e 44 45 58 56 2c 20 4f 50 54 5f 4d 41 54 43 48 NDEXV, OPT_MATCH
25a0: 56 2c 20 4f 50 54 5f 4e 4f 43 41 53 45 2c 20 4f V, OPT_NOCASE, O
25b0: 50 54 5f 52 45 47 45 58 50 2c 20 4f 50 54 5f 4c PT_REGEXP, OPT_L
25c0: 41 53 54 0d 0a 20 20 20 20 20 7d 3b 0d 0a 2b 20 AST.. };..+
25d0: 20 20 20 74 79 70 65 64 65 66 20 69 6e 74 20 28 typedef int (
25e0: 2a 73 74 72 43 6d 70 46 6e 5f 74 29 20 5f 41 4e *strCmpFn_t) _AN
25f0: 53 49 5f 41 52 47 53 5f 28 28 63 6f 6e 73 74 20 SI_ARGS_((const
2600: 63 68 61 72 20 2a 2c 20 63 6f 6e 73 74 20 63 68 char *, const ch
2610: 61 72 20 2a 29 29 3b 0d 0a 2b 20 20 20 20 73 74 ar *));..+ st
2620: 72 43 6d 70 46 6e 5f 74 20 73 74 72 43 6d 70 46 rCmpFn_t strCmpF
2630: 6e 20 3d 20 73 74 72 63 6d 70 3b 0d 0a 20 0d 0a n = strcmp;.. ..
2640: 20 20 20 20 20 6d 6f 64 65 20 3d 20 4f 50 54 5f mode = OPT_
2650: 45 58 41 43 54 3b 0d 0a 20 20 20 20 20 69 6e 64 EXACT;.. ind
2660: 65 78 56 61 72 4f 62 6a 20 3d 20 4e 55 4c 4c 3b exVarObj = NULL;
2670: 0d 0a 20 20 20 20 20 6d 61 74 63 68 56 61 72 4f .. matchVarO
2680: 62 6a 20 3d 20 4e 55 4c 4c 3b 0d 0a 20 20 20 20 bj = NULL;..
2690: 20 6e 75 6d 4d 61 74 63 68 65 73 53 61 76 65 64 numMatchesSaved
26a0: 20 3d 20 30 3b 0d 0a 2b 20 20 20 20 6e 6f 43 61 = 0;..+ noCa
26b0: 73 65 20 3d 20 30 3b 0d 0a 20 20 20 20 20 66 6f se = 0;.. fo
26c0: 72 20 28 69 20 3d 20 31 3b 20 69 20 3c 20 6f 62 r (i = 1; i < ob
26d0: 6a 63 3b 20 69 2b 2b 29 20 7b 0d 0a 20 09 69 66 jc; i++) {.. .if
26e0: 20 28 54 63 6c 47 65 74 53 74 72 69 6e 67 28 6f (TclGetString(o
26f0: 62 6a 76 5b 69 5d 29 5b 30 5d 20 21 3d 20 27 2d bjv[i])[0] != '-
2700: 27 29 20 7b 0d 0a 20 09 20 20 20 20 62 72 65 61 ') {.. . brea
2710: 6b 3b 0d 0a 40 40 20 2d 32 35 35 36 2c 36 20 2b k;..@@ -2556,6 +
2720: 32 35 35 39 2c 39 20 40 40 0d 0a 20 09 20 20 20 2559,9 @@.. .
2730: 20 7d 0d 0a 20 09 20 20 20 20 6d 61 74 63 68 56 }.. . matchV
2740: 61 72 4f 62 6a 20 3d 20 6f 62 6a 76 5b 69 5d 3b arObj = objv[i];
2750: 0d 0a 20 09 20 20 20 20 6e 75 6d 4d 61 74 63 68 .. . numMatch
2760: 65 73 53 61 76 65 64 20 3d 20 2d 31 3b 0d 0a 2b esSaved = -1;..+
2770: 09 7d 20 65 6c 73 65 20 69 66 20 28 69 6e 64 65 .} else if (inde
2780: 78 20 3d 3d 20 4f 50 54 5f 4e 4f 43 41 53 45 29 x == OPT_NOCASE)
2790: 20 7b 0d 0a 2b 09 20 20 20 20 73 74 72 43 6d 70 {..+. strCmp
27a0: 46 6e 20 3d 20 73 74 72 63 61 73 65 63 6d 70 3b Fn = strcasecmp;
27b0: 0d 0a 2b 09 20 20 20 20 6e 6f 43 61 73 65 20 3d ..+. noCase =
27c0: 20 31 3b 0d 0a 20 09 7d 20 65 6c 73 65 20 7b 0d 1;.. .} else {.
27d0: 0a 20 09 20 20 20 20 6d 6f 64 65 20 3d 20 69 6e . . mode = in
27e0: 64 65 78 3b 0d 0a 20 09 7d 0d 0a 40 40 20 2d 32 dex;.. .}..@@ -2
27f0: 36 39 34 2c 31 38 20 2b 32 37 30 30 2c 31 38 20 694,18 +2700,18
2800: 40 40 0d 0a 20 09 7d 20 65 6c 73 65 20 7b 0d 0a @@.. .} else {..
2810: 20 09 20 20 20 20 73 77 69 74 63 68 20 28 6d 6f . switch (mo
2820: 64 65 29 20 7b 0d 0a 20 09 20 20 20 20 63 61 73 de) {.. . cas
2830: 65 20 4f 50 54 5f 45 58 41 43 54 3a 0d 0a 2d 09 e OPT_EXACT:..-.
2840: 09 69 66 20 28 73 74 72 63 6d 70 28 54 63 6c 47 .if (strcmp(TclG
2850: 65 74 53 74 72 69 6e 67 28 73 74 72 69 6e 67 4f etString(stringO
2860: 62 6a 29 2c 20 70 61 74 74 65 72 6e 29 20 3d 3d bj), pattern) ==
2870: 20 30 29 20 7b 0d 0a 2b 09 09 69 66 20 28 73 74 0) {..+..if (st
2880: 72 43 6d 70 46 6e 28 54 63 6c 47 65 74 53 74 72 rCmpFn(TclGetStr
2890: 69 6e 67 28 73 74 72 69 6e 67 4f 62 6a 29 2c 20 ing(stringObj),
28a0: 70 61 74 74 65 72 6e 29 20 3d 3d 20 30 29 20 7b pattern) == 0) {
28b0: 0d 0a 20 09 09 20 20 20 20 67 6f 74 6f 20 6d 61 .. .. goto ma
28c0: 74 63 68 46 6f 75 6e 64 3b 0d 0a 20 09 09 7d 0d tchFound;.. ..}.
28d0: 0a 20 09 09 62 72 65 61 6b 3b 0d 0a 20 09 20 20 . ..break;.. .
28e0: 20 20 63 61 73 65 20 4f 50 54 5f 47 4c 4f 42 3a case OPT_GLOB:
28f0: 0d 0a 2d 09 09 69 66 20 28 54 63 6c 5f 53 74 72 ..-..if (Tcl_Str
2900: 69 6e 67 4d 61 74 63 68 28 54 63 6c 47 65 74 53 ingMatch(TclGetS
2910: 74 72 69 6e 67 28 73 74 72 69 6e 67 4f 62 6a 29 tring(stringObj)
2920: 2c 20 70 61 74 74 65 72 6e 29 29 20 7b 0d 0a 2b , pattern)) {..+
2930: 09 09 69 66 20 28 54 63 6c 5f 53 74 72 69 6e 67 ..if (Tcl_String
2940: 43 61 73 65 4d 61 74 63 68 28 54 63 6c 47 65 74 CaseMatch(TclGet
2950: 53 74 72 69 6e 67 28 73 74 72 69 6e 67 4f 62 6a String(stringObj
2960: 29 2c 20 70 61 74 74 65 72 6e 2c 20 6e 6f 43 61 ), pattern, noCa
2970: 73 65 29 29 20 7b 0d 0a 20 09 09 20 20 20 20 67 se)) {.. .. g
2980: 6f 74 6f 20 6d 61 74 63 68 46 6f 75 6e 64 3b 0d oto matchFound;.
2990: 0a 20 09 09 7d 0d 0a 20 09 09 62 72 65 61 6b 3b . ..}.. ..break;
29a0: 0d 0a 20 09 20 20 20 20 63 61 73 65 20 4f 50 54 .. . case OPT
29b0: 5f 52 45 47 45 58 50 3a 0d 0a 20 09 09 72 65 67 _REGEXP:.. ..reg
29c0: 45 78 70 72 20 3d 20 54 63 6c 5f 47 65 74 52 65 Expr = Tcl_GetRe
29d0: 67 45 78 70 46 72 6f 6d 4f 62 6a 28 69 6e 74 65 gExpFromObj(inte
29e0: 72 70 2c 20 6f 62 6a 76 5b 69 5d 2c 0d 0a 2d 09 rp, objv[i],..-.
29f0: 09 09 54 43 4c 5f 52 45 47 5f 41 44 56 41 4e 43 ..TCL_REG_ADVANC
2a00: 45 44 29 3b 0d 0a 2b 09 09 09 54 43 4c 5f 52 45 ED);..+...TCL_RE
2a10: 47 5f 41 44 56 41 4e 43 45 44 20 7c 20 28 6e 6f G_ADVANCED | (no
2a20: 43 61 73 65 20 3f 20 54 43 4c 5f 52 45 47 5f 4e Case ? TCL_REG_N
2a30: 4f 43 41 53 45 20 3a 20 30 29 29 3b 0d 0a 20 09 OCASE : 0));.. .
2a40: 09 69 66 20 28 72 65 67 45 78 70 72 20 3d 3d 20 .if (regExpr ==
2a50: 4e 55 4c 4c 29 20 7b 0d 0a 20 09 09 20 20 20 20 NULL) {.. ..
2a60: 72 65 74 75 72 6e 20 54 43 4c 5f 45 52 52 4f 52 return TCL_ERROR
2a70: 3b 0d 0a 20 09 09 7d 20 65 6c 73 65 20 7b 0d 0a ;.. ..} else {..
2a80: 49 6e 64 65 78 3a 20 74 65 73 74 73 2f 63 6d 64 Index: tests/cmd
2a90: 49 4c 2e 74 65 73 74 0d 0a 3d 3d 3d 3d 3d 3d 3d IL.test..=======
2aa0: 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d ================
2ab0: 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d ================
2ac0: 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d ================
2ad0: 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 0d 0a 52 43 ============..RC
2ae0: 53 20 66 69 6c 65 3a 20 2f 63 76 73 72 6f 6f 74 S file: /cvsroot
2af0: 2f 74 63 6c 2f 74 63 6c 2f 74 65 73 74 73 2f 63 /tcl/tcl/tests/c
2b00: 6d 64 49 4c 2e 74 65 73 74 2c 76 0d 0a 72 65 74 mdIL.test,v..ret
2b10: 72 69 65 76 69 6e 67 20 72 65 76 69 73 69 6f 6e rieving revision
2b20: 20 31 2e 32 33 0d 0a 64 69 66 66 20 2d 75 20 2d 1.23..diff -u -
2b30: 72 31 2e 32 33 20 63 6d 64 49 4c 2e 74 65 73 74 r1.23 cmdIL.test
2b40: 0d 0a 2d 2d 2d 20 74 65 73 74 73 2f 63 6d 64 49 ..--- tests/cmdI
2b50: 4c 2e 74 65 73 74 09 31 34 20 4f 63 74 20 32 30 L.test.14 Oct 20
2b60: 30 34 20 31 37 3a 32 30 3a 31 31 20 2d 30 30 30 04 17:20:11 -000
2b70: 30 09 31 2e 32 33 0d 0a 2b 2b 2b 20 74 65 73 74 0.1.23..+++ test
2b80: 73 2f 63 6d 64 49 4c 2e 74 65 73 74 09 32 20 4d s/cmdIL.test.2 M
2b90: 61 72 20 32 30 30 35 20 30 36 3a 33 36 3a 33 35 ar 2005 06:36:35
2ba0: 20 2d 30 30 30 30 0d 0a 40 40 20 2d 32 33 2c 37 -0000..@@ -23,7
2bb0: 20 2b 32 33 2c 37 20 40 40 0d 0a 20 7d 20 7b 31 +23,7 @@.. } {1
2bc0: 20 7b 77 72 6f 6e 67 20 23 20 61 72 67 73 3a 20 {wrong # args:
2bd0: 73 68 6f 75 6c 64 20 62 65 20 22 6c 73 6f 72 74 should be "lsort
2be0: 20 3f 6f 70 74 69 6f 6e 73 3f 20 6c 69 73 74 22 ?options? list"
2bf0: 7d 7d 0d 0a 20 74 65 73 74 20 63 6d 64 49 4c 2d }}.. test cmdIL-
2c00: 31 2e 32 20 7b 54 63 6c 5f 4c 73 6f 72 74 4f 62 1.2 {Tcl_LsortOb
2c10: 6a 43 6d 64 20 70 72 6f 63 65 64 75 72 65 7d 20 jCmd procedure}
2c20: 7b 0d 0a 20 20 20 20 20 6c 69 73 74 20 5b 63 61 {.. list [ca
2c30: 74 63 68 20 7b 6c 73 6f 72 74 20 2d 66 6f 6f 20 tch {lsort -foo
2c40: 7b 31 20 33 20 32 20 35 7d 7d 20 6d 73 67 5d 20 {1 3 2 5}} msg]
2c50: 24 6d 73 67 0d 0a 2d 7d 20 7b 31 20 7b 62 61 64 $msg..-} {1 {bad
2c60: 20 6f 70 74 69 6f 6e 20 22 2d 66 6f 6f 22 3a 20 option "-foo":
2c70: 6d 75 73 74 20 62 65 20 2d 61 73 63 69 69 2c 20 must be -ascii,
2c80: 2d 63 6f 6d 6d 61 6e 64 2c 20 2d 64 65 63 72 65 -command, -decre
2c90: 61 73 69 6e 67 2c 20 2d 64 69 63 74 69 6f 6e 61 asing, -dictiona
2ca0: 72 79 2c 20 2d 69 6e 63 72 65 61 73 69 6e 67 2c ry, -increasing,
2cb0: 20 2d 69 6e 64 65 78 2c 20 2d 69 6e 64 69 63 65 -index, -indice
2cc0: 73 2c 20 2d 69 6e 74 65 67 65 72 2c 20 2d 72 65 s, -integer, -re
2cd0: 61 6c 2c 20 6f 72 20 2d 75 6e 69 71 75 65 7d 7d al, or -unique}}
2ce0: 0d 0a 2b 7d 20 7b 31 20 7b 62 61 64 20 6f 70 74 ..+} {1 {bad opt
2cf0: 69 6f 6e 20 22 2d 66 6f 6f 22 3a 20 6d 75 73 74 ion "-foo": must
2d00: 20 62 65 20 2d 61 73 63 69 69 2c 20 2d 63 6f 6d be -ascii, -com
2d10: 6d 61 6e 64 2c 20 2d 64 65 63 72 65 61 73 69 6e mand, -decreasin
2d20: 67 2c 20 2d 64 69 63 74 69 6f 6e 61 72 79 2c 20 g, -dictionary,
2d30: 2d 69 6e 63 72 65 61 73 69 6e 67 2c 20 2d 69 6e -increasing, -in
2d40: 64 65 78 2c 20 2d 69 6e 64 69 63 65 73 2c 20 2d dex, -indices, -
2d50: 69 6e 74 65 67 65 72 2c 20 2d 6e 6f 63 61 73 65 integer, -nocase
2d60: 2c 20 2d 72 65 61 6c 2c 20 6f 72 20 2d 75 6e 69 , -real, or -uni
2d70: 71 75 65 7d 7d 0d 0a 20 74 65 73 74 20 63 6d 64 que}}.. test cmd
2d80: 49 4c 2d 31 2e 33 20 7b 54 63 6c 5f 4c 73 6f 72 IL-1.3 {Tcl_Lsor
2d90: 74 4f 62 6a 43 6d 64 20 70 72 6f 63 65 64 75 72 tObjCmd procedur
2da0: 65 2c 20 64 65 66 61 75 6c 74 20 6f 70 74 69 6f e, default optio
2db0: 6e 73 7d 20 7b 0d 0a 20 20 20 20 20 6c 73 6f 72 ns} {.. lsor
2dc0: 74 20 7b 64 20 65 20 63 20 62 20 61 20 5c 7b 20 t {d e c b a \{
2dd0: 64 33 35 20 64 33 30 30 7d 0d 0a 20 7d 20 7b 61 d35 d300}.. } {a
2de0: 20 62 20 63 20 64 20 64 33 30 30 20 64 33 35 20 b c d d300 d35
2df0: 65 20 5c 7b 7d 0d 0a 40 40 20 2d 33 38 33 2c 36 e \{}..@@ -383,6
2e00: 20 2b 33 38 33 2c 31 32 20 40 40 0d 0a 20 74 65 +383,12 @@.. te
2e10: 73 74 20 63 6d 64 49 4c 2d 34 2e 33 33 20 7b 44 st cmdIL-4.33 {D
2e20: 69 63 74 69 6f 6e 61 72 79 43 6f 6d 70 61 72 65 ictionaryCompare
2e30: 20 70 72 6f 63 65 64 75 72 65 2c 20 63 68 61 72 procedure, char
2e40: 73 20 62 65 74 77 65 65 6e 20 5a 20 61 6e 64 20 s between Z and
2e50: 61 20 69 6e 20 41 53 43 49 49 7d 20 7b 0d 0a 20 a in ASCII} {..
2e60: 20 20 20 20 6c 73 6f 72 74 20 2d 64 69 63 74 69 lsort -dicti
2e70: 6f 6e 61 72 79 20 5b 6c 69 73 74 20 41 41 20 21 onary [list AA !
2e80: 20 63 20 43 43 20 60 5d 0d 0a 20 7d 20 5b 6c 69 c CC `].. } [li
2e90: 73 74 20 21 20 60 20 41 41 20 63 20 43 43 5d 0d st ! ` AA c CC].
2ea0: 0a 2b 74 65 73 74 20 63 6d 64 49 4c 2d 34 2e 33 .+test cmdIL-4.3
2eb0: 34 20 7b 53 6f 72 74 43 6f 6d 70 61 72 65 20 70 4 {SortCompare p
2ec0: 72 6f 63 65 64 75 72 65 2c 20 2d 61 73 63 69 69 rocedure, -ascii
2ed0: 20 6f 70 74 69 6f 6e 20 77 69 74 68 20 2d 6e 6f option with -no
2ee0: 63 61 73 65 20 6f 70 74 69 6f 6e 7d 20 7b 0d 0a case option} {..
2ef0: 2b 20 20 20 20 6c 73 6f 72 74 20 2d 61 73 63 69 + lsort -asci
2f00: 69 20 2d 6e 6f 63 61 73 65 20 7b 64 20 65 20 63 i -nocase {d e c
2f10: 20 62 20 61 20 64 33 35 20 64 33 30 30 20 31 30 b a d35 d300 10
2f20: 30 20 32 30 7d 0d 0a 2b 7d 20 7b 31 30 30 20 32 0 20}..+} {100 2
2f30: 30 20 61 20 62 20 63 20 64 20 64 33 30 30 20 64 0 a b c d d300 d
2f40: 33 35 20 65 7d 0d 0a 2b 74 65 73 74 20 63 6d 64 35 e}..+test cmd
2f50: 49 4c 2d 34 2e 33 35 20 7b 53 6f 72 74 43 6f 6d IL-4.35 {SortCom
2f60: 70 61 72 65 20 70 72 6f 63 65 64 75 72 65 2c 20 pare procedure,
2f70: 2d 61 73 63 69 69 20 6f 70 74 69 6f 6e 20 77 69 -ascii option wi
2f80: 74 68 20 2d 6e 6f 63 61 73 65 20 6f 70 74 69 6f th -nocase optio
2f90: 6e 7d 20 7b 0d 0a 2b 20 20 20 20 6c 73 6f 72 74 n} {..+ lsort
2fa0: 20 2d 61 73 63 69 69 20 2d 6e 6f 63 61 73 65 20 -ascii -nocase
2fb0: 7b 64 20 45 20 63 20 42 20 61 20 44 33 35 20 64 {d E c B a D35 d
2fc0: 33 30 30 20 31 30 30 20 32 30 7d 0d 0a 2b 7d 20 300 100 20}..+}
2fd0: 7b 31 30 30 20 32 30 20 61 20 42 20 63 20 64 20 {100 20 a B c d
2fe0: 64 33 30 30 20 44 33 35 20 45 7d 0d 0a 20 0d 0a d300 D35 E}.. ..
2ff0: 20 74 65 73 74 20 63 6d 64 49 4c 2d 35 2e 31 20 test cmdIL-5.1
3000: 7b 6c 73 6f 72 74 20 77 69 74 68 20 6c 69 73 74 {lsort with list
3010: 20 73 74 79 6c 65 20 69 6e 64 65 78 7d 20 7b 0d style index} {.
3020: 0a 20 20 20 20 20 6c 73 6f 72 74 20 2d 61 73 63 . lsort -asc
3030: 69 69 20 2d 64 65 63 72 65 61 73 69 6e 67 20 2d ii -decreasing -
3040: 69 6e 64 65 78 20 7b 30 20 31 7d 20 7b 0d 0a 49 index {0 1} {..I
3050: 6e 64 65 78 3a 20 74 65 73 74 73 2f 6c 73 65 61 ndex: tests/lsea
3060: 72 63 68 2e 74 65 73 74 0d 0a 3d 3d 3d 3d 3d 3d rch.test..======
3070: 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d ================
3080: 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d ================
3090: 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d ================
30a0: 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 0d 0a 52 =============..R
30b0: 43 53 20 66 69 6c 65 3a 20 2f 63 76 73 72 6f 6f CS file: /cvsroo
30c0: 74 2f 74 63 6c 2f 74 63 6c 2f 74 65 73 74 73 2f t/tcl/tcl/tests/
30d0: 6c 73 65 61 72 63 68 2e 74 65 73 74 2c 76 0d 0a lsearch.test,v..
30e0: 72 65 74 72 69 65 76 69 6e 67 20 72 65 76 69 73 retrieving revis
30f0: 69 6f 6e 20 31 2e 31 33 0d 0a 64 69 66 66 20 2d ion 1.13..diff -
3100: 75 20 2d 72 31 2e 31 33 20 6c 73 65 61 72 63 68 u -r1.13 lsearch
3110: 2e 74 65 73 74 0d 0a 2d 2d 2d 20 74 65 73 74 73 .test..--- tests
3120: 2f 6c 73 65 61 72 63 68 2e 74 65 73 74 09 31 35 /lsearch.test.15
3130: 20 4f 63 74 20 32 30 30 33 20 31 33 3a 31 35 3a Oct 2003 13:15:
3140: 34 35 20 2d 30 30 30 30 09 31 2e 31 33 0d 0a 2b 45 -0000.1.13..+
3150: 2b 2b 20 74 65 73 74 73 2f 6c 73 65 61 72 63 68 ++ tests/lsearch
3160: 2e 74 65 73 74 09 32 20 4d 61 72 20 32 30 30 35 .test.2 Mar 2005
3170: 20 30 36 3a 33 36 3a 33 37 20 2d 30 30 30 30 0d 06:36:37 -0000.
3180: 0a 40 40 20 2d 36 31 2c 37 20 2b 36 31 2c 32 35 .@@ -61,7 +61,25
3190: 20 40 40 0d 0a 20 7d 20 31 0d 0a 20 74 65 73 74 @@.. } 1.. test
31a0: 20 6c 73 65 61 72 63 68 2d 32 2e 31 30 20 7b 73 lsearch-2.10 {s
31b0: 65 61 72 63 68 20 6d 6f 64 65 73 7d 20 7b 0d 0a earch modes} {..
31c0: 20 20 20 20 20 6c 69 73 74 20 5b 63 61 74 63 68 list [catch
31d0: 20 7b 6c 73 65 61 72 63 68 20 2d 67 6c 69 62 20 {lsearch -glib
31e0: 7b 62 2e 78 20 62 78 20 78 79 20 62 63 78 7d 20 {b.x bx xy bcx}
31f0: 62 2e 78 7d 20 6d 73 67 5d 20 24 6d 73 67 0d 0a b.x} msg] $msg..
3200: 2d 7d 20 7b 31 20 7b 62 61 64 20 6f 70 74 69 6f -} {1 {bad optio
3210: 6e 20 22 2d 67 6c 69 62 22 3a 20 6d 75 73 74 20 n "-glib": must
3220: 62 65 20 2d 61 6c 6c 2c 20 2d 61 73 63 69 69 2c be -all, -ascii,
3230: 20 2d 64 65 63 72 65 61 73 69 6e 67 2c 20 2d 64 -decreasing, -d
3240: 69 63 74 69 6f 6e 61 72 79 2c 20 2d 65 78 61 63 ictionary, -exac
3250: 74 2c 20 2d 67 6c 6f 62 2c 20 2d 69 6e 63 72 65 t, -glob, -incre
3260: 61 73 69 6e 67 2c 20 2d 69 6e 64 65 78 2c 20 2d asing, -index, -
3270: 69 6e 6c 69 6e 65 2c 20 2d 69 6e 74 65 67 65 72 inline, -integer
3280: 2c 20 2d 6e 6f 74 2c 20 2d 72 65 61 6c 2c 20 2d , -not, -real, -
3290: 72 65 67 65 78 70 2c 20 2d 73 6f 72 74 65 64 2c regexp, -sorted,
32a0: 20 2d 73 74 61 72 74 2c 20 6f 72 20 2d 73 75 62 -start, or -sub
32b0: 69 6e 64 69 63 65 73 7d 7d 0d 0a 2b 7d 20 7b 31 indices}}..+} {1
32c0: 20 7b 62 61 64 20 6f 70 74 69 6f 6e 20 22 2d 67 {bad option "-g
32d0: 6c 69 62 22 3a 20 6d 75 73 74 20 62 65 20 2d 61 lib": must be -a
32e0: 6c 6c 2c 20 2d 61 73 63 69 69 2c 20 2d 64 65 63 ll, -ascii, -dec
32f0: 72 65 61 73 69 6e 67 2c 20 2d 64 69 63 74 69 6f reasing, -dictio
3300: 6e 61 72 79 2c 20 2d 65 78 61 63 74 2c 20 2d 67 nary, -exact, -g
3310: 6c 6f 62 2c 20 2d 69 6e 63 72 65 61 73 69 6e 67 lob, -increasing
3320: 2c 20 2d 69 6e 64 65 78 2c 20 2d 69 6e 6c 69 6e , -index, -inlin
3330: 65 2c 20 2d 69 6e 74 65 67 65 72 2c 20 2d 6e 6f e, -integer, -no
3340: 63 61 73 65 2c 20 2d 6e 6f 74 2c 20 2d 72 65 61 case, -not, -rea
3350: 6c 2c 20 2d 72 65 67 65 78 70 2c 20 2d 73 6f 72 l, -regexp, -sor
3360: 74 65 64 2c 20 2d 73 74 61 72 74 2c 20 6f 72 20 ted, -start, or
3370: 2d 73 75 62 69 6e 64 69 63 65 73 7d 7d 0d 0a 2b -subindices}}..+
3380: 74 65 73 74 20 6c 73 65 61 72 63 68 2d 32 2e 31 test lsearch-2.1
3390: 31 20 7b 73 65 61 72 63 68 20 6d 6f 64 65 73 20 1 {search modes
33a0: 77 69 74 68 20 2d 6e 6f 63 61 73 65 7d 20 7b 0d with -nocase} {.
33b0: 0a 2b 20 20 20 20 6c 73 65 61 72 63 68 20 2d 65 .+ lsearch -e
33c0: 78 61 63 74 20 2d 6e 6f 63 61 73 65 20 7b 61 20 xact -nocase {a
33d0: 62 20 63 20 41 20 42 20 43 7d 20 41 0d 0a 2b 7d b c A B C} A..+}
33e0: 20 30 0d 0a 2b 74 65 73 74 20 6c 73 65 61 72 63 0..+test lsearc
33f0: 68 2d 32 2e 31 32 20 7b 73 65 61 72 63 68 20 6d h-2.12 {search m
3400: 6f 64 65 73 20 77 69 74 68 20 2d 6e 6f 63 61 73 odes with -nocas
3410: 65 7d 20 7b 0d 0a 2b 20 20 20 20 6c 73 65 61 72 e} {..+ lsear
3420: 63 68 20 2d 67 6c 6f 62 20 2d 6e 6f 63 61 73 65 ch -glob -nocase
3430: 20 7b 61 20 62 20 63 20 41 20 42 20 43 7d 20 41 {a b c A B C} A
3440: 2a 0d 0a 2b 7d 20 30 0d 0a 2b 74 65 73 74 20 6c *..+} 0..+test l
3450: 73 65 61 72 63 68 2d 32 2e 31 33 20 7b 73 65 61 search-2.13 {sea
3460: 72 63 68 20 6d 6f 64 65 73 20 77 69 74 68 20 2d rch modes with -
3470: 6e 6f 63 61 73 65 7d 20 7b 0d 0a 2b 20 20 20 20 nocase} {..+
3480: 6c 73 65 61 72 63 68 20 2d 72 65 67 65 78 70 20 lsearch -regexp
3490: 2d 6e 6f 63 61 73 65 20 7b 61 20 62 20 63 20 41 -nocase {a b c A
34a0: 20 42 20 43 7d 20 5e 41 5c 24 0d 0a 2b 7d 20 30 B C} ^A\$..+} 0
34b0: 0d 0a 2b 74 65 73 74 20 6c 73 65 61 72 63 68 2d ..+test lsearch-
34c0: 32 2e 31 34 20 7b 73 65 61 72 63 68 20 6d 6f 64 2.14 {search mod
34d0: 65 73 20 77 69 74 68 6f 75 74 20 2d 6e 6f 63 61 es without -noca
34e0: 73 65 7d 20 7b 0d 0a 2b 20 20 20 20 6c 73 65 61 se} {..+ lsea
34f0: 72 63 68 20 2d 65 78 61 63 74 20 7b 61 20 62 20 rch -exact {a b
3500: 63 20 41 20 42 20 43 7d 20 41 0d 0a 2b 7d 20 33 c A B C} A..+} 3
3510: 0d 0a 2b 74 65 73 74 20 6c 73 65 61 72 63 68 2d ..+test lsearch-
3520: 32 2e 31 35 20 7b 73 65 61 72 63 68 20 6d 6f 64 2.15 {search mod
3530: 65 73 20 77 69 74 68 6f 75 74 20 2d 6e 6f 63 61 es without -noca
3540: 73 65 7d 20 7b 0d 0a 2b 20 20 20 20 6c 73 65 61 se} {..+ lsea
3550: 72 63 68 20 2d 67 6c 6f 62 20 7b 61 20 62 20 63 rch -glob {a b c
3560: 20 41 20 42 20 43 7d 20 41 2a 0d 0a 2b 7d 20 33 A B C} A*..+} 3
3570: 0d 0a 2b 74 65 73 74 20 6c 73 65 61 72 63 68 2d ..+test lsearch-
3580: 32 2e 31 36 20 7b 73 65 61 72 63 68 20 6d 6f 64 2.16 {search mod
3590: 65 73 20 77 69 74 68 6f 75 74 20 2d 6e 6f 63 61 es without -noca
35a0: 73 65 7d 20 7b 0d 0a 2b 20 20 20 20 6c 73 65 61 se} {..+ lsea
35b0: 72 63 68 20 2d 72 65 67 65 78 70 20 7b 61 20 62 rch -regexp {a b
35c0: 20 63 20 41 20 42 20 43 7d 20 5e 41 5c 24 0d 0a c A B C} ^A\$..
35d0: 2b 7d 20 33 0d 0a 20 0d 0a 20 74 65 73 74 20 6c +} 3.. .. test l
35e0: 73 65 61 72 63 68 2d 33 2e 31 20 7b 6c 73 65 61 search-3.1 {lsea
35f0: 72 63 68 20 65 72 72 6f 72 73 7d 20 7b 0d 0a 20 rch errors} {..
3600: 20 20 20 20 6c 69 73 74 20 5b 63 61 74 63 68 20 list [catch
3610: 6c 73 65 61 72 63 68 20 6d 73 67 5d 20 24 6d 73 lsearch msg] $ms
3620: 67 0d 0a 40 40 20 2d 37 31 2c 31 30 20 2b 38 39 g..@@ -71,10 +89
3630: 2c 31 30 20 40 40 0d 0a 20 7d 20 7b 31 20 7b 77 ,10 @@.. } {1 {w
3640: 72 6f 6e 67 20 23 20 61 72 67 73 3a 20 73 68 6f rong # args: sho
3650: 75 6c 64 20 62 65 20 22 6c 73 65 61 72 63 68 20 uld be "lsearch
3660: 3f 6f 70 74 69 6f 6e 73 3f 20 6c 69 73 74 20 70 ?options? list p
3670: 61 74 74 65 72 6e 22 7d 7d 0d 0a 20 74 65 73 74 attern"}}.. test
3680: 20 6c 73 65 61 72 63 68 2d 33 2e 33 20 7b 6c 73 lsearch-3.3 {ls
3690: 65 61 72 63 68 20 65 72 72 6f 72 73 7d 20 7b 0d earch errors} {.
36a0: 0a 20 20 20 20 20 6c 69 73 74 20 5b 63 61 74 63 . list [catc
36b0: 68 20 7b 6c 73 65 61 72 63 68 20 61 20 62 20 63 h {lsearch a b c
36c0: 7d 20 6d 73 67 5d 20 24 6d 73 67 0d 0a 2d 7d 20 } msg] $msg..-}
36d0: 7b 31 20 7b 62 61 64 20 6f 70 74 69 6f 6e 20 22 {1 {bad option "
36e0: 61 22 3a 20 6d 75 73 74 20 62 65 20 2d 61 6c 6c a": must be -all
36f0: 2c 20 2d 61 73 63 69 69 2c 20 2d 64 65 63 72 65 , -ascii, -decre
3700: 61 73 69 6e 67 2c 20 2d 64 69 63 74 69 6f 6e 61 asing, -dictiona
3710: 72 79 2c 20 2d 65 78 61 63 74 2c 20 2d 67 6c 6f ry, -exact, -glo
3720: 62 2c 20 2d 69 6e 63 72 65 61 73 69 6e 67 2c 20 b, -increasing,
3730: 2d 69 6e 64 65 78 2c 20 2d 69 6e 6c 69 6e 65 2c -index, -inline,
3740: 20 2d 69 6e 74 65 67 65 72 2c 20 2d 6e 6f 74 2c -integer, -not,
3750: 20 2d 72 65 61 6c 2c 20 2d 72 65 67 65 78 70 2c -real, -regexp,
3760: 20 2d 73 6f 72 74 65 64 2c 20 2d 73 74 61 72 74 -sorted, -start
3770: 2c 20 6f 72 20 2d 73 75 62 69 6e 64 69 63 65 73 , or -subindices
3780: 7d 7d 0d 0a 2b 7d 20 7b 31 20 7b 62 61 64 20 6f }}..+} {1 {bad o
3790: 70 74 69 6f 6e 20 22 61 22 3a 20 6d 75 73 74 20 ption "a": must
37a0: 62 65 20 2d 61 6c 6c 2c 20 2d 61 73 63 69 69 2c be -all, -ascii,
37b0: 20 2d 64 65 63 72 65 61 73 69 6e 67 2c 20 2d 64 -decreasing, -d
37c0: 69 63 74 69 6f 6e 61 72 79 2c 20 2d 65 78 61 63 ictionary, -exac
37d0: 74 2c 20 2d 67 6c 6f 62 2c 20 2d 69 6e 63 72 65 t, -glob, -incre
37e0: 61 73 69 6e 67 2c 20 2d 69 6e 64 65 78 2c 20 2d asing, -index, -
37f0: 69 6e 6c 69 6e 65 2c 20 2d 69 6e 74 65 67 65 72 inline, -integer
3800: 2c 20 2d 6e 6f 63 61 73 65 2c 20 2d 6e 6f 74 2c , -nocase, -not,
3810: 20 2d 72 65 61 6c 2c 20 2d 72 65 67 65 78 70 2c -real, -regexp,
3820: 20 2d 73 6f 72 74 65 64 2c 20 2d 73 74 61 72 74 -sorted, -start
3830: 2c 20 6f 72 20 2d 73 75 62 69 6e 64 69 63 65 73 , or -subindices
3840: 7d 7d 0d 0a 20 74 65 73 74 20 6c 73 65 61 72 63 }}.. test lsearc
3850: 68 2d 33 2e 34 20 7b 6c 73 65 61 72 63 68 20 65 h-3.4 {lsearch e
3860: 72 72 6f 72 73 7d 20 7b 0d 0a 20 20 20 20 20 6c rrors} {.. l
3870: 69 73 74 20 5b 63 61 74 63 68 20 7b 6c 73 65 61 ist [catch {lsea
3880: 72 63 68 20 61 20 62 20 63 20 64 7d 20 6d 73 67 rch a b c d} msg
3890: 5d 20 24 6d 73 67 0d 0a 2d 7d 20 7b 31 20 7b 62 ] $msg..-} {1 {b
38a0: 61 64 20 6f 70 74 69 6f 6e 20 22 61 22 3a 20 6d ad option "a": m
38b0: 75 73 74 20 62 65 20 2d 61 6c 6c 2c 20 2d 61 73 ust be -all, -as
38c0: 63 69 69 2c 20 2d 64 65 63 72 65 61 73 69 6e 67 cii, -decreasing
38d0: 2c 20 2d 64 69 63 74 69 6f 6e 61 72 79 2c 20 2d , -dictionary, -
38e0: 65 78 61 63 74 2c 20 2d 67 6c 6f 62 2c 20 2d 69 exact, -glob, -i
38f0: 6e 63 72 65 61 73 69 6e 67 2c 20 2d 69 6e 64 65 ncreasing, -inde
3900: 78 2c 20 2d 69 6e 6c 69 6e 65 2c 20 2d 69 6e 74 x, -inline, -int
3910: 65 67 65 72 2c 20 2d 6e 6f 74 2c 20 2d 72 65 61 eger, -not, -rea
3920: 6c 2c 20 2d 72 65 67 65 78 70 2c 20 2d 73 6f 72 l, -regexp, -sor
3930: 74 65 64 2c 20 2d 73 74 61 72 74 2c 20 6f 72 20 ted, -start, or
3940: 2d 73 75 62 69 6e 64 69 63 65 73 7d 7d 0d 0a 2b -subindices}}..+
3950: 7d 20 7b 31 20 7b 62 61 64 20 6f 70 74 69 6f 6e } {1 {bad option
3960: 20 22 61 22 3a 20 6d 75 73 74 20 62 65 20 2d 61 "a": must be -a
3970: 6c 6c 2c 20 2d 61 73 63 69 69 2c 20 2d 64 65 63 ll, -ascii, -dec
3980: 72 65 61 73 69 6e 67 2c 20 2d 64 69 63 74 69 6f reasing, -dictio
3990: 6e 61 72 79 2c 20 2d 65 78 61 63 74 2c 20 2d 67 nary, -exact, -g
39a0: 6c 6f 62 2c 20 2d 69 6e 63 72 65 61 73 69 6e 67 lob, -increasing
39b0: 2c 20 2d 69 6e 64 65 78 2c 20 2d 69 6e 6c 69 6e , -index, -inlin
39c0: 65 2c 20 2d 69 6e 74 65 67 65 72 2c 20 2d 6e 6f e, -integer, -no
39d0: 63 61 73 65 2c 20 2d 6e 6f 74 2c 20 2d 72 65 61 case, -not, -rea
39e0: 6c 2c 20 2d 72 65 67 65 78 70 2c 20 2d 73 6f 72 l, -regexp, -sor
39f0: 74 65 64 2c 20 2d 73 74 61 72 74 2c 20 6f 72 20 ted, -start, or
3a00: 2d 73 75 62 69 6e 64 69 63 65 73 7d 7d 0d 0a 20 -subindices}}..
3a10: 74 65 73 74 20 6c 73 65 61 72 63 68 2d 33 2e 35 test lsearch-3.5
3a20: 20 7b 6c 73 65 61 72 63 68 20 65 72 72 6f 72 73 {lsearch errors
3a30: 7d 20 7b 0d 0a 20 20 20 20 20 6c 69 73 74 20 5b } {.. list [
3a40: 63 61 74 63 68 20 7b 6c 73 65 61 72 63 68 20 22 catch {lsearch "
3a50: 5c 7b 22 20 62 7d 20 6d 73 67 5d 20 24 6d 73 67 \{" b} msg] $msg
3a60: 0d 0a 20 7d 20 7b 31 20 7b 75 6e 6d 61 74 63 68 .. } {1 {unmatch
3a70: 65 64 20 6f 70 65 6e 20 62 72 61 63 65 20 69 6e ed open brace in
3a80: 20 6c 69 73 74 7d 7d 0d 0a 40 40 20 2d 33 32 30 list}}..@@ -320
3a90: 2c 36 20 2b 33 33 38 2c 31 35 20 40 40 0d 0a 20 ,6 +338,15 @@..
3aa0: 74 65 73 74 20 6c 73 65 61 72 63 68 2d 31 33 2e test lsearch-13.
3ab0: 32 20 7b 73 65 61 72 63 68 20 66 6f 72 20 61 6c 2 {search for al
3ac0: 6c 20 6d 61 74 63 68 65 73 7d 20 7b 0d 0a 20 20 l matches} {..
3ad0: 20 20 20 6c 73 65 61 72 63 68 20 2d 61 6c 6c 20 lsearch -all
3ae0: 7b 61 20 62 20 61 20 63 20 61 20 64 7d 20 61 0d {a b a c a d} a.
3af0: 0a 20 7d 20 7b 30 20 32 20 34 7d 0d 0a 2b 74 65 . } {0 2 4}..+te
3b00: 73 74 20 6c 73 65 61 72 63 68 2d 31 33 2e 33 20 st lsearch-13.3
3b10: 7b 73 65 61 72 63 68 20 66 6f 72 20 61 6c 6c 20 {search for all
3b20: 6d 61 74 63 68 65 73 20 77 69 74 68 20 2d 6e 6f matches with -no
3b30: 63 61 73 65 7d 20 7b 0d 0a 2b 20 20 20 20 6c 73 case} {..+ ls
3b40: 65 61 72 63 68 20 2d 61 6c 6c 20 2d 65 78 61 63 earch -all -exac
3b50: 74 20 2d 6e 6f 63 61 73 65 20 7b 61 20 62 20 63 t -nocase {a b c
3b60: 20 41 20 42 20 43 7d 20 41 0d 0a 2b 7d 20 7b 30 A B C} A..+} {0
3b70: 20 33 7d 0d 0a 2b 74 65 73 74 20 6c 73 65 61 72 3}..+test lsear
3b80: 63 68 2d 31 33 2e 34 20 7b 73 65 61 72 63 68 20 ch-13.4 {search
3b90: 66 6f 72 20 61 6c 6c 20 6d 61 74 63 68 65 73 20 for all matches
3ba0: 77 69 74 68 20 2d 6e 6f 63 61 73 65 7d 20 7b 0d with -nocase} {.
3bb0: 0a 2b 20 20 20 20 6c 73 65 61 72 63 68 20 2d 61 .+ lsearch -a
3bc0: 6c 6c 20 2d 67 6c 6f 62 20 2d 6e 6f 63 61 73 65 ll -glob -nocase
3bd0: 20 7b 61 20 62 20 63 20 41 20 42 20 43 7d 20 41 {a b c A B C} A
3be0: 2a 0d 0a 2b 7d 20 7b 30 20 33 7d 0d 0a 2b 74 65 *..+} {0 3}..+te
3bf0: 73 74 20 6c 73 65 61 72 63 68 2d 31 33 2e 35 20 st lsearch-13.5
3c00: 7b 73 65 61 72 63 68 20 66 6f 72 20 61 6c 6c 20 {search for all
3c10: 6d 61 74 63 68 65 73 20 77 69 74 68 20 2d 6e 6f matches with -no
3c20: 63 61 73 65 7d 20 7b 0d 0a 2b 20 20 20 20 6c 73 case} {..+ ls
3c30: 65 61 72 63 68 20 2d 61 6c 6c 20 2d 72 65 67 65 earch -all -rege
3c40: 78 70 20 2d 6e 6f 63 61 73 65 20 7b 61 20 62 20 xp -nocase {a b
3c50: 63 20 41 20 42 20 43 7d 20 5e 41 5c 24 0d 0a 2b c A B C} ^A\$..+
3c60: 7d 20 7b 30 20 33 7d 0d 0a 20 0d 0a 20 74 65 73 } {0 3}.. .. tes
3c70: 74 20 6c 73 65 61 72 63 68 2d 31 34 2e 31 20 7b t lsearch-14.1 {
3c80: 63 6f 6d 62 69 6e 61 74 69 6f 6e 73 3a 20 2d 61 combinations: -a
3c90: 6c 6c 20 61 6e 64 20 2d 69 6e 6c 69 6e 65 7d 20 ll and -inline}
3ca0: 7b 0d 0a 20 20 20 20 20 6c 73 65 61 72 63 68 20 {.. lsearch
3cb0: 2d 61 6c 6c 20 2d 69 6e 6c 69 6e 65 20 2d 67 6c -all -inline -gl
3cc0: 6f 62 20 7b 61 31 20 62 32 20 61 33 20 63 34 20 ob {a1 b2 a3 c4
3cd0: 61 35 20 64 36 7d 20 61 2a 0d 0a 49 6e 64 65 78 a5 d6} a*..Index
3ce0: 3a 20 74 65 73 74 73 2f 73 77 69 74 63 68 2e 74 : tests/switch.t
3cf0: 65 73 74 0d 0a 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d est..===========
3d00: 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d ================
3d10: 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d ================
3d20: 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d ================
3d30: 3d 3d 3d 3d 3d 3d 3d 3d 0d 0a 52 43 53 20 66 69 ========..RCS fi
3d40: 6c 65 3a 20 2f 63 76 73 72 6f 6f 74 2f 74 63 6c le: /cvsroot/tcl
3d50: 2f 74 63 6c 2f 74 65 73 74 73 2f 73 77 69 74 63 /tcl/tests/switc
3d60: 68 2e 74 65 73 74 2c 76 0d 0a 72 65 74 72 69 65 h.test,v..retrie
3d70: 76 69 6e 67 20 72 65 76 69 73 69 6f 6e 20 31 2e ving revision 1.
3d80: 31 30 0d 0a 64 69 66 66 20 2d 75 20 2d 72 31 2e 10..diff -u -r1.
3d90: 31 30 20 73 77 69 74 63 68 2e 74 65 73 74 0d 0a 10 switch.test..
3da0: 2d 2d 2d 20 74 65 73 74 73 2f 73 77 69 74 63 68 --- tests/switch
3db0: 2e 74 65 73 74 09 31 34 20 44 65 63 20 32 30 30 .test.14 Dec 200
3dc0: 33 20 31 38 3a 33 32 3a 33 36 20 2d 30 30 30 30 3 18:32:36 -0000
3dd0: 09 31 2e 31 30 0d 0a 2b 2b 2b 20 74 65 73 74 73 .1.10..+++ tests
3de0: 2f 73 77 69 74 63 68 2e 74 65 73 74 09 32 20 4d /switch.test.2 M
3df0: 61 72 20 32 30 30 35 20 30 36 3a 33 36 3a 33 39 ar 2005 06:36:39
3e00: 20 2d 30 30 30 30 0d 0a 40 40 20 2d 33 39 2c 36 -0000..@@ -39,6
3e10: 20 2b 33 39 2c 31 38 20 40 40 0d 0a 20 74 65 73 +39,18 @@.. tes
3e20: 74 20 73 77 69 74 63 68 2d 31 2e 37 20 7b 73 69 t switch-1.7 {si
3e30: 6d 70 6c 65 20 70 61 74 74 65 72 6e 73 7d 20 7b mple patterns} {
3e40: 0d 0a 20 20 20 20 20 73 77 69 74 63 68 20 78 20 .. switch x
3e50: 61 20 7b 66 6f 72 6d 61 74 20 31 7d 20 64 65 66 a {format 1} def
3e60: 61 75 6c 74 20 7b 66 6f 72 6d 61 74 20 32 7d 20 ault {format 2}
3e70: 63 20 7b 66 6f 72 6d 61 74 20 33 7d 20 64 65 66 c {format 3} def
3e80: 61 75 6c 74 20 7b 66 6f 72 6d 61 74 20 34 7d 0d ault {format 4}.
3e90: 0a 20 7d 20 34 0d 0a 2b 74 65 73 74 20 73 77 69 . } 4..+test swi
3ea0: 74 63 68 2d 31 2e 38 20 7b 73 69 6d 70 6c 65 20 tch-1.8 {simple
3eb0: 70 61 74 74 65 72 6e 73 20 77 69 74 68 20 2d 6e patterns with -n
3ec0: 6f 63 61 73 65 7d 20 7b 0d 0a 2b 20 20 20 20 73 ocase} {..+ s
3ed0: 77 69 74 63 68 20 2d 6e 6f 63 61 73 65 20 62 20 witch -nocase b
3ee0: 61 20 7b 66 6f 72 6d 61 74 20 31 7d 20 62 20 7b a {format 1} b {
3ef0: 66 6f 72 6d 61 74 20 32 7d 20 63 20 7b 66 6f 72 format 2} c {for
3f00: 6d 61 74 20 33 7d 20 64 65 66 61 75 6c 74 20 7b mat 3} default {
3f10: 66 6f 72 6d 61 74 20 34 7d 0d 0a 2b 7d 20 32 0d format 4}..+} 2.
3f20: 0a 2b 74 65 73 74 20 73 77 69 74 63 68 2d 31 2e .+test switch-1.
3f30: 39 20 7b 73 69 6d 70 6c 65 20 70 61 74 74 65 72 9 {simple patter
3f40: 6e 73 20 77 69 74 68 20 2d 6e 6f 63 61 73 65 7d ns with -nocase}
3f50: 20 7b 0d 0a 2b 20 20 20 20 73 77 69 74 63 68 20 {..+ switch
3f60: 2d 6e 6f 63 61 73 65 20 42 20 61 20 7b 66 6f 72 -nocase B a {for
3f70: 6d 61 74 20 31 7d 20 62 20 7b 66 6f 72 6d 61 74 mat 1} b {format
3f80: 20 32 7d 20 63 20 7b 66 6f 72 6d 61 74 20 33 7d 2} c {format 3}
3f90: 20 64 65 66 61 75 6c 74 20 7b 66 6f 72 6d 61 74 default {format
3fa0: 20 34 7d 0d 0a 2b 7d 20 32 0d 0a 2b 74 65 73 74 4}..+} 2..+test
3fb0: 20 73 77 69 74 63 68 2d 31 2e 31 30 20 7b 73 69 switch-1.10 {si
3fc0: 6d 70 6c 65 20 70 61 74 74 65 72 6e 73 20 77 69 mple patterns wi
3fd0: 74 68 20 2d 6e 6f 63 61 73 65 7d 20 7b 0d 0a 2b th -nocase} {..+
3fe0: 20 20 20 20 73 77 69 74 63 68 20 2d 6e 6f 63 61 switch -noca
3ff0: 73 65 20 62 20 61 20 7b 66 6f 72 6d 61 74 20 31 se b a {format 1
4000: 7d 20 42 20 7b 66 6f 72 6d 61 74 20 32 7d 20 63 } B {format 2} c
4010: 20 7b 66 6f 72 6d 61 74 20 33 7d 20 64 65 66 61 {format 3} defa
4020: 75 6c 74 20 7b 66 6f 72 6d 61 74 20 34 7d 0d 0a ult {format 4}..
4030: 2b 7d 20 32 0d 0a 2b 74 65 73 74 20 73 77 69 74 +} 2..+test swit
4040: 63 68 2d 31 2e 31 31 20 7b 73 69 6d 70 6c 65 20 ch-1.11 {simple
4050: 70 61 74 74 65 72 6e 73 20 77 69 74 68 20 2d 6e patterns with -n
4060: 6f 63 61 73 65 7d 20 7b 0d 0a 2b 20 20 20 20 73 ocase} {..+ s
4070: 77 69 74 63 68 20 2d 6e 6f 63 61 73 65 20 78 20 witch -nocase x
4080: 61 20 7b 66 6f 72 6d 61 74 20 31 7d 20 64 65 66 a {format 1} def
4090: 61 75 6c 74 20 7b 66 6f 72 6d 61 74 20 32 7d 20 ault {format 2}
40a0: 63 20 7b 66 6f 72 6d 61 74 20 33 7d 20 64 65 66 c {format 3} def
40b0: 61 75 6c 74 20 7b 66 6f 72 6d 61 74 20 34 7d 0d ault {format 4}.
40c0: 0a 2b 7d 20 34 0d 0a 20 0d 0a 20 74 65 73 74 20 .+} 4.. .. test
40d0: 73 77 69 74 63 68 2d 32 2e 31 20 7b 73 69 6e 67 switch-2.1 {sing
40e0: 6c 65 2d 61 72 67 75 6d 65 6e 74 20 66 6f 72 6d le-argument form
40f0: 20 66 6f 72 20 70 61 74 74 65 72 6e 2f 63 6f 6d for pattern/com
4100: 6d 61 6e 64 20 70 61 69 72 73 7d 20 7b 0d 0a 20 mand pairs} {..
4110: 20 20 20 20 73 77 69 74 63 68 20 62 20 7b 0d 0a switch b {..
4120: 40 40 20 2d 38 39 2c 37 20 2b 31 30 31 2c 34 33 @@ -89,7 +101,43
4130: 20 40 40 0d 0a 20 7d 20 65 78 61 63 74 0d 0a 20 @@.. } exact..
4140: 74 65 73 74 20 73 77 69 74 63 68 2d 33 2e 36 20 test switch-3.6
4150: 7b 2d 65 78 61 63 74 20 76 73 2e 20 2d 67 6c 6f {-exact vs. -glo
4160: 62 20 76 73 2e 20 2d 72 65 67 65 78 70 7d 20 7b b vs. -regexp} {
4170: 0d 0a 20 20 20 20 20 6c 69 73 74 20 5b 63 61 74 .. list [cat
4180: 63 68 20 7b 73 77 69 74 63 68 20 2d 66 6f 6f 20 ch {switch -foo
4190: 61 20 62 20 63 7d 20 6d 73 67 5d 20 24 6d 73 67 a b c} msg] $msg
41a0: 0d 0a 2d 7d 20 7b 31 20 7b 62 61 64 20 6f 70 74 ..-} {1 {bad opt
41b0: 69 6f 6e 20 22 2d 66 6f 6f 22 3a 20 6d 75 73 74 ion "-foo": must
41c0: 20 62 65 20 2d 65 78 61 63 74 2c 20 2d 67 6c 6f be -exact, -glo
41d0: 62 2c 20 2d 69 6e 64 65 78 76 61 72 2c 20 2d 6d b, -indexvar, -m
41e0: 61 74 63 68 76 61 72 2c 20 2d 72 65 67 65 78 70 atchvar, -regexp
41f0: 2c 20 6f 72 20 2d 2d 7d 7d 0d 0a 2b 7d 20 7b 31 , or --}}..+} {1
4200: 20 7b 62 61 64 20 6f 70 74 69 6f 6e 20 22 2d 66 {bad option "-f
4210: 6f 6f 22 3a 20 6d 75 73 74 20 62 65 20 2d 65 78 oo": must be -ex
4220: 61 63 74 2c 20 2d 67 6c 6f 62 2c 20 2d 69 6e 64 act, -glob, -ind
4230: 65 78 76 61 72 2c 20 2d 6d 61 74 63 68 76 61 72 exvar, -matchvar
4240: 2c 20 2d 6e 6f 63 61 73 65 2c 20 2d 72 65 67 65 , -nocase, -rege
4250: 78 70 2c 20 6f 72 20 2d 2d 7d 7d 0d 0a 2b 74 65 xp, or --}}..+te
4260: 73 74 20 73 77 69 74 63 68 2d 33 2e 37 20 7b 2d st switch-3.7 {-
4270: 65 78 61 63 74 20 76 73 2e 20 2d 67 6c 6f 62 20 exact vs. -glob
4280: 76 73 2e 20 2d 72 65 67 65 78 70 20 77 69 74 68 vs. -regexp with
4290: 20 2d 6e 6f 63 61 73 65 7d 20 7b 0d 0a 2b 20 20 -nocase} {..+
42a0: 20 20 73 77 69 74 63 68 20 2d 65 78 61 63 74 20 switch -exact
42b0: 2d 6e 6f 63 61 73 65 20 61 61 61 61 62 20 7b 0d -nocase aaaab {.
42c0: 0a 2b 09 5e 61 2a 62 24 09 7b 63 6f 6e 63 61 74 .+.^a*b$.{concat
42d0: 20 72 65 67 65 78 70 7d 0d 0a 2b 09 2a 62 09 7b regexp}..+.*b.{
42e0: 63 6f 6e 63 61 74 20 67 6c 6f 62 7d 0d 0a 2b 09 concat glob}..+.
42f0: 61 61 61 61 62 09 7b 63 6f 6e 63 61 74 20 65 78 aaaab.{concat ex
4300: 61 63 74 7d 0d 0a 2b 09 64 65 66 61 75 6c 74 09 act}..+.default.
4310: 7b 63 6f 6e 63 61 74 20 6e 6f 6e 65 7d 0d 0a 2b {concat none}..+
4320: 20 20 20 20 7d 0d 0a 2b 7d 20 65 78 61 63 74 0d }..+} exact.
4330: 0a 2b 74 65 73 74 20 73 77 69 74 63 68 2d 33 2e .+test switch-3.
4340: 38 20 7b 2d 65 78 61 63 74 20 76 73 2e 20 2d 67 8 {-exact vs. -g
4350: 6c 6f 62 20 76 73 2e 20 2d 72 65 67 65 78 70 20 lob vs. -regexp
4360: 77 69 74 68 20 2d 6e 6f 63 61 73 65 7d 20 7b 0d with -nocase} {.
4370: 0a 2b 20 20 20 20 73 77 69 74 63 68 20 2d 72 65 .+ switch -re
4380: 67 65 78 70 20 2d 6e 6f 63 61 73 65 20 61 61 61 gexp -nocase aaa
4390: 61 62 20 7b 0d 0a 2b 09 5e 61 2a 62 24 09 7b 63 ab {..+.^a*b$.{c
43a0: 6f 6e 63 61 74 20 72 65 67 65 78 70 7d 0d 0a 2b oncat regexp}..+
43b0: 09 2a 62 09 7b 63 6f 6e 63 61 74 20 67 6c 6f 62 .*b.{concat glob
43c0: 7d 0d 0a 2b 09 61 61 61 61 62 09 7b 63 6f 6e 63 }..+.aaaab.{conc
43d0: 61 74 20 65 78 61 63 74 7d 0d 0a 2b 09 64 65 66 at exact}..+.def
43e0: 61 75 6c 74 09 7b 63 6f 6e 63 61 74 20 6e 6f 6e ault.{concat non
43f0: 65 7d 0d 0a 2b 20 20 20 20 7d 0d 0a 2b 7d 20 72 e}..+ }..+} r
4400: 65 67 65 78 70 0d 0a 2b 74 65 73 74 20 73 77 69 egexp..+test swi
4410: 74 63 68 2d 33 2e 39 20 7b 2d 65 78 61 63 74 20 tch-3.9 {-exact
4420: 76 73 2e 20 2d 67 6c 6f 62 20 76 73 2e 20 2d 72 vs. -glob vs. -r
4430: 65 67 65 78 70 20 77 69 74 68 20 2d 6e 6f 63 61 egexp with -noca
4440: 73 65 7d 20 7b 0d 0a 2b 20 20 20 20 73 77 69 74 se} {..+ swit
4450: 63 68 20 2d 67 6c 6f 62 20 2d 6e 6f 63 61 73 65 ch -glob -nocase
4460: 20 61 61 61 61 62 20 7b 0d 0a 2b 09 5e 61 2a 62 aaaab {..+.^a*b
4470: 24 09 7b 63 6f 6e 63 61 74 20 72 65 67 65 78 70 $.{concat regexp
4480: 7d 0d 0a 2b 09 2a 62 09 7b 63 6f 6e 63 61 74 20 }..+.*b.{concat
4490: 67 6c 6f 62 7d 0d 0a 2b 09 61 61 61 61 62 09 7b glob}..+.aaaab.{
44a0: 63 6f 6e 63 61 74 20 65 78 61 63 74 7d 0d 0a 2b concat exact}..+
44b0: 09 64 65 66 61 75 6c 74 09 7b 63 6f 6e 63 61 74 .default.{concat
44c0: 20 6e 6f 6e 65 7d 0d 0a 2b 20 20 20 20 7d 0d 0a none}..+ }..
44d0: 2b 7d 20 67 6c 6f 62 0d 0a 2b 74 65 73 74 20 73 +} glob..+test s
44e0: 77 69 74 63 68 2d 33 2e 31 30 20 7b 2d 65 78 61 witch-3.10 {-exa
44f0: 63 74 20 76 73 2e 20 2d 67 6c 6f 62 20 76 73 2e ct vs. -glob vs.
4500: 20 2d 72 65 67 65 78 70 20 77 69 74 68 20 2d 6e -regexp with -n
4510: 6f 63 61 73 65 7d 20 7b 0d 0a 2b 20 20 20 20 73 ocase} {..+ s
4520: 77 69 74 63 68 20 2d 6e 6f 63 61 73 65 20 61 61 witch -nocase aa
4530: 61 61 62 20 7b 5e 61 2a 62 24 7d 20 7b 63 6f 6e aab {^a*b$} {con
4540: 63 61 74 20 72 65 67 65 78 70 7d 20 2a 62 20 7b cat regexp} *b {
4550: 63 6f 6e 63 61 74 20 67 6c 6f 62 7d 20 5c 0d 0a concat glob} \..
4560: 2b 09 20 20 20 20 61 61 61 61 62 20 7b 63 6f 6e +. aaaab {con
4570: 63 61 74 20 65 78 61 63 74 7d 20 64 65 66 61 75 cat exact} defau
4580: 6c 74 20 7b 63 6f 6e 63 61 74 20 6e 6f 6e 65 7d lt {concat none}
4590: 0d 0a 2b 7d 20 65 78 61 63 74 0d 0a 2b 74 65 73 ..+} exact..+tes
45a0: 74 20 73 77 69 74 63 68 2d 33 2e 31 31 20 7b 2d t switch-3.11 {-
45b0: 65 78 61 63 74 20 76 73 2e 20 2d 67 6c 6f 62 20 exact vs. -glob
45c0: 76 73 2e 20 2d 72 65 67 65 78 70 20 77 69 74 68 vs. -regexp with
45d0: 20 2d 6e 6f 63 61 73 65 7d 20 7b 0d 0a 2b 20 20 -nocase} {..+
45e0: 20 20 73 77 69 74 63 68 20 2d 6e 6f 63 61 73 65 switch -nocase
45f0: 20 2d 2d 20 2d 67 6c 6f 62 20 7b 0d 0a 2b 09 5e -- -glob {..+.^
4600: 67 2e 2a 62 24 09 7b 63 6f 6e 63 61 74 20 72 65 g.*b$.{concat re
4610: 67 65 78 70 7d 0d 0a 2b 09 2d 2a 09 7b 63 6f 6e gexp}..+.-*.{con
4620: 63 61 74 20 67 6c 6f 62 7d 0d 0a 2b 09 2d 67 6c cat glob}..+.-gl
4630: 6f 62 09 7b 63 6f 6e 63 61 74 20 65 78 61 63 74 ob.{concat exact
4640: 7d 0d 0a 2b 09 64 65 66 61 75 6c 74 20 7b 63 6f }..+.default {co
4650: 6e 63 61 74 20 6e 6f 6e 65 7d 0d 0a 2b 20 20 20 ncat none}..+
4660: 20 7d 0d 0a 2b 7d 20 65 78 61 63 74 0d 0a 20 0d }..+} exact.. .
4670: 0a 20 74 65 73 74 20 73 77 69 74 63 68 2d 34 2e . test switch-4.
4680: 31 20 7b 65 72 72 6f 72 20 69 6e 20 65 78 65 63 1 {error in exec
4690: 75 74 65 64 20 63 6f 6d 6d 61 6e 64 7d 20 7b 0d uted command} {.
46a0: 0a 20 20 20 20 20 6c 69 73 74 20 5b 63 61 74 63 . list [catc
46b0: 68 20 7b 73 77 69 74 63 68 20 61 20 61 20 7b 65 h {switch a a {e
46c0: 72 72 6f 72 20 22 4a 75 73 74 20 61 20 74 65 73 rror "Just a tes
46d0: 74 22 7d 20 64 65 66 61 75 6c 74 20 7b 66 6f 72 t"} default {for
46e0: 6d 61 74 20 31 7d 7d 20 6d 73 67 5d 20 5c 0d 0a mat 1}} msg] \..
46f0: 49 6e 64 65 78 3a 20 77 69 6e 2f 74 63 6c 57 69 Index: win/tclWi
4700: 6e 50 6f 72 74 2e 68 0d 0a 3d 3d 3d 3d 3d 3d 3d nPort.h..=======
4710: 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d ================
4720: 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d ================
4730: 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d ================
4740: 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 0d 0a 52 43 ============..RC
4750: 53 20 66 69 6c 65 3a 20 2f 63 76 73 72 6f 6f 74 S file: /cvsroot
4760: 2f 74 63 6c 2f 74 63 6c 2f 77 69 6e 2f 74 63 6c /tcl/tcl/win/tcl
4770: 57 69 6e 50 6f 72 74 2e 68 2c 76 0d 0a 72 65 74 WinPort.h,v..ret
4780: 72 69 65 76 69 6e 67 20 72 65 76 69 73 69 6f 6e rieving revision
4790: 20 31 2e 34 33 0d 0a 64 69 66 66 20 2d 75 20 2d 1.43..diff -u -
47a0: 72 31 2e 34 33 20 74 63 6c 57 69 6e 50 6f 72 74 r1.43 tclWinPort
47b0: 2e 68 0d 0a 2d 2d 2d 20 77 69 6e 2f 74 63 6c 57 .h..--- win/tclW
47c0: 69 6e 50 6f 72 74 2e 68 09 33 20 4e 6f 76 20 32 inPort.h.3 Nov 2
47d0: 30 30 34 20 32 31 3a 30 37 3a 30 31 20 2d 30 30 004 21:07:01 -00
47e0: 30 30 09 31 2e 34 33 0d 0a 2b 2b 2b 20 77 69 6e 00.1.43..+++ win
47f0: 2f 74 63 6c 57 69 6e 50 6f 72 74 2e 68 09 32 20 /tclWinPort.h.2
4800: 4d 61 72 20 32 30 30 35 20 30 36 3a 33 36 3a 34 Mar 2005 06:36:4
4810: 30 20 2d 30 30 30 30 0d 0a 40 40 20 2d 34 35 2c 0 -0000..@@ -45,
4820: 36 20 2b 34 35 2c 31 33 20 40 40 0d 0a 20 23 69 6 +45,13 @@.. #i
4830: 6e 63 6c 75 64 65 20 3c 73 74 72 69 6e 67 2e 68 nclude <string.h
4840: 3e 0d 0a 20 0d 0a 20 2f 2a 0d 0a 2b 20 2a 20 54 >.. .. /*..+ * T
4850: 68 65 73 65 20 73 74 72 69 6e 67 20 66 75 6e 63 hese string func
4860: 74 69 6f 6e 73 20 61 72 65 20 6e 6f 74 20 64 65 tions are not de
4870: 66 69 6e 65 64 20 77 69 74 68 20 74 68 65 20 73 fined with the s
4880: 61 6d 65 20 6e 61 6d 65 73 20 6f 6e 20 57 69 6e ame names on Win
4890: 64 6f 77 73 2e 0d 0a 2b 20 2a 2f 0d 0a 2b 0d 0a dows...+ */..+..
48a0: 2b 23 64 65 66 69 6e 65 20 73 74 72 63 61 73 65 +#define strcase
48b0: 63 6d 70 20 73 74 72 69 63 6d 70 0d 0a 2b 23 64 cmp stricmp..+#d
48c0: 65 66 69 6e 65 20 73 74 72 6e 63 61 73 65 63 6d efine strncasecm
48d0: 70 20 73 74 72 6e 69 63 6d 70 0d 0a 2b 0d 0a 2b p strnicmp..+..+
48e0: 2f 2a 0d 0a 20 20 2a 20 4e 65 65 64 20 74 6f 20 /*.. * Need to
48f0: 62 6c 6f 63 6b 20 6f 75 74 20 74 68 65 73 65 20 block out these
4900: 69 6e 63 6c 75 64 65 73 20 66 6f 72 20 62 75 69 includes for bui
4910: 6c 64 69 6e 67 20 65 78 74 65 6e 73 69 6f 6e 73 lding extensions
4920: 20 77 69 74 68 20 4d 65 74 72 6f 57 65 72 6b 73 with MetroWerks
4930: 0d 0a 20 20 2a 20 63 6f 6d 70 69 6c 65 72 20 66 .. * compiler f
4940: 6f 72 20 57 69 6e 33 32 2e 0d 0a 20 20 2a 2f 0d or Win32... */.
4950: 0a .