summaryrefslogtreecommitdiffstats
path: root/Mac/Resources/tkpython.rsrc
blob: 3a8a9c04f2a67b13def7e5801dba6b8ecd62c06a (plain)
ofshex dumpascii
0000 00 05 16 00 00 02 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 03 00 00 00 09 00 00 ................................
0020 00 3e 00 00 00 20 00 00 00 0a 00 00 00 5e 00 00 00 04 00 00 00 02 00 00 00 62 00 04 5b c1 72 73 .>...........^...........b..[.rs
0040 72 63 52 53 45 44 01 00 00 75 00 b9 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 rcRSED...u......................
0060 00 02 00 00 01 00 00 04 50 6f 00 04 4f 6f 00 00 0b 52 da 79 01 6f 08 20 12 01 60 2e 3b e5 01 00 ........Po..Oo...R.y.o....`.;...
0080 3c e5 d1 e5 01 00 34 13 a9 8b 42 67 1f 3c a3 e5 b5 5d 0d 74 6b 70 79 74 68 6f 6e 2e 72 73 72 63 <.....4...Bg.<...].tkpython.rsrc
00a0 2e 63 72 63 70 6f 6f 6c 65 72 74 41 44 20 4d 45 72 6c 00 00 72 73 72 63 52 53 45 44 00 00 00 00 .crcpoolertAD.MErl..rsrcRSED....
00c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 b2 63 74 a9 00 00 00 00 00 03 b0 30 .....................ct........0
00e0 bb 01 7e 7f 18 3d 47 00 0a 2e 1f 4e 5e 20 5f 54 4f 4e d0 4e 56 93 90 20 1d 01 3e 28 6f 01 10 2e ..~..=G....N^._TON.NV.....>(o...
0100 4d 04 67 1a 70 42 b0 47 6c 10 e0 78 02 81 fc 00 42 ef 05 cf fc 00 42 60 5c 7e 42 60 58 e1 50 01 M.g.pB.Gl..x....B.....B`\~B`X.P.
0120 09 5a e0 01 90 5f 56 e1 50 01 0a 42 12 32 1f 20 1f 78 01 81 c1 ef 29 01 6f 1c e1 50 03 0a 42 30 .Z..._V.P..B.2...x....).o..P..B0
0140 1f e5 40 56 e1 50 15 09 5a 32 1f 20 1f 3e 01 de 40 01 60 1a e1 50 01 0a 42 e0 01 c1 df 56 e1 50 ..@V.P..Z2...>..@.`..P..B....V.P
0160 20 21 00 00 00 21 00 a8 00 14 00 bb 01 2c 00 00 01 00 00 50 00 84 03 f0 00 00 00 00 0a 46 69 6c .!...!.......,.....P.........Fil
0180 65 20 54 79 70 65 3a 00 00 00 f2 80 01 00 00 00 60 00 00 00 92 00 00 00 00 00 00 00 00 00 00 01 e.Type:.........`...............
01a0 80 1a 70 26 48 26 4a 12 4d 12 49 68 09 98 01 88 02 40 02 20 02 20 04 10 04 08 08 04 08 04 08 01 ..p&H&J.M.Ih.....@..............
01c0 80 1b f0 3f f8 3f fa 1f ff 1f ff 6f ff ff ff ff fe 7f fe 3f fe 3f fc 1f fc 0f f8 07 f8 07 f8 00 ...?.?.....o.......?.?..........
01e0 08 00 08 00 00 00 00 00 00 00 00 00 00 00 00 80 04 00 00 00 00 00 10 00 10 00 00 00 00 00 00 00 ................................
0200 00 00 48 00 00 00 48 00 00 00 00 00 02 00 01 00 02 00 00 00 00 00 00 00 d2 00 00 00 00 00 03 c0 ..H...H.........................
0220 00 03 cd 7f 00 0d 7d 75 c0 0d 7d 75 cc 03 5d 75 f7 03 5d 75 d7 3c d5 55 d7 d7 d5 55 57 d5 d5 55 ......}u..}u..]u..]u.<.U...UW..U
0240 5c 35 55 55 5c 0d 55 55 5c 0d 55 55 70 03 55 55 70 00 d5 55 c0 00 35 55 c0 00 35 55 c0 00 00 00 \5UU\.UU\.UUp.UUp..U..5U..5U....
0260 00 00 00 00 02 00 00 ff ff ff ff ff ff 00 01 ff ff cc cc 99 99 00 03 00 00 00 00 00 00 00 00 00 ................................
0280 f2 80 01 00 00 00 60 00 00 00 92 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 0d b0 12 ......`.........................
02a0 4c 10 0a 08 02 18 02 20 02 20 02 20 04 10 04 08 08 04 08 04 08 00 00 00 00 00 00 00 00 0d b0 1f L...............................
02c0 fc 1f fe 0f fe 1f fe 3f fe 3f fe 3f fc 1f fc 0f f8 07 f8 07 f8 00 08 00 08 00 00 00 00 00 00 00 .......?.?.?....................
02e0 00 00 00 00 00 80 04 00 00 00 00 00 10 00 10 00 00 00 00 00 00 00 00 00 48 00 00 00 48 00 00 00 ........................H...H...
0300 00 00 02 00 01 00 02 00 00 00 00 00 00 00 d2 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
0320 00 00 00 00 f3 cf 00 03 5d 75 f0 03 55 55 dc 00 d5 55 5c 03 d5 55 5c 0d 55 55 5c 0d 55 55 5c 0d ........]u..UU...U\..U\.UU\.UU\.
0340 55 55 70 03 55 55 70 00 d5 55 c0 00 35 55 c0 00 35 55 c0 00 00 00 00 00 00 00 02 00 00 ff ff ff UUp.UUp..U..5U..5U..............
0360 ff ff ff 00 01 ff ff cc cc 99 99 00 03 00 00 00 00 00 00 00 00 01 5a 80 01 00 00 00 60 00 00 00 ......................Z.....`...
0380 92 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 01 00 03 c0 84 60 ff ff 00 18 00 20 00 ........................`.......
03a0 40 ff c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 01 00 03 c0 87 e0 ff ff ff f8 ff e0 ff @...............................
03c0 c0 ff c0 00 00 00 00 00 00 00 00 00 07 00 0f 00 00 00 00 00 00 00 00 00 00 00 00 80 08 00 00 00 ................................
03e0 00 00 10 00 10 00 00 00 00 00 00 00 00 00 48 00 00 00 48 00 00 00 00 00 04 00 01 00 04 00 00 00 ..............H...H.............
0400 00 00 00 01 12 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
0420 00 00 00 00 00 00 00 00 00 00 00 00 0f 00 00 00 00 00 00 00 ff ff 00 00 00 f0 00 0f 32 25 f0 00 ............................2%..
0440 00 6f ff ff ff ff ff ff ff 22 22 22 22 22 1f f0 00 22 22 22 22 21 f0 00 00 33 33 33 33 4f 00 00 .o......."""""...""""!...3333O..
0460 00 ff ff ff ff ff 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
0480 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 07 00 00 ff ff ff ff ff ff 00 01 bb bb bb bb bb ................................
04a0 bb 00 02 ee ee ee ee ee ee 00 03 dd dd dd dd dd dd 00 04 cc cc cc cc cc cc 00 05 44 44 44 44 44 ...........................DDDDD
04c0 44 00 06 11 11 11 11 11 11 00 0f 00 00 00 00 00 00 00 00 01 5a 80 01 00 00 00 60 00 00 00 92 00 D...................Z.....`.....
04e0 00 00 00 00 00 00 00 00 00 1f f8 33 cc 64 66 49 92 4f 12 44 22 63 c6 3f fc 29 94 29 94 29 94 2b ...........3.dfI.O.D"c.?.).).).+
0500 d4 69 96 78 1e 7f fe 7f fe 1f f8 3f fc 7f fe 7f fe 7f fe 7f fe 7f fe 3f fc 3f fc 3f fc 3f fc 3f .i.x.......?...........?.?.?.?.?
0520 fc 7f fe 7f fe 7f fe 7f fe 00 04 00 08 00 00 00 00 00 00 00 00 00 00 00 00 80 08 00 00 00 00 00 ................................
0540 10 00 10 00 00 00 00 00 00 00 00 00 48 00 00 00 48 00 00 00 00 00 04 00 01 00 04 00 00 00 00 00 ............H...H...............
0560 00 01 12 00 00 00 00 00 0f ff ff ff ff f0 00 00 f6 05 ff ff 50 6f 00 0f 60 5f 00 56 f5 06 f0 0f ....................Po..`_.V....
0580 00 f0 21 f3 0f 00 f0 0f 00 f6 f1 00 0f 00 f0 0f 00 5f 00 00 f5 00 f0 0f 60 05 ff ff 50 06 f0 00 ..!.............._......`...P...
05a0 ff ff ff ff ff ff 00 00 f0 f0 01 10 0f 0f 00 00 f0 f0 01 10 0f 0f 00 00 f0 f0 21 12 0f 0f 00 00 ..........................!.....
05c0 f0 f0 1f f1 0f 0f 00 0f f0 f0 21 12 0f 0f f0 0f f4 f5 00 00 5f 4f f0 0f ff ff ff ff ff ff f0 0f ..........!........._O..........
05e0 ff ff ff ff ff ff f0 00 00 00 00 00 00 00 07 00 00 ff ff ff ff ff ff 00 01 44 44 44 44 44 44 00 .........................DDDDDD.
0600 02 aa aa aa aa aa aa 00 03 ee ee ee ee ee ee 00 04 55 55 55 55 55 55 00 05 dd dd dd dd dd dd 00 .................UUUUUU.........
0620 06 77 77 77 77 77 77 00 0f 00 00 00 00 00 00 00 00 01 52 80 01 00 00 00 60 00 00 00 92 00 00 00 .wwwwww...........R.....`.......
0640 00 00 00 00 00 00 00 03 f8 0c 06 10 01 1c 07 33 f9 70 01 d0 01 90 01 96 0d da 55 7a 55 36 ed 10 ...............3.p........UzU6..
0660 a1 10 01 08 02 07 fc 03 f8 0f fe 1f ff 1f ff 3f ff 7f ff ff ff ff ff ff ff ff ff 7f ff 3f ff 1f ...............?.............?..
0680 ff 1f ff 0f fe 07 fc 00 04 00 03 00 00 00 00 00 00 00 00 00 00 00 00 80 08 00 00 00 00 00 10 00 ................................
06a0 10 00 00 00 00 00 00 00 00 00 48 00 00 00 48 00 00 00 00 00 04 00 01 00 04 00 00 00 00 00 00 01 ..........H...H.................
06c0 12 00 00 00 00 00 00 00 ff ff ff f0 00 00 00 ff 42 22 22 4f f0 00 0f 42 21 11 11 22 4f 00 0f ff ................B""O...B!.."O...
06e0 11 11 11 1f ff 00 ff 24 ff ff ff f4 2f 0f 5f 22 22 22 22 22 2f f5 2f 22 22 22 22 22 2f f4 0f 22 .......$..../._"""""/./"""""/.."
0700 22 22 22 22 2f f4 0f 4f f2 22 24 ff 2f f5 2f f2 f2 2f 2f 2f 2f 0f 5f f2 f2 53 5f 2f 2f 00 ff 4f """"/..O."$././..////._..S_//..O
0720 f2 f3 f4 ff 2f 00 0f 22 22 f2 f2 22 2f 00 0f 42 22 22 22 22 4f 00 00 f4 22 22 22 24 f0 00 00 0f ..../.."".."/..B""""O..."""$....
0740 ff ff ff ff 00 00 00 00 00 00 00 00 06 00 00 ff ff ff ff ff ff 00 01 cc cc 99 99 66 66 00 02 cc ...........................ff...
0760 cc cc cc ff ff 00 03 33 33 33 33 66 66 00 04 99 99 99 99 ff ff 00 05 66 66 66 66 cc cc 00 0f 00 .......3333ff..........ffff.....
0780 00 00 00 00 00 00 00 01 52 80 01 00 00 00 60 00 00 00 92 00 00 00 00 00 00 00 00 00 00 00 00 00 ........R.....`.................
07a0 78 00 70 40 36 4f b0 7f f0 7e 30 7c 30 30 38 00 f0 0f e0 04 00 04 00 04 00 0f 00 00 00 00 fc 00 x.p@6O...~0|008.................
07c0 fc e0 ff ff ff ff ff ff f8 ff f8 ff f8 ff fc 7f fc 3f f8 1f f0 0e 00 1f 80 1f 80 1f 80 00 03 00 .................?..............
07e0 0e 00 00 00 00 00 00 00 00 00 00 00 00 80 08 00 00 00 00 00 10 00 10 00 00 00 00 00 00 00 00 00 ................................
0800 48 00 00 00 48 00 00 00 00 00 04 00 01 00 04 00 00 00 00 00 00 01 12 00 00 00 00 00 00 00 00 00 H...H...........................
0820 00 00 00 00 00 00 00 02 22 20 00 00 00 00 00 01 11 00 00 03 00 00 00 00 11 02 20 01 00 16 16 10 ........".......................
0840 11 00 00 03 61 61 11 11 11 00 00 01 11 11 14 44 15 00 00 03 11 11 44 44 51 00 00 00 11 44 44 44 ....aa.........D......DDQ....DDD
0860 15 10 00 00 04 44 44 51 51 00 00 00 00 15 15 15 10 00 00 00 00 02 00 00 00 00 00 00 00 03 00 00 .....DDQQ.......................
0880 00 00 00 00 00 02 00 00 00 00 00 00 00 23 23 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 .............##.................
08a0 00 00 06 00 00 ff ff ff ff ff ff 00 01 cc cc 99 99 66 66 00 02 dd dd 00 00 00 00 00 03 ff ff 66 .................ff............f
08c0 66 33 33 00 04 cc cc cc cc cc cc 00 05 88 88 88 88 88 88 00 06 ff ff cc cc 99 99 00 00 01 4a 80 f33...........................J.
08e0 01 00 00 00 60 00 00 00 92 00 00 00 00 00 00 00 00 00 00 3f 00 10 c0 c8 20 ea a0 c8 20 cb a0 f8 ....`..............?............
0900 38 38 3e 08 26 08 26 09 2e 09 26 09 20 11 10 21 08 3e f8 3f 00 1f c0 cf e0 ef e0 cf e0 cf e0 ff 88>.&.&...&....!.>.?............
0920 f8 3f fe 0f e6 0f e6 0f ee 0f e6 0f e0 1f f0 3f f8 3e f8 00 00 00 02 00 00 00 00 00 00 00 00 00 .?.............?.>..............
0940 00 00 00 80 08 00 00 00 00 00 10 00 10 00 00 00 00 00 00 00 00 00 48 00 00 00 48 00 00 00 00 00 ......................H...H.....
0960 04 00 01 00 04 00 00 00 00 00 00 01 12 00 00 00 00 00 ff ff ff 00 00 00 00 00 0f 12 12 ff 00 00 ................................
0980 00 ff 00 f1 31 31 f0 00 00 ff f0 f3 f3 f3 f0 00 00 ff 00 f1 31 31 f0 00 00 ff 00 f2 ff f2 f0 00 ....11..............11..........
09a0 00 4f ff f1 21 21 ff f0 00 00 ff f2 12 12 ff ff 40 00 00 f1 21 21 f0 0f f0 00 00 f2 12 12 f0 0f .O..!!..........@...!!..........
09c0 f0 00 00 f1 2f 21 f0 ff f0 00 00 f2 1f 12 f0 0f f0 00 00 f1 2f 21 f0 00 00 00 0f 12 1f 12 1f 00 ..../!............../!..........
09e0 00 00 f1 21 2f 21 21 f0 00 00 ff ff f0 ff ff f0 00 00 00 00 00 00 00 00 05 00 00 ff ff ff ff ff ...!/!!.........................
0a00 ff 00 01 00 00 bb bb 00 00 00 02 cc cc cc cc cc cc 00 03 aa aa aa aa aa aa 00 04 44 44 44 44 44 ...........................DDDDD
0a20 44 00 0f 00 00 00 00 00 00 00 00 00 fa 80 01 00 00 00 60 00 00 00 92 00 00 00 00 00 00 00 00 00 D.................`.............
0a40 00 00 00 3e f8 63 8c c1 06 80 02 80 02 80 02 80 02 c0 06 60 0c 30 18 18 30 0c 60 06 c0 03 80 00 ...>.c.............`.0..0.`.....
0a60 00 00 00 3e f8 7f fc ff fe ff fe ff fe ff fe ff fe ff fe 7f fc 3f f8 1f f0 0f e0 07 c0 03 80 00 ...>.................?..........
0a80 00 00 03 00 07 00 00 00 00 00 00 00 00 00 00 00 00 80 04 00 00 00 00 00 10 00 10 00 00 00 00 00 ................................
0aa0 00 00 00 00 48 00 00 00 48 00 00 00 00 00 02 00 01 00 02 00 00 00 00 00 00 00 d2 00 00 00 00 00 ....H...H.......................
0ac0 00 00 00 0f fc ff c0 3a ab aa 70 e9 9b 99 9c e6 65 a6 5c e9 99 99 9c e6 66 66 5c e9 99 99 9c d6 .......:..p.....e.\.....ff\.....
0ae0 66 66 5c 35 99 99 70 0d 66 65 c0 03 59 97 00 00 d6 5c 00 00 35 70 00 00 0f c0 00 00 00 00 00 00 ff\5..p.fe..Y....\..5p..........
0b00 00 00 00 00 00 00 03 00 00 ff ff ff ff ff ff 00 01 dd dd 00 00 00 00 00 02 ff ff 66 66 cc cc 00 ...........................ff...
0b20 03 00 00 00 00 00 00 00 00 01 7a 80 01 00 00 00 60 00 00 00 92 00 00 00 00 00 00 00 00 00 00 be ..........z.....`...............
0b40 00 01 00 01 80 0f f0 10 08 17 e8 14 28 14 28 17 e8 10 08 10 08 10 08 10 08 10 08 10 08 0f f0 fe ............(.(.................
0b60 00 01 00 01 80 0f f0 1f f8 1f f8 1f f8 1f f8 1f f8 1f f8 1f f8 1f f8 1f f8 1f f8 1f f8 0f f0 00 ................................
0b80 01 00 07 00 00 00 00 00 00 00 00 00 00 00 00 80 08 00 00 00 00 00 10 00 10 00 00 00 00 00 00 00 ................................
0ba0 00 00 48 00 00 00 48 00 00 00 00 00 04 00 01 00 04 00 00 00 00 00 00 01 12 00 00 00 00 13 79 4a ..H...H.......................yJ
0bc0 f0 00 00 00 00 00 00 00 0f 00 00 00 00 00 00 00 0f f0 00 00 00 00 00 ff ff ff ff 00 00 00 0f 21 ...............................!
0be0 11 11 12 f0 00 00 0f 36 55 55 63 f0 00 00 0f 35 13 13 51 f0 00 00 0f 35 33 33 51 f0 00 00 0f 36 .......6UUc....5..Q....533Q....6
0c00 55 55 61 f0 00 00 0f 33 11 11 11 f0 00 00 0f 33 33 33 33 f0 00 00 0f 33 33 33 33 f0 00 00 0f 22 UUa....3.......3333....3333...."
0c20 22 22 22 f0 00 00 0f 88 88 88 88 f0 00 00 0f 78 88 88 87 f0 00 00 00 ff ff ff ff 00 00 00 00 00 """............x................
0c40 00 00 00 00 0b 00 00 ff ff ff ff ff ff 00 01 ee ee ee ee ee ee 00 02 cc cc cc cc cc cc 00 03 dd ................................
0c60 dd dd dd dd dd 00 04 44 44 44 44 44 44 00 05 22 22 22 22 22 22 00 06 55 55 55 55 55 55 00 07 aa .......DDDDDD..""""""..UUUUUU...
0c80 aa aa aa aa aa 00 08 bb bb bb bb bb bb 00 09 77 77 77 77 77 77 00 0a 11 11 11 11 11 11 00 0f 00 ...............wwwwww...........
0ca0 00 00 00 00 00 00 00 01 52 80 01 00 00 00 60 00 00 00 92 00 00 00 00 00 00 00 00 00 00 00 00 00 ........R.....`.................
0cc0 f0 00 88 01 08 01 90 02 70 02 20 04 40 04 40 08 80 08 80 11 00 1e 00 1c 00 18 00 10 00 00 00 00 ........p...@.@.................
0ce0 f0 00 f8 01 f8 01 f0 03 f0 03 e0 07 c0 07 c0 0f 80 0f 80 1f 00 1e 00 1c 00 18 00 10 00 00 0f 00 ................................
0d00 03 00 00 00 00 00 00 00 00 00 00 00 00 80 08 00 00 00 00 00 10 00 10 00 00 00 00 00 00 00 00 00 ................................
0d20 48 00 00 00 48 00 00 00 00 00 04 00 01 00 04 00 00 00 00 00 00 01 12 00 00 00 00 00 00 00 00 00 H...H...........................
0d40 00 00 00 00 00 00 00 ff ff 00 00 00 00 00 00 f4 04 f0 00 00 00 00 0f 40 42 f0 00 00 00 00 0f f4 .......................@B.......
0d60 2f 00 00 00 00 00 f5 3f ff 00 00 00 00 00 f3 52 f0 00 00 00 00 0f 35 1f 00 00 00 00 00 0f 53 2f /......?.......R......5.......S/
0d80 00 00 00 00 00 f5 32 f0 00 00 00 00 00 f3 12 f0 00 00 00 00 0f 35 2f 00 00 00 00 00 0f ff f0 00 ......2..............5/.........
0da0 00 00 00 00 0f ff 00 00 00 00 00 00 0f f0 00 00 00 00 00 00 0f 00 00 00 00 00 00 00 00 00 00 00 ................................
0dc0 00 00 06 00 00 ff ff ff ff ff ff 00 01 cc cc cc cc cc cc 00 02 88 88 88 88 88 88 00 03 ff ff ff ................................
0de0 ff 00 00 00 04 dd dd 00 00 00 00 00 05 ff ff 66 66 33 33 00 0f 00 00 00 00 00 00 00 00 01 52 80 ...............ff33...........R.
0e00 01 00 00 00 60 00 00 00 92 00 00 00 00 00 00 00 00 00 00 00 20 00 70 00 f8 01 de 05 de 09 de 11 ....`.................p.........
0e20 de 11 de 11 de 11 de 31 de 71 de fd de 18 88 00 78 00 30 00 20 00 70 00 f8 01 fe 07 fe 0f fe 1f .......1.q......x.0...p.........
0e40 fe 1f fe 1f fe 1f fe 3f fe 7f fe ff fe 18 f8 00 78 00 30 00 00 00 0a 00 00 00 00 00 00 00 00 00 .......?........x.0.............
0e60 00 00 00 80 08 00 00 00 00 00 10 00 10 00 00 00 00 00 00 00 00 00 48 00 00 00 48 00 00 00 00 00 ......................H...H.....
0e80 04 00 01 00 04 00 00 00 00 00 00 01 12 00 00 00 00 00 00 00 00 00 f0 00 00 00 00 00 00 0f 3f 00 ..............................?.
0ea0 00 00 00 00 00 f3 43 f0 00 00 00 00 0f 34 04 3f f0 00 00 0f 4f 34 04 3f f0 00 00 f5 5f 34 04 3f ......C......4.?....O4.?...._4.?
0ec0 f0 00 0f 50 5f 34 04 3f f0 00 0f 00 5f 34 04 3f f0 00 0f 00 5f 34 04 3f f0 00 0f 00 5f 34 04 3f ...P_4.?...._4.?...._4.?...._4.?
0ee0 f0 00 f3 00 5f 34 04 3f f0 0f 33 50 5f 34 04 3f f0 ff f3 3f 4f 34 04 3f f0 00 0f f0 00 12 22 10 ...._4.?..3P_4.?...?O4.?......".
0f00 00 00 00 00 00 01 11 10 00 00 00 00 00 00 11 00 00 00 00 00 00 00 00 00 06 00 00 ff ff ff ff ff ................................
0f20 ff 00 01 ff ff 66 66 33 33 00 02 dd dd 00 00 00 00 00 03 44 44 44 44 44 44 00 04 88 88 88 88 88 .....ff33..........DDDDDD.......
0f40 88 00 05 dd dd dd dd dd dd 00 0f 00 00 00 00 00 00 00 00 01 7a 80 01 00 00 00 60 00 00 00 92 00 ....................z.....`.....
0f60 00 00 00 00 00 00 00 00 00 00 18 00 40 0d 18 1e 40 1a 18 3f 00 21 00 39 00 29 00 39 00 29 00 39 ............@...@..?.!.9.).9.).9
0f80 00 39 00 21 00 21 00 3f 00 00 00 00 00 0c 00 1e 00 1e 00 3f 00 3f 00 3f 00 3f 00 3f 00 3f 00 3f .9.!.!.?...........?.?.?.?.?.?.?
0fa0 00 3f 00 3f 00 3f 00 3f 00 00 02 00 07 00 00 00 00 00 00 00 00 00 00 00 00 80 08 00 00 00 00 00 .?.?.?.?........................
0fc0 10 00 10 00 00 00 00 00 00 00 00 00 48 00 00 00 48 00 00 00 00 00 04 00 01 00 04 00 00 00 00 00 ............H...H...............
0fe0 00 01 12 00 00 00 00 00 00 00 00 00 05 20 00 00 00 00 00 04 60 00 00 00 00 ff 1f 60 05 20 00 00 ....................`......`....
1000 0f 33 f0 04 60 00 00 00 0f 10 f0 00 05 20 00 00 ff ff ff 00 00 00 00 00 f8 17 0f 00 00 00 00 00 .3..`...........................
1020 f5 f7 0f 00 00 00 00 00 fa f7 0f 00 00 00 00 00 f9 f7 0f 00 00 00 00 00 fa f7 0f 00 00 00 00 00 ................................
1040 f9 f7 0f 00 00 00 00 00 f5 f7 0f 00 00 00 00 00 f8 17 0f 00 00 00 00 00 f8 17 0f 00 00 00 00 00 ................................
1060 ff ff ff 00 00 00 00 00 00 00 00 00 00 00 0b 00 00 ff ff ff ff ff ff 00 01 aa aa aa aa aa aa 00 ................................
1080 02 77 77 77 77 77 77 00 03 55 55 55 55 55 55 00 04 22 22 22 22 22 22 00 05 44 44 44 44 44 44 00 .wwwwww..UUUUUU..""""""..DDDDDD.
10a0 06 bb bb bb bb bb bb 00 07 dd dd dd dd dd dd 00 08 ee ee ee ee ee ee 00 09 66 66 66 66 cc cc 00 .........................ffff...
10c0 0a cc cc cc cc ff ff 00 0f 00 00 00 00 00 00 00 00 00 f2 80 01 00 00 00 60 00 00 00 92 00 00 00 ........................`.......
10e0 00 00 00 00 00 00 00 01 00 02 80 02 80 02 80 04 40 04 40 04 40 39 38 c0 06 38 38 09 20 12 90 24 ................@.@.@98..88....$
1100 48 28 28 30 18 20 08 01 00 03 80 03 80 03 80 07 c0 07 c0 07 c0 3f f8 ff fe 3f f8 0f e0 1e f0 3c H((0.................?...?.....<
1120 78 38 38 30 18 20 08 00 07 00 07 00 00 00 00 00 00 00 00 00 00 00 00 80 04 00 00 00 00 00 10 00 x880............................
1140 10 00 00 00 00 00 00 00 00 00 48 00 00 00 48 00 00 00 00 00 02 00 01 00 02 00 00 00 00 00 00 00 ..........H...H.................
1160 d2 00 00 00 00 00 03 00 00 00 0d c0 00 00 0d c0 00 00 0d c0 00 00 35 70 00 00 35 70 00 00 35 70 ......................5p..5p..5p
1180 00 0f d7 5f c0 f5 55 55 7c 0f d5 5f c0 00 d7 5c 00 03 5c d7 00 0d 70 35 c0 0d c0 0d c0 0f 00 03 ..._..UU|.._...\..\...p5........
11a0 c0 0c 00 00 c0 00 00 00 00 00 00 00 02 00 00 ff ff ff ff ff ff 00 01 ff ff ff ff 00 00 00 03 00 ................................
11c0 00 00 00 00 00 00 00 01 52 80 01 00 00 00 60 00 00 00 92 00 00 00 00 00 00 00 00 00 00 01 00 00 ........R.....`.................
11e0 00 03 80 07 c0 0f e0 0e e0 0f e0 07 c0 03 80 01 00 0b a0 0d 60 09 20 08 20 08 20 00 00 00 00 03 ....................`...........
1200 80 07 c0 0f e0 1f f0 1f f0 1f f0 0f e0 07 c0 0b a0 1f f0 1f f0 1f f0 1d 70 1c 70 08 20 00 00 00 ........................p.p.....
1220 07 00 00 00 00 00 00 00 00 00 00 00 00 80 08 00 00 00 00 00 10 00 10 00 00 00 00 00 00 00 00 00 ................................
1240 48 00 00 00 48 00 00 00 00 00 04 00 01 00 04 00 00 00 00 00 00 01 12 00 00 00 00 00 00 00 05 00 H...H...........................
1260 00 00 00 00 00 00 05 00 00 00 00 00 00 00 ff f0 00 00 00 00 00 0f 31 3f 00 00 00 00 00 f3 22 23 ......................1?......"#
1280 f0 00 00 00 00 f1 10 11 f0 00 00 00 00 f3 11 13 f0 00 00 00 00 0f 31 3f 00 00 00 00 00 00 ff f0 ......................1?........
12a0 00 00 00 00 00 00 0f 00 00 00 00 00 00 f0 ff f0 f0 00 00 00 00 ff 0f 0f f0 00 00 00 00 40 0f 00 .............................@..
12c0 40 00 00 00 00 40 00 00 40 00 00 00 00 40 00 00 40 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 @....@..@....@..@...............
12e0 00 00 06 00 00 ff ff ff ff ff ff 00 01 ee ee ee ee ee ee 00 02 99 99 99 99 ff ff 00 03 dd dd dd ................................
1300 dd dd dd 00 04 33 33 33 33 66 66 00 05 dd dd 00 00 00 00 00 0f 00 00 00 00 00 00 00 00 01 42 80 .....3333ff...................B.
1320 01 00 00 00 60 00 00 00 92 00 00 00 00 00 00 00 00 00 00 07 e0 07 e0 07 e0 07 e0 08 10 10 88 10 ....`...........................
1340 88 10 8c 13 8c 10 08 10 08 08 10 07 e0 07 e0 07 e0 07 e0 07 e0 07 e0 07 e0 07 e0 0f f0 1f f8 1f ................................
1360 f8 1f f8 1f f8 1f f8 1f f8 0f f0 07 e0 07 e0 07 e0 07 e0 00 08 00 0d 00 00 00 00 00 00 00 00 00 ................................
1380 00 00 00 80 08 00 00 00 00 00 10 00 10 00 00 00 00 00 00 00 00 00 48 00 00 00 48 00 00 00 00 00 ......................H...H.....
13a0 04 00 01 00 04 00 00 00 00 00 00 01 12 00 00 00 00 00 00 0f ff ff f0 00 00 00 00 0f ff ff f0 00 ................................
13c0 00 00 00 0f ff ff f0 00 00 00 00 0f ff ff f0 00 00 00 00 f0 20 20 2f 00 00 00 0f 02 22 f2 21 f0 ....................../.....".!.
13e0 00 00 0f 22 22 f1 23 f0 00 00 0f 02 22 f1 21 ff 00 00 0f 22 ff f1 23 ff 00 00 0f 02 22 22 21 f0 ..."".#.....".!...."..#.....""!.
1400 00 00 0f 22 22 22 13 f0 00 00 00 f1 31 31 3f 00 00 00 00 0f ff ff f0 00 00 00 00 0f ff ff f0 00 ..."""......11?.................
1420 00 00 00 0f ff ff f0 00 00 00 00 0f ff ff f0 00 00 00 00 00 00 00 00 00 04 00 00 ff ff ff ff ff ................................
1440 ff 00 01 cc cc cc cc cc cc 00 02 ee ee ee ee ee ee 00 03 bb bb bb bb bb bb 00 0f 00 00 00 00 00 ................................
1460 00 00 00 00 44 01 80 1a 70 26 48 26 4a 12 4d 12 49 68 09 98 01 88 02 40 02 20 02 20 04 10 04 08 ....D...p&H&J.M.Ih.....@........
1480 08 04 08 04 08 01 80 1b f0 3f f8 3f fa 1f ff 1f ff 6f ff ff ff ff fe 7f fe 3f fe 3f fc 1f fc 0f .........?.?.....o.......?.?....
14a0 f8 07 f8 07 f8 00 09 00 08 00 00 00 44 00 00 00 00 06 00 09 80 09 40 0b 30 0d 18 09 0c 12 9c 21 ............D.........@.0......!
14c0 2c 10 4c 08 8c 05 0c 02 08 00 00 00 00 00 00 00 00 06 00 09 80 09 c0 0b f0 0f f8 0f fc 1f fc 3f ,.L............................?
14e0 ec 1f cc 0f 8c 07 0c 02 08 00 00 00 00 00 0d 00 0c 00 00 00 44 00 00 00 00 00 00 00 00 31 80 4a ....................D........1.J
1500 40 4a 40 3f 80 0a 00 3f 80 4a 40 4a 46 31 86 00 00 00 00 00 00 00 00 00 00 00 00 31 80 7b c0 ff @J@?...?.J@JF1.............1.{..
1520 e0 ff e0 7f c0 3f 80 7f c0 ff e6 ff ef 7b cf 31 86 00 00 00 00 00 08 00 05 00 00 00 44 ff ff 80 .....?.......{.1............D...
1540 01 bf 01 a1 81 a1 f9 a1 8d a1 8d bf 8d 9f 8d 88 0d 88 0d 88 0d 8f fd 87 fd 80 01 ff ff ff ff ff ................................
1560 ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff 00 08 00 ................................
1580 08 00 00 00 44 00 0e 00 1f 00 1f 00 ff 00 7e 00 b8 01 18 02 28 04 40 08 80 11 00 22 00 44 00 48 ....D.........~.....(.@....".D.H
15a0 00 b0 00 40 00 00 0e 00 1f 00 1f 00 ff 00 7e 00 f8 01 f8 03 e8 07 c0 0f 80 1f 00 3e 00 7c 00 78 ...@..........~............>.|.x
15c0 00 f0 00 40 00 00 0f 00 00 00 00 00 44 00 0e 00 1f 00 1f 00 ff 00 7e 00 b8 01 18 03 28 07 c0 0f ...@........D.........~.....(...
15e0 80 1f 00 3e 00 7c 00 78 00 f0 00 40 00 00 0e 00 1f 00 1f 00 ff 00 7e 00 f8 01 f8 03 e8 07 c0 0f ...>.|.x...@..........~.........
1600 80 1f 00 3e 00 7c 00 78 00 f0 00 40 00 00 0f 00 00 00 00 00 44 07 80 18 60 27 90 58 68 50 28 a0 ...>.|.x...@........D...`'.XhP(.
1620 14 af d4 af d4 a0 14 50 28 58 68 27 98 18 7c 07 8e 00 07 00 03 07 80 1f e0 3f f0 78 78 70 38 e0 .......P(Xh'..|..........?.xxp8.
1640 1c ef dc ef dc e0 1c 70 38 78 78 3f f8 1f fc 07 8e 00 07 00 03 00 07 00 07 00 00 00 44 07 80 18 .......p8xx?................D...
1660 60 27 90 58 68 53 28 a3 14 af d4 af d4 a3 14 53 28 58 68 27 98 18 7c 07 8e 00 07 00 03 07 80 1f `'.XhS(........S(Xh'..|.........
1680 e0 3f f0 78 78 73 38 e3 1c ef dc ef dc e3 1c 73 38 78 78 3f f8 1f fc 07 8e 00 07 00 03 00 07 00 .?.xxs8........s8xx?............
16a0 07 00 00 00 44 e0 07 f0 0f f8 1f 7c 3e 3e 7c 1f f8 0f f0 07 e0 07 e0 0f f0 1f f8 3e 7c 7c 3e f8 ....D......|>>|............>||>.
16c0 1f f0 0f e0 07 00 00 60 06 70 0e 38 1c 1c 38 0e 70 07 e0 03 c0 03 c0 07 e0 0e 70 1c 38 38 1c 70 .......`.p.8..8.p.........p.88.p
16e0 0e 60 06 00 00 00 07 00 07 00 00 00 44 00 00 00 06 00 1e 00 7c 01 fc 07 f8 00 f8 01 f0 03 b0 07 .`..........D.......|...........
1700 20 0e 20 1c 00 38 00 70 00 20 00 00 00 00 07 00 1f 00 7f 01 fe 07 fe 1f fc 7f fc 03 f8 07 f8 0f .....8.p........................
1720 f0 1f 70 3e 60 7c 60 f8 40 70 40 20 00 00 01 00 0e 00 00 00 44 00 00 00 00 00 00 1f e0 00 00 1f ..p>`|`.@p@.........D...........
1740 e0 03 00 03 00 03 00 0b 40 07 80 03 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 1f e0 00 00 1f ........@.......................
1760 e0 07 80 07 80 3f f0 1f e0 0f c0 07 80 03 00 00 00 00 00 00 00 00 0b 00 06 00 00 00 44 00 00 00 .....?......................D...
1780 00 00 00 00 00 03 00 07 80 0b 40 03 00 03 00 03 00 1f e0 00 00 1f e0 00 00 00 00 00 00 00 00 00 ..........@.....................
17a0 00 00 00 03 00 07 80 0f c0 1f e0 3f f0 07 80 07 80 1f e0 00 00 1f e0 00 00 00 00 00 00 00 04 00 ...........?....................
17c0 06 00 00 00 44 00 00 00 00 00 00 00 00 01 00 03 c0 84 60 ff ff 00 18 00 20 00 40 ff c0 00 00 00 ....D.............`.......@.....
17e0 00 00 00 00 00 00 00 00 00 00 00 00 00 01 00 03 c0 87 e0 ff ff ff f8 ff e0 ff c0 ff c0 00 00 00 ................................
1800 00 00 00 00 00 00 07 00 0f 00 00 00 44 00 00 71 1c 11 10 11 10 11 10 7f fc 51 14 51 14 51 14 51 ............D..q.........Q.Q.Q.Q
1820 14 7f fc 11 10 11 10 11 10 71 1c 00 00 00 00 00 00 00 00 00 00 00 00 7f fc 7f fc 7f fc 7f fc 7f .........q......................
1840 fc 7f fc 00 00 00 00 00 00 00 00 00 00 00 01 00 07 00 00 00 44 00 00 00 00 00 00 00 00 c0 00 c0 ....................D...........
1860 20 c8 40 c8 80 c9 00 ca 00 cc 00 cf c0 c0 00 c0 00 ff f0 ff f0 00 00 00 00 00 00 00 00 00 00 00 ..@.............................
1880 20 08 40 08 80 09 00 0a 00 0c 00 0f c0 00 00 00 00 00 00 00 00 00 0f 00 00 00 00 00 44 00 00 00 ..@.........................D...
18a0 00 00 00 00 00 00 03 04 03 02 13 01 13 00 93 00 53 00 33 03 f3 00 03 00 03 0f ff 0f ff 00 00 00 ................S.3.............
18c0 00 00 00 00 00 00 00 04 00 02 10 01 10 00 90 00 50 00 30 03 f0 00 00 00 00 00 00 00 00 00 0f 00 ................P.0.............
18e0 0f 00 00 00 44 00 00 00 00 01 00 01 00 01 00 01 00 01 00 11 10 09 20 05 40 03 80 01 00 00 00 7f ....D...................@.......
1900 fc 7f fc 00 00 00 00 00 00 01 00 01 00 01 00 01 00 01 00 11 10 09 20 05 40 03 80 01 00 00 00 00 ........................@.......
1920 00 00 00 00 00 00 0b 00 07 00 00 00 44 00 00 00 00 00 00 01 80 01 80 01 80 01 80 01 80 01 80 01 ............D...................
1940 80 7f fe 7f fe 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1960 00 00 00 00 00 00 00 00 00 00 00 00 00 00 0b 00 07 00 00 00 44 ff fe 80 00 bf fe a0 02 af fa a8 ....................D...........
1980 0a ab ea aa 2a aa aa ab aa a8 2a af ea a0 0a bf fa 80 02 ff fe 00 00 00 00 00 00 00 00 00 00 00 ....*.....*.....................
19a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 08 00 08 00 00 00 44 00 00 03 ............................D...
19c0 00 03 00 07 80 07 80 0f c0 0f c0 1f e0 1f e0 33 30 23 10 03 00 03 00 03 00 03 00 00 00 03 00 07 ...............30#..............
19e0 80 07 80 0f c0 0f c0 1f e0 1f e0 3f f0 3f f0 7f f8 77 b8 67 98 07 80 07 80 07 80 07 80 00 01 00 ...........?.?...w.g............
1a00 06 00 00 00 44 00 00 03 c0 0f f0 1f f8 3c 3c 38 1c 70 0e 70 0e 70 0e 70 0e 38 1c 3c 3c 1f f8 0f ....D........<<8.p.p.p.p.8.<<...
1a20 f0 03 c0 00 00 03 c0 0f f0 1f f8 3f fc 7f fe 7c 3e f8 1f f8 1f f8 1f f8 1f 7c 3e 7f fe 3f fc 1f ...........?...|>........|>..?..
1a40 f8 0f f0 03 c0 00 07 00 07 00 00 00 44 1f f8 33 cc 64 66 49 92 4f 12 44 22 63 c6 3f fc 29 94 29 ............D..3.dfI.O.D"c.?.).)
1a60 94 29 94 2b d4 69 96 78 1e 7f fe 7f fe 1f f8 3f fc 7f fe 7f fe 7f fe 7f fe 7f fe 3f fc 3f fc 3f .).+.i.x.......?...........?.?.?
1a80 fc 3f fc 3f fc 7f fe 7f fe 7f fe 7f fe 00 04 00 08 00 00 00 44 03 f8 0c 06 10 01 1c 07 33 f9 70 .?.?................D........3.p
1aa0 01 d0 01 90 01 96 0d da 55 7a 55 36 ed 10 a1 10 01 08 02 07 fc 03 f8 0f fe 1f ff 1f ff 3f ff 7f ........UzU6.................?..
1ac0 ff ff ff ff ff ff ff ff ff 7f ff 3f ff 1f ff 1f ff 0f fe 07 fc 00 04 00 03 00 00 00 44 02 80 02 ...........?................D...
1ae0 80 02 80 02 80 02 80 02 80 fe fe 00 00 fe fe 02 80 02 80 02 80 02 80 02 80 02 80 00 00 03 80 03 ................................
1b00 80 03 80 03 80 03 80 03 80 ff fe ff fe ff fe 03 80 03 80 03 80 03 80 03 80 03 80 00 00 00 07 00 ................................
1b20 07 00 00 00 44 42 84 a2 8a 52 94 2a a8 16 d0 0a a0 fd 7e 02 80 fd 7e 0a a0 16 d0 2a a8 52 94 a2 ....DB...R.*......~...~....*.R..
1b40 8a 42 84 00 00 43 84 e3 8e 73 9c 3b b8 1f f0 0f e0 ff fe ff fe ff fe 0f e0 1f f0 3b b8 73 9c e3 .B...C...s.;...............;.s..
1b60 8e 43 84 00 00 00 07 00 07 00 00 00 44 01 00 01 00 01 00 01 00 01 00 01 00 01 00 fe fe 01 00 01 .C..........D...................
1b80 00 01 00 01 00 01 00 01 00 01 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1ba0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 07 00 07 00 00 00 44 02 80 06 c0 0a a0 12 90 22 88 42 ....................D........".B
1bc0 84 fe fe 00 00 fe fe 42 84 22 88 12 90 0a a0 06 c0 02 80 00 00 02 80 06 c0 0e e0 1e f0 3e f8 7e .......B."...................>.~
1be0 fc fe fe 00 00 fe fe 7e fc 3e f8 1e f0 0e e0 06 c0 02 80 00 00 00 07 00 07 00 00 00 44 00 00 00 .......~.>..................D...
1c00 00 07 80 1f e0 1f e0 3f f0 3f f0 3f f0 3f f0 1f e0 1f e0 07 80 00 00 00 00 00 00 00 00 00 00 07 .......?.?.?.?..................
1c20 80 1f e0 3f f0 3f f0 7f f8 7f f8 7f f8 7f f8 3f f0 3f f0 1f e0 07 80 00 00 00 00 00 00 00 06 00 ...?.?.........?.?..............
1c40 06 00 00 00 44 00 00 00 00 3f fc 20 04 20 04 20 04 20 04 21 84 21 84 20 04 20 04 20 04 20 04 3f ....D....?.........!.!.........?
1c60 fc 00 00 00 00 00 00 00 00 3f fc 3f fc 30 0c 30 0c 31 8c 33 cc 33 cc 31 8c 30 0c 30 0c 3f fc 3f .........?.?.0.0.1.3.3.1.0.0.?.?
1c80 fc 00 00 00 00 00 07 00 07 00 00 00 44 00 00 01 80 03 c0 07 e0 0d b0 19 98 01 80 01 80 01 80 01 ............D...................
1ca0 80 19 98 0d b0 07 e0 03 c0 01 80 00 00 01 80 03 c0 07 e0 0f f0 1f f8 3f fc 3b dc 03 c0 03 c0 3b .......................?.;.....;
1cc0 dc 3f fc 1f f8 0f f0 07 e0 03 c0 01 80 00 07 00 07 00 00 00 44 00 00 00 02 00 0c 00 3c 00 f8 03 .?..................D.......<...
1ce0 f8 0f f0 00 f0 01 60 02 60 04 40 08 40 10 00 20 00 40 00 00 00 00 03 00 0f 00 3e 00 fe 03 fc 0f ......`.`.@.@....@........>.....
1d00 fc 3f f8 ff f8 03 f0 07 f0 0e e0 1c e0 38 c0 70 c0 e0 80 40 80 00 01 00 0e 00 00 00 44 00 00 00 .?...........8.p...@........D...
1d20 02 00 0c 00 3c 00 f8 03 f8 00 70 00 b0 01 20 02 20 04 00 08 00 10 00 20 00 40 00 00 00 00 03 00 ....<.....p..............@......
1d40 0f 00 3e 00 fe 03 fc 0f fc 3f f8 01 f8 03 f0 07 70 0e 60 1c 60 38 40 70 40 e0 00 40 00 00 01 00 ..>......?......p.`.`8@p@..@....
1d60 0e 00 00 00 44 00 00 00 00 3f fc 22 44 26 64 2c 34 38 1c 21 84 21 84 38 1c 2c 34 26 64 22 44 3f ....D....?."D&d,48.!.!.8.,4&d"D?
1d80 fc 00 00 00 00 00 00 00 00 3f fc 3e 7c 3e 7c 3c 3c 39 9c 23 c4 23 c4 39 9c 3c 3c 3e 7c 3e 7c 3f .........?.>|>|<<9.#.#.9.<<>|>|?
1da0 fc 00 00 00 00 00 07 00 07 00 00 00 44 00 00 47 c0 6f e0 7c 30 48 10 4c 00 7e 00 00 00 00 00 00 ............D..G.o.|0H.L.~......
1dc0 fc 00 64 10 24 18 7c 0f ec 07 c4 00 00 c7 c0 ef e0 ff f0 ff f8 fc 38 fe 10 ff 00 ff 80 03 fe 01 ..d.$.|...............8.........
1de0 fe 10 fe 38 7e 3f fe 1f fe 0f ee 07 c6 00 07 00 07 00 00 00 44 00 00 01 80 03 c0 07 e0 01 80 11 ...8~?..............D...........
1e00 88 31 8c 7f fe 7f fe 31 8c 11 88 01 80 07 e0 03 c0 01 80 00 00 01 80 03 c0 07 e0 0f f0 17 e8 3b .1.....1.......................;
1e20 dc 7f fe ff ff ff ff 7f fe 3b dc 17 e8 0f f0 07 e0 03 c0 01 80 00 07 00 07 00 00 00 44 00 00 00 .........;..................D...
1e40 78 00 70 40 36 4f b0 7f f0 7e 30 7c 30 30 38 00 f0 0f e0 04 00 04 00 04 00 0f 00 00 00 00 fc 00 x.p@6O...~0|008.................
1e60 fc e0 ff ff ff ff ff ff f8 ff f8 ff f8 ff fc 7f fc 3f f8 1f f0 0e 00 1f 80 1f 80 1f 80 00 03 00 .................?..............
1e80 0e 00 00 00 44 3f 00 10 c0 c8 20 ea a0 c8 20 cb a0 f8 38 38 3e 08 26 08 26 09 2e 09 26 09 20 11 ....D?............88>.&.&...&...
1ea0 10 21 08 3e f8 3f 00 1f c0 cf e0 ef e0 cf e0 cf e0 ff f8 3f fe 0f e6 0f e6 0f ee 0f e6 0f e0 1f .!.>.?.............?............
1ec0 f0 3f f8 3e f8 00 00 00 02 00 00 00 44 00 0c 00 3c 00 f0 01 e0 03 c0 07 e0 0f f0 2f e0 7f f0 5f .?.>........D...<........../..._
1ee0 f0 07 e0 07 c0 4a 00 62 00 34 00 18 00 00 0c 00 3c 00 f0 01 e0 03 c0 07 e0 0f f0 2f e0 7f f0 7f .....J.b.4......<........../....
1f00 f0 7f e0 7f c0 7e 00 7e 00 3c 00 18 00 00 00 00 0d 00 00 00 44 00 00 3f c0 40 20 3f 10 08 08 07 .....~.~.<..........D..?.@.?....
1f20 08 08 08 07 14 08 22 06 41 01 82 01 24 00 88 00 50 00 20 00 00 00 00 3f c0 7f e0 3f f0 0f f8 07 ......".A...$...P......?...?....
1f40 f8 0f f8 07 fc 0f fe 07 ff 01 fe 01 fc 00 f8 00 70 00 20 00 00 00 02 00 01 00 00 00 44 00 00 3e ................p...........D..>
1f60 f8 63 8c c1 06 80 02 80 02 80 02 80 02 c0 06 60 0c 30 18 18 30 0c 60 06 c0 03 80 00 00 00 00 3e .c.............`.0..0.`........>
1f80 f8 7f fc ff fe ff fe ff fe ff fe ff fe ff fe 7f fc 3f f8 1f f0 0f e0 07 c0 03 80 00 00 00 03 00 .................?..............
1fa0 07 00 00 00 44 ff ff d5 55 aa ab d5 55 a0 0b d0 05 a0 0b d0 05 a0 0b d0 05 a0 0b d0 05 aa ab d5 ....D...U...U...................
1fc0 55 aa ab ff ff ff ff ff ff ff ff ff ff f0 0f f0 0f f0 0f f0 0f f0 0f f0 0f f0 0f f0 0f ff ff ff U...............................
1fe0 ff ff ff ff ff 00 07 00 07 00 00 00 44 00 00 3f fc 1f f8 4f f2 67 e6 73 ce 79 9e 7f fe 7f fe 79 ............D..?...O.g.s.y.....y
2000 9e 73 ce 67 e6 4f f2 1f f8 3f fc 00 00 7f fe 7f fe ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff .s.g.O...?......................
2020 ff ff ff ff ff ff ff ff ff 7f fe 7f fe 00 07 00 06 00 00 00 44 00 00 08 00 0c 00 0e 00 0f 00 0f ....................D...........
2040 80 0f c0 0f e0 0f f0 0f 80 0d 80 08 c0 00 c0 00 60 00 60 00 00 18 00 1c 00 1e 00 1f 00 1f 80 1f ................`.`.............
2060 c0 1f e0 1f f0 1f f8 1f fc 1f c0 1d e0 19 e0 10 f0 00 f0 00 70 00 01 00 04 00 00 00 44 00 00 60 ....................p.......D..`
2080 00 60 00 60 80 61 00 62 00 64 00 6f fc 64 00 62 00 61 00 60 80 60 00 60 00 00 00 00 00 00 00 00 .`.`.a.b.d.o.d.b.a.`.`.`........
20a0 00 00 00 00 80 01 00 02 00 04 00 0f fc 04 00 02 00 01 00 00 80 00 00 00 00 00 00 00 00 00 07 00 ................................
20c0 04 00 00 00 44 00 00 0c 00 0c 00 0c 00 0c 00 0c 00 0c 00 0f f8 0f f8 0c 00 0c 00 0c 00 0c 00 0c ....D...........................
20e0 00 0c 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
2100 00 00 00 00 00 00 07 00 04 00 00 00 44 80 02 7f fc 7f fc 44 44 45 54 45 54 45 54 45 54 44 44 7f ............D......DDETETETETDD.
2120 fc 7f fc 7f fc 7f fc 7f fc 7f fc 80 02 ff fe ff fe ff fe ff fe ff fe ff fe ff fe ff fe ff fe ff ................................
2140 fe ff fe ff fe ff fe ff fe ff fe ff fe 00 04 00 03 00 00 00 44 00 00 00 00 00 00 0c 00 0c 00 0c ....................D...........
2160 00 0c 00 0c 00 0c 00 0c 00 0f f8 0f f8 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
2180 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 0b 00 04 00 00 00 44 00 00 00 ............................D...
21a0 00 00 00 00 30 00 30 00 30 00 30 00 30 00 30 00 30 1f f0 1f f0 00 00 00 00 00 00 00 00 00 00 00 ....0.0.0.0.0.0.0...............
21c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 0b 00 ................................
21e0 0b 00 00 00 44 03 80 1e f0 02 80 81 00 43 87 24 4b 1d 70 05 40 04 40 02 80 04 40 09 20 12 90 14 ....D........C.$K.p.@.@...@.....
2200 50 78 3c f8 3f 03 80 1f f0 03 80 81 00 43 87 27 cb 1f f0 07 c0 07 c0 03 80 07 c0 0f e0 1e f0 1c Px<.?........C.'................
2220 70 78 3c f8 3f 00 01 00 07 00 00 00 44 80 02 7f fc 7f fc 44 44 54 54 54 54 54 54 54 54 44 44 7f px<.?.......D......DDTTTTTTTTDD.
2240 fc 7f fc 7f fc 7f fc 7f fc 7f fc 80 02 ff fe ff fe ff fe ff fe ff fe ff fe ff fe ff fe ff fe ff ................................
2260 fe ff fe ff fe ff fe ff fe ff fe ff fe 00 04 00 07 00 00 00 44 06 00 01 00 01 80 0f f0 10 08 17 ....................D...........
2280 e8 14 28 14 28 17 e8 10 08 10 08 10 08 10 08 10 08 10 08 0f f0 06 00 01 00 01 80 0f f0 1f f8 1f ..(.(...........................
22a0 f8 1f f8 1f f8 1f f8 1f f8 1f f8 1f f8 1f f8 1f f8 1f f8 0f f0 00 00 00 00 00 00 00 44 00 00 00 ............................D...
22c0 f0 00 88 01 08 01 90 02 70 02 20 04 40 04 40 08 80 08 80 11 00 1e 00 1c 00 18 00 10 00 00 00 00 ........p...@.@.................
22e0 f0 00 f8 01 f8 01 f0 03 f0 03 e0 07 c0 07 c0 0f 80 0f 80 1f 00 1e 00 1c 00 18 00 10 00 00 0f 00 ................................
2300 03 00 00 00 44 03 c0 07 e0 0f f0 19 98 19 98 0f f0 07 e0 03 c0 43 c2 43 c3 21 84 1c 38 03 c0 0f ....D................C.C.!..8...
2320 f1 78 1f 40 02 07 e0 0f f0 1f f8 3f fc 3f fc 1f f8 0f f0 47 e2 e7 e7 e7 e7 7f ff 3f fc 1f f9 7f .x.@.......?.?.....G.......?....
2340 ff ff ff f8 1f 00 0a 00 07 00 00 00 44 00 00 00 00 00 00 01 80 01 80 01 80 01 80 1f f8 1f f8 01 ............D...................
2360 80 01 80 01 80 01 80 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
2380 00 00 00 00 00 00 00 00 00 00 00 00 00 00 07 00 07 00 00 00 44 07 c0 0f e0 1c 70 18 30 1c 30 0c ....................D.....p.0.0.
23a0 70 00 e0 03 c0 03 80 02 80 02 80 0e e0 06 c0 03 80 01 00 00 00 00 00 00 00 00 00 00 00 00 00 00 p...............................
23c0 00 00 00 00 00 00 00 00 00 3f f8 1f f0 0f e0 07 c0 03 80 01 00 00 0e 00 07 00 00 00 44 00 00 00 .........?..................D...
23e0 10 00 30 00 70 00 f0 01 f0 03 f0 07 f0 0f f0 01 f0 01 b0 03 10 03 00 06 00 06 00 00 00 00 18 00 ..0.p...........................
2400 38 00 78 00 f8 01 f8 03 f8 07 f8 0f f8 1f f8 3f f8 03 f8 07 b8 07 98 0f 08 0f 00 0e 00 00 01 00 8.x............?................
2420 0b 00 00 00 44 00 00 00 00 00 06 00 06 01 06 00 86 00 46 00 26 3f f6 00 26 00 46 00 86 01 06 00 ....D.............F.&?..&.F.....
2440 06 00 06 00 00 00 00 00 00 00 00 00 00 01 00 00 80 00 40 00 20 3f f0 00 20 00 40 00 80 01 00 00 ..................@..?....@.....
2460 00 00 00 00 00 00 08 00 0b 00 00 00 44 00 00 00 30 00 30 00 30 00 30 00 30 00 30 1f f0 1f f0 00 ............D...0.0.0.0.0.0.....
2480 30 00 30 00 30 00 30 00 30 00 30 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 0.0.0.0.0.0.....................
24a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 07 00 0a 00 00 00 44 80 02 7f fc 7f fc 44 44 55 44 55 ....................D......DDUDU
24c0 44 55 44 55 44 44 44 7f fc 7f fc 7f fc 7f fc 7f fc 7f fc 80 02 ff fe ff fe ff fe ff fe ff fe ff DUDUDDD.........................
24e0 fe ff fe ff fe ff fe ff fe ff fe ff fe ff fe ff fe ff fe ff fe 00 04 00 03 00 00 00 44 00 00 7f ............................D...
2500 fe 40 22 40 22 40 22 7f e2 44 22 44 22 44 22 44 22 47 fe 44 02 44 02 44 02 7f fe 00 00 00 00 7f .@"@"@"..D"D"D"D"G.D.D.D........
2520 fe 7f fe 60 76 7f f6 7f f6 7c 36 6c 36 6c 36 6c 3e 6f fe 6f fe 6e 06 7f fe 7f fe 00 00 00 07 00 ...`v....|6l6l6l>o.o.n..........
2540 07 00 00 00 44 00 00 00 40 00 40 01 60 01 60 03 60 03 70 07 70 07 70 0f 78 0f 78 1f 78 1f 7c 3e ....D...@.@.`.`.`.p.p.p.x.x.x.|>
2560 38 00 00 00 00 00 40 00 e0 01 e0 03 f0 03 f0 07 f0 07 f8 0f f8 0f f8 1f fc 1f fc 3f fc 3f fe 7f 8.....@....................?.?..
2580 7c 7e 38 00 00 00 0c 00 08 00 00 00 44 02 80 02 80 02 80 02 80 02 80 02 80 02 80 02 80 02 80 02 |~8.........D...................
25a0 80 02 80 0f e0 07 c0 03 80 01 00 00 00 03 80 03 80 03 80 03 80 03 80 03 80 03 80 03 80 03 80 03 ................................
25c0 80 03 80 1f f0 0f e0 07 c0 03 80 01 00 00 0e 00 07 00 00 00 44 00 00 00 00 00 00 00 00 08 10 18 ....................D...........
25e0 18 3f fc 78 1e 3f fc 18 18 08 10 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 08 10 18 18 38 .?.x.?.........................8
2600 1c 7f fe ff ff 7f fe 38 1c 18 18 08 10 00 00 00 00 00 00 00 00 00 07 00 07 00 00 00 44 00 00 00 .......8....................D...
2620 00 00 00 00 00 08 00 18 00 3f ff 78 00 3f ff 18 00 08 00 00 00 00 00 00 00 00 00 00 00 00 00 00 .........?.x.?..................
2640 00 00 00 08 00 18 00 38 00 7f ff ff ff 7f ff 38 00 18 00 08 00 00 00 00 00 00 00 00 00 00 07 00 .......8.......8................
2660 01 00 00 00 44 00 00 00 00 00 00 00 00 00 00 00 10 00 18 ff fc 00 1e ff fc 00 18 00 10 00 00 00 ....D...........................
2680 00 00 00 00 00 00 00 00 00 00 00 00 00 00 10 00 18 00 1c ff fe ff ff ff fe 00 1c 00 18 00 10 00 ................................
26a0 00 00 00 00 00 00 08 00 0e 00 00 00 44 00 00 00 80 01 c0 03 e0 07 f0 01 40 01 40 01 40 01 40 01 ............D...........@.@.@.@.
26c0 40 01 40 01 40 01 40 01 40 01 40 01 40 00 80 01 c0 03 e0 07 f0 0f f8 01 c0 01 c0 01 c0 01 c0 01 @.@.@.@.@.@.@...................
26e0 c0 01 c0 01 c0 01 c0 01 c0 01 c0 01 c0 00 01 00 08 00 00 00 44 00 00 01 00 03 80 07 c0 0f e0 02 ....................D...........
2700 80 02 80 02 80 02 80 02 80 02 80 0f e0 07 c0 03 80 01 00 00 00 01 00 03 80 07 c0 0f e0 1f f0 03 ................................
2720 80 03 80 03 80 03 80 03 80 03 80 1f f0 0f e0 07 c0 03 80 01 00 00 07 00 07 00 00 00 44 00 20 00 ............................D...
2740 70 00 f8 01 de 05 de 09 de 11 de 11 de 11 de 11 de 31 de 71 de fd de 18 88 00 78 00 30 00 20 00 p................1.q......x.0...
2760 70 00 f8 01 fe 07 fe 0f fe 1f fe 1f fe 1f fe 1f fe 3f fe 7f fe ff fe 18 f8 00 78 00 30 00 00 00 p................?........x.0...
2780 0a 00 00 00 44 00 00 7f 80 40 00 40 00 40 00 47 e0 44 20 44 22 44 22 04 22 07 e2 00 12 00 0a 00 ....D....@.@.@.G.D.D"D".".......
27a0 06 01 fe 00 00 ff c0 ff c0 ff c0 e0 00 ef f0 ef f0 ec 37 ec 37 ec 37 ec 37 0f f7 0f ff 00 1f 03 ..................7.7.7.7.......
27c0 ff 03 ff 03 ff 00 0e 00 0e 00 00 00 44 20 10 10 20 10 20 08 40 08 40 87 87 67 98 1f e0 1f e0 67 ............D.......@.@..g.....g
27e0 98 87 87 08 40 08 40 10 20 10 20 20 10 70 38 38 70 38 70 1c e0 9f e7 ef df ff ff 7f f8 7f f8 ff ....@.@......p88p8p.............
2800 ff ef df 9f e7 1c e0 38 70 38 70 70 38 00 07 00 07 00 00 00 44 00 18 00 40 0d 18 1e 40 1a 18 3f .......8p8pp8.......D...@...@..?
2820 00 21 00 39 00 29 00 39 00 29 00 39 00 39 00 21 00 21 00 3f 00 00 00 00 00 0c 00 1e 00 1e 00 3f .!.9.).9.).9.9.!.!.?...........?
2840 00 3f 00 3f 00 3f 00 3f 00 3f 00 3f 00 3f 00 3f 00 3f 00 3f 00 00 02 00 07 00 00 00 44 01 00 02 .?.?.?.?.?.?.?.?.?.?........D...
2860 80 02 80 02 80 04 40 04 40 04 40 39 38 c0 06 38 38 09 20 12 90 24 48 28 28 30 18 20 08 01 00 03 ......@.@.@98..88....$H((0......
2880 80 03 80 03 80 07 c0 07 c0 07 c0 3f f8 ff fe 3f f8 0f e0 1e f0 3c 78 38 38 30 18 20 08 00 07 00 ...........?...?.....<x880......
28a0 07 00 00 00 44 00 00 03 80 0f e0 1c 70 30 18 60 0c c1 06 c2 86 c1 06 60 0c 30 18 1c 70 0f e0 03 ....D.......p0.`.......`.0..p...
28c0 80 00 00 00 00 00 00 03 80 0f e0 1f f0 3c 78 70 1c e3 8e e3 8e e3 8e 70 1c 3c 78 1f f0 0f e0 03 .............<xp.......p.<x.....
28e0 80 00 00 00 00 00 07 00 07 00 00 00 44 01 00 01 00 01 00 01 00 01 00 01 00 01 00 ff fe 01 00 01 ............D...................
2900 00 01 00 01 00 01 00 01 00 01 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
2920 00 00 00 00 00 00 00 00 00 00 00 00 00 00 07 00 07 00 00 00 44 00 00 60 00 78 00 3e 00 3f 80 1f ....................D..`.x.>.?..
2940 e0 1e 00 0d 00 0c 80 04 40 04 20 00 10 00 08 00 04 00 00 00 00 e0 00 f8 00 fe 00 7f 80 7f e0 3f ........@......................?
2960 f8 3f fe 1f 80 1f c0 0e e0 0e 70 06 38 06 1c 02 0e 02 04 00 00 00 01 00 01 00 00 00 44 ff f0 ff .?........p.8...............D...
2980 f0 c0 00 c0 00 cf c0 cc 00 ca 00 c9 00 c8 80 c8 40 c0 20 c0 00 00 00 00 00 00 00 00 00 00 00 00 ................@...............
29a0 00 00 00 00 00 0f c0 0c 00 0a 00 09 00 08 80 08 40 00 20 00 00 00 00 00 00 00 00 00 00 00 00 00 ................@...............
29c0 00 00 00 00 44 0f ff 0f ff 00 03 00 03 03 f3 00 33 00 53 00 93 01 13 02 13 04 03 00 03 00 00 00 ....D...........3.S.............
29e0 00 00 00 00 00 00 00 00 00 00 00 00 00 03 f0 00 30 00 50 00 90 01 10 02 10 04 00 00 00 00 00 00 ................0.P.............
2a00 00 00 00 00 00 00 00 00 0f 00 00 00 44 00 00 7f fc 7f fc 00 00 01 00 03 80 05 40 09 20 11 10 01 ............D.............@.....
2a20 00 01 00 01 00 01 00 01 00 00 00 00 00 00 00 00 00 00 00 00 00 01 00 03 80 05 40 09 20 11 10 01 ..........................@.....
2a40 00 01 00 01 00 01 00 01 00 00 00 00 00 00 04 00 07 00 00 00 44 00 00 00 00 00 00 00 00 7f fe 7f ....................D...........
2a60 fe 01 80 01 80 01 80 01 80 01 80 01 80 01 80 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
2a80 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 04 00 07 00 00 00 44 01 00 00 ............................D...
2aa0 00 03 80 07 c0 0f e0 0e e0 0f e0 07 c0 03 80 01 00 0b a0 0d 60 09 20 08 20 08 20 00 00 00 00 03 ....................`...........
2ac0 80 07 c0 0f e0 1f f0 1f f0 1f f0 0f e0 07 c0 0b a0 1f f0 1f f0 1f f0 1d 70 1c 70 08 20 00 00 00 ........................p.p.....
2ae0 07 00 00 00 44 00 00 00 00 00 00 0f f8 0f f8 0c 00 0c 00 0c 00 0c 00 0c 00 0c 00 0c 00 00 00 00 ....D...........................
2b00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
2b20 00 00 00 00 00 00 03 00 04 00 00 00 44 00 00 08 90 02 28 49 a6 27 c8 19 30 61 0c 01 00 01 00 01 ............D.....(I.'..0a......
2b40 00 01 00 01 00 01 40 01 40 00 80 00 00 00 00 0f f0 1f f8 7f fe 7f fc ff fe fb be e3 8e 03 80 03 ......@.@.......................
2b60 80 03 80 03 c0 03 e0 03 e0 01 c0 00 80 00 04 00 07 00 00 00 44 00 00 00 00 00 00 00 00 1f f0 1f ....................D...........
2b80 f0 00 30 00 30 00 30 00 30 00 30 00 30 00 30 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ..0.0.0.0.0.0.0.................
2ba0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 04 00 0b 00 00 00 44 07 e0 07 ............................D...
2bc0 e0 07 e0 07 e0 08 10 10 88 10 88 10 8c 13 8c 10 08 10 08 08 10 07 e0 07 e0 07 e0 07 e0 07 e0 07 ................................
2be0 e0 07 e0 07 e0 0f f0 1f f8 1f f8 1f fc 1f fc 1f f8 1f f8 0f f0 07 e0 07 e0 07 e0 07 e0 00 08 00 ................................
2c00 0d 00 00 00 44 0c 60 02 80 01 00 01 00 01 00 01 00 01 00 01 00 01 00 01 00 01 00 01 00 01 00 01 ....D.`.........................
2c20 00 02 80 0c 60 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ....`...........................
2c40 00 00 00 00 00 00 0b 00 07 00 00 00 a4 00 02 00 00 00 00 00 8f 00 93 00 a7 00 c9 04 02 4f 6b 00 .............................Ok.
2c60 00 00 00 00 0e 00 6c 00 89 01 3a 88 73 57 69 73 68 20 2d 20 57 69 6e 64 6f 77 69 6e 67 20 53 68 ......l...:.sWish.-.Windowing.Sh
2c80 65 6c 6c 0d 62 61 73 65 64 20 6f 6e 20 54 63 6c 20 38 2e 33 2e 30 20 26 20 54 6b 20 38 2e 33 2e ell.based.on.Tcl.8.3.0.&.Tk.8.3.
2ca0 30 0d 0d 52 61 79 20 4a 6f 68 6e 73 6f 6e 20 26 20 4a 69 6d 20 49 6e 67 68 61 6d 0d 53 63 72 69 0..Ray.Johnson.&.Jim.Ingham.Scri
2cc0 70 74 69 63 73 20 49 6e 63 2e 0d 6a 69 6d 2e 69 6e 67 68 61 6d 40 63 79 67 6e 75 73 2e 63 6f 6d ptics.Inc..jim.ingham@cygnus.com
2ce0 00 00 00 00 00 00 13 00 18 00 77 00 5c 40 02 00 80 00 00 00 ae 00 09 00 00 00 00 00 87 00 fc 00 ..........w.\@..................
2d00 9b 01 4c 04 04 4f 70 65 6e 00 00 00 00 00 68 00 fc 00 7c 01 4c 04 06 43 61 6e 63 65 6c 00 00 00 ..L..Open.....h...|.L..Cancel...
2d20 00 00 00 00 00 00 00 00 00 81 04 00 01 00 82 00 00 00 00 00 08 00 eb 00 18 01 51 00 00 00 00 00 ..........................Q.....
2d40 00 00 20 00 fc 00 34 01 4c 04 05 45 6a 65 63 74 00 00 00 00 00 00 3c 00 fc 00 50 01 4c 04 07 44 ......4.L..Eject......<...P.L..D
2d60 65 73 6b 74 6f 70 00 00 00 00 00 00 1d 00 0c 00 9f 00 e6 00 00 00 00 00 00 00 06 00 0c 00 19 00 esktop..........................
2d80 e6 00 00 00 00 00 00 00 5b 00 fb 00 5c 01 4d c0 02 00 0b 00 00 00 00 00 a8 00 14 00 bb 01 2c 07 ........[...\.M...............,.
2da0 02 00 83 00 00 00 18 00 55 00 6b 01 04 01 9c 00 01 01 00 01 00 00 00 00 00 00 80 00 00 28 0a 00 ........U.k..................(..
2dc0 00 00 18 00 00 00 00 00 c3 01 58 00 01 00 00 00 00 00 00 00 00 00 82 00 00 00 00 00 00 00 ce 60 ..........X....................`
2de0 0a 00 00 4d 44 45 46 02 4f 00 00 4e fa 00 04 4e 75 48 e7 18 30 4f ef ff ee 38 2f 00 36 24 6f 00 ...MDEF.O..N...NuH..0O...8/.6$o.
2e00 26 26 7c 4d 44 45 46 59 4f 2e b8 0b 54 2e 9f 55 4f 3e b8 0a 0a 3f 5f 00 04 55 4f 3e b8 0a 0c 3f &&|MDEFYO...T..UO>...?_..UO>...?
2e20 5f 00 06 0c 78 ff ff 0b 5c 66 12 20 78 0b 5c 20 50 2f 68 00 06 00 08 2f 68 00 0a 00 0c 0c 44 00 _...x...\f..x.\.P/h..../h.....D.
2e40 01 66 02 36 12 3f 04 2f 2f 00 34 2f 2f 00 34 2f 2f 00 34 2f 0a 48 6f 00 12 4e 93 2f 17 21 df 0b .f.6.?.//.4//.4//.4/.Ho..N./.!..
2e60 54 3f 2f 00 04 31 df 0a 0a 3f 2f 00 06 31 df 0a 0c 0c 44 00 01 66 2a b6 52 67 26 0c 78 ff ff 0b T?/..1...?/..1....D..f*.Rg&.x...
2e80 5c 67 1e 20 78 0b 5c 20 50 21 6f 00 08 00 06 21 6f 00 0c 00 0a 21 ef 00 08 09 fa 21 ef 00 0c 09 \g..x.\.P!o....!o....!.....!....
2ea0 fe 4f ef 00 12 4c df 0c 18 4e 74 00 12 00 00 00 10 00 84 00 00 00 00 00 00 00 00 00 01 ff ff 00 .O...L...Nt.....................
2ec0 00 00 00 13 a4 13 a4 00 00 00 00 00 64 00 44 00 11 02 ff 0c 00 ff fe 00 00 00 48 00 00 00 48 00 ............d.D...........H...H.
2ee0 00 00 00 00 00 00 64 00 44 00 00 00 00 00 01 00 0a 00 00 00 00 00 64 00 44 00 99 80 44 00 00 00 ......d.D.............d.D...D...
2f00 00 00 64 00 44 00 00 00 00 00 00 00 00 00 48 00 00 00 48 00 00 00 00 00 08 00 01 00 08 00 00 00 ..d.D.........H...H.............
2f20 00 01 08 00 d8 00 00 00 00 00 01 5a 5a 80 00 00 ff 37 36 ff 00 ff 00 ff 00 35 35 ff 00 ff 00 cc ...........ZZ....76......55.....
2f40 00 34 34 ff 00 ff 00 99 00 33 33 ff 00 ff 00 66 00 37 36 ff 00 ff 00 33 00 35 35 ff 00 ff 00 00 .44......33....f.76....3.55.....
2f60 00 34 34 ff 00 cc 00 ff 00 33 33 ff 00 cc 00 cc 00 37 36 ff 00 cc 00 99 00 35 35 ff 00 cc 00 66 .44......33......76......55....f
2f80 00 fa fa ff 00 cc 00 33 00 33 33 ff 00 cc 00 00 00 31 30 ff 00 99 00 ff 00 2f 2f ff 00 99 00 cc .......3.33......10......//.....
2fa0 00 fa fa ff 00 99 00 99 00 f9 f9 ff 00 99 00 66 00 31 30 ff 00 99 00 33 00 2f 2f ff 00 99 00 00 ...............f.10....3.//.....
2fc0 00 2e 2e ff 00 66 00 ff 00 f9 f9 ff 00 66 00 cc 00 31 30 ff 00 66 00 99 00 2f 2f ff 00 66 00 66 .....f.......f...10..f...//..f.f
2fe0 00 2e 2e ff 00 66 00 33 00 2d 2d ff 00 66 00 00 00 31 30 ff 00 33 00 ff 00 2f 2f ff 00 33 00 cc .....f.3.--..f...10..3...//..3..
3000 00 2e 2e ff 00 33 00 99 00 2d 2d ff 00 33 00 66 00 31 30 ff 00 33 00 33 00 2f 2f ff 00 33 00 00 .....3...--..3.f.10..3.3.//..3..
3020 00 2e 2e ff 00 00 00 ff 00 2d 2d ff 00 00 00 cc 00 31 30 ff 00 00 00 99 00 2f 2f ff 00 00 00 66 .........--......10......//....f
3040 00 2e 2e ff 00 00 00 33 00 2d f8 ff 00 00 00 00 00 2b 2a cc 00 ff 00 ff 00 29 29 cc 00 ff 00 cc .......3.-.......+*......)).....
3060 00 28 28 cc 00 ff 00 99 00 27 f8 cc 00 ff 00 66 00 2b 2a cc 00 ff 00 33 00 29 29 cc 00 ff 00 00 .((......'.....f.+*....3.)).....
3080 00 28 28 cc 00 cc 00 ff 00 27 27 cc 00 cc 00 cc 00 2b 2a cc 00 cc 00 99 00 29 29 cc 00 cc 00 66 .((......''......+*......))....f
30a0 00 28 28 cc 00 cc 00 33 00 27 27 cc 00 cc 00 00 00 2b 2a cc 00 99 00 ff 00 29 29 cc 00 99 00 cc .((....3.''......+*......)).....
30c0 00 28 28 cc 00 99 00 99 00 27 27 cc 00 99 00 66 00 db db cc 00 99 00 33 00 47 47 cc 00 99 00 00 .((......''....f.......3.GG.....
30e0 00 46 46 cc 00 66 00 ff 00 45 45 cc 00 66 00 cc 00 db db cc 00 66 00 99 00 47 47 cc 00 66 00 66 .FF..f...EE..f.......f...GG..f.f
3100 00 46 46 cc 00 66 00 33 00 45 45 cc 00 66 00 00 00 db db cc 00 33 00 ff 00 47 47 cc 00 33 00 cc .FF..f.3.EE..f.......3...GG..3..
3120 00 46 46 cc 00 33 00 99 00 45 45 cc 00 33 00 66 00 db db cc 00 33 00 33 00 41 41 cc 00 33 00 00 .FF..3...EE..3.f.....3.3.AA..3..
3140 00 40 40 cc 00 00 00 ff 00 3f 3f cc 00 00 00 cc 00 43 42 cc 00 00 00 99 00 41 41 cc 00 00 00 66 .@@......??......CB......AA....f
3160 00 40 40 cc 00 00 00 33 00 3f 3f cc 00 00 00 00 00 43 42 99 00 ff 00 ff 00 41 41 99 00 ff 00 cc .@@....3.??......CB......AA.....
3180 00 40 40 99 00 ff 00 99 00 3f 3f 99 00 ff 00 66 00 43 42 99 00 ff 00 33 00 41 41 99 00 ff 00 00 .@@......??....f.CB....3.AA.....
31a0 00 40 40 99 00 cc 00 ff 00 3f 3f 99 00 cc 00 cc 00 43 42 99 00 cc 00 99 00 41 41 99 00 cc 00 66 .@@......??......CB......AA....f
31c0 00 40 40 99 00 cc 00 33 00 3f 3f 99 00 cc 00 00 00 43 42 99 00 99 00 ff 00 41 41 99 00 99 00 cc .@@....3.??......CB......AA.....
31e0 00 40 40 99 00 99 00 99 00 3f 3f 99 00 99 00 66 00 3d 3c 99 00 99 00 33 00 3b 3b 99 00 99 00 00 .@@......??....f.=<....3.;;.....
3200 00 3a 3a 99 00 66 00 ff 00 39 39 99 00 66 00 cc 00 3d 3c 99 00 66 00 99 00 3b 3b 99 00 66 00 66 .::..f...99..f...=<..f...;;..f.f
3220 00 3a 3a 99 00 66 00 33 00 39 39 99 00 66 00 00 00 3d 3c 99 00 33 00 ff 00 3b 3b 99 00 33 00 cc .::..f.3.99..f...=<..3...;;..3..
3240 00 3a 3a 99 00 33 00 99 00 39 39 99 00 33 00 66 00 3d 3c 99 00 33 00 33 00 3b 3b 99 00 33 00 00 .::..3...99..3.f.=<..3.3.;;..3..
3260 00 3a 3a 99 00 00 00 ff 00 39 39 99 00 00 00 cc 00 3d 3c 99 00 00 00 99 00 3b 3b 99 00 00 00 66 .::......99......=<......;;....f
3280 00 3a 3a 99 00 00 00 33 00 39 39 99 00 00 00 00 00 3d 3c 66 00 ff 00 ff 00 3b 3b 66 00 ff 00 cc .::....3.99......=<f.....;;f....
32a0 00 3a 3a 66 00 ff 00 99 00 39 39 66 00 ff 00 66 00 3d 3c 66 00 ff 00 33 00 3b 3b 66 00 ff 00 00 .::f.....99f...f.=<f...3.;;f....
32c0 00 3a 3a 66 00 cc 00 ff 00 39 39 66 00 cc 00 cc 00 37 36 66 00 cc 00 99 00 35 35 66 00 cc 00 66 .::f.....99f.....76f.....55f...f
32e0 00 34 34 66 00 cc 00 33 00 33 33 66 00 cc 00 00 00 37 36 66 00 99 00 ff 00 35 35 66 00 99 00 cc .44f...3.33f.....76f.....55f....
3300 00 34 34 66 00 99 00 99 00 33 33 66 00 99 00 66 00 37 36 66 00 99 00 33 00 35 35 66 00 99 00 00 .44f.....33f...f.76f...3.55f....
3320 00 34 34 66 00 66 00 ff 00 33 33 66 00 66 00 cc 00 37 36 66 00 66 00 99 00 35 35 66 00 66 00 66 .44f.f...33f.f...76f.f...55f.f.f
3340 00 34 34 66 00 66 00 33 00 33 33 66 00 66 00 00 00 37 36 66 00 33 00 ff 00 35 35 66 00 33 00 cc .44f.f.3.33f.f...76f.3...55f.3..
3360 00 34 34 66 00 33 00 99 00 33 33 66 00 33 00 66 00 37 36 66 00 33 00 33 00 35 35 66 00 33 00 00 .44f.3...33f.3.f.76f.3.3.55f.3..
3380 00 34 34 66 00 00 00 ff 00 33 33 66 00 00 00 cc 00 31 30 66 00 00 00 99 00 2f 2f 66 00 00 00 66 .44f.....33f.....10f.....//f...f
33a0 00 2e 2e 66 00 00 00 33 00 f9 f9 66 00 00 00 00 00 31 30 33 00 ff 00 ff 00 2f 2f 33 00 ff 00 cc ...f...3...f.....103.....//3....
33c0 00 2e 2e 33 00 ff 00 99 00 f9 f9 33 00 ff 00 66 00 31 30 33 00 ff 00 33 00 2f 2f 33 00 ff 00 00 ...3.......3...f.103...3.//3....
33e0 00 2e 2e 33 00 cc 00 ff 00 2d 2d 33 00 cc 00 cc 00 31 30 33 00 cc 00 99 00 2f 2f 33 00 cc 00 66 ...3.....--3.....103.....//3...f
3400 00 2e 2e 33 00 cc 00 33 00 2d 2d 33 00 cc 00 00 00 31 30 33 00 99 00 ff 00 2f 2f 33 00 99 00 cc ...3...3.--3.....103.....//3....
3420 00 2e 2e 33 00 99 00 99 00 2d 2d 33 00 99 00 66 00 31 30 33 00 99 00 33 00 2f 2f 33 00 99 00 00 ...3.....--3...f.103...3.//3....
3440 00 2e 2e 33 00 66 00 ff 00 2d f8 33 00 66 00 cc 00 2b 2a 33 00 66 00 99 00 29 29 33 00 66 00 66 ...3.f...-.3.f...+*3.f...))3.f.f
3460 00 28 28 33 00 66 00 33 00 27 f8 33 00 66 00 00 00 2b 2a 33 00 33 00 ff 00 29 29 33 00 33 00 cc .((3.f.3.'.3.f...+*3.3...))3.3..
3480 00 28 28 33 00 33 00 99 00 27 27 33 00 33 00 66 00 2b 2a 33 00 33 00 33 00 29 29 33 00 33 00 00 .((3.3...''3.3.f.+*3.3.3.))3.3..
34a0 00 28 28 33 00 00 00 ff 00 27 27 33 00 00 00 cc 00 2b 2a 33 00 00 00 99 00 29 29 33 00 00 00 66 .((3.....''3.....+*3.....))3...f
34c0 00 28 28 33 00 00 00 33 00 27 27 33 00 00 00 00 00 49 48 00 00 ff 00 ff 00 47 47 00 00 ff 00 cc .((3...3.''3.....IH......GG.....
34e0 00 46 46 00 00 ff 00 99 00 45 45 00 00 ff 00 66 00 49 48 00 00 ff 00 33 00 47 47 00 00 ff 00 00 .FF......EE....f.IH....3.GG.....
3500 00 46 46 00 00 cc 00 ff 00 45 45 00 00 cc 00 cc 00 49 48 00 00 cc 00 99 00 47 47 00 00 cc 00 66 .FF......EE......IH......GG....f
3520 00 46 46 00 00 cc 00 33 00 45 45 00 00 cc 00 00 00 43 42 00 00 99 00 ff 00 41 41 00 00 99 00 cc .FF....3.EE......CB......AA.....
3540 00 40 40 00 00 99 00 99 00 3f 3f 00 00 99 00 66 00 43 42 00 00 99 00 33 00 41 41 00 00 99 00 00 .@@......??....f.CB....3.AA.....
3560 00 40 40 00 00 66 00 ff 00 3f 3f 00 00 66 00 cc 00 43 42 00 00 66 00 99 00 41 41 00 00 66 00 66 .@@..f...??..f...CB..f...AA..f.f
3580 00 40 40 00 00 66 00 33 00 3f 3f 00 00 66 00 00 00 43 42 00 00 33 00 ff 00 41 41 00 00 33 00 cc .@@..f.3.??..f...CB..3...AA..3..
35a0 00 40 40 00 00 33 00 99 00 3f 3f 00 00 33 00 66 00 43 42 00 00 33 00 33 00 41 41 00 00 33 00 00 .@@..3...??..3.f.CB..3.3.AA..3..
35c0 00 40 40 00 00 00 00 ff 00 3f 3f 00 00 00 00 cc 00 43 42 00 00 00 00 99 00 41 41 00 00 00 00 66 .@@......??......CB......AA....f
35e0 00 40 40 00 00 00 00 33 00 3f 3f ee 00 00 00 00 00 3d 3c dd 00 00 00 00 00 3b 3b bb 00 00 00 00 .@@....3.??......=<......;;.....
3600 00 3a 3a aa 00 00 00 00 00 39 39 88 00 00 00 00 00 3d 3c 77 00 00 00 00 00 3b 3b 55 00 00 00 00 .::......99......=<w.....;;U....
3620 00 3a 3a 44 00 00 00 00 00 39 39 22 00 00 00 00 00 3d 3c 11 00 00 00 00 00 3b 3b 00 00 ee 00 00 .::D.....99".....=<......;;.....
3640 00 3a 3a 00 00 dd 00 00 00 39 39 00 00 bb 00 00 00 3d 3c 00 00 aa 00 00 00 3b 3b 00 00 88 00 00 .::......99......=<......;;.....
3660 00 3a 3a 00 00 77 00 00 00 39 39 00 00 55 00 00 00 3d 3c 00 00 44 00 00 00 3b 3b 00 00 22 00 00 .::..w...99..U...=<..D...;;.."..
3680 00 3a 3a 00 00 11 00 00 00 39 39 00 00 00 00 ee 00 3d 3c 00 00 00 00 dd 00 3b 3b 00 00 00 00 bb .::......99......=<......;;.....
36a0 00 3a 3a 00 00 00 00 aa 00 39 39 00 00 00 00 88 00 3d 3c 00 00 00 00 77 00 3b 3b 00 00 00 00 55 .::......99......=<....w.;;....U
36c0 00 3a 3a 00 00 00 00 44 00 39 39 00 00 00 00 22 00 37 36 00 00 00 00 11 00 35 35 ee 00 ee 00 ee .::....D.99....".76......55.....
36e0 00 34 34 dd 00 dd 00 dd 00 33 33 bb 00 bb 00 bb 00 37 36 aa 00 aa 00 aa 00 35 35 88 00 88 00 88 .44......33......76......55.....
3700 00 34 34 77 00 77 00 77 00 33 33 55 00 55 00 55 00 37 36 44 00 44 00 44 00 35 35 22 00 22 00 22 .44w.w.w.33U.U.U.76D.D.D.55"."."
3720 00 34 34 11 00 11 00 11 00 33 33 00 00 00 00 00 00 00 00 00 00 00 64 00 44 00 00 00 00 00 64 00 .44......33...........d.D.....d.
3740 44 00 00 00 0a 00 00 00 00 00 64 00 44 02 bd 00 13 e8 00 01 f5 f6 fe 07 fe 0e 02 32 32 33 fd 39 D.........d.D..............223.9
3760 00 0e e6 00 1d fc 00 01 f5 f5 fe 07 00 08 fe 0e 02 32 32 33 fe 39 00 3a fc 40 f2 41 02 40 33 07 .................223.9.:.@.A.@3.
3780 e9 00 17 01 00 0e fc 40 dc 41 02 39 0e f5 f5 00 02 f5 f5 f6 fe 07 02 0e 07 00 16 01 00 32 d5 41 .......@.A.9.................2.A
37a0 04 40 39 0e 32 33 fd 39 00 3a fc 40 fc 41 01 32 00 08 01 00 0e c1 41 01 0e 00 08 01 00 0e c1 41 .@9.23.9.:.@.A.2......A........A
37c0 01 08 00 08 01 00 0e c1 41 01 07 00 08 01 00 0e c1 41 01 07 00 09 01 00 07 c2 41 02 40 f5 00 0e ........A........A........A.@...
37e0 01 00 07 e8 41 01 47 47 dd 41 02 40 00 00 12 01 00 07 f0 41 00 47 fa 41 01 3b 3b dd 41 02 40 00 ....A.GG.A.@.......A.G.A.;;.A.@.
3800 00 19 01 00 07 f1 41 0c 47 3b 0b 3b 47 41 41 47 11 05 05 3b 47 df 41 02 3a 00 00 17 01 00 f6 f0 ......A.G;.;GAAG...;G.A.:.......
3820 41 01 0b 0b fe 41 05 47 3b 05 05 11 3b de 41 02 39 00 00 1a 02 00 f5 40 f3 41 0c 47 3b 05 3b 47 A....A.G;...;.A.9......@.A.G;.;G
3840 41 47 41 0b 0b 3b 47 47 de 41 02 39 00 00 18 02 00 f5 40 f3 41 02 47 11 0b fe 41 04 47 11 05 41 AGA..;GG.A.9......@.A.G...A.G..A
3860 47 dc 41 02 33 00 00 1b 02 00 00 40 f3 41 03 47 11 11 47 fe 41 02 05 35 47 f7 41 fd 47 e9 41 02 G.A.3......@.A.G..G.A..5G.A.G.A.
3880 32 00 00 1e 02 00 00 40 f2 41 06 11 3b 47 41 47 35 0b f7 41 06 47 41 39 0e 0e 40 47 ea 41 02 0e 2......@.A..;GAG5..A.GA9..@G.A..
38a0 00 00 21 02 00 00 40 f2 41 07 11 3b 47 41 41 0b 35 47 f9 41 02 47 40 07 fe 00 02 f6 40 47 eb 41 ..!...@.A..;GAA.5G.A.G@.....@G.A
38c0 02 0e 00 00 23 02 00 00 40 f3 41 08 47 35 41 41 47 3b 05 41 47 fa 41 09 47 3a f6 00 f5 4f 55 f5 ....#...@.A.G5AAG;.AG.A.G:...OU.
38e0 0e 47 eb 41 02 07 00 00 22 02 00 00 3a f3 41 01 47 3b fe 41 01 0b 0b f9 41 05 47 3a f5 00 55 c8 .G.A...."...:.A.G;.A....A.G:..U.
3900 fe ce 01 56 40 eb 41 02 07 00 00 1f 02 00 00 39 f0 41 04 47 41 05 3b 47 fb 41 04 47 40 f5 f5 a4 ...V@.A........9.A.GA.;G.A.G@...
3920 fc ce 01 c8 5d eb 41 02 f6 00 00 1f 02 00 00 39 f0 41 04 47 3b 05 41 47 fc 41 04 47 40 07 f6 c8 ....].A........9.A.G;.AG.A.G@...
3940 fa ce 00 64 ec 41 03 40 f5 00 00 1c 02 00 00 39 f0 41 02 47 11 0b fa 41 03 47 08 2a c8 fa ce 01 ...d.A.@.......9.A.G...A.G.*....
3960 64 d8 ec 41 00 40 fe 00 25 02 00 00 39 ef 41 02 0b 3b 47 fc 41 03 47 0f f5 a4 fb ce 02 c8 87 d8 d..A.@..%...9.A..;G.A.G.........
3980 fc 41 fe 47 fc 41 00 47 f9 41 00 3a fe 00 28 02 00 00 39 ef 41 02 0b 3b 47 fd 41 03 47 39 00 a4 .A.G.A.G.A.:..(...9.A..;G.A.G9..
39a0 fa ce 00 ab fa 41 09 3b 11 3b 41 41 47 3b 0b 3b 47 fa 41 00 39 fe 00 24 02 00 00 33 f1 41 02 47 .....A.;.;AAG;.;G.A.9..$...3.A.G
39c0 41 0b fa 41 01 07 79 f9 ce 00 64 fa 41 02 35 05 0b fd 41 01 0b 0b f9 41 00 39 fe 00 28 02 00 00 A..A..y...d.A.5...A....A.9..(...
39e0 32 f1 41 02 47 3b 0b fc 41 02 47 39 f6 f9 ce 01 87 d8 fb 41 03 47 41 05 0b fe 41 02 47 11 0b f9 2.A.G;..A.G9.......A.GA...A.G...
3a00 41 00 39 fe 00 2c 02 00 00 32 f1 41 02 47 3b 11 fb 41 01 08 79 fa ce 05 aa 40 41 41 47 47 fe 41 A.9..,...2.A.G;..A..y....@AAGG.A
3a20 0a 47 41 05 11 47 41 41 47 35 11 47 fa 41 00 32 fe 00 2f 02 00 00 0e f1 41 03 47 3b 11 47 fe 41 .GA..GAAG5.G.A.2../.....A.G;.G.A
3a40 03 47 40 f6 c8 fa ce 05 64 d8 41 40 39 39 fe 41 04 47 3b 05 3b 47 fe 41 02 35 41 47 fa 41 00 0e .G@.....d.A@99.A.G;.;G.A.5AG.A..
3a60 fe 00 27 02 00 00 0e f1 41 03 47 3b 3b 47 fe 41 02 47 0f 79 fa ce 0c 87 41 40 32 f5 00 00 3a 47 ..'.....A.G;;G.A.G.y....A@2...:G
3a80 41 47 3b 05 f2 41 00 0e fe 00 27 02 00 00 0e f1 41 03 47 3b 3b 47 fd 41 01 0e a4 fa ce 01 ab aa AG;..A....'.....A.G;;G.A........
3aa0 fe c8 08 79 00 39 47 41 47 11 0b 47 f3 41 00 07 fe 00 1c 02 00 00 0e ea 41 02 40 2b c8 f5 ce 08 ...y.9GAG..G.A..........A.@+....
3ac0 81 00 33 47 41 41 0b 3b 47 f3 41 00 07 fe 00 1a 02 00 00 08 eb 41 02 47 3a 55 f4 ce 06 5d 00 39 ..3GAA.;G.A..........A.G:U...].9
3ae0 47 47 41 0b f1 41 00 f6 fe 00 1c 02 00 00 07 eb 41 02 47 39 79 f4 ce 07 39 00 39 47 47 35 11 47 GGA..A..........A.G9y...9.9GG5.G
3b00 f3 41 01 40 f5 fe 00 1c 02 00 00 07 eb 41 02 47 39 a4 f5 ce 08 ab 0e 00 40 47 41 11 41 47 f3 41 .A.@.........A.G9.......@GA.AG.A
3b20 00 40 fd 00 1b 02 00 00 07 eb 41 02 47 39 a4 f5 ce 07 87 07 07 41 47 41 11 47 f2 41 00 40 fd 00 .@........A.G9.......AGA.G.A.@..
3b40 1b 02 00 00 07 eb 41 02 47 39 c8 f5 ce 07 63 f5 32 47 47 3b 3b 47 f2 41 00 3a fd 00 1a 03 00 00 ......A.G9....c.2GG;;G.A.:......
3b60 f6 40 ec 41 02 47 39 c8 f5 ce 05 39 f5 40 47 41 3b f0 41 00 39 fd 00 1c 03 00 00 f5 40 eb 41 01 .@.A.G9....9.@GA;.A.9.......@.A.
3b80 40 c8 fd ce 01 c8 a4 fc ce 03 ab 08 0e 47 ed 41 00 39 fd 00 1a fe 00 00 40 eb 41 00 40 fc ce 01 @............G.A.9......@.A.@...
3ba0 a4 c8 fc ce 03 fa 07 40 47 ed 41 00 32 fd 00 1a fe 00 00 40 ea 41 00 aa fe ce 02 87 f9 c8 fc ce .......@G.A.2......@.A..........
3bc0 02 56 0f 47 ec 41 00 32 fd 00 19 fe 00 00 40 ea 41 00 ab fe ce 02 64 56 c8 fd ce 01 c8 32 ea 41 .V.G.A.2......@.A.....dV.....2.A
3be0 00 0e fd 00 1b fe 00 00 40 ed 41 03 0e 40 47 87 fe ce 01 40 55 fc ce 01 fa 40 ea 41 00 08 fd 00 ........@.A..@G....@U....@.A....
3c00 1a fe 00 00 3a ed 41 08 07 07 40 fb ce ce ab 39 79 fd ce 00 ab e8 41 00 07 fd 00 1c fe 00 00 3a ....:.A...@....9y.....A........:
3c20 ed 41 08 07 00 f6 a4 ce ce 87 33 79 fd ce 02 41 47 47 ea 41 00 07 fd 00 1e fe 00 00 39 ed 41 08 .A........3y...AGG.A........9.A.
3c40 07 2a a4 c8 ce ce 88 0e 9d fe ce 03 64 1c 39 39 eb 41 01 40 f5 fd 00 1c fe 00 00 39 ed 41 01 07 .*..........d.99.A.@.......9.A..
3c60 4f fd ce 02 64 f7 a4 fe ce 03 ab 80 f6 07 eb 41 00 40 fc 00 1c fe 00 00 39 ed 41 01 08 79 fe ce O...d..........A.@......9.A..y..
3c80 03 ab 40 2b a4 fc ce 02 f7 0e 47 ec 41 00 40 fc 00 1c fe 00 00 39 ed 41 01 08 79 fe ce 03 ab 40 ..@+......G.A.@......9.A..y....@
3ca0 f6 c8 fc ce 02 f6 15 47 ec 41 00 40 fc 00 1e fe 00 00 3a ee 41 02 47 0e 79 fe ce 03 ab 40 f5 c8 .......G.A.@......:.A.G.y....@..
3cc0 fd ce 03 a4 f5 3a 47 ec 41 00 40 fc 00 1e fe 00 00 3a ee 41 02 47 0e 56 fe ce 03 fb 3a f6 c8 fd .....:G.A.@......:.A.G.V....:...
3ce0 ce 02 80 f5 40 eb 41 01 40 f5 fd 00 1e fe 00 00 40 ee 41 09 47 0f 56 ce ce c8 88 39 f6 c8 fd ce ....@.A.@.......@.A.G.V....9....
3d00 02 56 01 40 eb 41 01 40 f5 fd 00 1c fe 00 00 40 ee 41 09 47 39 32 ce ce c8 88 39 2a c8 fd ce 01 .V.@.A.@.......@.A.G92....9*....
3d20 56 07 e9 41 00 f6 fd 00 1b fe 00 00 40 ee 41 08 47 3a 32 ce ce c8 64 15 2a fc ce 01 32 07 e9 41 V..A........@.A.G:2...d.*...2..A
3d40 00 07 fd 00 1a fe 00 00 40 ed 41 07 40 32 ab ce c8 64 39 4e fc ce 01 3a 07 e9 41 00 07 fd 00 1d ........@.A.@2...d9N...:..A.....
3d60 03 00 00 f5 40 ed 41 07 40 0e ab ce ce 64 0f 4e fd ce 03 ab 40 08 40 ea 41 00 07 fd 00 1b 03 00 ....@.A.@....d.N....@.@.A.......
3d80 00 f5 40 ec 41 06 0f 81 ce ce 64 33 4e fd ce 02 ab 40 0e e9 41 00 0e fd 00 1c 02 00 00 f6 ec 41 ..@.A.....d3N....@..A..........A
3da0 07 47 15 fa ce ce 64 33 4e fd ce 03 87 0f 0e 47 ea 41 00 0e fd 00 1c 02 00 00 07 ec 41 07 47 16 .G....d3N......G.A..........A.G.
3dc0 f9 ce c8 64 33 4e fd ce 03 63 08 40 47 ea 41 00 0e fd 00 1a 02 00 00 07 eb 41 06 40 f9 ce c8 64 ...d3N...c.@G.A..........A.@...d
3de0 39 4e fd ce 02 39 40 47 e9 41 00 32 fd 00 1b 02 00 00 07 ea 41 05 39 ce ce 88 39 f6 fe ce 04 ab 9N...9@G.A.2........A.9...9.....
3e00 41 41 39 40 ea 41 00 32 fd 00 1c 02 00 00 07 eb 41 0e 47 3a c8 ce 88 39 f6 c8 ce ce 64 15 f6 f5 AA9@.A.2........A.G:...9....d...
3e20 40 ea 41 00 33 fd 00 1a 02 00 00 07 ea 41 0c 40 a4 ce 87 39 2a c8 ce ab 41 40 f8 f6 e9 41 00 39 @.A.3........A.@...9*...A@...A.9
3e40 fd 00 1b 02 00 00 0e eb 41 0d 47 41 ab c8 87 39 f5 c8 ce ab ab ce a4 07 e9 41 00 39 fd 00 1c 02 ........A.GA...9.........A.9....
3e60 00 00 0e ed 41 09 47 39 39 47 87 c8 ab 40 f5 c8 fd ce 01 a4 0e e9 41 00 39 fd 00 1d 02 00 00 0e ....A.G99G...@........A.9.......
3e80 ed 41 09 47 3a 00 07 80 ce ab 40 f5 c8 fd ce 02 55 0e 47 ea 41 00 39 fd 00 1b 02 00 00 0e eb 41 .A.G:.....@.....U.G.A.9........A
3ea0 07 07 79 c8 ce ce 40 f6 a4 fd ce 02 2b 39 47 ea 41 00 3a fd 00 1c 02 00 00 0e ec 41 02 47 39 79 ..y...@.....+9G.A.:........A.G9y
3ec0 fe ce 02 64 07 a4 fe ce 02 a4 07 40 e9 41 00 40 fd 00 1a 02 00 00 32 ea 41 06 32 a4 ce ce 88 08 ...d.......@.A.@......2.A.2.....
3ee0 79 fe ce 02 f9 0f 47 e9 41 00 40 fd 00 1a 02 00 00 32 eb 41 07 47 40 f7 c8 ce 87 0e 79 fe ce 01 y.....G.A.@......2.A.G@.....y...
3f00 32 40 e8 41 00 40 fd 00 19 02 00 00 33 ea 41 0b 47 40 f8 c8 ab 0e 55 ce ce 80 15 47 e8 41 00 40 2@.A.@......3.A.G@....U....G.A.@
3f20 fd 00 17 02 00 00 33 e9 41 08 47 40 f9 a4 39 4f ce ce 5d e6 41 01 40 f5 fe 00 14 02 00 00 39 e8 ......3.A.G@..9O..].A.@.......9.
3f40 41 06 47 64 fb 39 2b c8 ab e4 41 00 f6 fe 00 11 02 00 00 39 e5 41 03 40 f6 87 64 e4 41 00 07 fe A.Gd.9+...A........9.A.@..d.A...
3f60 00 1e 02 00 00 39 eb 41 02 3a 0e 0e fd 41 02 07 40 47 f6 41 04 40 0f 08 39 47 f4 41 00 07 fe 00 .....9.A.:...A..@G.A.@..9G.A....
3f80 27 02 00 00 39 fb 41 01 47 47 f2 41 02 08 00 40 fe 41 02 08 39 47 fc 41 01 47 47 fc 41 03 39 00 '...9.A.GG.A...@.A..9G.A.GG.A.9.
3fa0 39 47 f4 41 00 07 fe 00 29 02 00 00 39 fb 41 01 40 39 f3 41 09 47 0e f5 40 41 41 47 0e 33 47 fc 9G.A....)...9.A.@9.A.G..@AAG.3G.
3fc0 41 01 39 3a fd 41 04 47 39 00 39 47 f4 41 00 08 fe 00 36 02 00 00 3a fc 41 03 47 0e 00 40 fc 41 A.9:.A.G9.9G.A....6...:.A.G..@.A
3fe0 02 47 41 40 fc 41 09 47 0e f5 40 41 41 47 33 0e 47 fe 41 04 47 40 00 0e 47 fe 41 04 47 39 00 39 .GA@.A.G..@AAG3.G.A.G@..G.A.G9.9
4000 41 fe 40 f7 41 00 0e fe 00 3a 02 00 00 3a fd 41 0e 47 40 07 00 0e 40 47 41 41 47 39 0e 39 0e 40 A.@.A....:...:.A.G@...@GAAG9.9.@
4020 fe 41 08 47 0e f5 40 41 41 47 39 0e fc 41 03 0f 00 07 39 fe 41 07 47 39 00 39 40 08 0f 39 f7 41 .A.G..@AAG9..A....9.A.G9.9@..9.A
4040 00 0e fe 00 35 02 00 00 40 fb 41 02 0e 00 40 fe 41 0d 47 40 00 39 41 00 32 47 41 41 47 0e f5 40 ....5...@.A...@.A.G@.9A.2GAAG..@
4060 fe 41 01 40 08 fc 41 02 3a 00 0e fd 41 05 47 39 00 39 39 33 f5 41 00 0e fe 00 39 02 00 00 40 fc .A.@..A.:...A.G9.993.A....9...@.
4080 41 03 47 0e 00 40 fe 41 06 47 32 00 40 41 39 40 fe 41 03 47 0e f5 40 fd 41 01 08 40 fe 41 04 47 A.G..@.A.G2.@A9@.A.G..@.A..@.A.G
40a0 40 00 0e 47 fe 41 06 47 39 00 07 f5 40 47 f6 41 00 32 fe 00 3a 02 00 00 40 fc 41 0c 47 0e 00 40 @..G.A.G9...@G.A.2..:...@.A.G..@
40c0 47 41 41 47 0e 00 40 47 47 fd 41 03 47 0e f5 40 fe 41 0a 47 0e 39 47 41 41 47 40 00 0e 47 fe 41 GAAG..@GG.A.G..@.A.G.9GAAG@..G.A
40e0 07 47 39 00 0e 00 07 41 47 f7 41 00 32 fe 00 38 02 00 00 40 fc 41 02 47 0e 00 fd 41 06 47 39 00 .G9....AG.A.2..8...@.A.G...A.G9.
4100 3a 47 40 39 fe 41 02 47 0e f5 fd 41 0a 47 33 33 47 41 41 47 40 00 0e 47 fe 41 06 47 39 00 39 39 :G@9.A.G...A.G33GAAG@..G.A.G9.99
4120 00 0e f6 41 00 33 fe 00 3a 02 00 f5 40 fc 41 04 47 32 00 0e 39 fd 41 0b 0e 0e 40 33 3a 47 41 41 ...A.3..:...@.A.G2..9.A...@3:GAA
4140 3a 07 f5 39 fe 41 02 47 3a 0e fd 41 0f 40 f5 07 33 40 41 41 40 0e 00 0e 40 07 00 0e 40 f8 41 00 :..9.A.G:..A.@..3@AA@...@...@.A.
4160 39 fe 00 29 02 00 f5 40 fa 41 01 39 39 fb 41 02 3a 3a 40 fd 41 fd 40 fd 41 02 40 0e 40 fd 41 02 9..)...@.A.99.A.::@.A.@.A.@.@.A.
4180 40 39 40 fd 41 fa 40 f7 41 00 39 fe 00 2a 01 00 f6 f9 41 01 47 47 fb 41 01 47 47 fb 41 01 47 47 @9@.A.@.A.9..*....A.GG.A.GG.A.GG
41a0 fb 41 01 39 40 fd 41 01 47 47 fb 41 00 47 fe 41 00 47 f6 41 00 39 fe 00 0d 01 00 07 e1 41 00 40 .A.9@.A.GG.A.G.A.G.A.9.......A.@
41c0 e4 41 00 3a fe 00 09 01 00 07 c3 41 00 3a fe 00 09 01 00 07 c3 41 00 40 fe 00 09 01 00 07 c3 41 .A.:.......A.:.......A.@.......A
41e0 00 40 fe 00 09 01 00 07 c3 41 00 40 fe 00 0a 01 00 0e c3 41 03 40 f5 00 00 09 01 00 0e c2 41 02 .@.......A.@.......A.@........A.
4200 f6 00 00 09 01 00 0e c2 41 02 07 00 00 09 01 00 0e c2 41 02 07 00 00 11 01 00 0e ed 41 fe 40 00 ........A.........A.........A.@.
4220 3a f9 40 e2 41 02 07 00 00 2b 01 00 32 f9 41 fe 40 fe 39 06 32 0e 0e 07 07 f6 f5 f8 00 02 f5 f5 :.@.A....+..2.A.@.9.2...........
4240 f6 fb 07 fb 0e 03 32 32 33 33 fb 39 01 3a 3a fb 40 02 07 00 00 0e 0a 00 0e 39 39 32 0e 0e 07 07 ......2233.9.::.@........992....
4260 f6 f5 c8 00 02 bd 00 00 ff 00 00 00 e0 00 00 00 00 80 00 c0 00 e0 00 f0 00 f8 00 fc 00 f8 00 f0 ................................
4280 00 e0 00 c0 00 80 00 00 00 00 00 00 00 00 00 00 00 00 00 08 00 14 00 22 00 41 00 80 80 e3 80 22 .......................".A....."
42a0 00 22 00 22 00 3e 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 f8 f0 c4 f0 f2 70 09 00 04 .".".>......................p...
42c0 80 02 70 01 30 00 f0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 e4 ..p.0...........................
42e0 e0 ce 60 1b 00 31 80 00 00 00 00 00 00 00 00 00 00 00 00 00 00 63 00 94 80 94 80 7f 00 14 00 7f ..`..1...............c..........
4300 00 94 80 94 80 63 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 3f f8 1f f0 0f e0 07 c0 03 .....c.................?........
4320 80 01 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 01 00 03 80 07 c0 0f e0 1f ................................
4340 f0 3f f8 00 00 00 00 00 00 00 00 00 00 00 00 00 0a 58 c0 00 80 00 00 00 20 00 00 00 00 00 63 00 .?...............X............c.
4360 02 27 53 43 48 45 44 55 4c 45 5f 4e 41 4d 45 3d 41 67 65 6e 74 20 43 6f 6e 74 72 6f 6c 6c 65 72 .'SCHEDULE_NAME=Agent.Controller
4380 20 53 63 68 65 64 75 6c 65 38 53 43 48 45 44 55 4c 45 5f 50 41 54 48 3d 4c 6f 7a 6f 79 61 3a 53 .Schedule8SCHEDULE_PATH=Lozoya:S
43a0 79 73 74 65 6d 20 46 6f 6c 64 65 72 3a 54 63 6c 20 4c 69 62 3a 54 63 6c 2d 53 63 68 65 64 75 6c ystem.Folder:Tcl.Lib:Tcl-Schedul
43c0 65 72 00 00 28 52 23 20 74 6b 2e 74 63 6c 20 2d 2d 0a 23 0a 23 20 49 6e 69 74 69 61 6c 69 7a 61 er..(R#.tk.tcl.--.#.#.Initializa
43e0 74 69 6f 6e 20 73 63 72 69 70 74 20 6e 6f 72 6d 61 6c 6c 79 20 65 78 65 63 75 74 65 64 20 69 6e tion.script.normally.executed.in
4400 20 74 68 65 20 69 6e 74 65 72 70 72 65 74 65 72 20 66 6f 72 20 65 61 63 68 0a 23 20 54 6b 2d 62 .the.interpreter.for.each.#.Tk-b
4420 61 73 65 64 20 61 70 70 6c 69 63 61 74 69 6f 6e 2e 20 20 41 72 72 61 6e 67 65 73 20 63 6c 61 73 ased.application...Arranges.clas
4440 73 20 62 69 6e 64 69 6e 67 73 20 66 6f 72 20 77 69 64 67 65 74 73 2e 0a 23 0a 23 20 52 43 53 3a s.bindings.for.widgets..#.#.RCS:
4460 20 40 28 23 29 20 24 49 64 3a 20 74 6b 2e 74 63 6c 2c 76 20 31 2e 31 39 20 32 30 30 30 2f 30 32 .@(#).$Id:.tk.tcl,v.1.19.2000/02
4480 2f 30 38 20 31 30 3a 30 30 3a 35 35 20 68 6f 62 62 73 20 45 78 70 20 24 0a 23 0a 23 20 43 6f 70 /08.10:00:55.hobbs.Exp.$.#.#.Cop
44a0 79 72 69 67 68 74 20 28 63 29 20 31 39 39 32 2d 31 39 39 34 20 54 68 65 20 52 65 67 65 6e 74 73 yright.(c).1992-1994.The.Regents
44c0 20 6f 66 20 74 68 65 20 55 6e 69 76 65 72 73 69 74 79 20 6f 66 20 43 61 6c 69 66 6f 72 6e 69 61 .of.the.University.of.California
44e0 2e 0a 23 20 43 6f 70 79 72 69 67 68 74 20 28 63 29 20 31 39 39 34 2d 31 39 39 36 20 53 75 6e 20 ..#.Copyright.(c).1994-1996.Sun.
4500 4d 69 63 72 6f 73 79 73 74 65 6d 73 2c 20 49 6e 63 2e 0a 23 20 43 6f 70 79 72 69 67 68 74 20 28 Microsystems,.Inc..#.Copyright.(
4520 63 29 20 31 39 39 38 2d 32 30 30 30 20 53 63 72 69 70 74 69 63 73 20 43 6f 72 70 6f 72 61 74 69 c).1998-2000.Scriptics.Corporati
4540 6f 6e 2e 0a 23 0a 23 20 53 65 65 20 74 68 65 20 66 69 6c 65 20 22 6c 69 63 65 6e 73 65 2e 74 65 on..#.#.See.the.file."license.te
4560 72 6d 73 22 20 66 6f 72 20 69 6e 66 6f 72 6d 61 74 69 6f 6e 20 6f 6e 20 75 73 61 67 65 20 61 6e rms".for.information.on.usage.an
4580 64 20 72 65 64 69 73 74 72 69 62 75 74 69 6f 6e 0a 23 20 6f 66 20 74 68 69 73 20 66 69 6c 65 2c d.redistribution.#.of.this.file,
45a0 20 61 6e 64 20 66 6f 72 20 61 20 44 49 53 43 4c 41 49 4d 45 52 20 4f 46 20 41 4c 4c 20 57 41 52 .and.for.a.DISCLAIMER.OF.ALL.WAR
45c0 52 41 4e 54 49 45 53 2e 0a 0a 23 20 49 6e 73 69 73 74 20 6f 6e 20 72 75 6e 6e 69 6e 67 20 77 69 RANTIES...#.Insist.on.running.wi
45e0 74 68 20 63 6f 6d 70 61 74 69 62 6c 65 20 76 65 72 73 69 6f 6e 73 20 6f 66 20 54 63 6c 20 61 6e th.compatible.versions.of.Tcl.an
4600 64 20 54 6b 2e 0a 0a 70 61 63 6b 61 67 65 20 72 65 71 75 69 72 65 20 2d 65 78 61 63 74 20 54 6b d.Tk...package.require.-exact.Tk
4620 20 38 2e 33 0a 70 61 63 6b 61 67 65 20 72 65 71 75 69 72 65 20 2d 65 78 61 63 74 20 54 63 6c 20 .8.3.package.require.-exact.Tcl.
4640 38 2e 33 0a 0a 23 20 41 64 64 20 54 6b 27 73 20 64 69 72 65 63 74 6f 72 79 20 74 6f 20 74 68 65 8.3..#.Add.Tk's.directory.to.the
4660 20 65 6e 64 20 6f 66 20 74 68 65 20 61 75 74 6f 2d 6c 6f 61 64 20 73 65 61 72 63 68 20 70 61 74 .end.of.the.auto-load.search.pat
4680 68 2c 20 69 66 20 69 74 0a 23 20 69 73 6e 27 74 20 61 6c 72 65 61 64 79 20 6f 6e 20 74 68 65 20 h,.if.it.#.isn't.already.on.the.
46a0 70 61 74 68 3a 0a 0a 69 66 20 7b 5b 69 6e 66 6f 20 65 78 69 73 74 73 20 61 75 74 6f 5f 70 61 74 path:..if.{[info.exists.auto_pat
46c0 68 5d 20 26 26 20 5b 73 74 72 69 6e 67 20 63 6f 6d 70 61 72 65 20 7b 7d 20 24 74 6b 5f 6c 69 62 h].&&.[string.compare.{}.$tk_lib
46e0 72 61 72 79 5d 20 26 26 20 5c 0a 09 5b 6c 73 65 61 72 63 68 20 2d 65 78 61 63 74 20 24 61 75 74 rary].&&.\..[lsearch.-exact.$aut
4700 6f 5f 70 61 74 68 20 24 74 6b 5f 6c 69 62 72 61 72 79 5d 20 3c 20 30 7d 20 7b 0a 20 20 20 20 6c o_path.$tk_library].<.0}.{.....l
4720 61 70 70 65 6e 64 20 61 75 74 6f 5f 70 61 74 68 20 24 74 6b 5f 6c 69 62 72 61 72 79 0a 7d 0a 0a append.auto_path.$tk_library.}..
4740 23 20 54 75 72 6e 20 6f 66 66 20 73 74 72 69 63 74 20 4d 6f 74 69 66 20 6c 6f 6f 6b 20 61 6e 64 #.Turn.off.strict.Motif.look.and
4760 20 66 65 65 6c 20 61 73 20 61 20 64 65 66 61 75 6c 74 2e 0a 0a 73 65 74 20 74 6b 5f 73 74 72 69 .feel.as.a.default...set.tk_stri
4780 63 74 4d 6f 74 69 66 20 30 0a 0a 23 20 43 72 65 61 74 65 20 61 20 3a 3a 74 6b 20 6e 61 6d 65 73 ctMotif.0..#.Create.a.::tk.names
47a0 70 61 63 65 0a 0a 6e 61 6d 65 73 70 61 63 65 20 65 76 61 6c 20 3a 3a 74 6b 20 7b 0a 7d 0a 0a 23 pace..namespace.eval.::tk.{.}..#
47c0 20 3a 3a 74 6b 3a 3a 50 6c 61 63 65 57 69 6e 64 6f 77 20 2d 2d 0a 23 20 20 20 70 6c 61 63 65 20 .::tk::PlaceWindow.--.#...place.
47e0 61 20 74 6f 70 6c 65 76 65 6c 20 61 74 20 61 20 70 61 72 74 69 63 75 6c 61 72 20 70 6f 73 69 74 a.toplevel.at.a.particular.posit
4800 69 6f 6e 0a 23 20 41 72 67 75 6d 65 6e 74 73 3a 0a 23 20 20 20 74 6f 70 6c 65 76 65 6c 09 6e 61 ion.#.Arguments:.#...toplevel.na
4820 6d 65 20 6f 66 20 74 6f 70 6c 65 76 65 6c 20 77 69 6e 64 6f 77 0a 23 20 20 20 3f 70 6c 61 63 65 me.of.toplevel.window.#...?place
4840 6d 65 6e 74 3f 09 70 6f 69 6e 74 65 72 20 3f 63 65 6e 74 65 72 3f 20 3b 20 70 6c 61 63 65 73 20 ment?.pointer.?center?.;.places.
4860 24 77 20 63 65 6e 74 65 72 65 64 20 6f 6e 20 74 68 65 20 70 6f 69 6e 74 65 72 0a 23 09 09 77 69 $w.centered.on.the.pointer.#..wi
4880 64 67 65 74 20 77 69 64 67 65 74 50 61 74 68 20 3b 20 63 65 6e 74 65 72 73 20 24 77 20 6f 76 65 dget.widgetPath.;.centers.$w.ove
48a0 72 20 77 69 64 67 65 74 5f 6e 61 6d 65 0a 23 09 09 64 65 66 61 75 6c 74 73 20 74 6f 20 70 6c 61 r.widget_name.#..defaults.to.pla
48c0 63 69 6e 67 20 74 6f 70 6c 65 76 65 6c 20 69 6e 20 74 68 65 20 6d 69 64 64 6c 65 20 6f 66 20 74 cing.toplevel.in.the.middle.of.t
48e0 68 65 20 73 63 72 65 65 6e 0a 23 20 20 20 3f 61 6e 63 68 6f 72 3f 09 63 65 6e 74 65 72 20 6f 72 he.screen.#...?anchor?.center.or
4900 20 77 69 64 67 65 74 50 61 74 68 0a 23 20 52 65 73 75 6c 74 73 3a 0a 23 20 20 20 52 65 74 75 72 .widgetPath.#.Results:.#...Retur
4920 6e 73 20 6e 6f 74 68 69 6e 67 0a 23 0a 70 72 6f 63 20 3a 3a 74 6b 3a 3a 50 6c 61 63 65 57 69 6e ns.nothing.#.proc.::tk::PlaceWin
4940 64 6f 77 20 7b 77 20 7b 70 6c 61 63 65 20 22 22 7d 20 7b 61 6e 63 68 6f 72 20 22 22 7d 7d 20 7b dow.{w.{place.""}.{anchor.""}}.{
4960 0a 20 20 20 20 77 6d 20 77 69 74 68 64 72 61 77 20 24 77 0a 20 20 20 20 75 70 64 61 74 65 20 69 .....wm.withdraw.$w.....update.i
4980 64 6c 65 74 61 73 6b 73 0a 20 20 20 20 73 65 74 20 63 68 65 63 6b 42 6f 75 6e 64 73 20 31 0a 20 dletasks.....set.checkBounds.1..
49a0 20 20 20 69 66 20 7b 5b 73 74 72 69 6e 67 20 65 71 75 61 6c 20 2d 6c 65 6e 20 5b 73 74 72 69 6e ...if.{[string.equal.-len.[strin
49c0 67 20 6c 65 6e 67 74 68 20 24 70 6c 61 63 65 5d 20 24 70 6c 61 63 65 20 22 70 6f 69 6e 74 65 72 g.length.$place].$place."pointer
49e0 22 5d 7d 20 7b 0a 09 23 23 20 70 6c 61 63 65 20 61 74 20 50 4f 49 4e 54 45 52 20 28 63 65 6e 74 "]}.{..##.place.at.POINTER.(cent
4a00 65 72 65 64 20 69 66 20 24 61 6e 63 68 6f 72 20 3d 3d 20 63 65 6e 74 65 72 29 0a 09 69 66 20 7b ered.if.$anchor.==.center)..if.{
4a20 5b 73 74 72 69 6e 67 20 65 71 75 61 6c 20 2d 6c 65 6e 20 5b 73 74 72 69 6e 67 20 6c 65 6e 67 74 [string.equal.-len.[string.lengt
4a40 68 20 24 61 6e 63 68 6f 72 5d 20 24 61 6e 63 68 6f 72 20 22 63 65 6e 74 65 72 22 5d 7d 20 7b 0a h.$anchor].$anchor."center"]}.{.
4a60 09 20 20 20 20 73 65 74 20 78 20 5b 65 78 70 72 20 7b 5b 77 69 6e 66 6f 20 70 6f 69 6e 74 65 72 .....set.x.[expr.{[winfo.pointer
4a80 78 20 24 77 5d 2d 5b 77 69 6e 66 6f 20 72 65 71 77 69 64 74 68 20 24 77 5d 2f 32 7d 5d 0a 09 20 x.$w]-[winfo.reqwidth.$w]/2}]...
4aa0 20 20 20 73 65 74 20 79 20 5b 65 78 70 72 20 7b 5b 77 69 6e 66 6f 20 70 6f 69 6e 74 65 72 79 20 ...set.y.[expr.{[winfo.pointery.
4ac0 24 77 5d 2d 5b 77 69 6e 66 6f 20 72 65 71 68 65 69 67 68 74 20 24 77 5d 2f 32 7d 5d 0a 09 7d 20 $w]-[winfo.reqheight.$w]/2}]..}.
4ae0 65 6c 73 65 20 7b 0a 09 20 20 20 20 73 65 74 20 78 20 5b 77 69 6e 66 6f 20 70 6f 69 6e 74 65 72 else.{......set.x.[winfo.pointer
4b00 78 20 24 77 5d 0a 09 20 20 20 20 73 65 74 20 79 20 5b 77 69 6e 66 6f 20 70 6f 69 6e 74 65 72 79 x.$w]......set.y.[winfo.pointery
4b20 20 24 77 5d 0a 09 7d 0a 20 20 20 20 7d 20 65 6c 73 65 69 66 20 7b 5b 73 74 72 69 6e 67 20 65 71 .$w]..}.....}.elseif.{[string.eq
4b40 75 61 6c 20 2d 6c 65 6e 20 5b 73 74 72 69 6e 67 20 6c 65 6e 67 74 68 20 24 70 6c 61 63 65 5d 20 ual.-len.[string.length.$place].
4b60 24 70 6c 61 63 65 20 22 77 69 64 67 65 74 22 5d 20 26 26 20 5c 0a 09 20 20 20 20 5b 77 69 6e 66 $place."widget"].&&.\......[winf
4b80 6f 20 65 78 69 73 74 73 20 24 61 6e 63 68 6f 72 5d 20 26 26 20 5b 77 69 6e 66 6f 20 69 73 6d 61 o.exists.$anchor].&&.[winfo.isma
4ba0 70 70 65 64 20 24 61 6e 63 68 6f 72 5d 7d 20 7b 0a 09 23 23 20 63 65 6e 74 65 72 20 61 62 6f 75 pped.$anchor]}.{..##.center.abou
4bc0 74 20 57 49 44 47 45 54 20 24 61 6e 63 68 6f 72 2c 20 77 69 64 67 65 74 20 6d 75 73 74 20 62 65 t.WIDGET.$anchor,.widget.must.be
4be0 20 6d 61 70 70 65 64 0a 09 73 65 74 20 78 20 5b 65 78 70 72 20 7b 5b 77 69 6e 66 6f 20 72 6f 6f .mapped..set.x.[expr.{[winfo.roo
4c00 74 78 20 24 61 6e 63 68 6f 72 5d 20 2b 20 5c 0a 09 09 28 5b 77 69 6e 66 6f 20 77 69 64 74 68 20 tx.$anchor].+.\...([winfo.width.
4c20 24 61 6e 63 68 6f 72 5d 2d 5b 77 69 6e 66 6f 20 72 65 71 77 69 64 74 68 20 24 77 5d 29 2f 32 7d $anchor]-[winfo.reqwidth.$w])/2}
4c40 5d 0a 09 73 65 74 20 79 20 5b 65 78 70 72 20 7b 5b 77 69 6e 66 6f 20 72 6f 6f 74 79 20 24 61 6e ]..set.y.[expr.{[winfo.rooty.$an
4c60 63 68 6f 72 5d 20 2b 20 5c 0a 09 09 28 5b 77 69 6e 66 6f 20 68 65 69 67 68 74 20 24 61 6e 63 68 chor].+.\...([winfo.height.$anch
4c80 6f 72 5d 2d 5b 77 69 6e 66 6f 20 72 65 71 68 65 69 67 68 74 20 24 77 5d 29 2f 32 7d 5d 0a 20 20 or]-[winfo.reqheight.$w])/2}]...
4ca0 20 20 7d 20 65 6c 73 65 20 7b 0a 09 73 65 74 20 78 20 5b 65 78 70 72 20 7b 28 5b 77 69 6e 66 6f ..}.else.{..set.x.[expr.{([winfo
4cc0 20 73 63 72 65 65 6e 77 69 64 74 68 20 24 77 5d 2d 5b 77 69 6e 66 6f 20 72 65 71 77 69 64 74 68 .screenwidth.$w]-[winfo.reqwidth
4ce0 20 24 77 5d 29 2f 32 7d 5d 0a 09 73 65 74 20 79 20 5b 65 78 70 72 20 7b 28 5b 77 69 6e 66 6f 20 .$w])/2}]..set.y.[expr.{([winfo.
4d00 73 63 72 65 65 6e 68 65 69 67 68 74 20 24 77 5d 2d 5b 77 69 6e 66 6f 20 72 65 71 68 65 69 67 68 screenheight.$w]-[winfo.reqheigh
4d20 74 20 24 77 5d 29 2f 32 7d 5d 0a 09 73 65 74 20 63 68 65 63 6b 42 6f 75 6e 64 73 20 30 0a 20 20 t.$w])/2}]..set.checkBounds.0...
4d40 20 20 7d 0a 20 20 20 20 69 66 20 7b 24 63 68 65 63 6b 42 6f 75 6e 64 73 7d 20 7b 0a 09 69 66 20 ..}.....if.{$checkBounds}.{..if.
4d60 7b 24 78 20 3c 20 30 7d 20 7b 0a 09 20 20 20 20 73 65 74 20 78 20 30 0a 09 7d 20 65 6c 73 65 69 {$x.<.0}.{......set.x.0..}.elsei
4d80 66 20 7b 24 78 20 3e 20 28 5b 77 69 6e 66 6f 20 73 63 72 65 65 6e 77 69 64 74 68 20 24 77 5d 2d f.{$x.>.([winfo.screenwidth.$w]-
4da0 5b 77 69 6e 66 6f 20 72 65 71 77 69 64 74 68 20 24 77 5d 29 7d 20 7b 0a 09 20 20 20 20 73 65 74 [winfo.reqwidth.$w])}.{......set
4dc0 20 78 20 5b 65 78 70 72 20 7b 5b 77 69 6e 66 6f 20 73 63 72 65 65 6e 77 69 64 74 68 20 24 77 5d .x.[expr.{[winfo.screenwidth.$w]
4de0 2d 5b 77 69 6e 66 6f 20 72 65 71 77 69 64 74 68 20 24 77 5d 7d 5d 0a 09 7d 0a 09 69 66 20 7b 24 -[winfo.reqwidth.$w]}]..}..if.{$
4e00 79 20 3c 20 30 7d 20 7b 0a 09 20 20 20 20 73 65 74 20 79 20 30 0a 09 7d 20 65 6c 73 65 69 66 20 y.<.0}.{......set.y.0..}.elseif.
4e20 7b 24 79 20 3e 20 28 5b 77 69 6e 66 6f 20 73 63 72 65 65 6e 68 65 69 67 68 74 20 24 77 5d 2d 5b {$y.>.([winfo.screenheight.$w]-[
4e40 77 69 6e 66 6f 20 72 65 71 68 65 69 67 68 74 20 24 77 5d 29 7d 20 7b 0a 09 20 20 20 20 73 65 74 winfo.reqheight.$w])}.{......set
4e60 20 79 20 5b 65 78 70 72 20 7b 5b 77 69 6e 66 6f 20 73 63 72 65 65 6e 68 65 69 67 68 74 20 24 77 .y.[expr.{[winfo.screenheight.$w
4e80 5d 2d 5b 77 69 6e 66 6f 20 72 65 71 68 65 69 67 68 74 20 24 77 5d 7d 5d 0a 09 7d 0a 20 20 20 20 ]-[winfo.reqheight.$w]}]..}.....
4ea0 7d 0a 20 20 20 20 77 6d 20 67 65 6f 6d 65 74 72 79 20 24 77 20 2b 24 78 2b 24 79 0a 20 20 20 20 }.....wm.geometry.$w.+$x+$y.....
4ec0 77 6d 20 64 65 69 63 6f 6e 69 66 79 20 24 77 0a 7d 0a 0a 23 20 3a 3a 74 6b 3a 3a 53 65 74 46 6f wm.deiconify.$w.}..#.::tk::SetFo
4ee0 63 75 73 47 72 61 62 20 2d 2d 0a 23 20 20 20 73 77 61 70 20 6f 75 74 20 63 75 72 72 65 6e 74 20 cusGrab.--.#...swap.out.current.
4f00 66 6f 63 75 73 20 61 6e 64 20 67 72 61 62 20 74 65 6d 70 6f 72 61 72 69 6c 79 20 28 66 6f 72 20 focus.and.grab.temporarily.(for.
4f20 64 69 61 6c 6f 67 73 29 0a 23 20 41 72 67 75 6d 65 6e 74 73 3a 0a 23 20 20 20 67 72 61 62 09 6e dialogs).#.Arguments:.#...grab.n
4f40 65 77 20 77 69 6e 64 6f 77 20 74 6f 20 67 72 61 62 0a 23 20 20 20 66 6f 63 75 73 09 77 69 6e 64 ew.window.to.grab.#...focus.wind
4f60 6f 77 20 74 6f 20 67 69 76 65 20 66 6f 63 75 73 20 74 6f 0a 23 20 52 65 73 75 6c 74 73 3a 0a 23 ow.to.give.focus.to.#.Results:.#
4f80 20 20 20 52 65 74 75 72 6e 73 20 6e 6f 74 68 69 6e 67 0a 23 0a 70 72 6f 63 20 3a 3a 74 6b 3a 3a ...Returns.nothing.#.proc.::tk::
4fa0 53 65 74 46 6f 63 75 73 47 72 61 62 20 7b 67 72 61 62 20 7b 66 6f 63 75 73 20 7b 7d 7d 7d 20 7b SetFocusGrab.{grab.{focus.{}}}.{
4fc0 0a 20 20 20 20 73 65 74 20 69 6e 64 65 78 20 22 24 67 72 61 62 2c 24 66 6f 63 75 73 22 0a 20 20 .....set.index."$grab,$focus"...
4fe0 20 20 75 70 76 61 72 20 3a 3a 74 6b 3a 3a 46 6f 63 75 73 47 72 61 62 28 24 69 6e 64 65 78 29 20 ..upvar.::tk::FocusGrab($index).
5000 64 61 74 61 0a 0a 20 20 20 20 6c 61 70 70 65 6e 64 20 64 61 74 61 20 5b 66 6f 63 75 73 5d 0a 20 data......lappend.data.[focus]..
5020 20 20 20 73 65 74 20 6f 6c 64 47 72 61 62 20 5b 67 72 61 62 20 63 75 72 72 65 6e 74 20 24 67 72 ...set.oldGrab.[grab.current.$gr
5040 61 62 5d 0a 20 20 20 20 6c 61 70 70 65 6e 64 20 64 61 74 61 20 24 6f 6c 64 47 72 61 62 0a 20 20 ab].....lappend.data.$oldGrab...
5060 20 20 69 66 20 7b 5b 77 69 6e 66 6f 20 65 78 69 73 74 73 20 24 6f 6c 64 47 72 61 62 5d 7d 20 7b ..if.{[winfo.exists.$oldGrab]}.{
5080 0a 09 6c 61 70 70 65 6e 64 20 64 61 74 61 20 5b 67 72 61 62 20 73 74 61 74 75 73 20 24 6f 6c 64 ..lappend.data.[grab.status.$old
50a0 47 72 61 62 5d 0a 20 20 20 20 7d 0a 20 20 20 20 67 72 61 62 20 24 67 72 61 62 0a 20 20 20 20 69 Grab].....}.....grab.$grab.....i
50c0 66 20 7b 5b 77 69 6e 66 6f 20 65 78 69 73 74 73 20 24 66 6f 63 75 73 5d 7d 20 7b 0a 09 66 6f 63 f.{[winfo.exists.$focus]}.{..foc
50e0 75 73 20 24 66 6f 63 75 73 0a 20 20 20 20 7d 0a 7d 0a 0a 23 20 3a 3a 74 6b 3a 3a 52 65 73 74 6f us.$focus.....}.}..#.::tk::Resto
5100 72 65 46 6f 63 75 73 47 72 61 62 20 2d 2d 0a 23 20 20 20 72 65 73 74 6f 72 65 20 6f 6c 64 20 66 reFocusGrab.--.#...restore.old.f
5120 6f 63 75 73 20 61 6e 64 20 67 72 61 62 20 28 66 6f 72 20 64 69 61 6c 6f 67 73 29 0a 23 20 41 72 ocus.and.grab.(for.dialogs).#.Ar
5140 67 75 6d 65 6e 74 73 3a 0a 23 20 20 20 67 72 61 62 09 77 69 6e 64 6f 77 20 74 68 61 74 20 68 61 guments:.#...grab.window.that.ha
5160 64 20 74 61 6b 65 6e 20 67 72 61 62 0a 23 20 20 20 66 6f 63 75 73 09 77 69 6e 64 6f 77 20 74 68 d.taken.grab.#...focus.window.th
5180 61 74 20 68 61 64 20 74 61 6b 65 6e 20 66 6f 63 75 73 0a 23 20 20 20 64 65 73 74 72 6f 79 09 64 at.had.taken.focus.#...destroy.d
51a0 65 73 74 72 6f 79 7c 77 69 74 68 64 72 61 77 20 2d 20 68 6f 77 20 74 6f 20 68 61 6e 64 6c 65 20 estroy|withdraw.-.how.to.handle.
51c0 74 68 65 20 6f 6c 64 20 67 72 61 62 62 65 64 20 77 69 6e 64 6f 77 0a 23 20 52 65 73 75 6c 74 73 the.old.grabbed.window.#.Results
51e0 3a 0a 23 20 20 20 52 65 74 75 72 6e 73 20 6e 6f 74 68 69 6e 67 0a 23 0a 70 72 6f 63 20 3a 3a 74 :.#...Returns.nothing.#.proc.::t
5200 6b 3a 3a 52 65 73 74 6f 72 65 46 6f 63 75 73 47 72 61 62 20 7b 67 72 61 62 20 66 6f 63 75 73 20 k::RestoreFocusGrab.{grab.focus.
5220 7b 64 65 73 74 72 6f 79 20 64 65 73 74 72 6f 79 7d 7d 20 7b 0a 20 20 20 20 73 65 74 20 69 6e 64 {destroy.destroy}}.{.....set.ind
5240 65 78 20 22 24 67 72 61 62 2c 24 66 6f 63 75 73 22 0a 20 20 20 20 66 6f 72 65 61 63 68 20 7b 6f ex."$grab,$focus".....foreach.{o
5260 6c 64 46 6f 63 75 73 20 6f 6c 64 47 72 61 62 20 6f 6c 64 53 74 61 74 75 73 7d 20 24 3a 3a 74 6b ldFocus.oldGrab.oldStatus}.$::tk
5280 3a 3a 46 6f 63 75 73 47 72 61 62 28 24 69 6e 64 65 78 29 20 7b 20 62 72 65 61 6b 20 7d 0a 20 20 ::FocusGrab($index).{.break.}...
52a0 20 20 75 6e 73 65 74 20 3a 3a 74 6b 3a 3a 46 6f 63 75 73 47 72 61 62 28 24 69 6e 64 65 78 29 0a ..unset.::tk::FocusGrab($index).
52c0 0a 20 20 20 20 63 61 74 63 68 20 7b 66 6f 63 75 73 20 24 6f 6c 64 46 6f 63 75 73 7d 0a 20 20 20 .....catch.{focus.$oldFocus}....
52e0 20 67 72 61 62 20 72 65 6c 65 61 73 65 20 24 67 72 61 62 0a 20 20 20 20 69 66 20 7b 5b 73 74 72 .grab.release.$grab.....if.{[str
5300 69 6e 67 20 65 71 75 61 6c 20 24 64 65 73 74 72 6f 79 20 22 77 69 74 68 64 72 61 77 22 5d 7d 20 ing.equal.$destroy."withdraw"]}.
5320 7b 0a 09 77 6d 20 77 69 74 68 64 72 61 77 20 24 67 72 61 62 0a 20 20 20 20 7d 20 65 6c 73 65 20 {..wm.withdraw.$grab.....}.else.
5340 7b 0a 09 64 65 73 74 72 6f 79 20 24 67 72 61 62 0a 20 20 20 20 7d 0a 20 20 20 20 69 66 20 7b 5b {..destroy.$grab.....}.....if.{[
5360 77 69 6e 66 6f 20 65 78 69 73 74 73 20 24 6f 6c 64 47 72 61 62 5d 20 26 26 20 5b 77 69 6e 66 6f winfo.exists.$oldGrab].&&.[winfo
5380 20 69 73 6d 61 70 70 65 64 20 24 6f 6c 64 47 72 61 62 5d 7d 20 7b 0a 09 69 66 20 7b 5b 73 74 72 .ismapped.$oldGrab]}.{..if.{[str
53a0 69 6e 67 20 65 71 75 61 6c 20 24 6f 6c 64 53 74 61 74 75 73 20 22 67 6c 6f 62 61 6c 22 5d 7d 20 ing.equal.$oldStatus."global"]}.
53c0 7b 0a 09 20 20 20 20 67 72 61 62 20 2d 67 6c 6f 62 61 6c 20 24 6f 6c 64 47 72 61 62 0a 09 7d 20 {......grab.-global.$oldGrab..}.
53e0 65 6c 73 65 20 7b 0a 09 20 20 20 20 67 72 61 62 20 24 6f 6c 64 47 72 61 62 0a 09 7d 0a 20 20 20 else.{......grab.$oldGrab..}....
5400 20 7d 0a 7d 0a 0a 23 20 74 6b 53 63 72 65 65 6e 43 68 61 6e 67 65 64 20 2d 2d 0a 23 20 54 68 69 .}.}..#.tkScreenChanged.--.#.Thi
5420 73 20 70 72 6f 63 65 64 75 72 65 20 69 73 20 69 6e 76 6f 6b 65 64 20 62 79 20 74 68 65 20 62 69 s.procedure.is.invoked.by.the.bi
5440 6e 64 69 6e 67 20 6d 65 63 68 61 6e 69 73 6d 20 77 68 65 6e 65 76 65 72 20 74 68 65 0a 23 20 22 nding.mechanism.whenever.the.#."
5460 63 75 72 72 65 6e 74 22 20 73 63 72 65 65 6e 20 69 73 20 63 68 61 6e 67 69 6e 67 2e 20 20 54 68 current".screen.is.changing...Th
5480 65 20 70 72 6f 63 65 64 75 72 65 20 64 6f 65 73 20 74 77 6f 20 74 68 69 6e 67 73 2e 0a 23 20 46 e.procedure.does.two.things..#.F
54a0 69 72 73 74 2c 20 69 74 20 75 73 65 73 20 22 75 70 76 61 72 22 20 74 6f 20 6d 61 6b 65 20 67 6c irst,.it.uses."upvar".to.make.gl
54c0 6f 62 61 6c 20 76 61 72 69 61 62 6c 65 20 22 74 6b 50 72 69 76 22 20 70 6f 69 6e 74 20 61 74 20 obal.variable."tkPriv".point.at.
54e0 61 6e 0a 23 20 61 72 72 61 79 20 76 61 72 69 61 62 6c 65 20 74 68 61 74 20 68 6f 6c 64 73 20 73 an.#.array.variable.that.holds.s
5500 74 61 74 65 20 66 6f 72 20 74 68 65 20 63 75 72 72 65 6e 74 20 64 69 73 70 6c 61 79 2e 20 20 53 tate.for.the.current.display...S
5520 65 63 6f 6e 64 2c 0a 23 20 69 74 20 69 6e 69 74 69 61 6c 69 7a 65 73 20 74 68 65 20 61 72 72 61 econd,.#.it.initializes.the.arra
5540 79 20 69 66 20 69 74 20 64 69 64 6e 27 74 20 61 6c 72 65 61 64 79 20 65 78 69 73 74 2e 0a 23 0a y.if.it.didn't.already.exist..#.
5560 23 20 41 72 67 75 6d 65 6e 74 73 3a 0a 23 20 73 63 72 65 65 6e 20 2d 09 09 54 68 65 20 6e 61 6d #.Arguments:.#.screen.-..The.nam
5580 65 20 6f 66 20 74 68 65 20 6e 65 77 20 73 63 72 65 65 6e 2e 0a 0a 70 72 6f 63 20 74 6b 53 63 72 e.of.the.new.screen...proc.tkScr
55a0 65 65 6e 43 68 61 6e 67 65 64 20 73 63 72 65 65 6e 20 7b 0a 20 20 20 20 73 65 74 20 78 20 5b 73 eenChanged.screen.{.....set.x.[s
55c0 74 72 69 6e 67 20 6c 61 73 74 20 2e 20 24 73 63 72 65 65 6e 5d 0a 20 20 20 20 69 66 20 7b 24 78 tring.last...$screen].....if.{$x
55e0 20 3e 20 30 7d 20 7b 0a 09 73 65 74 20 64 69 73 70 20 5b 73 74 72 69 6e 67 20 72 61 6e 67 65 20 .>.0}.{..set.disp.[string.range.
5600 24 73 63 72 65 65 6e 20 30 20 5b 65 78 70 72 20 7b 24 78 20 2d 20 31 7d 5d 5d 0a 20 20 20 20 7d $screen.0.[expr.{$x.-.1}]].....}
5620 20 65 6c 73 65 20 7b 0a 09 73 65 74 20 64 69 73 70 20 24 73 63 72 65 65 6e 0a 20 20 20 20 7d 0a .else.{..set.disp.$screen.....}.
5640 0a 20 20 20 20 75 70 6c 65 76 65 6c 20 23 30 20 75 70 76 61 72 20 23 30 20 74 6b 50 72 69 76 2e .....uplevel.#0.upvar.#0.tkPriv.
5660 24 64 69 73 70 20 74 6b 50 72 69 76 0a 20 20 20 20 67 6c 6f 62 61 6c 20 74 6b 50 72 69 76 0a 20 $disp.tkPriv.....global.tkPriv..
5680 20 20 20 67 6c 6f 62 61 6c 20 74 63 6c 5f 70 6c 61 74 66 6f 72 6d 0a 0a 20 20 20 20 69 66 20 7b ...global.tcl_platform......if.{
56a0 5b 69 6e 66 6f 20 65 78 69 73 74 73 20 74 6b 50 72 69 76 5d 7d 20 7b 0a 09 73 65 74 20 74 6b 50 [info.exists.tkPriv]}.{..set.tkP
56c0 72 69 76 28 73 63 72 65 65 6e 29 20 24 73 63 72 65 65 6e 0a 09 72 65 74 75 72 6e 0a 20 20 20 20 riv(screen).$screen..return.....
56e0 7d 0a 20 20 20 20 61 72 72 61 79 20 73 65 74 20 74 6b 50 72 69 76 20 7b 0a 09 61 63 74 69 76 65 }.....array.set.tkPriv.{..active
5700 4d 65 6e 75 09 7b 7d 0a 09 61 63 74 69 76 65 49 74 65 6d 09 7b 7d 0a 09 61 66 74 65 72 49 64 09 Menu.{}..activeItem.{}..afterId.
5720 09 7b 7d 0a 09 62 75 74 74 6f 6e 73 09 09 30 0a 09 62 75 74 74 6f 6e 57 69 6e 64 6f 77 09 7b 7d .{}..buttons..0..buttonWindow.{}
5740 0a 09 64 72 61 67 67 69 6e 67 09 30 0a 09 66 6f 63 75 73 09 09 7b 7d 0a 09 67 72 61 62 09 09 7b ..dragging.0..focus..{}..grab..{
5760 7d 0a 09 69 6e 69 74 50 6f 73 09 09 7b 7d 0a 09 69 6e 4d 65 6e 75 62 75 74 74 6f 6e 09 7b 7d 0a }..initPos..{}..inMenubutton.{}.
5780 09 6c 69 73 74 62 6f 78 50 72 65 76 09 7b 7d 0a 09 6d 65 6e 75 42 61 72 09 09 7b 7d 0a 09 6d 6f .listboxPrev.{}..menuBar..{}..mo
57a0 75 73 65 4d 6f 76 65 64 09 30 0a 09 6f 6c 64 47 72 61 62 09 09 7b 7d 0a 09 70 6f 70 75 70 09 09 useMoved.0..oldGrab..{}..popup..
57c0 7b 7d 0a 09 70 6f 73 74 65 64 4d 62 09 7b 7d 0a 09 70 72 65 73 73 58 09 09 30 0a 09 70 72 65 73 {}..postedMb.{}..pressX..0..pres
57e0 73 59 09 09 30 0a 09 70 72 65 76 50 6f 73 09 09 30 0a 09 73 65 6c 65 63 74 4d 6f 64 65 09 63 68 sY..0..prevPos..0..selectMode.ch
5800 61 72 0a 20 20 20 20 7d 0a 20 20 20 20 73 65 74 20 74 6b 50 72 69 76 28 73 63 72 65 65 6e 29 20 ar.....}.....set.tkPriv(screen).
5820 24 73 63 72 65 65 6e 0a 20 20 20 20 73 65 74 20 74 6b 50 72 69 76 28 74 65 61 72 6f 66 66 29 20 $screen.....set.tkPriv(tearoff).
5840 5b 73 74 72 69 6e 67 20 65 71 75 61 6c 20 24 74 63 6c 5f 70 6c 61 74 66 6f 72 6d 28 70 6c 61 74 [string.equal.$tcl_platform(plat
5860 66 6f 72 6d 29 20 22 75 6e 69 78 22 5d 0a 20 20 20 20 73 65 74 20 74 6b 50 72 69 76 28 77 69 6e form)."unix"].....set.tkPriv(win
5880 64 6f 77 29 20 7b 7d 0a 7d 0a 0a 23 20 44 6f 20 69 6e 69 74 69 61 6c 20 73 65 74 75 70 20 66 6f dow).{}.}..#.Do.initial.setup.fo
58a0 72 20 74 6b 50 72 69 76 2c 20 73 6f 20 74 68 61 74 20 69 74 20 69 73 20 61 6c 77 61 79 73 20 62 r.tkPriv,.so.that.it.is.always.b
58c0 6f 75 6e 64 20 74 6f 20 73 6f 6d 65 74 68 69 6e 67 0a 23 20 28 6f 74 68 65 72 77 69 73 65 2c 20 ound.to.something.#.(otherwise,.
58e0 69 66 20 73 6f 6d 65 6f 6e 65 20 72 65 66 65 72 65 6e 63 65 73 20 69 74 2c 20 69 74 20 6d 61 79 if.someone.references.it,.it.may
5900 20 67 65 74 20 73 65 74 20 74 6f 20 61 20 6e 6f 6e 2d 75 70 76 61 72 2d 65 64 0a 23 20 76 61 6c .get.set.to.a.non-upvar-ed.#.val
5920 75 65 2c 20 77 68 69 63 68 20 77 69 6c 6c 20 63 61 75 73 65 20 74 72 6f 75 62 6c 65 20 6c 61 74 ue,.which.will.cause.trouble.lat
5940 65 72 29 2e 0a 0a 74 6b 53 63 72 65 65 6e 43 68 61 6e 67 65 64 20 5b 77 69 6e 66 6f 20 73 63 72 er)...tkScreenChanged.[winfo.scr
5960 65 65 6e 20 2e 5d 0a 0a 23 20 74 6b 45 76 65 6e 74 4d 6f 74 69 66 42 69 6e 64 69 6e 67 73 20 2d een..]..#.tkEventMotifBindings.-
5980 2d 0a 23 20 54 68 69 73 20 70 72 6f 63 65 64 75 72 65 20 69 73 20 69 6e 76 6f 6b 65 64 20 61 73 -.#.This.procedure.is.invoked.as
59a0 20 61 20 74 72 61 63 65 20 77 68 65 6e 65 76 65 72 20 74 6b 5f 73 74 72 69 63 74 4d 6f 74 69 66 .a.trace.whenever.tk_strictMotif
59c0 20 69 73 0a 23 20 63 68 61 6e 67 65 64 2e 20 20 49 74 20 69 73 20 75 73 65 64 20 74 6f 20 74 75 .is.#.changed...It.is.used.to.tu
59e0 72 6e 20 6f 6e 20 6f 72 20 74 75 72 6e 20 6f 66 66 20 74 68 65 20 6d 6f 74 69 66 20 76 69 72 74 rn.on.or.turn.off.the.motif.virt
5a00 75 61 6c 0a 23 20 62 69 6e 64 69 6e 67 73 2e 0a 23 0a 23 20 41 72 67 75 6d 65 6e 74 73 3a 0a 23 ual.#.bindings..#.#.Arguments:.#
5a20 20 6e 31 20 2d 20 74 68 65 20 6e 61 6d 65 20 6f 66 20 74 68 65 20 76 61 72 69 61 62 6c 65 20 62 .n1.-.the.name.of.the.variable.b
5a40 65 69 6e 67 20 63 68 61 6e 67 65 64 20 28 22 74 6b 5f 73 74 72 69 63 74 4d 6f 74 69 66 22 29 2e eing.changed.("tk_strictMotif").
5a60 0a 0a 70 72 6f 63 20 74 6b 45 76 65 6e 74 4d 6f 74 69 66 42 69 6e 64 69 6e 67 73 20 7b 6e 31 20 ..proc.tkEventMotifBindings.{n1.
5a80 64 75 6d 6d 79 20 64 75 6d 6d 79 7d 20 7b 0a 20 20 20 20 75 70 76 61 72 20 24 6e 31 20 6e 61 6d dummy.dummy}.{.....upvar.$n1.nam
5aa0 65 0a 20 20 20 20 0a 20 20 20 20 69 66 20 7b 24 6e 61 6d 65 7d 20 7b 0a 09 73 65 74 20 6f 70 20 e..........if.{$name}.{..set.op.
5ac0 64 65 6c 65 74 65 0a 20 20 20 20 7d 20 65 6c 73 65 20 7b 0a 09 73 65 74 20 6f 70 20 61 64 64 0a delete.....}.else.{..set.op.add.
5ae0 20 20 20 20 7d 0a 0a 20 20 20 20 65 76 65 6e 74 20 24 6f 70 20 3c 3c 43 75 74 3e 3e 20 3c 43 6f ....}......event.$op.<<Cut>>.<Co
5b00 6e 74 72 6f 6c 2d 4b 65 79 2d 77 3e 0a 20 20 20 20 65 76 65 6e 74 20 24 6f 70 20 3c 3c 43 6f 70 ntrol-Key-w>.....event.$op.<<Cop
5b20 79 3e 3e 20 3c 4d 65 74 61 2d 4b 65 79 2d 77 3e 20 0a 20 20 20 20 65 76 65 6e 74 20 24 6f 70 20 y>>.<Meta-Key-w>......event.$op.
5b40 3c 3c 50 61 73 74 65 3e 3e 20 3c 43 6f 6e 74 72 6f 6c 2d 4b 65 79 2d 79 3e 0a 7d 0a 0a 23 2d 2d <<Paste>>.<Control-Key-y>.}..#--
5b60 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d --------------------------------
5b80 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d --------------------------------
5ba0 2d 2d 2d 2d 0a 23 20 44 65 66 69 6e 65 20 63 6f 6d 6d 6f 6e 20 64 69 61 6c 6f 67 73 20 6f 6e 20 ----.#.Define.common.dialogs.on.
5bc0 70 6c 61 74 66 6f 72 6d 73 20 77 68 65 72 65 20 74 68 65 79 20 61 72 65 20 6e 6f 74 20 69 6d 70 platforms.where.they.are.not.imp
5be0 6c 65 6d 65 6e 74 65 64 20 0a 23 20 75 73 69 6e 67 20 63 6f 6d 70 69 6c 65 64 20 63 6f 64 65 2e lemented..#.using.compiled.code.
5c00 0a 23 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d .#------------------------------
5c20 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d --------------------------------
5c40 2d 2d 2d 2d 2d 2d 2d 2d 0a 0a 69 66 20 7b 5b 73 74 72 69 6e 67 20 65 71 75 61 6c 20 5b 69 6e 66 --------..if.{[string.equal.[inf
5c60 6f 20 63 6f 6d 6d 61 6e 64 73 20 74 6b 5f 63 68 6f 6f 73 65 43 6f 6c 6f 72 5d 20 22 22 5d 7d 20 o.commands.tk_chooseColor].""]}.
5c80 7b 0a 20 20 20 20 70 72 6f 63 20 74 6b 5f 63 68 6f 6f 73 65 43 6f 6c 6f 72 20 7b 61 72 67 73 7d {.....proc.tk_chooseColor.{args}
5ca0 20 7b 0a 09 72 65 74 75 72 6e 20 5b 65 76 61 6c 20 74 6b 43 6f 6c 6f 72 44 69 61 6c 6f 67 20 24 .{..return.[eval.tkColorDialog.$
5cc0 61 72 67 73 5d 0a 20 20 20 20 7d 0a 7d 0a 69 66 20 7b 5b 73 74 72 69 6e 67 20 65 71 75 61 6c 20 args].....}.}.if.{[string.equal.
5ce0 5b 69 6e 66 6f 20 63 6f 6d 6d 61 6e 64 73 20 74 6b 5f 67 65 74 4f 70 65 6e 46 69 6c 65 5d 20 22 [info.commands.tk_getOpenFile]."
5d00 22 5d 7d 20 7b 0a 20 20 20 20 70 72 6f 63 20 74 6b 5f 67 65 74 4f 70 65 6e 46 69 6c 65 20 7b 61 "]}.{.....proc.tk_getOpenFile.{a
5d20 72 67 73 7d 20 7b 0a 09 69 66 20 7b 24 3a 3a 74 6b 5f 73 74 72 69 63 74 4d 6f 74 69 66 7d 20 7b rgs}.{..if.{$::tk_strictMotif}.{
5d40 0a 09 20 20 20 20 72 65 74 75 72 6e 20 5b 65 76 61 6c 20 74 6b 4d 6f 74 69 66 46 44 69 61 6c 6f ......return.[eval.tkMotifFDialo
5d60 67 20 6f 70 65 6e 20 24 61 72 67 73 5d 0a 09 7d 20 65 6c 73 65 20 7b 0a 09 20 20 20 20 72 65 74 g.open.$args]..}.else.{......ret
5d80 75 72 6e 20 5b 65 76 61 6c 20 74 6b 46 44 69 61 6c 6f 67 20 6f 70 65 6e 20 24 61 72 67 73 5d 0a urn.[eval.tkFDialog.open.$args].
5da0 09 7d 0a 20 20 20 20 7d 0a 7d 0a 69 66 20 7b 5b 73 74 72 69 6e 67 20 65 71 75 61 6c 20 5b 69 6e .}.....}.}.if.{[string.equal.[in
5dc0 66 6f 20 63 6f 6d 6d 61 6e 64 73 20 74 6b 5f 67 65 74 53 61 76 65 46 69 6c 65 5d 20 22 22 5d 7d fo.commands.tk_getSaveFile].""]}
5de0 20 7b 0a 20 20 20 20 70 72 6f 63 20 74 6b 5f 67 65 74 53 61 76 65 46 69 6c 65 20 7b 61 72 67 73 .{.....proc.tk_getSaveFile.{args
5e00 7d 20 7b 0a 09 69 66 20 7b 24 3a 3a 74 6b 5f 73 74 72 69 63 74 4d 6f 74 69 66 7d 20 7b 0a 09 20 }.{..if.{$::tk_strictMotif}.{...
5e20 20 20 20 72 65 74 75 72 6e 20 5b 65 76 61 6c 20 74 6b 4d 6f 74 69 66 46 44 69 61 6c 6f 67 20 73 ...return.[eval.tkMotifFDialog.s
5e40 61 76 65 20 24 61 72 67 73 5d 0a 09 7d 20 65 6c 73 65 20 7b 0a 09 20 20 20 20 72 65 74 75 72 6e ave.$args]..}.else.{......return
5e60 20 5b 65 76 61 6c 20 74 6b 46 44 69 61 6c 6f 67 20 73 61 76 65 20 24 61 72 67 73 5d 0a 09 7d 0a .[eval.tkFDialog.save.$args]..}.
5e80 20 20 20 20 7d 0a 7d 0a 69 66 20 7b 5b 73 74 72 69 6e 67 20 65 71 75 61 6c 20 5b 69 6e 66 6f 20 ....}.}.if.{[string.equal.[info.
5ea0 63 6f 6d 6d 61 6e 64 73 20 74 6b 5f 6d 65 73 73 61 67 65 42 6f 78 5d 20 22 22 5d 7d 20 7b 0a 20 commands.tk_messageBox].""]}.{..
5ec0 20 20 20 70 72 6f 63 20 74 6b 5f 6d 65 73 73 61 67 65 42 6f 78 20 7b 61 72 67 73 7d 20 7b 0a 09 ...proc.tk_messageBox.{args}.{..
5ee0 72 65 74 75 72 6e 20 5b 65 76 61 6c 20 74 6b 4d 65 73 73 61 67 65 42 6f 78 20 24 61 72 67 73 5d return.[eval.tkMessageBox.$args]
5f00 0a 20 20 20 20 7d 0a 7d 0a 69 66 20 7b 5b 73 74 72 69 6e 67 20 65 71 75 61 6c 20 5b 69 6e 66 6f .....}.}.if.{[string.equal.[info
5f20 20 63 6f 6d 6d 61 6e 64 20 74 6b 5f 63 68 6f 6f 73 65 44 69 72 65 63 74 6f 72 79 5d 20 22 22 5d .command.tk_chooseDirectory].""]
5f40 7d 20 7b 0a 20 20 20 20 70 72 6f 63 20 74 6b 5f 63 68 6f 6f 73 65 44 69 72 65 63 74 6f 72 79 20 }.{.....proc.tk_chooseDirectory.
5f60 7b 61 72 67 73 7d 20 7b 0a 09 72 65 74 75 72 6e 20 5b 65 76 61 6c 20 3a 3a 74 6b 3a 3a 64 69 61 {args}.{..return.[eval.::tk::dia
5f80 6c 6f 67 3a 3a 63 68 6f 6f 73 65 44 69 72 3a 3a 74 6b 43 68 6f 6f 73 65 44 69 72 65 63 74 6f 72 log::chooseDir::tkChooseDirector
5fa0 79 20 24 61 72 67 73 5d 0a 20 20 20 20 7d 0a 7d 0a 09 0a 23 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d y.$args].....}.}...#------------
5fc0 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d --------------------------------
5fe0 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 0a 23 20 44 65 66 --------------------------.#.Def
6000 69 6e 65 20 74 68 65 20 73 65 74 20 6f 66 20 63 6f 6d 6d 6f 6e 20 76 69 72 74 75 61 6c 20 65 76 ine.the.set.of.common.virtual.ev
6020 65 6e 74 73 2e 0a 23 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d ents..#-------------------------
6040 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d --------------------------------
6060 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 0a 0a 73 77 69 74 63 68 20 24 74 63 6c 5f 70 6c 61 74 66 -------------..switch.$tcl_platf
6080 6f 72 6d 28 70 6c 61 74 66 6f 72 6d 29 20 7b 0a 20 20 20 20 22 75 6e 69 78 22 20 7b 0a 09 65 76 orm(platform).{....."unix".{..ev
60a0 65 6e 74 20 61 64 64 20 3c 3c 43 75 74 3e 3e 20 3c 43 6f 6e 74 72 6f 6c 2d 4b 65 79 2d 78 3e 20 ent.add.<<Cut>>.<Control-Key-x>.
60c0 3c 4b 65 79 2d 46 32 30 3e 20 0a 09 65 76 65 6e 74 20 61 64 64 20 3c 3c 43 6f 70 79 3e 3e 20 3c <Key-F20>...event.add.<<Copy>>.<
60e0 43 6f 6e 74 72 6f 6c 2d 4b 65 79 2d 63 3e 20 3c 4b 65 79 2d 46 31 36 3e 0a 09 65 76 65 6e 74 20 Control-Key-c>.<Key-F16>..event.
6100 61 64 64 20 3c 3c 50 61 73 74 65 3e 3e 20 3c 43 6f 6e 74 72 6f 6c 2d 4b 65 79 2d 76 3e 20 3c 4b add.<<Paste>>.<Control-Key-v>.<K
6120 65 79 2d 46 31 38 3e 0a 09 65 76 65 6e 74 20 61 64 64 20 3c 3c 50 61 73 74 65 53 65 6c 65 63 74 ey-F18>..event.add.<<PasteSelect
6140 69 6f 6e 3e 3e 20 3c 42 75 74 74 6f 6e 52 65 6c 65 61 73 65 2d 32 3e 0a 09 23 20 53 6f 6d 65 20 ion>>.<ButtonRelease-2>..#.Some.
6160 4f 53 27 73 20 64 65 66 69 6e 65 20 61 20 67 6f 6f 66 79 20 28 61 73 20 69 6e 2c 20 6e 6f 74 20 OS's.define.a.goofy.(as.in,.not.
6180 3c 53 68 69 66 74 2d 54 61 62 3e 29 20 6b 65 79 73 79 6d 0a 09 23 20 74 68 61 74 20 69 73 20 72 <Shift-Tab>).keysym..#.that.is.r
61a0 65 74 75 72 6e 65 64 20 77 68 65 6e 20 74 68 65 20 75 73 65 72 20 70 72 65 73 73 65 73 20 3c 53 eturned.when.the.user.presses.<S
61c0 68 69 66 74 2d 54 61 62 3e 2e 20 20 49 6e 20 6f 72 64 65 72 20 66 6f 72 0a 09 23 20 74 61 62 20 hift-Tab>...In.order.for..#.tab.
61e0 74 72 61 76 65 72 73 61 6c 20 74 6f 20 77 6f 72 6b 2c 20 77 65 20 68 61 76 65 20 74 6f 20 61 64 traversal.to.work,.we.have.to.ad
6200 64 20 74 68 65 73 65 20 6b 65 79 73 79 6d 73 20 74 6f 20 74 68 65 20 0a 09 23 20 50 72 65 76 57 d.these.keysyms.to.the...#.PrevW
6220 69 6e 64 6f 77 20 65 76 65 6e 74 2e 0a 09 23 20 54 68 65 20 69 6e 66 6f 20 65 78 69 73 74 73 20 indow.event...#.The.info.exists.
6240 69 73 20 6e 65 63 65 73 73 61 72 79 2c 20 62 65 63 61 75 73 65 20 74 63 6c 5f 70 6c 61 74 66 6f is.necessary,.because.tcl_platfo
6260 72 6d 28 6f 73 29 20 64 6f 65 73 6e 27 74 0a 09 23 20 65 78 69 73 74 20 69 6e 20 73 61 66 65 20 rm(os).doesn't..#.exist.in.safe.
6280 69 6e 74 65 72 70 72 65 74 65 72 73 2e 0a 09 69 66 20 7b 5b 69 6e 66 6f 20 65 78 69 73 74 73 20 interpreters...if.{[info.exists.
62a0 74 63 6c 5f 70 6c 61 74 66 6f 72 6d 28 6f 73 29 5d 7d 20 7b 0a 09 20 20 20 20 73 77 69 74 63 68 tcl_platform(os)]}.{......switch
62c0 20 24 74 63 6c 5f 70 6c 61 74 66 6f 72 6d 28 6f 73 29 20 7b 0a 09 09 22 49 52 49 58 22 20 20 2d .$tcl_platform(os).{..."IRIX"..-
62e0 0a 09 09 22 4c 69 6e 75 78 22 20 7b 20 65 76 65 6e 74 20 61 64 64 20 3c 3c 50 72 65 76 57 69 6e ..."Linux".{.event.add.<<PrevWin
6300 64 6f 77 3e 3e 20 3c 49 53 4f 5f 4c 65 66 74 5f 54 61 62 3e 20 7d 0a 09 09 22 48 50 2d 55 58 22 dow>>.<ISO_Left_Tab>.}..."HP-UX"
6320 20 7b 20 65 76 65 6e 74 20 61 64 64 20 3c 3c 50 72 65 76 57 69 6e 64 6f 77 3e 3e 20 3c 68 70 42 .{.event.add.<<PrevWindow>>.<hpB
6340 61 63 6b 54 61 62 3e 20 7d 0a 09 20 20 20 20 7d 0a 09 7d 0a 09 74 72 61 63 65 20 76 61 72 69 61 ackTab>.}......}..}..trace.varia
6360 62 6c 65 20 74 6b 5f 73 74 72 69 63 74 4d 6f 74 69 66 20 77 20 74 6b 45 76 65 6e 74 4d 6f 74 69 ble.tk_strictMotif.w.tkEventMoti
6380 66 42 69 6e 64 69 6e 67 73 0a 09 73 65 74 20 74 6b 5f 73 74 72 69 63 74 4d 6f 74 69 66 20 24 74 fBindings..set.tk_strictMotif.$t
63a0 6b 5f 73 74 72 69 63 74 4d 6f 74 69 66 0a 20 20 20 20 7d 0a 20 20 20 20 22 77 69 6e 64 6f 77 73 k_strictMotif.....}....."windows
63c0 22 20 7b 0a 09 65 76 65 6e 74 20 61 64 64 20 3c 3c 43 75 74 3e 3e 20 3c 43 6f 6e 74 72 6f 6c 2d ".{..event.add.<<Cut>>.<Control-
63e0 4b 65 79 2d 78 3e 20 3c 53 68 69 66 74 2d 4b 65 79 2d 44 65 6c 65 74 65 3e 0a 09 65 76 65 6e 74 Key-x>.<Shift-Key-Delete>..event
6400 20 61 64 64 20 3c 3c 43 6f 70 79 3e 3e 20 3c 43 6f 6e 74 72 6f 6c 2d 4b 65 79 2d 63 3e 20 3c 43 .add.<<Copy>>.<Control-Key-c>.<C
6420 6f 6e 74 72 6f 6c 2d 4b 65 79 2d 49 6e 73 65 72 74 3e 0a 09 65 76 65 6e 74 20 61 64 64 20 3c 3c ontrol-Key-Insert>..event.add.<<
6440 50 61 73 74 65 3e 3e 20 3c 43 6f 6e 74 72 6f 6c 2d 4b 65 79 2d 76 3e 20 3c 53 68 69 66 74 2d 4b Paste>>.<Control-Key-v>.<Shift-K
6460 65 79 2d 49 6e 73 65 72 74 3e 0a 09 65 76 65 6e 74 20 61 64 64 20 3c 3c 50 61 73 74 65 53 65 6c ey-Insert>..event.add.<<PasteSel
6480 65 63 74 69 6f 6e 3e 3e 20 3c 42 75 74 74 6f 6e 52 65 6c 65 61 73 65 2d 32 3e 0a 20 20 20 20 7d ection>>.<ButtonRelease-2>.....}
64a0 0a 20 20 20 20 22 6d 61 63 69 6e 74 6f 73 68 22 20 7b 0a 09 65 76 65 6e 74 20 61 64 64 20 3c 3c ....."macintosh".{..event.add.<<
64c0 43 75 74 3e 3e 20 3c 43 6f 6e 74 72 6f 6c 2d 4b 65 79 2d 78 3e 20 3c 4b 65 79 2d 46 32 3e 20 0a Cut>>.<Control-Key-x>.<Key-F2>..
64e0 09 65 76 65 6e 74 20 61 64 64 20 3c 3c 43 6f 70 79 3e 3e 20 3c 43 6f 6e 74 72 6f 6c 2d 4b 65 79 .event.add.<<Copy>>.<Control-Key
6500 2d 63 3e 20 3c 4b 65 79 2d 46 33 3e 0a 09 65 76 65 6e 74 20 61 64 64 20 3c 3c 50 61 73 74 65 3e -c>.<Key-F3>..event.add.<<Paste>
6520 3e 20 3c 43 6f 6e 74 72 6f 6c 2d 4b 65 79 2d 76 3e 20 3c 4b 65 79 2d 46 34 3e 0a 09 65 76 65 6e >.<Control-Key-v>.<Key-F4>..even
6540 74 20 61 64 64 20 3c 3c 50 61 73 74 65 53 65 6c 65 63 74 69 6f 6e 3e 3e 20 3c 42 75 74 74 6f 6e t.add.<<PasteSelection>>.<Button
6560 52 65 6c 65 61 73 65 2d 32 3e 0a 09 65 76 65 6e 74 20 61 64 64 20 3c 3c 43 6c 65 61 72 3e 3e 20 Release-2>..event.add.<<Clear>>.
6580 3c 43 6c 65 61 72 3e 0a 20 20 20 20 7d 0a 7d 0a 0a 23 20 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d <Clear>.....}.}..#.-------------
65a0 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d --------------------------------
65c0 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 0a 23 20 52 65 61 64 -------------------------.#.Read
65e0 20 69 6e 20 66 69 6c 65 73 20 74 68 61 74 20 64 65 66 69 6e 65 20 61 6c 6c 20 6f 66 20 74 68 65 .in.files.that.define.all.of.the
6600 20 63 6c 61 73 73 20 62 69 6e 64 69 6e 67 73 2e 0a 23 20 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d .class.bindings..#.-------------
6620 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d --------------------------------
6640 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 0a 0a 69 66 20 7b 5b -------------------------..if.{[
6660 73 74 72 69 6e 67 20 63 6f 6d 70 61 72 65 20 24 74 63 6c 5f 70 6c 61 74 66 6f 72 6d 28 70 6c 61 string.compare.$tcl_platform(pla
6680 74 66 6f 72 6d 29 20 22 6d 61 63 69 6e 74 6f 73 68 22 5d 20 26 26 20 5c 0a 09 5b 73 74 72 69 6e tform)."macintosh"].&&.\..[strin
66a0 67 20 63 6f 6d 70 61 72 65 20 7b 7d 20 24 74 6b 5f 6c 69 62 72 61 72 79 5d 7d 20 7b 0a 20 20 20 g.compare.{}.$tk_library]}.{....
66c0 20 73 6f 75 72 63 65 20 5b 66 69 6c 65 20 6a 6f 69 6e 20 24 74 6b 5f 6c 69 62 72 61 72 79 20 62 .source.[file.join.$tk_library.b
66e0 75 74 74 6f 6e 2e 74 63 6c 5d 0a 20 20 20 20 73 6f 75 72 63 65 20 5b 66 69 6c 65 20 6a 6f 69 6e utton.tcl].....source.[file.join
6700 20 24 74 6b 5f 6c 69 62 72 61 72 79 20 65 6e 74 72 79 2e 74 63 6c 5d 0a 20 20 20 20 73 6f 75 72 .$tk_library.entry.tcl].....sour
6720 63 65 20 5b 66 69 6c 65 20 6a 6f 69 6e 20 24 74 6b 5f 6c 69 62 72 61 72 79 20 6c 69 73 74 62 6f ce.[file.join.$tk_library.listbo
6740 78 2e 74 63 6c 5d 0a 20 20 20 20 73 6f 75 72 63 65 20 5b 66 69 6c 65 20 6a 6f 69 6e 20 24 74 6b x.tcl].....source.[file.join.$tk
6760 5f 6c 69 62 72 61 72 79 20 6d 65 6e 75 2e 74 63 6c 5d 0a 20 20 20 20 73 6f 75 72 63 65 20 5b 66 _library.menu.tcl].....source.[f
6780 69 6c 65 20 6a 6f 69 6e 20 24 74 6b 5f 6c 69 62 72 61 72 79 20 73 63 61 6c 65 2e 74 63 6c 5d 0a ile.join.$tk_library.scale.tcl].
67a0 20 20 20 20 73 6f 75 72 63 65 20 5b 66 69 6c 65 20 6a 6f 69 6e 20 24 74 6b 5f 6c 69 62 72 61 72 ....source.[file.join.$tk_librar
67c0 79 20 73 63 72 6c 62 61 72 2e 74 63 6c 5d 0a 20 20 20 20 73 6f 75 72 63 65 20 5b 66 69 6c 65 20 y.scrlbar.tcl].....source.[file.
67e0 6a 6f 69 6e 20 24 74 6b 5f 6c 69 62 72 61 72 79 20 74 65 78 74 2e 74 63 6c 5d 0a 7d 0a 0a 23 20 join.$tk_library.text.tcl].}..#.
6800 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d --------------------------------
6820 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d --------------------------------
6840 2d 2d 2d 2d 2d 2d 0a 23 20 44 65 66 61 75 6c 74 20 62 69 6e 64 69 6e 67 73 20 66 6f 72 20 6b 65 ------.#.Default.bindings.for.ke
6860 79 62 6f 61 72 64 20 74 72 61 76 65 72 73 61 6c 2e 0a 23 20 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d yboard.traversal..#.------------
6880 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d --------------------------------
68a0 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 0a 0a 65 76 65 6e --------------------------..even
68c0 74 20 61 64 64 20 3c 3c 50 72 65 76 57 69 6e 64 6f 77 3e 3e 20 3c 53 68 69 66 74 2d 54 61 62 3e t.add.<<PrevWindow>>.<Shift-Tab>
68e0 0a 62 69 6e 64 20 61 6c 6c 20 3c 54 61 62 3e 20 7b 74 6b 54 61 62 54 6f 57 69 6e 64 6f 77 20 5b .bind.all.<Tab>.{tkTabToWindow.[
6900 74 6b 5f 66 6f 63 75 73 4e 65 78 74 20 25 57 5d 7d 0a 62 69 6e 64 20 61 6c 6c 20 3c 3c 50 72 65 tk_focusNext.%W]}.bind.all.<<Pre
6920 76 57 69 6e 64 6f 77 3e 3e 20 7b 74 6b 54 61 62 54 6f 57 69 6e 64 6f 77 20 5b 74 6b 5f 66 6f 63 vWindow>>.{tkTabToWindow.[tk_foc
6940 75 73 50 72 65 76 20 25 57 5d 7d 0a 0a 23 20 74 6b 43 61 6e 63 65 6c 52 65 70 65 61 74 20 2d 2d usPrev.%W]}..#.tkCancelRepeat.--
6960 0a 23 20 54 68 69 73 20 70 72 6f 63 65 64 75 72 65 20 69 73 20 69 6e 76 6f 6b 65 64 20 74 6f 20 .#.This.procedure.is.invoked.to.
6980 63 61 6e 63 65 6c 20 61 6e 20 61 75 74 6f 2d 72 65 70 65 61 74 20 61 63 74 69 6f 6e 20 64 65 73 cancel.an.auto-repeat.action.des
69a0 63 72 69 62 65 64 0a 23 20 62 79 20 74 6b 50 72 69 76 28 61 66 74 65 72 49 64 29 2e 20 20 49 74 cribed.#.by.tkPriv(afterId)...It
69c0 27 73 20 75 73 65 64 20 62 79 20 73 65 76 65 72 61 6c 20 77 69 64 67 65 74 73 20 74 6f 20 61 75 's.used.by.several.widgets.to.au
69e0 74 6f 2d 73 63 72 6f 6c 6c 0a 23 20 74 68 65 20 77 69 64 67 65 74 20 77 68 65 6e 20 74 68 65 20 to-scroll.#.the.widget.when.the.
6a00 6d 6f 75 73 65 20 69 73 20 64 72 61 67 67 65 64 20 6f 75 74 20 6f 66 20 74 68 65 20 77 69 64 67 mouse.is.dragged.out.of.the.widg
6a20 65 74 20 77 69 74 68 20 61 0a 23 20 62 75 74 74 6f 6e 20 70 72 65 73 73 65 64 2e 0a 23 0a 23 20 et.with.a.#.button.pressed..#.#.
6a40 41 72 67 75 6d 65 6e 74 73 3a 0a 23 20 4e 6f 6e 65 2e 0a 0a 70 72 6f 63 20 74 6b 43 61 6e 63 65 Arguments:.#.None...proc.tkCance
6a60 6c 52 65 70 65 61 74 20 7b 7d 20 7b 0a 20 20 20 20 67 6c 6f 62 61 6c 20 74 6b 50 72 69 76 0a 20 lRepeat.{}.{.....global.tkPriv..
6a80 20 20 20 61 66 74 65 72 20 63 61 6e 63 65 6c 20 24 74 6b 50 72 69 76 28 61 66 74 65 72 49 64 29 ...after.cancel.$tkPriv(afterId)
6aa0 0a 20 20 20 20 73 65 74 20 74 6b 50 72 69 76 28 61 66 74 65 72 49 64 29 20 7b 7d 0a 7d 0a 0a 23 .....set.tkPriv(afterId).{}.}..#
6ac0 20 74 6b 54 61 62 54 6f 57 69 6e 64 6f 77 20 2d 2d 0a 23 20 54 68 69 73 20 70 72 6f 63 65 64 75 .tkTabToWindow.--.#.This.procedu
6ae0 72 65 20 6d 6f 76 65 73 20 74 68 65 20 66 6f 63 75 73 20 74 6f 20 74 68 65 20 67 69 76 65 6e 20 re.moves.the.focus.to.the.given.
6b00 77 69 64 67 65 74 2e 20 20 49 66 20 74 68 65 20 77 69 64 67 65 74 0a 23 20 69 73 20 61 6e 20 65 widget...If.the.widget.#.is.an.e
6b20 6e 74 72 79 2c 20 69 74 20 73 65 6c 65 63 74 73 20 74 68 65 20 65 6e 74 69 72 65 20 63 6f 6e 74 ntry,.it.selects.the.entire.cont
6b40 65 6e 74 73 20 6f 66 20 74 68 65 20 77 69 64 67 65 74 2e 0a 23 0a 23 20 41 72 67 75 6d 65 6e 74 ents.of.the.widget..#.#.Argument
6b60 73 3a 0a 23 20 77 20 2d 20 57 69 6e 64 6f 77 20 74 6f 20 77 68 69 63 68 20 66 6f 63 75 73 20 73 s:.#.w.-.Window.to.which.focus.s
6b80 68 6f 75 6c 64 20 62 65 20 73 65 74 2e 0a 0a 70 72 6f 63 20 74 6b 54 61 62 54 6f 57 69 6e 64 6f hould.be.set...proc.tkTabToWindo
6ba0 77 20 7b 77 7d 20 7b 0a 20 20 20 20 69 66 20 7b 5b 73 74 72 69 6e 67 20 65 71 75 61 6c 20 5b 77 w.{w}.{.....if.{[string.equal.[w
6bc0 69 6e 66 6f 20 63 6c 61 73 73 20 24 77 5d 20 45 6e 74 72 79 5d 7d 20 7b 0a 09 24 77 20 73 65 6c info.class.$w].Entry]}.{..$w.sel
6be0 65 63 74 69 6f 6e 20 72 61 6e 67 65 20 30 20 65 6e 64 0a 09 24 77 20 69 63 75 72 73 6f 72 20 65 ection.range.0.end..$w.icursor.e
6c00 6e 64 0a 20 20 20 20 7d 0a 20 20 20 20 66 6f 63 75 73 20 24 77 0a 7d 0a 00 00 2c ff 23 20 62 75 nd.....}.....focus.$w.}...,.#.bu
6c20 74 74 6f 6e 2e 74 63 6c 20 2d 2d 0a 23 0a 23 20 54 68 69 73 20 66 69 6c 65 20 64 65 66 69 6e 65 tton.tcl.--.#.#.This.file.define
6c40 73 20 74 68 65 20 64 65 66 61 75 6c 74 20 62 69 6e 64 69 6e 67 73 20 66 6f 72 20 54 6b 20 6c 61 s.the.default.bindings.for.Tk.la
6c60 62 65 6c 2c 20 62 75 74 74 6f 6e 2c 0a 23 20 63 68 65 63 6b 62 75 74 74 6f 6e 2c 20 61 6e 64 20 bel,.button,.#.checkbutton,.and.
6c80 72 61 64 69 6f 62 75 74 74 6f 6e 20 77 69 64 67 65 74 73 20 61 6e 64 20 70 72 6f 76 69 64 65 73 radiobutton.widgets.and.provides
6ca0 20 70 72 6f 63 65 64 75 72 65 73 0a 23 20 74 68 61 74 20 68 65 6c 70 20 69 6e 20 69 6d 70 6c 65 .procedures.#.that.help.in.imple
6cc0 6d 65 6e 74 69 6e 67 20 74 68 6f 73 65 20 62 69 6e 64 69 6e 67 73 2e 0a 23 0a 23 20 52 43 53 3a menting.those.bindings..#.#.RCS:
6ce0 20 40 28 23 29 20 24 49 64 3a 20 62 75 74 74 6f 6e 2e 74 63 6c 2c 76 20 31 2e 36 20 31 39 39 39 .@(#).$Id:.button.tcl,v.1.6.1999
6d00 2f 30 39 2f 30 32 20 31 37 3a 30 32 3a 35 32 20 68 6f 62 62 73 20 45 78 70 20 24 0a 23 0a 23 20 /09/02.17:02:52.hobbs.Exp.$.#.#.
6d20 43 6f 70 79 72 69 67 68 74 20 28 63 29 20 31 39 39 32 2d 31 39 39 34 20 54 68 65 20 52 65 67 65 Copyright.(c).1992-1994.The.Rege
6d40 6e 74 73 20 6f 66 20 74 68 65 20 55 6e 69 76 65 72 73 69 74 79 20 6f 66 20 43 61 6c 69 66 6f 72 nts.of.the.University.of.Califor
6d60 6e 69 61 2e 0a 23 20 43 6f 70 79 72 69 67 68 74 20 28 63 29 20 31 39 39 34 2d 31 39 39 36 20 53 nia..#.Copyright.(c).1994-1996.S
6d80 75 6e 20 4d 69 63 72 6f 73 79 73 74 65 6d 73 2c 20 49 6e 63 2e 0a 23 0a 23 20 53 65 65 20 74 68 un.Microsystems,.Inc..#.#.See.th
6da0 65 20 66 69 6c 65 20 22 6c 69 63 65 6e 73 65 2e 74 65 72 6d 73 22 20 66 6f 72 20 69 6e 66 6f 72 e.file."license.terms".for.infor
6dc0 6d 61 74 69 6f 6e 20 6f 6e 20 75 73 61 67 65 20 61 6e 64 20 72 65 64 69 73 74 72 69 62 75 74 69 mation.on.usage.and.redistributi
6de0 6f 6e 0a 23 20 6f 66 20 74 68 69 73 20 66 69 6c 65 2c 20 61 6e 64 20 66 6f 72 20 61 20 44 49 53 on.#.of.this.file,.and.for.a.DIS
6e00 43 4c 41 49 4d 45 52 20 4f 46 20 41 4c 4c 20 57 41 52 52 41 4e 54 49 45 53 2e 0a 23 0a 0a 23 2d CLAIMER.OF.ALL.WARRANTIES..#..#-
6e20 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d --------------------------------
6e40 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d --------------------------------
6e60 2d 2d 2d 2d 2d 2d 2d 2d 0a 23 20 54 68 65 20 63 6f 64 65 20 62 65 6c 6f 77 20 63 72 65 61 74 65 --------.#.The.code.below.create
6e80 73 20 74 68 65 20 64 65 66 61 75 6c 74 20 63 6c 61 73 73 20 62 69 6e 64 69 6e 67 73 20 66 6f 72 s.the.default.class.bindings.for
6ea0 20 62 75 74 74 6f 6e 73 2e 0a 23 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d .buttons..#---------------------
6ec0 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d --------------------------------
6ee0 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 0a 0a 69 66 20 7b 5b 73 74 72 69 6e --------------------..if.{[strin
6f00 67 20 6d 61 74 63 68 20 22 6d 61 63 69 6e 74 6f 73 68 22 20 24 74 63 6c 5f 70 6c 61 74 66 6f 72 g.match."macintosh".$tcl_platfor
6f20 6d 28 70 6c 61 74 66 6f 72 6d 29 5d 7d 20 7b 0a 20 20 20 20 62 69 6e 64 20 52 61 64 69 6f 62 75 m(platform)]}.{.....bind.Radiobu
6f40 74 74 6f 6e 20 3c 45 6e 74 65 72 3e 20 7b 0a 09 74 6b 42 75 74 74 6f 6e 45 6e 74 65 72 20 25 57 tton.<Enter>.{..tkButtonEnter.%W
6f60 0a 20 20 20 20 7d 0a 20 20 20 20 62 69 6e 64 20 52 61 64 69 6f 62 75 74 74 6f 6e 20 3c 31 3e 20 .....}.....bind.Radiobutton.<1>.
6f80 7b 0a 09 74 6b 42 75 74 74 6f 6e 44 6f 77 6e 20 25 57 0a 20 20 20 20 7d 0a 20 20 20 20 62 69 6e {..tkButtonDown.%W.....}.....bin
6fa0 64 20 52 61 64 69 6f 62 75 74 74 6f 6e 20 3c 42 75 74 74 6f 6e 52 65 6c 65 61 73 65 2d 31 3e 20 d.Radiobutton.<ButtonRelease-1>.
6fc0 7b 0a 09 74 6b 42 75 74 74 6f 6e 55 70 20 25 57 0a 20 20 20 20 7d 0a 20 20 20 20 62 69 6e 64 20 {..tkButtonUp.%W.....}.....bind.
6fe0 43 68 65 63 6b 62 75 74 74 6f 6e 20 3c 45 6e 74 65 72 3e 20 7b 0a 09 74 6b 42 75 74 74 6f 6e 45 Checkbutton.<Enter>.{..tkButtonE
7000 6e 74 65 72 20 25 57 0a 20 20 20 20 7d 0a 20 20 20 20 62 69 6e 64 20 43 68 65 63 6b 62 75 74 74 nter.%W.....}.....bind.Checkbutt
7020 6f 6e 20 3c 31 3e 20 7b 0a 09 74 6b 42 75 74 74 6f 6e 44 6f 77 6e 20 25 57 0a 20 20 20 20 7d 0a on.<1>.{..tkButtonDown.%W.....}.
7040 20 20 20 20 62 69 6e 64 20 43 68 65 63 6b 62 75 74 74 6f 6e 20 3c 42 75 74 74 6f 6e 52 65 6c 65 ....bind.Checkbutton.<ButtonRele
7060 61 73 65 2d 31 3e 20 7b 0a 09 74 6b 42 75 74 74 6f 6e 55 70 20 25 57 0a 20 20 20 20 7d 0a 7d 0a ase-1>.{..tkButtonUp.%W.....}.}.
7080 69 66 20 7b 5b 73 74 72 69 6e 67 20 6d 61 74 63 68 20 22 77 69 6e 64 6f 77 73 22 20 24 74 63 6c if.{[string.match."windows".$tcl
70a0 5f 70 6c 61 74 66 6f 72 6d 28 70 6c 61 74 66 6f 72 6d 29 5d 7d 20 7b 0a 20 20 20 20 62 69 6e 64 _platform(platform)]}.{.....bind
70c0 20 43 68 65 63 6b 62 75 74 74 6f 6e 20 3c 65 71 75 61 6c 3e 20 7b 0a 09 74 6b 43 68 65 63 6b 52 .Checkbutton.<equal>.{..tkCheckR
70e0 61 64 69 6f 49 6e 76 6f 6b 65 20 25 57 20 73 65 6c 65 63 74 0a 20 20 20 20 7d 0a 20 20 20 20 62 adioInvoke.%W.select.....}.....b
7100 69 6e 64 20 43 68 65 63 6b 62 75 74 74 6f 6e 20 3c 70 6c 75 73 3e 20 7b 0a 09 74 6b 43 68 65 63 ind.Checkbutton.<plus>.{..tkChec
7120 6b 52 61 64 69 6f 49 6e 76 6f 6b 65 20 25 57 20 73 65 6c 65 63 74 0a 20 20 20 20 7d 0a 20 20 20 kRadioInvoke.%W.select.....}....
7140 20 62 69 6e 64 20 43 68 65 63 6b 62 75 74 74 6f 6e 20 3c 6d 69 6e 75 73 3e 20 7b 0a 09 74 6b 43 .bind.Checkbutton.<minus>.{..tkC
7160 68 65 63 6b 52 61 64 69 6f 49 6e 76 6f 6b 65 20 25 57 20 64 65 73 65 6c 65 63 74 0a 20 20 20 20 heckRadioInvoke.%W.deselect.....
7180 7d 0a 20 20 20 20 62 69 6e 64 20 43 68 65 63 6b 62 75 74 74 6f 6e 20 3c 31 3e 20 7b 0a 09 74 6b }.....bind.Checkbutton.<1>.{..tk
71a0 43 68 65 63 6b 52 61 64 69 6f 44 6f 77 6e 20 25 57 0a 20 20 20 20 7d 0a 20 20 20 20 62 69 6e 64 CheckRadioDown.%W.....}.....bind
71c0 20 43 68 65 63 6b 62 75 74 74 6f 6e 20 3c 42 75 74 74 6f 6e 52 65 6c 65 61 73 65 2d 31 3e 20 7b .Checkbutton.<ButtonRelease-1>.{
71e0 0a 09 74 6b 42 75 74 74 6f 6e 55 70 20 25 57 0a 20 20 20 20 7d 0a 20 20 20 20 62 69 6e 64 20 43 ..tkButtonUp.%W.....}.....bind.C
7200 68 65 63 6b 62 75 74 74 6f 6e 20 3c 45 6e 74 65 72 3e 20 7b 0a 09 74 6b 43 68 65 63 6b 52 61 64 heckbutton.<Enter>.{..tkCheckRad
7220 69 6f 45 6e 74 65 72 20 25 57 0a 20 20 20 20 7d 0a 0a 20 20 20 20 62 69 6e 64 20 52 61 64 69 6f ioEnter.%W.....}......bind.Radio
7240 62 75 74 74 6f 6e 20 3c 31 3e 20 7b 0a 09 74 6b 43 68 65 63 6b 52 61 64 69 6f 44 6f 77 6e 20 25 button.<1>.{..tkCheckRadioDown.%
7260 57 0a 20 20 20 20 7d 0a 20 20 20 20 62 69 6e 64 20 52 61 64 69 6f 62 75 74 74 6f 6e 20 3c 42 75 W.....}.....bind.Radiobutton.<Bu
7280 74 74 6f 6e 52 65 6c 65 61 73 65 2d 31 3e 20 7b 0a 09 74 6b 42 75 74 74 6f 6e 55 70 20 25 57 0a ttonRelease-1>.{..tkButtonUp.%W.
72a0 20 20 20 20 7d 0a 20 20 20 20 62 69 6e 64 20 52 61 64 69 6f 62 75 74 74 6f 6e 20 3c 45 6e 74 65 ....}.....bind.Radiobutton.<Ente
72c0 72 3e 20 7b 0a 09 74 6b 43 68 65 63 6b 52 61 64 69 6f 45 6e 74 65 72 20 25 57 0a 20 20 20 20 7d r>.{..tkCheckRadioEnter.%W.....}
72e0 0a 7d 0a 69 66 20 7b 5b 73 74 72 69 6e 67 20 6d 61 74 63 68 20 22 75 6e 69 78 22 20 24 74 63 6c .}.if.{[string.match."unix".$tcl
7300 5f 70 6c 61 74 66 6f 72 6d 28 70 6c 61 74 66 6f 72 6d 29 5d 7d 20 7b 0a 20 20 20 20 62 69 6e 64 _platform(platform)]}.{.....bind
7320 20 43 68 65 63 6b 62 75 74 74 6f 6e 20 3c 52 65 74 75 72 6e 3e 20 7b 0a 09 69 66 20 7b 21 24 74 .Checkbutton.<Return>.{..if.{!$t
7340 6b 5f 73 74 72 69 63 74 4d 6f 74 69 66 7d 20 7b 0a 09 20 20 20 20 74 6b 43 68 65 63 6b 52 61 64 k_strictMotif}.{......tkCheckRad
7360 69 6f 49 6e 76 6f 6b 65 20 25 57 0a 09 7d 0a 20 20 20 20 7d 0a 20 20 20 20 62 69 6e 64 20 52 61 ioInvoke.%W..}.....}.....bind.Ra
7380 64 69 6f 62 75 74 74 6f 6e 20 3c 52 65 74 75 72 6e 3e 20 7b 0a 09 69 66 20 7b 21 24 74 6b 5f 73 diobutton.<Return>.{..if.{!$tk_s
73a0 74 72 69 63 74 4d 6f 74 69 66 7d 20 7b 0a 09 20 20 20 20 74 6b 43 68 65 63 6b 52 61 64 69 6f 49 trictMotif}.{......tkCheckRadioI
73c0 6e 76 6f 6b 65 20 25 57 0a 09 7d 0a 20 20 20 20 7d 0a 20 20 20 20 62 69 6e 64 20 43 68 65 63 6b nvoke.%W..}.....}.....bind.Check
73e0 62 75 74 74 6f 6e 20 3c 31 3e 20 7b 0a 09 74 6b 43 68 65 63 6b 52 61 64 69 6f 49 6e 76 6f 6b 65 button.<1>.{..tkCheckRadioInvoke
7400 20 25 57 0a 20 20 20 20 7d 0a 20 20 20 20 62 69 6e 64 20 52 61 64 69 6f 62 75 74 74 6f 6e 20 3c .%W.....}.....bind.Radiobutton.<
7420 31 3e 20 7b 0a 09 74 6b 43 68 65 63 6b 52 61 64 69 6f 49 6e 76 6f 6b 65 20 25 57 0a 20 20 20 20 1>.{..tkCheckRadioInvoke.%W.....
7440 7d 0a 20 20 20 20 62 69 6e 64 20 43 68 65 63 6b 62 75 74 74 6f 6e 20 3c 45 6e 74 65 72 3e 20 7b }.....bind.Checkbutton.<Enter>.{
7460 0a 09 74 6b 42 75 74 74 6f 6e 45 6e 74 65 72 20 25 57 0a 20 20 20 20 7d 0a 20 20 20 20 62 69 6e ..tkButtonEnter.%W.....}.....bin
7480 64 20 52 61 64 69 6f 62 75 74 74 6f 6e 20 3c 45 6e 74 65 72 3e 20 7b 0a 09 74 6b 42 75 74 74 6f d.Radiobutton.<Enter>.{..tkButto
74a0 6e 45 6e 74 65 72 20 25 57 0a 20 20 20 20 7d 0a 7d 0a 0a 62 69 6e 64 20 42 75 74 74 6f 6e 20 3c nEnter.%W.....}.}..bind.Button.<
74c0 73 70 61 63 65 3e 20 7b 0a 20 20 20 20 74 6b 42 75 74 74 6f 6e 49 6e 76 6f 6b 65 20 25 57 0a 7d space>.{.....tkButtonInvoke.%W.}
74e0 0a 62 69 6e 64 20 43 68 65 63 6b 62 75 74 74 6f 6e 20 3c 73 70 61 63 65 3e 20 7b 0a 20 20 20 20 .bind.Checkbutton.<space>.{.....
7500 74 6b 43 68 65 63 6b 52 61 64 69 6f 49 6e 76 6f 6b 65 20 25 57 0a 7d 0a 62 69 6e 64 20 52 61 64 tkCheckRadioInvoke.%W.}.bind.Rad
7520 69 6f 62 75 74 74 6f 6e 20 3c 73 70 61 63 65 3e 20 7b 0a 20 20 20 20 74 6b 43 68 65 63 6b 52 61 iobutton.<space>.{.....tkCheckRa
7540 64 69 6f 49 6e 76 6f 6b 65 20 25 57 0a 7d 0a 0a 62 69 6e 64 20 42 75 74 74 6f 6e 20 3c 46 6f 63 dioInvoke.%W.}..bind.Button.<Foc
7560 75 73 49 6e 3e 20 7b 7d 0a 62 69 6e 64 20 42 75 74 74 6f 6e 20 3c 45 6e 74 65 72 3e 20 7b 0a 20 usIn>.{}.bind.Button.<Enter>.{..
7580 20 20 20 74 6b 42 75 74 74 6f 6e 45 6e 74 65 72 20 25 57 0a 7d 0a 62 69 6e 64 20 42 75 74 74 6f ...tkButtonEnter.%W.}.bind.Butto
75a0 6e 20 3c 4c 65 61 76 65 3e 20 7b 0a 20 20 20 20 74 6b 42 75 74 74 6f 6e 4c 65 61 76 65 20 25 57 n.<Leave>.{.....tkButtonLeave.%W
75c0 0a 7d 0a 62 69 6e 64 20 42 75 74 74 6f 6e 20 3c 31 3e 20 7b 0a 20 20 20 20 74 6b 42 75 74 74 6f .}.bind.Button.<1>.{.....tkButto
75e0 6e 44 6f 77 6e 20 25 57 0a 7d 0a 62 69 6e 64 20 42 75 74 74 6f 6e 20 3c 42 75 74 74 6f 6e 52 65 nDown.%W.}.bind.Button.<ButtonRe
7600 6c 65 61 73 65 2d 31 3e 20 7b 0a 20 20 20 20 74 6b 42 75 74 74 6f 6e 55 70 20 25 57 0a 7d 0a 0a lease-1>.{.....tkButtonUp.%W.}..
7620 62 69 6e 64 20 43 68 65 63 6b 62 75 74 74 6f 6e 20 3c 46 6f 63 75 73 49 6e 3e 20 7b 7d 0a 62 69 bind.Checkbutton.<FocusIn>.{}.bi
7640 6e 64 20 43 68 65 63 6b 62 75 74 74 6f 6e 20 3c 4c 65 61 76 65 3e 20 7b 0a 20 20 20 20 74 6b 42 nd.Checkbutton.<Leave>.{.....tkB
7660 75 74 74 6f 6e 4c 65 61 76 65 20 25 57 0a 7d 0a 0a 62 69 6e 64 20 52 61 64 69 6f 62 75 74 74 6f uttonLeave.%W.}..bind.Radiobutto
7680 6e 20 3c 46 6f 63 75 73 49 6e 3e 20 7b 7d 0a 62 69 6e 64 20 52 61 64 69 6f 62 75 74 74 6f 6e 20 n.<FocusIn>.{}.bind.Radiobutton.
76a0 3c 4c 65 61 76 65 3e 20 7b 0a 20 20 20 20 74 6b 42 75 74 74 6f 6e 4c 65 61 76 65 20 25 57 0a 7d <Leave>.{.....tkButtonLeave.%W.}
76c0 0a 0a 69 66 20 7b 5b 73 74 72 69 6e 67 20 6d 61 74 63 68 20 22 77 69 6e 64 6f 77 73 22 20 24 74 ..if.{[string.match."windows".$t
76e0 63 6c 5f 70 6c 61 74 66 6f 72 6d 28 70 6c 61 74 66 6f 72 6d 29 5d 7d 20 7b 0a 0a 23 23 23 23 23 cl_platform(platform)]}.{..#####
7700 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 0a 23 20 57 69 6e 64 6f 77 73 20 69 ####################.#.Windows.i
7720 6d 70 6c 65 6d 65 6e 74 61 74 69 6f 6e 20 0a 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 mplementation..#################
7740 23 23 23 23 23 23 23 23 0a 0a 23 20 74 6b 42 75 74 74 6f 6e 45 6e 74 65 72 20 2d 2d 0a 23 20 54 ########..#.tkButtonEnter.--.#.T
7760 68 65 20 70 72 6f 63 65 64 75 72 65 20 62 65 6c 6f 77 20 69 73 20 69 6e 76 6f 6b 65 64 20 77 68 he.procedure.below.is.invoked.wh
7780 65 6e 20 74 68 65 20 6d 6f 75 73 65 20 70 6f 69 6e 74 65 72 20 65 6e 74 65 72 73 20 61 0a 23 20 en.the.mouse.pointer.enters.a.#.
77a0 62 75 74 74 6f 6e 20 77 69 64 67 65 74 2e 20 20 49 74 20 72 65 63 6f 72 64 73 20 74 68 65 20 62 button.widget...It.records.the.b
77c0 75 74 74 6f 6e 20 77 65 27 72 65 20 69 6e 20 61 6e 64 20 63 68 61 6e 67 65 73 20 74 68 65 0a 23 utton.we're.in.and.changes.the.#
77e0 20 73 74 61 74 65 20 6f 66 20 74 68 65 20 62 75 74 74 6f 6e 20 74 6f 20 61 63 74 69 76 65 20 75 .state.of.the.button.to.active.u
7800 6e 6c 65 73 73 20 74 68 65 20 62 75 74 74 6f 6e 20 69 73 20 64 69 73 61 62 6c 65 64 2e 0a 23 0a nless.the.button.is.disabled..#.
7820 23 20 41 72 67 75 6d 65 6e 74 73 3a 0a 23 20 77 20 2d 09 09 54 68 65 20 6e 61 6d 65 20 6f 66 20 #.Arguments:.#.w.-..The.name.of.
7840 74 68 65 20 77 69 64 67 65 74 2e 0a 0a 70 72 6f 63 20 74 6b 42 75 74 74 6f 6e 45 6e 74 65 72 20 the.widget...proc.tkButtonEnter.
7860 77 20 7b 0a 20 20 20 20 67 6c 6f 62 61 6c 20 74 6b 50 72 69 76 0a 20 20 20 20 69 66 20 7b 5b 73 w.{.....global.tkPriv.....if.{[s
7880 74 72 69 6e 67 20 63 6f 6d 70 61 72 65 20 5b 24 77 20 63 67 65 74 20 2d 73 74 61 74 65 5d 20 22 tring.compare.[$w.cget.-state]."
78a0 64 69 73 61 62 6c 65 64 22 5d 20 5c 0a 09 20 20 20 20 26 26 20 5b 73 74 72 69 6e 67 20 65 71 75 disabled"].\......&&.[string.equ
78c0 61 6c 20 24 74 6b 50 72 69 76 28 62 75 74 74 6f 6e 57 69 6e 64 6f 77 29 20 24 77 5d 7d 20 7b 0a al.$tkPriv(buttonWindow).$w]}.{.
78e0 09 24 77 20 63 6f 6e 66 69 67 75 72 65 20 2d 73 74 61 74 65 20 61 63 74 69 76 65 20 2d 72 65 6c .$w.configure.-state.active.-rel
7900 69 65 66 20 73 75 6e 6b 65 6e 0a 20 20 20 20 7d 0a 20 20 20 20 73 65 74 20 74 6b 50 72 69 76 28 ief.sunken.....}.....set.tkPriv(
7920 77 69 6e 64 6f 77 29 20 24 77 0a 7d 0a 0a 23 20 74 6b 42 75 74 74 6f 6e 4c 65 61 76 65 20 2d 2d window).$w.}..#.tkButtonLeave.--
7940 0a 23 20 54 68 65 20 70 72 6f 63 65 64 75 72 65 20 62 65 6c 6f 77 20 69 73 20 69 6e 76 6f 6b 65 .#.The.procedure.below.is.invoke
7960 64 20 77 68 65 6e 20 74 68 65 20 6d 6f 75 73 65 20 70 6f 69 6e 74 65 72 20 6c 65 61 76 65 73 20 d.when.the.mouse.pointer.leaves.
7980 61 0a 23 20 62 75 74 74 6f 6e 20 77 69 64 67 65 74 2e 20 20 49 74 20 63 68 61 6e 67 65 73 20 74 a.#.button.widget...It.changes.t
79a0 68 65 20 73 74 61 74 65 20 6f 66 20 74 68 65 20 62 75 74 74 6f 6e 20 62 61 63 6b 20 74 6f 0a 23 he.state.of.the.button.back.to.#
79c0 20 69 6e 61 63 74 69 76 65 2e 20 20 49 66 20 77 65 27 72 65 20 6c 65 61 76 69 6e 67 20 74 68 65 .inactive...If.we're.leaving.the
79e0 20 62 75 74 74 6f 6e 20 77 69 6e 64 6f 77 20 77 69 74 68 20 61 20 6d 6f 75 73 65 20 62 75 74 74 .button.window.with.a.mouse.butt
7a00 6f 6e 0a 23 20 70 72 65 73 73 65 64 20 28 74 6b 50 72 69 76 28 62 75 74 74 6f 6e 57 69 6e 64 6f on.#.pressed.(tkPriv(buttonWindo
7a20 77 29 20 3d 3d 20 24 77 29 2c 20 72 65 73 74 6f 72 65 20 74 68 65 20 72 65 6c 69 65 66 20 6f 66 w).==.$w),.restore.the.relief.of
7a40 20 74 68 65 0a 23 20 62 75 74 74 6f 6e 20 74 6f 6f 2e 0a 23 0a 23 20 41 72 67 75 6d 65 6e 74 73 .the.#.button.too..#.#.Arguments
7a60 3a 0a 23 20 77 20 2d 09 09 54 68 65 20 6e 61 6d 65 20 6f 66 20 74 68 65 20 77 69 64 67 65 74 2e :.#.w.-..The.name.of.the.widget.
7a80 0a 0a 70 72 6f 63 20 74 6b 42 75 74 74 6f 6e 4c 65 61 76 65 20 77 20 7b 0a 20 20 20 20 67 6c 6f ..proc.tkButtonLeave.w.{.....glo
7aa0 62 61 6c 20 74 6b 50 72 69 76 0a 20 20 20 20 69 66 20 7b 5b 73 74 72 69 6e 67 20 63 6f 6d 70 61 bal.tkPriv.....if.{[string.compa
7ac0 72 65 20 5b 24 77 20 63 67 65 74 20 2d 73 74 61 74 65 5d 20 22 64 69 73 61 62 6c 65 64 22 5d 7d re.[$w.cget.-state]."disabled"]}
7ae0 20 7b 0a 09 24 77 20 63 6f 6e 66 69 67 75 72 65 20 2d 73 74 61 74 65 20 6e 6f 72 6d 61 6c 0a 20 .{..$w.configure.-state.normal..
7b00 20 20 20 7d 0a 20 20 20 20 69 66 20 7b 5b 73 74 72 69 6e 67 20 65 71 75 61 6c 20 24 74 6b 50 72 ...}.....if.{[string.equal.$tkPr
7b20 69 76 28 62 75 74 74 6f 6e 57 69 6e 64 6f 77 29 20 24 77 5d 7d 20 7b 0a 09 24 77 20 63 6f 6e 66 iv(buttonWindow).$w]}.{..$w.conf
7b40 69 67 75 72 65 20 2d 72 65 6c 69 65 66 20 24 74 6b 50 72 69 76 28 72 65 6c 69 65 66 29 0a 20 20 igure.-relief.$tkPriv(relief)...
7b60 20 20 7d 0a 20 20 20 20 73 65 74 20 74 6b 50 72 69 76 28 77 69 6e 64 6f 77 29 20 22 22 0a 7d 0a ..}.....set.tkPriv(window)."".}.
7b80 0a 23 20 74 6b 43 68 65 63 6b 52 61 64 69 6f 45 6e 74 65 72 20 2d 2d 0a 23 20 54 68 65 20 70 72 .#.tkCheckRadioEnter.--.#.The.pr
7ba0 6f 63 65 64 75 72 65 20 62 65 6c 6f 77 20 69 73 20 69 6e 76 6f 6b 65 64 20 77 68 65 6e 20 74 68 ocedure.below.is.invoked.when.th
7bc0 65 20 6d 6f 75 73 65 20 70 6f 69 6e 74 65 72 20 65 6e 74 65 72 73 20 61 0a 23 20 63 68 65 63 6b e.mouse.pointer.enters.a.#.check
7be0 62 75 74 74 6f 6e 20 6f 72 20 72 61 64 69 6f 62 75 74 74 6f 6e 20 77 69 64 67 65 74 2e 20 20 49 button.or.radiobutton.widget...I
7c00 74 20 72 65 63 6f 72 64 73 20 74 68 65 20 62 75 74 74 6f 6e 20 77 65 27 72 65 20 69 6e 0a 23 20 t.records.the.button.we're.in.#.
7c20 61 6e 64 20 63 68 61 6e 67 65 73 20 74 68 65 20 73 74 61 74 65 20 6f 66 20 74 68 65 20 62 75 74 and.changes.the.state.of.the.but
7c40 74 6f 6e 20 74 6f 20 61 63 74 69 76 65 20 75 6e 6c 65 73 73 20 74 68 65 20 62 75 74 74 6f 6e 20 ton.to.active.unless.the.button.
7c60 69 73 0a 23 20 64 69 73 61 62 6c 65 64 2e 0a 23 0a 23 20 41 72 67 75 6d 65 6e 74 73 3a 0a 23 20 is.#.disabled..#.#.Arguments:.#.
7c80 77 20 2d 09 09 54 68 65 20 6e 61 6d 65 20 6f 66 20 74 68 65 20 77 69 64 67 65 74 2e 0a 0a 70 72 w.-..The.name.of.the.widget...pr
7ca0 6f 63 20 74 6b 43 68 65 63 6b 52 61 64 69 6f 45 6e 74 65 72 20 77 20 7b 0a 20 20 20 20 67 6c 6f oc.tkCheckRadioEnter.w.{.....glo
7cc0 62 61 6c 20 74 6b 50 72 69 76 0a 20 20 20 20 69 66 20 7b 5b 73 74 72 69 6e 67 20 63 6f 6d 70 61 bal.tkPriv.....if.{[string.compa
7ce0 72 65 20 5b 24 77 20 63 67 65 74 20 2d 73 74 61 74 65 5d 20 22 64 69 73 61 62 6c 65 64 22 5d 20 re.[$w.cget.-state]."disabled"].
7d00 5c 0a 09 20 20 20 20 26 26 20 5b 73 74 72 69 6e 67 20 65 71 75 61 6c 20 24 74 6b 50 72 69 76 28 \......&&.[string.equal.$tkPriv(
7d20 62 75 74 74 6f 6e 57 69 6e 64 6f 77 29 20 24 77 5d 7d 20 7b 0a 09 24 77 20 63 6f 6e 66 69 67 75 buttonWindow).$w]}.{..$w.configu
7d40 72 65 20 2d 73 74 61 74 65 20 61 63 74 69 76 65 0a 20 20 20 20 7d 0a 20 20 20 20 73 65 74 20 74 re.-state.active.....}.....set.t
7d60 6b 50 72 69 76 28 77 69 6e 64 6f 77 29 20 24 77 0a 7d 0a 0a 23 20 74 6b 42 75 74 74 6f 6e 44 6f kPriv(window).$w.}..#.tkButtonDo
7d80 77 6e 20 2d 2d 0a 23 20 54 68 65 20 70 72 6f 63 65 64 75 72 65 20 62 65 6c 6f 77 20 69 73 20 69 wn.--.#.The.procedure.below.is.i
7da0 6e 76 6f 6b 65 64 20 77 68 65 6e 20 74 68 65 20 6d 6f 75 73 65 20 62 75 74 74 6f 6e 20 69 73 20 nvoked.when.the.mouse.button.is.
7dc0 70 72 65 73 73 65 64 20 69 6e 0a 23 20 61 20 62 75 74 74 6f 6e 20 77 69 64 67 65 74 2e 20 20 49 pressed.in.#.a.button.widget...I
7de0 74 20 72 65 63 6f 72 64 73 20 74 68 65 20 66 61 63 74 20 74 68 61 74 20 74 68 65 20 6d 6f 75 73 t.records.the.fact.that.the.mous
7e00 65 20 69 73 20 69 6e 20 74 68 65 20 62 75 74 74 6f 6e 2c 0a 23 20 73 61 76 65 73 20 74 68 65 20 e.is.in.the.button,.#.saves.the.
7e20 62 75 74 74 6f 6e 27 73 20 72 65 6c 69 65 66 20 73 6f 20 69 74 20 63 61 6e 20 62 65 20 72 65 73 button's.relief.so.it.can.be.res
7e40 74 6f 72 65 64 20 6c 61 74 65 72 2c 20 61 6e 64 20 63 68 61 6e 67 65 73 0a 23 20 74 68 65 20 72 tored.later,.and.changes.#.the.r
7e60 65 6c 69 65 66 20 74 6f 20 73 75 6e 6b 65 6e 2e 0a 23 0a 23 20 41 72 67 75 6d 65 6e 74 73 3a 0a elief.to.sunken..#.#.Arguments:.
7e80 23 20 77 20 2d 09 09 54 68 65 20 6e 61 6d 65 20 6f 66 20 74 68 65 20 77 69 64 67 65 74 2e 0a 0a #.w.-..The.name.of.the.widget...
7ea0 70 72 6f 63 20 74 6b 42 75 74 74 6f 6e 44 6f 77 6e 20 77 20 7b 0a 20 20 20 20 67 6c 6f 62 61 6c proc.tkButtonDown.w.{.....global
7ec0 20 74 6b 50 72 69 76 0a 20 20 20 20 73 65 74 20 74 6b 50 72 69 76 28 72 65 6c 69 65 66 29 20 5b .tkPriv.....set.tkPriv(relief).[
7ee0 24 77 20 63 67 65 74 20 2d 72 65 6c 69 65 66 5d 0a 20 20 20 20 69 66 20 7b 5b 73 74 72 69 6e 67 $w.cget.-relief].....if.{[string
7f00 20 63 6f 6d 70 61 72 65 20 5b 24 77 20 63 67 65 74 20 2d 73 74 61 74 65 5d 20 22 64 69 73 61 62 .compare.[$w.cget.-state]."disab
7f20 6c 65 64 22 5d 7d 20 7b 0a 09 73 65 74 20 74 6b 50 72 69 76 28 62 75 74 74 6f 6e 57 69 6e 64 6f led"]}.{..set.tkPriv(buttonWindo
7f40 77 29 20 24 77 0a 09 24 77 20 63 6f 6e 66 69 67 75 72 65 20 2d 72 65 6c 69 65 66 20 73 75 6e 6b w).$w..$w.configure.-relief.sunk
7f60 65 6e 20 2d 73 74 61 74 65 20 61 63 74 69 76 65 0a 20 20 20 20 7d 0a 7d 0a 0a 23 20 74 6b 43 68 en.-state.active.....}.}..#.tkCh
7f80 65 63 6b 52 61 64 69 6f 44 6f 77 6e 20 2d 2d 0a 23 20 54 68 65 20 70 72 6f 63 65 64 75 72 65 20 eckRadioDown.--.#.The.procedure.
7fa0 62 65 6c 6f 77 20 69 73 20 69 6e 76 6f 6b 65 64 20 77 68 65 6e 20 74 68 65 20 6d 6f 75 73 65 20 below.is.invoked.when.the.mouse.
7fc0 62 75 74 74 6f 6e 20 69 73 20 70 72 65 73 73 65 64 20 69 6e 0a 23 20 61 20 62 75 74 74 6f 6e 20 button.is.pressed.in.#.a.button.
7fe0 77 69 64 67 65 74 2e 20 20 49 74 20 72 65 63 6f 72 64 73 20 74 68 65 20 66 61 63 74 20 74 68 61 widget...It.records.the.fact.tha
8000 74 20 74 68 65 20 6d 6f 75 73 65 20 69 73 20 69 6e 20 74 68 65 20 62 75 74 74 6f 6e 2c 0a 23 20 t.the.mouse.is.in.the.button,.#.
8020 73 61 76 65 73 20 74 68 65 20 62 75 74 74 6f 6e 27 73 20 72 65 6c 69 65 66 20 73 6f 20 69 74 20 saves.the.button's.relief.so.it.
8040 63 61 6e 20 62 65 20 72 65 73 74 6f 72 65 64 20 6c 61 74 65 72 2c 20 61 6e 64 20 63 68 61 6e 67 can.be.restored.later,.and.chang
8060 65 73 0a 23 20 74 68 65 20 72 65 6c 69 65 66 20 74 6f 20 73 75 6e 6b 65 6e 2e 0a 23 0a 23 20 41 es.#.the.relief.to.sunken..#.#.A
8080 72 67 75 6d 65 6e 74 73 3a 0a 23 20 77 20 2d 09 09 54 68 65 20 6e 61 6d 65 20 6f 66 20 74 68 65 rguments:.#.w.-..The.name.of.the
80a0 20 77 69 64 67 65 74 2e 0a 0a 70 72 6f 63 20 74 6b 43 68 65 63 6b 52 61 64 69 6f 44 6f 77 6e 20 .widget...proc.tkCheckRadioDown.
80c0 77 20 7b 0a 20 20 20 20 67 6c 6f 62 61 6c 20 74 6b 50 72 69 76 0a 20 20 20 20 73 65 74 20 74 6b w.{.....global.tkPriv.....set.tk
80e0 50 72 69 76 28 72 65 6c 69 65 66 29 20 5b 24 77 20 63 67 65 74 20 2d 72 65 6c 69 65 66 5d 0a 20 Priv(relief).[$w.cget.-relief]..
8100 20 20 20 69 66 20 7b 5b 73 74 72 69 6e 67 20 63 6f 6d 70 61 72 65 20 5b 24 77 20 63 67 65 74 20 ...if.{[string.compare.[$w.cget.
8120 2d 73 74 61 74 65 5d 20 22 64 69 73 61 62 6c 65 64 22 5d 7d 20 7b 0a 09 73 65 74 20 74 6b 50 72 -state]."disabled"]}.{..set.tkPr
8140 69 76 28 62 75 74 74 6f 6e 57 69 6e 64 6f 77 29 20 24 77 0a 09 24 77 20 63 6f 6e 66 69 67 75 72 iv(buttonWindow).$w..$w.configur
8160 65 20 2d 73 74 61 74 65 20 61 63 74 69 76 65 0a 20 20 20 20 7d 0a 7d 0a 0a 23 20 74 6b 42 75 74 e.-state.active.....}.}..#.tkBut
8180 74 6f 6e 55 70 20 2d 2d 0a 23 20 54 68 65 20 70 72 6f 63 65 64 75 72 65 20 62 65 6c 6f 77 20 69 tonUp.--.#.The.procedure.below.i
81a0 73 20 69 6e 76 6f 6b 65 64 20 77 68 65 6e 20 74 68 65 20 6d 6f 75 73 65 20 62 75 74 74 6f 6e 20 s.invoked.when.the.mouse.button.
81c0 69 73 20 72 65 6c 65 61 73 65 64 0a 23 20 69 6e 20 61 20 62 75 74 74 6f 6e 20 77 69 64 67 65 74 is.released.#.in.a.button.widget
81e0 2e 20 20 49 74 20 72 65 73 74 6f 72 65 73 20 74 68 65 20 62 75 74 74 6f 6e 27 73 20 72 65 6c 69 ...It.restores.the.button's.reli
8200 65 66 20 61 6e 64 20 69 6e 76 6f 6b 65 73 0a 23 20 74 68 65 20 63 6f 6d 6d 61 6e 64 20 61 73 20 ef.and.invokes.#.the.command.as.
8220 6c 6f 6e 67 20 61 73 20 74 68 65 20 6d 6f 75 73 65 20 68 61 73 6e 27 74 20 6c 65 66 74 20 74 68 long.as.the.mouse.hasn't.left.th
8240 65 20 62 75 74 74 6f 6e 2e 0a 23 0a 23 20 41 72 67 75 6d 65 6e 74 73 3a 0a 23 20 77 20 2d 09 09 e.button..#.#.Arguments:.#.w.-..
8260 54 68 65 20 6e 61 6d 65 20 6f 66 20 74 68 65 20 77 69 64 67 65 74 2e 0a 0a 70 72 6f 63 20 74 6b The.name.of.the.widget...proc.tk
8280 42 75 74 74 6f 6e 55 70 20 77 20 7b 0a 20 20 20 20 67 6c 6f 62 61 6c 20 74 6b 50 72 69 76 0a 20 ButtonUp.w.{.....global.tkPriv..
82a0 20 20 20 69 66 20 7b 5b 73 74 72 69 6e 67 20 65 71 75 61 6c 20 24 74 6b 50 72 69 76 28 62 75 74 ...if.{[string.equal.$tkPriv(but
82c0 74 6f 6e 57 69 6e 64 6f 77 29 20 24 77 5d 7d 20 7b 0a 09 73 65 74 20 74 6b 50 72 69 76 28 62 75 tonWindow).$w]}.{..set.tkPriv(bu
82e0 74 74 6f 6e 57 69 6e 64 6f 77 29 20 22 22 0a 09 24 77 20 63 6f 6e 66 69 67 75 72 65 20 2d 72 65 ttonWindow).""..$w.configure.-re
8300 6c 69 65 66 20 24 74 6b 50 72 69 76 28 72 65 6c 69 65 66 29 0a 09 69 66 20 7b 5b 73 74 72 69 6e lief.$tkPriv(relief)..if.{[strin
8320 67 20 65 71 75 61 6c 20 24 74 6b 50 72 69 76 28 77 69 6e 64 6f 77 29 20 24 77 5d 0a 20 20 20 20 g.equal.$tkPriv(window).$w].....
8340 20 20 20 20 20 20 20 20 20 20 26 26 20 5b 73 74 72 69 6e 67 20 63 6f 6d 70 61 72 65 20 5b 24 77 ..........&&.[string.compare.[$w
8360 20 63 67 65 74 20 2d 73 74 61 74 65 5d 20 22 64 69 73 61 62 6c 65 64 22 5d 7d 20 7b 0a 09 20 20 .cget.-state]."disabled"]}.{....
8380 20 20 24 77 20 63 6f 6e 66 69 67 75 72 65 20 2d 73 74 61 74 65 20 6e 6f 72 6d 61 6c 0a 09 20 20 ..$w.configure.-state.normal....
83a0 20 20 75 70 6c 65 76 65 6c 20 23 30 20 5b 6c 69 73 74 20 24 77 20 69 6e 76 6f 6b 65 5d 0a 09 7d ..uplevel.#0.[list.$w.invoke]..}
83c0 0a 20 20 20 20 7d 0a 7d 0a 0a 7d 0a 0a 69 66 20 7b 5b 73 74 72 69 6e 67 20 6d 61 74 63 68 20 22 .....}.}..}..if.{[string.match."
83e0 75 6e 69 78 22 20 24 74 63 6c 5f 70 6c 61 74 66 6f 72 6d 28 70 6c 61 74 66 6f 72 6d 29 5d 7d 20 unix".$tcl_platform(platform)]}.
8400 7b 0a 0a 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 0a 23 20 55 6e 69 78 20 {..#####################.#.Unix.
8420 69 6d 70 6c 65 6d 65 6e 74 61 74 69 6f 6e 0a 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 implementation.#################
8440 23 23 23 23 0a 0a 23 20 74 6b 42 75 74 74 6f 6e 45 6e 74 65 72 20 2d 2d 0a 23 20 54 68 65 20 70 ####..#.tkButtonEnter.--.#.The.p
8460 72 6f 63 65 64 75 72 65 20 62 65 6c 6f 77 20 69 73 20 69 6e 76 6f 6b 65 64 20 77 68 65 6e 20 74 rocedure.below.is.invoked.when.t
8480 68 65 20 6d 6f 75 73 65 20 70 6f 69 6e 74 65 72 20 65 6e 74 65 72 73 20 61 0a 23 20 62 75 74 74 he.mouse.pointer.enters.a.#.butt
84a0 6f 6e 20 77 69 64 67 65 74 2e 20 20 49 74 20 72 65 63 6f 72 64 73 20 74 68 65 20 62 75 74 74 6f on.widget...It.records.the.butto
84c0 6e 20 77 65 27 72 65 20 69 6e 20 61 6e 64 20 63 68 61 6e 67 65 73 20 74 68 65 0a 23 20 73 74 61 n.we're.in.and.changes.the.#.sta
84e0 74 65 20 6f 66 20 74 68 65 20 62 75 74 74 6f 6e 20 74 6f 20 61 63 74 69 76 65 20 75 6e 6c 65 73 te.of.the.button.to.active.unles
8500 73 20 74 68 65 20 62 75 74 74 6f 6e 20 69 73 20 64 69 73 61 62 6c 65 64 2e 0a 23 0a 23 20 41 72 s.the.button.is.disabled..#.#.Ar
8520 67 75 6d 65 6e 74 73 3a 0a 23 20 77 20 2d 09 09 54 68 65 20 6e 61 6d 65 20 6f 66 20 74 68 65 20 guments:.#.w.-..The.name.of.the.
8540 77 69 64 67 65 74 2e 0a 0a 70 72 6f 63 20 74 6b 42 75 74 74 6f 6e 45 6e 74 65 72 20 7b 77 7d 20 widget...proc.tkButtonEnter.{w}.
8560 7b 0a 20 20 20 20 67 6c 6f 62 61 6c 20 74 6b 50 72 69 76 0a 20 20 20 20 69 66 20 7b 5b 73 74 72 {.....global.tkPriv.....if.{[str
8580 69 6e 67 20 63 6f 6d 70 61 72 65 20 5b 24 77 20 63 67 65 74 20 2d 73 74 61 74 65 5d 20 22 64 69 ing.compare.[$w.cget.-state]."di
85a0 73 61 62 6c 65 64 22 5d 7d 20 7b 0a 09 24 77 20 63 6f 6e 66 69 67 75 72 65 20 2d 73 74 61 74 65 sabled"]}.{..$w.configure.-state
85c0 20 61 63 74 69 76 65 0a 09 69 66 20 7b 5b 73 74 72 69 6e 67 20 65 71 75 61 6c 20 24 74 6b 50 72 .active..if.{[string.equal.$tkPr
85e0 69 76 28 62 75 74 74 6f 6e 57 69 6e 64 6f 77 29 20 24 77 5d 7d 20 7b 0a 09 20 20 20 20 24 77 20 iv(buttonWindow).$w]}.{......$w.
8600 63 6f 6e 66 69 67 75 72 65 20 2d 73 74 61 74 65 20 61 63 74 69 76 65 20 2d 72 65 6c 69 65 66 20 configure.-state.active.-relief.
8620 73 75 6e 6b 65 6e 0a 09 7d 0a 20 20 20 20 7d 0a 20 20 20 20 73 65 74 20 74 6b 50 72 69 76 28 77 sunken..}.....}.....set.tkPriv(w
8640 69 6e 64 6f 77 29 20 24 77 0a 7d 0a 0a 23 20 74 6b 42 75 74 74 6f 6e 4c 65 61 76 65 20 2d 2d 0a indow).$w.}..#.tkButtonLeave.--.
8660 23 20 54 68 65 20 70 72 6f 63 65 64 75 72 65 20 62 65 6c 6f 77 20 69 73 20 69 6e 76 6f 6b 65 64 #.The.procedure.below.is.invoked
8680 20 77 68 65 6e 20 74 68 65 20 6d 6f 75 73 65 20 70 6f 69 6e 74 65 72 20 6c 65 61 76 65 73 20 61 .when.the.mouse.pointer.leaves.a
86a0 0a 23 20 62 75 74 74 6f 6e 20 77 69 64 67 65 74 2e 20 20 49 74 20 63 68 61 6e 67 65 73 20 74 68 .#.button.widget...It.changes.th
86c0 65 20 73 74 61 74 65 20 6f 66 20 74 68 65 20 62 75 74 74 6f 6e 20 62 61 63 6b 20 74 6f 0a 23 20 e.state.of.the.button.back.to.#.
86e0 69 6e 61 63 74 69 76 65 2e 20 20 49 66 20 77 65 27 72 65 20 6c 65 61 76 69 6e 67 20 74 68 65 20 inactive...If.we're.leaving.the.
8700 62 75 74 74 6f 6e 20 77 69 6e 64 6f 77 20 77 69 74 68 20 61 20 6d 6f 75 73 65 20 62 75 74 74 6f button.window.with.a.mouse.butto
8720 6e 0a 23 20 70 72 65 73 73 65 64 20 28 74 6b 50 72 69 76 28 62 75 74 74 6f 6e 57 69 6e 64 6f 77 n.#.pressed.(tkPriv(buttonWindow
8740 29 20 3d 3d 20 24 77 29 2c 20 72 65 73 74 6f 72 65 20 74 68 65 20 72 65 6c 69 65 66 20 6f 66 20 ).==.$w),.restore.the.relief.of.
8760 74 68 65 0a 23 20 62 75 74 74 6f 6e 20 74 6f 6f 2e 0a 23 0a 23 20 41 72 67 75 6d 65 6e 74 73 3a the.#.button.too..#.#.Arguments:
8780 0a 23 20 77 20 2d 09 09 54 68 65 20 6e 61 6d 65 20 6f 66 20 74 68 65 20 77 69 64 67 65 74 2e 0a .#.w.-..The.name.of.the.widget..
87a0 0a 70 72 6f 63 20 74 6b 42 75 74 74 6f 6e 4c 65 61 76 65 20 77 20 7b 0a 20 20 20 20 67 6c 6f 62 .proc.tkButtonLeave.w.{.....glob
87c0 61 6c 20 74 6b 50 72 69 76 0a 20 20 20 20 69 66 20 7b 5b 73 74 72 69 6e 67 20 63 6f 6d 70 61 72 al.tkPriv.....if.{[string.compar
87e0 65 20 5b 24 77 20 63 67 65 74 20 2d 73 74 61 74 65 5d 20 22 64 69 73 61 62 6c 65 64 22 5d 7d 20 e.[$w.cget.-state]."disabled"]}.
8800 7b 0a 09 24 77 20 63 6f 6e 66 69 67 75 72 65 20 2d 73 74 61 74 65 20 6e 6f 72 6d 61 6c 0a 20 20 {..$w.configure.-state.normal...
8820 20 20 7d 0a 20 20 20 20 69 66 20 7b 5b 73 74 72 69 6e 67 20 65 71 75 61 6c 20 24 74 6b 50 72 69 ..}.....if.{[string.equal.$tkPri
8840 76 28 62 75 74 74 6f 6e 57 69 6e 64 6f 77 29 20 24 77 5d 7d 20 7b 0a 09 24 77 20 63 6f 6e 66 69 v(buttonWindow).$w]}.{..$w.confi
8860 67 75 72 65 20 2d 72 65 6c 69 65 66 20 24 74 6b 50 72 69 76 28 72 65 6c 69 65 66 29 0a 20 20 20 gure.-relief.$tkPriv(relief)....
8880 20 7d 0a 20 20 20 20 73 65 74 20 74 6b 50 72 69 76 28 77 69 6e 64 6f 77 29 20 22 22 0a 7d 0a 0a .}.....set.tkPriv(window)."".}..
88a0 23 20 74 6b 42 75 74 74 6f 6e 44 6f 77 6e 20 2d 2d 0a 23 20 54 68 65 20 70 72 6f 63 65 64 75 72 #.tkButtonDown.--.#.The.procedur
88c0 65 20 62 65 6c 6f 77 20 69 73 20 69 6e 76 6f 6b 65 64 20 77 68 65 6e 20 74 68 65 20 6d 6f 75 73 e.below.is.invoked.when.the.mous
88e0 65 20 62 75 74 74 6f 6e 20 69 73 20 70 72 65 73 73 65 64 20 69 6e 0a 23 20 61 20 62 75 74 74 6f e.button.is.pressed.in.#.a.butto
8900 6e 20 77 69 64 67 65 74 2e 20 20 49 74 20 72 65 63 6f 72 64 73 20 74 68 65 20 66 61 63 74 20 74 n.widget...It.records.the.fact.t
8920 68 61 74 20 74 68 65 20 6d 6f 75 73 65 20 69 73 20 69 6e 20 74 68 65 20 62 75 74 74 6f 6e 2c 0a hat.the.mouse.is.in.the.button,.
8940 23 20 73 61 76 65 73 20 74 68 65 20 62 75 74 74 6f 6e 27 73 20 72 65 6c 69 65 66 20 73 6f 20 69 #.saves.the.button's.relief.so.i
8960 74 20 63 61 6e 20 62 65 20 72 65 73 74 6f 72 65 64 20 6c 61 74 65 72 2c 20 61 6e 64 20 63 68 61 t.can.be.restored.later,.and.cha
8980 6e 67 65 73 0a 23 20 74 68 65 20 72 65 6c 69 65 66 20 74 6f 20 73 75 6e 6b 65 6e 2e 0a 23 0a 23 nges.#.the.relief.to.sunken..#.#
89a0 20 41 72 67 75 6d 65 6e 74 73 3a 0a 23 20 77 20 2d 09 09 54 68 65 20 6e 61 6d 65 20 6f 66 20 74 .Arguments:.#.w.-..The.name.of.t
89c0 68 65 20 77 69 64 67 65 74 2e 0a 0a 70 72 6f 63 20 74 6b 42 75 74 74 6f 6e 44 6f 77 6e 20 77 20 he.widget...proc.tkButtonDown.w.
89e0 7b 0a 20 20 20 20 67 6c 6f 62 61 6c 20 74 6b 50 72 69 76 0a 20 20 20 20 73 65 74 20 74 6b 50 72 {.....global.tkPriv.....set.tkPr
8a00 69 76 28 72 65 6c 69 65 66 29 20 5b 24 77 20 63 67 65 74 20 2d 72 65 6c 69 65 66 5d 0a 20 20 20 iv(relief).[$w.cget.-relief]....
8a20 20 69 66 20 7b 5b 73 74 72 69 6e 67 20 63 6f 6d 70 61 72 65 20 5b 24 77 20 63 67 65 74 20 2d 73 .if.{[string.compare.[$w.cget.-s
8a40 74 61 74 65 5d 20 22 64 69 73 61 62 6c 65 64 22 5d 7d 20 7b 0a 09 73 65 74 20 74 6b 50 72 69 76 tate]."disabled"]}.{..set.tkPriv
8a60 28 62 75 74 74 6f 6e 57 69 6e 64 6f 77 29 20 24 77 0a 09 24 77 20 63 6f 6e 66 69 67 75 72 65 20 (buttonWindow).$w..$w.configure.
8a80 2d 72 65 6c 69 65 66 20 73 75 6e 6b 65 6e 0a 20 20 20 20 7d 0a 7d 0a 0a 23 20 74 6b 42 75 74 74 -relief.sunken.....}.}..#.tkButt
8aa0 6f 6e 55 70 20 2d 2d 0a 23 20 54 68 65 20 70 72 6f 63 65 64 75 72 65 20 62 65 6c 6f 77 20 69 73 onUp.--.#.The.procedure.below.is
8ac0 20 69 6e 76 6f 6b 65 64 20 77 68 65 6e 20 74 68 65 20 6d 6f 75 73 65 20 62 75 74 74 6f 6e 20 69 .invoked.when.the.mouse.button.i
8ae0 73 20 72 65 6c 65 61 73 65 64 0a 23 20 69 6e 20 61 20 62 75 74 74 6f 6e 20 77 69 64 67 65 74 2e s.released.#.in.a.button.widget.
8b00 20 20 49 74 20 72 65 73 74 6f 72 65 73 20 74 68 65 20 62 75 74 74 6f 6e 27 73 20 72 65 6c 69 65 ..It.restores.the.button's.relie
8b20 66 20 61 6e 64 20 69 6e 76 6f 6b 65 73 0a 23 20 74 68 65 20 63 6f 6d 6d 61 6e 64 20 61 73 20 6c f.and.invokes.#.the.command.as.l
8b40 6f 6e 67 20 61 73 20 74 68 65 20 6d 6f 75 73 65 20 68 61 73 6e 27 74 20 6c 65 66 74 20 74 68 65 ong.as.the.mouse.hasn't.left.the
8b60 20 62 75 74 74 6f 6e 2e 0a 23 0a 23 20 41 72 67 75 6d 65 6e 74 73 3a 0a 23 20 77 20 2d 09 09 54 .button..#.#.Arguments:.#.w.-..T
8b80 68 65 20 6e 61 6d 65 20 6f 66 20 74 68 65 20 77 69 64 67 65 74 2e 0a 0a 70 72 6f 63 20 74 6b 42 he.name.of.the.widget...proc.tkB
8ba0 75 74 74 6f 6e 55 70 20 77 20 7b 0a 20 20 20 20 67 6c 6f 62 61 6c 20 74 6b 50 72 69 76 0a 20 20 uttonUp.w.{.....global.tkPriv...
8bc0 20 20 69 66 20 7b 5b 73 74 72 69 6e 67 20 65 71 75 61 6c 20 24 77 20 24 74 6b 50 72 69 76 28 62 ..if.{[string.equal.$w.$tkPriv(b
8be0 75 74 74 6f 6e 57 69 6e 64 6f 77 29 5d 7d 20 7b 0a 09 73 65 74 20 74 6b 50 72 69 76 28 62 75 74 uttonWindow)]}.{..set.tkPriv(but
8c00 74 6f 6e 57 69 6e 64 6f 77 29 20 22 22 0a 09 24 77 20 63 6f 6e 66 69 67 75 72 65 20 2d 72 65 6c tonWindow).""..$w.configure.-rel
8c20 69 65 66 20 24 74 6b 50 72 69 76 28 72 65 6c 69 65 66 29 0a 09 69 66 20 7b 5b 73 74 72 69 6e 67 ief.$tkPriv(relief)..if.{[string
8c40 20 65 71 75 61 6c 20 24 77 20 24 74 6b 50 72 69 76 28 77 69 6e 64 6f 77 29 5d 20 5c 0a 09 09 26 .equal.$w.$tkPriv(window)].\...&
8c60 26 20 5b 73 74 72 69 6e 67 20 63 6f 6d 70 61 72 65 20 5b 24 77 20 63 67 65 74 20 2d 73 74 61 74 &.[string.compare.[$w.cget.-stat
8c80 65 5d 20 22 64 69 73 61 62 6c 65 64 22 5d 7d 20 7b 0a 09 20 20 20 20 75 70 6c 65 76 65 6c 20 23 e]."disabled"]}.{......uplevel.#
8ca0 30 20 5b 6c 69 73 74 20 24 77 20 69 6e 76 6f 6b 65 5d 0a 09 7d 0a 20 20 20 20 7d 0a 7d 0a 0a 7d 0.[list.$w.invoke]..}.....}.}..}
8cc0 0a 0a 69 66 20 7b 5b 73 74 72 69 6e 67 20 6d 61 74 63 68 20 22 6d 61 63 69 6e 74 6f 73 68 22 20 ..if.{[string.match."macintosh".
8ce0 24 74 63 6c 5f 70 6c 61 74 66 6f 72 6d 28 70 6c 61 74 66 6f 72 6d 29 5d 7d 20 7b 0a 0a 23 23 23 $tcl_platform(platform)]}.{..###
8d00 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 0a 23 20 4d 61 63 20 69 6d 70 6c 65 6d 65 6e #################.#.Mac.implemen
8d20 74 61 74 69 6f 6e 0a 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 0a 0a 23 20 74 tation.####################..#.t
8d40 6b 42 75 74 74 6f 6e 45 6e 74 65 72 20 2d 2d 0a 23 20 54 68 65 20 70 72 6f 63 65 64 75 72 65 20 kButtonEnter.--.#.The.procedure.
8d60 62 65 6c 6f 77 20 69 73 20 69 6e 76 6f 6b 65 64 20 77 68 65 6e 20 74 68 65 20 6d 6f 75 73 65 20 below.is.invoked.when.the.mouse.
8d80 70 6f 69 6e 74 65 72 20 65 6e 74 65 72 73 20 61 0a 23 20 62 75 74 74 6f 6e 20 77 69 64 67 65 74 pointer.enters.a.#.button.widget
8da0 2e 20 20 49 74 20 72 65 63 6f 72 64 73 20 74 68 65 20 62 75 74 74 6f 6e 20 77 65 27 72 65 20 69 ...It.records.the.button.we're.i
8dc0 6e 20 61 6e 64 20 63 68 61 6e 67 65 73 20 74 68 65 0a 23 20 73 74 61 74 65 20 6f 66 20 74 68 65 n.and.changes.the.#.state.of.the
8de0 20 62 75 74 74 6f 6e 20 74 6f 20 61 63 74 69 76 65 20 75 6e 6c 65 73 73 20 74 68 65 20 62 75 74 .button.to.active.unless.the.but
8e00 74 6f 6e 20 69 73 20 64 69 73 61 62 6c 65 64 2e 0a 23 0a 23 20 41 72 67 75 6d 65 6e 74 73 3a 0a ton.is.disabled..#.#.Arguments:.
8e20 23 20 77 20 2d 09 09 54 68 65 20 6e 61 6d 65 20 6f 66 20 74 68 65 20 77 69 64 67 65 74 2e 0a 0a #.w.-..The.name.of.the.widget...
8e40 70 72 6f 63 20 74 6b 42 75 74 74 6f 6e 45 6e 74 65 72 20 7b 77 7d 20 7b 0a 20 20 20 20 67 6c 6f proc.tkButtonEnter.{w}.{.....glo
8e60 62 61 6c 20 74 6b 50 72 69 76 0a 20 20 20 20 69 66 20 7b 5b 73 74 72 69 6e 67 20 63 6f 6d 70 61 bal.tkPriv.....if.{[string.compa
8e80 72 65 20 5b 24 77 20 63 67 65 74 20 2d 73 74 61 74 65 5d 20 22 64 69 73 61 62 6c 65 64 22 5d 7d re.[$w.cget.-state]."disabled"]}
8ea0 20 7b 0a 20 20 20 20 20 20 69 66 20 7b 5b 73 74 72 69 6e 67 20 65 71 75 61 6c 20 24 77 20 24 74 .{.......if.{[string.equal.$w.$t
8ec0 6b 50 72 69 76 28 62 75 74 74 6f 6e 57 69 6e 64 6f 77 29 5d 7d 20 7b 0a 09 20 20 20 20 24 77 20 kPriv(buttonWindow)]}.{......$w.
8ee0 63 6f 6e 66 69 67 75 72 65 20 2d 73 74 61 74 65 20 61 63 74 69 76 65 0a 09 7d 0a 20 20 20 20 7d configure.-state.active..}.....}
8f00 0a 20 20 20 20 73 65 74 20 74 6b 50 72 69 76 28 77 69 6e 64 6f 77 29 20 24 77 0a 7d 0a 0a 23 20 .....set.tkPriv(window).$w.}..#.
8f20 74 6b 42 75 74 74 6f 6e 4c 65 61 76 65 20 2d 2d 0a 23 20 54 68 65 20 70 72 6f 63 65 64 75 72 65 tkButtonLeave.--.#.The.procedure
8f40 20 62 65 6c 6f 77 20 69 73 20 69 6e 76 6f 6b 65 64 20 77 68 65 6e 20 74 68 65 20 6d 6f 75 73 65 .below.is.invoked.when.the.mouse
8f60 20 70 6f 69 6e 74 65 72 20 6c 65 61 76 65 73 20 61 0a 23 20 62 75 74 74 6f 6e 20 77 69 64 67 65 .pointer.leaves.a.#.button.widge
8f80 74 2e 20 20 49 74 20 63 68 61 6e 67 65 73 20 74 68 65 20 73 74 61 74 65 20 6f 66 20 74 68 65 20 t...It.changes.the.state.of.the.
8fa0 62 75 74 74 6f 6e 20 62 61 63 6b 20 74 6f 0a 23 20 69 6e 61 63 74 69 76 65 2e 20 20 49 66 20 77 button.back.to.#.inactive...If.w
8fc0 65 27 72 65 20 6c 65 61 76 69 6e 67 20 74 68 65 20 62 75 74 74 6f 6e 20 77 69 6e 64 6f 77 20 77 e're.leaving.the.button.window.w
8fe0 69 74 68 20 61 20 6d 6f 75 73 65 20 62 75 74 74 6f 6e 0a 23 20 70 72 65 73 73 65 64 20 28 74 6b ith.a.mouse.button.#.pressed.(tk
9000 50 72 69 76 28 62 75 74 74 6f 6e 57 69 6e 64 6f 77 29 20 3d 3d 20 24 77 29 2c 20 72 65 73 74 6f Priv(buttonWindow).==.$w),.resto
9020 72 65 20 74 68 65 20 72 65 6c 69 65 66 20 6f 66 20 74 68 65 0a 23 20 62 75 74 74 6f 6e 20 74 6f re.the.relief.of.the.#.button.to
9040 6f 2e 0a 23 0a 23 20 41 72 67 75 6d 65 6e 74 73 3a 0a 23 20 77 20 2d 09 09 54 68 65 20 6e 61 6d o..#.#.Arguments:.#.w.-..The.nam
9060 65 20 6f 66 20 74 68 65 20 77 69 64 67 65 74 2e 0a 0a 70 72 6f 63 20 74 6b 42 75 74 74 6f 6e 4c e.of.the.widget...proc.tkButtonL
9080 65 61 76 65 20 77 20 7b 0a 20 20 20 20 67 6c 6f 62 61 6c 20 74 6b 50 72 69 76 0a 20 20 20 20 69 eave.w.{.....global.tkPriv.....i
90a0 66 20 7b 5b 73 74 72 69 6e 67 20 65 71 75 61 6c 20 24 77 20 24 74 6b 50 72 69 76 28 62 75 74 74 f.{[string.equal.$w.$tkPriv(butt
90c0 6f 6e 57 69 6e 64 6f 77 29 5d 7d 20 7b 0a 09 24 77 20 63 6f 6e 66 69 67 75 72 65 20 2d 73 74 61 onWindow)]}.{..$w.configure.-sta
90e0 74 65 20 6e 6f 72 6d 61 6c 0a 20 20 20 20 7d 0a 20 20 20 20 73 65 74 20 74 6b 50 72 69 76 28 77 te.normal.....}.....set.tkPriv(w
9100 69 6e 64 6f 77 29 20 22 22 0a 7d 0a 0a 23 20 74 6b 42 75 74 74 6f 6e 44 6f 77 6e 20 2d 2d 0a 23 indow)."".}..#.tkButtonDown.--.#
9120 20 54 68 65 20 70 72 6f 63 65 64 75 72 65 20 62 65 6c 6f 77 20 69 73 20 69 6e 76 6f 6b 65 64 20 .The.procedure.below.is.invoked.
9140 77 68 65 6e 20 74 68 65 20 6d 6f 75 73 65 20 62 75 74 74 6f 6e 20 69 73 20 70 72 65 73 73 65 64 when.the.mouse.button.is.pressed
9160 20 69 6e 0a 23 20 61 20 62 75 74 74 6f 6e 20 77 69 64 67 65 74 2e 20 20 49 74 20 72 65 63 6f 72 .in.#.a.button.widget...It.recor
9180 64 73 20 74 68 65 20 66 61 63 74 20 74 68 61 74 20 74 68 65 20 6d 6f 75 73 65 20 69 73 20 69 6e ds.the.fact.that.the.mouse.is.in
91a0 20 74 68 65 20 62 75 74 74 6f 6e 2c 0a 23 20 73 61 76 65 73 20 74 68 65 20 62 75 74 74 6f 6e 27 .the.button,.#.saves.the.button'
91c0 73 20 72 65 6c 69 65 66 20 73 6f 20 69 74 20 63 61 6e 20 62 65 20 72 65 73 74 6f 72 65 64 20 6c s.relief.so.it.can.be.restored.l
91e0 61 74 65 72 2c 20 61 6e 64 20 63 68 61 6e 67 65 73 0a 23 20 74 68 65 20 72 65 6c 69 65 66 20 74 ater,.and.changes.#.the.relief.t
9200 6f 20 73 75 6e 6b 65 6e 2e 0a 23 0a 23 20 41 72 67 75 6d 65 6e 74 73 3a 0a 23 20 77 20 2d 09 09 o.sunken..#.#.Arguments:.#.w.-..
9220 54 68 65 20 6e 61 6d 65 20 6f 66 20 74 68 65 20 77 69 64 67 65 74 2e 0a 0a 70 72 6f 63 20 74 6b The.name.of.the.widget...proc.tk
9240 42 75 74 74 6f 6e 44 6f 77 6e 20 77 20 7b 0a 20 20 20 20 67 6c 6f 62 61 6c 20 74 6b 50 72 69 76 ButtonDown.w.{.....global.tkPriv
9260 0a 20 20 20 20 69 66 20 7b 5b 73 74 72 69 6e 67 20 63 6f 6d 70 61 72 65 20 5b 24 77 20 63 67 65 .....if.{[string.compare.[$w.cge
9280 74 20 2d 73 74 61 74 65 5d 20 22 64 69 73 61 62 6c 65 64 22 5d 7d 20 7b 0a 09 73 65 74 20 74 6b t.-state]."disabled"]}.{..set.tk
92a0 50 72 69 76 28 62 75 74 74 6f 6e 57 69 6e 64 6f 77 29 20 24 77 0a 09 24 77 20 63 6f 6e 66 69 67 Priv(buttonWindow).$w..$w.config
92c0 75 72 65 20 2d 73 74 61 74 65 20 61 63 74 69 76 65 0a 20 20 20 20 7d 0a 7d 0a 0a 23 20 74 6b 42 ure.-state.active.....}.}..#.tkB
92e0 75 74 74 6f 6e 55 70 20 2d 2d 0a 23 20 54 68 65 20 70 72 6f 63 65 64 75 72 65 20 62 65 6c 6f 77 uttonUp.--.#.The.procedure.below
9300 20 69 73 20 69 6e 76 6f 6b 65 64 20 77 68 65 6e 20 74 68 65 20 6d 6f 75 73 65 20 62 75 74 74 6f .is.invoked.when.the.mouse.butto
9320 6e 20 69 73 20 72 65 6c 65 61 73 65 64 0a 23 20 69 6e 20 61 20 62 75 74 74 6f 6e 20 77 69 64 67 n.is.released.#.in.a.button.widg
9340 65 74 2e 20 20 49 74 20 72 65 73 74 6f 72 65 73 20 74 68 65 20 62 75 74 74 6f 6e 27 73 20 72 65 et...It.restores.the.button's.re
9360 6c 69 65 66 20 61 6e 64 20 69 6e 76 6f 6b 65 73 0a 23 20 74 68 65 20 63 6f 6d 6d 61 6e 64 20 61 lief.and.invokes.#.the.command.a
9380 73 20 6c 6f 6e 67 20 61 73 20 74 68 65 20 6d 6f 75 73 65 20 68 61 73 6e 27 74 20 6c 65 66 74 20 s.long.as.the.mouse.hasn't.left.
93a0 74 68 65 20 62 75 74 74 6f 6e 2e 0a 23 0a 23 20 41 72 67 75 6d 65 6e 74 73 3a 0a 23 20 77 20 2d the.button..#.#.Arguments:.#.w.-
93c0 09 09 54 68 65 20 6e 61 6d 65 20 6f 66 20 74 68 65 20 77 69 64 67 65 74 2e 0a 0a 70 72 6f 63 20 ..The.name.of.the.widget...proc.
93e0 74 6b 42 75 74 74 6f 6e 55 70 20 77 20 7b 0a 20 20 20 20 67 6c 6f 62 61 6c 20 74 6b 50 72 69 76 tkButtonUp.w.{.....global.tkPriv
9400 0a 20 20 20 20 69 66 20 7b 5b 73 74 72 69 6e 67 20 65 71 75 61 6c 20 24 77 20 24 74 6b 50 72 69 .....if.{[string.equal.$w.$tkPri
9420 76 28 62 75 74 74 6f 6e 57 69 6e 64 6f 77 29 5d 7d 20 7b 0a 09 24 77 20 63 6f 6e 66 69 67 75 72 v(buttonWindow)]}.{..$w.configur
9440 65 20 2d 73 74 61 74 65 20 6e 6f 72 6d 61 6c 0a 09 73 65 74 20 74 6b 50 72 69 76 28 62 75 74 74 e.-state.normal..set.tkPriv(butt
9460 6f 6e 57 69 6e 64 6f 77 29 20 22 22 0a 09 69 66 20 7b 5b 73 74 72 69 6e 67 20 65 71 75 61 6c 20 onWindow).""..if.{[string.equal.
9480 24 77 20 24 74 6b 50 72 69 76 28 77 69 6e 64 6f 77 29 5d 0a 20 20 20 20 20 20 20 20 20 20 20 20 $w.$tkPriv(window)].............
94a0 20 20 26 26 20 5b 73 74 72 69 6e 67 20 63 6f 6d 70 61 72 65 20 5b 24 77 20 63 67 65 74 20 2d 73 ..&&.[string.compare.[$w.cget.-s
94c0 74 61 74 65 5d 20 22 64 69 73 61 62 6c 65 64 22 5d 7d 20 7b 0a 09 20 20 20 20 75 70 6c 65 76 65 tate]."disabled"]}.{......upleve
94e0 6c 20 23 30 20 5b 6c 69 73 74 20 24 77 20 69 6e 76 6f 6b 65 5d 0a 09 7d 0a 20 20 20 20 7d 0a 7d l.#0.[list.$w.invoke]..}.....}.}
9500 0a 0a 7d 0a 0a 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 0a 23 20 53 68 61 72 65 64 ..}..##################.#.Shared
9520 20 72 6f 75 74 69 6e 65 73 0a 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 0a 0a 23 20 .routines.##################..#.
9540 74 6b 42 75 74 74 6f 6e 49 6e 76 6f 6b 65 20 2d 2d 0a 23 20 54 68 65 20 70 72 6f 63 65 64 75 72 tkButtonInvoke.--.#.The.procedur
9560 65 20 62 65 6c 6f 77 20 69 73 20 63 61 6c 6c 65 64 20 77 68 65 6e 20 61 20 62 75 74 74 6f 6e 20 e.below.is.called.when.a.button.
9580 69 73 20 69 6e 76 6f 6b 65 64 20 74 68 72 6f 75 67 68 0a 23 20 74 68 65 20 6b 65 79 62 6f 61 72 is.invoked.through.#.the.keyboar
95a0 64 2e 20 20 49 74 20 73 69 6d 75 6c 61 74 65 20 61 20 70 72 65 73 73 20 6f 66 20 74 68 65 20 62 d...It.simulate.a.press.of.the.b
95c0 75 74 74 6f 6e 20 76 69 61 20 74 68 65 20 6d 6f 75 73 65 2e 0a 23 0a 23 20 41 72 67 75 6d 65 6e utton.via.the.mouse..#.#.Argumen
95e0 74 73 3a 0a 23 20 77 20 2d 09 09 54 68 65 20 6e 61 6d 65 20 6f 66 20 74 68 65 20 77 69 64 67 65 ts:.#.w.-..The.name.of.the.widge
9600 74 2e 0a 0a 70 72 6f 63 20 74 6b 42 75 74 74 6f 6e 49 6e 76 6f 6b 65 20 77 20 7b 0a 20 20 20 20 t...proc.tkButtonInvoke.w.{.....
9620 69 66 20 7b 5b 73 74 72 69 6e 67 20 63 6f 6d 70 61 72 65 20 5b 24 77 20 63 67 65 74 20 2d 73 74 if.{[string.compare.[$w.cget.-st
9640 61 74 65 5d 20 22 64 69 73 61 62 6c 65 64 22 5d 7d 20 7b 0a 09 73 65 74 20 6f 6c 64 52 65 6c 69 ate]."disabled"]}.{..set.oldReli
9660 65 66 20 5b 24 77 20 63 67 65 74 20 2d 72 65 6c 69 65 66 5d 0a 09 73 65 74 20 6f 6c 64 53 74 61 ef.[$w.cget.-relief]..set.oldSta
9680 74 65 20 5b 24 77 20 63 67 65 74 20 2d 73 74 61 74 65 5d 0a 09 24 77 20 63 6f 6e 66 69 67 75 72 te.[$w.cget.-state]..$w.configur
96a0 65 20 2d 73 74 61 74 65 20 61 63 74 69 76 65 20 2d 72 65 6c 69 65 66 20 73 75 6e 6b 65 6e 0a 09 e.-state.active.-relief.sunken..
96c0 75 70 64 61 74 65 20 69 64 6c 65 74 61 73 6b 73 0a 09 61 66 74 65 72 20 31 30 30 0a 09 24 77 20 update.idletasks..after.100..$w.
96e0 63 6f 6e 66 69 67 75 72 65 20 2d 73 74 61 74 65 20 24 6f 6c 64 53 74 61 74 65 20 2d 72 65 6c 69 configure.-state.$oldState.-reli
9700 65 66 20 24 6f 6c 64 52 65 6c 69 65 66 0a 09 75 70 6c 65 76 65 6c 20 23 30 20 5b 6c 69 73 74 20 ef.$oldRelief..uplevel.#0.[list.
9720 24 77 20 69 6e 76 6f 6b 65 5d 0a 20 20 20 20 7d 0a 7d 0a 0a 23 20 74 6b 43 68 65 63 6b 52 61 64 $w.invoke].....}.}..#.tkCheckRad
9740 69 6f 49 6e 76 6f 6b 65 20 2d 2d 0a 23 20 54 68 65 20 70 72 6f 63 65 64 75 72 65 20 62 65 6c 6f ioInvoke.--.#.The.procedure.belo
9760 77 20 69 73 20 69 6e 76 6f 6b 65 64 20 77 68 65 6e 20 74 68 65 20 6d 6f 75 73 65 20 62 75 74 74 w.is.invoked.when.the.mouse.butt
9780 6f 6e 20 69 73 20 70 72 65 73 73 65 64 20 69 6e 0a 23 20 61 20 63 68 65 63 6b 62 75 74 74 6f 6e on.is.pressed.in.#.a.checkbutton
97a0 20 6f 72 20 72 61 64 69 6f 62 75 74 74 6f 6e 20 77 69 64 67 65 74 2c 20 6f 72 20 77 68 65 6e 20 .or.radiobutton.widget,.or.when.
97c0 74 68 65 20 77 69 64 67 65 74 20 69 73 20 69 6e 76 6f 6b 65 64 0a 23 20 74 68 72 6f 75 67 68 20 the.widget.is.invoked.#.through.
97e0 74 68 65 20 6b 65 79 62 6f 61 72 64 2e 20 20 49 74 20 69 6e 76 6f 6b 65 73 20 74 68 65 20 77 69 the.keyboard...It.invokes.the.wi
9800 64 67 65 74 20 69 66 20 69 74 0a 23 20 69 73 6e 27 74 20 64 69 73 61 62 6c 65 64 2e 0a 23 0a 23 dget.if.it.#.isn't.disabled..#.#
9820 20 41 72 67 75 6d 65 6e 74 73 3a 0a 23 20 77 20 2d 09 09 54 68 65 20 6e 61 6d 65 20 6f 66 20 74 .Arguments:.#.w.-..The.name.of.t
9840 68 65 20 77 69 64 67 65 74 2e 0a 23 20 63 6d 64 20 2d 09 09 54 68 65 20 73 75 62 63 6f 6d 6d 61 he.widget..#.cmd.-..The.subcomma
9860 6e 64 20 74 6f 20 69 6e 76 6f 6b 65 20 28 6f 6e 65 20 6f 66 20 69 6e 76 6f 6b 65 2c 20 73 65 6c nd.to.invoke.(one.of.invoke,.sel
9880 65 63 74 2c 20 6f 72 20 64 65 73 65 6c 65 63 74 29 2e 0a 0a 70 72 6f 63 20 74 6b 43 68 65 63 6b ect,.or.deselect)...proc.tkCheck
98a0 52 61 64 69 6f 49 6e 76 6f 6b 65 20 7b 77 20 7b 63 6d 64 20 69 6e 76 6f 6b 65 7d 7d 20 7b 0a 20 RadioInvoke.{w.{cmd.invoke}}.{..
98c0 20 20 20 69 66 20 7b 5b 73 74 72 69 6e 67 20 63 6f 6d 70 61 72 65 20 5b 24 77 20 63 67 65 74 20 ...if.{[string.compare.[$w.cget.
98e0 2d 73 74 61 74 65 5d 20 22 64 69 73 61 62 6c 65 64 22 5d 7d 20 7b 0a 09 75 70 6c 65 76 65 6c 20 -state]."disabled"]}.{..uplevel.
9900 23 30 20 5b 6c 69 73 74 20 24 77 20 24 63 6d 64 5d 0a 20 20 20 20 7d 0a 7d 0a 0a 00 00 17 73 23 #0.[list.$w.$cmd].....}.}.....s#
9920 20 64 69 61 6c 6f 67 2e 74 63 6c 20 2d 2d 0a 23 0a 23 20 54 68 69 73 20 66 69 6c 65 20 64 65 66 .dialog.tcl.--.#.#.This.file.def
9940 69 6e 65 73 20 74 68 65 20 70 72 6f 63 65 64 75 72 65 20 74 6b 5f 64 69 61 6c 6f 67 2c 20 77 68 ines.the.procedure.tk_dialog,.wh
9960 69 63 68 20 63 72 65 61 74 65 73 20 61 20 64 69 61 6c 6f 67 0a 23 20 62 6f 78 20 63 6f 6e 74 61 ich.creates.a.dialog.#.box.conta
9980 69 6e 69 6e 67 20 61 20 62 69 74 6d 61 70 2c 20 61 20 6d 65 73 73 61 67 65 2c 20 61 6e 64 20 6f ining.a.bitmap,.a.message,.and.o
99a0 6e 65 20 6f 72 20 6d 6f 72 65 20 62 75 74 74 6f 6e 73 2e 0a 23 0a 23 20 52 43 53 3a 20 40 28 23 ne.or.more.buttons..#.#.RCS:.@(#
99c0 29 20 24 49 64 3a 20 64 69 61 6c 6f 67 2e 74 63 6c 2c 76 20 31 2e 37 20 32 30 30 30 2f 30 31 2f ).$Id:.dialog.tcl,v.1.7.2000/01/
99e0 31 32 20 31 31 3a 34 35 3a 31 34 20 68 6f 62 62 73 20 45 78 70 20 24 0a 23 0a 23 20 43 6f 70 79 12.11:45:14.hobbs.Exp.$.#.#.Copy
9a00 72 69 67 68 74 20 28 63 29 20 31 39 39 32 2d 31 39 39 33 20 54 68 65 20 52 65 67 65 6e 74 73 20 right.(c).1992-1993.The.Regents.
9a20 6f 66 20 74 68 65 20 55 6e 69 76 65 72 73 69 74 79 20 6f 66 20 43 61 6c 69 66 6f 72 6e 69 61 2e of.the.University.of.California.
9a40 0a 23 20 43 6f 70 79 72 69 67 68 74 20 28 63 29 20 31 39 39 34 2d 31 39 39 37 20 53 75 6e 20 4d .#.Copyright.(c).1994-1997.Sun.M
9a60 69 63 72 6f 73 79 73 74 65 6d 73 2c 20 49 6e 63 2e 0a 23 0a 23 20 53 65 65 20 74 68 65 20 66 69 icrosystems,.Inc..#.#.See.the.fi
9a80 6c 65 20 22 6c 69 63 65 6e 73 65 2e 74 65 72 6d 73 22 20 66 6f 72 20 69 6e 66 6f 72 6d 61 74 69 le."license.terms".for.informati
9aa0 6f 6e 20 6f 6e 20 75 73 61 67 65 20 61 6e 64 20 72 65 64 69 73 74 72 69 62 75 74 69 6f 6e 0a 23 on.on.usage.and.redistribution.#
9ac0 20 6f 66 20 74 68 69 73 20 66 69 6c 65 2c 20 61 6e 64 20 66 6f 72 20 61 20 44 49 53 43 4c 41 49 .of.this.file,.and.for.a.DISCLAI
9ae0 4d 45 52 20 4f 46 20 41 4c 4c 20 57 41 52 52 41 4e 54 49 45 53 2e 0a 23 0a 0a 23 0a 23 20 74 6b MER.OF.ALL.WARRANTIES..#..#.#.tk
9b00 5f 64 69 61 6c 6f 67 3a 0a 23 0a 23 20 54 68 69 73 20 70 72 6f 63 65 64 75 72 65 20 64 69 73 70 _dialog:.#.#.This.procedure.disp
9b20 6c 61 79 73 20 61 20 64 69 61 6c 6f 67 20 62 6f 78 2c 20 77 61 69 74 73 20 66 6f 72 20 61 20 62 lays.a.dialog.box,.waits.for.a.b
9b40 75 74 74 6f 6e 20 69 6e 20 74 68 65 20 64 69 61 6c 6f 67 0a 23 20 74 6f 20 62 65 20 69 6e 76 6f utton.in.the.dialog.#.to.be.invo
9b60 6b 65 64 2c 20 74 68 65 6e 20 72 65 74 75 72 6e 73 20 74 68 65 20 69 6e 64 65 78 20 6f 66 20 74 ked,.then.returns.the.index.of.t
9b80 68 65 20 73 65 6c 65 63 74 65 64 20 62 75 74 74 6f 6e 2e 20 20 49 66 20 74 68 65 0a 23 20 64 69 he.selected.button...If.the.#.di
9ba0 61 6c 6f 67 20 73 6f 6d 65 68 6f 77 20 67 65 74 73 20 64 65 73 74 72 6f 79 65 64 2c 20 2d 31 20 alog.somehow.gets.destroyed,.-1.
9bc0 69 73 20 72 65 74 75 72 6e 65 64 2e 0a 23 0a 23 20 41 72 67 75 6d 65 6e 74 73 3a 0a 23 20 77 20 is.returned..#.#.Arguments:.#.w.
9be0 2d 09 09 57 69 6e 64 6f 77 20 74 6f 20 75 73 65 20 66 6f 72 20 64 69 61 6c 6f 67 20 74 6f 70 2d -..Window.to.use.for.dialog.top-
9c00 6c 65 76 65 6c 2e 0a 23 20 74 69 74 6c 65 20 2d 09 54 69 74 6c 65 20 74 6f 20 64 69 73 70 6c 61 level..#.title.-.Title.to.displa
9c20 79 20 69 6e 20 64 69 61 6c 6f 67 27 73 20 64 65 63 6f 72 61 74 69 76 65 20 66 72 61 6d 65 2e 0a y.in.dialog's.decorative.frame..
9c40 23 20 74 65 78 74 20 2d 09 4d 65 73 73 61 67 65 20 74 6f 20 64 69 73 70 6c 61 79 20 69 6e 20 64 #.text.-.Message.to.display.in.d
9c60 69 61 6c 6f 67 2e 0a 23 20 62 69 74 6d 61 70 20 2d 09 42 69 74 6d 61 70 20 74 6f 20 64 69 73 70 ialog..#.bitmap.-.Bitmap.to.disp
9c80 6c 61 79 20 69 6e 20 64 69 61 6c 6f 67 20 28 65 6d 70 74 79 20 73 74 72 69 6e 67 20 6d 65 61 6e lay.in.dialog.(empty.string.mean
9ca0 73 20 6e 6f 6e 65 29 2e 0a 23 20 64 65 66 61 75 6c 74 20 2d 09 49 6e 64 65 78 20 6f 66 20 62 75 s.none)..#.default.-.Index.of.bu
9cc0 74 74 6f 6e 20 74 68 61 74 20 69 73 20 74 6f 20 64 69 73 70 6c 61 79 20 74 68 65 20 64 65 66 61 tton.that.is.to.display.the.defa
9ce0 75 6c 74 20 72 69 6e 67 0a 23 09 09 28 2d 31 20 6d 65 61 6e 73 20 6e 6f 6e 65 29 2e 0a 23 20 61 ult.ring.#..(-1.means.none)..#.a
9d00 72 67 73 20 2d 09 4f 6e 65 20 6f 72 20 6d 6f 72 65 20 73 74 72 69 6e 67 73 20 74 6f 20 64 69 73 rgs.-.One.or.more.strings.to.dis
9d20 70 6c 61 79 20 69 6e 20 62 75 74 74 6f 6e 73 20 61 63 72 6f 73 73 20 74 68 65 0a 23 09 09 62 6f play.in.buttons.across.the.#..bo
9d40 74 74 6f 6d 20 6f 66 20 74 68 65 20 64 69 61 6c 6f 67 20 62 6f 78 2e 0a 0a 70 72 6f 63 20 74 6b ttom.of.the.dialog.box...proc.tk
9d60 5f 64 69 61 6c 6f 67 20 7b 77 20 74 69 74 6c 65 20 74 65 78 74 20 62 69 74 6d 61 70 20 64 65 66 _dialog.{w.title.text.bitmap.def
9d80 61 75 6c 74 20 61 72 67 73 7d 20 7b 0a 20 20 20 20 67 6c 6f 62 61 6c 20 74 6b 50 72 69 76 20 74 ault.args}.{.....global.tkPriv.t
9da0 63 6c 5f 70 6c 61 74 66 6f 72 6d 0a 0a 20 20 20 20 23 20 43 68 65 63 6b 20 74 68 61 74 20 24 64 cl_platform......#.Check.that.$d
9dc0 65 66 61 75 6c 74 20 77 61 73 20 70 72 6f 70 65 72 6c 79 20 67 69 76 65 6e 0a 20 20 20 20 69 66 efault.was.properly.given.....if
9de0 20 7b 5b 73 74 72 69 6e 67 20 69 73 20 69 6e 74 20 24 64 65 66 61 75 6c 74 5d 7d 20 7b 0a 09 69 .{[string.is.int.$default]}.{..i
9e00 66 20 7b 24 64 65 66 61 75 6c 74 20 3e 3d 20 5b 6c 6c 65 6e 67 74 68 20 24 61 72 67 73 5d 7d 20 f.{$default.>=.[llength.$args]}.
9e20 7b 0a 09 20 20 20 20 72 65 74 75 72 6e 20 2d 63 6f 64 65 20 65 72 72 6f 72 20 22 64 65 66 61 75 {......return.-code.error."defau
9e40 6c 74 20 62 75 74 74 6f 6e 20 69 6e 64 65 78 20 67 72 65 61 74 65 72 20 74 68 61 6e 20 6e 75 6d lt.button.index.greater.than.num
9e60 62 65 72 20 6f 66 5c 0a 09 09 20 20 20 20 62 75 74 74 6f 6e 73 20 73 70 65 63 69 66 69 65 64 20 ber.of\.......buttons.specified.
9e80 66 6f 72 20 74 6b 5f 64 69 61 6c 6f 67 22 0a 09 7d 0a 20 20 20 20 7d 20 65 6c 73 65 69 66 20 7b for.tk_dialog"..}.....}.elseif.{
9ea0 5b 73 74 72 69 6e 67 20 65 71 75 61 6c 20 7b 7d 20 24 64 65 66 61 75 6c 74 5d 7d 20 7b 0a 09 73 [string.equal.{}.$default]}.{..s
9ec0 65 74 20 64 65 66 61 75 6c 74 20 2d 31 0a 20 20 20 20 7d 20 65 6c 73 65 20 7b 0a 09 73 65 74 20 et.default.-1.....}.else.{..set.
9ee0 64 65 66 61 75 6c 74 20 5b 6c 73 65 61 72 63 68 20 2d 65 78 61 63 74 20 24 61 72 67 73 20 24 64 default.[lsearch.-exact.$args.$d
9f00 65 66 61 75 6c 74 5d 0a 20 20 20 20 7d 0a 0a 20 20 20 20 23 20 31 2e 20 43 72 65 61 74 65 20 74 efault].....}......#.1..Create.t
9f20 68 65 20 74 6f 70 2d 6c 65 76 65 6c 20 77 69 6e 64 6f 77 20 61 6e 64 20 64 69 76 69 64 65 20 69 he.top-level.window.and.divide.i
9f40 74 20 69 6e 74 6f 20 74 6f 70 0a 20 20 20 20 23 20 61 6e 64 20 62 6f 74 74 6f 6d 20 70 61 72 74 t.into.top.....#.and.bottom.part
9f60 73 2e 0a 0a 20 20 20 20 63 61 74 63 68 20 7b 64 65 73 74 72 6f 79 20 24 77 7d 0a 20 20 20 20 74 s.......catch.{destroy.$w}.....t
9f80 6f 70 6c 65 76 65 6c 20 24 77 20 2d 63 6c 61 73 73 20 44 69 61 6c 6f 67 0a 20 20 20 20 77 6d 20 oplevel.$w.-class.Dialog.....wm.
9fa0 74 69 74 6c 65 20 24 77 20 24 74 69 74 6c 65 0a 20 20 20 20 77 6d 20 69 63 6f 6e 6e 61 6d 65 20 title.$w.$title.....wm.iconname.
9fc0 24 77 20 44 69 61 6c 6f 67 0a 20 20 20 20 77 6d 20 70 72 6f 74 6f 63 6f 6c 20 24 77 20 57 4d 5f $w.Dialog.....wm.protocol.$w.WM_
9fe0 44 45 4c 45 54 45 5f 57 49 4e 44 4f 57 20 7b 20 7d 0a 0a 20 20 20 20 23 20 54 68 65 20 66 6f 6c DELETE_WINDOW.{.}......#.The.fol
a000 6c 6f 77 69 6e 67 20 63 6f 6d 6d 61 6e 64 20 6d 65 61 6e 73 20 74 68 61 74 20 74 68 65 20 64 69 lowing.command.means.that.the.di
a020 61 6c 6f 67 20 77 6f 6e 27 74 20 62 65 20 70 6f 73 74 65 64 20 69 66 0a 20 20 20 20 23 20 5b 77 alog.won't.be.posted.if.....#.[w
a040 69 6e 66 6f 20 70 61 72 65 6e 74 20 24 77 5d 20 69 73 20 69 63 6f 6e 69 66 69 65 64 2c 20 62 75 info.parent.$w].is.iconified,.bu
a060 74 20 69 74 27 73 20 72 65 61 6c 6c 79 20 6e 65 65 64 65 64 3b 20 20 6f 74 68 65 72 77 69 73 65 t.it's.really.needed;..otherwise
a080 0a 20 20 20 20 23 20 74 68 65 20 64 69 61 6c 6f 67 20 63 61 6e 20 62 65 63 6f 6d 65 20 6f 62 73 .....#.the.dialog.can.become.obs
a0a0 63 75 72 65 64 20 62 79 20 6f 74 68 65 72 20 77 69 6e 64 6f 77 73 20 69 6e 20 74 68 65 20 61 70 cured.by.other.windows.in.the.ap
a0c0 70 6c 69 63 61 74 69 6f 6e 2c 0a 20 20 20 20 23 20 65 76 65 6e 20 74 68 6f 75 67 68 20 69 74 73 plication,.....#.even.though.its
a0e0 20 67 72 61 62 20 6b 65 65 70 73 20 74 68 65 20 72 65 73 74 20 6f 66 20 74 68 65 20 61 70 70 6c .grab.keeps.the.rest.of.the.appl
a100 69 63 61 74 69 6f 6e 20 66 72 6f 6d 20 62 65 69 6e 67 20 75 73 65 64 2e 0a 0a 20 20 20 20 77 6d ication.from.being.used.......wm
a120 20 74 72 61 6e 73 69 65 6e 74 20 24 77 20 5b 77 69 6e 66 6f 20 74 6f 70 6c 65 76 65 6c 20 5b 77 .transient.$w.[winfo.toplevel.[w
a140 69 6e 66 6f 20 70 61 72 65 6e 74 20 24 77 5d 5d 0a 20 20 20 20 69 66 20 7b 5b 73 74 72 69 6e 67 info.parent.$w]].....if.{[string
a160 20 65 71 75 61 6c 20 24 74 63 6c 5f 70 6c 61 74 66 6f 72 6d 28 70 6c 61 74 66 6f 72 6d 29 20 22 .equal.$tcl_platform(platform)."
a180 6d 61 63 69 6e 74 6f 73 68 22 5d 7d 20 7b 0a 09 75 6e 73 75 70 70 6f 72 74 65 64 31 20 73 74 79 macintosh"]}.{..unsupported1.sty
a1a0 6c 65 20 24 77 20 64 42 6f 78 50 72 6f 63 0a 20 20 20 20 7d 0a 0a 20 20 20 20 66 72 61 6d 65 20 le.$w.dBoxProc.....}......frame.
a1c0 24 77 2e 62 6f 74 0a 20 20 20 20 66 72 61 6d 65 20 24 77 2e 74 6f 70 0a 20 20 20 20 69 66 20 7b $w.bot.....frame.$w.top.....if.{
a1e0 5b 73 74 72 69 6e 67 20 65 71 75 61 6c 20 24 74 63 6c 5f 70 6c 61 74 66 6f 72 6d 28 70 6c 61 74 [string.equal.$tcl_platform(plat
a200 66 6f 72 6d 29 20 22 75 6e 69 78 22 5d 7d 20 7b 0a 09 24 77 2e 62 6f 74 20 63 6f 6e 66 69 67 75 form)."unix"]}.{..$w.bot.configu
a220 72 65 20 2d 72 65 6c 69 65 66 20 72 61 69 73 65 64 20 2d 62 64 20 31 0a 09 24 77 2e 74 6f 70 20 re.-relief.raised.-bd.1..$w.top.
a240 63 6f 6e 66 69 67 75 72 65 20 2d 72 65 6c 69 65 66 20 72 61 69 73 65 64 20 2d 62 64 20 31 0a 20 configure.-relief.raised.-bd.1..
a260 20 20 20 7d 0a 20 20 20 20 70 61 63 6b 20 24 77 2e 62 6f 74 20 2d 73 69 64 65 20 62 6f 74 74 6f ...}.....pack.$w.bot.-side.botto
a280 6d 20 2d 66 69 6c 6c 20 62 6f 74 68 0a 20 20 20 20 70 61 63 6b 20 24 77 2e 74 6f 70 20 2d 73 69 m.-fill.both.....pack.$w.top.-si
a2a0 64 65 20 74 6f 70 20 2d 66 69 6c 6c 20 62 6f 74 68 20 2d 65 78 70 61 6e 64 20 31 0a 0a 20 20 20 de.top.-fill.both.-expand.1.....
a2c0 20 23 20 32 2e 20 46 69 6c 6c 20 74 68 65 20 74 6f 70 20 70 61 72 74 20 77 69 74 68 20 62 69 74 .#.2..Fill.the.top.part.with.bit
a2e0 6d 61 70 20 61 6e 64 20 6d 65 73 73 61 67 65 20 28 75 73 65 20 74 68 65 20 6f 70 74 69 6f 6e 0a map.and.message.(use.the.option.
a300 20 20 20 20 23 20 64 61 74 61 62 61 73 65 20 66 6f 72 20 2d 77 72 61 70 6c 65 6e 67 74 68 20 61 ....#.database.for.-wraplength.a
a320 6e 64 20 2d 66 6f 6e 74 20 73 6f 20 74 68 61 74 20 74 68 65 79 20 63 61 6e 20 62 65 0a 20 20 20 nd.-font.so.that.they.can.be....
a340 20 23 20 6f 76 65 72 72 69 64 64 65 6e 20 62 79 20 74 68 65 20 63 61 6c 6c 65 72 29 2e 0a 0a 20 .#.overridden.by.the.caller)....
a360 20 20 20 6f 70 74 69 6f 6e 20 61 64 64 20 2a 44 69 61 6c 6f 67 2e 6d 73 67 2e 77 72 61 70 4c 65 ...option.add.*Dialog.msg.wrapLe
a380 6e 67 74 68 20 33 69 20 77 69 64 67 65 74 44 65 66 61 75 6c 74 0a 20 20 20 20 69 66 20 7b 5b 73 ngth.3i.widgetDefault.....if.{[s
a3a0 74 72 69 6e 67 20 65 71 75 61 6c 20 24 74 63 6c 5f 70 6c 61 74 66 6f 72 6d 28 70 6c 61 74 66 6f tring.equal.$tcl_platform(platfo
a3c0 72 6d 29 20 22 6d 61 63 69 6e 74 6f 73 68 22 5d 7d 20 7b 0a 09 6f 70 74 69 6f 6e 20 61 64 64 20 rm)."macintosh"]}.{..option.add.
a3e0 2a 44 69 61 6c 6f 67 2e 6d 73 67 2e 66 6f 6e 74 20 73 79 73 74 65 6d 20 77 69 64 67 65 74 44 65 *Dialog.msg.font.system.widgetDe
a400 66 61 75 6c 74 0a 20 20 20 20 7d 20 65 6c 73 65 20 7b 0a 09 6f 70 74 69 6f 6e 20 61 64 64 20 2a fault.....}.else.{..option.add.*
a420 44 69 61 6c 6f 67 2e 6d 73 67 2e 66 6f 6e 74 20 7b 54 69 6d 65 73 20 31 32 7d 20 77 69 64 67 65 Dialog.msg.font.{Times.12}.widge
a440 74 44 65 66 61 75 6c 74 0a 20 20 20 20 7d 0a 0a 20 20 20 20 6c 61 62 65 6c 20 24 77 2e 6d 73 67 tDefault.....}......label.$w.msg
a460 20 2d 6a 75 73 74 69 66 79 20 6c 65 66 74 20 2d 74 65 78 74 20 24 74 65 78 74 0a 20 20 20 20 70 .-justify.left.-text.$text.....p
a480 61 63 6b 20 24 77 2e 6d 73 67 20 2d 69 6e 20 24 77 2e 74 6f 70 20 2d 73 69 64 65 20 72 69 67 68 ack.$w.msg.-in.$w.top.-side.righ
a4a0 74 20 2d 65 78 70 61 6e 64 20 31 20 2d 66 69 6c 6c 20 62 6f 74 68 20 2d 70 61 64 78 20 33 6d 20 t.-expand.1.-fill.both.-padx.3m.
a4c0 2d 70 61 64 79 20 33 6d 0a 20 20 20 20 69 66 20 7b 5b 73 74 72 69 6e 67 20 63 6f 6d 70 61 72 65 -pady.3m.....if.{[string.compare
a4e0 20 24 62 69 74 6d 61 70 20 22 22 5d 7d 20 7b 0a 09 69 66 20 7b 5b 73 74 72 69 6e 67 20 65 71 75 .$bitmap.""]}.{..if.{[string.equ
a500 61 6c 20 24 74 63 6c 5f 70 6c 61 74 66 6f 72 6d 28 70 6c 61 74 66 6f 72 6d 29 20 22 6d 61 63 69 al.$tcl_platform(platform)."maci
a520 6e 74 6f 73 68 22 5d 20 26 26 20 5c 0a 09 09 5b 73 74 72 69 6e 67 20 65 71 75 61 6c 20 24 62 69 ntosh"].&&.\...[string.equal.$bi
a540 74 6d 61 70 20 22 65 72 72 6f 72 22 5d 7d 20 7b 0a 09 20 20 20 20 73 65 74 20 62 69 74 6d 61 70 tmap."error"]}.{......set.bitmap
a560 20 22 73 74 6f 70 22 0a 09 7d 0a 09 6c 61 62 65 6c 20 24 77 2e 62 69 74 6d 61 70 20 2d 62 69 74 ."stop"..}..label.$w.bitmap.-bit
a580 6d 61 70 20 24 62 69 74 6d 61 70 0a 09 70 61 63 6b 20 24 77 2e 62 69 74 6d 61 70 20 2d 69 6e 20 map.$bitmap..pack.$w.bitmap.-in.
a5a0 24 77 2e 74 6f 70 20 2d 73 69 64 65 20 6c 65 66 74 20 2d 70 61 64 78 20 33 6d 20 2d 70 61 64 79 $w.top.-side.left.-padx.3m.-pady
a5c0 20 33 6d 0a 20 20 20 20 7d 0a 0a 20 20 20 20 23 20 33 2e 20 43 72 65 61 74 65 20 61 20 72 6f 77 .3m.....}......#.3..Create.a.row
a5e0 20 6f 66 20 62 75 74 74 6f 6e 73 20 61 74 20 74 68 65 20 62 6f 74 74 6f 6d 20 6f 66 20 74 68 65 .of.buttons.at.the.bottom.of.the
a600 20 64 69 61 6c 6f 67 2e 0a 0a 20 20 20 20 73 65 74 20 69 20 30 0a 20 20 20 20 66 6f 72 65 61 63 .dialog.......set.i.0.....foreac
a620 68 20 62 75 74 20 24 61 72 67 73 20 7b 0a 09 62 75 74 74 6f 6e 20 24 77 2e 62 75 74 74 6f 6e 24 h.but.$args.{..button.$w.button$
a640 69 20 2d 74 65 78 74 20 24 62 75 74 20 2d 63 6f 6d 6d 61 6e 64 20 5b 6c 69 73 74 20 73 65 74 20 i.-text.$but.-command.[list.set.
a660 74 6b 50 72 69 76 28 62 75 74 74 6f 6e 29 20 24 69 5d 0a 09 69 66 20 7b 24 69 20 3d 3d 20 24 64 tkPriv(button).$i]..if.{$i.==.$d
a680 65 66 61 75 6c 74 7d 20 7b 0a 09 20 20 20 20 24 77 2e 62 75 74 74 6f 6e 24 69 20 63 6f 6e 66 69 efault}.{......$w.button$i.confi
a6a0 67 75 72 65 20 2d 64 65 66 61 75 6c 74 20 61 63 74 69 76 65 0a 09 7d 20 65 6c 73 65 20 7b 0a 09 gure.-default.active..}.else.{..
a6c0 20 20 20 20 24 77 2e 62 75 74 74 6f 6e 24 69 20 63 6f 6e 66 69 67 75 72 65 20 2d 64 65 66 61 75 ....$w.button$i.configure.-defau
a6e0 6c 74 20 6e 6f 72 6d 61 6c 0a 09 7d 0a 09 67 72 69 64 20 24 77 2e 62 75 74 74 6f 6e 24 69 20 2d lt.normal..}..grid.$w.button$i.-
a700 69 6e 20 24 77 2e 62 6f 74 20 2d 63 6f 6c 75 6d 6e 20 24 69 20 2d 72 6f 77 20 30 20 2d 73 74 69 in.$w.bot.-column.$i.-row.0.-sti
a720 63 6b 79 20 65 77 20 2d 70 61 64 78 20 31 30 0a 09 67 72 69 64 20 63 6f 6c 75 6d 6e 63 6f 6e 66 cky.ew.-padx.10..grid.columnconf
a740 69 67 75 72 65 20 24 77 2e 62 6f 74 20 24 69 0a 09 23 20 57 65 20 62 6f 6f 73 74 20 74 68 65 20 igure.$w.bot.$i..#.We.boost.the.
a760 73 69 7a 65 20 6f 66 20 73 6f 6d 65 20 4d 61 63 20 62 75 74 74 6f 6e 73 20 66 6f 72 20 6c 26 66 size.of.some.Mac.buttons.for.l&f
a780 0a 09 69 66 20 7b 5b 73 74 72 69 6e 67 20 65 71 75 61 6c 20 24 74 63 6c 5f 70 6c 61 74 66 6f 72 ..if.{[string.equal.$tcl_platfor
a7a0 6d 28 70 6c 61 74 66 6f 72 6d 29 20 22 6d 61 63 69 6e 74 6f 73 68 22 5d 7d 20 7b 0a 09 20 20 20 m(platform)."macintosh"]}.{.....
a7c0 20 73 65 74 20 74 6d 70 20 5b 73 74 72 69 6e 67 20 74 6f 6c 6f 77 65 72 20 24 62 75 74 5d 0a 09 .set.tmp.[string.tolower.$but]..
a7e0 20 20 20 20 69 66 20 7b 5b 73 74 72 69 6e 67 20 65 71 75 61 6c 20 24 74 6d 70 20 22 6f 6b 22 5d ....if.{[string.equal.$tmp."ok"]
a800 20 7c 7c 20 5b 73 74 72 69 6e 67 20 65 71 75 61 6c 20 24 74 6d 70 20 22 63 61 6e 63 65 6c 22 5d .||.[string.equal.$tmp."cancel"]
a820 7d 20 7b 0a 09 09 67 72 69 64 20 63 6f 6c 75 6d 6e 63 6f 6e 66 69 67 75 72 65 20 24 77 2e 62 6f }.{...grid.columnconfigure.$w.bo
a840 74 20 24 69 20 2d 6d 69 6e 73 69 7a 65 20 5b 65 78 70 72 20 7b 35 39 20 2b 20 32 30 7d 5d 0a 09 t.$i.-minsize.[expr.{59.+.20}]..
a860 20 20 20 20 7d 0a 09 7d 0a 09 69 6e 63 72 20 69 0a 20 20 20 20 7d 0a 0a 20 20 20 20 23 20 34 2e ....}..}..incr.i.....}......#.4.
a880 20 43 72 65 61 74 65 20 61 20 62 69 6e 64 69 6e 67 20 66 6f 72 20 3c 52 65 74 75 72 6e 3e 20 6f .Create.a.binding.for.<Return>.o
a8a0 6e 20 74 68 65 20 64 69 61 6c 6f 67 20 69 66 20 74 68 65 72 65 20 69 73 20 61 0a 20 20 20 20 23 n.the.dialog.if.there.is.a.....#
a8c0 20 64 65 66 61 75 6c 74 20 62 75 74 74 6f 6e 2e 0a 0a 20 20 20 20 69 66 20 7b 24 64 65 66 61 75 .default.button.......if.{$defau
a8e0 6c 74 20 3e 3d 20 30 7d 20 7b 0a 09 62 69 6e 64 20 24 77 20 3c 52 65 74 75 72 6e 3e 20 22 0a 09 lt.>=.0}.{..bind.$w.<Return>."..
a900 5b 6c 69 73 74 20 24 77 2e 62 75 74 74 6f 6e 24 64 65 66 61 75 6c 74 5d 20 63 6f 6e 66 69 67 75 [list.$w.button$default].configu
a920 72 65 20 2d 73 74 61 74 65 20 61 63 74 69 76 65 20 2d 72 65 6c 69 65 66 20 73 75 6e 6b 65 6e 0a re.-state.active.-relief.sunken.
a940 09 75 70 64 61 74 65 20 69 64 6c 65 74 61 73 6b 73 0a 09 61 66 74 65 72 20 31 30 30 0a 09 73 65 .update.idletasks..after.100..se
a960 74 20 74 6b 50 72 69 76 28 62 75 74 74 6f 6e 29 20 24 64 65 66 61 75 6c 74 0a 09 22 0a 20 20 20 t.tkPriv(button).$default.."....
a980 20 7d 0a 0a 20 20 20 20 23 20 35 2e 20 43 72 65 61 74 65 20 61 20 3c 44 65 73 74 72 6f 79 3e 20 .}......#.5..Create.a.<Destroy>.
a9a0 62 69 6e 64 69 6e 67 20 66 6f 72 20 74 68 65 20 77 69 6e 64 6f 77 20 74 68 61 74 20 73 65 74 73 binding.for.the.window.that.sets
a9c0 20 74 68 65 0a 20 20 20 20 23 20 62 75 74 74 6f 6e 20 76 61 72 69 61 62 6c 65 20 74 6f 20 2d 31 .the.....#.button.variable.to.-1
a9e0 3b 20 20 74 68 69 73 20 69 73 20 6e 65 65 64 65 64 20 69 6e 20 63 61 73 65 20 73 6f 6d 65 74 68 ;..this.is.needed.in.case.someth
aa00 69 6e 67 20 68 61 70 70 65 6e 73 0a 20 20 20 20 23 20 74 68 61 74 20 64 65 73 74 72 6f 79 73 20 ing.happens.....#.that.destroys.
aa20 74 68 65 20 77 69 6e 64 6f 77 2c 20 73 75 63 68 20 61 73 20 69 74 73 20 70 61 72 65 6e 74 20 77 the.window,.such.as.its.parent.w
aa40 69 6e 64 6f 77 20 62 65 69 6e 67 20 64 65 73 74 72 6f 79 65 64 2e 0a 0a 20 20 20 20 62 69 6e 64 indow.being.destroyed.......bind
aa60 20 24 77 20 3c 44 65 73 74 72 6f 79 3e 20 7b 73 65 74 20 74 6b 50 72 69 76 28 62 75 74 74 6f 6e .$w.<Destroy>.{set.tkPriv(button
aa80 29 20 2d 31 7d 0a 0a 20 20 20 20 23 20 36 2e 20 57 69 74 68 64 72 61 77 20 74 68 65 20 77 69 6e ).-1}......#.6..Withdraw.the.win
aaa0 64 6f 77 2c 20 74 68 65 6e 20 75 70 64 61 74 65 20 61 6c 6c 20 74 68 65 20 67 65 6f 6d 65 74 72 dow,.then.update.all.the.geometr
aac0 79 20 69 6e 66 6f 72 6d 61 74 69 6f 6e 0a 20 20 20 20 23 20 73 6f 20 77 65 20 6b 6e 6f 77 20 68 y.information.....#.so.we.know.h
aae0 6f 77 20 62 69 67 20 69 74 20 77 61 6e 74 73 20 74 6f 20 62 65 2c 20 74 68 65 6e 20 63 65 6e 74 ow.big.it.wants.to.be,.then.cent
ab00 65 72 20 74 68 65 20 77 69 6e 64 6f 77 20 69 6e 20 74 68 65 0a 20 20 20 20 23 20 64 69 73 70 6c er.the.window.in.the.....#.displ
ab20 61 79 20 61 6e 64 20 64 65 2d 69 63 6f 6e 69 66 79 20 69 74 2e 0a 0a 20 20 20 20 77 6d 20 77 69 ay.and.de-iconify.it.......wm.wi
ab40 74 68 64 72 61 77 20 24 77 0a 20 20 20 20 75 70 64 61 74 65 20 69 64 6c 65 74 61 73 6b 73 0a 20 thdraw.$w.....update.idletasks..
ab60 20 20 20 73 65 74 20 78 20 5b 65 78 70 72 20 7b 5b 77 69 6e 66 6f 20 73 63 72 65 65 6e 77 69 64 ...set.x.[expr.{[winfo.screenwid
ab80 74 68 20 24 77 5d 2f 32 20 2d 20 5b 77 69 6e 66 6f 20 72 65 71 77 69 64 74 68 20 24 77 5d 2f 32 th.$w]/2.-.[winfo.reqwidth.$w]/2
aba0 20 5c 0a 09 20 20 20 20 2d 20 5b 77 69 6e 66 6f 20 76 72 6f 6f 74 78 20 5b 77 69 6e 66 6f 20 70 .\......-.[winfo.vrootx.[winfo.p
abc0 61 72 65 6e 74 20 24 77 5d 5d 7d 5d 0a 20 20 20 20 73 65 74 20 79 20 5b 65 78 70 72 20 7b 5b 77 arent.$w]]}].....set.y.[expr.{[w
abe0 69 6e 66 6f 20 73 63 72 65 65 6e 68 65 69 67 68 74 20 24 77 5d 2f 32 20 2d 20 5b 77 69 6e 66 6f info.screenheight.$w]/2.-.[winfo
ac00 20 72 65 71 68 65 69 67 68 74 20 24 77 5d 2f 32 20 5c 0a 09 20 20 20 20 2d 20 5b 77 69 6e 66 6f .reqheight.$w]/2.\......-.[winfo
ac20 20 76 72 6f 6f 74 79 20 5b 77 69 6e 66 6f 20 70 61 72 65 6e 74 20 24 77 5d 5d 7d 5d 0a 20 20 20 .vrooty.[winfo.parent.$w]]}]....
ac40 20 77 6d 20 67 65 6f 6d 20 24 77 20 2b 24 78 2b 24 79 0a 20 20 20 20 77 6d 20 64 65 69 63 6f 6e .wm.geom.$w.+$x+$y.....wm.deicon
ac60 69 66 79 20 24 77 0a 0a 20 20 20 20 23 20 37 2e 20 53 65 74 20 61 20 67 72 61 62 20 61 6e 64 20 ify.$w......#.7..Set.a.grab.and.
ac80 63 6c 61 69 6d 20 74 68 65 20 66 6f 63 75 73 20 74 6f 6f 2e 0a 0a 20 20 20 20 73 65 74 20 6f 6c claim.the.focus.too.......set.ol
aca0 64 46 6f 63 75 73 20 5b 66 6f 63 75 73 5d 0a 20 20 20 20 73 65 74 20 6f 6c 64 47 72 61 62 20 5b dFocus.[focus].....set.oldGrab.[
acc0 67 72 61 62 20 63 75 72 72 65 6e 74 20 24 77 5d 0a 20 20 20 20 69 66 20 7b 5b 73 74 72 69 6e 67 grab.current.$w].....if.{[string
ace0 20 63 6f 6d 70 61 72 65 20 24 6f 6c 64 47 72 61 62 20 22 22 5d 7d 20 7b 0a 09 73 65 74 20 67 72 .compare.$oldGrab.""]}.{..set.gr
ad00 61 62 53 74 61 74 75 73 20 5b 67 72 61 62 20 73 74 61 74 75 73 20 24 6f 6c 64 47 72 61 62 5d 0a abStatus.[grab.status.$oldGrab].
ad20 20 20 20 20 7d 0a 20 20 20 20 67 72 61 62 20 24 77 0a 20 20 20 20 69 66 20 7b 24 64 65 66 61 75 ....}.....grab.$w.....if.{$defau
ad40 6c 74 20 3e 3d 20 30 7d 20 7b 0a 09 66 6f 63 75 73 20 24 77 2e 62 75 74 74 6f 6e 24 64 65 66 61 lt.>=.0}.{..focus.$w.button$defa
ad60 75 6c 74 0a 20 20 20 20 7d 20 65 6c 73 65 20 7b 0a 09 66 6f 63 75 73 20 24 77 0a 20 20 20 20 7d ult.....}.else.{..focus.$w.....}
ad80 0a 0a 20 20 20 20 23 20 38 2e 20 57 61 69 74 20 66 6f 72 20 74 68 65 20 75 73 65 72 20 74 6f 20 ......#.8..Wait.for.the.user.to.
ada0 72 65 73 70 6f 6e 64 2c 20 74 68 65 6e 20 72 65 73 74 6f 72 65 20 74 68 65 20 66 6f 63 75 73 20 respond,.then.restore.the.focus.
adc0 61 6e 64 0a 20 20 20 20 23 20 72 65 74 75 72 6e 20 74 68 65 20 69 6e 64 65 78 20 6f 66 20 74 68 and.....#.return.the.index.of.th
ade0 65 20 73 65 6c 65 63 74 65 64 20 62 75 74 74 6f 6e 2e 20 20 52 65 73 74 6f 72 65 20 74 68 65 20 e.selected.button...Restore.the.
ae00 66 6f 63 75 73 0a 20 20 20 20 23 20 62 65 66 6f 72 65 20 64 65 6c 65 74 69 6e 67 20 74 68 65 20 focus.....#.before.deleting.the.
ae20 77 69 6e 64 6f 77 2c 20 73 69 6e 63 65 20 6f 74 68 65 72 77 69 73 65 20 74 68 65 20 77 69 6e 64 window,.since.otherwise.the.wind
ae40 6f 77 20 6d 61 6e 61 67 65 72 0a 20 20 20 20 23 20 6d 61 79 20 74 61 6b 65 20 74 68 65 20 66 6f ow.manager.....#.may.take.the.fo
ae60 63 75 73 20 61 77 61 79 20 73 6f 20 77 65 20 63 61 6e 27 74 20 72 65 64 69 72 65 63 74 20 69 74 cus.away.so.we.can't.redirect.it
ae80 2e 20 20 46 69 6e 61 6c 6c 79 2c 0a 20 20 20 20 23 20 72 65 73 74 6f 72 65 20 61 6e 79 20 67 72 ...Finally,.....#.restore.any.gr
aea0 61 62 20 74 68 61 74 20 77 61 73 20 69 6e 20 65 66 66 65 63 74 2e 0a 0a 20 20 20 20 74 6b 77 61 ab.that.was.in.effect.......tkwa
aec0 69 74 20 76 61 72 69 61 62 6c 65 20 74 6b 50 72 69 76 28 62 75 74 74 6f 6e 29 0a 20 20 20 20 63 it.variable.tkPriv(button).....c
aee0 61 74 63 68 20 7b 66 6f 63 75 73 20 24 6f 6c 64 46 6f 63 75 73 7d 0a 20 20 20 20 63 61 74 63 68 atch.{focus.$oldFocus}.....catch
af00 20 7b 0a 09 23 20 49 74 27 73 20 70 6f 73 73 69 62 6c 65 20 74 68 61 74 20 74 68 65 20 77 69 6e .{..#.It's.possible.that.the.win
af20 64 6f 77 20 68 61 73 20 61 6c 72 65 61 64 79 20 62 65 65 6e 20 64 65 73 74 72 6f 79 65 64 2c 0a dow.has.already.been.destroyed,.
af40 09 23 20 68 65 6e 63 65 20 74 68 69 73 20 22 63 61 74 63 68 22 2e 20 20 44 65 6c 65 74 65 20 74 .#.hence.this."catch"...Delete.t
af60 68 65 20 44 65 73 74 72 6f 79 20 68 61 6e 64 6c 65 72 20 73 6f 20 74 68 61 74 0a 09 23 20 74 6b he.Destroy.handler.so.that..#.tk
af80 50 72 69 76 28 62 75 74 74 6f 6e 29 20 64 6f 65 73 6e 27 74 20 67 65 74 20 72 65 73 65 74 20 62 Priv(button).doesn't.get.reset.b
afa0 79 20 69 74 2e 0a 0a 09 62 69 6e 64 20 24 77 20 3c 44 65 73 74 72 6f 79 3e 20 7b 7d 0a 09 64 65 y.it....bind.$w.<Destroy>.{}..de
afc0 73 74 72 6f 79 20 24 77 0a 20 20 20 20 7d 0a 20 20 20 20 69 66 20 7b 5b 73 74 72 69 6e 67 20 63 stroy.$w.....}.....if.{[string.c
afe0 6f 6d 70 61 72 65 20 24 6f 6c 64 47 72 61 62 20 22 22 5d 7d 20 7b 0a 20 20 20 20 20 20 69 66 20 ompare.$oldGrab.""]}.{.......if.
b000 7b 5b 73 74 72 69 6e 67 20 63 6f 6d 70 61 72 65 20 24 67 72 61 62 53 74 61 74 75 73 20 22 67 6c {[string.compare.$grabStatus."gl
b020 6f 62 61 6c 22 5d 7d 20 7b 0a 09 20 20 20 20 67 72 61 62 20 24 6f 6c 64 47 72 61 62 0a 20 20 20 obal"]}.{......grab.$oldGrab....
b040 20 20 20 7d 20 65 6c 73 65 20 7b 0a 20 20 20 20 20 20 20 20 20 20 67 72 61 62 20 2d 67 6c 6f 62 ...}.else.{...........grab.-glob
b060 61 6c 20 24 6f 6c 64 47 72 61 62 0a 09 7d 0a 20 20 20 20 7d 0a 20 20 20 20 72 65 74 75 72 6e 20 al.$oldGrab..}.....}.....return.
b080 24 74 6b 50 72 69 76 28 62 75 74 74 6f 6e 29 0a 7d 0a 00 00 3d fa 23 20 65 6e 74 72 79 2e 74 63 $tkPriv(button).}...=.#.entry.tc
b0a0 6c 20 2d 2d 0a 23 0a 23 20 54 68 69 73 20 66 69 6c 65 20 64 65 66 69 6e 65 73 20 74 68 65 20 64 l.--.#.#.This.file.defines.the.d
b0c0 65 66 61 75 6c 74 20 62 69 6e 64 69 6e 67 73 20 66 6f 72 20 54 6b 20 65 6e 74 72 79 20 77 69 64 efault.bindings.for.Tk.entry.wid
b0e0 67 65 74 73 20 61 6e 64 20 70 72 6f 76 69 64 65 73 0a 23 20 70 72 6f 63 65 64 75 72 65 73 20 74 gets.and.provides.#.procedures.t
b100 68 61 74 20 68 65 6c 70 20 69 6e 20 69 6d 70 6c 65 6d 65 6e 74 69 6e 67 20 74 68 6f 73 65 20 62 hat.help.in.implementing.those.b
b120 69 6e 64 69 6e 67 73 2e 0a 23 0a 23 20 52 43 53 3a 20 40 28 23 29 20 24 49 64 3a 20 65 6e 74 72 indings..#.#.RCS:.@(#).$Id:.entr
b140 79 2e 74 63 6c 2c 76 20 31 2e 31 31 20 32 30 30 30 2f 30 31 2f 30 36 20 30 32 3a 32 32 3a 32 34 y.tcl,v.1.11.2000/01/06.02:22:24
b160 20 68 6f 62 62 73 20 45 78 70 20 24 0a 23 0a 23 20 43 6f 70 79 72 69 67 68 74 20 28 63 29 20 31 .hobbs.Exp.$.#.#.Copyright.(c).1
b180 39 39 32 2d 31 39 39 34 20 54 68 65 20 52 65 67 65 6e 74 73 20 6f 66 20 74 68 65 20 55 6e 69 76 992-1994.The.Regents.of.the.Univ
b1a0 65 72 73 69 74 79 20 6f 66 20 43 61 6c 69 66 6f 72 6e 69 61 2e 0a 23 20 43 6f 70 79 72 69 67 68 ersity.of.California..#.Copyrigh
b1c0 74 20 28 63 29 20 31 39 39 34 2d 31 39 39 37 20 53 75 6e 20 4d 69 63 72 6f 73 79 73 74 65 6d 73 t.(c).1994-1997.Sun.Microsystems
b1e0 2c 20 49 6e 63 2e 0a 23 0a 23 20 53 65 65 20 74 68 65 20 66 69 6c 65 20 22 6c 69 63 65 6e 73 65 ,.Inc..#.#.See.the.file."license
b200 2e 74 65 72 6d 73 22 20 66 6f 72 20 69 6e 66 6f 72 6d 61 74 69 6f 6e 20 6f 6e 20 75 73 61 67 65 .terms".for.information.on.usage
b220 20 61 6e 64 20 72 65 64 69 73 74 72 69 62 75 74 69 6f 6e 0a 23 20 6f 66 20 74 68 69 73 20 66 69 .and.redistribution.#.of.this.fi
b240 6c 65 2c 20 61 6e 64 20 66 6f 72 20 61 20 44 49 53 43 4c 41 49 4d 45 52 20 4f 46 20 41 4c 4c 20 le,.and.for.a.DISCLAIMER.OF.ALL.
b260 57 41 52 52 41 4e 54 49 45 53 2e 0a 23 0a 0a 23 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d WARRANTIES..#..#----------------
b280 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d --------------------------------
b2a0 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 0a 23 20 45 6c 65 6d -------------------------.#.Elem
b2c0 65 6e 74 73 20 6f 66 20 74 6b 50 72 69 76 20 74 68 61 74 20 61 72 65 20 75 73 65 64 20 69 6e 20 ents.of.tkPriv.that.are.used.in.
b2e0 74 68 69 73 20 66 69 6c 65 3a 0a 23 0a 23 20 61 66 74 65 72 49 64 20 2d 09 09 49 66 20 6e 6f 6e this.file:.#.#.afterId.-..If.non
b300 2d 6e 75 6c 6c 2c 20 69 74 20 6d 65 61 6e 73 20 74 68 61 74 20 61 75 74 6f 2d 73 63 61 6e 6e 69 -null,.it.means.that.auto-scanni
b320 6e 67 20 69 73 20 75 6e 64 65 72 77 61 79 0a 23 09 09 09 61 6e 64 20 69 74 20 67 69 76 65 73 20 ng.is.underway.#...and.it.gives.
b340 74 68 65 20 22 61 66 74 65 72 22 20 69 64 20 66 6f 72 20 74 68 65 20 6e 65 78 74 20 61 75 74 6f the."after".id.for.the.next.auto
b360 2d 73 63 61 6e 0a 23 09 09 09 63 6f 6d 6d 61 6e 64 20 74 6f 20 62 65 20 65 78 65 63 75 74 65 64 -scan.#...command.to.be.executed
b380 2e 0a 23 20 6d 6f 75 73 65 4d 6f 76 65 64 20 2d 09 09 4e 6f 6e 2d 7a 65 72 6f 20 6d 65 61 6e 73 ..#.mouseMoved.-..Non-zero.means
b3a0 20 74 68 65 20 6d 6f 75 73 65 20 68 61 73 20 6d 6f 76 65 64 20 61 20 73 69 67 6e 69 66 69 63 61 .the.mouse.has.moved.a.significa
b3c0 6e 74 0a 23 09 09 09 61 6d 6f 75 6e 74 20 73 69 6e 63 65 20 74 68 65 20 62 75 74 74 6f 6e 20 77 nt.#...amount.since.the.button.w
b3e0 65 6e 74 20 64 6f 77 6e 20 28 73 6f 2c 20 66 6f 72 20 65 78 61 6d 70 6c 65 2c 0a 23 09 09 09 73 ent.down.(so,.for.example,.#...s
b400 74 61 72 74 20 64 72 61 67 67 69 6e 67 20 6f 75 74 20 61 20 73 65 6c 65 63 74 69 6f 6e 29 2e 0a tart.dragging.out.a.selection)..
b420 23 20 70 72 65 73 73 58 20 2d 09 09 58 2d 63 6f 6f 72 64 69 6e 61 74 65 20 61 74 20 77 68 69 63 #.pressX.-..X-coordinate.at.whic
b440 68 20 74 68 65 20 6d 6f 75 73 65 20 62 75 74 74 6f 6e 20 77 61 73 20 70 72 65 73 73 65 64 2e 0a h.the.mouse.button.was.pressed..
b460 23 20 73 65 6c 65 63 74 4d 6f 64 65 20 2d 09 09 54 68 65 20 73 74 79 6c 65 20 6f 66 20 73 65 6c #.selectMode.-..The.style.of.sel
b480 65 63 74 69 6f 6e 20 63 75 72 72 65 6e 74 6c 79 20 75 6e 64 65 72 77 61 79 3a 0a 23 09 09 09 63 ection.currently.underway:.#...c
b4a0 68 61 72 2c 20 77 6f 72 64 2c 20 6f 72 20 6c 69 6e 65 2e 0a 23 20 78 2c 20 79 20 2d 09 09 4c 61 har,.word,.or.line..#.x,.y.-..La
b4c0 73 74 20 6b 6e 6f 77 6e 20 6d 6f 75 73 65 20 63 6f 6f 72 64 69 6e 61 74 65 73 20 66 6f 72 20 73 st.known.mouse.coordinates.for.s
b4e0 63 61 6e 6e 69 6e 67 0a 23 09 09 09 61 6e 64 20 61 75 74 6f 2d 73 63 61 6e 6e 69 6e 67 2e 0a 23 canning.#...and.auto-scanning..#
b500 20 64 61 74 61 20 2d 09 09 55 73 65 64 20 66 6f 72 20 43 75 74 20 61 6e 64 20 43 6f 70 79 0a 23 .data.-..Used.for.Cut.and.Copy.#
b520 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d --------------------------------
b540 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d --------------------------------
b560 2d 2d 2d 2d 2d 2d 2d 2d 2d 0a 0a 23 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d ---------..#--------------------
b580 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d --------------------------------
b5a0 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 0a 23 20 54 68 65 20 63 6f 64 65 ---------------------.#.The.code
b5c0 20 62 65 6c 6f 77 20 63 72 65 61 74 65 73 20 74 68 65 20 64 65 66 61 75 6c 74 20 63 6c 61 73 73 .below.creates.the.default.class
b5e0 20 62 69 6e 64 69 6e 67 73 20 66 6f 72 20 65 6e 74 72 69 65 73 2e 0a 23 2d 2d 2d 2d 2d 2d 2d 2d .bindings.for.entries..#--------
b600 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d --------------------------------
b620 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d --------------------------------
b640 2d 0a 62 69 6e 64 20 45 6e 74 72 79 20 3c 3c 43 75 74 3e 3e 20 7b 0a 20 20 20 20 69 66 20 7b 21 -.bind.Entry.<<Cut>>.{.....if.{!
b660 5b 63 61 74 63 68 20 7b 74 6b 45 6e 74 72 79 47 65 74 53 65 6c 65 63 74 69 6f 6e 20 25 57 7d 20 [catch.{tkEntryGetSelection.%W}.
b680 74 6b 50 72 69 76 28 64 61 74 61 29 5d 7d 20 7b 0a 09 63 6c 69 70 62 6f 61 72 64 20 63 6c 65 61 tkPriv(data)]}.{..clipboard.clea
b6a0 72 20 2d 64 69 73 70 6c 61 79 6f 66 20 25 57 0a 09 63 6c 69 70 62 6f 61 72 64 20 61 70 70 65 6e r.-displayof.%W..clipboard.appen
b6c0 64 20 2d 64 69 73 70 6c 61 79 6f 66 20 25 57 20 24 74 6b 50 72 69 76 28 64 61 74 61 29 0a 09 25 d.-displayof.%W.$tkPriv(data)..%
b6e0 57 20 64 65 6c 65 74 65 20 73 65 6c 2e 66 69 72 73 74 20 73 65 6c 2e 6c 61 73 74 0a 09 75 6e 73 W.delete.sel.first.sel.last..uns
b700 65 74 20 74 6b 50 72 69 76 28 64 61 74 61 29 0a 20 20 20 20 7d 0a 7d 0a 62 69 6e 64 20 45 6e 74 et.tkPriv(data).....}.}.bind.Ent
b720 72 79 20 3c 3c 43 6f 70 79 3e 3e 20 7b 0a 20 20 20 20 69 66 20 7b 21 5b 63 61 74 63 68 20 7b 74 ry.<<Copy>>.{.....if.{![catch.{t
b740 6b 45 6e 74 72 79 47 65 74 53 65 6c 65 63 74 69 6f 6e 20 25 57 7d 20 74 6b 50 72 69 76 28 64 61 kEntryGetSelection.%W}.tkPriv(da
b760 74 61 29 5d 7d 20 7b 0a 09 63 6c 69 70 62 6f 61 72 64 20 63 6c 65 61 72 20 2d 64 69 73 70 6c 61 ta)]}.{..clipboard.clear.-displa
b780 79 6f 66 20 25 57 0a 09 63 6c 69 70 62 6f 61 72 64 20 61 70 70 65 6e 64 20 2d 64 69 73 70 6c 61 yof.%W..clipboard.append.-displa
b7a0 79 6f 66 20 25 57 20 24 74 6b 50 72 69 76 28 64 61 74 61 29 0a 09 75 6e 73 65 74 20 74 6b 50 72 yof.%W.$tkPriv(data)..unset.tkPr
b7c0 69 76 28 64 61 74 61 29 0a 20 20 20 20 7d 0a 7d 0a 62 69 6e 64 20 45 6e 74 72 79 20 3c 3c 50 61 iv(data).....}.}.bind.Entry.<<Pa
b7e0 73 74 65 3e 3e 20 7b 0a 20 20 20 20 67 6c 6f 62 61 6c 20 74 63 6c 5f 70 6c 61 74 66 6f 72 6d 0a ste>>.{.....global.tcl_platform.
b800 20 20 20 20 63 61 74 63 68 20 7b 0a 09 69 66 20 7b 5b 73 74 72 69 6e 67 20 63 6f 6d 70 61 72 65 ....catch.{..if.{[string.compare
b820 20 24 74 63 6c 5f 70 6c 61 74 66 6f 72 6d 28 70 6c 61 74 66 6f 72 6d 29 20 22 75 6e 69 78 22 5d .$tcl_platform(platform)."unix"]
b840 7d 20 7b 0a 09 20 20 20 20 63 61 74 63 68 20 7b 0a 09 09 25 57 20 64 65 6c 65 74 65 20 73 65 6c }.{......catch.{...%W.delete.sel
b860 2e 66 69 72 73 74 20 73 65 6c 2e 6c 61 73 74 0a 09 20 20 20 20 7d 0a 09 7d 0a 09 25 57 20 69 6e .first.sel.last......}..}..%W.in
b880 73 65 72 74 20 69 6e 73 65 72 74 20 5b 73 65 6c 65 63 74 69 6f 6e 20 67 65 74 20 2d 64 69 73 70 sert.insert.[selection.get.-disp
b8a0 6c 61 79 6f 66 20 25 57 20 2d 73 65 6c 65 63 74 69 6f 6e 20 43 4c 49 50 42 4f 41 52 44 5d 0a 09 layof.%W.-selection.CLIPBOARD]..
b8c0 74 6b 45 6e 74 72 79 53 65 65 49 6e 73 65 72 74 20 25 57 0a 20 20 20 20 7d 0a 7d 0a 62 69 6e 64 tkEntrySeeInsert.%W.....}.}.bind
b8e0 20 45 6e 74 72 79 20 3c 3c 43 6c 65 61 72 3e 3e 20 7b 0a 20 20 20 20 25 57 20 64 65 6c 65 74 65 .Entry.<<Clear>>.{.....%W.delete
b900 20 73 65 6c 2e 66 69 72 73 74 20 73 65 6c 2e 6c 61 73 74 0a 7d 0a 62 69 6e 64 20 45 6e 74 72 79 .sel.first.sel.last.}.bind.Entry
b920 20 3c 3c 50 61 73 74 65 53 65 6c 65 63 74 69 6f 6e 3e 3e 20 7b 0a 20 20 20 20 69 66 20 7b 21 24 .<<PasteSelection>>.{.....if.{!$
b940 74 6b 50 72 69 76 28 6d 6f 75 73 65 4d 6f 76 65 64 29 20 7c 7c 20 24 74 6b 5f 73 74 72 69 63 74 tkPriv(mouseMoved).||.$tk_strict
b960 4d 6f 74 69 66 7d 20 7b 0a 09 74 6b 45 6e 74 72 79 50 61 73 74 65 20 25 57 20 25 78 0a 20 20 20 Motif}.{..tkEntryPaste.%W.%x....
b980 20 7d 0a 7d 0a 0a 23 20 53 74 61 6e 64 61 72 64 20 4d 6f 74 69 66 20 62 69 6e 64 69 6e 67 73 3a .}.}..#.Standard.Motif.bindings:
b9a0 0a 0a 62 69 6e 64 20 45 6e 74 72 79 20 3c 31 3e 20 7b 0a 20 20 20 20 74 6b 45 6e 74 72 79 42 75 ..bind.Entry.<1>.{.....tkEntryBu
b9c0 74 74 6f 6e 31 20 25 57 20 25 78 0a 20 20 20 20 25 57 20 73 65 6c 65 63 74 69 6f 6e 20 63 6c 65 tton1.%W.%x.....%W.selection.cle
b9e0 61 72 0a 7d 0a 62 69 6e 64 20 45 6e 74 72 79 20 3c 42 31 2d 4d 6f 74 69 6f 6e 3e 20 7b 0a 20 20 ar.}.bind.Entry.<B1-Motion>.{...
ba00 20 20 73 65 74 20 74 6b 50 72 69 76 28 78 29 20 25 78 0a 20 20 20 20 74 6b 45 6e 74 72 79 4d 6f ..set.tkPriv(x).%x.....tkEntryMo
ba20 75 73 65 53 65 6c 65 63 74 20 25 57 20 25 78 0a 7d 0a 62 69 6e 64 20 45 6e 74 72 79 20 3c 44 6f useSelect.%W.%x.}.bind.Entry.<Do
ba40 75 62 6c 65 2d 31 3e 20 7b 0a 20 20 20 20 73 65 74 20 74 6b 50 72 69 76 28 73 65 6c 65 63 74 4d uble-1>.{.....set.tkPriv(selectM
ba60 6f 64 65 29 20 77 6f 72 64 0a 20 20 20 20 74 6b 45 6e 74 72 79 4d 6f 75 73 65 53 65 6c 65 63 74 ode).word.....tkEntryMouseSelect
ba80 20 25 57 20 25 78 0a 20 20 20 20 63 61 74 63 68 20 7b 25 57 20 69 63 75 72 73 6f 72 20 73 65 6c .%W.%x.....catch.{%W.icursor.sel
baa0 2e 66 69 72 73 74 7d 0a 7d 0a 62 69 6e 64 20 45 6e 74 72 79 20 3c 54 72 69 70 6c 65 2d 31 3e 20 .first}.}.bind.Entry.<Triple-1>.
bac0 7b 0a 20 20 20 20 73 65 74 20 74 6b 50 72 69 76 28 73 65 6c 65 63 74 4d 6f 64 65 29 20 6c 69 6e {.....set.tkPriv(selectMode).lin
bae0 65 0a 20 20 20 20 74 6b 45 6e 74 72 79 4d 6f 75 73 65 53 65 6c 65 63 74 20 25 57 20 25 78 0a 20 e.....tkEntryMouseSelect.%W.%x..
bb00 20 20 20 25 57 20 69 63 75 72 73 6f 72 20 30 0a 7d 0a 62 69 6e 64 20 45 6e 74 72 79 20 3c 53 68 ...%W.icursor.0.}.bind.Entry.<Sh
bb20 69 66 74 2d 31 3e 20 7b 0a 20 20 20 20 73 65 74 20 74 6b 50 72 69 76 28 73 65 6c 65 63 74 4d 6f ift-1>.{.....set.tkPriv(selectMo
bb40 64 65 29 20 63 68 61 72 0a 20 20 20 20 25 57 20 73 65 6c 65 63 74 69 6f 6e 20 61 64 6a 75 73 74 de).char.....%W.selection.adjust
bb60 20 40 25 78 0a 7d 0a 62 69 6e 64 20 45 6e 74 72 79 20 3c 44 6f 75 62 6c 65 2d 53 68 69 66 74 2d .@%x.}.bind.Entry.<Double-Shift-
bb80 31 3e 09 7b 0a 20 20 20 20 73 65 74 20 74 6b 50 72 69 76 28 73 65 6c 65 63 74 4d 6f 64 65 29 20 1>.{.....set.tkPriv(selectMode).
bba0 77 6f 72 64 0a 20 20 20 20 74 6b 45 6e 74 72 79 4d 6f 75 73 65 53 65 6c 65 63 74 20 25 57 20 25 word.....tkEntryMouseSelect.%W.%
bbc0 78 0a 7d 0a 62 69 6e 64 20 45 6e 74 72 79 20 3c 54 72 69 70 6c 65 2d 53 68 69 66 74 2d 31 3e 09 x.}.bind.Entry.<Triple-Shift-1>.
bbe0 7b 0a 20 20 20 20 73 65 74 20 74 6b 50 72 69 76 28 73 65 6c 65 63 74 4d 6f 64 65 29 20 6c 69 6e {.....set.tkPriv(selectMode).lin
bc00 65 0a 20 20 20 20 74 6b 45 6e 74 72 79 4d 6f 75 73 65 53 65 6c 65 63 74 20 25 57 20 25 78 0a 7d e.....tkEntryMouseSelect.%W.%x.}
bc20 0a 62 69 6e 64 20 45 6e 74 72 79 20 3c 42 31 2d 4c 65 61 76 65 3e 20 7b 0a 20 20 20 20 73 65 74 .bind.Entry.<B1-Leave>.{.....set
bc40 20 74 6b 50 72 69 76 28 78 29 20 25 78 0a 20 20 20 20 74 6b 45 6e 74 72 79 41 75 74 6f 53 63 61 .tkPriv(x).%x.....tkEntryAutoSca
bc60 6e 20 25 57 0a 7d 0a 62 69 6e 64 20 45 6e 74 72 79 20 3c 42 31 2d 45 6e 74 65 72 3e 20 7b 0a 20 n.%W.}.bind.Entry.<B1-Enter>.{..
bc80 20 20 20 74 6b 43 61 6e 63 65 6c 52 65 70 65 61 74 0a 7d 0a 62 69 6e 64 20 45 6e 74 72 79 20 3c ...tkCancelRepeat.}.bind.Entry.<
bca0 42 75 74 74 6f 6e 52 65 6c 65 61 73 65 2d 31 3e 20 7b 0a 20 20 20 20 74 6b 43 61 6e 63 65 6c 52 ButtonRelease-1>.{.....tkCancelR
bcc0 65 70 65 61 74 0a 7d 0a 62 69 6e 64 20 45 6e 74 72 79 20 3c 43 6f 6e 74 72 6f 6c 2d 31 3e 20 7b epeat.}.bind.Entry.<Control-1>.{
bce0 0a 20 20 20 20 25 57 20 69 63 75 72 73 6f 72 20 40 25 78 0a 7d 0a 0a 62 69 6e 64 20 45 6e 74 72 .....%W.icursor.@%x.}..bind.Entr
bd00 79 20 3c 4c 65 66 74 3e 20 7b 0a 20 20 20 20 74 6b 45 6e 74 72 79 53 65 74 43 75 72 73 6f 72 20 y.<Left>.{.....tkEntrySetCursor.
bd20 25 57 20 5b 65 78 70 72 20 7b 5b 25 57 20 69 6e 64 65 78 20 69 6e 73 65 72 74 5d 20 2d 20 31 7d %W.[expr.{[%W.index.insert].-.1}
bd40 5d 0a 7d 0a 62 69 6e 64 20 45 6e 74 72 79 20 3c 52 69 67 68 74 3e 20 7b 0a 20 20 20 20 74 6b 45 ].}.bind.Entry.<Right>.{.....tkE
bd60 6e 74 72 79 53 65 74 43 75 72 73 6f 72 20 25 57 20 5b 65 78 70 72 20 7b 5b 25 57 20 69 6e 64 65 ntrySetCursor.%W.[expr.{[%W.inde
bd80 78 20 69 6e 73 65 72 74 5d 20 2b 20 31 7d 5d 0a 7d 0a 62 69 6e 64 20 45 6e 74 72 79 20 3c 53 68 x.insert].+.1}].}.bind.Entry.<Sh
bda0 69 66 74 2d 4c 65 66 74 3e 20 7b 0a 20 20 20 20 74 6b 45 6e 74 72 79 4b 65 79 53 65 6c 65 63 74 ift-Left>.{.....tkEntryKeySelect
bdc0 20 25 57 20 5b 65 78 70 72 20 7b 5b 25 57 20 69 6e 64 65 78 20 69 6e 73 65 72 74 5d 20 2d 20 31 .%W.[expr.{[%W.index.insert].-.1
bde0 7d 5d 0a 20 20 20 20 74 6b 45 6e 74 72 79 53 65 65 49 6e 73 65 72 74 20 25 57 0a 7d 0a 62 69 6e }].....tkEntrySeeInsert.%W.}.bin
be00 64 20 45 6e 74 72 79 20 3c 53 68 69 66 74 2d 52 69 67 68 74 3e 20 7b 0a 20 20 20 20 74 6b 45 6e d.Entry.<Shift-Right>.{.....tkEn
be20 74 72 79 4b 65 79 53 65 6c 65 63 74 20 25 57 20 5b 65 78 70 72 20 7b 5b 25 57 20 69 6e 64 65 78 tryKeySelect.%W.[expr.{[%W.index
be40 20 69 6e 73 65 72 74 5d 20 2b 20 31 7d 5d 0a 20 20 20 20 74 6b 45 6e 74 72 79 53 65 65 49 6e 73 .insert].+.1}].....tkEntrySeeIns
be60 65 72 74 20 25 57 0a 7d 0a 62 69 6e 64 20 45 6e 74 72 79 20 3c 43 6f 6e 74 72 6f 6c 2d 4c 65 66 ert.%W.}.bind.Entry.<Control-Lef
be80 74 3e 20 7b 0a 20 20 20 20 74 6b 45 6e 74 72 79 53 65 74 43 75 72 73 6f 72 20 25 57 20 5b 74 6b t>.{.....tkEntrySetCursor.%W.[tk
bea0 45 6e 74 72 79 50 72 65 76 69 6f 75 73 57 6f 72 64 20 25 57 20 69 6e 73 65 72 74 5d 0a 7d 0a 62 EntryPreviousWord.%W.insert].}.b
bec0 69 6e 64 20 45 6e 74 72 79 20 3c 43 6f 6e 74 72 6f 6c 2d 52 69 67 68 74 3e 20 7b 0a 20 20 20 20 ind.Entry.<Control-Right>.{.....
bee0 74 6b 45 6e 74 72 79 53 65 74 43 75 72 73 6f 72 20 25 57 20 5b 74 6b 45 6e 74 72 79 4e 65 78 74 tkEntrySetCursor.%W.[tkEntryNext
bf00 57 6f 72 64 20 25 57 20 69 6e 73 65 72 74 5d 0a 7d 0a 62 69 6e 64 20 45 6e 74 72 79 20 3c 53 68 Word.%W.insert].}.bind.Entry.<Sh
bf20 69 66 74 2d 43 6f 6e 74 72 6f 6c 2d 4c 65 66 74 3e 20 7b 0a 20 20 20 20 74 6b 45 6e 74 72 79 4b ift-Control-Left>.{.....tkEntryK
bf40 65 79 53 65 6c 65 63 74 20 25 57 20 5b 74 6b 45 6e 74 72 79 50 72 65 76 69 6f 75 73 57 6f 72 64 eySelect.%W.[tkEntryPreviousWord
bf60 20 25 57 20 69 6e 73 65 72 74 5d 0a 20 20 20 20 74 6b 45 6e 74 72 79 53 65 65 49 6e 73 65 72 74 .%W.insert].....tkEntrySeeInsert
bf80 20 25 57 0a 7d 0a 62 69 6e 64 20 45 6e 74 72 79 20 3c 53 68 69 66 74 2d 43 6f 6e 74 72 6f 6c 2d .%W.}.bind.Entry.<Shift-Control-
bfa0 52 69 67 68 74 3e 20 7b 0a 20 20 20 20 74 6b 45 6e 74 72 79 4b 65 79 53 65 6c 65 63 74 20 25 57 Right>.{.....tkEntryKeySelect.%W
bfc0 20 5b 74 6b 45 6e 74 72 79 4e 65 78 74 57 6f 72 64 20 25 57 20 69 6e 73 65 72 74 5d 0a 20 20 20 .[tkEntryNextWord.%W.insert]....
bfe0 20 74 6b 45 6e 74 72 79 53 65 65 49 6e 73 65 72 74 20 25 57 0a 7d 0a 62 69 6e 64 20 45 6e 74 72 .tkEntrySeeInsert.%W.}.bind.Entr
c000 79 20 3c 48 6f 6d 65 3e 20 7b 0a 20 20 20 20 74 6b 45 6e 74 72 79 53 65 74 43 75 72 73 6f 72 20 y.<Home>.{.....tkEntrySetCursor.
c020 25 57 20 30 0a 7d 0a 62 69 6e 64 20 45 6e 74 72 79 20 3c 53 68 69 66 74 2d 48 6f 6d 65 3e 20 7b %W.0.}.bind.Entry.<Shift-Home>.{
c040 0a 20 20 20 20 74 6b 45 6e 74 72 79 4b 65 79 53 65 6c 65 63 74 20 25 57 20 30 0a 20 20 20 20 74 .....tkEntryKeySelect.%W.0.....t
c060 6b 45 6e 74 72 79 53 65 65 49 6e 73 65 72 74 20 25 57 0a 7d 0a 62 69 6e 64 20 45 6e 74 72 79 20 kEntrySeeInsert.%W.}.bind.Entry.
c080 3c 45 6e 64 3e 20 7b 0a 20 20 20 20 74 6b 45 6e 74 72 79 53 65 74 43 75 72 73 6f 72 20 25 57 20 <End>.{.....tkEntrySetCursor.%W.
c0a0 65 6e 64 0a 7d 0a 62 69 6e 64 20 45 6e 74 72 79 20 3c 53 68 69 66 74 2d 45 6e 64 3e 20 7b 0a 20 end.}.bind.Entry.<Shift-End>.{..
c0c0 20 20 20 74 6b 45 6e 74 72 79 4b 65 79 53 65 6c 65 63 74 20 25 57 20 65 6e 64 0a 20 20 20 20 74 ...tkEntryKeySelect.%W.end.....t
c0e0 6b 45 6e 74 72 79 53 65 65 49 6e 73 65 72 74 20 25 57 0a 7d 0a 0a 62 69 6e 64 20 45 6e 74 72 79 kEntrySeeInsert.%W.}..bind.Entry
c100 20 3c 44 65 6c 65 74 65 3e 20 7b 0a 20 20 20 20 69 66 20 7b 5b 25 57 20 73 65 6c 65 63 74 69 6f .<Delete>.{.....if.{[%W.selectio
c120 6e 20 70 72 65 73 65 6e 74 5d 7d 20 7b 0a 09 25 57 20 64 65 6c 65 74 65 20 73 65 6c 2e 66 69 72 n.present]}.{..%W.delete.sel.fir
c140 73 74 20 73 65 6c 2e 6c 61 73 74 0a 20 20 20 20 7d 20 65 6c 73 65 20 7b 0a 09 25 57 20 64 65 6c st.sel.last.....}.else.{..%W.del
c160 65 74 65 20 69 6e 73 65 72 74 0a 20 20 20 20 7d 0a 7d 0a 62 69 6e 64 20 45 6e 74 72 79 20 3c 42 ete.insert.....}.}.bind.Entry.<B
c180 61 63 6b 53 70 61 63 65 3e 20 7b 0a 20 20 20 20 74 6b 45 6e 74 72 79 42 61 63 6b 73 70 61 63 65 ackSpace>.{.....tkEntryBackspace
c1a0 20 25 57 0a 7d 0a 0a 62 69 6e 64 20 45 6e 74 72 79 20 3c 43 6f 6e 74 72 6f 6c 2d 73 70 61 63 65 .%W.}..bind.Entry.<Control-space
c1c0 3e 20 7b 0a 20 20 20 20 25 57 20 73 65 6c 65 63 74 69 6f 6e 20 66 72 6f 6d 20 69 6e 73 65 72 74 >.{.....%W.selection.from.insert
c1e0 0a 7d 0a 62 69 6e 64 20 45 6e 74 72 79 20 3c 53 65 6c 65 63 74 3e 20 7b 0a 20 20 20 20 25 57 20 .}.bind.Entry.<Select>.{.....%W.
c200 73 65 6c 65 63 74 69 6f 6e 20 66 72 6f 6d 20 69 6e 73 65 72 74 0a 7d 0a 62 69 6e 64 20 45 6e 74 selection.from.insert.}.bind.Ent
c220 72 79 20 3c 43 6f 6e 74 72 6f 6c 2d 53 68 69 66 74 2d 73 70 61 63 65 3e 20 7b 0a 20 20 20 20 25 ry.<Control-Shift-space>.{.....%
c240 57 20 73 65 6c 65 63 74 69 6f 6e 20 61 64 6a 75 73 74 20 69 6e 73 65 72 74 0a 7d 0a 62 69 6e 64 W.selection.adjust.insert.}.bind
c260 20 45 6e 74 72 79 20 3c 53 68 69 66 74 2d 53 65 6c 65 63 74 3e 20 7b 0a 20 20 20 20 25 57 20 73 .Entry.<Shift-Select>.{.....%W.s
c280 65 6c 65 63 74 69 6f 6e 20 61 64 6a 75 73 74 20 69 6e 73 65 72 74 0a 7d 0a 62 69 6e 64 20 45 6e election.adjust.insert.}.bind.En
c2a0 74 72 79 20 3c 43 6f 6e 74 72 6f 6c 2d 73 6c 61 73 68 3e 20 7b 0a 20 20 20 20 25 57 20 73 65 6c try.<Control-slash>.{.....%W.sel
c2c0 65 63 74 69 6f 6e 20 72 61 6e 67 65 20 30 20 65 6e 64 0a 7d 0a 62 69 6e 64 20 45 6e 74 72 79 20 ection.range.0.end.}.bind.Entry.
c2e0 3c 43 6f 6e 74 72 6f 6c 2d 62 61 63 6b 73 6c 61 73 68 3e 20 7b 0a 20 20 20 20 25 57 20 73 65 6c <Control-backslash>.{.....%W.sel
c300 65 63 74 69 6f 6e 20 63 6c 65 61 72 0a 7d 0a 62 69 6e 64 20 45 6e 74 72 79 20 3c 4b 65 79 50 72 ection.clear.}.bind.Entry.<KeyPr
c320 65 73 73 3e 20 7b 0a 20 20 20 20 74 6b 45 6e 74 72 79 49 6e 73 65 72 74 20 25 57 20 25 41 0a 7d ess>.{.....tkEntryInsert.%W.%A.}
c340 0a 0a 23 20 49 67 6e 6f 72 65 20 61 6c 6c 20 41 6c 74 2c 20 4d 65 74 61 2c 20 61 6e 64 20 43 6f ..#.Ignore.all.Alt,.Meta,.and.Co
c360 6e 74 72 6f 6c 20 6b 65 79 70 72 65 73 73 65 73 20 75 6e 6c 65 73 73 20 65 78 70 6c 69 63 69 74 ntrol.keypresses.unless.explicit
c380 6c 79 20 62 6f 75 6e 64 2e 0a 23 20 4f 74 68 65 72 77 69 73 65 2c 20 69 66 20 61 20 77 69 64 67 ly.bound..#.Otherwise,.if.a.widg
c3a0 65 74 20 62 69 6e 64 69 6e 67 20 66 6f 72 20 6f 6e 65 20 6f 66 20 74 68 65 73 65 20 69 73 20 64 et.binding.for.one.of.these.is.d
c3c0 65 66 69 6e 65 64 2c 20 74 68 65 0a 23 20 3c 4b 65 79 50 72 65 73 73 3e 20 63 6c 61 73 73 20 62 efined,.the.#.<KeyPress>.class.b
c3e0 69 6e 64 69 6e 67 20 77 69 6c 6c 20 61 6c 73 6f 20 66 69 72 65 20 61 6e 64 20 69 6e 73 65 72 74 inding.will.also.fire.and.insert
c400 20 74 68 65 20 63 68 61 72 61 63 74 65 72 2c 0a 23 20 77 68 69 63 68 20 69 73 20 77 72 6f 6e 67 .the.character,.#.which.is.wrong
c420 2e 20 20 44 69 74 74 6f 20 66 6f 72 20 45 73 63 61 70 65 2c 20 52 65 74 75 72 6e 2c 20 61 6e 64 ...Ditto.for.Escape,.Return,.and
c440 20 54 61 62 2e 0a 0a 62 69 6e 64 20 45 6e 74 72 79 20 3c 41 6c 74 2d 4b 65 79 50 72 65 73 73 3e .Tab...bind.Entry.<Alt-KeyPress>
c460 20 7b 23 20 6e 6f 74 68 69 6e 67 7d 0a 62 69 6e 64 20 45 6e 74 72 79 20 3c 4d 65 74 61 2d 4b 65 .{#.nothing}.bind.Entry.<Meta-Ke
c480 79 50 72 65 73 73 3e 20 7b 23 20 6e 6f 74 68 69 6e 67 7d 0a 62 69 6e 64 20 45 6e 74 72 79 20 3c yPress>.{#.nothing}.bind.Entry.<
c4a0 43 6f 6e 74 72 6f 6c 2d 4b 65 79 50 72 65 73 73 3e 20 7b 23 20 6e 6f 74 68 69 6e 67 7d 0a 62 69 Control-KeyPress>.{#.nothing}.bi
c4c0 6e 64 20 45 6e 74 72 79 20 3c 45 73 63 61 70 65 3e 20 7b 23 20 6e 6f 74 68 69 6e 67 7d 0a 62 69 nd.Entry.<Escape>.{#.nothing}.bi
c4e0 6e 64 20 45 6e 74 72 79 20 3c 52 65 74 75 72 6e 3e 20 7b 23 20 6e 6f 74 68 69 6e 67 7d 0a 62 69 nd.Entry.<Return>.{#.nothing}.bi
c500 6e 64 20 45 6e 74 72 79 20 3c 4b 50 5f 45 6e 74 65 72 3e 20 7b 23 20 6e 6f 74 68 69 6e 67 7d 0a nd.Entry.<KP_Enter>.{#.nothing}.
c520 62 69 6e 64 20 45 6e 74 72 79 20 3c 54 61 62 3e 20 7b 23 20 6e 6f 74 68 69 6e 67 7d 0a 69 66 20 bind.Entry.<Tab>.{#.nothing}.if.
c540 7b 5b 73 74 72 69 6e 67 20 65 71 75 61 6c 20 24 74 63 6c 5f 70 6c 61 74 66 6f 72 6d 28 70 6c 61 {[string.equal.$tcl_platform(pla
c560 74 66 6f 72 6d 29 20 22 6d 61 63 69 6e 74 6f 73 68 22 5d 7d 20 7b 0a 09 62 69 6e 64 20 45 6e 74 tform)."macintosh"]}.{..bind.Ent
c580 72 79 20 3c 43 6f 6d 6d 61 6e 64 2d 4b 65 79 50 72 65 73 73 3e 20 7b 23 20 6e 6f 74 68 69 6e 67 ry.<Command-KeyPress>.{#.nothing
c5a0 7d 0a 7d 0a 0a 23 20 4f 6e 20 57 69 6e 64 6f 77 73 2c 20 70 61 73 74 65 20 69 73 20 64 6f 6e 65 }.}..#.On.Windows,.paste.is.done
c5c0 20 75 73 69 6e 67 20 53 68 69 66 74 2d 49 6e 73 65 72 74 2e 20 20 53 68 69 66 74 2d 49 6e 73 65 .using.Shift-Insert...Shift-Inse
c5e0 72 74 20 61 6c 72 65 61 64 79 0a 23 20 67 65 6e 65 72 61 74 65 73 20 74 68 65 20 3c 3c 50 61 73 rt.already.#.generates.the.<<Pas
c600 74 65 3e 3e 20 65 76 65 6e 74 2c 20 73 6f 20 77 65 20 64 6f 6e 27 74 20 6e 65 65 64 20 74 6f 20 te>>.event,.so.we.don't.need.to.
c620 64 6f 20 61 6e 79 74 68 69 6e 67 20 68 65 72 65 2e 0a 69 66 20 7b 5b 73 74 72 69 6e 67 20 63 6f do.anything.here..if.{[string.co
c640 6d 70 61 72 65 20 24 74 63 6c 5f 70 6c 61 74 66 6f 72 6d 28 70 6c 61 74 66 6f 72 6d 29 20 22 77 mpare.$tcl_platform(platform)."w
c660 69 6e 64 6f 77 73 22 5d 7d 20 7b 0a 20 20 20 20 62 69 6e 64 20 45 6e 74 72 79 20 3c 49 6e 73 65 indows"]}.{.....bind.Entry.<Inse
c680 72 74 3e 20 7b 0a 09 63 61 74 63 68 20 7b 74 6b 45 6e 74 72 79 49 6e 73 65 72 74 20 25 57 20 5b rt>.{..catch.{tkEntryInsert.%W.[
c6a0 73 65 6c 65 63 74 69 6f 6e 20 67 65 74 20 2d 64 69 73 70 6c 61 79 6f 66 20 25 57 5d 7d 0a 20 20 selection.get.-displayof.%W]}...
c6c0 20 20 7d 0a 7d 0a 0a 23 20 41 64 64 69 74 69 6f 6e 61 6c 20 65 6d 61 63 73 2d 6c 69 6b 65 20 62 ..}.}..#.Additional.emacs-like.b
c6e0 69 6e 64 69 6e 67 73 3a 0a 0a 62 69 6e 64 20 45 6e 74 72 79 20 3c 43 6f 6e 74 72 6f 6c 2d 61 3e indings:..bind.Entry.<Control-a>
c700 20 7b 0a 20 20 20 20 69 66 20 7b 21 24 74 6b 5f 73 74 72 69 63 74 4d 6f 74 69 66 7d 20 7b 0a 09 .{.....if.{!$tk_strictMotif}.{..
c720 74 6b 45 6e 74 72 79 53 65 74 43 75 72 73 6f 72 20 25 57 20 30 0a 20 20 20 20 7d 0a 7d 0a 62 69 tkEntrySetCursor.%W.0.....}.}.bi
c740 6e 64 20 45 6e 74 72 79 20 3c 43 6f 6e 74 72 6f 6c 2d 62 3e 20 7b 0a 20 20 20 20 69 66 20 7b 21 nd.Entry.<Control-b>.{.....if.{!
c760 24 74 6b 5f 73 74 72 69 63 74 4d 6f 74 69 66 7d 20 7b 0a 09 74 6b 45 6e 74 72 79 53 65 74 43 75 $tk_strictMotif}.{..tkEntrySetCu
c780 72 73 6f 72 20 25 57 20 5b 65 78 70 72 20 7b 5b 25 57 20 69 6e 64 65 78 20 69 6e 73 65 72 74 5d rsor.%W.[expr.{[%W.index.insert]
c7a0 20 2d 20 31 7d 5d 0a 20 20 20 20 7d 0a 7d 0a 62 69 6e 64 20 45 6e 74 72 79 20 3c 43 6f 6e 74 72 .-.1}].....}.}.bind.Entry.<Contr
c7c0 6f 6c 2d 64 3e 20 7b 0a 20 20 20 20 69 66 20 7b 21 24 74 6b 5f 73 74 72 69 63 74 4d 6f 74 69 66 ol-d>.{.....if.{!$tk_strictMotif
c7e0 7d 20 7b 0a 09 25 57 20 64 65 6c 65 74 65 20 69 6e 73 65 72 74 0a 20 20 20 20 7d 0a 7d 0a 62 69 }.{..%W.delete.insert.....}.}.bi
c800 6e 64 20 45 6e 74 72 79 20 3c 43 6f 6e 74 72 6f 6c 2d 65 3e 20 7b 0a 20 20 20 20 69 66 20 7b 21 nd.Entry.<Control-e>.{.....if.{!
c820 24 74 6b 5f 73 74 72 69 63 74 4d 6f 74 69 66 7d 20 7b 0a 09 74 6b 45 6e 74 72 79 53 65 74 43 75 $tk_strictMotif}.{..tkEntrySetCu
c840 72 73 6f 72 20 25 57 20 65 6e 64 0a 20 20 20 20 7d 0a 7d 0a 62 69 6e 64 20 45 6e 74 72 79 20 3c rsor.%W.end.....}.}.bind.Entry.<
c860 43 6f 6e 74 72 6f 6c 2d 66 3e 20 7b 0a 20 20 20 20 69 66 20 7b 21 24 74 6b 5f 73 74 72 69 63 74 Control-f>.{.....if.{!$tk_strict
c880 4d 6f 74 69 66 7d 20 7b 0a 09 74 6b 45 6e 74 72 79 53 65 74 43 75 72 73 6f 72 20 25 57 20 5b 65 Motif}.{..tkEntrySetCursor.%W.[e
c8a0 78 70 72 20 7b 5b 25 57 20 69 6e 64 65 78 20 69 6e 73 65 72 74 5d 20 2b 20 31 7d 5d 0a 20 20 20 xpr.{[%W.index.insert].+.1}]....
c8c0 20 7d 0a 7d 0a 62 69 6e 64 20 45 6e 74 72 79 20 3c 43 6f 6e 74 72 6f 6c 2d 68 3e 20 7b 0a 20 20 .}.}.bind.Entry.<Control-h>.{...
c8e0 20 20 69 66 20 7b 21 24 74 6b 5f 73 74 72 69 63 74 4d 6f 74 69 66 7d 20 7b 0a 09 74 6b 45 6e 74 ..if.{!$tk_strictMotif}.{..tkEnt
c900 72 79 42 61 63 6b 73 70 61 63 65 20 25 57 0a 20 20 20 20 7d 0a 7d 0a 62 69 6e 64 20 45 6e 74 72 ryBackspace.%W.....}.}.bind.Entr
c920 79 20 3c 43 6f 6e 74 72 6f 6c 2d 6b 3e 20 7b 0a 20 20 20 20 69 66 20 7b 21 24 74 6b 5f 73 74 72 y.<Control-k>.{.....if.{!$tk_str
c940 69 63 74 4d 6f 74 69 66 7d 20 7b 0a 09 25 57 20 64 65 6c 65 74 65 20 69 6e 73 65 72 74 20 65 6e ictMotif}.{..%W.delete.insert.en
c960 64 0a 20 20 20 20 7d 0a 7d 0a 62 69 6e 64 20 45 6e 74 72 79 20 3c 43 6f 6e 74 72 6f 6c 2d 74 3e d.....}.}.bind.Entry.<Control-t>
c980 20 7b 0a 20 20 20 20 69 66 20 7b 21 24 74 6b 5f 73 74 72 69 63 74 4d 6f 74 69 66 7d 20 7b 0a 09 .{.....if.{!$tk_strictMotif}.{..
c9a0 74 6b 45 6e 74 72 79 54 72 61 6e 73 70 6f 73 65 20 25 57 0a 20 20 20 20 7d 0a 7d 0a 62 69 6e 64 tkEntryTranspose.%W.....}.}.bind
c9c0 20 45 6e 74 72 79 20 3c 4d 65 74 61 2d 62 3e 20 7b 0a 20 20 20 20 69 66 20 7b 21 24 74 6b 5f 73 .Entry.<Meta-b>.{.....if.{!$tk_s
c9e0 74 72 69 63 74 4d 6f 74 69 66 7d 20 7b 0a 09 74 6b 45 6e 74 72 79 53 65 74 43 75 72 73 6f 72 20 trictMotif}.{..tkEntrySetCursor.
ca00 25 57 20 5b 74 6b 45 6e 74 72 79 50 72 65 76 69 6f 75 73 57 6f 72 64 20 25 57 20 69 6e 73 65 72 %W.[tkEntryPreviousWord.%W.inser
ca20 74 5d 0a 20 20 20 20 7d 0a 7d 0a 62 69 6e 64 20 45 6e 74 72 79 20 3c 4d 65 74 61 2d 64 3e 20 7b t].....}.}.bind.Entry.<Meta-d>.{
ca40 0a 20 20 20 20 69 66 20 7b 21 24 74 6b 5f 73 74 72 69 63 74 4d 6f 74 69 66 7d 20 7b 0a 09 25 57 .....if.{!$tk_strictMotif}.{..%W
ca60 20 64 65 6c 65 74 65 20 69 6e 73 65 72 74 20 5b 74 6b 45 6e 74 72 79 4e 65 78 74 57 6f 72 64 20 .delete.insert.[tkEntryNextWord.
ca80 25 57 20 69 6e 73 65 72 74 5d 0a 20 20 20 20 7d 0a 7d 0a 62 69 6e 64 20 45 6e 74 72 79 20 3c 4d %W.insert].....}.}.bind.Entry.<M
caa0 65 74 61 2d 66 3e 20 7b 0a 20 20 20 20 69 66 20 7b 21 24 74 6b 5f 73 74 72 69 63 74 4d 6f 74 69 eta-f>.{.....if.{!$tk_strictMoti
cac0 66 7d 20 7b 0a 09 74 6b 45 6e 74 72 79 53 65 74 43 75 72 73 6f 72 20 25 57 20 5b 74 6b 45 6e 74 f}.{..tkEntrySetCursor.%W.[tkEnt
cae0 72 79 4e 65 78 74 57 6f 72 64 20 25 57 20 69 6e 73 65 72 74 5d 0a 20 20 20 20 7d 0a 7d 0a 62 69 ryNextWord.%W.insert].....}.}.bi
cb00 6e 64 20 45 6e 74 72 79 20 3c 4d 65 74 61 2d 42 61 63 6b 53 70 61 63 65 3e 20 7b 0a 20 20 20 20 nd.Entry.<Meta-BackSpace>.{.....
cb20 69 66 20 7b 21 24 74 6b 5f 73 74 72 69 63 74 4d 6f 74 69 66 7d 20 7b 0a 09 25 57 20 64 65 6c 65 if.{!$tk_strictMotif}.{..%W.dele
cb40 74 65 20 5b 74 6b 45 6e 74 72 79 50 72 65 76 69 6f 75 73 57 6f 72 64 20 25 57 20 69 6e 73 65 72 te.[tkEntryPreviousWord.%W.inser
cb60 74 5d 20 69 6e 73 65 72 74 0a 20 20 20 20 7d 0a 7d 0a 62 69 6e 64 20 45 6e 74 72 79 20 3c 4d 65 t].insert.....}.}.bind.Entry.<Me
cb80 74 61 2d 44 65 6c 65 74 65 3e 20 7b 0a 20 20 20 20 69 66 20 7b 21 24 74 6b 5f 73 74 72 69 63 74 ta-Delete>.{.....if.{!$tk_strict
cba0 4d 6f 74 69 66 7d 20 7b 0a 09 25 57 20 64 65 6c 65 74 65 20 5b 74 6b 45 6e 74 72 79 50 72 65 76 Motif}.{..%W.delete.[tkEntryPrev
cbc0 69 6f 75 73 57 6f 72 64 20 25 57 20 69 6e 73 65 72 74 5d 20 69 6e 73 65 72 74 0a 20 20 20 20 7d iousWord.%W.insert].insert.....}
cbe0 0a 7d 0a 0a 23 20 41 20 66 65 77 20 61 64 64 69 74 69 6f 6e 61 6c 20 62 69 6e 64 69 6e 67 73 20 .}..#.A.few.additional.bindings.
cc00 6f 66 20 6d 79 20 6f 77 6e 2e 0a 0a 62 69 6e 64 20 45 6e 74 72 79 20 3c 32 3e 20 7b 0a 20 20 20 of.my.own...bind.Entry.<2>.{....
cc20 20 69 66 20 7b 21 24 74 6b 5f 73 74 72 69 63 74 4d 6f 74 69 66 7d 20 7b 0a 09 25 57 20 73 63 61 .if.{!$tk_strictMotif}.{..%W.sca
cc40 6e 20 6d 61 72 6b 20 25 78 0a 09 73 65 74 20 74 6b 50 72 69 76 28 78 29 20 25 78 0a 09 73 65 74 n.mark.%x..set.tkPriv(x).%x..set
cc60 20 74 6b 50 72 69 76 28 79 29 20 25 79 0a 09 73 65 74 20 74 6b 50 72 69 76 28 6d 6f 75 73 65 4d .tkPriv(y).%y..set.tkPriv(mouseM
cc80 6f 76 65 64 29 20 30 0a 20 20 20 20 7d 0a 7d 0a 62 69 6e 64 20 45 6e 74 72 79 20 3c 42 32 2d 4d oved).0.....}.}.bind.Entry.<B2-M
cca0 6f 74 69 6f 6e 3e 20 7b 0a 20 20 20 20 69 66 20 7b 21 24 74 6b 5f 73 74 72 69 63 74 4d 6f 74 69 otion>.{.....if.{!$tk_strictMoti
ccc0 66 7d 20 7b 0a 09 69 66 20 7b 61 62 73 28 25 78 2d 24 74 6b 50 72 69 76 28 78 29 29 20 3e 20 32 f}.{..if.{abs(%x-$tkPriv(x)).>.2
cce0 7d 20 7b 0a 09 20 20 20 20 73 65 74 20 74 6b 50 72 69 76 28 6d 6f 75 73 65 4d 6f 76 65 64 29 20 }.{......set.tkPriv(mouseMoved).
cd00 31 0a 09 7d 0a 09 25 57 20 73 63 61 6e 20 64 72 61 67 74 6f 20 25 78 0a 20 20 20 20 7d 0a 7d 0a 1..}..%W.scan.dragto.%x.....}.}.
cd20 0a 23 20 74 6b 45 6e 74 72 79 43 6c 6f 73 65 73 74 47 61 70 20 2d 2d 0a 23 20 47 69 76 65 6e 20 .#.tkEntryClosestGap.--.#.Given.
cd40 78 20 61 6e 64 20 79 20 63 6f 6f 72 64 69 6e 61 74 65 73 2c 20 74 68 69 73 20 70 72 6f 63 65 64 x.and.y.coordinates,.this.proced
cd60 75 72 65 20 66 69 6e 64 73 20 74 68 65 20 63 6c 6f 73 65 73 74 20 62 6f 75 6e 64 61 72 79 0a 23 ure.finds.the.closest.boundary.#
cd80 20 62 65 74 77 65 65 6e 20 63 68 61 72 61 63 74 65 72 73 20 74 6f 20 74 68 65 20 67 69 76 65 6e .between.characters.to.the.given
cda0 20 63 6f 6f 72 64 69 6e 61 74 65 73 20 61 6e 64 20 72 65 74 75 72 6e 73 20 74 68 65 20 69 6e 64 .coordinates.and.returns.the.ind
cdc0 65 78 0a 23 20 6f 66 20 74 68 65 20 63 68 61 72 61 63 74 65 72 20 6a 75 73 74 20 61 66 74 65 72 ex.#.of.the.character.just.after
cde0 20 74 68 65 20 62 6f 75 6e 64 61 72 79 2e 0a 23 0a 23 20 41 72 67 75 6d 65 6e 74 73 3a 0a 23 20 .the.boundary..#.#.Arguments:.#.
ce00 77 20 2d 09 09 54 68 65 20 65 6e 74 72 79 20 77 69 6e 64 6f 77 2e 0a 23 20 78 20 2d 09 09 58 2d w.-..The.entry.window..#.x.-..X-
ce20 63 6f 6f 72 64 69 6e 61 74 65 20 77 69 74 68 69 6e 20 74 68 65 20 77 69 6e 64 6f 77 2e 0a 0a 70 coordinate.within.the.window...p
ce40 72 6f 63 20 74 6b 45 6e 74 72 79 43 6c 6f 73 65 73 74 47 61 70 20 7b 77 20 78 7d 20 7b 0a 20 20 roc.tkEntryClosestGap.{w.x}.{...
ce60 20 20 73 65 74 20 70 6f 73 20 5b 24 77 20 69 6e 64 65 78 20 40 24 78 5d 0a 20 20 20 20 73 65 74 ..set.pos.[$w.index.@$x].....set
ce80 20 62 62 6f 78 20 5b 24 77 20 62 62 6f 78 20 24 70 6f 73 5d 0a 20 20 20 20 69 66 20 7b 28 24 78 .bbox.[$w.bbox.$pos].....if.{($x
cea0 20 2d 20 5b 6c 69 6e 64 65 78 20 24 62 62 6f 78 20 30 5d 29 20 3c 20 28 5b 6c 69 6e 64 65 78 20 .-.[lindex.$bbox.0]).<.([lindex.
cec0 24 62 62 6f 78 20 32 5d 2f 32 29 7d 20 7b 0a 09 72 65 74 75 72 6e 20 24 70 6f 73 0a 20 20 20 20 $bbox.2]/2)}.{..return.$pos.....
cee0 7d 0a 20 20 20 20 69 6e 63 72 20 70 6f 73 0a 7d 0a 0a 23 20 74 6b 45 6e 74 72 79 42 75 74 74 6f }.....incr.pos.}..#.tkEntryButto
cf00 6e 31 20 2d 2d 0a 23 20 54 68 69 73 20 70 72 6f 63 65 64 75 72 65 20 69 73 20 69 6e 76 6f 6b 65 n1.--.#.This.procedure.is.invoke
cf20 64 20 74 6f 20 68 61 6e 64 6c 65 20 62 75 74 74 6f 6e 2d 31 20 70 72 65 73 73 65 73 20 69 6e 20 d.to.handle.button-1.presses.in.
cf40 65 6e 74 72 79 0a 23 20 77 69 64 67 65 74 73 2e 20 20 49 74 20 6d 6f 76 65 73 20 74 68 65 20 69 entry.#.widgets...It.moves.the.i
cf60 6e 73 65 72 74 69 6f 6e 20 63 75 72 73 6f 72 2c 20 73 65 74 73 20 74 68 65 20 73 65 6c 65 63 74 nsertion.cursor,.sets.the.select
cf80 69 6f 6e 20 61 6e 63 68 6f 72 2c 0a 23 20 61 6e 64 20 63 6c 61 69 6d 73 20 74 68 65 20 69 6e 70 ion.anchor,.#.and.claims.the.inp
cfa0 75 74 20 66 6f 63 75 73 2e 0a 23 0a 23 20 41 72 67 75 6d 65 6e 74 73 3a 0a 23 20 77 20 2d 09 09 ut.focus..#.#.Arguments:.#.w.-..
cfc0 54 68 65 20 65 6e 74 72 79 20 77 69 6e 64 6f 77 20 69 6e 20 77 68 69 63 68 20 74 68 65 20 62 75 The.entry.window.in.which.the.bu
cfe0 74 74 6f 6e 20 77 61 73 20 70 72 65 73 73 65 64 2e 0a 23 20 78 20 2d 09 09 54 68 65 20 78 2d 63 tton.was.pressed..#.x.-..The.x-c
d000 6f 6f 72 64 69 6e 61 74 65 20 6f 66 20 74 68 65 20 62 75 74 74 6f 6e 20 70 72 65 73 73 2e 0a 0a oordinate.of.the.button.press...
d020 70 72 6f 63 20 74 6b 45 6e 74 72 79 42 75 74 74 6f 6e 31 20 7b 77 20 78 7d 20 7b 0a 20 20 20 20 proc.tkEntryButton1.{w.x}.{.....
d040 67 6c 6f 62 61 6c 20 74 6b 50 72 69 76 0a 0a 20 20 20 20 73 65 74 20 74 6b 50 72 69 76 28 73 65 global.tkPriv......set.tkPriv(se
d060 6c 65 63 74 4d 6f 64 65 29 20 63 68 61 72 0a 20 20 20 20 73 65 74 20 74 6b 50 72 69 76 28 6d 6f lectMode).char.....set.tkPriv(mo
d080 75 73 65 4d 6f 76 65 64 29 20 30 0a 20 20 20 20 73 65 74 20 74 6b 50 72 69 76 28 70 72 65 73 73 useMoved).0.....set.tkPriv(press
d0a0 58 29 20 24 78 0a 20 20 20 20 24 77 20 69 63 75 72 73 6f 72 20 5b 74 6b 45 6e 74 72 79 43 6c 6f X).$x.....$w.icursor.[tkEntryClo
d0c0 73 65 73 74 47 61 70 20 24 77 20 24 78 5d 0a 20 20 20 20 24 77 20 73 65 6c 65 63 74 69 6f 6e 20 sestGap.$w.$x].....$w.selection.
d0e0 66 72 6f 6d 20 69 6e 73 65 72 74 0a 20 20 20 20 69 66 20 7b 5b 73 74 72 69 6e 67 20 65 71 75 61 from.insert.....if.{[string.equa
d100 6c 20 5b 24 77 20 63 67 65 74 20 2d 73 74 61 74 65 5d 20 22 6e 6f 72 6d 61 6c 22 5d 7d 20 7b 66 l.[$w.cget.-state]."normal"]}.{f
d120 6f 63 75 73 20 24 77 7d 0a 7d 0a 0a 23 20 74 6b 45 6e 74 72 79 4d 6f 75 73 65 53 65 6c 65 63 74 ocus.$w}.}..#.tkEntryMouseSelect
d140 20 2d 2d 0a 23 20 54 68 69 73 20 70 72 6f 63 65 64 75 72 65 20 69 73 20 69 6e 76 6f 6b 65 64 20 .--.#.This.procedure.is.invoked.
d160 77 68 65 6e 20 64 72 61 67 67 69 6e 67 20 6f 75 74 20 61 20 73 65 6c 65 63 74 69 6f 6e 20 77 69 when.dragging.out.a.selection.wi
d180 74 68 0a 23 20 74 68 65 20 6d 6f 75 73 65 2e 20 20 44 65 70 65 6e 64 69 6e 67 20 6f 6e 20 74 68 th.#.the.mouse...Depending.on.th
d1a0 65 20 73 65 6c 65 63 74 69 6f 6e 20 6d 6f 64 65 20 28 63 68 61 72 61 63 74 65 72 2c 20 77 6f 72 e.selection.mode.(character,.wor
d1c0 64 2c 0a 23 20 6c 69 6e 65 29 20 69 74 20 73 65 6c 65 63 74 73 20 69 6e 20 64 69 66 66 65 72 65 d,.#.line).it.selects.in.differe
d1e0 6e 74 2d 73 69 7a 65 64 20 75 6e 69 74 73 2e 20 20 54 68 69 73 20 70 72 6f 63 65 64 75 72 65 0a nt-sized.units...This.procedure.
d200 23 20 69 67 6e 6f 72 65 73 20 6d 6f 75 73 65 20 6d 6f 74 69 6f 6e 73 20 69 6e 69 74 69 61 6c 6c #.ignores.mouse.motions.initiall
d220 79 20 75 6e 74 69 6c 20 74 68 65 20 6d 6f 75 73 65 20 68 61 73 20 6d 6f 76 65 64 20 66 72 6f 6d y.until.the.mouse.has.moved.from
d240 0a 23 20 6f 6e 65 20 63 68 61 72 61 63 74 65 72 20 74 6f 20 61 6e 6f 74 68 65 72 20 6f 72 20 75 .#.one.character.to.another.or.u
d260 6e 74 69 6c 20 74 68 65 72 65 20 68 61 76 65 20 62 65 65 6e 20 6d 75 6c 74 69 70 6c 65 20 63 6c ntil.there.have.been.multiple.cl
d280 69 63 6b 73 2e 0a 23 0a 23 20 41 72 67 75 6d 65 6e 74 73 3a 0a 23 20 77 20 2d 09 09 54 68 65 20 icks..#.#.Arguments:.#.w.-..The.
d2a0 65 6e 74 72 79 20 77 69 6e 64 6f 77 20 69 6e 20 77 68 69 63 68 20 74 68 65 20 62 75 74 74 6f 6e entry.window.in.which.the.button
d2c0 20 77 61 73 20 70 72 65 73 73 65 64 2e 0a 23 20 78 20 2d 09 09 54 68 65 20 78 2d 63 6f 6f 72 64 .was.pressed..#.x.-..The.x-coord
d2e0 69 6e 61 74 65 20 6f 66 20 74 68 65 20 6d 6f 75 73 65 2e 0a 0a 70 72 6f 63 20 74 6b 45 6e 74 72 inate.of.the.mouse...proc.tkEntr
d300 79 4d 6f 75 73 65 53 65 6c 65 63 74 20 7b 77 20 78 7d 20 7b 0a 20 20 20 20 67 6c 6f 62 61 6c 20 yMouseSelect.{w.x}.{.....global.
d320 74 6b 50 72 69 76 0a 0a 20 20 20 20 73 65 74 20 63 75 72 20 5b 74 6b 45 6e 74 72 79 43 6c 6f 73 tkPriv......set.cur.[tkEntryClos
d340 65 73 74 47 61 70 20 24 77 20 24 78 5d 0a 20 20 20 20 73 65 74 20 61 6e 63 68 6f 72 20 5b 24 77 estGap.$w.$x].....set.anchor.[$w
d360 20 69 6e 64 65 78 20 61 6e 63 68 6f 72 5d 0a 20 20 20 20 69 66 20 7b 28 24 63 75 72 20 21 3d 20 .index.anchor].....if.{($cur.!=.
d380 24 61 6e 63 68 6f 72 29 20 7c 7c 20 28 61 62 73 28 24 74 6b 50 72 69 76 28 70 72 65 73 73 58 29 $anchor).||.(abs($tkPriv(pressX)
d3a0 20 2d 20 24 78 29 20 3e 3d 20 33 29 7d 20 7b 0a 09 73 65 74 20 74 6b 50 72 69 76 28 6d 6f 75 73 .-.$x).>=.3)}.{..set.tkPriv(mous
d3c0 65 4d 6f 76 65 64 29 20 31 0a 20 20 20 20 7d 0a 20 20 20 20 73 77 69 74 63 68 20 24 74 6b 50 72 eMoved).1.....}.....switch.$tkPr
d3e0 69 76 28 73 65 6c 65 63 74 4d 6f 64 65 29 20 7b 0a 09 63 68 61 72 20 7b 0a 09 20 20 20 20 69 66 iv(selectMode).{..char.{......if
d400 20 7b 24 74 6b 50 72 69 76 28 6d 6f 75 73 65 4d 6f 76 65 64 29 7d 20 7b 0a 09 09 69 66 20 7b 24 .{$tkPriv(mouseMoved)}.{...if.{$
d420 63 75 72 20 3c 20 24 61 6e 63 68 6f 72 7d 20 7b 0a 09 09 20 20 20 20 24 77 20 73 65 6c 65 63 74 cur.<.$anchor}.{.......$w.select
d440 69 6f 6e 20 72 61 6e 67 65 20 24 63 75 72 20 24 61 6e 63 68 6f 72 0a 09 09 7d 20 65 6c 73 65 69 ion.range.$cur.$anchor...}.elsei
d460 66 20 7b 24 63 75 72 20 3e 20 24 61 6e 63 68 6f 72 7d 20 7b 0a 09 09 20 20 20 20 24 77 20 73 65 f.{$cur.>.$anchor}.{.......$w.se
d480 6c 65 63 74 69 6f 6e 20 72 61 6e 67 65 20 24 61 6e 63 68 6f 72 20 24 63 75 72 0a 09 09 7d 20 65 lection.range.$anchor.$cur...}.e
d4a0 6c 73 65 20 7b 0a 09 09 20 20 20 20 24 77 20 73 65 6c 65 63 74 69 6f 6e 20 63 6c 65 61 72 0a 09 lse.{.......$w.selection.clear..
d4c0 09 7d 0a 09 20 20 20 20 7d 0a 09 7d 0a 09 77 6f 72 64 20 7b 0a 09 20 20 20 20 69 66 20 7b 24 63 .}......}..}..word.{......if.{$c
d4e0 75 72 20 3c 20 5b 24 77 20 69 6e 64 65 78 20 61 6e 63 68 6f 72 5d 7d 20 7b 0a 09 09 73 65 74 20 ur.<.[$w.index.anchor]}.{...set.
d500 62 65 66 6f 72 65 20 5b 74 63 6c 5f 77 6f 72 64 42 72 65 61 6b 42 65 66 6f 72 65 20 5b 24 77 20 before.[tcl_wordBreakBefore.[$w.
d520 67 65 74 5d 20 24 63 75 72 5d 0a 09 09 73 65 74 20 61 66 74 65 72 20 5b 74 63 6c 5f 77 6f 72 64 get].$cur]...set.after.[tcl_word
d540 42 72 65 61 6b 41 66 74 65 72 20 5b 24 77 20 67 65 74 5d 20 5b 65 78 70 72 20 7b 24 61 6e 63 68 BreakAfter.[$w.get].[expr.{$anch
d560 6f 72 2d 31 7d 5d 5d 0a 09 20 20 20 20 7d 20 65 6c 73 65 20 7b 0a 09 09 73 65 74 20 62 65 66 6f or-1}]]......}.else.{...set.befo
d580 72 65 20 5b 74 63 6c 5f 77 6f 72 64 42 72 65 61 6b 42 65 66 6f 72 65 20 5b 24 77 20 67 65 74 5d re.[tcl_wordBreakBefore.[$w.get]
d5a0 20 24 61 6e 63 68 6f 72 5d 0a 09 09 73 65 74 20 61 66 74 65 72 20 5b 74 63 6c 5f 77 6f 72 64 42 .$anchor]...set.after.[tcl_wordB
d5c0 72 65 61 6b 41 66 74 65 72 20 5b 24 77 20 67 65 74 5d 20 5b 65 78 70 72 20 7b 24 63 75 72 20 2d reakAfter.[$w.get].[expr.{$cur.-
d5e0 20 31 7d 5d 5d 0a 09 20 20 20 20 7d 0a 09 20 20 20 20 69 66 20 7b 24 62 65 66 6f 72 65 20 3c 20 .1}]]......}......if.{$before.<.
d600 30 7d 20 7b 0a 09 09 73 65 74 20 62 65 66 6f 72 65 20 30 0a 09 20 20 20 20 7d 0a 09 20 20 20 20 0}.{...set.before.0......}......
d620 69 66 20 7b 24 61 66 74 65 72 20 3c 20 30 7d 20 7b 0a 09 09 73 65 74 20 61 66 74 65 72 20 65 6e if.{$after.<.0}.{...set.after.en
d640 64 0a 09 20 20 20 20 7d 0a 09 20 20 20 20 24 77 20 73 65 6c 65 63 74 69 6f 6e 20 72 61 6e 67 65 d......}......$w.selection.range
d660 20 24 62 65 66 6f 72 65 20 24 61 66 74 65 72 0a 09 7d 0a 09 6c 69 6e 65 20 7b 0a 09 20 20 20 20 .$before.$after..}..line.{......
d680 24 77 20 73 65 6c 65 63 74 69 6f 6e 20 72 61 6e 67 65 20 30 20 65 6e 64 0a 09 7d 0a 20 20 20 20 $w.selection.range.0.end..}.....
d6a0 7d 0a 20 20 20 20 75 70 64 61 74 65 20 69 64 6c 65 74 61 73 6b 73 0a 7d 0a 0a 23 20 74 6b 45 6e }.....update.idletasks.}..#.tkEn
d6c0 74 72 79 50 61 73 74 65 20 2d 2d 0a 23 20 54 68 69 73 20 70 72 6f 63 65 64 75 72 65 20 73 65 74 tryPaste.--.#.This.procedure.set
d6e0 73 20 74 68 65 20 69 6e 73 65 72 74 69 6f 6e 20 63 75 72 73 6f 72 20 74 6f 20 74 68 65 20 63 75 s.the.insertion.cursor.to.the.cu
d700 72 72 65 6e 74 20 6d 6f 75 73 65 20 70 6f 73 69 74 69 6f 6e 2c 0a 23 20 70 61 73 74 65 73 20 74 rrent.mouse.position,.#.pastes.t
d720 68 65 20 73 65 6c 65 63 74 69 6f 6e 20 74 68 65 72 65 2c 20 61 6e 64 20 73 65 74 73 20 74 68 65 he.selection.there,.and.sets.the
d740 20 66 6f 63 75 73 20 74 6f 20 74 68 65 20 77 69 6e 64 6f 77 2e 0a 23 0a 23 20 41 72 67 75 6d 65 .focus.to.the.window..#.#.Argume
d760 6e 74 73 3a 0a 23 20 77 20 2d 09 09 54 68 65 20 65 6e 74 72 79 20 77 69 6e 64 6f 77 2e 0a 23 20 nts:.#.w.-..The.entry.window..#.
d780 78 20 2d 09 09 58 20 70 6f 73 69 74 69 6f 6e 20 6f 66 20 74 68 65 20 6d 6f 75 73 65 2e 0a 0a 70 x.-..X.position.of.the.mouse...p
d7a0 72 6f 63 20 74 6b 45 6e 74 72 79 50 61 73 74 65 20 7b 77 20 78 7d 20 7b 0a 20 20 20 20 67 6c 6f roc.tkEntryPaste.{w.x}.{.....glo
d7c0 62 61 6c 20 74 6b 50 72 69 76 0a 0a 20 20 20 20 24 77 20 69 63 75 72 73 6f 72 20 5b 74 6b 45 6e bal.tkPriv......$w.icursor.[tkEn
d7e0 74 72 79 43 6c 6f 73 65 73 74 47 61 70 20 24 77 20 24 78 5d 0a 20 20 20 20 63 61 74 63 68 20 7b tryClosestGap.$w.$x].....catch.{
d800 24 77 20 69 6e 73 65 72 74 20 69 6e 73 65 72 74 20 5b 73 65 6c 65 63 74 69 6f 6e 20 67 65 74 20 $w.insert.insert.[selection.get.
d820 2d 64 69 73 70 6c 61 79 6f 66 20 24 77 5d 7d 0a 20 20 20 20 69 66 20 7b 5b 73 74 72 69 6e 67 20 -displayof.$w]}.....if.{[string.
d840 65 71 75 61 6c 20 5b 24 77 20 63 67 65 74 20 2d 73 74 61 74 65 5d 20 22 6e 6f 72 6d 61 6c 22 5d equal.[$w.cget.-state]."normal"]
d860 7d 20 7b 66 6f 63 75 73 20 24 77 7d 0a 7d 0a 0a 23 20 74 6b 45 6e 74 72 79 41 75 74 6f 53 63 61 }.{focus.$w}.}..#.tkEntryAutoSca
d880 6e 20 2d 2d 0a 23 20 54 68 69 73 20 70 72 6f 63 65 64 75 72 65 20 69 73 20 69 6e 76 6f 6b 65 64 n.--.#.This.procedure.is.invoked
d8a0 20 77 68 65 6e 20 74 68 65 20 6d 6f 75 73 65 20 6c 65 61 76 65 73 20 61 6e 20 65 6e 74 72 79 20 .when.the.mouse.leaves.an.entry.
d8c0 77 69 6e 64 6f 77 0a 23 20 77 69 74 68 20 62 75 74 74 6f 6e 20 31 20 64 6f 77 6e 2e 20 20 49 74 window.#.with.button.1.down...It
d8e0 20 73 63 72 6f 6c 6c 73 20 74 68 65 20 77 69 6e 64 6f 77 20 6c 65 66 74 20 6f 72 20 72 69 67 68 .scrolls.the.window.left.or.righ
d900 74 2c 0a 23 20 64 65 70 65 6e 64 69 6e 67 20 6f 6e 20 77 68 65 72 65 20 74 68 65 20 6d 6f 75 73 t,.#.depending.on.where.the.mous
d920 65 20 69 73 2c 20 61 6e 64 20 72 65 73 63 68 65 64 75 6c 65 73 20 69 74 73 65 6c 66 20 61 73 20 e.is,.and.reschedules.itself.as.
d940 61 6e 0a 23 20 22 61 66 74 65 72 22 20 63 6f 6d 6d 61 6e 64 20 73 6f 20 74 68 61 74 20 74 68 65 an.#."after".command.so.that.the
d960 20 77 69 6e 64 6f 77 20 63 6f 6e 74 69 6e 75 65 73 20 74 6f 20 73 63 72 6f 6c 6c 20 75 6e 74 69 .window.continues.to.scroll.unti
d980 6c 20 74 68 65 0a 23 20 6d 6f 75 73 65 20 6d 6f 76 65 73 20 62 61 63 6b 20 69 6e 74 6f 20 74 68 l.the.#.mouse.moves.back.into.th
d9a0 65 20 77 69 6e 64 6f 77 20 6f 72 20 74 68 65 20 6d 6f 75 73 65 20 62 75 74 74 6f 6e 20 69 73 20 e.window.or.the.mouse.button.is.
d9c0 72 65 6c 65 61 73 65 64 2e 0a 23 0a 23 20 41 72 67 75 6d 65 6e 74 73 3a 0a 23 20 77 20 2d 09 09 released..#.#.Arguments:.#.w.-..
d9e0 54 68 65 20 65 6e 74 72 79 20 77 69 6e 64 6f 77 2e 0a 0a 70 72 6f 63 20 74 6b 45 6e 74 72 79 41 The.entry.window...proc.tkEntryA
da00 75 74 6f 53 63 61 6e 20 7b 77 7d 20 7b 0a 20 20 20 20 67 6c 6f 62 61 6c 20 74 6b 50 72 69 76 0a utoScan.{w}.{.....global.tkPriv.
da20 20 20 20 20 73 65 74 20 78 20 24 74 6b 50 72 69 76 28 78 29 0a 20 20 20 20 69 66 20 7b 21 5b 77 ....set.x.$tkPriv(x).....if.{![w
da40 69 6e 66 6f 20 65 78 69 73 74 73 20 24 77 5d 7d 20 72 65 74 75 72 6e 0a 20 20 20 20 69 66 20 7b info.exists.$w]}.return.....if.{
da60 24 78 20 3e 3d 20 5b 77 69 6e 66 6f 20 77 69 64 74 68 20 24 77 5d 7d 20 7b 0a 09 24 77 20 78 76 $x.>=.[winfo.width.$w]}.{..$w.xv
da80 69 65 77 20 73 63 72 6f 6c 6c 20 32 20 75 6e 69 74 73 0a 09 74 6b 45 6e 74 72 79 4d 6f 75 73 65 iew.scroll.2.units..tkEntryMouse
daa0 53 65 6c 65 63 74 20 24 77 20 24 78 0a 20 20 20 20 7d 20 65 6c 73 65 69 66 20 7b 24 78 20 3c 20 Select.$w.$x.....}.elseif.{$x.<.
dac0 30 7d 20 7b 0a 09 24 77 20 78 76 69 65 77 20 73 63 72 6f 6c 6c 20 2d 32 20 75 6e 69 74 73 0a 09 0}.{..$w.xview.scroll.-2.units..
dae0 74 6b 45 6e 74 72 79 4d 6f 75 73 65 53 65 6c 65 63 74 20 24 77 20 24 78 0a 20 20 20 20 7d 0a 20 tkEntryMouseSelect.$w.$x.....}..
db00 20 20 20 73 65 74 20 74 6b 50 72 69 76 28 61 66 74 65 72 49 64 29 20 5b 61 66 74 65 72 20 35 30 ...set.tkPriv(afterId).[after.50
db20 20 5b 6c 69 73 74 20 74 6b 45 6e 74 72 79 41 75 74 6f 53 63 61 6e 20 24 77 5d 5d 0a 7d 0a 0a 23 .[list.tkEntryAutoScan.$w]].}..#
db40 20 74 6b 45 6e 74 72 79 4b 65 79 53 65 6c 65 63 74 20 2d 2d 0a 23 20 54 68 69 73 20 70 72 6f 63 .tkEntryKeySelect.--.#.This.proc
db60 65 64 75 72 65 20 69 73 20 69 6e 76 6f 6b 65 64 20 77 68 65 6e 20 73 74 72 6f 6b 69 6e 67 20 6f edure.is.invoked.when.stroking.o
db80 75 74 20 73 65 6c 65 63 74 69 6f 6e 73 20 75 73 69 6e 67 20 74 68 65 0a 23 20 6b 65 79 62 6f 61 ut.selections.using.the.#.keyboa
dba0 72 64 2e 20 20 49 74 20 6d 6f 76 65 73 20 74 68 65 20 63 75 72 73 6f 72 20 74 6f 20 61 20 6e 65 rd...It.moves.the.cursor.to.a.ne
dbc0 77 20 70 6f 73 69 74 69 6f 6e 2c 20 74 68 65 6e 20 65 78 74 65 6e 64 73 0a 23 20 74 68 65 20 73 w.position,.then.extends.#.the.s
dbe0 65 6c 65 63 74 69 6f 6e 20 74 6f 20 74 68 61 74 20 70 6f 73 69 74 69 6f 6e 2e 0a 23 0a 23 20 41 election.to.that.position..#.#.A
dc00 72 67 75 6d 65 6e 74 73 3a 0a 23 20 77 20 2d 09 09 54 68 65 20 65 6e 74 72 79 20 77 69 6e 64 6f rguments:.#.w.-..The.entry.windo
dc20 77 2e 0a 23 20 6e 65 77 20 2d 09 09 41 20 6e 65 77 20 70 6f 73 69 74 69 6f 6e 20 66 6f 72 20 74 w..#.new.-..A.new.position.for.t
dc40 68 65 20 69 6e 73 65 72 74 69 6f 6e 20 63 75 72 73 6f 72 20 28 74 68 65 20 63 75 72 73 6f 72 20 he.insertion.cursor.(the.cursor.
dc60 68 61 73 6e 27 74 0a 23 09 09 61 63 74 75 61 6c 6c 79 20 62 65 65 6e 20 6d 6f 76 65 64 20 74 6f hasn't.#..actually.been.moved.to
dc80 20 74 68 69 73 20 70 6f 73 69 74 69 6f 6e 20 79 65 74 29 2e 0a 0a 70 72 6f 63 20 74 6b 45 6e 74 .this.position.yet)...proc.tkEnt
dca0 72 79 4b 65 79 53 65 6c 65 63 74 20 7b 77 20 6e 65 77 7d 20 7b 0a 20 20 20 20 69 66 20 7b 21 5b ryKeySelect.{w.new}.{.....if.{![
dcc0 24 77 20 73 65 6c 65 63 74 69 6f 6e 20 70 72 65 73 65 6e 74 5d 7d 20 7b 0a 09 24 77 20 73 65 6c $w.selection.present]}.{..$w.sel
dce0 65 63 74 69 6f 6e 20 66 72 6f 6d 20 69 6e 73 65 72 74 0a 09 24 77 20 73 65 6c 65 63 74 69 6f 6e ection.from.insert..$w.selection
dd00 20 74 6f 20 24 6e 65 77 0a 20 20 20 20 7d 20 65 6c 73 65 20 7b 0a 09 24 77 20 73 65 6c 65 63 74 .to.$new.....}.else.{..$w.select
dd20 69 6f 6e 20 61 64 6a 75 73 74 20 24 6e 65 77 0a 20 20 20 20 7d 0a 20 20 20 20 24 77 20 69 63 75 ion.adjust.$new.....}.....$w.icu
dd40 72 73 6f 72 20 24 6e 65 77 0a 7d 0a 0a 23 20 74 6b 45 6e 74 72 79 49 6e 73 65 72 74 20 2d 2d 0a rsor.$new.}..#.tkEntryInsert.--.
dd60 23 20 49 6e 73 65 72 74 20 61 20 73 74 72 69 6e 67 20 69 6e 74 6f 20 61 6e 20 65 6e 74 72 79 20 #.Insert.a.string.into.an.entry.
dd80 61 74 20 74 68 65 20 70 6f 69 6e 74 20 6f 66 20 74 68 65 20 69 6e 73 65 72 74 69 6f 6e 20 63 75 at.the.point.of.the.insertion.cu
dda0 72 73 6f 72 2e 0a 23 20 49 66 20 74 68 65 72 65 20 69 73 20 61 20 73 65 6c 65 63 74 69 6f 6e 20 rsor..#.If.there.is.a.selection.
ddc0 69 6e 20 74 68 65 20 65 6e 74 72 79 2c 20 61 6e 64 20 69 74 20 63 6f 76 65 72 73 20 74 68 65 20 in.the.entry,.and.it.covers.the.
dde0 70 6f 69 6e 74 20 6f 66 20 74 68 65 0a 23 20 69 6e 73 65 72 74 69 6f 6e 20 63 75 72 73 6f 72 2c point.of.the.#.insertion.cursor,
de00 20 74 68 65 6e 20 64 65 6c 65 74 65 20 74 68 65 20 73 65 6c 65 63 74 69 6f 6e 20 62 65 66 6f 72 .then.delete.the.selection.befor
de20 65 20 69 6e 73 65 72 74 69 6e 67 2e 0a 23 0a 23 20 41 72 67 75 6d 65 6e 74 73 3a 0a 23 20 77 20 e.inserting..#.#.Arguments:.#.w.
de40 2d 09 09 54 68 65 20 65 6e 74 72 79 20 77 69 6e 64 6f 77 20 69 6e 20 77 68 69 63 68 20 74 6f 20 -..The.entry.window.in.which.to.
de60 69 6e 73 65 72 74 20 74 68 65 20 73 74 72 69 6e 67 0a 23 20 73 20 2d 09 09 54 68 65 20 73 74 72 insert.the.string.#.s.-..The.str
de80 69 6e 67 20 74 6f 20 69 6e 73 65 72 74 20 28 75 73 75 61 6c 6c 79 20 6a 75 73 74 20 61 20 73 69 ing.to.insert.(usually.just.a.si
dea0 6e 67 6c 65 20 63 68 61 72 61 63 74 65 72 29 0a 0a 70 72 6f 63 20 74 6b 45 6e 74 72 79 49 6e 73 ngle.character)..proc.tkEntryIns
dec0 65 72 74 20 7b 77 20 73 7d 20 7b 0a 20 20 20 20 69 66 20 7b 5b 73 74 72 69 6e 67 20 65 71 75 61 ert.{w.s}.{.....if.{[string.equa
dee0 6c 20 24 73 20 22 22 5d 7d 20 7b 0a 09 72 65 74 75 72 6e 0a 20 20 20 20 7d 0a 20 20 20 20 63 61 l.$s.""]}.{..return.....}.....ca
df00 74 63 68 20 7b 0a 09 73 65 74 20 69 6e 73 65 72 74 20 5b 24 77 20 69 6e 64 65 78 20 69 6e 73 65 tch.{..set.insert.[$w.index.inse
df20 72 74 5d 0a 09 69 66 20 7b 28 5b 24 77 20 69 6e 64 65 78 20 73 65 6c 2e 66 69 72 73 74 5d 20 3c rt]..if.{([$w.index.sel.first].<
df40 3d 20 24 69 6e 73 65 72 74 29 0a 09 09 26 26 20 28 5b 24 77 20 69 6e 64 65 78 20 73 65 6c 2e 6c =.$insert)...&&.([$w.index.sel.l
df60 61 73 74 5d 20 3e 3d 20 24 69 6e 73 65 72 74 29 7d 20 7b 0a 09 20 20 20 20 24 77 20 64 65 6c 65 ast].>=.$insert)}.{......$w.dele
df80 74 65 20 73 65 6c 2e 66 69 72 73 74 20 73 65 6c 2e 6c 61 73 74 0a 09 7d 0a 20 20 20 20 7d 0a 20 te.sel.first.sel.last..}.....}..
dfa0 20 20 20 24 77 20 69 6e 73 65 72 74 20 69 6e 73 65 72 74 20 24 73 0a 20 20 20 20 74 6b 45 6e 74 ...$w.insert.insert.$s.....tkEnt
dfc0 72 79 53 65 65 49 6e 73 65 72 74 20 24 77 0a 7d 0a 0a 23 20 74 6b 45 6e 74 72 79 42 61 63 6b 73 rySeeInsert.$w.}..#.tkEntryBacks
dfe0 70 61 63 65 20 2d 2d 0a 23 20 42 61 63 6b 73 70 61 63 65 20 6f 76 65 72 20 74 68 65 20 63 68 61 pace.--.#.Backspace.over.the.cha
e000 72 61 63 74 65 72 20 6a 75 73 74 20 62 65 66 6f 72 65 20 74 68 65 20 69 6e 73 65 72 74 69 6f 6e racter.just.before.the.insertion
e020 20 63 75 72 73 6f 72 2e 0a 23 20 49 66 20 62 61 63 6b 73 70 61 63 69 6e 67 20 77 6f 75 6c 64 20 .cursor..#.If.backspacing.would.
e040 6d 6f 76 65 20 74 68 65 20 63 75 72 73 6f 72 20 6f 66 66 20 74 68 65 20 6c 65 66 74 20 65 64 67 move.the.cursor.off.the.left.edg
e060 65 20 6f 66 20 74 68 65 0a 23 20 77 69 6e 64 6f 77 2c 20 72 65 70 6f 73 69 74 69 6f 6e 20 74 68 e.of.the.#.window,.reposition.th
e080 65 20 63 75 72 73 6f 72 20 61 74 20 61 62 6f 75 74 20 74 68 65 20 6d 69 64 64 6c 65 20 6f 66 20 e.cursor.at.about.the.middle.of.
e0a0 74 68 65 20 77 69 6e 64 6f 77 2e 0a 23 0a 23 20 41 72 67 75 6d 65 6e 74 73 3a 0a 23 20 77 20 2d the.window..#.#.Arguments:.#.w.-
e0c0 09 09 54 68 65 20 65 6e 74 72 79 20 77 69 6e 64 6f 77 20 69 6e 20 77 68 69 63 68 20 74 6f 20 62 ..The.entry.window.in.which.to.b
e0e0 61 63 6b 73 70 61 63 65 2e 0a 0a 70 72 6f 63 20 74 6b 45 6e 74 72 79 42 61 63 6b 73 70 61 63 65 ackspace...proc.tkEntryBackspace
e100 20 77 20 7b 0a 20 20 20 20 69 66 20 7b 5b 24 77 20 73 65 6c 65 63 74 69 6f 6e 20 70 72 65 73 65 .w.{.....if.{[$w.selection.prese
e120 6e 74 5d 7d 20 7b 0a 09 24 77 20 64 65 6c 65 74 65 20 73 65 6c 2e 66 69 72 73 74 20 73 65 6c 2e nt]}.{..$w.delete.sel.first.sel.
e140 6c 61 73 74 0a 20 20 20 20 7d 20 65 6c 73 65 20 7b 0a 09 73 65 74 20 78 20 5b 65 78 70 72 20 7b last.....}.else.{..set.x.[expr.{
e160 5b 24 77 20 69 6e 64 65 78 20 69 6e 73 65 72 74 5d 20 2d 20 31 7d 5d 0a 09 69 66 20 7b 24 78 20 [$w.index.insert].-.1}]..if.{$x.
e180 3e 3d 20 30 7d 20 7b 24 77 20 64 65 6c 65 74 65 20 24 78 7d 0a 09 69 66 20 7b 5b 24 77 20 69 6e >=.0}.{$w.delete.$x}..if.{[$w.in
e1a0 64 65 78 20 40 30 5d 20 3e 3d 20 5b 24 77 20 69 6e 64 65 78 20 69 6e 73 65 72 74 5d 7d 20 7b 0a dex.@0].>=.[$w.index.insert]}.{.
e1c0 09 20 20 20 20 73 65 74 20 72 61 6e 67 65 20 5b 24 77 20 78 76 69 65 77 5d 0a 09 20 20 20 20 73 .....set.range.[$w.xview]......s
e1e0 65 74 20 6c 65 66 74 20 5b 6c 69 6e 64 65 78 20 24 72 61 6e 67 65 20 30 5d 0a 09 20 20 20 20 73 et.left.[lindex.$range.0]......s
e200 65 74 20 72 69 67 68 74 20 5b 6c 69 6e 64 65 78 20 24 72 61 6e 67 65 20 31 5d 0a 09 20 20 20 20 et.right.[lindex.$range.1]......
e220 24 77 20 78 76 69 65 77 20 6d 6f 76 65 74 6f 20 5b 65 78 70 72 20 7b 24 6c 65 66 74 20 2d 20 28 $w.xview.moveto.[expr.{$left.-.(
e240 24 72 69 67 68 74 20 2d 20 24 6c 65 66 74 29 2f 32 2e 30 7d 5d 0a 09 7d 0a 20 20 20 20 7d 0a 7d $right.-.$left)/2.0}]..}.....}.}
e260 0a 0a 23 20 74 6b 45 6e 74 72 79 53 65 65 49 6e 73 65 72 74 20 2d 2d 0a 23 20 4d 61 6b 65 20 73 ..#.tkEntrySeeInsert.--.#.Make.s
e280 75 72 65 20 74 68 61 74 20 74 68 65 20 69 6e 73 65 72 74 69 6f 6e 20 63 75 72 73 6f 72 20 69 73 ure.that.the.insertion.cursor.is
e2a0 20 76 69 73 69 62 6c 65 20 69 6e 20 74 68 65 20 65 6e 74 72 79 20 77 69 6e 64 6f 77 2e 0a 23 20 .visible.in.the.entry.window..#.
e2c0 49 66 20 6e 6f 74 2c 20 61 64 6a 75 73 74 20 74 68 65 20 76 69 65 77 20 73 6f 20 74 68 61 74 20 If.not,.adjust.the.view.so.that.
e2e0 69 74 20 69 73 2e 0a 23 0a 23 20 41 72 67 75 6d 65 6e 74 73 3a 0a 23 20 77 20 2d 09 09 54 68 65 it.is..#.#.Arguments:.#.w.-..The
e300 20 65 6e 74 72 79 20 77 69 6e 64 6f 77 2e 0a 0a 70 72 6f 63 20 74 6b 45 6e 74 72 79 53 65 65 49 .entry.window...proc.tkEntrySeeI
e320 6e 73 65 72 74 20 77 20 7b 0a 20 20 20 20 73 65 74 20 63 20 5b 24 77 20 69 6e 64 65 78 20 69 6e nsert.w.{.....set.c.[$w.index.in
e340 73 65 72 74 5d 0a 20 20 20 20 69 66 20 7b 28 24 63 20 3c 20 5b 24 77 20 69 6e 64 65 78 20 40 30 sert].....if.{($c.<.[$w.index.@0
e360 5d 29 20 7c 7c 20 28 24 63 20 3e 20 5b 24 77 20 69 6e 64 65 78 20 40 5b 77 69 6e 66 6f 20 77 69 ]).||.($c.>.[$w.index.@[winfo.wi
e380 64 74 68 20 24 77 5d 5d 29 7d 20 7b 0a 09 24 77 20 78 76 69 65 77 20 24 63 0a 20 20 20 20 7d 0a dth.$w]])}.{..$w.xview.$c.....}.
e3a0 7d 0a 0a 23 20 74 6b 45 6e 74 72 79 53 65 74 43 75 72 73 6f 72 20 2d 0a 23 20 4d 6f 76 65 20 74 }..#.tkEntrySetCursor.-.#.Move.t
e3c0 68 65 20 69 6e 73 65 72 74 69 6f 6e 20 63 75 72 73 6f 72 20 74 6f 20 61 20 67 69 76 65 6e 20 70 he.insertion.cursor.to.a.given.p
e3e0 6f 73 69 74 69 6f 6e 20 69 6e 20 61 6e 20 65 6e 74 72 79 2e 20 20 41 6c 73 6f 0a 23 20 63 6c 65 osition.in.an.entry...Also.#.cle
e400 61 72 73 20 74 68 65 20 73 65 6c 65 63 74 69 6f 6e 2c 20 69 66 20 74 68 65 72 65 20 69 73 20 6f ars.the.selection,.if.there.is.o
e420 6e 65 20 69 6e 20 74 68 65 20 65 6e 74 72 79 2c 20 61 6e 64 20 6d 61 6b 65 73 20 73 75 72 65 0a ne.in.the.entry,.and.makes.sure.
e440 23 20 74 68 61 74 20 74 68 65 20 69 6e 73 65 72 74 69 6f 6e 20 63 75 72 73 6f 72 20 69 73 20 76 #.that.the.insertion.cursor.is.v
e460 69 73 69 62 6c 65 2e 0a 23 0a 23 20 41 72 67 75 6d 65 6e 74 73 3a 0a 23 20 77 20 2d 09 09 54 68 isible..#.#.Arguments:.#.w.-..Th
e480 65 20 65 6e 74 72 79 20 77 69 6e 64 6f 77 2e 0a 23 20 70 6f 73 20 2d 09 09 54 68 65 20 64 65 73 e.entry.window..#.pos.-..The.des
e4a0 69 72 65 64 20 6e 65 77 20 70 6f 73 69 74 69 6f 6e 20 66 6f 72 20 74 68 65 20 63 75 72 73 6f 72 ired.new.position.for.the.cursor
e4c0 20 69 6e 20 74 68 65 20 77 69 6e 64 6f 77 2e 0a 0a 70 72 6f 63 20 74 6b 45 6e 74 72 79 53 65 74 .in.the.window...proc.tkEntrySet
e4e0 43 75 72 73 6f 72 20 7b 77 20 70 6f 73 7d 20 7b 0a 20 20 20 20 24 77 20 69 63 75 72 73 6f 72 20 Cursor.{w.pos}.{.....$w.icursor.
e500 24 70 6f 73 0a 20 20 20 20 24 77 20 73 65 6c 65 63 74 69 6f 6e 20 63 6c 65 61 72 0a 20 20 20 20 $pos.....$w.selection.clear.....
e520 74 6b 45 6e 74 72 79 53 65 65 49 6e 73 65 72 74 20 24 77 0a 7d 0a 0a 23 20 74 6b 45 6e 74 72 79 tkEntrySeeInsert.$w.}..#.tkEntry
e540 54 72 61 6e 73 70 6f 73 65 20 2d 0a 23 20 54 68 69 73 20 70 72 6f 63 65 64 75 72 65 20 69 6d 70 Transpose.-.#.This.procedure.imp
e560 6c 65 6d 65 6e 74 73 20 74 68 65 20 22 74 72 61 6e 73 70 6f 73 65 22 20 66 75 6e 63 74 69 6f 6e lements.the."transpose".function
e580 20 66 6f 72 20 65 6e 74 72 79 20 77 69 64 67 65 74 73 2e 0a 23 20 49 74 20 74 72 61 6e 70 6f 73 .for.entry.widgets..#.It.tranpos
e5a0 65 73 20 74 68 65 20 63 68 61 72 61 63 74 65 72 73 20 6f 6e 20 65 69 74 68 65 72 20 73 69 64 65 es.the.characters.on.either.side
e5c0 20 6f 66 20 74 68 65 20 69 6e 73 65 72 74 69 6f 6e 20 63 75 72 73 6f 72 2c 0a 23 20 75 6e 6c 65 .of.the.insertion.cursor,.#.unle
e5e0 73 73 20 74 68 65 20 63 75 72 73 6f 72 20 69 73 20 61 74 20 74 68 65 20 65 6e 64 20 6f 66 20 74 ss.the.cursor.is.at.the.end.of.t
e600 68 65 20 6c 69 6e 65 2e 20 20 49 6e 20 74 68 69 73 20 63 61 73 65 20 69 74 0a 23 20 74 72 61 6e he.line...In.this.case.it.#.tran
e620 73 70 6f 73 65 73 20 74 68 65 20 74 77 6f 20 63 68 61 72 61 63 74 65 72 73 20 74 6f 20 74 68 65 sposes.the.two.characters.to.the
e640 20 6c 65 66 74 20 6f 66 20 74 68 65 20 63 75 72 73 6f 72 2e 20 20 49 6e 20 65 69 74 68 65 72 0a .left.of.the.cursor...In.either.
e660 23 20 63 61 73 65 2c 20 74 68 65 20 63 75 72 73 6f 72 20 65 6e 64 73 20 75 70 20 74 6f 20 74 68 #.case,.the.cursor.ends.up.to.th
e680 65 20 72 69 67 68 74 20 6f 66 20 74 68 65 20 74 72 61 6e 73 70 6f 73 65 64 20 63 68 61 72 61 63 e.right.of.the.transposed.charac
e6a0 74 65 72 73 2e 0a 23 0a 23 20 41 72 67 75 6d 65 6e 74 73 3a 0a 23 20 77 20 2d 09 09 54 68 65 20 ters..#.#.Arguments:.#.w.-..The.
e6c0 65 6e 74 72 79 20 77 69 6e 64 6f 77 2e 0a 0a 70 72 6f 63 20 74 6b 45 6e 74 72 79 54 72 61 6e 73 entry.window...proc.tkEntryTrans
e6e0 70 6f 73 65 20 77 20 7b 0a 20 20 20 20 73 65 74 20 69 20 5b 24 77 20 69 6e 64 65 78 20 69 6e 73 pose.w.{.....set.i.[$w.index.ins
e700 65 72 74 5d 0a 20 20 20 20 69 66 20 7b 24 69 20 3c 20 5b 24 77 20 69 6e 64 65 78 20 65 6e 64 5d ert].....if.{$i.<.[$w.index.end]
e720 7d 20 7b 0a 09 69 6e 63 72 20 69 0a 20 20 20 20 7d 0a 20 20 20 20 73 65 74 20 66 69 72 73 74 20 }.{..incr.i.....}.....set.first.
e740 5b 65 78 70 72 20 7b 24 69 2d 32 7d 5d 0a 20 20 20 20 69 66 20 7b 24 66 69 72 73 74 20 3c 20 30 [expr.{$i-2}].....if.{$first.<.0
e760 7d 20 7b 0a 09 72 65 74 75 72 6e 0a 20 20 20 20 7d 0a 20 20 20 20 73 65 74 20 6e 65 77 20 5b 73 }.{..return.....}.....set.new.[s
e780 74 72 69 6e 67 20 69 6e 64 65 78 20 5b 24 77 20 67 65 74 5d 20 5b 65 78 70 72 20 7b 24 69 2d 31 tring.index.[$w.get].[expr.{$i-1
e7a0 7d 5d 5d 5b 73 74 72 69 6e 67 20 69 6e 64 65 78 20 5b 24 77 20 67 65 74 5d 20 24 66 69 72 73 74 }]][string.index.[$w.get].$first
e7c0 5d 0a 20 20 20 20 24 77 20 64 65 6c 65 74 65 20 24 66 69 72 73 74 20 24 69 0a 20 20 20 20 24 77 ].....$w.delete.$first.$i.....$w
e7e0 20 69 6e 73 65 72 74 20 69 6e 73 65 72 74 20 24 6e 65 77 0a 20 20 20 20 74 6b 45 6e 74 72 79 53 .insert.insert.$new.....tkEntryS
e800 65 65 49 6e 73 65 72 74 20 24 77 0a 7d 0a 0a 23 20 74 6b 45 6e 74 72 79 4e 65 78 74 57 6f 72 64 eeInsert.$w.}..#.tkEntryNextWord
e820 20 2d 2d 0a 23 20 52 65 74 75 72 6e 73 20 74 68 65 20 69 6e 64 65 78 20 6f 66 20 74 68 65 20 6e .--.#.Returns.the.index.of.the.n
e840 65 78 74 20 77 6f 72 64 20 70 6f 73 69 74 69 6f 6e 20 61 66 74 65 72 20 61 20 67 69 76 65 6e 20 ext.word.position.after.a.given.
e860 70 6f 73 69 74 69 6f 6e 20 69 6e 20 74 68 65 0a 23 20 65 6e 74 72 79 2e 20 20 54 68 65 20 6e 65 position.in.the.#.entry...The.ne
e880 78 74 20 77 6f 72 64 20 69 73 20 70 6c 61 74 66 6f 72 6d 20 64 65 70 65 6e 64 65 6e 74 20 61 6e xt.word.is.platform.dependent.an
e8a0 64 20 6d 61 79 20 62 65 20 65 69 74 68 65 72 20 74 68 65 20 6e 65 78 74 0a 23 20 65 6e 64 2d 6f d.may.be.either.the.next.#.end-o
e8c0 66 2d 77 6f 72 64 20 70 6f 73 69 74 69 6f 6e 20 6f 72 20 74 68 65 20 6e 65 78 74 20 73 74 61 72 f-word.position.or.the.next.star
e8e0 74 2d 6f 66 2d 77 6f 72 64 20 70 6f 73 69 74 69 6f 6e 20 61 66 74 65 72 20 74 68 65 20 6e 65 78 t-of-word.position.after.the.nex
e900 74 0a 23 20 65 6e 64 2d 6f 66 2d 77 6f 72 64 20 70 6f 73 69 74 69 6f 6e 2e 0a 23 0a 23 20 41 72 t.#.end-of-word.position..#.#.Ar
e920 67 75 6d 65 6e 74 73 3a 0a 23 20 77 20 2d 09 09 54 68 65 20 65 6e 74 72 79 20 77 69 6e 64 6f 77 guments:.#.w.-..The.entry.window
e940 20 69 6e 20 77 68 69 63 68 20 74 68 65 20 63 75 72 73 6f 72 20 69 73 20 74 6f 20 6d 6f 76 65 2e .in.which.the.cursor.is.to.move.
e960 0a 23 20 73 74 61 72 74 20 2d 09 50 6f 73 69 74 69 6f 6e 20 61 74 20 77 68 69 63 68 20 74 6f 20 .#.start.-.Position.at.which.to.
e980 73 74 61 72 74 20 73 65 61 72 63 68 2e 0a 0a 69 66 20 7b 5b 73 74 72 69 6e 67 20 65 71 75 61 6c start.search...if.{[string.equal
e9a0 20 24 74 63 6c 5f 70 6c 61 74 66 6f 72 6d 28 70 6c 61 74 66 6f 72 6d 29 20 22 77 69 6e 64 6f 77 .$tcl_platform(platform)."window
e9c0 73 22 5d 7d 20 20 7b 0a 20 20 20 20 70 72 6f 63 20 74 6b 45 6e 74 72 79 4e 65 78 74 57 6f 72 64 s"]}..{.....proc.tkEntryNextWord
e9e0 20 7b 77 20 73 74 61 72 74 7d 20 7b 0a 09 73 65 74 20 70 6f 73 20 5b 74 63 6c 5f 65 6e 64 4f 66 .{w.start}.{..set.pos.[tcl_endOf
ea00 57 6f 72 64 20 5b 24 77 20 67 65 74 5d 20 5b 24 77 20 69 6e 64 65 78 20 24 73 74 61 72 74 5d 5d Word.[$w.get].[$w.index.$start]]
ea20 0a 09 69 66 20 7b 24 70 6f 73 20 3e 3d 20 30 7d 20 7b 0a 09 20 20 20 20 73 65 74 20 70 6f 73 20 ..if.{$pos.>=.0}.{......set.pos.
ea40 5b 74 63 6c 5f 73 74 61 72 74 4f 66 4e 65 78 74 57 6f 72 64 20 5b 24 77 20 67 65 74 5d 20 24 70 [tcl_startOfNextWord.[$w.get].$p
ea60 6f 73 5d 0a 09 7d 0a 09 69 66 20 7b 24 70 6f 73 20 3c 20 30 7d 20 7b 0a 09 20 20 20 20 72 65 74 os]..}..if.{$pos.<.0}.{......ret
ea80 75 72 6e 20 65 6e 64 0a 09 7d 0a 09 72 65 74 75 72 6e 20 24 70 6f 73 0a 20 20 20 20 7d 0a 7d 20 urn.end..}..return.$pos.....}.}.
eaa0 65 6c 73 65 20 7b 0a 20 20 20 20 70 72 6f 63 20 74 6b 45 6e 74 72 79 4e 65 78 74 57 6f 72 64 20 else.{.....proc.tkEntryNextWord.
eac0 7b 77 20 73 74 61 72 74 7d 20 7b 0a 09 73 65 74 20 70 6f 73 20 5b 74 63 6c 5f 65 6e 64 4f 66 57 {w.start}.{..set.pos.[tcl_endOfW
eae0 6f 72 64 20 5b 24 77 20 67 65 74 5d 20 5b 24 77 20 69 6e 64 65 78 20 24 73 74 61 72 74 5d 5d 0a ord.[$w.get].[$w.index.$start]].
eb00 09 69 66 20 7b 24 70 6f 73 20 3c 20 30 7d 20 7b 0a 09 20 20 20 20 72 65 74 75 72 6e 20 65 6e 64 .if.{$pos.<.0}.{......return.end
eb20 0a 09 7d 0a 09 72 65 74 75 72 6e 20 24 70 6f 73 0a 20 20 20 20 7d 0a 7d 0a 0a 23 20 74 6b 45 6e ..}..return.$pos.....}.}..#.tkEn
eb40 74 72 79 50 72 65 76 69 6f 75 73 57 6f 72 64 20 2d 2d 0a 23 0a 23 20 52 65 74 75 72 6e 73 20 74 tryPreviousWord.--.#.#.Returns.t
eb60 68 65 20 69 6e 64 65 78 20 6f 66 20 74 68 65 20 70 72 65 76 69 6f 75 73 20 77 6f 72 64 20 70 6f he.index.of.the.previous.word.po
eb80 73 69 74 69 6f 6e 20 62 65 66 6f 72 65 20 61 20 67 69 76 65 6e 0a 23 20 70 6f 73 69 74 69 6f 6e sition.before.a.given.#.position
eba0 20 69 6e 20 74 68 65 20 65 6e 74 72 79 2e 0a 23 0a 23 20 41 72 67 75 6d 65 6e 74 73 3a 0a 23 20 .in.the.entry..#.#.Arguments:.#.
ebc0 77 20 2d 09 09 54 68 65 20 65 6e 74 72 79 20 77 69 6e 64 6f 77 20 69 6e 20 77 68 69 63 68 20 74 w.-..The.entry.window.in.which.t
ebe0 68 65 20 63 75 72 73 6f 72 20 69 73 20 74 6f 20 6d 6f 76 65 2e 0a 23 20 73 74 61 72 74 20 2d 09 he.cursor.is.to.move..#.start.-.
ec00 50 6f 73 69 74 69 6f 6e 20 61 74 20 77 68 69 63 68 20 74 6f 20 73 74 61 72 74 20 73 65 61 72 63 Position.at.which.to.start.searc
ec20 68 2e 0a 0a 70 72 6f 63 20 74 6b 45 6e 74 72 79 50 72 65 76 69 6f 75 73 57 6f 72 64 20 7b 77 20 h...proc.tkEntryPreviousWord.{w.
ec40 73 74 61 72 74 7d 20 7b 0a 20 20 20 20 73 65 74 20 70 6f 73 20 5b 74 63 6c 5f 73 74 61 72 74 4f start}.{.....set.pos.[tcl_startO
ec60 66 50 72 65 76 69 6f 75 73 57 6f 72 64 20 5b 24 77 20 67 65 74 5d 20 5b 24 77 20 69 6e 64 65 78 fPreviousWord.[$w.get].[$w.index
ec80 20 24 73 74 61 72 74 5d 5d 0a 20 20 20 20 69 66 20 7b 24 70 6f 73 20 3c 20 30 7d 20 7b 0a 09 72 .$start]].....if.{$pos.<.0}.{..r
eca0 65 74 75 72 6e 20 30 0a 20 20 20 20 7d 0a 20 20 20 20 72 65 74 75 72 6e 20 24 70 6f 73 0a 7d 0a eturn.0.....}.....return.$pos.}.
ecc0 23 20 74 6b 45 6e 74 72 79 47 65 74 53 65 6c 65 63 74 69 6f 6e 20 2d 2d 0a 23 0a 23 20 52 65 74 #.tkEntryGetSelection.--.#.#.Ret
ece0 75 72 6e 73 20 74 68 65 20 73 65 6c 65 63 74 65 64 20 74 65 78 74 20 6f 66 20 74 68 65 20 65 6e urns.the.selected.text.of.the.en
ed00 74 72 79 20 77 69 74 68 20 72 65 73 70 65 63 74 20 74 6f 20 74 68 65 20 2d 73 68 6f 77 20 6f 70 try.with.respect.to.the.-show.op
ed20 74 69 6f 6e 2e 0a 23 0a 23 20 41 72 67 75 6d 65 6e 74 73 3a 0a 23 20 77 20 2d 20 20 20 20 20 20 tion..#.#.Arguments:.#.w.-......
ed40 20 20 20 54 68 65 20 65 6e 74 72 79 20 77 69 6e 64 6f 77 20 66 72 6f 6d 20 77 68 69 63 68 20 74 ...The.entry.window.from.which.t
ed60 68 65 20 74 65 78 74 20 74 6f 20 67 65 74 0a 0a 70 72 6f 63 20 74 6b 45 6e 74 72 79 47 65 74 53 he.text.to.get..proc.tkEntryGetS
ed80 65 6c 65 63 74 69 6f 6e 20 7b 77 7d 20 7b 0a 20 20 20 20 73 65 74 20 65 6e 74 72 79 53 74 72 69 election.{w}.{.....set.entryStri
eda0 6e 67 20 5b 73 74 72 69 6e 67 20 72 61 6e 67 65 20 5b 24 77 20 67 65 74 5d 20 5b 24 77 20 69 6e ng.[string.range.[$w.get].[$w.in
edc0 64 65 78 20 73 65 6c 2e 66 69 72 73 74 5d 20 5c 0a 09 20 20 20 20 5b 65 78 70 72 20 7b 5b 24 77 dex.sel.first].\......[expr.{[$w
ede0 20 69 6e 64 65 78 20 73 65 6c 2e 6c 61 73 74 5d 20 2d 20 31 7d 5d 5d 0a 20 20 20 20 69 66 20 7b .index.sel.last].-.1}]].....if.{
ee00 5b 73 74 72 69 6e 67 20 63 6f 6d 70 61 72 65 20 5b 24 77 20 63 67 65 74 20 2d 73 68 6f 77 5d 20 [string.compare.[$w.cget.-show].
ee20 22 22 5d 7d 20 7b 0a 09 72 65 67 73 75 62 20 2d 61 6c 6c 20 2e 20 24 65 6e 74 72 79 53 74 72 69 ""]}.{..regsub.-all...$entryStri
ee40 6e 67 20 5b 73 74 72 69 6e 67 20 69 6e 64 65 78 20 5b 24 77 20 63 67 65 74 20 2d 73 68 6f 77 5d ng.[string.index.[$w.cget.-show]
ee60 20 30 5d 20 65 6e 74 72 79 53 74 72 69 6e 67 0a 20 20 20 20 7d 0a 20 20 20 20 72 65 74 75 72 6e .0].entryString.....}.....return
ee80 20 24 65 6e 74 72 79 53 74 72 69 6e 67 0a 7d 0a 00 00 13 c5 23 20 66 6f 63 75 73 2e 74 63 6c 20 .$entryString.}.....#.focus.tcl.
eea0 2d 2d 0a 23 0a 23 20 54 68 69 73 20 66 69 6c 65 20 64 65 66 69 6e 65 73 20 73 65 76 65 72 61 6c --.#.#.This.file.defines.several
eec0 20 70 72 6f 63 65 64 75 72 65 73 20 66 6f 72 20 6d 61 6e 61 67 69 6e 67 20 74 68 65 20 69 6e 70 .procedures.for.managing.the.inp
eee0 75 74 0a 23 20 66 6f 63 75 73 2e 0a 23 0a 23 20 52 43 53 3a 20 40 28 23 29 20 24 49 64 3a 20 66 ut.#.focus..#.#.RCS:.@(#).$Id:.f
ef00 6f 63 75 73 2e 74 63 6c 2c 76 20 31 2e 35 20 31 39 39 39 2f 30 39 2f 30 32 20 31 37 3a 30 32 3a ocus.tcl,v.1.5.1999/09/02.17:02:
ef20 35 32 20 68 6f 62 62 73 20 45 78 70 20 24 0a 23 0a 23 20 43 6f 70 79 72 69 67 68 74 20 28 63 29 52.hobbs.Exp.$.#.#.Copyright.(c)
ef40 20 31 39 39 34 2d 31 39 39 35 20 53 75 6e 20 4d 69 63 72 6f 73 79 73 74 65 6d 73 2c 20 49 6e 63 .1994-1995.Sun.Microsystems,.Inc
ef60 2e 0a 23 0a 23 20 53 65 65 20 74 68 65 20 66 69 6c 65 20 22 6c 69 63 65 6e 73 65 2e 74 65 72 6d ..#.#.See.the.file."license.term
ef80 73 22 20 66 6f 72 20 69 6e 66 6f 72 6d 61 74 69 6f 6e 20 6f 6e 20 75 73 61 67 65 20 61 6e 64 20 s".for.information.on.usage.and.
efa0 72 65 64 69 73 74 72 69 62 75 74 69 6f 6e 0a 23 20 6f 66 20 74 68 69 73 20 66 69 6c 65 2c 20 61 redistribution.#.of.this.file,.a
efc0 6e 64 20 66 6f 72 20 61 20 44 49 53 43 4c 41 49 4d 45 52 20 4f 46 20 41 4c 4c 20 57 41 52 52 41 nd.for.a.DISCLAIMER.OF.ALL.WARRA
efe0 4e 54 49 45 53 2e 0a 23 0a 0a 23 20 74 6b 5f 66 6f 63 75 73 4e 65 78 74 20 2d 2d 0a 23 20 54 68 NTIES..#..#.tk_focusNext.--.#.Th
f000 69 73 20 70 72 6f 63 65 64 75 72 65 20 72 65 74 75 72 6e 73 20 74 68 65 20 6e 61 6d 65 20 6f 66 is.procedure.returns.the.name.of
f020 20 74 68 65 20 6e 65 78 74 20 77 69 6e 64 6f 77 20 61 66 74 65 72 20 22 77 22 20 69 6e 0a 23 20 .the.next.window.after."w".in.#.
f040 22 66 6f 63 75 73 20 6f 72 64 65 72 22 20 28 74 68 65 20 77 69 6e 64 6f 77 20 74 68 61 74 20 73 "focus.order".(the.window.that.s
f060 68 6f 75 6c 64 20 72 65 63 65 69 76 65 20 74 68 65 20 66 6f 63 75 73 20 6e 65 78 74 20 69 66 0a hould.receive.the.focus.next.if.
f080 23 20 54 61 62 20 69 73 20 74 79 70 65 64 20 69 6e 20 77 29 2e 20 20 22 4e 65 78 74 22 20 69 73 #.Tab.is.typed.in.w)..."Next".is
f0a0 20 64 65 66 69 6e 65 64 20 62 79 20 61 20 70 72 65 2d 6f 72 64 65 72 20 73 65 61 72 63 68 0a 23 .defined.by.a.pre-order.search.#
f0c0 20 6f 66 20 61 20 74 6f 70 2d 6c 65 76 65 6c 20 61 6e 64 20 69 74 73 20 6e 6f 6e 2d 74 6f 70 2d .of.a.top-level.and.its.non-top-
f0e0 6c 65 76 65 6c 20 64 65 73 63 65 6e 64 61 6e 74 73 2c 20 77 69 74 68 20 74 68 65 20 73 74 61 63 level.descendants,.with.the.stac
f100 6b 69 6e 67 0a 23 20 6f 72 64 65 72 20 64 65 74 65 72 6d 69 6e 69 6e 67 20 74 68 65 20 6f 72 64 king.#.order.determining.the.ord
f120 65 72 20 6f 66 20 73 69 62 6c 69 6e 67 73 2e 20 20 54 68 65 20 22 2d 74 61 6b 65 66 6f 63 75 73 er.of.siblings...The."-takefocus
f140 22 20 6f 70 74 69 6f 6e 73 0a 23 20 6f 6e 20 77 69 6e 64 6f 77 73 20 64 65 74 65 72 6d 69 6e 65 ".options.#.on.windows.determine
f160 20 77 68 65 74 68 65 72 20 6f 72 20 6e 6f 74 20 74 68 65 79 20 73 68 6f 75 6c 64 20 62 65 20 73 .whether.or.not.they.should.be.s
f180 6b 69 70 70 65 64 2e 0a 23 0a 23 20 41 72 67 75 6d 65 6e 74 73 3a 0a 23 20 77 20 2d 09 09 4e 61 kipped..#.#.Arguments:.#.w.-..Na
f1a0 6d 65 20 6f 66 20 61 20 77 69 6e 64 6f 77 2e 0a 0a 70 72 6f 63 20 74 6b 5f 66 6f 63 75 73 4e 65 me.of.a.window...proc.tk_focusNe
f1c0 78 74 20 77 20 7b 0a 20 20 20 20 73 65 74 20 63 75 72 20 24 77 0a 20 20 20 20 77 68 69 6c 65 20 xt.w.{.....set.cur.$w.....while.
f1e0 31 20 7b 0a 0a 09 23 20 44 65 73 63 65 6e 64 20 74 6f 20 6a 75 73 74 20 62 65 66 6f 72 65 20 74 1.{...#.Descend.to.just.before.t
f200 68 65 20 66 69 72 73 74 20 63 68 69 6c 64 20 6f 66 20 74 68 65 20 63 75 72 72 65 6e 74 20 77 69 he.first.child.of.the.current.wi
f220 64 67 65 74 2e 0a 0a 09 73 65 74 20 70 61 72 65 6e 74 20 24 63 75 72 0a 09 73 65 74 20 63 68 69 dget....set.parent.$cur..set.chi
f240 6c 64 72 65 6e 20 5b 77 69 6e 66 6f 20 63 68 69 6c 64 72 65 6e 20 24 63 75 72 5d 0a 09 73 65 74 ldren.[winfo.children.$cur]..set
f260 20 69 20 2d 31 0a 0a 09 23 20 4c 6f 6f 6b 20 66 6f 72 20 74 68 65 20 6e 65 78 74 20 73 69 62 6c .i.-1...#.Look.for.the.next.sibl
f280 69 6e 67 20 74 68 61 74 20 69 73 6e 27 74 20 61 20 74 6f 70 2d 6c 65 76 65 6c 2e 0a 0a 09 77 68 ing.that.isn't.a.top-level....wh
f2a0 69 6c 65 20 31 20 7b 0a 09 20 20 20 20 69 6e 63 72 20 69 0a 09 20 20 20 20 69 66 20 7b 24 69 20 ile.1.{......incr.i......if.{$i.
f2c0 3c 20 5b 6c 6c 65 6e 67 74 68 20 24 63 68 69 6c 64 72 65 6e 5d 7d 20 7b 0a 09 09 73 65 74 20 63 <.[llength.$children]}.{...set.c
f2e0 75 72 20 5b 6c 69 6e 64 65 78 20 24 63 68 69 6c 64 72 65 6e 20 24 69 5d 0a 20 20 20 20 20 20 20 ur.[lindex.$children.$i]........
f300 20 20 20 20 20 20 20 69 66 20 7b 5b 73 74 72 69 6e 67 20 65 71 75 61 6c 20 5b 77 69 6e 66 6f 20 .......if.{[string.equal.[winfo.
f320 74 6f 70 6c 65 76 65 6c 20 24 63 75 72 5d 20 24 63 75 72 5d 7d 20 7b 0a 09 09 20 20 20 20 63 6f toplevel.$cur].$cur]}.{.......co
f340 6e 74 69 6e 75 65 0a 09 09 7d 20 65 6c 73 65 20 7b 0a 09 09 20 20 20 20 62 72 65 61 6b 0a 09 09 ntinue...}.else.{.......break...
f360 7d 0a 09 20 20 20 20 7d 0a 0a 09 20 20 20 20 23 20 4e 6f 20 6d 6f 72 65 20 73 69 62 6c 69 6e 67 }......}.......#.No.more.sibling
f380 73 2c 20 73 6f 20 67 6f 20 74 6f 20 74 68 65 20 63 75 72 72 65 6e 74 20 77 69 64 67 65 74 27 73 s,.so.go.to.the.current.widget's
f3a0 20 70 61 72 65 6e 74 2e 0a 09 20 20 20 20 23 20 49 66 20 69 74 27 73 20 61 20 74 6f 70 2d 6c 65 .parent.......#.If.it's.a.top-le
f3c0 76 65 6c 2c 20 62 72 65 61 6b 20 6f 75 74 20 6f 66 20 74 68 65 20 6c 6f 6f 70 2c 20 6f 74 68 65 vel,.break.out.of.the.loop,.othe
f3e0 72 77 69 73 65 0a 09 20 20 20 20 23 20 6c 6f 6f 6b 20 66 6f 72 20 69 74 73 20 6e 65 78 74 20 73 rwise......#.look.for.its.next.s
f400 69 62 6c 69 6e 67 2e 0a 0a 09 20 20 20 20 73 65 74 20 63 75 72 20 24 70 61 72 65 6e 74 0a 09 20 ibling........set.cur.$parent...
f420 20 20 20 69 66 20 7b 5b 73 74 72 69 6e 67 20 65 71 75 61 6c 20 5b 77 69 6e 66 6f 20 74 6f 70 6c ...if.{[string.equal.[winfo.topl
f440 65 76 65 6c 20 24 63 75 72 5d 20 24 63 75 72 5d 7d 20 7b 0a 09 09 62 72 65 61 6b 0a 09 20 20 20 evel.$cur].$cur]}.{...break.....
f460 20 7d 0a 09 20 20 20 20 73 65 74 20 70 61 72 65 6e 74 20 5b 77 69 6e 66 6f 20 70 61 72 65 6e 74 .}......set.parent.[winfo.parent
f480 20 24 70 61 72 65 6e 74 5d 0a 09 20 20 20 20 73 65 74 20 63 68 69 6c 64 72 65 6e 20 5b 77 69 6e .$parent]......set.children.[win
f4a0 66 6f 20 63 68 69 6c 64 72 65 6e 20 24 70 61 72 65 6e 74 5d 0a 09 20 20 20 20 73 65 74 20 69 20 fo.children.$parent]......set.i.
f4c0 5b 6c 73 65 61 72 63 68 20 2d 65 78 61 63 74 20 24 63 68 69 6c 64 72 65 6e 20 24 63 75 72 5d 0a [lsearch.-exact.$children.$cur].
f4e0 09 7d 0a 09 69 66 20 7b 5b 73 74 72 69 6e 67 20 65 71 75 61 6c 20 24 77 20 24 63 75 72 5d 20 7c .}..if.{[string.equal.$w.$cur].|
f500 7c 20 5b 74 6b 46 6f 63 75 73 4f 4b 20 24 63 75 72 5d 7d 20 7b 0a 09 20 20 20 20 72 65 74 75 72 |.[tkFocusOK.$cur]}.{......retur
f520 6e 20 24 63 75 72 0a 09 7d 0a 20 20 20 20 7d 0a 7d 0a 0a 23 20 74 6b 5f 66 6f 63 75 73 50 72 65 n.$cur..}.....}.}..#.tk_focusPre
f540 76 20 2d 2d 0a 23 20 54 68 69 73 20 70 72 6f 63 65 64 75 72 65 20 72 65 74 75 72 6e 73 20 74 68 v.--.#.This.procedure.returns.th
f560 65 20 6e 61 6d 65 20 6f 66 20 74 68 65 20 70 72 65 76 69 6f 75 73 20 77 69 6e 64 6f 77 20 62 65 e.name.of.the.previous.window.be
f580 66 6f 72 65 20 22 77 22 20 69 6e 0a 23 20 22 66 6f 63 75 73 20 6f 72 64 65 72 22 20 28 74 68 65 fore."w".in.#."focus.order".(the
f5a0 20 77 69 6e 64 6f 77 20 74 68 61 74 20 73 68 6f 75 6c 64 20 72 65 63 65 69 76 65 20 74 68 65 20 .window.that.should.receive.the.
f5c0 66 6f 63 75 73 20 6e 65 78 74 20 69 66 0a 23 20 53 68 69 66 74 2d 54 61 62 20 69 73 20 74 79 70 focus.next.if.#.Shift-Tab.is.typ
f5e0 65 64 20 69 6e 20 77 29 2e 20 20 22 4e 65 78 74 22 20 69 73 20 64 65 66 69 6e 65 64 20 62 79 20 ed.in.w)..."Next".is.defined.by.
f600 61 20 70 72 65 2d 6f 72 64 65 72 20 73 65 61 72 63 68 0a 23 20 6f 66 20 61 20 74 6f 70 2d 6c 65 a.pre-order.search.#.of.a.top-le
f620 76 65 6c 20 61 6e 64 20 69 74 73 20 6e 6f 6e 2d 74 6f 70 2d 6c 65 76 65 6c 20 64 65 73 63 65 6e vel.and.its.non-top-level.descen
f640 64 61 6e 74 73 2c 20 77 69 74 68 20 74 68 65 20 73 74 61 63 6b 69 6e 67 0a 23 20 6f 72 64 65 72 dants,.with.the.stacking.#.order
f660 20 64 65 74 65 72 6d 69 6e 69 6e 67 20 74 68 65 20 6f 72 64 65 72 20 6f 66 20 73 69 62 6c 69 6e .determining.the.order.of.siblin
f680 67 73 2e 20 20 54 68 65 20 22 2d 74 61 6b 65 66 6f 63 75 73 22 20 6f 70 74 69 6f 6e 73 0a 23 20 gs...The."-takefocus".options.#.
f6a0 6f 6e 20 77 69 6e 64 6f 77 73 20 64 65 74 65 72 6d 69 6e 65 20 77 68 65 74 68 65 72 20 6f 72 20 on.windows.determine.whether.or.
f6c0 6e 6f 74 20 74 68 65 79 20 73 68 6f 75 6c 64 20 62 65 20 73 6b 69 70 70 65 64 2e 0a 23 0a 23 20 not.they.should.be.skipped..#.#.
f6e0 41 72 67 75 6d 65 6e 74 73 3a 0a 23 20 77 20 2d 09 09 4e 61 6d 65 20 6f 66 20 61 20 77 69 6e 64 Arguments:.#.w.-..Name.of.a.wind
f700 6f 77 2e 0a 0a 70 72 6f 63 20 74 6b 5f 66 6f 63 75 73 50 72 65 76 20 77 20 7b 0a 20 20 20 20 73 ow...proc.tk_focusPrev.w.{.....s
f720 65 74 20 63 75 72 20 24 77 0a 20 20 20 20 77 68 69 6c 65 20 31 20 7b 0a 0a 09 23 20 43 6f 6c 6c et.cur.$w.....while.1.{...#.Coll
f740 65 63 74 20 69 6e 66 6f 72 6d 61 74 69 6f 6e 20 61 62 6f 75 74 20 74 68 65 20 63 75 72 72 65 6e ect.information.about.the.curren
f760 74 20 77 69 6e 64 6f 77 27 73 20 70 6f 73 69 74 69 6f 6e 0a 09 23 20 61 6d 6f 6e 67 20 69 74 73 t.window's.position..#.among.its
f780 20 73 69 62 6c 69 6e 67 73 2e 20 20 41 6c 73 6f 2c 20 69 66 20 74 68 65 20 77 69 6e 64 6f 77 20 .siblings...Also,.if.the.window.
f7a0 69 73 20 61 20 74 6f 70 2d 6c 65 76 65 6c 2c 0a 09 23 20 74 68 65 6e 20 72 65 70 6f 73 69 74 69 is.a.top-level,..#.then.repositi
f7c0 6f 6e 20 74 6f 20 6a 75 73 74 20 61 66 74 65 72 20 74 68 65 20 6c 61 73 74 20 63 68 69 6c 64 20 on.to.just.after.the.last.child.
f7e0 6f 66 20 74 68 65 20 77 69 6e 64 6f 77 2e 0a 0a 09 69 66 20 7b 5b 73 74 72 69 6e 67 20 65 71 75 of.the.window....if.{[string.equ
f800 61 6c 20 5b 77 69 6e 66 6f 20 74 6f 70 6c 65 76 65 6c 20 24 63 75 72 5d 20 24 63 75 72 5d 7d 20 al.[winfo.toplevel.$cur].$cur]}.
f820 20 7b 0a 09 20 20 20 20 73 65 74 20 70 61 72 65 6e 74 20 24 63 75 72 0a 09 20 20 20 20 73 65 74 .{......set.parent.$cur......set
f840 20 63 68 69 6c 64 72 65 6e 20 5b 77 69 6e 66 6f 20 63 68 69 6c 64 72 65 6e 20 24 63 75 72 5d 0a .children.[winfo.children.$cur].
f860 09 20 20 20 20 73 65 74 20 69 20 5b 6c 6c 65 6e 67 74 68 20 24 63 68 69 6c 64 72 65 6e 5d 0a 09 .....set.i.[llength.$children]..
f880 7d 20 65 6c 73 65 20 7b 0a 09 20 20 20 20 73 65 74 20 70 61 72 65 6e 74 20 5b 77 69 6e 66 6f 20 }.else.{......set.parent.[winfo.
f8a0 70 61 72 65 6e 74 20 24 63 75 72 5d 0a 09 20 20 20 20 73 65 74 20 63 68 69 6c 64 72 65 6e 20 5b parent.$cur]......set.children.[
f8c0 77 69 6e 66 6f 20 63 68 69 6c 64 72 65 6e 20 24 70 61 72 65 6e 74 5d 0a 09 20 20 20 20 73 65 74 winfo.children.$parent]......set
f8e0 20 69 20 5b 6c 73 65 61 72 63 68 20 2d 65 78 61 63 74 20 24 63 68 69 6c 64 72 65 6e 20 24 63 75 .i.[lsearch.-exact.$children.$cu
f900 72 5d 0a 09 7d 0a 0a 09 23 20 47 6f 20 74 6f 20 74 68 65 20 70 72 65 76 69 6f 75 73 20 73 69 62 r]..}...#.Go.to.the.previous.sib
f920 6c 69 6e 67 2c 20 74 68 65 6e 20 64 65 73 63 65 6e 64 20 74 6f 20 69 74 73 20 6c 61 73 74 20 64 ling,.then.descend.to.its.last.d
f940 65 73 63 65 6e 64 61 6e 74 0a 09 23 20 28 68 69 67 68 65 73 74 20 69 6e 20 73 74 61 63 6b 69 6e escendant..#.(highest.in.stackin
f960 67 20 6f 72 64 65 72 2e 20 20 57 68 69 6c 65 20 64 6f 69 6e 67 20 74 68 69 73 2c 20 69 67 6e 6f g.order...While.doing.this,.igno
f980 72 65 20 74 6f 70 2d 6c 65 76 65 6c 73 0a 09 23 20 61 6e 64 20 74 68 65 69 72 20 64 65 73 63 65 re.top-levels..#.and.their.desce
f9a0 6e 64 61 6e 74 73 2e 20 20 57 68 65 6e 20 77 65 20 72 75 6e 20 6f 75 74 20 6f 66 20 64 65 73 63 ndants...When.we.run.out.of.desc
f9c0 65 6e 64 61 6e 74 73 2c 20 67 6f 20 75 70 0a 09 23 20 6f 6e 65 20 6c 65 76 65 6c 20 74 6f 20 74 endants,.go.up..#.one.level.to.t
f9e0 68 65 20 70 61 72 65 6e 74 2e 0a 0a 09 77 68 69 6c 65 20 7b 24 69 20 3e 20 30 7d 20 7b 0a 09 20 he.parent....while.{$i.>.0}.{...
fa00 20 20 20 69 6e 63 72 20 69 20 2d 31 0a 09 20 20 20 20 73 65 74 20 63 75 72 20 5b 6c 69 6e 64 65 ...incr.i.-1......set.cur.[linde
fa20 78 20 24 63 68 69 6c 64 72 65 6e 20 24 69 5d 0a 09 20 20 20 20 69 66 20 7b 5b 73 74 72 69 6e 67 x.$children.$i]......if.{[string
fa40 20 65 71 75 61 6c 20 5b 77 69 6e 66 6f 20 74 6f 70 6c 65 76 65 6c 20 24 63 75 72 5d 20 24 63 75 .equal.[winfo.toplevel.$cur].$cu
fa60 72 5d 7d 20 7b 0a 09 09 63 6f 6e 74 69 6e 75 65 0a 09 20 20 20 20 7d 0a 09 20 20 20 20 73 65 74 r]}.{...continue......}......set
fa80 20 70 61 72 65 6e 74 20 24 63 75 72 0a 09 20 20 20 20 73 65 74 20 63 68 69 6c 64 72 65 6e 20 5b .parent.$cur......set.children.[
faa0 77 69 6e 66 6f 20 63 68 69 6c 64 72 65 6e 20 24 70 61 72 65 6e 74 5d 0a 09 20 20 20 20 73 65 74 winfo.children.$parent]......set
fac0 20 69 20 5b 6c 6c 65 6e 67 74 68 20 24 63 68 69 6c 64 72 65 6e 5d 0a 09 7d 0a 09 73 65 74 20 63 .i.[llength.$children]..}..set.c
fae0 75 72 20 24 70 61 72 65 6e 74 0a 09 69 66 20 7b 5b 73 74 72 69 6e 67 20 65 71 75 61 6c 20 24 77 ur.$parent..if.{[string.equal.$w
fb00 20 24 63 75 72 5d 20 7c 7c 20 5b 74 6b 46 6f 63 75 73 4f 4b 20 24 63 75 72 5d 7d 20 7b 0a 09 20 .$cur].||.[tkFocusOK.$cur]}.{...
fb20 20 20 20 72 65 74 75 72 6e 20 24 63 75 72 0a 09 7d 0a 20 20 20 20 7d 0a 7d 0a 0a 23 20 74 6b 46 ...return.$cur..}.....}.}..#.tkF
fb40 6f 63 75 73 4f 4b 20 2d 2d 0a 23 0a 23 20 54 68 69 73 20 70 72 6f 63 65 64 75 72 65 20 69 73 20 ocusOK.--.#.#.This.procedure.is.
fb60 69 6e 76 6f 6b 65 64 20 74 6f 20 64 65 63 69 64 65 20 77 68 65 74 68 65 72 20 6f 72 20 6e 6f 74 invoked.to.decide.whether.or.not
fb80 20 74 6f 20 66 6f 63 75 73 20 6f 6e 0a 23 20 61 20 67 69 76 65 6e 20 77 69 6e 64 6f 77 2e 20 20 .to.focus.on.#.a.given.window...
fba0 49 74 20 72 65 74 75 72 6e 73 20 31 20 69 66 20 69 74 27 73 20 4f 4b 20 74 6f 20 66 6f 63 75 73 It.returns.1.if.it's.OK.to.focus
fbc0 20 6f 6e 20 74 68 65 20 77 69 6e 64 6f 77 2c 0a 23 20 30 20 69 66 20 69 74 27 73 20 6e 6f 74 20 .on.the.window,.#.0.if.it's.not.
fbe0 4f 4b 2e 20 20 54 68 65 20 63 6f 64 65 20 66 69 72 73 74 20 63 68 65 63 6b 73 20 77 68 65 74 68 OK...The.code.first.checks.wheth
fc00 65 72 20 74 68 65 20 77 69 6e 64 6f 77 20 69 73 0a 23 20 76 69 65 77 61 62 6c 65 2e 20 20 49 66 er.the.window.is.#.viewable...If
fc20 20 6e 6f 74 2c 20 74 68 65 6e 20 69 74 20 6e 65 76 65 72 20 66 6f 63 75 73 65 73 20 6f 6e 20 74 .not,.then.it.never.focuses.on.t
fc40 68 65 20 77 69 6e 64 6f 77 2e 20 20 54 68 65 6e 20 69 74 0a 23 20 63 68 65 63 6b 73 20 74 68 65 he.window...Then.it.#.checks.the
fc60 20 2d 74 61 6b 65 66 6f 63 75 73 20 6f 70 74 69 6f 6e 20 66 6f 72 20 74 68 65 20 77 69 6e 64 6f .-takefocus.option.for.the.windo
fc80 77 20 61 6e 64 20 75 73 65 73 20 69 74 20 69 66 20 69 74 27 73 0a 23 20 73 65 74 2e 20 20 49 66 w.and.uses.it.if.it's.#.set...If
fca0 20 74 68 65 72 65 27 73 20 6e 6f 20 2d 74 61 6b 65 66 6f 63 75 73 20 6f 70 74 69 6f 6e 2c 20 74 .there's.no.-takefocus.option,.t
fcc0 68 65 20 70 72 6f 63 65 64 75 72 65 20 63 68 65 63 6b 73 20 74 6f 0a 23 20 73 65 65 20 69 66 20 he.procedure.checks.to.#.see.if.
fce0 28 61 29 20 74 68 65 20 77 69 64 67 65 74 20 69 73 6e 27 74 20 64 69 73 61 62 6c 65 64 2c 20 61 (a).the.widget.isn't.disabled,.a
fd00 6e 64 20 28 62 29 20 69 74 20 68 61 73 20 73 6f 6d 65 20 6b 65 79 0a 23 20 62 69 6e 64 69 6e 67 nd.(b).it.has.some.key.#.binding
fd20 73 2e 20 20 49 66 20 61 6c 6c 20 6f 66 20 74 68 65 73 65 20 61 72 65 20 74 72 75 65 2c 20 74 68 s...If.all.of.these.are.true,.th
fd40 65 6e 20 31 20 69 73 20 72 65 74 75 72 6e 65 64 2e 0a 23 0a 23 20 41 72 67 75 6d 65 6e 74 73 3a en.1.is.returned..#.#.Arguments:
fd60 0a 23 20 77 20 2d 09 09 4e 61 6d 65 20 6f 66 20 61 20 77 69 6e 64 6f 77 2e 0a 0a 70 72 6f 63 20 .#.w.-..Name.of.a.window...proc.
fd80 74 6b 46 6f 63 75 73 4f 4b 20 77 20 7b 0a 20 20 20 20 73 65 74 20 63 6f 64 65 20 5b 63 61 74 63 tkFocusOK.w.{.....set.code.[catc
fda0 68 20 7b 24 77 20 63 67 65 74 20 2d 74 61 6b 65 66 6f 63 75 73 7d 20 76 61 6c 75 65 5d 0a 20 20 h.{$w.cget.-takefocus}.value]...
fdc0 20 20 69 66 20 7b 28 24 63 6f 64 65 20 3d 3d 20 30 29 20 26 26 20 5b 73 74 72 69 6e 67 20 63 6f ..if.{($code.==.0).&&.[string.co
fde0 6d 70 61 72 65 20 24 76 61 6c 75 65 20 22 22 5d 7d 20 7b 0a 09 69 66 20 7b 24 76 61 6c 75 65 20 mpare.$value.""]}.{..if.{$value.
fe00 3d 3d 20 30 7d 20 7b 0a 09 20 20 20 20 72 65 74 75 72 6e 20 30 0a 09 7d 20 65 6c 73 65 69 66 20 ==.0}.{......return.0..}.elseif.
fe20 7b 24 76 61 6c 75 65 20 3d 3d 20 31 7d 20 7b 0a 09 20 20 20 20 72 65 74 75 72 6e 20 5b 77 69 6e {$value.==.1}.{......return.[win
fe40 66 6f 20 76 69 65 77 61 62 6c 65 20 24 77 5d 0a 09 7d 20 65 6c 73 65 20 7b 0a 09 20 20 20 20 73 fo.viewable.$w]..}.else.{......s
fe60 65 74 20 76 61 6c 75 65 20 5b 75 70 6c 65 76 65 6c 20 23 30 20 24 76 61 6c 75 65 20 24 77 5d 0a et.value.[uplevel.#0.$value.$w].
fe80 09 20 20 20 20 69 66 20 7b 5b 73 74 72 69 6e 67 20 63 6f 6d 70 61 72 65 20 24 76 61 6c 75 65 20 .....if.{[string.compare.$value.
fea0 22 22 5d 7d 20 7b 0a 09 09 72 65 74 75 72 6e 20 24 76 61 6c 75 65 0a 09 20 20 20 20 7d 0a 09 7d ""]}.{...return.$value......}..}
fec0 0a 20 20 20 20 7d 0a 20 20 20 20 69 66 20 7b 21 5b 77 69 6e 66 6f 20 76 69 65 77 61 62 6c 65 20 .....}.....if.{![winfo.viewable.
fee0 24 77 5d 7d 20 7b 0a 09 72 65 74 75 72 6e 20 30 0a 20 20 20 20 7d 0a 20 20 20 20 73 65 74 20 63 $w]}.{..return.0.....}.....set.c
ff00 6f 64 65 20 5b 63 61 74 63 68 20 7b 24 77 20 63 67 65 74 20 2d 73 74 61 74 65 7d 20 76 61 6c 75 ode.[catch.{$w.cget.-state}.valu
ff20 65 5d 0a 20 20 20 20 69 66 20 7b 28 24 63 6f 64 65 20 3d 3d 20 30 29 20 26 26 20 5b 73 74 72 69 e].....if.{($code.==.0).&&.[stri
ff40 6e 67 20 65 71 75 61 6c 20 24 76 61 6c 75 65 20 22 64 69 73 61 62 6c 65 64 22 5d 7d 20 7b 0a 09 ng.equal.$value."disabled"]}.{..
ff60 72 65 74 75 72 6e 20 30 0a 20 20 20 20 7d 0a 20 20 20 20 72 65 67 65 78 70 20 4b 65 79 7c 46 6f return.0.....}.....regexp.Key|Fo
ff80 63 75 73 20 22 5b 62 69 6e 64 20 24 77 5d 20 5b 62 69 6e 64 20 5b 77 69 6e 66 6f 20 63 6c 61 73 cus."[bind.$w].[bind.[winfo.clas
ffa0 73 20 24 77 5d 5d 22 0a 7d 0a 0a 23 20 74 6b 5f 66 6f 63 75 73 46 6f 6c 6c 6f 77 73 4d 6f 75 73 s.$w]]".}..#.tk_focusFollowsMous
ffc0 65 20 2d 2d 0a 23 0a 23 20 49 66 20 74 68 69 73 20 70 72 6f 63 65 64 75 72 65 20 69 73 20 69 6e e.--.#.#.If.this.procedure.is.in
ffe0 76 6f 6b 65 64 2c 20 54 6b 20 77 69 6c 6c 20 65 6e 74 65 72 20 22 66 6f 63 75 73 2d 66 6f 6c 6c voked,.Tk.will.enter."focus-foll
10000 6f 77 73 2d 6d 6f 75 73 65 22 0a 23 20 6d 6f 64 65 2c 20 77 68 65 72 65 20 74 68 65 20 66 6f 63 ows-mouse".#.mode,.where.the.foc
10020 75 73 20 69 73 20 61 6c 77 61 79 73 20 6f 6e 20 77 68 61 74 65 76 65 72 20 77 69 6e 64 6f 77 20 us.is.always.on.whatever.window.
10040 63 6f 6e 74 61 69 6e 73 20 74 68 65 0a 23 20 6d 6f 75 73 65 2e 20 20 49 66 20 74 68 69 73 20 70 contains.the.#.mouse...If.this.p
10060 72 6f 63 65 64 75 72 65 20 69 73 6e 27 74 20 69 6e 76 6f 6b 65 64 2c 20 74 68 65 6e 20 74 68 65 rocedure.isn't.invoked,.then.the
10080 20 75 73 65 72 20 74 79 70 69 63 61 6c 6c 79 0a 23 20 68 61 73 20 74 6f 20 63 6c 69 63 6b 20 6f .user.typically.#.has.to.click.o
100a0 6e 20 61 20 77 69 6e 64 6f 77 20 74 6f 20 67 69 76 65 20 69 74 20 74 68 65 20 66 6f 63 75 73 2e n.a.window.to.give.it.the.focus.
100c0 0a 23 0a 23 20 41 72 67 75 6d 65 6e 74 73 3a 0a 23 20 4e 6f 6e 65 2e 0a 0a 70 72 6f 63 20 74 6b .#.#.Arguments:.#.None...proc.tk
100e0 5f 66 6f 63 75 73 46 6f 6c 6c 6f 77 73 4d 6f 75 73 65 20 7b 7d 20 7b 0a 20 20 20 20 73 65 74 20 _focusFollowsMouse.{}.{.....set.
10100 6f 6c 64 20 5b 62 69 6e 64 20 61 6c 6c 20 3c 45 6e 74 65 72 3e 5d 0a 20 20 20 20 73 65 74 20 73 old.[bind.all.<Enter>].....set.s
10120 63 72 69 70 74 20 7b 0a 09 69 66 20 7b 5b 73 74 72 69 6e 67 20 65 71 75 61 6c 20 22 25 64 22 20 cript.{..if.{[string.equal."%d".
10140 22 4e 6f 74 69 66 79 41 6e 63 65 73 74 6f 72 22 5d 20 5c 0a 09 09 7c 7c 20 5b 73 74 72 69 6e 67 "NotifyAncestor"].\...||.[string
10160 20 65 71 75 61 6c 20 22 25 64 22 20 22 4e 6f 74 69 66 79 4e 6f 6e 6c 69 6e 65 61 72 22 5d 20 5c .equal."%d"."NotifyNonlinear"].\
10180 0a 09 09 7c 7c 20 5b 73 74 72 69 6e 67 20 65 71 75 61 6c 20 22 25 64 22 20 22 4e 6f 74 69 66 79 ...||.[string.equal."%d"."Notify
101a0 49 6e 66 65 72 69 6f 72 22 5d 7d 20 7b 0a 09 20 20 20 20 69 66 20 7b 5b 74 6b 46 6f 63 75 73 4f Inferior"]}.{......if.{[tkFocusO
101c0 4b 20 25 57 5d 7d 20 7b 0a 09 09 66 6f 63 75 73 20 25 57 0a 09 20 20 20 20 7d 0a 09 7d 0a 20 20 K.%W]}.{...focus.%W......}..}...
101e0 20 20 7d 0a 20 20 20 20 69 66 20 7b 5b 73 74 72 69 6e 67 20 63 6f 6d 70 61 72 65 20 24 6f 6c 64 ..}.....if.{[string.compare.$old
10200 20 22 22 5d 7d 20 7b 0a 09 62 69 6e 64 20 61 6c 6c 20 3c 45 6e 74 65 72 3e 20 22 24 6f 6c 64 3b .""]}.{..bind.all.<Enter>."$old;
10220 20 24 73 63 72 69 70 74 22 0a 20 20 20 20 7d 20 65 6c 73 65 20 7b 0a 09 62 69 6e 64 20 61 6c 6c .$script".....}.else.{..bind.all
10240 20 3c 45 6e 74 65 72 3e 20 24 73 63 72 69 70 74 0a 20 20 20 20 7d 0a 7d 0a 00 00 34 62 23 20 6c .<Enter>.$script.....}.}...4b#.l
10260 69 73 74 62 6f 78 2e 74 63 6c 20 2d 2d 0a 23 0a 23 20 54 68 69 73 20 66 69 6c 65 20 64 65 66 69 istbox.tcl.--.#.#.This.file.defi
10280 6e 65 73 20 74 68 65 20 64 65 66 61 75 6c 74 20 62 69 6e 64 69 6e 67 73 20 66 6f 72 20 54 6b 20 nes.the.default.bindings.for.Tk.
102a0 6c 69 73 74 62 6f 78 20 77 69 64 67 65 74 73 0a 23 20 61 6e 64 20 70 72 6f 76 69 64 65 73 20 70 listbox.widgets.#.and.provides.p
102c0 72 6f 63 65 64 75 72 65 73 20 74 68 61 74 20 68 65 6c 70 20 69 6e 20 69 6d 70 6c 65 6d 65 6e 74 rocedures.that.help.in.implement
102e0 69 6e 67 20 74 68 6f 73 65 20 62 69 6e 64 69 6e 67 73 2e 0a 23 0a 23 20 52 43 53 3a 20 40 28 23 ing.those.bindings..#.#.RCS:.@(#
10300 29 20 24 49 64 3a 20 6c 69 73 74 62 6f 78 2e 74 63 6c 2c 76 20 31 2e 31 30 20 32 30 30 30 2f 30 ).$Id:.listbox.tcl,v.1.10.2000/0
10320 32 2f 31 30 20 30 38 3a 35 32 3a 35 30 20 68 6f 62 62 73 20 45 78 70 20 24 0a 23 0a 23 20 43 6f 2/10.08:52:50.hobbs.Exp.$.#.#.Co
10340 70 79 72 69 67 68 74 20 28 63 29 20 31 39 39 34 20 54 68 65 20 52 65 67 65 6e 74 73 20 6f 66 20 pyright.(c).1994.The.Regents.of.
10360 74 68 65 20 55 6e 69 76 65 72 73 69 74 79 20 6f 66 20 43 61 6c 69 66 6f 72 6e 69 61 2e 0a 23 20 the.University.of.California..#.
10380 43 6f 70 79 72 69 67 68 74 20 28 63 29 20 31 39 39 34 2d 31 39 39 35 20 53 75 6e 20 4d 69 63 72 Copyright.(c).1994-1995.Sun.Micr
103a0 6f 73 79 73 74 65 6d 73 2c 20 49 6e 63 2e 0a 23 20 43 6f 70 79 72 69 67 68 74 20 28 63 29 20 31 osystems,.Inc..#.Copyright.(c).1
103c0 39 39 38 20 62 79 20 53 63 72 69 70 74 69 63 73 20 43 6f 72 70 6f 72 61 74 69 6f 6e 2e 0a 23 0a 998.by.Scriptics.Corporation..#.
103e0 23 20 53 65 65 20 74 68 65 20 66 69 6c 65 20 22 6c 69 63 65 6e 73 65 2e 74 65 72 6d 73 22 20 66 #.See.the.file."license.terms".f
10400 6f 72 20 69 6e 66 6f 72 6d 61 74 69 6f 6e 20 6f 6e 20 75 73 61 67 65 20 61 6e 64 20 72 65 64 69 or.information.on.usage.and.redi
10420 73 74 72 69 62 75 74 69 6f 6e 0a 23 20 6f 66 20 74 68 69 73 20 66 69 6c 65 2c 20 61 6e 64 20 66 stribution.#.of.this.file,.and.f
10440 6f 72 20 61 20 44 49 53 43 4c 41 49 4d 45 52 20 4f 46 20 41 4c 4c 20 57 41 52 52 41 4e 54 49 45 or.a.DISCLAIMER.OF.ALL.WARRANTIE
10460 53 2e 0a 0a 23 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d S...#---------------------------
10480 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d --------------------------------
104a0 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 0a 23 20 74 6b 50 72 69 76 20 65 6c 65 6d 65 6e 74 ---------------.#.tkPriv.element
104c0 73 20 75 73 65 64 20 69 6e 20 74 68 69 73 20 66 69 6c 65 3a 0a 23 0a 23 20 61 66 74 65 72 49 64 s.used.in.this.file:.#.#.afterId
104e0 20 2d 09 09 54 6f 6b 65 6e 20 72 65 74 75 72 6e 65 64 20 62 79 20 22 61 66 74 65 72 22 20 66 6f .-..Token.returned.by."after".fo
10500 72 20 61 75 74 6f 73 63 61 6e 6e 69 6e 67 2e 0a 23 20 6c 69 73 74 62 6f 78 50 72 65 76 20 2d 09 r.autoscanning..#.listboxPrev.-.
10520 09 54 68 65 20 6c 61 73 74 20 65 6c 65 6d 65 6e 74 20 74 6f 20 62 65 20 73 65 6c 65 63 74 65 64 .The.last.element.to.be.selected
10540 20 6f 72 20 64 65 73 65 6c 65 63 74 65 64 0a 23 09 09 09 64 75 72 69 6e 67 20 61 20 73 65 6c 65 .or.deselected.#...during.a.sele
10560 63 74 69 6f 6e 20 6f 70 65 72 61 74 69 6f 6e 2e 0a 23 20 6c 69 73 74 62 6f 78 53 65 6c 65 63 74 ction.operation..#.listboxSelect
10580 69 6f 6e 20 2d 09 41 6c 6c 20 6f 66 20 74 68 65 20 69 74 65 6d 73 20 74 68 61 74 20 77 65 72 65 ion.-.All.of.the.items.that.were
105a0 20 73 65 6c 65 63 74 65 64 20 62 65 66 6f 72 65 20 74 68 65 0a 23 09 09 09 63 75 72 72 65 6e 74 .selected.before.the.#...current
105c0 20 73 65 6c 65 63 74 69 6f 6e 20 6f 70 65 72 61 74 69 6f 6e 20 28 73 75 63 68 20 61 73 20 61 20 .selection.operation.(such.as.a.
105e0 6d 6f 75 73 65 0a 23 09 09 09 64 72 61 67 29 20 73 74 61 72 74 65 64 3b 20 20 75 73 65 64 20 74 mouse.#...drag).started;..used.t
10600 6f 20 63 61 6e 63 65 6c 20 61 6e 20 6f 70 65 72 61 74 69 6f 6e 2e 0a 23 2d 2d 2d 2d 2d 2d 2d 2d o.cancel.an.operation..#--------
10620 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d --------------------------------
10640 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d --------------------------------
10660 2d 2d 0a 0a 23 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d --..#---------------------------
10680 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d --------------------------------
106a0 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 0a 23 20 54 68 65 20 63 6f 64 65 20 62 65 6c 6f 77 20 --------------.#.The.code.below.
106c0 63 72 65 61 74 65 73 20 74 68 65 20 64 65 66 61 75 6c 74 20 63 6c 61 73 73 20 62 69 6e 64 69 6e creates.the.default.class.bindin
106e0 67 73 20 66 6f 72 20 6c 69 73 74 62 6f 78 65 73 2e 0a 23 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d gs.for.listboxes..#-------------
10700 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d --------------------------------
10720 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 0a 0a 23 20 ----------------------------..#.
10740 4e 6f 74 65 3a 20 74 68 65 20 63 68 65 63 6b 20 66 6f 72 20 65 78 69 73 74 65 6e 63 65 20 6f 66 Note:.the.check.for.existence.of
10760 20 25 57 20 62 65 6c 6f 77 20 69 73 20 62 65 63 61 75 73 65 20 74 68 69 73 20 62 69 6e 64 69 6e .%W.below.is.because.this.bindin
10780 67 0a 23 20 69 73 20 73 6f 6d 65 74 69 6d 65 73 20 69 6e 76 6f 6b 65 64 20 61 66 74 65 72 20 61 g.#.is.sometimes.invoked.after.a
107a0 20 77 69 6e 64 6f 77 20 68 61 73 20 62 65 65 6e 20 64 65 6c 65 74 65 64 20 28 65 2e 67 2e 20 62 .window.has.been.deleted.(e.g..b
107c0 65 63 61 75 73 65 0a 23 20 74 68 65 72 65 20 69 73 20 61 20 64 6f 75 62 6c 65 2d 63 6c 69 63 6b ecause.#.there.is.a.double-click
107e0 20 62 69 6e 64 69 6e 67 20 6f 6e 20 74 68 65 20 77 69 64 67 65 74 20 74 68 61 74 20 64 65 6c 65 .binding.on.the.widget.that.dele
10800 74 65 73 20 69 74 29 2e 20 20 55 73 65 72 73 0a 23 20 63 61 6e 20 70 75 74 20 22 62 72 65 61 6b tes.it)...Users.#.can.put."break
10820 22 73 20 69 6e 20 74 68 65 69 72 20 62 69 6e 64 69 6e 67 73 20 74 6f 20 61 76 6f 69 64 20 74 68 "s.in.their.bindings.to.avoid.th
10840 65 20 65 72 72 6f 72 2c 20 62 75 74 20 74 68 69 73 20 63 68 65 63 6b 0a 23 20 6d 61 6b 65 73 20 e.error,.but.this.check.#.makes.
10860 74 68 61 74 20 75 6e 6e 65 63 65 73 73 61 72 79 2e 0a 0a 62 69 6e 64 20 4c 69 73 74 62 6f 78 20 that.unnecessary...bind.Listbox.
10880 3c 31 3e 20 7b 0a 20 20 20 20 69 66 20 7b 5b 77 69 6e 66 6f 20 65 78 69 73 74 73 20 25 57 5d 7d <1>.{.....if.{[winfo.exists.%W]}
108a0 20 7b 0a 09 74 6b 4c 69 73 74 62 6f 78 42 65 67 69 6e 53 65 6c 65 63 74 20 25 57 20 5b 25 57 20 .{..tkListboxBeginSelect.%W.[%W.
108c0 69 6e 64 65 78 20 40 25 78 2c 25 79 5d 0a 20 20 20 20 7d 0a 7d 0a 0a 23 20 49 67 6e 6f 72 65 20 index.@%x,%y].....}.}..#.Ignore.
108e0 64 6f 75 62 6c 65 20 63 6c 69 63 6b 73 20 73 6f 20 74 68 61 74 20 75 73 65 72 73 20 63 61 6e 20 double.clicks.so.that.users.can.
10900 64 65 66 69 6e 65 20 74 68 65 69 72 20 6f 77 6e 20 62 65 68 61 76 69 6f 72 73 2e 0a 23 20 41 6d define.their.own.behaviors..#.Am
10920 6f 6e 67 20 6f 74 68 65 72 20 74 68 69 6e 67 73 2c 20 74 68 69 73 20 70 72 65 76 65 6e 74 73 20 ong.other.things,.this.prevents.
10940 65 72 72 6f 72 73 20 69 66 20 74 68 65 20 75 73 65 72 20 64 65 6c 65 74 65 73 20 74 68 65 0a 23 errors.if.the.user.deletes.the.#
10960 20 6c 69 73 74 62 6f 78 20 6f 6e 20 61 20 64 6f 75 62 6c 65 20 63 6c 69 63 6b 2e 0a 0a 62 69 6e .listbox.on.a.double.click...bin
10980 64 20 4c 69 73 74 62 6f 78 20 3c 44 6f 75 62 6c 65 2d 31 3e 20 7b 0a 20 20 20 20 23 20 45 6d 70 d.Listbox.<Double-1>.{.....#.Emp
109a0 74 79 20 73 63 72 69 70 74 0a 7d 0a 0a 62 69 6e 64 20 4c 69 73 74 62 6f 78 20 3c 42 31 2d 4d 6f ty.script.}..bind.Listbox.<B1-Mo
109c0 74 69 6f 6e 3e 20 7b 0a 20 20 20 20 73 65 74 20 74 6b 50 72 69 76 28 78 29 20 25 78 0a 20 20 20 tion>.{.....set.tkPriv(x).%x....
109e0 20 73 65 74 20 74 6b 50 72 69 76 28 79 29 20 25 79 0a 20 20 20 20 74 6b 4c 69 73 74 62 6f 78 4d .set.tkPriv(y).%y.....tkListboxM
10a00 6f 74 69 6f 6e 20 25 57 20 5b 25 57 20 69 6e 64 65 78 20 40 25 78 2c 25 79 5d 0a 7d 0a 62 69 6e otion.%W.[%W.index.@%x,%y].}.bin
10a20 64 20 4c 69 73 74 62 6f 78 20 3c 42 75 74 74 6f 6e 52 65 6c 65 61 73 65 2d 31 3e 20 7b 0a 20 20 d.Listbox.<ButtonRelease-1>.{...
10a40 20 20 74 6b 43 61 6e 63 65 6c 52 65 70 65 61 74 0a 20 20 20 20 25 57 20 61 63 74 69 76 61 74 65 ..tkCancelRepeat.....%W.activate
10a60 20 40 25 78 2c 25 79 0a 7d 0a 62 69 6e 64 20 4c 69 73 74 62 6f 78 20 3c 53 68 69 66 74 2d 31 3e .@%x,%y.}.bind.Listbox.<Shift-1>
10a80 20 7b 0a 20 20 20 20 74 6b 4c 69 73 74 62 6f 78 42 65 67 69 6e 45 78 74 65 6e 64 20 25 57 20 5b .{.....tkListboxBeginExtend.%W.[
10aa0 25 57 20 69 6e 64 65 78 20 40 25 78 2c 25 79 5d 0a 7d 0a 62 69 6e 64 20 4c 69 73 74 62 6f 78 20 %W.index.@%x,%y].}.bind.Listbox.
10ac0 3c 43 6f 6e 74 72 6f 6c 2d 31 3e 20 7b 0a 20 20 20 20 74 6b 4c 69 73 74 62 6f 78 42 65 67 69 6e <Control-1>.{.....tkListboxBegin
10ae0 54 6f 67 67 6c 65 20 25 57 20 5b 25 57 20 69 6e 64 65 78 20 40 25 78 2c 25 79 5d 0a 7d 0a 62 69 Toggle.%W.[%W.index.@%x,%y].}.bi
10b00 6e 64 20 4c 69 73 74 62 6f 78 20 3c 42 31 2d 4c 65 61 76 65 3e 20 7b 0a 20 20 20 20 73 65 74 20 nd.Listbox.<B1-Leave>.{.....set.
10b20 74 6b 50 72 69 76 28 78 29 20 25 78 0a 20 20 20 20 73 65 74 20 74 6b 50 72 69 76 28 79 29 20 25 tkPriv(x).%x.....set.tkPriv(y).%
10b40 79 0a 20 20 20 20 74 6b 4c 69 73 74 62 6f 78 41 75 74 6f 53 63 61 6e 20 25 57 0a 7d 0a 62 69 6e y.....tkListboxAutoScan.%W.}.bin
10b60 64 20 4c 69 73 74 62 6f 78 20 3c 42 31 2d 45 6e 74 65 72 3e 20 7b 0a 20 20 20 20 74 6b 43 61 6e d.Listbox.<B1-Enter>.{.....tkCan
10b80 63 65 6c 52 65 70 65 61 74 0a 7d 0a 0a 62 69 6e 64 20 4c 69 73 74 62 6f 78 20 3c 55 70 3e 20 7b celRepeat.}..bind.Listbox.<Up>.{
10ba0 0a 20 20 20 20 74 6b 4c 69 73 74 62 6f 78 55 70 44 6f 77 6e 20 25 57 20 2d 31 0a 7d 0a 62 69 6e .....tkListboxUpDown.%W.-1.}.bin
10bc0 64 20 4c 69 73 74 62 6f 78 20 3c 53 68 69 66 74 2d 55 70 3e 20 7b 0a 20 20 20 20 74 6b 4c 69 73 d.Listbox.<Shift-Up>.{.....tkLis
10be0 74 62 6f 78 45 78 74 65 6e 64 55 70 44 6f 77 6e 20 25 57 20 2d 31 0a 7d 0a 62 69 6e 64 20 4c 69 tboxExtendUpDown.%W.-1.}.bind.Li
10c00 73 74 62 6f 78 20 3c 44 6f 77 6e 3e 20 7b 0a 20 20 20 20 74 6b 4c 69 73 74 62 6f 78 55 70 44 6f stbox.<Down>.{.....tkListboxUpDo
10c20 77 6e 20 25 57 20 31 0a 7d 0a 62 69 6e 64 20 4c 69 73 74 62 6f 78 20 3c 53 68 69 66 74 2d 44 6f wn.%W.1.}.bind.Listbox.<Shift-Do
10c40 77 6e 3e 20 7b 0a 20 20 20 20 74 6b 4c 69 73 74 62 6f 78 45 78 74 65 6e 64 55 70 44 6f 77 6e 20 wn>.{.....tkListboxExtendUpDown.
10c60 25 57 20 31 0a 7d 0a 62 69 6e 64 20 4c 69 73 74 62 6f 78 20 3c 4c 65 66 74 3e 20 7b 0a 20 20 20 %W.1.}.bind.Listbox.<Left>.{....
10c80 20 25 57 20 78 76 69 65 77 20 73 63 72 6f 6c 6c 20 2d 31 20 75 6e 69 74 73 0a 7d 0a 62 69 6e 64 .%W.xview.scroll.-1.units.}.bind
10ca0 20 4c 69 73 74 62 6f 78 20 3c 43 6f 6e 74 72 6f 6c 2d 4c 65 66 74 3e 20 7b 0a 20 20 20 20 25 57 .Listbox.<Control-Left>.{.....%W
10cc0 20 78 76 69 65 77 20 73 63 72 6f 6c 6c 20 2d 31 20 70 61 67 65 73 0a 7d 0a 62 69 6e 64 20 4c 69 .xview.scroll.-1.pages.}.bind.Li
10ce0 73 74 62 6f 78 20 3c 52 69 67 68 74 3e 20 7b 0a 20 20 20 20 25 57 20 78 76 69 65 77 20 73 63 72 stbox.<Right>.{.....%W.xview.scr
10d00 6f 6c 6c 20 31 20 75 6e 69 74 73 0a 7d 0a 62 69 6e 64 20 4c 69 73 74 62 6f 78 20 3c 43 6f 6e 74 oll.1.units.}.bind.Listbox.<Cont
10d20 72 6f 6c 2d 52 69 67 68 74 3e 20 7b 0a 20 20 20 20 25 57 20 78 76 69 65 77 20 73 63 72 6f 6c 6c rol-Right>.{.....%W.xview.scroll
10d40 20 31 20 70 61 67 65 73 0a 7d 0a 62 69 6e 64 20 4c 69 73 74 62 6f 78 20 3c 50 72 69 6f 72 3e 20 .1.pages.}.bind.Listbox.<Prior>.
10d60 7b 0a 20 20 20 20 25 57 20 79 76 69 65 77 20 73 63 72 6f 6c 6c 20 2d 31 20 70 61 67 65 73 0a 20 {.....%W.yview.scroll.-1.pages..
10d80 20 20 20 25 57 20 61 63 74 69 76 61 74 65 20 40 30 2c 30 0a 7d 0a 62 69 6e 64 20 4c 69 73 74 62 ...%W.activate.@0,0.}.bind.Listb
10da0 6f 78 20 3c 4e 65 78 74 3e 20 7b 0a 20 20 20 20 25 57 20 79 76 69 65 77 20 73 63 72 6f 6c 6c 20 ox.<Next>.{.....%W.yview.scroll.
10dc0 31 20 70 61 67 65 73 0a 20 20 20 20 25 57 20 61 63 74 69 76 61 74 65 20 40 30 2c 30 0a 7d 0a 62 1.pages.....%W.activate.@0,0.}.b
10de0 69 6e 64 20 4c 69 73 74 62 6f 78 20 3c 43 6f 6e 74 72 6f 6c 2d 50 72 69 6f 72 3e 20 7b 0a 20 20 ind.Listbox.<Control-Prior>.{...
10e00 20 20 25 57 20 78 76 69 65 77 20 73 63 72 6f 6c 6c 20 2d 31 20 70 61 67 65 73 0a 7d 0a 62 69 6e ..%W.xview.scroll.-1.pages.}.bin
10e20 64 20 4c 69 73 74 62 6f 78 20 3c 43 6f 6e 74 72 6f 6c 2d 4e 65 78 74 3e 20 7b 0a 20 20 20 20 25 d.Listbox.<Control-Next>.{.....%
10e40 57 20 78 76 69 65 77 20 73 63 72 6f 6c 6c 20 31 20 70 61 67 65 73 0a 7d 0a 62 69 6e 64 20 4c 69 W.xview.scroll.1.pages.}.bind.Li
10e60 73 74 62 6f 78 20 3c 48 6f 6d 65 3e 20 7b 0a 20 20 20 20 25 57 20 78 76 69 65 77 20 6d 6f 76 65 stbox.<Home>.{.....%W.xview.move
10e80 74 6f 20 30 0a 7d 0a 62 69 6e 64 20 4c 69 73 74 62 6f 78 20 3c 45 6e 64 3e 20 7b 0a 20 20 20 20 to.0.}.bind.Listbox.<End>.{.....
10ea0 25 57 20 78 76 69 65 77 20 6d 6f 76 65 74 6f 20 31 0a 7d 0a 62 69 6e 64 20 4c 69 73 74 62 6f 78 %W.xview.moveto.1.}.bind.Listbox
10ec0 20 3c 43 6f 6e 74 72 6f 6c 2d 48 6f 6d 65 3e 20 7b 0a 20 20 20 20 25 57 20 61 63 74 69 76 61 74 .<Control-Home>.{.....%W.activat
10ee0 65 20 30 0a 20 20 20 20 25 57 20 73 65 65 20 30 0a 20 20 20 20 25 57 20 73 65 6c 65 63 74 69 6f e.0.....%W.see.0.....%W.selectio
10f00 6e 20 63 6c 65 61 72 20 30 20 65 6e 64 0a 20 20 20 20 25 57 20 73 65 6c 65 63 74 69 6f 6e 20 73 n.clear.0.end.....%W.selection.s
10f20 65 74 20 30 0a 20 20 20 20 65 76 65 6e 74 20 67 65 6e 65 72 61 74 65 20 25 57 20 3c 3c 4c 69 73 et.0.....event.generate.%W.<<Lis
10f40 74 62 6f 78 53 65 6c 65 63 74 3e 3e 0a 7d 0a 62 69 6e 64 20 4c 69 73 74 62 6f 78 20 3c 53 68 69 tboxSelect>>.}.bind.Listbox.<Shi
10f60 66 74 2d 43 6f 6e 74 72 6f 6c 2d 48 6f 6d 65 3e 20 7b 0a 20 20 20 20 74 6b 4c 69 73 74 62 6f 78 ft-Control-Home>.{.....tkListbox
10f80 44 61 74 61 45 78 74 65 6e 64 20 25 57 20 30 0a 7d 0a 62 69 6e 64 20 4c 69 73 74 62 6f 78 20 3c DataExtend.%W.0.}.bind.Listbox.<
10fa0 43 6f 6e 74 72 6f 6c 2d 45 6e 64 3e 20 7b 0a 20 20 20 20 25 57 20 61 63 74 69 76 61 74 65 20 65 Control-End>.{.....%W.activate.e
10fc0 6e 64 0a 20 20 20 20 25 57 20 73 65 65 20 65 6e 64 0a 20 20 20 20 25 57 20 73 65 6c 65 63 74 69 nd.....%W.see.end.....%W.selecti
10fe0 6f 6e 20 63 6c 65 61 72 20 30 20 65 6e 64 0a 20 20 20 20 25 57 20 73 65 6c 65 63 74 69 6f 6e 20 on.clear.0.end.....%W.selection.
11000 73 65 74 20 65 6e 64 0a 20 20 20 20 65 76 65 6e 74 20 67 65 6e 65 72 61 74 65 20 25 57 20 3c 3c set.end.....event.generate.%W.<<
11020 4c 69 73 74 62 6f 78 53 65 6c 65 63 74 3e 3e 0a 7d 0a 62 69 6e 64 20 4c 69 73 74 62 6f 78 20 3c ListboxSelect>>.}.bind.Listbox.<
11040 53 68 69 66 74 2d 43 6f 6e 74 72 6f 6c 2d 45 6e 64 3e 20 7b 0a 20 20 20 20 74 6b 4c 69 73 74 62 Shift-Control-End>.{.....tkListb
11060 6f 78 44 61 74 61 45 78 74 65 6e 64 20 25 57 20 5b 25 57 20 69 6e 64 65 78 20 65 6e 64 5d 0a 7d oxDataExtend.%W.[%W.index.end].}
11080 0a 62 69 6e 64 20 4c 69 73 74 62 6f 78 20 3c 3c 43 6f 70 79 3e 3e 20 7b 0a 20 20 20 20 69 66 20 .bind.Listbox.<<Copy>>.{.....if.
110a0 7b 5b 73 74 72 69 6e 67 20 65 71 75 61 6c 20 5b 73 65 6c 65 63 74 69 6f 6e 20 6f 77 6e 20 2d 64 {[string.equal.[selection.own.-d
110c0 69 73 70 6c 61 79 6f 66 20 25 57 5d 20 22 25 57 22 5d 7d 20 7b 0a 09 63 6c 69 70 62 6f 61 72 64 isplayof.%W]."%W"]}.{..clipboard
110e0 20 63 6c 65 61 72 20 2d 64 69 73 70 6c 61 79 6f 66 20 25 57 0a 09 63 6c 69 70 62 6f 61 72 64 20 .clear.-displayof.%W..clipboard.
11100 61 70 70 65 6e 64 20 2d 64 69 73 70 6c 61 79 6f 66 20 25 57 20 5b 73 65 6c 65 63 74 69 6f 6e 20 append.-displayof.%W.[selection.
11120 67 65 74 20 2d 64 69 73 70 6c 61 79 6f 66 20 25 57 5d 0a 20 20 20 20 7d 0a 7d 0a 62 69 6e 64 20 get.-displayof.%W].....}.}.bind.
11140 4c 69 73 74 62 6f 78 20 3c 73 70 61 63 65 3e 20 7b 0a 20 20 20 20 74 6b 4c 69 73 74 62 6f 78 42 Listbox.<space>.{.....tkListboxB
11160 65 67 69 6e 53 65 6c 65 63 74 20 25 57 20 5b 25 57 20 69 6e 64 65 78 20 61 63 74 69 76 65 5d 0a eginSelect.%W.[%W.index.active].
11180 7d 0a 62 69 6e 64 20 4c 69 73 74 62 6f 78 20 3c 53 65 6c 65 63 74 3e 20 7b 0a 20 20 20 20 74 6b }.bind.Listbox.<Select>.{.....tk
111a0 4c 69 73 74 62 6f 78 42 65 67 69 6e 53 65 6c 65 63 74 20 25 57 20 5b 25 57 20 69 6e 64 65 78 20 ListboxBeginSelect.%W.[%W.index.
111c0 61 63 74 69 76 65 5d 0a 7d 0a 62 69 6e 64 20 4c 69 73 74 62 6f 78 20 3c 43 6f 6e 74 72 6f 6c 2d active].}.bind.Listbox.<Control-
111e0 53 68 69 66 74 2d 73 70 61 63 65 3e 20 7b 0a 20 20 20 20 74 6b 4c 69 73 74 62 6f 78 42 65 67 69 Shift-space>.{.....tkListboxBegi
11200 6e 45 78 74 65 6e 64 20 25 57 20 5b 25 57 20 69 6e 64 65 78 20 61 63 74 69 76 65 5d 0a 7d 0a 62 nExtend.%W.[%W.index.active].}.b
11220 69 6e 64 20 4c 69 73 74 62 6f 78 20 3c 53 68 69 66 74 2d 53 65 6c 65 63 74 3e 20 7b 0a 20 20 20 ind.Listbox.<Shift-Select>.{....
11240 20 74 6b 4c 69 73 74 62 6f 78 42 65 67 69 6e 45 78 74 65 6e 64 20 25 57 20 5b 25 57 20 69 6e 64 .tkListboxBeginExtend.%W.[%W.ind
11260 65 78 20 61 63 74 69 76 65 5d 0a 7d 0a 62 69 6e 64 20 4c 69 73 74 62 6f 78 20 3c 45 73 63 61 70 ex.active].}.bind.Listbox.<Escap
11280 65 3e 20 7b 0a 20 20 20 20 74 6b 4c 69 73 74 62 6f 78 43 61 6e 63 65 6c 20 25 57 0a 7d 0a 62 69 e>.{.....tkListboxCancel.%W.}.bi
112a0 6e 64 20 4c 69 73 74 62 6f 78 20 3c 43 6f 6e 74 72 6f 6c 2d 73 6c 61 73 68 3e 20 7b 0a 20 20 20 nd.Listbox.<Control-slash>.{....
112c0 20 74 6b 4c 69 73 74 62 6f 78 53 65 6c 65 63 74 41 6c 6c 20 25 57 0a 7d 0a 62 69 6e 64 20 4c 69 .tkListboxSelectAll.%W.}.bind.Li
112e0 73 74 62 6f 78 20 3c 43 6f 6e 74 72 6f 6c 2d 62 61 63 6b 73 6c 61 73 68 3e 20 7b 0a 20 20 20 20 stbox.<Control-backslash>.{.....
11300 69 66 20 7b 5b 73 74 72 69 6e 67 20 63 6f 6d 70 61 72 65 20 5b 25 57 20 63 67 65 74 20 2d 73 65 if.{[string.compare.[%W.cget.-se
11320 6c 65 63 74 6d 6f 64 65 5d 20 22 62 72 6f 77 73 65 22 5d 7d 20 7b 0a 09 25 57 20 73 65 6c 65 63 lectmode]."browse"]}.{..%W.selec
11340 74 69 6f 6e 20 63 6c 65 61 72 20 30 20 65 6e 64 0a 09 65 76 65 6e 74 20 67 65 6e 65 72 61 74 65 tion.clear.0.end..event.generate
11360 20 25 57 20 3c 3c 4c 69 73 74 62 6f 78 53 65 6c 65 63 74 3e 3e 0a 20 20 20 20 7d 0a 7d 0a 0a 23 .%W.<<ListboxSelect>>.....}.}..#
11380 20 41 64 64 69 74 69 6f 6e 61 6c 20 54 6b 20 62 69 6e 64 69 6e 67 73 20 74 68 61 74 20 61 72 65 .Additional.Tk.bindings.that.are
113a0 6e 27 74 20 70 61 72 74 20 6f 66 20 74 68 65 20 4d 6f 74 69 66 20 6c 6f 6f 6b 20 61 6e 64 20 66 n't.part.of.the.Motif.look.and.f
113c0 65 65 6c 3a 0a 0a 62 69 6e 64 20 4c 69 73 74 62 6f 78 20 3c 32 3e 20 7b 0a 20 20 20 20 25 57 20 eel:..bind.Listbox.<2>.{.....%W.
113e0 73 63 61 6e 20 6d 61 72 6b 20 25 78 20 25 79 0a 7d 0a 62 69 6e 64 20 4c 69 73 74 62 6f 78 20 3c scan.mark.%x.%y.}.bind.Listbox.<
11400 42 32 2d 4d 6f 74 69 6f 6e 3e 20 7b 0a 20 20 20 20 25 57 20 73 63 61 6e 20 64 72 61 67 74 6f 20 B2-Motion>.{.....%W.scan.dragto.
11420 25 78 20 25 79 0a 7d 0a 0a 23 20 54 68 65 20 4d 6f 75 73 65 57 68 65 65 6c 20 77 69 6c 6c 20 74 %x.%y.}..#.The.MouseWheel.will.t
11440 79 70 69 63 61 6c 6c 79 20 6f 6e 6c 79 20 66 69 72 65 20 6f 6e 20 57 69 6e 64 6f 77 73 2e 20 20 ypically.only.fire.on.Windows...
11460 48 6f 77 65 76 65 72 2c 0a 23 20 73 6f 6d 65 6f 6e 65 20 63 6f 75 6c 64 20 75 73 65 20 74 68 65 However,.#.someone.could.use.the
11480 20 22 65 76 65 6e 74 20 67 65 6e 65 72 61 74 65 22 20 63 6f 6d 6d 61 6e 64 20 74 6f 20 70 72 6f ."event.generate".command.to.pro
114a0 64 75 63 65 20 6f 6e 65 0a 23 20 6f 6e 20 6f 74 68 65 72 20 70 6c 61 74 66 6f 72 6d 73 2e 0a 0a duce.one.#.on.other.platforms...
114c0 62 69 6e 64 20 4c 69 73 74 62 6f 78 20 3c 4d 6f 75 73 65 57 68 65 65 6c 3e 20 7b 0a 20 20 20 20 bind.Listbox.<MouseWheel>.{.....
114e0 25 57 20 79 76 69 65 77 20 73 63 72 6f 6c 6c 20 5b 65 78 70 72 20 7b 2d 20 28 25 44 20 2f 20 31 %W.yview.scroll.[expr.{-.(%D./.1
11500 32 30 29 20 2a 20 34 7d 5d 20 75 6e 69 74 73 0a 7d 0a 0a 69 66 20 7b 5b 73 74 72 69 6e 67 20 65 20).*.4}].units.}..if.{[string.e
11520 71 75 61 6c 20 22 75 6e 69 78 22 20 24 74 63 6c 5f 70 6c 61 74 66 6f 72 6d 28 70 6c 61 74 66 6f qual."unix".$tcl_platform(platfo
11540 72 6d 29 5d 7d 20 7b 0a 20 20 20 20 23 20 53 75 70 70 6f 72 74 20 66 6f 72 20 6d 6f 75 73 65 77 rm)]}.{.....#.Support.for.mousew
11560 68 65 65 6c 73 20 6f 6e 20 4c 69 6e 75 78 2f 55 6e 69 78 20 63 6f 6d 6d 6f 6e 6c 79 20 63 6f 6d heels.on.Linux/Unix.commonly.com
11580 65 73 20 74 68 72 6f 75 67 68 20 6d 61 70 70 69 6e 67 0a 20 20 20 20 23 20 74 68 65 20 77 68 65 es.through.mapping.....#.the.whe
115a0 65 6c 20 74 6f 20 74 68 65 20 65 78 74 65 6e 64 65 64 20 62 75 74 74 6f 6e 73 2e 20 20 49 66 20 el.to.the.extended.buttons...If.
115c0 79 6f 75 20 68 61 76 65 20 61 20 6d 6f 75 73 65 77 68 65 65 6c 2c 20 66 69 6e 64 0a 20 20 20 20 you.have.a.mousewheel,.find.....
115e0 23 20 4c 69 6e 75 78 20 63 6f 6e 66 69 67 75 72 61 74 69 6f 6e 20 69 6e 66 6f 20 61 74 3a 0a 20 #.Linux.configuration.info.at:..
11600 20 20 20 23 09 68 74 74 70 3a 2f 2f 77 77 77 2e 69 6e 72 69 61 2e 66 72 2f 6b 6f 61 6c 61 2f 63 ...#.http://www.inria.fr/koala/c
11620 6f 6c 61 73 2f 6d 6f 75 73 65 2d 77 68 65 65 6c 2d 73 63 72 6f 6c 6c 2f 0a 20 20 20 20 62 69 6e olas/mouse-wheel-scroll/.....bin
11640 64 20 4c 69 73 74 62 6f 78 20 3c 34 3e 20 7b 0a 09 69 66 20 7b 21 24 74 6b 5f 73 74 72 69 63 74 d.Listbox.<4>.{..if.{!$tk_strict
11660 4d 6f 74 69 66 7d 20 7b 0a 09 20 20 20 20 25 57 20 79 76 69 65 77 20 73 63 72 6f 6c 6c 20 2d 35 Motif}.{......%W.yview.scroll.-5
11680 20 75 6e 69 74 73 0a 09 7d 0a 20 20 20 20 7d 0a 20 20 20 20 62 69 6e 64 20 4c 69 73 74 62 6f 78 .units..}.....}.....bind.Listbox
116a0 20 3c 35 3e 20 7b 0a 09 69 66 20 7b 21 24 74 6b 5f 73 74 72 69 63 74 4d 6f 74 69 66 7d 20 7b 0a .<5>.{..if.{!$tk_strictMotif}.{.
116c0 09 20 20 20 20 25 57 20 79 76 69 65 77 20 73 63 72 6f 6c 6c 20 35 20 75 6e 69 74 73 0a 09 7d 0a .....%W.yview.scroll.5.units..}.
116e0 20 20 20 20 7d 0a 7d 0a 0a 23 20 74 6b 4c 69 73 74 62 6f 78 42 65 67 69 6e 53 65 6c 65 63 74 20 ....}.}..#.tkListboxBeginSelect.
11700 2d 2d 0a 23 0a 23 20 54 68 69 73 20 70 72 6f 63 65 64 75 72 65 20 69 73 20 74 79 70 69 63 61 6c --.#.#.This.procedure.is.typical
11720 6c 79 20 69 6e 76 6f 6b 65 64 20 6f 6e 20 62 75 74 74 6f 6e 2d 31 20 70 72 65 73 73 65 73 2e 20 ly.invoked.on.button-1.presses..
11740 20 49 74 20 62 65 67 69 6e 73 0a 23 20 74 68 65 20 70 72 6f 63 65 73 73 20 6f 66 20 6d 61 6b 69 .It.begins.#.the.process.of.maki
11760 6e 67 20 61 20 73 65 6c 65 63 74 69 6f 6e 20 69 6e 20 74 68 65 20 6c 69 73 74 62 6f 78 2e 20 20 ng.a.selection.in.the.listbox...
11780 49 74 73 20 65 78 61 63 74 20 62 65 68 61 76 69 6f 72 0a 23 20 64 65 70 65 6e 64 73 20 6f 6e 20 Its.exact.behavior.#.depends.on.
117a0 74 68 65 20 73 65 6c 65 63 74 69 6f 6e 20 6d 6f 64 65 20 63 75 72 72 65 6e 74 6c 79 20 69 6e 20 the.selection.mode.currently.in.
117c0 65 66 66 65 63 74 20 66 6f 72 20 74 68 65 20 6c 69 73 74 62 6f 78 3b 0a 23 20 73 65 65 20 74 68 effect.for.the.listbox;.#.see.th
117e0 65 20 4d 6f 74 69 66 20 64 6f 63 75 6d 65 6e 74 61 74 69 6f 6e 20 66 6f 72 20 64 65 74 61 69 6c e.Motif.documentation.for.detail
11800 73 2e 0a 23 0a 23 20 41 72 67 75 6d 65 6e 74 73 3a 0a 23 20 77 20 2d 09 09 54 68 65 20 6c 69 73 s..#.#.Arguments:.#.w.-..The.lis
11820 74 62 6f 78 20 77 69 64 67 65 74 2e 0a 23 20 65 6c 20 2d 09 09 54 68 65 20 65 6c 65 6d 65 6e 74 tbox.widget..#.el.-..The.element
11840 20 66 6f 72 20 74 68 65 20 73 65 6c 65 63 74 69 6f 6e 20 6f 70 65 72 61 74 69 6f 6e 20 28 74 79 .for.the.selection.operation.(ty
11860 70 69 63 61 6c 6c 79 20 74 68 65 0a 23 09 09 6f 6e 65 20 75 6e 64 65 72 20 74 68 65 20 70 6f 69 pically.the.#..one.under.the.poi
11880 6e 74 65 72 29 2e 20 20 4d 75 73 74 20 62 65 20 69 6e 20 6e 75 6d 65 72 69 63 61 6c 20 66 6f 72 nter)...Must.be.in.numerical.for
118a0 6d 2e 0a 0a 70 72 6f 63 20 74 6b 4c 69 73 74 62 6f 78 42 65 67 69 6e 53 65 6c 65 63 74 20 7b 77 m...proc.tkListboxBeginSelect.{w
118c0 20 65 6c 7d 20 7b 0a 20 20 20 20 67 6c 6f 62 61 6c 20 74 6b 50 72 69 76 0a 20 20 20 20 69 66 20 .el}.{.....global.tkPriv.....if.
118e0 7b 5b 73 74 72 69 6e 67 20 65 71 75 61 6c 20 5b 24 77 20 63 67 65 74 20 2d 73 65 6c 65 63 74 6d {[string.equal.[$w.cget.-selectm
11900 6f 64 65 5d 20 22 6d 75 6c 74 69 70 6c 65 22 5d 7d 20 7b 0a 09 69 66 20 7b 5b 24 77 20 73 65 6c ode]."multiple"]}.{..if.{[$w.sel
11920 65 63 74 69 6f 6e 20 69 6e 63 6c 75 64 65 73 20 24 65 6c 5d 7d 20 7b 0a 09 20 20 20 20 24 77 20 ection.includes.$el]}.{......$w.
11940 73 65 6c 65 63 74 69 6f 6e 20 63 6c 65 61 72 20 24 65 6c 0a 09 7d 20 65 6c 73 65 20 7b 0a 09 20 selection.clear.$el..}.else.{...
11960 20 20 20 24 77 20 73 65 6c 65 63 74 69 6f 6e 20 73 65 74 20 24 65 6c 0a 09 7d 0a 20 20 20 20 7d ...$w.selection.set.$el..}.....}
11980 20 65 6c 73 65 20 7b 0a 09 24 77 20 73 65 6c 65 63 74 69 6f 6e 20 63 6c 65 61 72 20 30 20 65 6e .else.{..$w.selection.clear.0.en
119a0 64 0a 09 24 77 20 73 65 6c 65 63 74 69 6f 6e 20 73 65 74 20 24 65 6c 0a 09 24 77 20 73 65 6c 65 d..$w.selection.set.$el..$w.sele
119c0 63 74 69 6f 6e 20 61 6e 63 68 6f 72 20 24 65 6c 0a 09 73 65 74 20 74 6b 50 72 69 76 28 6c 69 73 ction.anchor.$el..set.tkPriv(lis
119e0 74 62 6f 78 53 65 6c 65 63 74 69 6f 6e 29 20 7b 7d 0a 09 73 65 74 20 74 6b 50 72 69 76 28 6c 69 tboxSelection).{}..set.tkPriv(li
11a00 73 74 62 6f 78 50 72 65 76 29 20 24 65 6c 0a 20 20 20 20 7d 0a 20 20 20 20 65 76 65 6e 74 20 67 stboxPrev).$el.....}.....event.g
11a20 65 6e 65 72 61 74 65 20 24 77 20 3c 3c 4c 69 73 74 62 6f 78 53 65 6c 65 63 74 3e 3e 0a 7d 0a 0a enerate.$w.<<ListboxSelect>>.}..
11a40 23 20 74 6b 4c 69 73 74 62 6f 78 4d 6f 74 69 6f 6e 20 2d 2d 0a 23 0a 23 20 54 68 69 73 20 70 72 #.tkListboxMotion.--.#.#.This.pr
11a60 6f 63 65 64 75 72 65 20 69 73 20 63 61 6c 6c 65 64 20 74 6f 20 70 72 6f 63 65 73 73 20 6d 6f 75 ocedure.is.called.to.process.mou
11a80 73 65 20 6d 6f 74 69 6f 6e 20 65 76 65 6e 74 73 20 77 68 69 6c 65 0a 23 20 62 75 74 74 6f 6e 20 se.motion.events.while.#.button.
11aa0 31 20 69 73 20 64 6f 77 6e 2e 20 20 49 74 20 6d 61 79 20 6d 6f 76 65 20 6f 72 20 65 78 74 65 6e 1.is.down...It.may.move.or.exten
11ac0 64 20 74 68 65 20 73 65 6c 65 63 74 69 6f 6e 2c 20 64 65 70 65 6e 64 69 6e 67 0a 23 20 6f 6e 20 d.the.selection,.depending.#.on.
11ae0 74 68 65 20 6c 69 73 74 62 6f 78 27 73 20 73 65 6c 65 63 74 69 6f 6e 20 6d 6f 64 65 2e 0a 23 0a the.listbox's.selection.mode..#.
11b00 23 20 41 72 67 75 6d 65 6e 74 73 3a 0a 23 20 77 20 2d 09 09 54 68 65 20 6c 69 73 74 62 6f 78 20 #.Arguments:.#.w.-..The.listbox.
11b20 77 69 64 67 65 74 2e 0a 23 20 65 6c 20 2d 09 09 54 68 65 20 65 6c 65 6d 65 6e 74 20 75 6e 64 65 widget..#.el.-..The.element.unde
11b40 72 20 74 68 65 20 70 6f 69 6e 74 65 72 20 28 6d 75 73 74 20 62 65 20 61 20 6e 75 6d 62 65 72 29 r.the.pointer.(must.be.a.number)
11b60 2e 0a 0a 70 72 6f 63 20 74 6b 4c 69 73 74 62 6f 78 4d 6f 74 69 6f 6e 20 7b 77 20 65 6c 7d 20 7b ...proc.tkListboxMotion.{w.el}.{
11b80 0a 20 20 20 20 67 6c 6f 62 61 6c 20 74 6b 50 72 69 76 0a 20 20 20 20 69 66 20 7b 24 65 6c 20 3d .....global.tkPriv.....if.{$el.=
11ba0 3d 20 24 74 6b 50 72 69 76 28 6c 69 73 74 62 6f 78 50 72 65 76 29 7d 20 7b 0a 09 72 65 74 75 72 =.$tkPriv(listboxPrev)}.{..retur
11bc0 6e 0a 20 20 20 20 7d 0a 20 20 20 20 73 65 74 20 61 6e 63 68 6f 72 20 5b 24 77 20 69 6e 64 65 78 n.....}.....set.anchor.[$w.index
11be0 20 61 6e 63 68 6f 72 5d 0a 20 20 20 20 73 77 69 74 63 68 20 5b 24 77 20 63 67 65 74 20 2d 73 65 .anchor].....switch.[$w.cget.-se
11c00 6c 65 63 74 6d 6f 64 65 5d 20 7b 0a 09 62 72 6f 77 73 65 20 7b 0a 09 20 20 20 20 24 77 20 73 65 lectmode].{..browse.{......$w.se
11c20 6c 65 63 74 69 6f 6e 20 63 6c 65 61 72 20 30 20 65 6e 64 0a 09 20 20 20 20 24 77 20 73 65 6c 65 lection.clear.0.end......$w.sele
11c40 63 74 69 6f 6e 20 73 65 74 20 24 65 6c 0a 09 20 20 20 20 73 65 74 20 74 6b 50 72 69 76 28 6c 69 ction.set.$el......set.tkPriv(li
11c60 73 74 62 6f 78 50 72 65 76 29 20 24 65 6c 0a 09 20 20 20 20 65 76 65 6e 74 20 67 65 6e 65 72 61 stboxPrev).$el......event.genera
11c80 74 65 20 24 77 20 3c 3c 4c 69 73 74 62 6f 78 53 65 6c 65 63 74 3e 3e 0a 09 7d 0a 09 65 78 74 65 te.$w.<<ListboxSelect>>..}..exte
11ca0 6e 64 65 64 20 7b 0a 09 20 20 20 20 73 65 74 20 69 20 24 74 6b 50 72 69 76 28 6c 69 73 74 62 6f nded.{......set.i.$tkPriv(listbo
11cc0 78 50 72 65 76 29 0a 09 20 20 20 20 69 66 20 7b 5b 73 74 72 69 6e 67 20 65 71 75 61 6c 20 7b 7d xPrev)......if.{[string.equal.{}
11ce0 20 24 69 5d 7d 20 7b 0a 09 09 73 65 74 20 69 20 24 65 6c 0a 09 09 24 77 20 73 65 6c 65 63 74 69 .$i]}.{...set.i.$el...$w.selecti
11d00 6f 6e 20 73 65 74 20 24 65 6c 0a 09 20 20 20 20 7d 0a 09 20 20 20 20 69 66 20 7b 5b 24 77 20 73 on.set.$el......}......if.{[$w.s
11d20 65 6c 65 63 74 69 6f 6e 20 69 6e 63 6c 75 64 65 73 20 61 6e 63 68 6f 72 5d 7d 20 7b 0a 09 09 24 election.includes.anchor]}.{...$
11d40 77 20 73 65 6c 65 63 74 69 6f 6e 20 63 6c 65 61 72 20 24 69 20 24 65 6c 0a 09 09 24 77 20 73 65 w.selection.clear.$i.$el...$w.se
11d60 6c 65 63 74 69 6f 6e 20 73 65 74 20 61 6e 63 68 6f 72 20 24 65 6c 0a 09 20 20 20 20 7d 20 65 6c lection.set.anchor.$el......}.el
11d80 73 65 20 7b 0a 09 09 24 77 20 73 65 6c 65 63 74 69 6f 6e 20 63 6c 65 61 72 20 24 69 20 24 65 6c se.{...$w.selection.clear.$i.$el
11da0 0a 09 09 24 77 20 73 65 6c 65 63 74 69 6f 6e 20 63 6c 65 61 72 20 61 6e 63 68 6f 72 20 24 65 6c ...$w.selection.clear.anchor.$el
11dc0 0a 09 20 20 20 20 7d 0a 09 20 20 20 20 69 66 20 7b 21 5b 69 6e 66 6f 20 65 78 69 73 74 73 20 74 ......}......if.{![info.exists.t
11de0 6b 50 72 69 76 28 6c 69 73 74 62 6f 78 53 65 6c 65 63 74 69 6f 6e 29 5d 7d 20 7b 0a 09 09 73 65 kPriv(listboxSelection)]}.{...se
11e00 74 20 74 6b 50 72 69 76 28 6c 69 73 74 62 6f 78 53 65 6c 65 63 74 69 6f 6e 29 20 5b 24 77 20 63 t.tkPriv(listboxSelection).[$w.c
11e20 75 72 73 65 6c 65 63 74 69 6f 6e 5d 0a 09 20 20 20 20 7d 0a 09 20 20 20 20 77 68 69 6c 65 20 7b urselection]......}......while.{
11e40 28 24 69 20 3c 20 24 65 6c 29 20 26 26 20 28 24 69 20 3c 20 24 61 6e 63 68 6f 72 29 7d 20 7b 0a ($i.<.$el).&&.($i.<.$anchor)}.{.
11e60 09 09 69 66 20 7b 5b 6c 73 65 61 72 63 68 20 24 74 6b 50 72 69 76 28 6c 69 73 74 62 6f 78 53 65 ..if.{[lsearch.$tkPriv(listboxSe
11e80 6c 65 63 74 69 6f 6e 29 20 24 69 5d 20 3e 3d 20 30 7d 20 7b 0a 09 09 20 20 20 20 24 77 20 73 65 lection).$i].>=.0}.{.......$w.se
11ea0 6c 65 63 74 69 6f 6e 20 73 65 74 20 24 69 0a 09 09 7d 0a 09 09 69 6e 63 72 20 69 0a 09 20 20 20 lection.set.$i...}...incr.i.....
11ec0 20 7d 0a 09 20 20 20 20 77 68 69 6c 65 20 7b 28 24 69 20 3e 20 24 65 6c 29 20 26 26 20 28 24 69 .}......while.{($i.>.$el).&&.($i
11ee0 20 3e 20 24 61 6e 63 68 6f 72 29 7d 20 7b 0a 09 09 69 66 20 7b 5b 6c 73 65 61 72 63 68 20 24 74 .>.$anchor)}.{...if.{[lsearch.$t
11f00 6b 50 72 69 76 28 6c 69 73 74 62 6f 78 53 65 6c 65 63 74 69 6f 6e 29 20 24 69 5d 20 3e 3d 20 30 kPriv(listboxSelection).$i].>=.0
11f20 7d 20 7b 0a 09 09 20 20 20 20 24 77 20 73 65 6c 65 63 74 69 6f 6e 20 73 65 74 20 24 69 0a 09 09 }.{.......$w.selection.set.$i...
11f40 7d 0a 09 09 69 6e 63 72 20 69 20 2d 31 0a 09 20 20 20 20 7d 0a 09 20 20 20 20 73 65 74 20 74 6b }...incr.i.-1......}......set.tk
11f60 50 72 69 76 28 6c 69 73 74 62 6f 78 50 72 65 76 29 20 24 65 6c 0a 09 20 20 20 20 65 76 65 6e 74 Priv(listboxPrev).$el......event
11f80 20 67 65 6e 65 72 61 74 65 20 24 77 20 3c 3c 4c 69 73 74 62 6f 78 53 65 6c 65 63 74 3e 3e 0a 09 .generate.$w.<<ListboxSelect>>..
11fa0 7d 0a 20 20 20 20 7d 0a 7d 0a 0a 23 20 74 6b 4c 69 73 74 62 6f 78 42 65 67 69 6e 45 78 74 65 6e }.....}.}..#.tkListboxBeginExten
11fc0 64 20 2d 2d 0a 23 0a 23 20 54 68 69 73 20 70 72 6f 63 65 64 75 72 65 20 69 73 20 74 79 70 69 63 d.--.#.#.This.procedure.is.typic
11fe0 61 6c 6c 79 20 69 6e 76 6f 6b 65 64 20 6f 6e 20 73 68 69 66 74 2d 62 75 74 74 6f 6e 2d 31 20 70 ally.invoked.on.shift-button-1.p
12000 72 65 73 73 65 73 2e 20 20 49 74 0a 23 20 62 65 67 69 6e 73 20 74 68 65 20 70 72 6f 63 65 73 73 resses...It.#.begins.the.process
12020 20 6f 66 20 65 78 74 65 6e 64 69 6e 67 20 61 20 73 65 6c 65 63 74 69 6f 6e 20 69 6e 20 74 68 65 .of.extending.a.selection.in.the
12040 20 6c 69 73 74 62 6f 78 2e 20 20 49 74 73 0a 23 20 65 78 61 63 74 20 62 65 68 61 76 69 6f 72 20 .listbox...Its.#.exact.behavior.
12060 64 65 70 65 6e 64 73 20 6f 6e 20 74 68 65 20 73 65 6c 65 63 74 69 6f 6e 20 6d 6f 64 65 20 63 75 depends.on.the.selection.mode.cu
12080 72 72 65 6e 74 6c 79 20 69 6e 20 65 66 66 65 63 74 0a 23 20 66 6f 72 20 74 68 65 20 6c 69 73 74 rrently.in.effect.#.for.the.list
120a0 62 6f 78 3b 20 20 73 65 65 20 74 68 65 20 4d 6f 74 69 66 20 64 6f 63 75 6d 65 6e 74 61 74 69 6f box;..see.the.Motif.documentatio
120c0 6e 20 66 6f 72 20 64 65 74 61 69 6c 73 2e 0a 23 0a 23 20 41 72 67 75 6d 65 6e 74 73 3a 0a 23 20 n.for.details..#.#.Arguments:.#.
120e0 77 20 2d 09 09 54 68 65 20 6c 69 73 74 62 6f 78 20 77 69 64 67 65 74 2e 0a 23 20 65 6c 20 2d 09 w.-..The.listbox.widget..#.el.-.
12100 09 54 68 65 20 65 6c 65 6d 65 6e 74 20 66 6f 72 20 74 68 65 20 73 65 6c 65 63 74 69 6f 6e 20 6f .The.element.for.the.selection.o
12120 70 65 72 61 74 69 6f 6e 20 28 74 79 70 69 63 61 6c 6c 79 20 74 68 65 0a 23 09 09 6f 6e 65 20 75 peration.(typically.the.#..one.u
12140 6e 64 65 72 20 74 68 65 20 70 6f 69 6e 74 65 72 29 2e 20 20 4d 75 73 74 20 62 65 20 69 6e 20 6e nder.the.pointer)...Must.be.in.n
12160 75 6d 65 72 69 63 61 6c 20 66 6f 72 6d 2e 0a 0a 70 72 6f 63 20 74 6b 4c 69 73 74 62 6f 78 42 65 umerical.form...proc.tkListboxBe
12180 67 69 6e 45 78 74 65 6e 64 20 7b 77 20 65 6c 7d 20 7b 0a 20 20 20 20 69 66 20 7b 5b 73 74 72 69 ginExtend.{w.el}.{.....if.{[stri
121a0 6e 67 20 65 71 75 61 6c 20 5b 24 77 20 63 67 65 74 20 2d 73 65 6c 65 63 74 6d 6f 64 65 5d 20 22 ng.equal.[$w.cget.-selectmode]."
121c0 65 78 74 65 6e 64 65 64 22 5d 7d 20 7b 0a 09 69 66 20 7b 5b 24 77 20 73 65 6c 65 63 74 69 6f 6e extended"]}.{..if.{[$w.selection
121e0 20 69 6e 63 6c 75 64 65 73 20 61 6e 63 68 6f 72 5d 7d 20 7b 0a 09 20 20 20 20 74 6b 4c 69 73 74 .includes.anchor]}.{......tkList
12200 62 6f 78 4d 6f 74 69 6f 6e 20 24 77 20 24 65 6c 0a 09 7d 20 65 6c 73 65 20 7b 0a 09 20 20 20 20 boxMotion.$w.$el..}.else.{......
12220 23 20 4e 6f 20 73 65 6c 65 63 74 69 6f 6e 20 79 65 74 3b 20 73 69 6d 75 6c 61 74 65 20 74 68 65 #.No.selection.yet;.simulate.the
12240 20 62 65 67 69 6e 2d 73 65 6c 65 63 74 20 6f 70 65 72 61 74 69 6f 6e 2e 0a 09 20 20 20 20 74 6b .begin-select.operation.......tk
12260 4c 69 73 74 62 6f 78 42 65 67 69 6e 53 65 6c 65 63 74 20 24 77 20 24 65 6c 0a 09 7d 0a 20 20 20 ListboxBeginSelect.$w.$el..}....
12280 20 7d 0a 7d 0a 0a 23 20 74 6b 4c 69 73 74 62 6f 78 42 65 67 69 6e 54 6f 67 67 6c 65 20 2d 2d 0a .}.}..#.tkListboxBeginToggle.--.
122a0 23 0a 23 20 54 68 69 73 20 70 72 6f 63 65 64 75 72 65 20 69 73 20 74 79 70 69 63 61 6c 6c 79 20 #.#.This.procedure.is.typically.
122c0 69 6e 76 6f 6b 65 64 20 6f 6e 20 63 6f 6e 74 72 6f 6c 2d 62 75 74 74 6f 6e 2d 31 20 70 72 65 73 invoked.on.control-button-1.pres
122e0 73 65 73 2e 20 20 49 74 0a 23 20 62 65 67 69 6e 73 20 74 68 65 20 70 72 6f 63 65 73 73 20 6f 66 ses...It.#.begins.the.process.of
12300 20 74 6f 67 67 6c 69 6e 67 20 61 20 73 65 6c 65 63 74 69 6f 6e 20 69 6e 20 74 68 65 20 6c 69 73 .toggling.a.selection.in.the.lis
12320 74 62 6f 78 2e 20 20 49 74 73 0a 23 20 65 78 61 63 74 20 62 65 68 61 76 69 6f 72 20 64 65 70 65 tbox...Its.#.exact.behavior.depe
12340 6e 64 73 20 6f 6e 20 74 68 65 20 73 65 6c 65 63 74 69 6f 6e 20 6d 6f 64 65 20 63 75 72 72 65 6e nds.on.the.selection.mode.curren
12360 74 6c 79 20 69 6e 20 65 66 66 65 63 74 0a 23 20 66 6f 72 20 74 68 65 20 6c 69 73 74 62 6f 78 3b tly.in.effect.#.for.the.listbox;
12380 20 20 73 65 65 20 74 68 65 20 4d 6f 74 69 66 20 64 6f 63 75 6d 65 6e 74 61 74 69 6f 6e 20 66 6f ..see.the.Motif.documentation.fo
123a0 72 20 64 65 74 61 69 6c 73 2e 0a 23 0a 23 20 41 72 67 75 6d 65 6e 74 73 3a 0a 23 20 77 20 2d 09 r.details..#.#.Arguments:.#.w.-.
123c0 09 54 68 65 20 6c 69 73 74 62 6f 78 20 77 69 64 67 65 74 2e 0a 23 20 65 6c 20 2d 09 09 54 68 65 .The.listbox.widget..#.el.-..The
123e0 20 65 6c 65 6d 65 6e 74 20 66 6f 72 20 74 68 65 20 73 65 6c 65 63 74 69 6f 6e 20 6f 70 65 72 61 .element.for.the.selection.opera
12400 74 69 6f 6e 20 28 74 79 70 69 63 61 6c 6c 79 20 74 68 65 0a 23 09 09 6f 6e 65 20 75 6e 64 65 72 tion.(typically.the.#..one.under
12420 20 74 68 65 20 70 6f 69 6e 74 65 72 29 2e 20 20 4d 75 73 74 20 62 65 20 69 6e 20 6e 75 6d 65 72 .the.pointer)...Must.be.in.numer
12440 69 63 61 6c 20 66 6f 72 6d 2e 0a 0a 70 72 6f 63 20 74 6b 4c 69 73 74 62 6f 78 42 65 67 69 6e 54 ical.form...proc.tkListboxBeginT
12460 6f 67 67 6c 65 20 7b 77 20 65 6c 7d 20 7b 0a 20 20 20 20 67 6c 6f 62 61 6c 20 74 6b 50 72 69 76 oggle.{w.el}.{.....global.tkPriv
12480 0a 20 20 20 20 69 66 20 7b 5b 73 74 72 69 6e 67 20 65 71 75 61 6c 20 5b 24 77 20 63 67 65 74 20 .....if.{[string.equal.[$w.cget.
124a0 2d 73 65 6c 65 63 74 6d 6f 64 65 5d 20 22 65 78 74 65 6e 64 65 64 22 5d 7d 20 7b 0a 09 73 65 74 -selectmode]."extended"]}.{..set
124c0 20 74 6b 50 72 69 76 28 6c 69 73 74 62 6f 78 53 65 6c 65 63 74 69 6f 6e 29 20 5b 24 77 20 63 75 .tkPriv(listboxSelection).[$w.cu
124e0 72 73 65 6c 65 63 74 69 6f 6e 5d 0a 09 73 65 74 20 74 6b 50 72 69 76 28 6c 69 73 74 62 6f 78 50 rselection]..set.tkPriv(listboxP
12500 72 65 76 29 20 24 65 6c 0a 09 24 77 20 73 65 6c 65 63 74 69 6f 6e 20 61 6e 63 68 6f 72 20 24 65 rev).$el..$w.selection.anchor.$e
12520 6c 0a 09 69 66 20 7b 5b 24 77 20 73 65 6c 65 63 74 69 6f 6e 20 69 6e 63 6c 75 64 65 73 20 24 65 l..if.{[$w.selection.includes.$e
12540 6c 5d 7d 20 7b 0a 09 20 20 20 20 24 77 20 73 65 6c 65 63 74 69 6f 6e 20 63 6c 65 61 72 20 24 65 l]}.{......$w.selection.clear.$e
12560 6c 0a 09 7d 20 65 6c 73 65 20 7b 0a 09 20 20 20 20 24 77 20 73 65 6c 65 63 74 69 6f 6e 20 73 65 l..}.else.{......$w.selection.se
12580 74 20 24 65 6c 0a 09 7d 0a 09 65 76 65 6e 74 20 67 65 6e 65 72 61 74 65 20 24 77 20 3c 3c 4c 69 t.$el..}..event.generate.$w.<<Li
125a0 73 74 62 6f 78 53 65 6c 65 63 74 3e 3e 0a 20 20 20 20 7d 0a 7d 0a 0a 23 20 74 6b 4c 69 73 74 62 stboxSelect>>.....}.}..#.tkListb
125c0 6f 78 41 75 74 6f 53 63 61 6e 20 2d 2d 0a 23 20 54 68 69 73 20 70 72 6f 63 65 64 75 72 65 20 69 oxAutoScan.--.#.This.procedure.i
125e0 73 20 69 6e 76 6f 6b 65 64 20 77 68 65 6e 20 74 68 65 20 6d 6f 75 73 65 20 6c 65 61 76 65 73 20 s.invoked.when.the.mouse.leaves.
12600 61 6e 20 65 6e 74 72 79 20 77 69 6e 64 6f 77 0a 23 20 77 69 74 68 20 62 75 74 74 6f 6e 20 31 20 an.entry.window.#.with.button.1.
12620 64 6f 77 6e 2e 20 20 49 74 20 73 63 72 6f 6c 6c 73 20 74 68 65 20 77 69 6e 64 6f 77 20 75 70 2c down...It.scrolls.the.window.up,
12640 20 64 6f 77 6e 2c 20 6c 65 66 74 2c 20 6f 72 0a 23 20 72 69 67 68 74 2c 20 64 65 70 65 6e 64 69 .down,.left,.or.#.right,.dependi
12660 6e 67 20 6f 6e 20 77 68 65 72 65 20 74 68 65 20 6d 6f 75 73 65 20 6c 65 66 74 20 74 68 65 20 77 ng.on.where.the.mouse.left.the.w
12680 69 6e 64 6f 77 2c 20 61 6e 64 20 72 65 73 63 68 65 64 75 6c 65 73 0a 23 20 69 74 73 65 6c 66 20 indow,.and.reschedules.#.itself.
126a0 61 73 20 61 6e 20 22 61 66 74 65 72 22 20 63 6f 6d 6d 61 6e 64 20 73 6f 20 74 68 61 74 20 74 68 as.an."after".command.so.that.th
126c0 65 20 77 69 6e 64 6f 77 20 63 6f 6e 74 69 6e 75 65 73 20 74 6f 20 73 63 72 6f 6c 6c 20 75 6e 74 e.window.continues.to.scroll.unt
126e0 69 6c 0a 23 20 74 68 65 20 6d 6f 75 73 65 20 6d 6f 76 65 73 20 62 61 63 6b 20 69 6e 74 6f 20 74 il.#.the.mouse.moves.back.into.t
12700 68 65 20 77 69 6e 64 6f 77 20 6f 72 20 74 68 65 20 6d 6f 75 73 65 20 62 75 74 74 6f 6e 20 69 73 he.window.or.the.mouse.button.is
12720 20 72 65 6c 65 61 73 65 64 2e 0a 23 0a 23 20 41 72 67 75 6d 65 6e 74 73 3a 0a 23 20 77 20 2d 09 .released..#.#.Arguments:.#.w.-.
12740 09 54 68 65 20 65 6e 74 72 79 20 77 69 6e 64 6f 77 2e 0a 0a 70 72 6f 63 20 74 6b 4c 69 73 74 62 .The.entry.window...proc.tkListb
12760 6f 78 41 75 74 6f 53 63 61 6e 20 7b 77 7d 20 7b 0a 20 20 20 20 67 6c 6f 62 61 6c 20 74 6b 50 72 oxAutoScan.{w}.{.....global.tkPr
12780 69 76 0a 20 20 20 20 69 66 20 7b 21 5b 77 69 6e 66 6f 20 65 78 69 73 74 73 20 24 77 5d 7d 20 72 iv.....if.{![winfo.exists.$w]}.r
127a0 65 74 75 72 6e 0a 20 20 20 20 73 65 74 20 78 20 24 74 6b 50 72 69 76 28 78 29 0a 20 20 20 20 73 eturn.....set.x.$tkPriv(x).....s
127c0 65 74 20 79 20 24 74 6b 50 72 69 76 28 79 29 0a 20 20 20 20 69 66 20 7b 24 79 20 3e 3d 20 5b 77 et.y.$tkPriv(y).....if.{$y.>=.[w
127e0 69 6e 66 6f 20 68 65 69 67 68 74 20 24 77 5d 7d 20 7b 0a 09 24 77 20 79 76 69 65 77 20 73 63 72 info.height.$w]}.{..$w.yview.scr
12800 6f 6c 6c 20 31 20 75 6e 69 74 73 0a 20 20 20 20 7d 20 65 6c 73 65 69 66 20 7b 24 79 20 3c 20 30 oll.1.units.....}.elseif.{$y.<.0
12820 7d 20 7b 0a 09 24 77 20 79 76 69 65 77 20 73 63 72 6f 6c 6c 20 2d 31 20 75 6e 69 74 73 0a 20 20 }.{..$w.yview.scroll.-1.units...
12840 20 20 7d 20 65 6c 73 65 69 66 20 7b 24 78 20 3e 3d 20 5b 77 69 6e 66 6f 20 77 69 64 74 68 20 24 ..}.elseif.{$x.>=.[winfo.width.$
12860 77 5d 7d 20 7b 0a 09 24 77 20 78 76 69 65 77 20 73 63 72 6f 6c 6c 20 32 20 75 6e 69 74 73 0a 20 w]}.{..$w.xview.scroll.2.units..
12880 20 20 20 7d 20 65 6c 73 65 69 66 20 7b 24 78 20 3c 20 30 7d 20 7b 0a 09 24 77 20 78 76 69 65 77 ...}.elseif.{$x.<.0}.{..$w.xview
128a0 20 73 63 72 6f 6c 6c 20 2d 32 20 75 6e 69 74 73 0a 20 20 20 20 7d 20 65 6c 73 65 20 7b 0a 09 72 .scroll.-2.units.....}.else.{..r
128c0 65 74 75 72 6e 0a 20 20 20 20 7d 0a 20 20 20 20 74 6b 4c 69 73 74 62 6f 78 4d 6f 74 69 6f 6e 20 eturn.....}.....tkListboxMotion.
128e0 24 77 20 5b 24 77 20 69 6e 64 65 78 20 40 24 78 2c 24 79 5d 0a 20 20 20 20 73 65 74 20 74 6b 50 $w.[$w.index.@$x,$y].....set.tkP
12900 72 69 76 28 61 66 74 65 72 49 64 29 20 5b 61 66 74 65 72 20 35 30 20 5b 6c 69 73 74 20 74 6b 4c riv(afterId).[after.50.[list.tkL
12920 69 73 74 62 6f 78 41 75 74 6f 53 63 61 6e 20 24 77 5d 5d 0a 7d 0a 0a 23 20 74 6b 4c 69 73 74 62 istboxAutoScan.$w]].}..#.tkListb
12940 6f 78 55 70 44 6f 77 6e 20 2d 2d 0a 23 0a 23 20 4d 6f 76 65 73 20 74 68 65 20 6c 6f 63 61 74 69 oxUpDown.--.#.#.Moves.the.locati
12960 6f 6e 20 63 75 72 73 6f 72 20 28 61 63 74 69 76 65 20 65 6c 65 6d 65 6e 74 29 20 75 70 20 6f 72 on.cursor.(active.element).up.or
12980 20 64 6f 77 6e 20 62 79 20 6f 6e 65 20 65 6c 65 6d 65 6e 74 2c 0a 23 20 61 6e 64 20 63 68 61 6e .down.by.one.element,.#.and.chan
129a0 67 65 73 20 74 68 65 20 73 65 6c 65 63 74 69 6f 6e 20 69 66 20 77 65 27 72 65 20 69 6e 20 62 72 ges.the.selection.if.we're.in.br
129c0 6f 77 73 65 20 6f 72 20 65 78 74 65 6e 64 65 64 20 73 65 6c 65 63 74 69 6f 6e 0a 23 20 6d 6f 64 owse.or.extended.selection.#.mod
129e0 65 2e 0a 23 0a 23 20 41 72 67 75 6d 65 6e 74 73 3a 0a 23 20 77 20 2d 09 09 54 68 65 20 6c 69 73 e..#.#.Arguments:.#.w.-..The.lis
12a00 74 62 6f 78 20 77 69 64 67 65 74 2e 0a 23 20 61 6d 6f 75 6e 74 20 2d 09 2b 31 20 74 6f 20 6d 6f tbox.widget..#.amount.-.+1.to.mo
12a20 76 65 20 64 6f 77 6e 20 6f 6e 65 20 69 74 65 6d 2c 20 2d 31 20 74 6f 20 6d 6f 76 65 20 62 61 63 ve.down.one.item,.-1.to.move.bac
12a40 6b 20 6f 6e 65 20 69 74 65 6d 2e 0a 0a 70 72 6f 63 20 74 6b 4c 69 73 74 62 6f 78 55 70 44 6f 77 k.one.item...proc.tkListboxUpDow
12a60 6e 20 7b 77 20 61 6d 6f 75 6e 74 7d 20 7b 0a 20 20 20 20 67 6c 6f 62 61 6c 20 74 6b 50 72 69 76 n.{w.amount}.{.....global.tkPriv
12a80 0a 20 20 20 20 24 77 20 61 63 74 69 76 61 74 65 20 5b 65 78 70 72 20 7b 5b 24 77 20 69 6e 64 65 .....$w.activate.[expr.{[$w.inde
12aa0 78 20 61 63 74 69 76 65 5d 20 2b 20 24 61 6d 6f 75 6e 74 7d 5d 0a 20 20 20 20 24 77 20 73 65 65 x.active].+.$amount}].....$w.see
12ac0 20 61 63 74 69 76 65 0a 20 20 20 20 73 77 69 74 63 68 20 5b 24 77 20 63 67 65 74 20 2d 73 65 6c .active.....switch.[$w.cget.-sel
12ae0 65 63 74 6d 6f 64 65 5d 20 7b 0a 09 62 72 6f 77 73 65 20 7b 0a 09 20 20 20 20 24 77 20 73 65 6c ectmode].{..browse.{......$w.sel
12b00 65 63 74 69 6f 6e 20 63 6c 65 61 72 20 30 20 65 6e 64 0a 09 20 20 20 20 24 77 20 73 65 6c 65 63 ection.clear.0.end......$w.selec
12b20 74 69 6f 6e 20 73 65 74 20 61 63 74 69 76 65 0a 09 20 20 20 20 65 76 65 6e 74 20 67 65 6e 65 72 tion.set.active......event.gener
12b40 61 74 65 20 24 77 20 3c 3c 4c 69 73 74 62 6f 78 53 65 6c 65 63 74 3e 3e 0a 09 7d 0a 09 65 78 74 ate.$w.<<ListboxSelect>>..}..ext
12b60 65 6e 64 65 64 20 7b 0a 09 20 20 20 20 24 77 20 73 65 6c 65 63 74 69 6f 6e 20 63 6c 65 61 72 20 ended.{......$w.selection.clear.
12b80 30 20 65 6e 64 0a 09 20 20 20 20 24 77 20 73 65 6c 65 63 74 69 6f 6e 20 73 65 74 20 61 63 74 69 0.end......$w.selection.set.acti
12ba0 76 65 0a 09 20 20 20 20 24 77 20 73 65 6c 65 63 74 69 6f 6e 20 61 6e 63 68 6f 72 20 61 63 74 69 ve......$w.selection.anchor.acti
12bc0 76 65 0a 09 20 20 20 20 73 65 74 20 74 6b 50 72 69 76 28 6c 69 73 74 62 6f 78 50 72 65 76 29 20 ve......set.tkPriv(listboxPrev).
12be0 5b 24 77 20 69 6e 64 65 78 20 61 63 74 69 76 65 5d 0a 09 20 20 20 20 73 65 74 20 74 6b 50 72 69 [$w.index.active]......set.tkPri
12c00 76 28 6c 69 73 74 62 6f 78 53 65 6c 65 63 74 69 6f 6e 29 20 7b 7d 0a 09 20 20 20 20 65 76 65 6e v(listboxSelection).{}......even
12c20 74 20 67 65 6e 65 72 61 74 65 20 24 77 20 3c 3c 4c 69 73 74 62 6f 78 53 65 6c 65 63 74 3e 3e 0a t.generate.$w.<<ListboxSelect>>.
12c40 09 7d 0a 20 20 20 20 7d 0a 7d 0a 0a 23 20 74 6b 4c 69 73 74 62 6f 78 45 78 74 65 6e 64 55 70 44 .}.....}.}..#.tkListboxExtendUpD
12c60 6f 77 6e 20 2d 2d 0a 23 0a 23 20 44 6f 65 73 20 6e 6f 74 68 69 6e 67 20 75 6e 6c 65 73 73 20 77 own.--.#.#.Does.nothing.unless.w
12c80 65 27 72 65 20 69 6e 20 65 78 74 65 6e 64 65 64 20 73 65 6c 65 63 74 69 6f 6e 20 6d 6f 64 65 3b e're.in.extended.selection.mode;
12ca0 20 20 69 6e 20 74 68 69 73 0a 23 20 63 61 73 65 20 69 74 20 6d 6f 76 65 73 20 74 68 65 20 6c 6f ..in.this.#.case.it.moves.the.lo
12cc0 63 61 74 69 6f 6e 20 63 75 72 73 6f 72 20 28 61 63 74 69 76 65 20 65 6c 65 6d 65 6e 74 29 20 75 cation.cursor.(active.element).u
12ce0 70 20 6f 72 20 64 6f 77 6e 20 62 79 0a 23 20 6f 6e 65 20 65 6c 65 6d 65 6e 74 2c 20 61 6e 64 20 p.or.down.by.#.one.element,.and.
12d00 65 78 74 65 6e 64 73 20 74 68 65 20 73 65 6c 65 63 74 69 6f 6e 20 74 6f 20 74 68 61 74 20 70 6f extends.the.selection.to.that.po
12d20 69 6e 74 2e 0a 23 0a 23 20 41 72 67 75 6d 65 6e 74 73 3a 0a 23 20 77 20 2d 09 09 54 68 65 20 6c int..#.#.Arguments:.#.w.-..The.l
12d40 69 73 74 62 6f 78 20 77 69 64 67 65 74 2e 0a 23 20 61 6d 6f 75 6e 74 20 2d 09 2b 31 20 74 6f 20 istbox.widget..#.amount.-.+1.to.
12d60 6d 6f 76 65 20 64 6f 77 6e 20 6f 6e 65 20 69 74 65 6d 2c 20 2d 31 20 74 6f 20 6d 6f 76 65 20 62 move.down.one.item,.-1.to.move.b
12d80 61 63 6b 20 6f 6e 65 20 69 74 65 6d 2e 0a 0a 70 72 6f 63 20 74 6b 4c 69 73 74 62 6f 78 45 78 74 ack.one.item...proc.tkListboxExt
12da0 65 6e 64 55 70 44 6f 77 6e 20 7b 77 20 61 6d 6f 75 6e 74 7d 20 7b 0a 20 20 20 20 69 66 20 7b 5b endUpDown.{w.amount}.{.....if.{[
12dc0 73 74 72 69 6e 67 20 63 6f 6d 70 61 72 65 20 5b 24 77 20 63 67 65 74 20 2d 73 65 6c 65 63 74 6d string.compare.[$w.cget.-selectm
12de0 6f 64 65 5d 20 22 65 78 74 65 6e 64 65 64 22 5d 7d 20 7b 0a 09 72 65 74 75 72 6e 0a 20 20 20 20 ode]."extended"]}.{..return.....
12e00 7d 0a 20 20 20 20 73 65 74 20 61 63 74 69 76 65 20 5b 24 77 20 69 6e 64 65 78 20 61 63 74 69 76 }.....set.active.[$w.index.activ
12e20 65 5d 0a 20 20 20 20 69 66 20 7b 21 5b 69 6e 66 6f 20 65 78 69 73 74 73 20 74 6b 50 72 69 76 28 e].....if.{![info.exists.tkPriv(
12e40 6c 69 73 74 62 6f 78 53 65 6c 65 63 74 69 6f 6e 29 5d 7d 20 7b 0a 09 67 6c 6f 62 61 6c 20 74 6b listboxSelection)]}.{..global.tk
12e60 50 72 69 76 0a 09 24 77 20 73 65 6c 65 63 74 69 6f 6e 20 73 65 74 20 24 61 63 74 69 76 65 0a 09 Priv..$w.selection.set.$active..
12e80 73 65 74 20 74 6b 50 72 69 76 28 6c 69 73 74 62 6f 78 53 65 6c 65 63 74 69 6f 6e 29 20 5b 24 77 set.tkPriv(listboxSelection).[$w
12ea0 20 63 75 72 73 65 6c 65 63 74 69 6f 6e 5d 0a 20 20 20 20 7d 0a 20 20 20 20 24 77 20 61 63 74 69 .curselection].....}.....$w.acti
12ec0 76 61 74 65 20 5b 65 78 70 72 20 7b 24 61 63 74 69 76 65 20 2b 20 24 61 6d 6f 75 6e 74 7d 5d 0a vate.[expr.{$active.+.$amount}].
12ee0 20 20 20 20 24 77 20 73 65 65 20 61 63 74 69 76 65 0a 20 20 20 20 74 6b 4c 69 73 74 62 6f 78 4d ....$w.see.active.....tkListboxM
12f00 6f 74 69 6f 6e 20 24 77 20 5b 24 77 20 69 6e 64 65 78 20 61 63 74 69 76 65 5d 0a 7d 0a 0a 23 20 otion.$w.[$w.index.active].}..#.
12f20 74 6b 4c 69 73 74 62 6f 78 44 61 74 61 45 78 74 65 6e 64 0a 23 0a 23 20 54 68 69 73 20 70 72 6f tkListboxDataExtend.#.#.This.pro
12f40 63 65 64 75 72 65 20 69 73 20 63 61 6c 6c 65 64 20 66 6f 72 20 6b 65 79 2d 70 72 65 73 73 65 73 cedure.is.called.for.key-presses
12f60 20 73 75 63 68 20 61 73 20 53 68 69 66 74 2d 4b 45 6e 64 44 61 74 61 2e 0a 23 20 49 66 20 74 68 .such.as.Shift-KEndData..#.If.th
12f80 65 20 73 65 6c 65 63 74 69 6f 6e 20 6d 6f 64 65 20 69 73 6e 27 74 20 6d 75 6c 74 69 70 6c 65 20 e.selection.mode.isn't.multiple.
12fa0 6f 72 20 65 78 74 65 6e 64 20 74 68 65 6e 20 69 74 20 64 6f 65 73 20 6e 6f 74 68 69 6e 67 2e 0a or.extend.then.it.does.nothing..
12fc0 23 20 4f 74 68 65 72 77 69 73 65 20 69 74 20 6d 6f 76 65 73 20 74 68 65 20 61 63 74 69 76 65 20 #.Otherwise.it.moves.the.active.
12fe0 65 6c 65 6d 65 6e 74 20 74 6f 20 65 6c 20 61 6e 64 2c 20 69 66 20 77 65 27 72 65 20 69 6e 0a 23 element.to.el.and,.if.we're.in.#
13000 20 65 78 74 65 6e 64 65 64 20 6d 6f 64 65 2c 20 65 78 74 65 6e 64 73 20 74 68 65 20 73 65 6c 65 .extended.mode,.extends.the.sele
13020 63 74 69 6f 6e 20 74 6f 20 74 68 61 74 20 70 6f 69 6e 74 2e 0a 23 0a 23 20 41 72 67 75 6d 65 6e ction.to.that.point..#.#.Argumen
13040 74 73 3a 0a 23 20 77 20 2d 09 09 54 68 65 20 6c 69 73 74 62 6f 78 20 77 69 64 67 65 74 2e 0a 23 ts:.#.w.-..The.listbox.widget..#
13060 20 65 6c 20 2d 09 09 41 6e 20 69 6e 74 65 67 65 72 20 65 6c 65 6d 65 6e 74 20 6e 75 6d 62 65 72 .el.-..An.integer.element.number
13080 2e 0a 0a 70 72 6f 63 20 74 6b 4c 69 73 74 62 6f 78 44 61 74 61 45 78 74 65 6e 64 20 7b 77 20 65 ...proc.tkListboxDataExtend.{w.e
130a0 6c 7d 20 7b 0a 20 20 20 20 73 65 74 20 6d 6f 64 65 20 5b 24 77 20 63 67 65 74 20 2d 73 65 6c 65 l}.{.....set.mode.[$w.cget.-sele
130c0 63 74 6d 6f 64 65 5d 0a 20 20 20 20 69 66 20 7b 5b 73 74 72 69 6e 67 20 65 71 75 61 6c 20 24 6d ctmode].....if.{[string.equal.$m
130e0 6f 64 65 20 22 65 78 74 65 6e 64 65 64 22 5d 7d 20 7b 0a 09 24 77 20 61 63 74 69 76 61 74 65 20 ode."extended"]}.{..$w.activate.
13100 24 65 6c 0a 09 24 77 20 73 65 65 20 24 65 6c 0a 20 20 20 20 20 20 20 20 69 66 20 7b 5b 24 77 20 $el..$w.see.$el.........if.{[$w.
13120 73 65 6c 65 63 74 69 6f 6e 20 69 6e 63 6c 75 64 65 73 20 61 6e 63 68 6f 72 5d 7d 20 7b 0a 09 20 selection.includes.anchor]}.{...
13140 20 20 20 74 6b 4c 69 73 74 62 6f 78 4d 6f 74 69 6f 6e 20 24 77 20 24 65 6c 0a 09 7d 0a 20 20 20 ...tkListboxMotion.$w.$el..}....
13160 20 7d 20 65 6c 73 65 69 66 20 7b 5b 73 74 72 69 6e 67 20 65 71 75 61 6c 20 24 6d 6f 64 65 20 22 .}.elseif.{[string.equal.$mode."
13180 6d 75 6c 74 69 70 6c 65 22 5d 7d 20 7b 0a 09 24 77 20 61 63 74 69 76 61 74 65 20 24 65 6c 0a 09 multiple"]}.{..$w.activate.$el..
131a0 24 77 20 73 65 65 20 24 65 6c 0a 20 20 20 20 7d 0a 7d 0a 0a 23 20 74 6b 4c 69 73 74 62 6f 78 43 $w.see.$el.....}.}..#.tkListboxC
131c0 61 6e 63 65 6c 0a 23 0a 23 20 54 68 69 73 20 70 72 6f 63 65 64 75 72 65 20 69 73 20 69 6e 76 6f ancel.#.#.This.procedure.is.invo
131e0 6b 65 64 20 74 6f 20 63 61 6e 63 65 6c 20 61 6e 20 65 78 74 65 6e 64 65 64 20 73 65 6c 65 63 74 ked.to.cancel.an.extended.select
13200 69 6f 6e 20 69 6e 0a 23 20 70 72 6f 67 72 65 73 73 2e 20 20 49 66 20 74 68 65 72 65 20 69 73 20 ion.in.#.progress...If.there.is.
13220 61 6e 20 65 78 74 65 6e 64 65 64 20 73 65 6c 65 63 74 69 6f 6e 20 69 6e 20 70 72 6f 67 72 65 73 an.extended.selection.in.progres
13240 73 2c 20 69 74 0a 23 20 72 65 73 74 6f 72 65 73 20 61 6c 6c 20 6f 66 20 74 68 65 20 69 74 65 6d s,.it.#.restores.all.of.the.item
13260 73 20 62 65 74 77 65 65 6e 20 74 68 65 20 61 63 74 69 76 65 20 6f 6e 65 20 61 6e 64 20 74 68 65 s.between.the.active.one.and.the
13280 20 61 6e 63 68 6f 72 0a 23 20 74 6f 20 74 68 65 69 72 20 70 72 65 76 69 6f 75 73 20 73 65 6c 65 .anchor.#.to.their.previous.sele
132a0 63 74 69 6f 6e 20 73 74 61 74 65 2e 0a 23 0a 23 20 41 72 67 75 6d 65 6e 74 73 3a 0a 23 20 77 20 ction.state..#.#.Arguments:.#.w.
132c0 2d 09 09 54 68 65 20 6c 69 73 74 62 6f 78 20 77 69 64 67 65 74 2e 0a 0a 70 72 6f 63 20 74 6b 4c -..The.listbox.widget...proc.tkL
132e0 69 73 74 62 6f 78 43 61 6e 63 65 6c 20 77 20 7b 0a 20 20 20 20 67 6c 6f 62 61 6c 20 74 6b 50 72 istboxCancel.w.{.....global.tkPr
13300 69 76 0a 20 20 20 20 69 66 20 7b 5b 73 74 72 69 6e 67 20 63 6f 6d 70 61 72 65 20 5b 24 77 20 63 iv.....if.{[string.compare.[$w.c
13320 67 65 74 20 2d 73 65 6c 65 63 74 6d 6f 64 65 5d 20 22 65 78 74 65 6e 64 65 64 22 5d 7d 20 7b 0a get.-selectmode]."extended"]}.{.
13340 09 72 65 74 75 72 6e 0a 20 20 20 20 7d 0a 20 20 20 20 73 65 74 20 66 69 72 73 74 20 5b 24 77 20 .return.....}.....set.first.[$w.
13360 69 6e 64 65 78 20 61 6e 63 68 6f 72 5d 0a 20 20 20 20 73 65 74 20 6c 61 73 74 20 24 74 6b 50 72 index.anchor].....set.last.$tkPr
13380 69 76 28 6c 69 73 74 62 6f 78 50 72 65 76 29 0a 20 20 20 20 69 66 20 7b 24 66 69 72 73 74 20 3e iv(listboxPrev).....if.{$first.>
133a0 20 24 6c 61 73 74 7d 20 7b 0a 09 73 65 74 20 74 6d 70 20 24 66 69 72 73 74 0a 09 73 65 74 20 66 .$last}.{..set.tmp.$first..set.f
133c0 69 72 73 74 20 24 6c 61 73 74 0a 09 73 65 74 20 6c 61 73 74 20 24 74 6d 70 0a 20 20 20 20 7d 0a irst.$last..set.last.$tmp.....}.
133e0 20 20 20 20 24 77 20 73 65 6c 65 63 74 69 6f 6e 20 63 6c 65 61 72 20 24 66 69 72 73 74 20 24 6c ....$w.selection.clear.$first.$l
13400 61 73 74 0a 20 20 20 20 77 68 69 6c 65 20 7b 24 66 69 72 73 74 20 3c 3d 20 24 6c 61 73 74 7d 20 ast.....while.{$first.<=.$last}.
13420 7b 0a 09 69 66 20 7b 5b 6c 73 65 61 72 63 68 20 24 74 6b 50 72 69 76 28 6c 69 73 74 62 6f 78 53 {..if.{[lsearch.$tkPriv(listboxS
13440 65 6c 65 63 74 69 6f 6e 29 20 24 66 69 72 73 74 5d 20 3e 3d 20 30 7d 20 7b 0a 09 20 20 20 20 24 election).$first].>=.0}.{......$
13460 77 20 73 65 6c 65 63 74 69 6f 6e 20 73 65 74 20 24 66 69 72 73 74 0a 09 7d 0a 09 69 6e 63 72 20 w.selection.set.$first..}..incr.
13480 66 69 72 73 74 0a 20 20 20 20 7d 0a 20 20 20 20 65 76 65 6e 74 20 67 65 6e 65 72 61 74 65 20 24 first.....}.....event.generate.$
134a0 77 20 3c 3c 4c 69 73 74 62 6f 78 53 65 6c 65 63 74 3e 3e 0a 7d 0a 0a 23 20 74 6b 4c 69 73 74 62 w.<<ListboxSelect>>.}..#.tkListb
134c0 6f 78 53 65 6c 65 63 74 41 6c 6c 0a 23 0a 23 20 54 68 69 73 20 70 72 6f 63 65 64 75 72 65 20 69 oxSelectAll.#.#.This.procedure.i
134e0 73 20 69 6e 76 6f 6b 65 64 20 74 6f 20 68 61 6e 64 6c 65 20 74 68 65 20 22 73 65 6c 65 63 74 20 s.invoked.to.handle.the."select.
13500 61 6c 6c 22 20 6f 70 65 72 61 74 69 6f 6e 2e 0a 23 20 46 6f 72 20 73 69 6e 67 6c 65 20 61 6e 64 all".operation..#.For.single.and
13520 20 62 72 6f 77 73 65 20 6d 6f 64 65 2c 20 69 74 20 6a 75 73 74 20 73 65 6c 65 63 74 73 20 74 68 .browse.mode,.it.just.selects.th
13540 65 20 61 63 74 69 76 65 20 65 6c 65 6d 65 6e 74 2e 0a 23 20 4f 74 68 65 72 77 69 73 65 20 69 74 e.active.element..#.Otherwise.it
13560 20 73 65 6c 65 63 74 73 20 65 76 65 72 79 74 68 69 6e 67 20 69 6e 20 74 68 65 20 77 69 64 67 65 .selects.everything.in.the.widge
13580 74 2e 0a 23 0a 23 20 41 72 67 75 6d 65 6e 74 73 3a 0a 23 20 77 20 2d 09 09 54 68 65 20 6c 69 73 t..#.#.Arguments:.#.w.-..The.lis
135a0 74 62 6f 78 20 77 69 64 67 65 74 2e 0a 0a 70 72 6f 63 20 74 6b 4c 69 73 74 62 6f 78 53 65 6c 65 tbox.widget...proc.tkListboxSele
135c0 63 74 41 6c 6c 20 77 20 7b 0a 20 20 20 20 73 65 74 20 6d 6f 64 65 20 5b 24 77 20 63 67 65 74 20 ctAll.w.{.....set.mode.[$w.cget.
135e0 2d 73 65 6c 65 63 74 6d 6f 64 65 5d 0a 20 20 20 20 69 66 20 7b 5b 73 74 72 69 6e 67 20 65 71 75 -selectmode].....if.{[string.equ
13600 61 6c 20 24 6d 6f 64 65 20 22 73 69 6e 67 6c 65 22 5d 20 7c 7c 20 5b 73 74 72 69 6e 67 20 65 71 al.$mode."single"].||.[string.eq
13620 75 61 6c 20 24 6d 6f 64 65 20 22 62 72 6f 77 73 65 22 5d 7d 20 7b 0a 09 24 77 20 73 65 6c 65 63 ual.$mode."browse"]}.{..$w.selec
13640 74 69 6f 6e 20 63 6c 65 61 72 20 30 20 65 6e 64 0a 09 24 77 20 73 65 6c 65 63 74 69 6f 6e 20 73 tion.clear.0.end..$w.selection.s
13660 65 74 20 61 63 74 69 76 65 0a 20 20 20 20 7d 20 65 6c 73 65 20 7b 0a 09 24 77 20 73 65 6c 65 63 et.active.....}.else.{..$w.selec
13680 74 69 6f 6e 20 73 65 74 20 30 20 65 6e 64 0a 20 20 20 20 7d 0a 20 20 20 20 65 76 65 6e 74 20 67 tion.set.0.end.....}.....event.g
136a0 65 6e 65 72 61 74 65 20 24 77 20 3c 3c 4c 69 73 74 62 6f 78 53 65 6c 65 63 74 3e 3e 0a 7d 0a 00 enerate.$w.<<ListboxSelect>>.}..
136c0 00 8c 1e 23 20 6d 65 6e 75 2e 74 63 6c 20 2d 2d 0a 23 0a 23 20 54 68 69 73 20 66 69 6c 65 20 64 ...#.menu.tcl.--.#.#.This.file.d
136e0 65 66 69 6e 65 73 20 74 68 65 20 64 65 66 61 75 6c 74 20 62 69 6e 64 69 6e 67 73 20 66 6f 72 20 efines.the.default.bindings.for.
13700 54 6b 20 6d 65 6e 75 73 20 61 6e 64 20 6d 65 6e 75 62 75 74 74 6f 6e 73 2e 0a 23 20 49 74 20 61 Tk.menus.and.menubuttons..#.It.a
13720 6c 73 6f 20 69 6d 70 6c 65 6d 65 6e 74 73 20 6b 65 79 62 6f 61 72 64 20 74 72 61 76 65 72 73 61 lso.implements.keyboard.traversa
13740 6c 20 6f 66 20 6d 65 6e 75 73 20 61 6e 64 20 69 6d 70 6c 65 6d 65 6e 74 73 20 61 20 66 65 77 0a l.of.menus.and.implements.a.few.
13760 23 20 6f 74 68 65 72 20 75 74 69 6c 69 74 79 20 70 72 6f 63 65 64 75 72 65 73 20 72 65 6c 61 74 #.other.utility.procedures.relat
13780 65 64 20 74 6f 20 6d 65 6e 75 73 2e 0a 23 0a 23 20 52 43 53 3a 20 40 28 23 29 20 24 49 64 3a 20 ed.to.menus..#.#.RCS:.@(#).$Id:.
137a0 6d 65 6e 75 2e 74 63 6c 2c 76 20 31 2e 38 20 31 39 39 39 2f 30 39 2f 30 32 20 31 37 3a 30 32 3a menu.tcl,v.1.8.1999/09/02.17:02:
137c0 35 32 20 68 6f 62 62 73 20 45 78 70 20 24 0a 23 0a 23 20 43 6f 70 79 72 69 67 68 74 20 28 63 29 52.hobbs.Exp.$.#.#.Copyright.(c)
137e0 20 31 39 39 32 2d 31 39 39 34 20 54 68 65 20 52 65 67 65 6e 74 73 20 6f 66 20 74 68 65 20 55 6e .1992-1994.The.Regents.of.the.Un
13800 69 76 65 72 73 69 74 79 20 6f 66 20 43 61 6c 69 66 6f 72 6e 69 61 2e 0a 23 20 43 6f 70 79 72 69 iversity.of.California..#.Copyri
13820 67 68 74 20 28 63 29 20 31 39 39 34 2d 31 39 39 37 20 53 75 6e 20 4d 69 63 72 6f 73 79 73 74 65 ght.(c).1994-1997.Sun.Microsyste
13840 6d 73 2c 20 49 6e 63 2e 0a 23 20 43 6f 70 79 72 69 67 68 74 20 28 63 29 20 31 39 39 38 2d 31 39 ms,.Inc..#.Copyright.(c).1998-19
13860 39 39 20 62 79 20 53 63 72 69 70 74 69 63 73 20 43 6f 72 70 6f 72 61 74 69 6f 6e 2e 0a 23 0a 23 99.by.Scriptics.Corporation..#.#
13880 20 53 65 65 20 74 68 65 20 66 69 6c 65 20 22 6c 69 63 65 6e 73 65 2e 74 65 72 6d 73 22 20 66 6f .See.the.file."license.terms".fo
138a0 72 20 69 6e 66 6f 72 6d 61 74 69 6f 6e 20 6f 6e 20 75 73 61 67 65 20 61 6e 64 20 72 65 64 69 73 r.information.on.usage.and.redis
138c0 74 72 69 62 75 74 69 6f 6e 0a 23 20 6f 66 20 74 68 69 73 20 66 69 6c 65 2c 20 61 6e 64 20 66 6f tribution.#.of.this.file,.and.fo
138e0 72 20 61 20 44 49 53 43 4c 41 49 4d 45 52 20 4f 46 20 41 4c 4c 20 57 41 52 52 41 4e 54 49 45 53 r.a.DISCLAIMER.OF.ALL.WARRANTIES
13900 2e 0a 23 0a 0a 23 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d ..#..#--------------------------
13920 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d --------------------------------
13940 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 0a 23 20 45 6c 65 6d 65 6e 74 73 20 6f 66 20 74 6b ---------------.#.Elements.of.tk
13960 50 72 69 76 20 74 68 61 74 20 61 72 65 20 75 73 65 64 20 69 6e 20 74 68 69 73 20 66 69 6c 65 3a Priv.that.are.used.in.this.file:
13980 0a 23 0a 23 20 63 75 72 73 6f 72 20 2d 09 09 53 61 76 65 73 20 74 68 65 20 2d 63 75 72 73 6f 72 .#.#.cursor.-..Saves.the.-cursor
139a0 20 6f 70 74 69 6f 6e 20 66 6f 72 20 74 68 65 20 70 6f 73 74 65 64 20 6d 65 6e 75 62 75 74 74 6f .option.for.the.posted.menubutto
139c0 6e 2e 0a 23 20 66 6f 63 75 73 20 2d 09 09 53 61 76 65 73 20 74 68 65 20 66 6f 63 75 73 20 64 75 n..#.focus.-..Saves.the.focus.du
139e0 72 69 6e 67 20 61 20 6d 65 6e 75 20 73 65 6c 65 63 74 69 6f 6e 20 6f 70 65 72 61 74 69 6f 6e 2e ring.a.menu.selection.operation.
13a00 0a 23 09 09 09 46 6f 63 75 73 20 67 65 74 73 20 72 65 73 74 6f 72 65 64 20 68 65 72 65 20 77 68 .#...Focus.gets.restored.here.wh
13a20 65 6e 20 74 68 65 20 6d 65 6e 75 20 69 73 20 75 6e 70 6f 73 74 65 64 2e 0a 23 20 67 72 61 62 47 en.the.menu.is.unposted..#.grabG
13a40 6c 6f 62 61 6c 20 2d 09 09 55 73 65 64 20 69 6e 20 63 6f 6e 6a 75 6e 63 74 69 6f 6e 20 77 69 74 lobal.-..Used.in.conjunction.wit
13a60 68 20 74 6b 50 72 69 76 28 6f 6c 64 47 72 61 62 29 3a 20 20 69 66 0a 23 09 09 09 74 6b 50 72 69 h.tkPriv(oldGrab):..if.#...tkPri
13a80 76 28 6f 6c 64 47 72 61 62 29 20 69 73 20 6e 6f 6e 2d 65 6d 70 74 79 2c 20 74 68 65 6e 20 74 6b v(oldGrab).is.non-empty,.then.tk
13aa0 50 72 69 76 28 67 72 61 62 47 6c 6f 62 61 6c 29 0a 23 09 09 09 63 6f 6e 74 61 69 6e 73 20 65 69 Priv(grabGlobal).#...contains.ei
13ac0 74 68 65 72 20 61 6e 20 65 6d 70 74 79 20 73 74 72 69 6e 67 20 6f 72 20 22 2d 67 6c 6f 62 61 6c ther.an.empty.string.or."-global
13ae0 22 20 74 6f 0a 23 09 09 09 69 6e 64 69 63 61 74 65 20 77 68 65 74 68 65 72 20 74 68 65 20 6f 6c ".to.#...indicate.whether.the.ol
13b00 64 20 67 72 61 62 20 77 61 73 20 61 20 6c 6f 63 61 6c 20 6f 6e 65 20 6f 72 0a 23 09 09 09 61 20 d.grab.was.a.local.one.or.#...a.
13b20 67 6c 6f 62 61 6c 20 6f 6e 65 2e 0a 23 20 69 6e 4d 65 6e 75 62 75 74 74 6f 6e 20 2d 09 54 68 65 global.one..#.inMenubutton.-.The
13b40 20 6e 61 6d 65 20 6f 66 20 74 68 65 20 6d 65 6e 75 62 75 74 74 6f 6e 20 77 69 64 67 65 74 20 63 .name.of.the.menubutton.widget.c
13b60 6f 6e 74 61 69 6e 69 6e 67 0a 23 09 09 09 74 68 65 20 6d 6f 75 73 65 2c 20 6f 72 20 61 6e 20 65 ontaining.#...the.mouse,.or.an.e
13b80 6d 70 74 79 20 73 74 72 69 6e 67 20 69 66 20 74 68 65 20 6d 6f 75 73 65 20 69 73 0a 23 09 09 09 mpty.string.if.the.mouse.is.#...
13ba0 6e 6f 74 20 6f 76 65 72 20 61 6e 79 20 6d 65 6e 75 62 75 74 74 6f 6e 2e 0a 23 20 6d 65 6e 75 42 not.over.any.menubutton..#.menuB
13bc0 61 72 20 2d 09 09 54 68 65 20 6e 61 6d 65 20 6f 66 20 74 68 65 20 6d 65 6e 75 62 61 72 20 74 68 ar.-..The.name.of.the.menubar.th
13be0 61 74 20 69 73 20 74 68 65 20 72 6f 6f 74 0a 23 09 09 09 6f 66 20 74 68 65 20 63 61 73 63 61 64 at.is.the.root.#...of.the.cascad
13c00 65 20 68 69 65 72 61 72 63 68 79 20 77 68 69 63 68 20 69 73 20 63 75 72 72 65 6e 74 6c 79 0a 23 e.hierarchy.which.is.currently.#
13c20 09 09 09 70 6f 73 74 65 64 2e 20 54 68 69 73 20 69 73 20 6e 75 6c 6c 20 77 68 65 6e 20 74 68 65 ...posted..This.is.null.when.the
13c40 72 65 20 69 73 20 6e 6f 20 6d 65 6e 75 20 63 75 72 72 65 6e 74 6c 79 0a 23 09 09 09 62 65 69 6e re.is.no.menu.currently.#...bein
13c60 67 20 70 75 6c 6c 65 64 20 64 6f 77 6e 20 66 72 6f 6d 20 61 20 6d 65 6e 75 20 62 61 72 2e 0a 23 g.pulled.down.from.a.menu.bar..#
13c80 20 6f 6c 64 47 72 61 62 20 2d 09 09 57 69 6e 64 6f 77 20 74 68 61 74 20 68 61 64 20 74 68 65 20 .oldGrab.-..Window.that.had.the.
13ca0 67 72 61 62 20 62 65 66 6f 72 65 20 61 20 6d 65 6e 75 20 77 61 73 20 70 6f 73 74 65 64 2e 0a 23 grab.before.a.menu.was.posted..#
13cc0 09 09 09 55 73 65 64 20 74 6f 20 72 65 73 74 6f 72 65 20 74 68 65 20 67 72 61 62 20 73 74 61 74 ...Used.to.restore.the.grab.stat
13ce0 65 20 61 66 74 65 72 20 74 68 65 20 6d 65 6e 75 0a 23 09 09 09 69 73 20 75 6e 70 6f 73 74 65 64 e.after.the.menu.#...is.unposted
13d00 2e 20 20 45 6d 70 74 79 20 73 74 72 69 6e 67 20 6d 65 61 6e 73 20 74 68 65 72 65 20 77 61 73 20 ...Empty.string.means.there.was.
13d20 6e 6f 0a 23 09 09 09 67 72 61 62 20 70 72 65 76 69 6f 75 73 6c 79 20 73 65 74 2e 0a 23 20 70 6f no.#...grab.previously.set..#.po
13d40 70 75 70 20 2d 09 09 49 66 20 61 20 6d 65 6e 75 20 68 61 73 20 62 65 65 6e 20 70 6f 70 70 65 64 pup.-..If.a.menu.has.been.popped
13d60 20 75 70 20 76 69 61 20 74 6b 5f 70 6f 70 75 70 2c 20 74 68 69 73 0a 23 09 09 09 67 69 76 65 73 .up.via.tk_popup,.this.#...gives
13d80 20 74 68 65 20 6e 61 6d 65 20 6f 66 20 74 68 65 20 6d 65 6e 75 2e 20 20 4f 74 68 65 72 77 69 73 .the.name.of.the.menu...Otherwis
13da0 65 20 74 68 69 73 0a 23 09 09 09 76 61 6c 75 65 20 69 73 20 65 6d 70 74 79 2e 0a 23 20 70 6f 73 e.this.#...value.is.empty..#.pos
13dc0 74 65 64 4d 62 20 2d 09 09 4e 61 6d 65 20 6f 66 20 74 68 65 20 6d 65 6e 75 62 75 74 74 6f 6e 20 tedMb.-..Name.of.the.menubutton.
13de0 77 68 6f 73 65 20 6d 65 6e 75 20 69 73 20 63 75 72 72 65 6e 74 6c 79 0a 23 09 09 09 70 6f 73 74 whose.menu.is.currently.#...post
13e00 65 64 2c 20 6f 72 20 61 6e 20 65 6d 70 74 79 20 73 74 72 69 6e 67 20 69 66 20 6e 6f 74 68 69 6e ed,.or.an.empty.string.if.nothin
13e20 67 20 69 73 20 70 6f 73 74 65 64 0a 23 09 09 09 41 20 67 72 61 62 20 69 73 20 73 65 74 20 6f 6e g.is.posted.#...A.grab.is.set.on
13e40 20 74 68 69 73 20 77 69 64 67 65 74 2e 0a 23 20 72 65 6c 69 65 66 20 2d 09 09 55 73 65 64 20 74 .this.widget..#.relief.-..Used.t
13e60 6f 20 73 61 76 65 20 74 68 65 20 6f 72 69 67 69 6e 61 6c 20 72 65 6c 69 65 66 20 6f 66 20 74 68 o.save.the.original.relief.of.th
13e80 65 20 63 75 72 72 65 6e 74 0a 23 09 09 09 6d 65 6e 75 62 75 74 74 6f 6e 2e 0a 23 20 77 69 6e 64 e.current.#...menubutton..#.wind
13ea0 6f 77 20 2d 09 09 57 68 65 6e 20 74 68 65 20 6d 6f 75 73 65 20 69 73 20 6f 76 65 72 20 61 20 6d ow.-..When.the.mouse.is.over.a.m
13ec0 65 6e 75 2c 20 74 68 69 73 20 68 6f 6c 64 73 20 74 68 65 0a 23 09 09 09 6e 61 6d 65 20 6f 66 20 enu,.this.holds.the.#...name.of.
13ee0 74 68 65 20 6d 65 6e 75 3b 20 20 69 74 27 73 20 63 6c 65 61 72 65 64 20 77 68 65 6e 20 74 68 65 the.menu;..it's.cleared.when.the
13f00 20 6d 6f 75 73 65 0a 23 09 09 09 6c 65 61 76 65 73 20 74 68 65 20 6d 65 6e 75 2e 0a 23 20 74 65 .mouse.#...leaves.the.menu..#.te
13f20 61 72 6f 66 66 20 2d 09 09 57 68 65 74 68 65 72 20 74 68 65 20 6c 61 73 74 20 6d 65 6e 75 20 70 aroff.-..Whether.the.last.menu.p
13f40 6f 73 74 65 64 20 77 61 73 20 61 20 74 65 61 72 6f 66 66 20 6f 72 20 6e 6f 74 2e 0a 23 09 09 09 osted.was.a.tearoff.or.not..#...
13f60 54 68 69 73 20 69 73 20 74 72 75 65 20 61 6c 77 61 79 73 20 66 6f 72 20 75 6e 69 78 2c 20 66 6f This.is.true.always.for.unix,.fo
13f80 72 20 74 65 61 72 6f 66 66 73 20 66 6f 72 20 4d 61 63 0a 23 09 09 09 61 6e 64 20 57 69 6e 64 6f r.tearoffs.for.Mac.#...and.Windo
13fa0 77 73 2e 0a 23 20 61 63 74 69 76 65 4d 65 6e 75 20 2d 09 09 54 68 69 73 20 69 73 20 74 68 65 20 ws..#.activeMenu.-..This.is.the.
13fc0 6c 61 73 74 20 61 63 74 69 76 65 20 6d 65 6e 75 20 66 6f 72 20 75 73 65 0a 23 09 09 09 77 69 74 last.active.menu.for.use.#...wit
13fe0 68 20 74 68 65 20 3c 3c 4d 65 6e 75 53 65 6c 65 63 74 3e 3e 20 76 69 72 74 75 61 6c 20 65 76 65 h.the.<<MenuSelect>>.virtual.eve
14000 6e 74 2e 0a 23 20 61 63 74 69 76 65 49 74 65 6d 20 2d 09 09 54 68 69 73 20 69 73 20 74 68 65 20 nt..#.activeItem.-..This.is.the.
14020 6c 61 73 74 20 61 63 74 69 76 65 20 6d 65 6e 75 20 69 74 65 6d 20 66 6f 72 0a 23 09 09 09 75 73 last.active.menu.item.for.#...us
14040 65 20 77 69 74 68 20 74 68 65 20 3c 3c 4d 65 6e 75 53 65 6c 65 63 74 3e 3e 20 76 69 72 74 75 61 e.with.the.<<MenuSelect>>.virtua
14060 6c 20 65 76 65 6e 74 2e 0a 23 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d l.event..#----------------------
14080 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d --------------------------------
140a0 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 0a 0a 23 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d -------------------..#----------
140c0 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d --------------------------------
140e0 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 0a -------------------------------.
14100 23 20 4f 76 65 72 61 6c 6c 20 6e 6f 74 65 3a 0a 23 20 54 68 69 73 20 66 69 6c 65 20 69 73 20 74 #.Overall.note:.#.This.file.is.t
14120 72 69 63 6b 79 20 62 65 63 61 75 73 65 20 74 68 65 72 65 20 61 72 65 20 66 69 76 65 20 64 69 66 ricky.because.there.are.five.dif
14140 66 65 72 65 6e 74 20 77 61 79 73 20 74 68 61 74 20 6d 65 6e 75 73 0a 23 20 63 61 6e 20 62 65 20 ferent.ways.that.menus.#.can.be.
14160 75 73 65 64 3a 0a 23 0a 23 20 31 2e 20 41 73 20 61 20 70 75 6c 6c 64 6f 77 6e 20 66 72 6f 6d 20 used:.#.#.1..As.a.pulldown.from.
14180 61 20 6d 65 6e 75 62 75 74 74 6f 6e 2e 20 49 6e 20 74 68 69 73 20 73 74 79 6c 65 2c 20 74 68 65 a.menubutton..In.this.style,.the
141a0 20 76 61 72 69 61 62 6c 65 20 0a 23 20 20 20 20 74 6b 50 72 69 76 28 70 6f 73 74 65 64 4d 62 29 .variable..#....tkPriv(postedMb)
141c0 20 69 64 65 6e 74 69 66 69 65 73 20 74 68 65 20 70 6f 73 74 65 64 20 6d 65 6e 75 62 75 74 74 6f .identifies.the.posted.menubutto
141e0 6e 2e 0a 23 20 32 2e 20 41 73 20 61 20 74 6f 72 6e 2d 6f 66 66 20 6d 65 6e 75 20 63 6f 70 69 65 n..#.2..As.a.torn-off.menu.copie
14200 64 20 66 72 6f 6d 20 73 6f 6d 65 20 6f 74 68 65 72 20 6d 65 6e 75 2e 20 20 49 6e 20 74 68 69 73 d.from.some.other.menu...In.this
14220 20 73 74 79 6c 65 0a 23 20 20 20 20 74 6b 50 72 69 76 28 70 6f 73 74 65 64 4d 62 29 20 69 73 20 .style.#....tkPriv(postedMb).is.
14240 65 6d 70 74 79 2c 20 61 6e 64 20 6d 65 6e 75 27 73 20 74 79 70 65 20 69 73 20 22 74 65 61 72 6f empty,.and.menu's.type.is."tearo
14260 66 66 22 2e 0a 23 20 33 2e 20 41 73 20 61 6e 20 6f 70 74 69 6f 6e 20 6d 65 6e 75 2c 20 74 72 69 ff"..#.3..As.an.option.menu,.tri
14280 67 67 65 72 65 64 20 66 72 6f 6d 20 61 6e 20 6f 70 74 69 6f 6e 20 6d 65 6e 75 62 75 74 74 6f 6e ggered.from.an.option.menubutton
142a0 2e 20 20 49 6e 20 74 68 69 73 0a 23 20 20 20 20 73 74 79 6c 65 20 74 6b 50 72 69 76 28 70 6f 73 ...In.this.#....style.tkPriv(pos
142c0 74 65 64 4d 62 29 20 69 64 65 6e 74 69 66 69 65 73 20 74 68 65 20 70 6f 73 74 65 64 20 6d 65 6e tedMb).identifies.the.posted.men
142e0 75 62 75 74 74 6f 6e 2e 0a 23 20 34 2e 20 41 73 20 61 20 70 6f 70 75 70 20 6d 65 6e 75 2e 20 20 ubutton..#.4..As.a.popup.menu...
14300 49 6e 20 74 68 69 73 20 73 74 79 6c 65 20 74 6b 50 72 69 76 28 70 6f 73 74 65 64 4d 62 29 20 69 In.this.style.tkPriv(postedMb).i
14320 73 20 65 6d 70 74 79 20 61 6e 64 0a 23 20 20 20 20 74 68 65 20 74 6f 70 2d 6c 65 76 65 6c 20 6d s.empty.and.#....the.top-level.m
14340 65 6e 75 27 73 20 74 79 70 65 20 69 73 20 22 6e 6f 72 6d 61 6c 22 2e 0a 23 20 35 2e 20 41 73 20 enu's.type.is."normal"..#.5..As.
14360 61 20 70 75 6c 6c 64 6f 77 6e 20 66 72 6f 6d 20 61 20 6d 65 6e 75 62 61 72 2e 20 54 68 65 20 76 a.pulldown.from.a.menubar..The.v
14380 61 72 69 61 62 6c 65 20 74 6b 50 72 69 76 28 6d 65 6e 75 62 61 72 29 20 68 61 73 0a 23 20 20 20 ariable.tkPriv(menubar).has.#...
143a0 20 74 68 65 20 6f 77 6e 69 6e 67 20 6d 65 6e 75 62 61 72 2c 20 61 6e 64 20 74 68 65 20 6d 65 6e .the.owning.menubar,.and.the.men
143c0 75 20 69 74 73 65 6c 66 20 69 73 20 6f 66 20 74 79 70 65 20 22 6e 6f 72 6d 61 6c 22 2e 0a 23 0a u.itself.is.of.type."normal"..#.
143e0 23 20 54 68 65 20 76 61 72 69 6f 75 73 20 62 69 6e 64 69 6e 67 20 70 72 6f 63 65 64 75 72 65 73 #.The.various.binding.procedures
14400 20 75 73 65 20 74 68 65 20 20 73 74 61 74 65 20 64 65 73 63 72 69 62 65 64 20 61 62 6f 76 65 20 .use.the..state.described.above.
14420 74 6f 0a 23 20 64 69 73 74 69 6e 67 75 69 73 68 20 74 68 65 20 76 61 72 69 6f 75 73 20 63 61 73 to.#.distinguish.the.various.cas
14440 65 73 20 61 6e 64 20 74 61 6b 65 20 64 69 66 66 65 72 65 6e 74 20 61 63 74 69 6f 6e 73 20 69 6e es.and.take.different.actions.in
14460 20 65 61 63 68 0a 23 20 63 61 73 65 2e 0a 23 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d .each.#.case..#-----------------
14480 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d --------------------------------
144a0 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 0a 0a 23 2d 2d 2d 2d 2d ------------------------..#-----
144c0 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d --------------------------------
144e0 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d --------------------------------
14500 2d 2d 2d 2d 0a 23 20 54 68 65 20 63 6f 64 65 20 62 65 6c 6f 77 20 63 72 65 61 74 65 73 20 74 68 ----.#.The.code.below.creates.th
14520 65 20 64 65 66 61 75 6c 74 20 63 6c 61 73 73 20 62 69 6e 64 69 6e 67 73 20 66 6f 72 20 6d 65 6e e.default.class.bindings.for.men
14540 75 73 0a 23 20 61 6e 64 20 6d 65 6e 75 62 75 74 74 6f 6e 73 2e 0a 23 2d 2d 2d 2d 2d 2d 2d 2d 2d us.#.and.menubuttons..#---------
14560 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d --------------------------------
14580 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d --------------------------------
145a0 0a 0a 62 69 6e 64 20 4d 65 6e 75 62 75 74 74 6f 6e 20 3c 46 6f 63 75 73 49 6e 3e 20 7b 7d 0a 62 ..bind.Menubutton.<FocusIn>.{}.b
145c0 69 6e 64 20 4d 65 6e 75 62 75 74 74 6f 6e 20 3c 45 6e 74 65 72 3e 20 7b 0a 20 20 20 20 74 6b 4d ind.Menubutton.<Enter>.{.....tkM
145e0 62 45 6e 74 65 72 20 25 57 0a 7d 0a 62 69 6e 64 20 4d 65 6e 75 62 75 74 74 6f 6e 20 3c 4c 65 61 bEnter.%W.}.bind.Menubutton.<Lea
14600 76 65 3e 20 7b 0a 20 20 20 20 74 6b 4d 62 4c 65 61 76 65 20 25 57 0a 7d 0a 62 69 6e 64 20 4d 65 ve>.{.....tkMbLeave.%W.}.bind.Me
14620 6e 75 62 75 74 74 6f 6e 20 3c 31 3e 20 7b 0a 20 20 20 20 69 66 20 7b 5b 73 74 72 69 6e 67 20 63 nubutton.<1>.{.....if.{[string.c
14640 6f 6d 70 61 72 65 20 24 74 6b 50 72 69 76 28 69 6e 4d 65 6e 75 62 75 74 74 6f 6e 29 20 22 22 5d ompare.$tkPriv(inMenubutton).""]
14660 7d 20 7b 0a 09 74 6b 4d 62 50 6f 73 74 20 24 74 6b 50 72 69 76 28 69 6e 4d 65 6e 75 62 75 74 74 }.{..tkMbPost.$tkPriv(inMenubutt
14680 6f 6e 29 20 25 58 20 25 59 0a 20 20 20 20 7d 0a 7d 0a 62 69 6e 64 20 4d 65 6e 75 62 75 74 74 6f on).%X.%Y.....}.}.bind.Menubutto
146a0 6e 20 3c 4d 6f 74 69 6f 6e 3e 20 7b 0a 20 20 20 20 74 6b 4d 62 4d 6f 74 69 6f 6e 20 25 57 20 75 n.<Motion>.{.....tkMbMotion.%W.u
146c0 70 20 25 58 20 25 59 0a 7d 0a 62 69 6e 64 20 4d 65 6e 75 62 75 74 74 6f 6e 20 3c 42 31 2d 4d 6f p.%X.%Y.}.bind.Menubutton.<B1-Mo
146e0 74 69 6f 6e 3e 20 7b 0a 20 20 20 20 74 6b 4d 62 4d 6f 74 69 6f 6e 20 25 57 20 64 6f 77 6e 20 25 tion>.{.....tkMbMotion.%W.down.%
14700 58 20 25 59 0a 7d 0a 62 69 6e 64 20 4d 65 6e 75 62 75 74 74 6f 6e 20 3c 42 75 74 74 6f 6e 52 65 X.%Y.}.bind.Menubutton.<ButtonRe
14720 6c 65 61 73 65 2d 31 3e 20 7b 0a 20 20 20 20 74 6b 4d 62 42 75 74 74 6f 6e 55 70 20 25 57 0a 7d lease-1>.{.....tkMbButtonUp.%W.}
14740 0a 62 69 6e 64 20 4d 65 6e 75 62 75 74 74 6f 6e 20 3c 73 70 61 63 65 3e 20 7b 0a 20 20 20 20 74 .bind.Menubutton.<space>.{.....t
14760 6b 4d 62 50 6f 73 74 20 25 57 0a 20 20 20 20 74 6b 4d 65 6e 75 46 69 72 73 74 45 6e 74 72 79 20 kMbPost.%W.....tkMenuFirstEntry.
14780 5b 25 57 20 63 67 65 74 20 2d 6d 65 6e 75 5d 0a 7d 0a 0a 23 20 4d 75 73 74 20 73 65 74 20 66 6f [%W.cget.-menu].}..#.Must.set.fo
147a0 63 75 73 20 77 68 65 6e 20 6d 6f 75 73 65 20 65 6e 74 65 72 73 20 61 20 6d 65 6e 75 2c 20 69 6e cus.when.mouse.enters.a.menu,.in
147c0 20 6f 72 64 65 72 20 74 6f 20 61 6c 6c 6f 77 0a 23 20 6d 69 78 65 64 2d 6d 6f 64 65 20 70 72 6f .order.to.allow.#.mixed-mode.pro
147e0 63 65 73 73 69 6e 67 20 75 73 69 6e 67 20 62 6f 74 68 20 74 68 65 20 6d 6f 75 73 65 20 61 6e 64 cessing.using.both.the.mouse.and
14800 20 74 68 65 20 6b 65 79 62 6f 61 72 64 2e 0a 23 20 44 6f 6e 27 74 20 73 65 74 20 74 68 65 20 66 .the.keyboard..#.Don't.set.the.f
14820 6f 63 75 73 20 69 66 20 74 68 65 20 65 76 65 6e 74 20 63 6f 6d 65 73 20 66 72 6f 6d 20 61 20 67 ocus.if.the.event.comes.from.a.g
14840 72 61 62 20 72 65 6c 65 61 73 65 2c 0a 23 20 74 68 6f 75 67 68 3a 20 20 73 75 63 68 20 61 6e 20 rab.release,.#.though:..such.an.
14860 65 76 65 6e 74 20 63 61 6e 20 68 61 70 70 65 6e 20 61 66 74 65 72 20 61 73 20 70 61 72 74 20 6f event.can.happen.after.as.part.o
14880 66 20 75 6e 70 6f 73 74 69 6e 67 0a 23 20 61 20 63 61 73 63 61 64 65 64 20 63 68 61 69 6e 20 6f f.unposting.#.a.cascaded.chain.o
148a0 66 20 6d 65 6e 75 73 2c 20 61 66 74 65 72 20 74 68 65 20 66 6f 63 75 73 20 68 61 73 20 61 6c 72 f.menus,.after.the.focus.has.alr
148c0 65 61 64 79 20 62 65 65 6e 0a 23 20 72 65 73 74 6f 72 65 64 20 74 6f 20 77 68 65 72 65 76 65 72 eady.been.#.restored.to.wherever
148e0 20 69 74 20 77 61 73 20 62 65 66 6f 72 65 20 6d 65 6e 75 20 73 65 6c 65 63 74 69 6f 6e 20 73 74 .it.was.before.menu.selection.st
14900 61 72 74 65 64 2e 0a 0a 62 69 6e 64 20 4d 65 6e 75 20 3c 46 6f 63 75 73 49 6e 3e 20 7b 7d 0a 0a arted...bind.Menu.<FocusIn>.{}..
14920 62 69 6e 64 20 4d 65 6e 75 20 3c 45 6e 74 65 72 3e 20 7b 0a 20 20 20 20 73 65 74 20 74 6b 50 72 bind.Menu.<Enter>.{.....set.tkPr
14940 69 76 28 77 69 6e 64 6f 77 29 20 25 57 0a 20 20 20 20 69 66 20 7b 5b 73 74 72 69 6e 67 20 65 71 iv(window).%W.....if.{[string.eq
14960 75 61 6c 20 5b 25 57 20 63 67 65 74 20 2d 74 79 70 65 5d 20 22 74 65 61 72 6f 66 66 22 5d 7d 20 ual.[%W.cget.-type]."tearoff"]}.
14980 7b 0a 09 69 66 20 7b 5b 73 74 72 69 6e 67 20 63 6f 6d 70 61 72 65 20 22 25 6d 22 20 22 4e 6f 74 {..if.{[string.compare."%m"."Not
149a0 69 66 79 55 6e 67 72 61 62 22 5d 7d 20 7b 0a 09 20 20 20 20 69 66 20 7b 5b 73 74 72 69 6e 67 20 ifyUngrab"]}.{......if.{[string.
149c0 65 71 75 61 6c 20 24 74 63 6c 5f 70 6c 61 74 66 6f 72 6d 28 70 6c 61 74 66 6f 72 6d 29 20 22 75 equal.$tcl_platform(platform)."u
149e0 6e 69 78 22 5d 7d 20 7b 0a 09 09 74 6b 5f 6d 65 6e 75 53 65 74 46 6f 63 75 73 20 25 57 0a 09 20 nix"]}.{...tk_menuSetFocus.%W...
14a00 20 20 20 7d 0a 09 7d 0a 20 20 20 20 7d 0a 20 20 20 20 74 6b 4d 65 6e 75 4d 6f 74 69 6f 6e 20 25 ...}..}.....}.....tkMenuMotion.%
14a20 57 20 25 78 20 25 79 20 25 73 0a 7d 0a 0a 62 69 6e 64 20 4d 65 6e 75 20 3c 4c 65 61 76 65 3e 20 W.%x.%y.%s.}..bind.Menu.<Leave>.
14a40 7b 0a 20 20 20 20 74 6b 4d 65 6e 75 4c 65 61 76 65 20 25 57 20 25 58 20 25 59 20 25 73 0a 7d 0a {.....tkMenuLeave.%W.%X.%Y.%s.}.
14a60 62 69 6e 64 20 4d 65 6e 75 20 3c 4d 6f 74 69 6f 6e 3e 20 7b 0a 20 20 20 20 74 6b 4d 65 6e 75 4d bind.Menu.<Motion>.{.....tkMenuM
14a80 6f 74 69 6f 6e 20 25 57 20 25 78 20 25 79 20 25 73 0a 7d 0a 62 69 6e 64 20 4d 65 6e 75 20 3c 42 otion.%W.%x.%y.%s.}.bind.Menu.<B
14aa0 75 74 74 6f 6e 50 72 65 73 73 3e 20 7b 0a 20 20 20 20 74 6b 4d 65 6e 75 42 75 74 74 6f 6e 44 6f uttonPress>.{.....tkMenuButtonDo
14ac0 77 6e 20 25 57 0a 7d 0a 62 69 6e 64 20 4d 65 6e 75 20 3c 42 75 74 74 6f 6e 52 65 6c 65 61 73 65 wn.%W.}.bind.Menu.<ButtonRelease
14ae0 3e 20 7b 0a 20 20 20 74 6b 4d 65 6e 75 49 6e 76 6f 6b 65 20 25 57 20 31 0a 7d 0a 62 69 6e 64 20 >.{....tkMenuInvoke.%W.1.}.bind.
14b00 4d 65 6e 75 20 3c 73 70 61 63 65 3e 20 7b 0a 20 20 20 20 74 6b 4d 65 6e 75 49 6e 76 6f 6b 65 20 Menu.<space>.{.....tkMenuInvoke.
14b20 25 57 20 30 0a 7d 0a 62 69 6e 64 20 4d 65 6e 75 20 3c 52 65 74 75 72 6e 3e 20 7b 0a 20 20 20 20 %W.0.}.bind.Menu.<Return>.{.....
14b40 74 6b 4d 65 6e 75 49 6e 76 6f 6b 65 20 25 57 20 30 0a 7d 0a 62 69 6e 64 20 4d 65 6e 75 20 3c 45 tkMenuInvoke.%W.0.}.bind.Menu.<E
14b60 73 63 61 70 65 3e 20 7b 0a 20 20 20 20 74 6b 4d 65 6e 75 45 73 63 61 70 65 20 25 57 0a 7d 0a 62 scape>.{.....tkMenuEscape.%W.}.b
14b80 69 6e 64 20 4d 65 6e 75 20 3c 4c 65 66 74 3e 20 7b 0a 20 20 20 20 74 6b 4d 65 6e 75 4c 65 66 74 ind.Menu.<Left>.{.....tkMenuLeft
14ba0 41 72 72 6f 77 20 25 57 0a 7d 0a 62 69 6e 64 20 4d 65 6e 75 20 3c 52 69 67 68 74 3e 20 7b 0a 20 Arrow.%W.}.bind.Menu.<Right>.{..
14bc0 20 20 20 74 6b 4d 65 6e 75 52 69 67 68 74 41 72 72 6f 77 20 25 57 0a 7d 0a 62 69 6e 64 20 4d 65 ...tkMenuRightArrow.%W.}.bind.Me
14be0 6e 75 20 3c 55 70 3e 20 7b 0a 20 20 20 20 74 6b 4d 65 6e 75 55 70 41 72 72 6f 77 20 25 57 0a 7d nu.<Up>.{.....tkMenuUpArrow.%W.}
14c00 0a 62 69 6e 64 20 4d 65 6e 75 20 3c 44 6f 77 6e 3e 20 7b 0a 20 20 20 20 74 6b 4d 65 6e 75 44 6f .bind.Menu.<Down>.{.....tkMenuDo
14c20 77 6e 41 72 72 6f 77 20 25 57 0a 7d 0a 62 69 6e 64 20 4d 65 6e 75 20 3c 4b 65 79 50 72 65 73 73 wnArrow.%W.}.bind.Menu.<KeyPress
14c40 3e 20 7b 0a 20 20 20 20 74 6b 54 72 61 76 65 72 73 65 57 69 74 68 69 6e 4d 65 6e 75 20 25 57 20 >.{.....tkTraverseWithinMenu.%W.
14c60 25 41 0a 7d 0a 0a 23 20 54 68 65 20 66 6f 6c 6c 6f 77 69 6e 67 20 62 69 6e 64 69 6e 67 73 20 61 %A.}..#.The.following.bindings.a
14c80 70 70 6c 79 20 74 6f 20 61 6c 6c 20 77 69 6e 64 6f 77 73 2c 20 61 6e 64 20 61 72 65 20 75 73 65 pply.to.all.windows,.and.are.use
14ca0 64 20 74 6f 0a 23 20 69 6d 70 6c 65 6d 65 6e 74 20 6b 65 79 62 6f 61 72 64 20 6d 65 6e 75 20 74 d.to.#.implement.keyboard.menu.t
14cc0 72 61 76 65 72 73 61 6c 2e 0a 0a 69 66 20 7b 5b 73 74 72 69 6e 67 20 65 71 75 61 6c 20 24 74 63 raversal...if.{[string.equal.$tc
14ce0 6c 5f 70 6c 61 74 66 6f 72 6d 28 70 6c 61 74 66 6f 72 6d 29 20 22 75 6e 69 78 22 5d 7d 20 7b 0a l_platform(platform)."unix"]}.{.
14d00 20 20 20 20 62 69 6e 64 20 61 6c 6c 20 3c 41 6c 74 2d 4b 65 79 50 72 65 73 73 3e 20 7b 0a 09 74 ....bind.all.<Alt-KeyPress>.{..t
14d20 6b 54 72 61 76 65 72 73 65 54 6f 4d 65 6e 75 20 25 57 20 25 41 0a 20 20 20 20 7d 0a 0a 20 20 20 kTraverseToMenu.%W.%A.....}.....
14d40 20 62 69 6e 64 20 61 6c 6c 20 3c 46 31 30 3e 20 7b 0a 09 74 6b 46 69 72 73 74 4d 65 6e 75 20 25 .bind.all.<F10>.{..tkFirstMenu.%
14d60 57 0a 20 20 20 20 7d 0a 7d 20 65 6c 73 65 20 7b 0a 20 20 20 20 62 69 6e 64 20 4d 65 6e 75 62 75 W.....}.}.else.{.....bind.Menubu
14d80 74 74 6f 6e 20 3c 41 6c 74 2d 4b 65 79 50 72 65 73 73 3e 20 7b 0a 09 74 6b 54 72 61 76 65 72 73 tton.<Alt-KeyPress>.{..tkTravers
14da0 65 54 6f 4d 65 6e 75 20 25 57 20 25 41 0a 20 20 20 20 7d 0a 0a 20 20 20 20 62 69 6e 64 20 4d 65 eToMenu.%W.%A.....}......bind.Me
14dc0 6e 75 62 75 74 74 6f 6e 20 3c 46 31 30 3e 20 7b 0a 09 74 6b 46 69 72 73 74 4d 65 6e 75 20 25 57 nubutton.<F10>.{..tkFirstMenu.%W
14de0 0a 20 20 20 20 7d 0a 7d 0a 0a 23 20 74 6b 4d 62 45 6e 74 65 72 20 2d 2d 0a 23 20 54 68 69 73 20 .....}.}..#.tkMbEnter.--.#.This.
14e00 70 72 6f 63 65 64 75 72 65 20 69 73 20 69 6e 76 6f 6b 65 64 20 77 68 65 6e 20 74 68 65 20 6d 6f procedure.is.invoked.when.the.mo
14e20 75 73 65 20 65 6e 74 65 72 73 20 61 20 6d 65 6e 75 62 75 74 74 6f 6e 0a 23 20 77 69 64 67 65 74 use.enters.a.menubutton.#.widget
14e40 2e 20 20 49 74 20 61 63 74 69 76 61 74 65 73 20 74 68 65 20 77 69 64 67 65 74 20 75 6e 6c 65 73 ...It.activates.the.widget.unles
14e60 73 20 69 74 20 69 73 20 64 69 73 61 62 6c 65 64 2e 20 20 4e 6f 74 65 3a 0a 23 20 74 68 69 73 20 s.it.is.disabled...Note:.#.this.
14e80 70 72 6f 63 65 64 75 72 65 20 69 73 20 6f 6e 6c 79 20 69 6e 76 6f 6b 65 64 20 77 68 65 6e 20 6d procedure.is.only.invoked.when.m
14ea0 6f 75 73 65 20 62 75 74 74 6f 6e 20 31 20 69 73 20 2a 6e 6f 74 2a 20 64 6f 77 6e 2e 0a 23 20 54 ouse.button.1.is.*not*.down..#.T
14ec0 68 65 20 70 72 6f 63 65 64 75 72 65 20 74 6b 4d 62 42 31 45 6e 74 65 72 20 69 73 20 69 6e 76 6f he.procedure.tkMbB1Enter.is.invo
14ee0 6b 65 64 20 69 66 20 74 68 65 20 62 75 74 74 6f 6e 20 69 73 20 64 6f 77 6e 2e 0a 23 0a 23 20 41 ked.if.the.button.is.down..#.#.A
14f00 72 67 75 6d 65 6e 74 73 3a 0a 23 20 77 20 2d 09 09 09 54 68 65 20 20 6e 61 6d 65 20 6f 66 20 74 rguments:.#.w.-...The..name.of.t
14f20 68 65 20 77 69 64 67 65 74 2e 0a 0a 70 72 6f 63 20 74 6b 4d 62 45 6e 74 65 72 20 77 20 7b 0a 20 he.widget...proc.tkMbEnter.w.{..
14f40 20 20 20 67 6c 6f 62 61 6c 20 74 6b 50 72 69 76 0a 0a 20 20 20 20 69 66 20 7b 5b 73 74 72 69 6e ...global.tkPriv......if.{[strin
14f60 67 20 63 6f 6d 70 61 72 65 20 24 74 6b 50 72 69 76 28 69 6e 4d 65 6e 75 62 75 74 74 6f 6e 29 20 g.compare.$tkPriv(inMenubutton).
14f80 22 22 5d 7d 20 7b 0a 09 74 6b 4d 62 4c 65 61 76 65 20 24 74 6b 50 72 69 76 28 69 6e 4d 65 6e 75 ""]}.{..tkMbLeave.$tkPriv(inMenu
14fa0 62 75 74 74 6f 6e 29 0a 20 20 20 20 7d 0a 20 20 20 20 73 65 74 20 74 6b 50 72 69 76 28 69 6e 4d button).....}.....set.tkPriv(inM
14fc0 65 6e 75 62 75 74 74 6f 6e 29 20 24 77 0a 20 20 20 20 69 66 20 7b 5b 73 74 72 69 6e 67 20 63 6f enubutton).$w.....if.{[string.co
14fe0 6d 70 61 72 65 20 5b 24 77 20 63 67 65 74 20 2d 73 74 61 74 65 5d 20 22 64 69 73 61 62 6c 65 64 mpare.[$w.cget.-state]."disabled
15000 22 5d 7d 20 7b 0a 09 24 77 20 63 6f 6e 66 69 67 75 72 65 20 2d 73 74 61 74 65 20 61 63 74 69 76 "]}.{..$w.configure.-state.activ
15020 65 0a 20 20 20 20 7d 0a 7d 0a 0a 23 20 74 6b 4d 62 4c 65 61 76 65 20 2d 2d 0a 23 20 54 68 69 73 e.....}.}..#.tkMbLeave.--.#.This
15040 20 70 72 6f 63 65 64 75 72 65 20 69 73 20 69 6e 76 6f 6b 65 64 20 77 68 65 6e 20 74 68 65 20 6d .procedure.is.invoked.when.the.m
15060 6f 75 73 65 20 6c 65 61 76 65 73 20 61 20 6d 65 6e 75 62 75 74 74 6f 6e 20 77 69 64 67 65 74 2e ouse.leaves.a.menubutton.widget.
15080 0a 23 20 49 74 20 64 65 2d 61 63 74 69 76 61 74 65 73 20 74 68 65 20 77 69 64 67 65 74 2c 20 69 .#.It.de-activates.the.widget,.i
150a0 66 20 74 68 65 20 77 69 64 67 65 74 20 73 74 69 6c 6c 20 65 78 69 73 74 73 2e 0a 23 0a 23 20 41 f.the.widget.still.exists..#.#.A
150c0 72 67 75 6d 65 6e 74 73 3a 0a 23 20 77 20 2d 09 09 09 54 68 65 20 20 6e 61 6d 65 20 6f 66 20 74 rguments:.#.w.-...The..name.of.t
150e0 68 65 20 77 69 64 67 65 74 2e 0a 0a 70 72 6f 63 20 74 6b 4d 62 4c 65 61 76 65 20 77 20 7b 0a 20 he.widget...proc.tkMbLeave.w.{..
15100 20 20 20 67 6c 6f 62 61 6c 20 74 6b 50 72 69 76 0a 0a 20 20 20 20 73 65 74 20 74 6b 50 72 69 76 ...global.tkPriv......set.tkPriv
15120 28 69 6e 4d 65 6e 75 62 75 74 74 6f 6e 29 20 7b 7d 0a 20 20 20 20 69 66 20 7b 21 5b 77 69 6e 66 (inMenubutton).{}.....if.{![winf
15140 6f 20 65 78 69 73 74 73 20 24 77 5d 7d 20 7b 0a 09 72 65 74 75 72 6e 0a 20 20 20 20 7d 0a 20 20 o.exists.$w]}.{..return.....}...
15160 20 20 69 66 20 7b 5b 73 74 72 69 6e 67 20 65 71 75 61 6c 20 5b 24 77 20 63 67 65 74 20 2d 73 74 ..if.{[string.equal.[$w.cget.-st
15180 61 74 65 5d 20 22 61 63 74 69 76 65 22 5d 7d 20 7b 0a 09 24 77 20 63 6f 6e 66 69 67 75 72 65 20 ate]."active"]}.{..$w.configure.
151a0 2d 73 74 61 74 65 20 6e 6f 72 6d 61 6c 0a 20 20 20 20 7d 0a 7d 0a 0a 23 20 74 6b 4d 62 50 6f 73 -state.normal.....}.}..#.tkMbPos
151c0 74 20 2d 2d 0a 23 20 47 69 76 65 6e 20 61 20 6d 65 6e 75 62 75 74 74 6f 6e 2c 20 74 68 69 73 20 t.--.#.Given.a.menubutton,.this.
151e0 70 72 6f 63 65 64 75 72 65 20 64 6f 65 73 20 61 6c 6c 20 74 68 65 20 77 6f 72 6b 20 6f 66 20 70 procedure.does.all.the.work.of.p
15200 6f 73 74 69 6e 67 0a 23 20 69 74 73 20 61 73 73 6f 63 69 61 74 65 64 20 6d 65 6e 75 20 61 6e 64 osting.#.its.associated.menu.and
15220 20 75 6e 70 6f 73 74 69 6e 67 20 61 6e 79 20 6f 74 68 65 72 20 6d 65 6e 75 20 74 68 61 74 20 69 .unposting.any.other.menu.that.i
15240 73 20 63 75 72 72 65 6e 74 6c 79 0a 23 20 70 6f 73 74 65 64 2e 0a 23 0a 23 20 41 72 67 75 6d 65 s.currently.#.posted..#.#.Argume
15260 6e 74 73 3a 0a 23 20 77 20 2d 09 09 09 54 68 65 20 6e 61 6d 65 20 6f 66 20 74 68 65 20 6d 65 6e nts:.#.w.-...The.name.of.the.men
15280 75 62 75 74 74 6f 6e 20 77 69 64 67 65 74 20 77 68 6f 73 65 20 6d 65 6e 75 0a 23 09 09 09 69 73 ubutton.widget.whose.menu.#...is
152a0 20 74 6f 20 62 65 20 70 6f 73 74 65 64 2e 0a 23 20 78 2c 20 79 20 2d 09 09 52 6f 6f 74 20 63 6f .to.be.posted..#.x,.y.-..Root.co
152c0 6f 72 64 69 6e 61 74 65 73 20 6f 66 20 63 75 72 73 6f 72 2c 20 75 73 65 64 20 66 6f 72 20 70 6f ordinates.of.cursor,.used.for.po
152e0 73 69 74 69 6f 6e 69 6e 67 0a 23 09 09 09 6f 70 74 69 6f 6e 20 6d 65 6e 75 73 2e 20 20 49 66 20 sitioning.#...option.menus...If.
15300 6e 6f 74 20 73 70 65 63 69 66 69 65 64 2c 20 74 68 65 6e 20 74 68 65 20 63 65 6e 74 65 72 0a 23 not.specified,.then.the.center.#
15320 09 09 09 6f 66 20 74 68 65 20 6d 65 6e 75 62 75 74 74 6f 6e 20 69 73 20 75 73 65 64 20 66 6f 72 ...of.the.menubutton.is.used.for
15340 20 61 6e 20 6f 70 74 69 6f 6e 20 6d 65 6e 75 2e 0a 0a 70 72 6f 63 20 74 6b 4d 62 50 6f 73 74 20 .an.option.menu...proc.tkMbPost.
15360 7b 77 20 7b 78 20 7b 7d 7d 20 7b 79 20 7b 7d 7d 7d 20 7b 0a 20 20 20 20 67 6c 6f 62 61 6c 20 74 {w.{x.{}}.{y.{}}}.{.....global.t
15380 6b 50 72 69 76 20 65 72 72 6f 72 49 6e 66 6f 0a 20 20 20 20 67 6c 6f 62 61 6c 20 74 63 6c 5f 70 kPriv.errorInfo.....global.tcl_p
153a0 6c 61 74 66 6f 72 6d 0a 0a 20 20 20 20 69 66 20 7b 5b 73 74 72 69 6e 67 20 65 71 75 61 6c 20 5b latform......if.{[string.equal.[
153c0 24 77 20 63 67 65 74 20 2d 73 74 61 74 65 5d 20 22 64 69 73 61 62 6c 65 64 22 5d 20 7c 7c 20 5c $w.cget.-state]."disabled"].||.\
153e0 0a 09 20 20 20 20 5b 73 74 72 69 6e 67 20 65 71 75 61 6c 20 24 77 20 24 74 6b 50 72 69 76 28 70 ......[string.equal.$w.$tkPriv(p
15400 6f 73 74 65 64 4d 62 29 5d 7d 20 7b 0a 09 72 65 74 75 72 6e 0a 20 20 20 20 7d 0a 20 20 20 20 73 ostedMb)]}.{..return.....}.....s
15420 65 74 20 6d 65 6e 75 20 5b 24 77 20 63 67 65 74 20 2d 6d 65 6e 75 5d 0a 20 20 20 20 69 66 20 7b et.menu.[$w.cget.-menu].....if.{
15440 5b 73 74 72 69 6e 67 20 65 71 75 61 6c 20 24 6d 65 6e 75 20 22 22 5d 7d 20 7b 0a 09 72 65 74 75 [string.equal.$menu.""]}.{..retu
15460 72 6e 0a 20 20 20 20 7d 0a 20 20 20 20 73 65 74 20 74 65 61 72 6f 66 66 20 5b 65 78 70 72 20 7b rn.....}.....set.tearoff.[expr.{
15480 5b 73 74 72 69 6e 67 20 65 71 75 61 6c 20 24 74 63 6c 5f 70 6c 61 74 66 6f 72 6d 28 70 6c 61 74 [string.equal.$tcl_platform(plat
154a0 66 6f 72 6d 29 20 22 75 6e 69 78 22 5d 20 5c 0a 09 20 20 20 20 7c 7c 20 5b 73 74 72 69 6e 67 20 form)."unix"].\......||.[string.
154c0 65 71 75 61 6c 20 5b 24 6d 65 6e 75 20 63 67 65 74 20 2d 74 79 70 65 5d 20 22 74 65 61 72 6f 66 equal.[$menu.cget.-type]."tearof
154e0 66 22 5d 7d 5d 0a 20 20 20 20 69 66 20 7b 5b 73 74 72 69 6e 67 20 66 69 72 73 74 20 24 77 20 24 f"]}].....if.{[string.first.$w.$
15500 6d 65 6e 75 5d 20 21 3d 20 30 7d 20 7b 0a 09 65 72 72 6f 72 20 22 63 61 6e 27 74 20 70 6f 73 74 menu].!=.0}.{..error."can't.post
15520 20 24 6d 65 6e 75 3a 20 20 69 74 20 69 73 6e 27 74 20 61 20 64 65 73 63 65 6e 64 61 6e 74 20 6f .$menu:..it.isn't.a.descendant.o
15540 66 20 24 77 20 28 74 68 69 73 20 69 73 20 61 20 6e 65 77 20 72 65 71 75 69 72 65 6d 65 6e 74 20 f.$w.(this.is.a.new.requirement.
15560 69 6e 20 54 6b 20 76 65 72 73 69 6f 6e 73 20 33 2e 30 20 61 6e 64 20 6c 61 74 65 72 29 22 0a 20 in.Tk.versions.3.0.and.later)"..
15580 20 20 20 7d 0a 20 20 20 20 73 65 74 20 63 75 72 20 24 74 6b 50 72 69 76 28 70 6f 73 74 65 64 4d ...}.....set.cur.$tkPriv(postedM
155a0 62 29 0a 20 20 20 20 69 66 20 7b 5b 73 74 72 69 6e 67 20 63 6f 6d 70 61 72 65 20 24 63 75 72 20 b).....if.{[string.compare.$cur.
155c0 22 22 5d 7d 20 7b 0a 09 74 6b 4d 65 6e 75 55 6e 70 6f 73 74 20 7b 7d 0a 20 20 20 20 7d 0a 20 20 ""]}.{..tkMenuUnpost.{}.....}...
155e0 20 20 73 65 74 20 74 6b 50 72 69 76 28 63 75 72 73 6f 72 29 20 5b 24 77 20 63 67 65 74 20 2d 63 ..set.tkPriv(cursor).[$w.cget.-c
15600 75 72 73 6f 72 5d 0a 20 20 20 20 73 65 74 20 74 6b 50 72 69 76 28 72 65 6c 69 65 66 29 20 5b 24 ursor].....set.tkPriv(relief).[$
15620 77 20 63 67 65 74 20 2d 72 65 6c 69 65 66 5d 0a 20 20 20 20 24 77 20 63 6f 6e 66 69 67 75 72 65 w.cget.-relief].....$w.configure
15640 20 2d 63 75 72 73 6f 72 20 61 72 72 6f 77 0a 20 20 20 20 24 77 20 63 6f 6e 66 69 67 75 72 65 20 .-cursor.arrow.....$w.configure.
15660 2d 72 65 6c 69 65 66 20 72 61 69 73 65 64 0a 0a 20 20 20 20 73 65 74 20 74 6b 50 72 69 76 28 70 -relief.raised......set.tkPriv(p
15680 6f 73 74 65 64 4d 62 29 20 24 77 0a 20 20 20 20 73 65 74 20 74 6b 50 72 69 76 28 66 6f 63 75 73 ostedMb).$w.....set.tkPriv(focus
156a0 29 20 5b 66 6f 63 75 73 5d 0a 20 20 20 20 24 6d 65 6e 75 20 61 63 74 69 76 61 74 65 20 6e 6f 6e ).[focus].....$menu.activate.non
156c0 65 0a 20 20 20 20 74 6b 47 65 6e 65 72 61 74 65 4d 65 6e 75 53 65 6c 65 63 74 20 24 6d 65 6e 75 e.....tkGenerateMenuSelect.$menu
156e0 0a 0a 20 20 20 20 23 20 49 66 20 74 68 69 73 20 6c 6f 6f 6b 73 20 6c 69 6b 65 20 61 6e 20 6f 70 ......#.If.this.looks.like.an.op
15700 74 69 6f 6e 20 6d 65 6e 75 62 75 74 74 6f 6e 20 74 68 65 6e 20 70 6f 73 74 20 74 68 65 20 6d 65 tion.menubutton.then.post.the.me
15720 6e 75 20 73 6f 0a 20 20 20 20 23 20 74 68 61 74 20 74 68 65 20 63 75 72 72 65 6e 74 20 65 6e 74 nu.so.....#.that.the.current.ent
15740 72 79 20 69 73 20 6f 6e 20 74 6f 70 20 6f 66 20 74 68 65 20 6d 6f 75 73 65 2e 20 20 4f 74 68 65 ry.is.on.top.of.the.mouse...Othe
15760 72 77 69 73 65 20 70 6f 73 74 0a 20 20 20 20 23 20 74 68 65 20 6d 65 6e 75 20 6a 75 73 74 20 62 rwise.post.....#.the.menu.just.b
15780 65 6c 6f 77 20 74 68 65 20 6d 65 6e 75 62 75 74 74 6f 6e 2c 20 61 73 20 66 6f 72 20 61 20 70 75 elow.the.menubutton,.as.for.a.pu
157a0 6c 6c 2d 64 6f 77 6e 2e 0a 0a 20 20 20 20 75 70 64 61 74 65 20 69 64 6c 65 74 61 73 6b 73 0a 20 ll-down.......update.idletasks..
157c0 20 20 20 69 66 20 7b 5b 63 61 74 63 68 20 7b 0a 09 73 77 69 74 63 68 20 5b 24 77 20 63 67 65 74 ...if.{[catch.{..switch.[$w.cget
157e0 20 2d 64 69 72 65 63 74 69 6f 6e 5d 20 7b 0a 20 20 20 20 09 20 20 20 20 61 62 6f 76 65 20 7b 0a .-direction].{..........above.{.
15800 20 20 20 20 09 20 20 20 20 09 73 65 74 20 78 20 5b 77 69 6e 66 6f 20 72 6f 6f 74 78 20 24 77 5d ..........set.x.[winfo.rootx.$w]
15820 0a 20 20 20 20 09 20 20 20 20 09 73 65 74 20 79 20 5b 65 78 70 72 20 7b 5b 77 69 6e 66 6f 20 72 ...........set.y.[expr.{[winfo.r
15840 6f 6f 74 79 20 24 77 5d 20 2d 20 5b 77 69 6e 66 6f 20 72 65 71 68 65 69 67 68 74 20 24 6d 65 6e ooty.$w].-.[winfo.reqheight.$men
15860 75 5d 7d 5d 0a 20 20 20 20 09 20 20 20 20 09 24 6d 65 6e 75 20 70 6f 73 74 20 24 78 20 24 79 0a u]}]...........$menu.post.$x.$y.
15880 20 20 20 20 09 20 20 20 20 7d 0a 20 20 20 20 09 20 20 20 20 62 65 6c 6f 77 20 7b 0a 20 20 20 20 .........}..........below.{.....
158a0 09 20 20 20 20 09 73 65 74 20 78 20 5b 77 69 6e 66 6f 20 72 6f 6f 74 78 20 24 77 5d 0a 20 20 20 ......set.x.[winfo.rootx.$w]....
158c0 20 09 20 20 20 20 09 73 65 74 20 79 20 5b 65 78 70 72 20 7b 5b 77 69 6e 66 6f 20 72 6f 6f 74 79 .......set.y.[expr.{[winfo.rooty
158e0 20 24 77 5d 20 2b 20 5b 77 69 6e 66 6f 20 68 65 69 67 68 74 20 24 77 5d 7d 5d 0a 20 20 20 20 09 .$w].+.[winfo.height.$w]}]......
15900 20 20 20 20 09 24 6d 65 6e 75 20 70 6f 73 74 20 24 78 20 24 79 0a 20 20 20 20 09 20 20 20 20 7d .....$menu.post.$x.$y..........}
15920 0a 20 20 20 20 09 20 20 20 20 6c 65 66 74 20 7b 0a 20 20 20 20 09 20 20 20 20 09 73 65 74 20 78 ..........left.{...........set.x
15940 20 5b 65 78 70 72 20 7b 5b 77 69 6e 66 6f 20 72 6f 6f 74 78 20 24 77 5d 20 2d 20 5b 77 69 6e 66 .[expr.{[winfo.rootx.$w].-.[winf
15960 6f 20 72 65 71 77 69 64 74 68 20 24 6d 65 6e 75 5d 7d 5d 0a 20 20 20 20 09 20 20 20 20 09 73 65 o.reqwidth.$menu]}]...........se
15980 74 20 79 20 5b 65 78 70 72 20 7b 28 32 20 2a 20 5b 77 69 6e 66 6f 20 72 6f 6f 74 79 20 24 77 5d t.y.[expr.{(2.*.[winfo.rooty.$w]
159a0 20 2b 20 5b 77 69 6e 66 6f 20 68 65 69 67 68 74 20 24 77 5d 29 20 2f 20 32 7d 5d 0a 20 20 20 20 .+.[winfo.height.$w])./.2}].....
159c0 09 20 20 20 20 09 73 65 74 20 65 6e 74 72 79 20 5b 74 6b 4d 65 6e 75 46 69 6e 64 4e 61 6d 65 20 ......set.entry.[tkMenuFindName.
159e0 24 6d 65 6e 75 20 5b 24 77 20 63 67 65 74 20 2d 74 65 78 74 5d 5d 0a 20 20 20 20 09 20 20 20 20 $menu.[$w.cget.-text]]..........
15a00 09 69 66 20 7b 5b 24 77 20 63 67 65 74 20 2d 69 6e 64 69 63 61 74 6f 72 6f 6e 5d 7d 20 7b 0a 09 .if.{[$w.cget.-indicatoron]}.{..
15a20 09 20 20 20 20 69 66 20 7b 24 65 6e 74 72 79 20 3d 3d 20 5b 24 6d 65 6e 75 20 69 6e 64 65 78 20 .....if.{$entry.==.[$menu.index.
15a40 6c 61 73 74 5d 7d 20 7b 0a 09 09 20 20 20 20 09 69 6e 63 72 20 79 20 5b 65 78 70 72 20 7b 2d 28 last]}.{........incr.y.[expr.{-(
15a60 5b 24 6d 65 6e 75 20 79 70 6f 73 69 74 69 6f 6e 20 24 65 6e 74 72 79 5d 20 5c 0a 09 09 09 20 20 [$menu.yposition.$entry].\......
15a80 20 20 09 2b 20 5b 77 69 6e 66 6f 20 72 65 71 68 65 69 67 68 74 20 24 6d 65 6e 75 5d 29 2f 32 7d ...+.[winfo.reqheight.$menu])/2}
15aa0 5d 0a 09 09 20 20 20 20 7d 20 65 6c 73 65 20 7b 0a 09 09 20 20 20 20 09 69 6e 63 72 20 79 20 5b ].......}.else.{........incr.y.[
15ac0 65 78 70 72 20 7b 2d 28 5b 24 6d 65 6e 75 20 79 70 6f 73 69 74 69 6f 6e 20 24 65 6e 74 72 79 5d expr.{-([$menu.yposition.$entry]
15ae0 20 5c 0a 09 09 09 20 20 20 20 20 20 20 20 2b 20 5b 24 6d 65 6e 75 20 79 70 6f 73 69 74 69 6f 6e .\............+.[$menu.yposition
15b00 20 5b 65 78 70 72 20 7b 24 65 6e 74 72 79 2b 31 7d 5d 5d 29 2f 32 7d 5d 0a 09 09 20 20 20 20 7d .[expr.{$entry+1}]])/2}].......}
15b20 0a 20 20 20 20 09 20 20 20 20 09 7d 0a 20 20 20 20 09 20 20 20 20 09 24 6d 65 6e 75 20 70 6f 73 ...........}...........$menu.pos
15b40 74 20 24 78 20 24 79 0a 09 09 69 66 20 7b 5b 73 74 72 69 6e 67 20 63 6f 6d 70 61 72 65 20 24 65 t.$x.$y...if.{[string.compare.$e
15b60 6e 74 72 79 20 7b 7d 5d 20 26 26 20 5b 73 74 72 69 6e 67 20 63 6f 6d 70 61 72 65 20 5b 24 6d 65 ntry.{}].&&.[string.compare.[$me
15b80 6e 75 20 65 6e 74 72 79 63 67 65 74 20 24 65 6e 74 72 79 20 2d 73 74 61 74 65 5d 20 22 64 69 73 nu.entrycget.$entry.-state]."dis
15ba0 61 62 6c 65 64 22 5d 7d 20 7b 0a 20 20 20 20 09 20 20 20 20 09 20 20 20 20 24 6d 65 6e 75 20 61 abled"]}.{...............$menu.a
15bc0 63 74 69 76 61 74 65 20 24 65 6e 74 72 79 0a 09 09 20 20 20 20 74 6b 47 65 6e 65 72 61 74 65 4d ctivate.$entry.......tkGenerateM
15be0 65 6e 75 53 65 6c 65 63 74 20 24 6d 65 6e 75 0a 20 20 20 20 09 20 20 20 20 09 7d 0a 20 20 20 20 enuSelect.$menu...........}.....
15c00 09 20 20 20 20 7d 0a 20 20 20 20 09 20 20 20 20 72 69 67 68 74 20 7b 0a 20 20 20 20 09 20 20 20 .....}..........right.{.........
15c20 20 09 73 65 74 20 78 20 5b 65 78 70 72 20 7b 5b 77 69 6e 66 6f 20 72 6f 6f 74 78 20 24 77 5d 20 ..set.x.[expr.{[winfo.rootx.$w].
15c40 2b 20 5b 77 69 6e 66 6f 20 77 69 64 74 68 20 24 77 5d 7d 5d 0a 20 20 20 20 09 20 20 20 20 09 73 +.[winfo.width.$w]}]...........s
15c60 65 74 20 79 20 5b 65 78 70 72 20 7b 28 32 20 2a 20 5b 77 69 6e 66 6f 20 72 6f 6f 74 79 20 24 77 et.y.[expr.{(2.*.[winfo.rooty.$w
15c80 5d 20 2b 20 5b 77 69 6e 66 6f 20 68 65 69 67 68 74 20 24 77 5d 29 20 2f 20 32 7d 5d 0a 20 20 20 ].+.[winfo.height.$w])./.2}]....
15ca0 20 09 20 20 20 20 09 73 65 74 20 65 6e 74 72 79 20 5b 74 6b 4d 65 6e 75 46 69 6e 64 4e 61 6d 65 .......set.entry.[tkMenuFindName
15cc0 20 24 6d 65 6e 75 20 5b 24 77 20 63 67 65 74 20 2d 74 65 78 74 5d 5d 0a 20 20 20 20 09 20 20 20 .$menu.[$w.cget.-text]].........
15ce0 20 09 69 66 20 7b 5b 24 77 20 63 67 65 74 20 2d 69 6e 64 69 63 61 74 6f 72 6f 6e 5d 7d 20 7b 0a ..if.{[$w.cget.-indicatoron]}.{.
15d00 09 09 20 20 20 20 69 66 20 7b 24 65 6e 74 72 79 20 3d 3d 20 5b 24 6d 65 6e 75 20 69 6e 64 65 78 ......if.{$entry.==.[$menu.index
15d20 20 6c 61 73 74 5d 7d 20 7b 0a 09 09 20 20 20 20 09 69 6e 63 72 20 79 20 5b 65 78 70 72 20 7b 2d .last]}.{........incr.y.[expr.{-
15d40 28 5b 24 6d 65 6e 75 20 79 70 6f 73 69 74 69 6f 6e 20 24 65 6e 74 72 79 5d 20 5c 0a 09 09 09 20 ([$menu.yposition.$entry].\.....
15d60 20 20 20 09 2b 20 5b 77 69 6e 66 6f 20 72 65 71 68 65 69 67 68 74 20 24 6d 65 6e 75 5d 29 2f 32 ....+.[winfo.reqheight.$menu])/2
15d80 7d 5d 0a 09 09 20 20 20 20 7d 20 65 6c 73 65 20 7b 0a 09 09 20 20 20 20 09 69 6e 63 72 20 79 20 }].......}.else.{........incr.y.
15da0 5b 65 78 70 72 20 7b 2d 28 5b 24 6d 65 6e 75 20 79 70 6f 73 69 74 69 6f 6e 20 24 65 6e 74 72 79 [expr.{-([$menu.yposition.$entry
15dc0 5d 20 5c 0a 09 09 09 20 20 20 20 20 20 20 20 2b 20 5b 24 6d 65 6e 75 20 79 70 6f 73 69 74 69 6f ].\............+.[$menu.ypositio
15de0 6e 20 5b 65 78 70 72 20 7b 24 65 6e 74 72 79 2b 31 7d 5d 5d 29 2f 32 7d 5d 0a 09 09 20 20 20 20 n.[expr.{$entry+1}]])/2}].......
15e00 7d 0a 20 20 20 20 09 20 20 20 20 09 7d 0a 20 20 20 20 09 20 20 20 20 09 24 6d 65 6e 75 20 70 6f }...........}...........$menu.po
15e20 73 74 20 24 78 20 24 79 0a 09 09 69 66 20 7b 5b 73 74 72 69 6e 67 20 63 6f 6d 70 61 72 65 20 24 st.$x.$y...if.{[string.compare.$
15e40 65 6e 74 72 79 20 7b 7d 5d 20 26 26 20 5b 73 74 72 69 6e 67 20 63 6f 6d 70 61 72 65 20 5b 24 6d entry.{}].&&.[string.compare.[$m
15e60 65 6e 75 20 65 6e 74 72 79 63 67 65 74 20 24 65 6e 74 72 79 20 2d 73 74 61 74 65 5d 20 22 64 69 enu.entrycget.$entry.-state]."di
15e80 73 61 62 6c 65 64 22 5d 7d 20 7b 0a 20 20 20 20 09 20 20 20 20 09 20 20 20 20 24 6d 65 6e 75 20 sabled"]}.{...............$menu.
15ea0 61 63 74 69 76 61 74 65 20 24 65 6e 74 72 79 0a 09 09 20 20 20 20 74 6b 47 65 6e 65 72 61 74 65 activate.$entry.......tkGenerate
15ec0 4d 65 6e 75 53 65 6c 65 63 74 20 24 6d 65 6e 75 0a 20 20 20 20 09 20 20 20 20 09 7d 0a 20 20 20 MenuSelect.$menu...........}....
15ee0 20 09 20 20 20 20 7d 0a 20 20 20 20 09 20 20 20 20 64 65 66 61 75 6c 74 20 7b 0a 20 20 20 20 09 ......}..........default.{......
15f00 20 20 20 20 09 69 66 20 7b 5b 24 77 20 63 67 65 74 20 2d 69 6e 64 69 63 61 74 6f 72 6f 6e 5d 7d .....if.{[$w.cget.-indicatoron]}
15f20 20 7b 0a 09 09 20 20 20 20 69 66 20 7b 5b 73 74 72 69 6e 67 20 65 71 75 61 6c 20 24 79 20 7b 7d .{.......if.{[string.equal.$y.{}
15f40 5d 7d 20 7b 0a 09 09 09 73 65 74 20 78 20 5b 65 78 70 72 20 7b 5b 77 69 6e 66 6f 20 72 6f 6f 74 ]}.{....set.x.[expr.{[winfo.root
15f60 78 20 24 77 5d 20 2b 20 5b 77 69 6e 66 6f 20 77 69 64 74 68 20 24 77 5d 2f 32 7d 5d 0a 09 09 09 x.$w].+.[winfo.width.$w]/2}]....
15f80 73 65 74 20 79 20 5b 65 78 70 72 20 7b 5b 77 69 6e 66 6f 20 72 6f 6f 74 79 20 24 77 5d 20 2b 20 set.y.[expr.{[winfo.rooty.$w].+.
15fa0 5b 77 69 6e 66 6f 20 68 65 69 67 68 74 20 24 77 5d 2f 32 7d 5d 0a 09 20 20 20 20 09 20 20 20 20 [winfo.height.$w]/2}]...........
15fc0 7d 0a 09 20 20 20 20 20 20 20 20 20 20 20 20 74 6b 50 6f 73 74 4f 76 65 72 50 6f 69 6e 74 20 24 }..............tkPostOverPoint.$
15fe0 6d 65 6e 75 20 24 78 20 24 79 20 5b 74 6b 4d 65 6e 75 46 69 6e 64 4e 61 6d 65 20 24 6d 65 6e 75 menu.$x.$y.[tkMenuFindName.$menu
16000 20 5b 24 77 20 63 67 65 74 20 2d 74 65 78 74 5d 5d 0a 09 09 7d 20 65 6c 73 65 20 7b 0a 09 20 20 .[$w.cget.-text]]...}.else.{....
16020 20 20 09 20 20 20 20 24 6d 65 6e 75 20 70 6f 73 74 20 5b 77 69 6e 66 6f 20 72 6f 6f 74 78 20 24 .......$menu.post.[winfo.rootx.$
16040 77 5d 20 5b 65 78 70 72 20 7b 5b 77 69 6e 66 6f 20 72 6f 6f 74 79 20 24 77 5d 2b 5b 77 69 6e 66 w].[expr.{[winfo.rooty.$w]+[winf
16060 6f 20 68 65 69 67 68 74 20 24 77 5d 7d 5d 0a 20 20 20 20 09 20 20 20 20 09 7d 20 20 0a 20 20 20 o.height.$w]}]...........}......
16080 20 09 20 20 20 20 7d 0a 09 7d 0a 20 20 20 20 7d 20 6d 73 67 5d 7d 20 7b 0a 09 23 20 45 72 72 6f ......}..}.....}.msg]}.{..#.Erro
160a0 72 20 70 6f 73 74 69 6e 67 20 6d 65 6e 75 20 28 65 2e 67 2e 20 62 6f 67 75 73 20 2d 70 6f 73 74 r.posting.menu.(e.g..bogus.-post
160c0 63 6f 6d 6d 61 6e 64 29 2e 20 55 6e 70 6f 73 74 20 69 74 20 61 6e 64 0a 09 23 20 72 65 66 6c 65 command)..Unpost.it.and..#.refle
160e0 63 74 20 74 68 65 20 65 72 72 6f 72 2e 0a 09 0a 09 73 65 74 20 73 61 76 65 64 49 6e 66 6f 20 24 ct.the.error.....set.savedInfo.$
16100 65 72 72 6f 72 49 6e 66 6f 0a 09 74 6b 4d 65 6e 75 55 6e 70 6f 73 74 20 7b 7d 0a 09 65 72 72 6f errorInfo..tkMenuUnpost.{}..erro
16120 72 20 24 6d 73 67 20 24 73 61 76 65 64 49 6e 66 6f 0a 0a 20 20 20 20 7d 0a 0a 20 20 20 20 73 65 r.$msg.$savedInfo......}......se
16140 74 20 74 6b 50 72 69 76 28 74 65 61 72 6f 66 66 29 20 24 74 65 61 72 6f 66 66 0a 20 20 20 20 69 t.tkPriv(tearoff).$tearoff.....i
16160 66 20 7b 24 74 65 61 72 6f 66 66 20 21 3d 20 30 7d 20 7b 0a 20 20 20 20 09 66 6f 63 75 73 20 24 f.{$tearoff.!=.0}.{......focus.$
16180 6d 65 6e 75 0a 20 20 20 20 09 74 6b 53 61 76 65 47 72 61 62 49 6e 66 6f 20 24 77 0a 20 20 20 20 menu......tkSaveGrabInfo.$w.....
161a0 09 67 72 61 62 20 2d 67 6c 6f 62 61 6c 20 24 77 0a 20 20 20 20 7d 0a 7d 0a 0a 23 20 74 6b 4d 65 .grab.-global.$w.....}.}..#.tkMe
161c0 6e 75 55 6e 70 6f 73 74 20 2d 2d 0a 23 20 54 68 69 73 20 70 72 6f 63 65 64 75 72 65 20 75 6e 70 nuUnpost.--.#.This.procedure.unp
161e0 6f 73 74 73 20 61 20 67 69 76 65 6e 20 6d 65 6e 75 2c 20 70 6c 75 73 20 61 6c 6c 20 6f 66 20 69 osts.a.given.menu,.plus.all.of.i
16200 74 73 20 61 6e 63 65 73 74 6f 72 73 20 75 70 0a 23 20 74 6f 20 28 61 6e 64 20 69 6e 63 6c 75 64 ts.ancestors.up.#.to.(and.includ
16220 69 6e 67 29 20 61 20 6d 65 6e 75 62 75 74 74 6f 6e 2c 20 69 66 20 61 6e 79 2e 20 20 49 74 20 61 ing).a.menubutton,.if.any...It.a
16240 6c 73 6f 20 72 65 73 74 6f 72 65 73 20 76 61 72 69 6f 75 73 0a 23 20 76 61 6c 75 65 73 20 74 6f lso.restores.various.#.values.to
16260 20 77 68 61 74 20 74 68 65 79 20 77 65 72 65 20 62 65 66 6f 72 65 20 74 68 65 20 6d 65 6e 75 20 .what.they.were.before.the.menu.
16280 77 61 73 20 70 6f 73 74 65 64 2c 20 61 6e 64 20 72 65 6c 65 61 73 65 73 0a 23 20 61 20 67 72 61 was.posted,.and.releases.#.a.gra
162a0 62 20 69 66 20 74 68 65 72 65 27 73 20 61 20 6d 65 6e 75 62 75 74 74 6f 6e 20 69 6e 76 6f 6c 76 b.if.there's.a.menubutton.involv
162c0 65 64 2e 20 20 53 70 65 63 69 61 6c 20 6e 6f 74 65 73 3a 0a 23 20 31 2e 20 49 74 27 73 20 69 6d ed...Special.notes:.#.1..It's.im
162e0 70 6f 72 74 61 6e 74 20 74 6f 20 75 6e 70 6f 73 74 20 61 6c 6c 20 6d 65 6e 75 73 20 62 65 66 6f portant.to.unpost.all.menus.befo
16300 72 65 20 72 65 6c 65 61 73 69 6e 67 20 74 68 65 20 67 72 61 62 2c 20 73 6f 0a 23 20 20 20 20 74 re.releasing.the.grab,.so.#....t
16320 68 61 74 20 61 6e 79 20 45 6e 74 65 72 2d 4c 65 61 76 65 20 65 76 65 6e 74 73 20 28 65 2e 67 2e hat.any.Enter-Leave.events.(e.g.
16340 20 66 72 6f 6d 20 6d 65 6e 75 20 62 61 63 6b 20 74 6f 20 6d 61 69 6e 0a 23 20 20 20 20 61 70 70 .from.menu.back.to.main.#....app
16360 6c 69 63 61 74 69 6f 6e 29 20 68 61 76 65 20 6d 6f 64 65 20 4e 6f 74 69 66 79 47 72 61 62 2e 0a lication).have.mode.NotifyGrab..
16380 23 20 32 2e 20 42 65 20 73 75 72 65 20 74 6f 20 65 6e 63 6c 6f 73 65 20 76 61 72 69 6f 75 73 20 #.2..Be.sure.to.enclose.various.
163a0 67 72 6f 75 70 73 20 6f 66 20 63 6f 6d 6d 61 6e 64 73 20 69 6e 20 22 63 61 74 63 68 22 20 73 6f groups.of.commands.in."catch".so
163c0 20 74 68 61 74 0a 23 20 20 20 20 74 68 65 20 70 72 6f 63 65 64 75 72 65 20 77 69 6c 6c 20 63 6f .that.#....the.procedure.will.co
163e0 6d 70 6c 65 74 65 20 65 76 65 6e 20 69 66 20 74 68 65 20 6d 65 6e 75 62 75 74 74 6f 6e 20 6f 72 mplete.even.if.the.menubutton.or
16400 20 74 68 65 20 6d 65 6e 75 0a 23 20 20 20 20 6f 72 20 74 68 65 20 67 72 61 62 20 77 69 6e 64 6f .the.menu.#....or.the.grab.windo
16420 77 20 68 61 73 20 62 65 65 6e 20 64 65 6c 65 74 65 64 2e 0a 23 0a 23 20 41 72 67 75 6d 65 6e 74 w.has.been.deleted..#.#.Argument
16440 73 3a 0a 23 20 6d 65 6e 75 20 2d 09 09 4e 61 6d 65 20 6f 66 20 61 20 6d 65 6e 75 20 74 6f 20 75 s:.#.menu.-..Name.of.a.menu.to.u
16460 6e 70 6f 73 74 2e 20 20 49 67 6e 6f 72 65 64 20 69 66 20 74 68 65 72 65 0a 23 09 09 09 69 73 20 npost...Ignored.if.there.#...is.
16480 61 20 70 6f 73 74 65 64 20 6d 65 6e 75 62 75 74 74 6f 6e 2e 0a 0a 70 72 6f 63 20 74 6b 4d 65 6e a.posted.menubutton...proc.tkMen
164a0 75 55 6e 70 6f 73 74 20 6d 65 6e 75 20 7b 0a 20 20 20 20 67 6c 6f 62 61 6c 20 74 63 6c 5f 70 6c uUnpost.menu.{.....global.tcl_pl
164c0 61 74 66 6f 72 6d 0a 20 20 20 20 67 6c 6f 62 61 6c 20 74 6b 50 72 69 76 0a 20 20 20 20 73 65 74 atform.....global.tkPriv.....set
164e0 20 6d 62 20 24 74 6b 50 72 69 76 28 70 6f 73 74 65 64 4d 62 29 0a 0a 20 20 20 20 23 20 52 65 73 .mb.$tkPriv(postedMb)......#.Res
16500 74 6f 72 65 20 66 6f 63 75 73 20 72 69 67 68 74 20 61 77 61 79 20 28 6f 74 68 65 72 77 69 73 65 tore.focus.right.away.(otherwise
16520 20 58 20 77 69 6c 6c 20 74 61 6b 65 20 66 6f 63 75 73 20 61 77 61 79 20 77 68 65 6e 0a 20 20 20 .X.will.take.focus.away.when....
16540 20 23 20 74 68 65 20 6d 65 6e 75 20 69 73 20 75 6e 6d 61 70 70 65 64 20 61 6e 64 20 75 6e 64 65 .#.the.menu.is.unmapped.and.unde
16560 72 20 73 6f 6d 65 20 77 69 6e 64 6f 77 20 6d 61 6e 61 67 65 72 73 20 28 65 2e 67 2e 20 6f 6c 76 r.some.window.managers.(e.g..olv
16580 77 6d 29 0a 20 20 20 20 23 20 77 65 27 6c 6c 20 6c 6f 73 65 20 74 68 65 20 66 6f 63 75 73 20 63 wm).....#.we'll.lose.the.focus.c
165a0 6f 6d 70 6c 65 74 65 6c 79 29 2e 0a 0a 20 20 20 20 63 61 74 63 68 20 7b 66 6f 63 75 73 20 24 74 ompletely).......catch.{focus.$t
165c0 6b 50 72 69 76 28 66 6f 63 75 73 29 7d 0a 20 20 20 20 73 65 74 20 74 6b 50 72 69 76 28 66 6f 63 kPriv(focus)}.....set.tkPriv(foc
165e0 75 73 29 20 22 22 0a 0a 20 20 20 20 23 20 55 6e 70 6f 73 74 20 6d 65 6e 75 28 73 29 20 61 6e 64 us).""......#.Unpost.menu(s).and
16600 20 72 65 73 74 6f 72 65 20 73 6f 6d 65 20 73 74 75 66 66 20 74 68 61 74 27 73 20 64 65 70 65 6e .restore.some.stuff.that's.depen
16620 64 65 6e 74 20 6f 6e 0a 20 20 20 20 23 20 77 68 61 74 20 77 61 73 20 70 6f 73 74 65 64 2e 0a 0a dent.on.....#.what.was.posted...
16640 20 20 20 20 63 61 74 63 68 20 7b 0a 09 69 66 20 7b 5b 73 74 72 69 6e 67 20 63 6f 6d 70 61 72 65 ....catch.{..if.{[string.compare
16660 20 24 6d 62 20 22 22 5d 7d 20 7b 0a 09 20 20 20 20 73 65 74 20 6d 65 6e 75 20 5b 24 6d 62 20 63 .$mb.""]}.{......set.menu.[$mb.c
16680 67 65 74 20 2d 6d 65 6e 75 5d 0a 09 20 20 20 20 24 6d 65 6e 75 20 75 6e 70 6f 73 74 0a 09 20 20 get.-menu]......$menu.unpost....
166a0 20 20 73 65 74 20 74 6b 50 72 69 76 28 70 6f 73 74 65 64 4d 62 29 20 7b 7d 0a 09 20 20 20 20 24 ..set.tkPriv(postedMb).{}......$
166c0 6d 62 20 63 6f 6e 66 69 67 75 72 65 20 2d 63 75 72 73 6f 72 20 24 74 6b 50 72 69 76 28 63 75 72 mb.configure.-cursor.$tkPriv(cur
166e0 73 6f 72 29 0a 09 20 20 20 20 24 6d 62 20 63 6f 6e 66 69 67 75 72 65 20 2d 72 65 6c 69 65 66 20 sor)......$mb.configure.-relief.
16700 24 74 6b 50 72 69 76 28 72 65 6c 69 65 66 29 0a 09 7d 20 65 6c 73 65 69 66 20 7b 5b 73 74 72 69 $tkPriv(relief)..}.elseif.{[stri
16720 6e 67 20 63 6f 6d 70 61 72 65 20 24 74 6b 50 72 69 76 28 70 6f 70 75 70 29 20 22 22 5d 7d 20 7b ng.compare.$tkPriv(popup).""]}.{
16740 0a 09 20 20 20 20 24 74 6b 50 72 69 76 28 70 6f 70 75 70 29 20 75 6e 70 6f 73 74 0a 09 20 20 20 ......$tkPriv(popup).unpost.....
16760 20 73 65 74 20 74 6b 50 72 69 76 28 70 6f 70 75 70 29 20 7b 7d 0a 09 7d 20 65 6c 73 65 69 66 20 .set.tkPriv(popup).{}..}.elseif.
16780 7b 5b 73 74 72 69 6e 67 20 63 6f 6d 70 61 72 65 20 5b 24 6d 65 6e 75 20 63 67 65 74 20 2d 74 79 {[string.compare.[$menu.cget.-ty
167a0 70 65 5d 20 22 6d 65 6e 75 62 61 72 22 5d 20 5c 0a 09 09 26 26 20 5b 73 74 72 69 6e 67 20 63 6f pe]."menubar"].\...&&.[string.co
167c0 6d 70 61 72 65 20 5b 24 6d 65 6e 75 20 63 67 65 74 20 2d 74 79 70 65 5d 20 22 74 65 61 72 6f 66 mpare.[$menu.cget.-type]."tearof
167e0 66 22 5d 7d 20 7b 0a 09 20 20 20 20 23 20 57 65 27 72 65 20 69 6e 20 61 20 63 61 73 63 61 64 65 f"]}.{......#.We're.in.a.cascade
16800 64 20 73 75 62 2d 6d 65 6e 75 20 66 72 6f 6d 20 61 20 74 6f 72 6e 2d 6f 66 66 20 6d 65 6e 75 20 d.sub-menu.from.a.torn-off.menu.
16820 6f 72 20 70 6f 70 75 70 2e 0a 09 20 20 20 20 23 20 55 6e 70 6f 73 74 20 61 6c 6c 20 74 68 65 20 or.popup.......#.Unpost.all.the.
16840 6d 65 6e 75 73 20 75 70 20 74 6f 20 74 68 65 20 74 6f 70 6c 65 76 65 6c 20 6f 6e 65 20 28 62 75 menus.up.to.the.toplevel.one.(bu
16860 74 20 6e 6f 74 0a 09 20 20 20 20 23 20 69 6e 63 6c 75 64 69 6e 67 20 74 68 65 20 74 6f 70 2d 6c t.not......#.including.the.top-l
16880 65 76 65 6c 20 74 6f 72 6e 2d 6f 66 66 20 6f 6e 65 29 20 61 6e 64 20 64 65 61 63 74 69 76 61 74 evel.torn-off.one).and.deactivat
168a0 65 20 74 68 65 0a 09 20 20 20 20 23 20 74 6f 70 2d 6c 65 76 65 6c 20 74 6f 72 6e 20 6f 66 66 20 e.the......#.top-level.torn.off.
168c0 6d 65 6e 75 20 69 66 20 74 68 65 72 65 20 69 73 20 6f 6e 65 2e 0a 0a 09 20 20 20 20 77 68 69 6c menu.if.there.is.one........whil
168e0 65 20 31 20 7b 0a 09 09 73 65 74 20 70 61 72 65 6e 74 20 5b 77 69 6e 66 6f 20 70 61 72 65 6e 74 e.1.{...set.parent.[winfo.parent
16900 20 24 6d 65 6e 75 5d 0a 09 09 69 66 20 7b 5b 73 74 72 69 6e 67 20 63 6f 6d 70 61 72 65 20 5b 77 .$menu]...if.{[string.compare.[w
16920 69 6e 66 6f 20 63 6c 61 73 73 20 24 70 61 72 65 6e 74 5d 20 22 4d 65 6e 75 22 5d 20 5c 0a 09 09 info.class.$parent]."Menu"].\...
16940 09 7c 7c 20 21 5b 77 69 6e 66 6f 20 69 73 6d 61 70 70 65 64 20 24 70 61 72 65 6e 74 5d 7d 20 7b .||.![winfo.ismapped.$parent]}.{
16960 0a 09 09 20 20 20 20 62 72 65 61 6b 0a 09 09 7d 0a 09 09 24 70 61 72 65 6e 74 20 61 63 74 69 76 .......break...}...$parent.activ
16980 61 74 65 20 6e 6f 6e 65 0a 09 09 24 70 61 72 65 6e 74 20 70 6f 73 74 63 61 73 63 61 64 65 20 6e ate.none...$parent.postcascade.n
169a0 6f 6e 65 0a 09 09 74 6b 47 65 6e 65 72 61 74 65 4d 65 6e 75 53 65 6c 65 63 74 20 24 70 61 72 65 one...tkGenerateMenuSelect.$pare
169c0 6e 74 0a 09 09 73 65 74 20 74 79 70 65 20 5b 24 70 61 72 65 6e 74 20 63 67 65 74 20 2d 74 79 70 nt...set.type.[$parent.cget.-typ
169e0 65 5d 0a 09 09 69 66 20 7b 5b 73 74 72 69 6e 67 20 65 71 75 61 6c 20 24 74 79 70 65 20 22 6d 65 e]...if.{[string.equal.$type."me
16a00 6e 75 62 61 72 22 5d 20 7c 7c 20 5c 0a 09 09 09 5b 73 74 72 69 6e 67 20 65 71 75 61 6c 20 24 74 nubar"].||.\....[string.equal.$t
16a20 79 70 65 20 22 74 65 61 72 6f 66 66 22 5d 7d 20 7b 0a 09 09 20 20 20 20 62 72 65 61 6b 0a 09 09 ype."tearoff"]}.{.......break...
16a40 7d 0a 09 09 73 65 74 20 6d 65 6e 75 20 24 70 61 72 65 6e 74 0a 09 20 20 20 20 7d 0a 09 20 20 20 }...set.menu.$parent......}.....
16a60 20 69 66 20 7b 5b 73 74 72 69 6e 67 20 63 6f 6d 70 61 72 65 20 5b 24 6d 65 6e 75 20 63 67 65 74 .if.{[string.compare.[$menu.cget
16a80 20 2d 74 79 70 65 5d 20 22 6d 65 6e 75 62 61 72 22 5d 7d 20 7b 0a 09 09 24 6d 65 6e 75 20 75 6e .-type]."menubar"]}.{...$menu.un
16aa0 70 6f 73 74 0a 09 20 20 20 20 7d 0a 09 7d 0a 20 20 20 20 7d 0a 0a 20 20 20 20 69 66 20 7b 28 24 post......}..}.....}......if.{($
16ac0 74 6b 50 72 69 76 28 74 65 61 72 6f 66 66 29 20 21 3d 20 30 29 20 7c 7c 20 5b 73 74 72 69 6e 67 tkPriv(tearoff).!=.0).||.[string
16ae0 20 63 6f 6d 70 61 72 65 20 24 74 6b 50 72 69 76 28 6d 65 6e 75 42 61 72 29 20 22 22 5d 7d 20 7b .compare.$tkPriv(menuBar).""]}.{
16b00 0a 20 20 20 20 09 23 20 52 65 6c 65 61 73 65 20 67 72 61 62 2c 20 69 66 20 61 6e 79 2c 20 61 6e ......#.Release.grab,.if.any,.an
16b20 64 20 72 65 73 74 6f 72 65 20 74 68 65 20 70 72 65 76 69 6f 75 73 20 67 72 61 62 2c 20 69 66 20 d.restore.the.previous.grab,.if.
16b40 74 68 65 72 65 0a 20 20 20 20 09 23 20 77 61 73 20 6f 6e 65 2e 0a 09 69 66 20 7b 5b 73 74 72 69 there......#.was.one...if.{[stri
16b60 6e 67 20 63 6f 6d 70 61 72 65 20 24 6d 65 6e 75 20 22 22 5d 7d 20 7b 0a 09 20 20 20 20 73 65 74 ng.compare.$menu.""]}.{......set
16b80 20 67 72 61 62 20 5b 67 72 61 62 20 63 75 72 72 65 6e 74 20 24 6d 65 6e 75 5d 0a 09 20 20 20 20 .grab.[grab.current.$menu]......
16ba0 69 66 20 7b 5b 73 74 72 69 6e 67 20 63 6f 6d 70 61 72 65 20 24 67 72 61 62 20 22 22 5d 7d 20 7b if.{[string.compare.$grab.""]}.{
16bc0 0a 09 09 67 72 61 62 20 72 65 6c 65 61 73 65 20 24 67 72 61 62 0a 09 20 20 20 20 7d 0a 09 7d 0a ...grab.release.$grab......}..}.
16be0 09 74 6b 52 65 73 74 6f 72 65 4f 6c 64 47 72 61 62 0a 09 69 66 20 7b 5b 73 74 72 69 6e 67 20 63 .tkRestoreOldGrab..if.{[string.c
16c00 6f 6d 70 61 72 65 20 24 74 6b 50 72 69 76 28 6d 65 6e 75 42 61 72 29 20 22 22 5d 7d 20 7b 0a 09 ompare.$tkPriv(menuBar).""]}.{..
16c20 20 20 20 20 24 74 6b 50 72 69 76 28 6d 65 6e 75 42 61 72 29 20 63 6f 6e 66 69 67 75 72 65 20 2d ....$tkPriv(menuBar).configure.-
16c40 63 75 72 73 6f 72 20 24 74 6b 50 72 69 76 28 63 75 72 73 6f 72 29 0a 09 20 20 20 20 73 65 74 20 cursor.$tkPriv(cursor)......set.
16c60 74 6b 50 72 69 76 28 6d 65 6e 75 42 61 72 29 20 7b 7d 0a 09 7d 0a 09 69 66 20 7b 5b 73 74 72 69 tkPriv(menuBar).{}..}..if.{[stri
16c80 6e 67 20 63 6f 6d 70 61 72 65 20 24 74 63 6c 5f 70 6c 61 74 66 6f 72 6d 28 70 6c 61 74 66 6f 72 ng.compare.$tcl_platform(platfor
16ca0 6d 29 20 22 75 6e 69 78 22 5d 7d 20 7b 0a 09 20 20 20 20 73 65 74 20 74 6b 50 72 69 76 28 74 65 m)."unix"]}.{......set.tkPriv(te
16cc0 61 72 6f 66 66 29 20 30 0a 09 7d 0a 20 20 20 20 7d 0a 7d 0a 0a 23 20 74 6b 4d 62 4d 6f 74 69 6f aroff).0..}.....}.}..#.tkMbMotio
16ce0 6e 20 2d 2d 0a 23 20 54 68 69 73 20 70 72 6f 63 65 64 75 72 65 20 68 61 6e 64 6c 65 73 20 6d 6f n.--.#.This.procedure.handles.mo
16d00 75 73 65 20 6d 6f 74 69 6f 6e 20 65 76 65 6e 74 73 20 69 6e 73 69 64 65 20 6d 65 6e 75 62 75 74 use.motion.events.inside.menubut
16d20 74 6f 6e 73 2c 20 61 6e 64 0a 23 20 61 6c 73 6f 20 6f 75 74 73 69 64 65 20 6d 65 6e 75 62 75 74 tons,.and.#.also.outside.menubut
16d40 74 6f 6e 73 20 77 68 65 6e 20 61 20 6d 65 6e 75 62 75 74 74 6f 6e 20 68 61 73 20 61 20 67 72 61 tons.when.a.menubutton.has.a.gra
16d60 62 20 28 65 2e 67 2e 20 77 68 65 6e 20 61 0a 23 20 6d 65 6e 75 20 73 65 6c 65 63 74 69 6f 6e 20 b.(e.g..when.a.#.menu.selection.
16d80 6f 70 65 72 61 74 69 6f 6e 20 69 73 20 69 6e 20 70 72 6f 67 72 65 73 73 29 2e 0a 23 0a 23 20 41 operation.is.in.progress)..#.#.A
16da0 72 67 75 6d 65 6e 74 73 3a 0a 23 20 77 20 2d 09 09 09 54 68 65 20 6e 61 6d 65 20 6f 66 20 74 68 rguments:.#.w.-...The.name.of.th
16dc0 65 20 6d 65 6e 75 62 75 74 74 6f 6e 20 77 69 64 67 65 74 2e 0a 23 20 75 70 44 6f 77 6e 20 2d 20 e.menubutton.widget..#.upDown.-.
16de0 09 09 22 64 6f 77 6e 22 20 6d 65 61 6e 73 20 62 75 74 74 6f 6e 20 31 20 69 73 20 70 72 65 73 73 .."down".means.button.1.is.press
16e00 65 64 2c 20 22 75 70 22 20 6d 65 61 6e 73 0a 23 09 09 09 69 74 20 69 73 6e 27 74 2e 0a 23 20 72 ed,."up".means.#...it.isn't..#.r
16e20 6f 6f 74 78 2c 20 72 6f 6f 74 79 20 2d 09 43 6f 6f 72 64 69 6e 61 74 65 73 20 6f 66 20 6d 6f 75 ootx,.rooty.-.Coordinates.of.mou
16e40 73 65 2c 20 69 6e 20 28 76 69 72 74 75 61 6c 3f 29 20 72 6f 6f 74 20 77 69 6e 64 6f 77 2e 0a 0a se,.in.(virtual?).root.window...
16e60 70 72 6f 63 20 74 6b 4d 62 4d 6f 74 69 6f 6e 20 7b 77 20 75 70 44 6f 77 6e 20 72 6f 6f 74 78 20 proc.tkMbMotion.{w.upDown.rootx.
16e80 72 6f 6f 74 79 7d 20 7b 0a 20 20 20 20 67 6c 6f 62 61 6c 20 74 6b 50 72 69 76 0a 0a 20 20 20 20 rooty}.{.....global.tkPriv......
16ea0 69 66 20 7b 5b 73 74 72 69 6e 67 20 65 71 75 61 6c 20 24 74 6b 50 72 69 76 28 69 6e 4d 65 6e 75 if.{[string.equal.$tkPriv(inMenu
16ec0 62 75 74 74 6f 6e 29 20 24 77 5d 7d 20 7b 0a 09 72 65 74 75 72 6e 0a 20 20 20 20 7d 0a 20 20 20 button).$w]}.{..return.....}....
16ee0 20 73 65 74 20 6e 65 77 20 5b 77 69 6e 66 6f 20 63 6f 6e 74 61 69 6e 69 6e 67 20 24 72 6f 6f 74 .set.new.[winfo.containing.$root
16f00 78 20 24 72 6f 6f 74 79 5d 0a 20 20 20 20 69 66 20 7b 5b 73 74 72 69 6e 67 20 63 6f 6d 70 61 72 x.$rooty].....if.{[string.compar
16f20 65 20 24 6e 65 77 20 24 74 6b 50 72 69 76 28 69 6e 4d 65 6e 75 62 75 74 74 6f 6e 29 5d 20 5c 0a e.$new.$tkPriv(inMenubutton)].\.
16f40 09 20 20 20 20 26 26 20 28 5b 73 74 72 69 6e 67 20 65 71 75 61 6c 20 24 6e 65 77 20 22 22 5d 20 .....&&.([string.equal.$new.""].
16f60 5c 0a 09 20 20 20 20 7c 7c 20 5b 73 74 72 69 6e 67 20 65 71 75 61 6c 20 5b 77 69 6e 66 6f 20 74 \......||.[string.equal.[winfo.t
16f80 6f 70 6c 65 76 65 6c 20 24 6e 65 77 5d 20 5b 77 69 6e 66 6f 20 74 6f 70 6c 65 76 65 6c 20 24 77 oplevel.$new].[winfo.toplevel.$w
16fa0 5d 5d 29 7d 20 7b 0a 09 69 66 20 7b 5b 73 74 72 69 6e 67 20 63 6f 6d 70 61 72 65 20 24 74 6b 50 ]])}.{..if.{[string.compare.$tkP
16fc0 72 69 76 28 69 6e 4d 65 6e 75 62 75 74 74 6f 6e 29 20 22 22 5d 7d 20 7b 0a 09 20 20 20 20 74 6b riv(inMenubutton).""]}.{......tk
16fe0 4d 62 4c 65 61 76 65 20 24 74 6b 50 72 69 76 28 69 6e 4d 65 6e 75 62 75 74 74 6f 6e 29 0a 09 7d MbLeave.$tkPriv(inMenubutton)..}
17000 0a 09 69 66 20 7b 5b 73 74 72 69 6e 67 20 63 6f 6d 70 61 72 65 20 24 6e 65 77 20 22 22 5d 20 5c ..if.{[string.compare.$new.""].\
17020 0a 09 09 26 26 20 5b 73 74 72 69 6e 67 20 65 71 75 61 6c 20 5b 77 69 6e 66 6f 20 63 6c 61 73 73 ...&&.[string.equal.[winfo.class
17040 20 24 6e 65 77 5d 20 22 4d 65 6e 75 62 75 74 74 6f 6e 22 5d 20 5c 0a 09 09 26 26 20 28 5b 24 6e .$new]."Menubutton"].\...&&.([$n
17060 65 77 20 63 67 65 74 20 2d 69 6e 64 69 63 61 74 6f 72 6f 6e 5d 20 3d 3d 20 30 29 20 5c 0a 09 09 ew.cget.-indicatoron].==.0).\...
17080 26 26 20 28 5b 24 77 20 63 67 65 74 20 2d 69 6e 64 69 63 61 74 6f 72 6f 6e 5d 20 3d 3d 20 30 29 &&.([$w.cget.-indicatoron].==.0)
170a0 7d 20 7b 0a 09 20 20 20 20 69 66 20 7b 5b 73 74 72 69 6e 67 20 65 71 75 61 6c 20 24 75 70 44 6f }.{......if.{[string.equal.$upDo
170c0 77 6e 20 22 64 6f 77 6e 22 5d 7d 20 7b 0a 09 09 74 6b 4d 62 50 6f 73 74 20 24 6e 65 77 20 24 72 wn."down"]}.{...tkMbPost.$new.$r
170e0 6f 6f 74 78 20 24 72 6f 6f 74 79 0a 09 20 20 20 20 7d 20 65 6c 73 65 20 7b 0a 09 09 74 6b 4d 62 ootx.$rooty......}.else.{...tkMb
17100 45 6e 74 65 72 20 24 6e 65 77 0a 09 20 20 20 20 7d 0a 09 7d 0a 20 20 20 20 7d 0a 7d 0a 0a 23 20 Enter.$new......}..}.....}.}..#.
17120 74 6b 4d 62 42 75 74 74 6f 6e 55 70 20 2d 2d 0a 23 20 54 68 69 73 20 70 72 6f 63 65 64 75 72 65 tkMbButtonUp.--.#.This.procedure
17140 20 69 73 20 69 6e 76 6f 6b 65 64 20 74 6f 20 68 61 6e 64 6c 65 20 62 75 74 74 6f 6e 20 31 20 72 .is.invoked.to.handle.button.1.r
17160 65 6c 65 61 73 65 73 20 66 6f 72 20 6d 65 6e 75 62 75 74 74 6f 6e 73 2e 0a 23 20 49 66 20 74 68 eleases.for.menubuttons..#.If.th
17180 65 20 72 65 6c 65 61 73 65 20 68 61 70 70 65 6e 73 20 69 6e 73 69 64 65 20 74 68 65 20 6d 65 6e e.release.happens.inside.the.men
171a0 75 62 75 74 74 6f 6e 20 74 68 65 6e 20 6c 65 61 76 65 20 69 74 73 20 6d 65 6e 75 0a 23 20 70 6f ubutton.then.leave.its.menu.#.po
171c0 73 74 65 64 20 77 69 74 68 20 65 6c 65 6d 65 6e 74 20 30 20 61 63 74 69 76 61 74 65 64 2e 20 20 sted.with.element.0.activated...
171e0 4f 74 68 65 72 77 69 73 65 2c 20 75 6e 70 6f 73 74 20 74 68 65 20 6d 65 6e 75 2e 0a 23 0a 23 20 Otherwise,.unpost.the.menu..#.#.
17200 41 72 67 75 6d 65 6e 74 73 3a 0a 23 20 77 20 2d 09 09 09 54 68 65 20 6e 61 6d 65 20 6f 66 20 74 Arguments:.#.w.-...The.name.of.t
17220 68 65 20 6d 65 6e 75 62 75 74 74 6f 6e 20 77 69 64 67 65 74 2e 0a 0a 70 72 6f 63 20 74 6b 4d 62 he.menubutton.widget...proc.tkMb
17240 42 75 74 74 6f 6e 55 70 20 77 20 7b 0a 20 20 20 20 67 6c 6f 62 61 6c 20 74 6b 50 72 69 76 0a 20 ButtonUp.w.{.....global.tkPriv..
17260 20 20 20 67 6c 6f 62 61 6c 20 74 63 6c 5f 70 6c 61 74 66 6f 72 6d 0a 0a 20 20 20 20 73 65 74 20 ...global.tcl_platform......set.
17280 6d 65 6e 75 20 5b 24 77 20 63 67 65 74 20 2d 6d 65 6e 75 5d 0a 20 20 20 20 73 65 74 20 74 65 61 menu.[$w.cget.-menu].....set.tea
172a0 72 6f 66 66 20 5b 65 78 70 72 20 7b 5b 73 74 72 69 6e 67 20 65 71 75 61 6c 20 24 74 63 6c 5f 70 roff.[expr.{[string.equal.$tcl_p
172c0 6c 61 74 66 6f 72 6d 28 70 6c 61 74 66 6f 72 6d 29 20 22 75 6e 69 78 22 5d 20 7c 7c 20 5c 0a 09 latform(platform)."unix"].||.\..
172e0 20 20 20 20 28 5b 73 74 72 69 6e 67 20 63 6f 6d 70 61 72 65 20 24 6d 65 6e 75 20 7b 7d 5d 20 26 ....([string.compare.$menu.{}].&
17300 26 20 5c 0a 09 20 20 20 20 5b 73 74 72 69 6e 67 20 65 71 75 61 6c 20 5b 24 6d 65 6e 75 20 63 67 &.\......[string.equal.[$menu.cg
17320 65 74 20 2d 74 79 70 65 5d 20 22 74 65 61 72 6f 66 66 22 5d 29 7d 5d 0a 20 20 20 20 69 66 20 7b et.-type]."tearoff"])}].....if.{
17340 28 24 74 65 61 72 6f 66 66 20 21 3d 20 30 29 20 26 26 20 5b 73 74 72 69 6e 67 20 65 71 75 61 6c ($tearoff.!=.0).&&.[string.equal
17360 20 24 74 6b 50 72 69 76 28 70 6f 73 74 65 64 4d 62 29 20 24 77 5d 20 5c 0a 09 20 20 20 20 26 26 .$tkPriv(postedMb).$w].\......&&
17380 20 5b 73 74 72 69 6e 67 20 65 71 75 61 6c 20 24 74 6b 50 72 69 76 28 69 6e 4d 65 6e 75 62 75 74 .[string.equal.$tkPriv(inMenubut
173a0 74 6f 6e 29 20 24 77 5d 7d 20 7b 0a 09 74 6b 4d 65 6e 75 46 69 72 73 74 45 6e 74 72 79 20 5b 24 ton).$w]}.{..tkMenuFirstEntry.[$
173c0 74 6b 50 72 69 76 28 70 6f 73 74 65 64 4d 62 29 20 63 67 65 74 20 2d 6d 65 6e 75 5d 0a 20 20 20 tkPriv(postedMb).cget.-menu]....
173e0 20 7d 20 65 6c 73 65 20 7b 0a 09 74 6b 4d 65 6e 75 55 6e 70 6f 73 74 20 7b 7d 0a 20 20 20 20 7d .}.else.{..tkMenuUnpost.{}.....}
17400 0a 7d 0a 0a 23 20 74 6b 4d 65 6e 75 4d 6f 74 69 6f 6e 20 2d 2d 0a 23 20 54 68 69 73 20 70 72 6f .}..#.tkMenuMotion.--.#.This.pro
17420 63 65 64 75 72 65 20 69 73 20 63 61 6c 6c 65 64 20 74 6f 20 68 61 6e 64 6c 65 20 6d 6f 75 73 65 cedure.is.called.to.handle.mouse
17440 20 6d 6f 74 69 6f 6e 20 65 76 65 6e 74 73 20 66 6f 72 20 6d 65 6e 75 73 2e 0a 23 20 49 74 20 64 .motion.events.for.menus..#.It.d
17460 6f 65 73 20 74 77 6f 20 74 68 69 6e 67 73 2e 20 20 46 69 72 73 74 2c 20 69 74 20 72 65 73 65 74 oes.two.things...First,.it.reset
17480 73 20 74 68 65 20 61 63 74 69 76 65 20 65 6c 65 6d 65 6e 74 20 69 6e 20 74 68 65 0a 23 20 6d 65 s.the.active.element.in.the.#.me
174a0 6e 75 2c 20 69 66 20 74 68 65 20 6d 6f 75 73 65 20 69 73 20 6f 76 65 72 20 74 68 65 20 6d 65 6e nu,.if.the.mouse.is.over.the.men
174c0 75 2e 20 20 53 65 63 6f 6e 64 2c 20 69 66 20 61 20 6d 6f 75 73 65 20 62 75 74 74 6f 6e 0a 23 20 u...Second,.if.a.mouse.button.#.
174e0 69 73 20 64 6f 77 6e 2c 20 69 74 20 70 6f 73 74 73 20 61 6e 64 20 75 6e 70 6f 73 74 73 20 63 61 is.down,.it.posts.and.unposts.ca
17500 73 63 61 64 65 20 65 6e 74 72 69 65 73 20 74 6f 20 6d 61 74 63 68 20 74 68 65 20 6d 6f 75 73 65 scade.entries.to.match.the.mouse
17520 0a 23 20 70 6f 73 69 74 69 6f 6e 2e 0a 23 0a 23 20 41 72 67 75 6d 65 6e 74 73 3a 0a 23 20 6d 65 .#.position..#.#.Arguments:.#.me
17540 6e 75 20 2d 09 09 54 68 65 20 6d 65 6e 75 20 77 69 6e 64 6f 77 2e 0a 23 20 78 20 2d 09 09 09 54 nu.-..The.menu.window..#.x.-...T
17560 68 65 20 78 20 70 6f 73 69 74 69 6f 6e 20 6f 66 20 74 68 65 20 6d 6f 75 73 65 2e 0a 23 20 79 20 he.x.position.of.the.mouse..#.y.
17580 2d 09 09 09 54 68 65 20 79 20 70 6f 73 69 74 69 6f 6e 20 6f 66 20 74 68 65 20 6d 6f 75 73 65 2e -...The.y.position.of.the.mouse.
175a0 0a 23 20 73 74 61 74 65 20 2d 09 09 4d 6f 64 69 66 69 65 72 20 73 74 61 74 65 20 28 74 65 6c 6c .#.state.-..Modifier.state.(tell
175c0 73 20 77 68 65 74 68 65 72 20 62 75 74 74 6f 6e 73 20 61 72 65 20 64 6f 77 6e 29 2e 0a 0a 70 72 s.whether.buttons.are.down)...pr
175e0 6f 63 20 74 6b 4d 65 6e 75 4d 6f 74 69 6f 6e 20 7b 6d 65 6e 75 20 78 20 79 20 73 74 61 74 65 7d oc.tkMenuMotion.{menu.x.y.state}
17600 20 7b 0a 20 20 20 20 67 6c 6f 62 61 6c 20 74 6b 50 72 69 76 0a 20 20 20 20 69 66 20 7b 5b 73 74 .{.....global.tkPriv.....if.{[st
17620 72 69 6e 67 20 65 71 75 61 6c 20 24 6d 65 6e 75 20 24 74 6b 50 72 69 76 28 77 69 6e 64 6f 77 29 ring.equal.$menu.$tkPriv(window)
17640 5d 7d 20 7b 0a 09 69 66 20 7b 5b 73 74 72 69 6e 67 20 65 71 75 61 6c 20 5b 24 6d 65 6e 75 20 63 ]}.{..if.{[string.equal.[$menu.c
17660 67 65 74 20 2d 74 79 70 65 5d 20 22 6d 65 6e 75 62 61 72 22 5d 7d 20 7b 0a 09 20 20 20 20 69 66 get.-type]."menubar"]}.{......if
17680 20 7b 5b 69 6e 66 6f 20 65 78 69 73 74 73 20 74 6b 50 72 69 76 28 66 6f 63 75 73 29 5d 20 26 26 .{[info.exists.tkPriv(focus)].&&
176a0 20 5c 0a 09 09 20 20 20 20 5b 73 74 72 69 6e 67 20 63 6f 6d 70 61 72 65 20 24 6d 65 6e 75 20 24 .\.......[string.compare.$menu.$
176c0 74 6b 50 72 69 76 28 66 6f 63 75 73 29 5d 7d 20 7b 0a 09 09 24 6d 65 6e 75 20 61 63 74 69 76 61 tkPriv(focus)]}.{...$menu.activa
176e0 74 65 20 40 24 78 2c 24 79 0a 09 09 74 6b 47 65 6e 65 72 61 74 65 4d 65 6e 75 53 65 6c 65 63 74 te.@$x,$y...tkGenerateMenuSelect
17700 20 24 6d 65 6e 75 0a 09 20 20 20 20 7d 0a 09 7d 20 65 6c 73 65 20 7b 0a 09 20 20 20 20 24 6d 65 .$menu......}..}.else.{......$me
17720 6e 75 20 61 63 74 69 76 61 74 65 20 40 24 78 2c 24 79 0a 09 20 20 20 20 74 6b 47 65 6e 65 72 61 nu.activate.@$x,$y......tkGenera
17740 74 65 4d 65 6e 75 53 65 6c 65 63 74 20 24 6d 65 6e 75 0a 09 7d 0a 20 20 20 20 7d 0a 20 20 20 20 teMenuSelect.$menu..}.....}.....
17760 69 66 20 7b 28 24 73 74 61 74 65 20 26 20 30 78 31 66 30 30 29 20 21 3d 20 30 7d 20 7b 0a 09 24 if.{($state.&.0x1f00).!=.0}.{..$
17780 6d 65 6e 75 20 70 6f 73 74 63 61 73 63 61 64 65 20 61 63 74 69 76 65 0a 20 20 20 20 7d 0a 7d 0a menu.postcascade.active.....}.}.
177a0 0a 23 20 74 6b 4d 65 6e 75 42 75 74 74 6f 6e 44 6f 77 6e 20 2d 2d 0a 23 20 48 61 6e 64 6c 65 73 .#.tkMenuButtonDown.--.#.Handles
177c0 20 62 75 74 74 6f 6e 20 70 72 65 73 73 65 73 20 69 6e 20 6d 65 6e 75 73 2e 20 20 54 68 65 72 65 .button.presses.in.menus...There
177e0 20 61 72 65 20 61 20 63 6f 75 70 6c 65 20 6f 66 20 74 72 69 63 6b 79 20 74 68 69 6e 67 73 0a 23 .are.a.couple.of.tricky.things.#
17800 20 68 65 72 65 3a 0a 23 20 31 2e 20 43 68 61 6e 67 65 20 74 68 65 20 70 6f 73 74 65 64 20 63 61 .here:.#.1..Change.the.posted.ca
17820 73 63 61 64 65 20 65 6e 74 72 79 20 28 69 66 20 61 6e 79 29 20 74 6f 20 6d 61 74 63 68 20 74 68 scade.entry.(if.any).to.match.th
17840 65 20 6d 6f 75 73 65 20 70 6f 73 69 74 69 6f 6e 2e 0a 23 20 32 2e 20 49 66 20 74 68 65 72 65 20 e.mouse.position..#.2..If.there.
17860 69 73 20 61 20 70 6f 73 74 65 64 20 6d 65 6e 75 62 75 74 74 6f 6e 2c 20 6d 75 73 74 20 67 72 61 is.a.posted.menubutton,.must.gra
17880 62 20 74 6f 20 74 68 65 20 6d 65 6e 75 62 75 74 74 6f 6e 3b 20 20 74 68 69 73 0a 23 20 20 20 20 b.to.the.menubutton;..this.#....
178a0 6f 76 65 72 72 72 69 64 65 73 20 74 68 65 20 69 6d 70 6c 69 63 69 74 20 67 72 61 62 20 6f 6e 20 overrrides.the.implicit.grab.on.
178c0 62 75 74 74 6f 6e 20 70 72 65 73 73 2c 20 73 6f 20 74 68 61 74 20 74 68 65 20 6d 65 6e 75 0a 23 button.press,.so.that.the.menu.#
178e0 20 20 20 20 62 75 74 74 6f 6e 20 63 61 6e 20 74 72 61 63 6b 20 6d 6f 75 73 65 20 6d 6f 74 69 6f ....button.can.track.mouse.motio
17900 6e 73 20 6f 76 65 72 20 6f 74 68 65 72 20 6d 65 6e 75 62 75 74 74 6f 6e 73 20 61 6e 64 20 63 68 ns.over.other.menubuttons.and.ch
17920 61 6e 67 65 0a 23 20 20 20 20 74 68 65 20 70 6f 73 74 65 64 20 6d 65 6e 75 2e 0a 23 20 33 2e 20 ange.#....the.posted.menu..#.3..
17940 49 66 20 74 68 65 72 65 27 73 20 6e 6f 20 70 6f 73 74 65 64 20 6d 65 6e 75 62 75 74 74 6f 6e 20 If.there's.no.posted.menubutton.
17960 28 65 2e 67 2e 20 62 65 63 61 75 73 65 20 77 65 27 72 65 20 61 20 74 6f 72 6e 2d 6f 66 66 20 6d (e.g..because.we're.a.torn-off.m
17980 65 6e 75 0a 23 20 20 20 20 6f 72 20 6f 6e 65 20 6f 66 20 69 74 73 20 64 65 73 63 65 6e 64 61 6e enu.#....or.one.of.its.descendan
179a0 74 73 29 20 6d 75 73 74 20 67 72 61 62 20 74 6f 20 74 68 65 20 74 6f 70 2d 6c 65 76 65 6c 20 6d ts).must.grab.to.the.top-level.m
179c0 65 6e 75 20 73 6f 20 74 68 61 74 0a 23 20 20 20 20 77 65 20 63 61 6e 20 74 72 61 63 6b 20 6d 6f enu.so.that.#....we.can.track.mo
179e0 75 73 65 20 6d 6f 74 69 6f 6e 73 20 61 63 72 6f 73 73 20 74 68 65 20 65 6e 74 69 72 65 20 6d 65 use.motions.across.the.entire.me
17a00 6e 75 20 68 69 65 72 61 72 63 68 79 2e 0a 23 0a 23 20 41 72 67 75 6d 65 6e 74 73 3a 0a 23 20 6d nu.hierarchy..#.#.Arguments:.#.m
17a20 65 6e 75 20 2d 09 09 54 68 65 20 6d 65 6e 75 20 77 69 6e 64 6f 77 2e 0a 0a 70 72 6f 63 20 74 6b enu.-..The.menu.window...proc.tk
17a40 4d 65 6e 75 42 75 74 74 6f 6e 44 6f 77 6e 20 6d 65 6e 75 20 7b 0a 20 20 20 20 67 6c 6f 62 61 6c MenuButtonDown.menu.{.....global
17a60 20 74 6b 50 72 69 76 0a 20 20 20 20 67 6c 6f 62 61 6c 20 74 63 6c 5f 70 6c 61 74 66 6f 72 6d 0a .tkPriv.....global.tcl_platform.
17a80 0a 20 20 20 20 69 66 20 7b 21 5b 77 69 6e 66 6f 20 76 69 65 77 61 62 6c 65 20 24 6d 65 6e 75 5d .....if.{![winfo.viewable.$menu]
17aa0 7d 20 7b 0a 20 20 20 20 20 20 20 20 72 65 74 75 72 6e 0a 20 20 20 20 7d 0a 20 20 20 20 24 6d 65 }.{.........return.....}.....$me
17ac0 6e 75 20 70 6f 73 74 63 61 73 63 61 64 65 20 61 63 74 69 76 65 0a 20 20 20 20 69 66 20 7b 5b 73 nu.postcascade.active.....if.{[s
17ae0 74 72 69 6e 67 20 63 6f 6d 70 61 72 65 20 24 74 6b 50 72 69 76 28 70 6f 73 74 65 64 4d 62 29 20 tring.compare.$tkPriv(postedMb).
17b00 22 22 5d 7d 20 7b 0a 09 67 72 61 62 20 2d 67 6c 6f 62 61 6c 20 24 74 6b 50 72 69 76 28 70 6f 73 ""]}.{..grab.-global.$tkPriv(pos
17b20 74 65 64 4d 62 29 0a 20 20 20 20 7d 20 65 6c 73 65 20 7b 0a 09 77 68 69 6c 65 20 7b 5b 73 74 72 tedMb).....}.else.{..while.{[str
17b40 69 6e 67 20 65 71 75 61 6c 20 5b 24 6d 65 6e 75 20 63 67 65 74 20 2d 74 79 70 65 5d 20 22 6e 6f ing.equal.[$menu.cget.-type]."no
17b60 72 6d 61 6c 22 5d 20 5c 0a 09 09 26 26 20 5b 73 74 72 69 6e 67 20 65 71 75 61 6c 20 5b 77 69 6e rmal"].\...&&.[string.equal.[win
17b80 66 6f 20 63 6c 61 73 73 20 5b 77 69 6e 66 6f 20 70 61 72 65 6e 74 20 24 6d 65 6e 75 5d 5d 20 22 fo.class.[winfo.parent.$menu]]."
17ba0 4d 65 6e 75 22 5d 20 5c 0a 09 09 26 26 20 5b 77 69 6e 66 6f 20 69 73 6d 61 70 70 65 64 20 5b 77 Menu"].\...&&.[winfo.ismapped.[w
17bc0 69 6e 66 6f 20 70 61 72 65 6e 74 20 24 6d 65 6e 75 5d 5d 7d 20 7b 0a 09 20 20 20 20 73 65 74 20 info.parent.$menu]]}.{......set.
17be0 6d 65 6e 75 20 5b 77 69 6e 66 6f 20 70 61 72 65 6e 74 20 24 6d 65 6e 75 5d 0a 09 7d 0a 0a 09 69 menu.[winfo.parent.$menu]..}...i
17c00 66 20 7b 5b 73 74 72 69 6e 67 20 65 71 75 61 6c 20 24 74 6b 50 72 69 76 28 6d 65 6e 75 42 61 72 f.{[string.equal.$tkPriv(menuBar
17c20 29 20 7b 7d 5d 7d 20 7b 0a 09 20 20 20 20 73 65 74 20 74 6b 50 72 69 76 28 6d 65 6e 75 42 61 72 ).{}]}.{......set.tkPriv(menuBar
17c40 29 20 24 6d 65 6e 75 0a 09 20 20 20 20 73 65 74 20 74 6b 50 72 69 76 28 63 75 72 73 6f 72 29 20 ).$menu......set.tkPriv(cursor).
17c60 5b 24 6d 65 6e 75 20 63 67 65 74 20 2d 63 75 72 73 6f 72 5d 0a 09 20 20 20 20 24 6d 65 6e 75 20 [$menu.cget.-cursor]......$menu.
17c80 63 6f 6e 66 69 67 75 72 65 20 2d 63 75 72 73 6f 72 20 61 72 72 6f 77 0a 20 20 20 20 20 20 20 20 configure.-cursor.arrow.........
17ca0 7d 0a 0a 09 23 20 44 6f 6e 27 74 20 75 70 64 61 74 65 20 67 72 61 62 20 69 6e 66 6f 72 6d 61 74 }...#.Don't.update.grab.informat
17cc0 69 6f 6e 20 69 66 20 74 68 65 20 67 72 61 62 20 77 69 6e 64 6f 77 20 69 73 6e 27 74 20 63 68 61 ion.if.the.grab.window.isn't.cha
17ce0 6e 67 69 6e 67 2e 0a 09 23 20 4f 74 68 65 72 77 69 73 65 2c 20 77 65 27 6c 6c 20 67 65 74 20 61 nging...#.Otherwise,.we'll.get.a
17d00 6e 20 65 72 72 6f 72 20 77 68 65 6e 20 77 65 20 75 6e 70 6f 73 74 20 74 68 65 20 6d 65 6e 75 73 n.error.when.we.unpost.the.menus
17d20 20 61 6e 64 0a 09 23 20 72 65 73 74 6f 72 65 20 74 68 65 20 67 72 61 62 2c 20 73 69 6e 63 65 20 .and..#.restore.the.grab,.since.
17d40 74 68 65 20 6f 6c 64 20 67 72 61 62 20 77 69 6e 64 6f 77 20 77 69 6c 6c 20 6e 6f 74 20 62 65 20 the.old.grab.window.will.not.be.
17d60 76 69 65 77 61 62 6c 65 0a 09 23 20 61 6e 79 6d 6f 72 65 2e 0a 0a 09 69 66 20 7b 5b 73 74 72 69 viewable..#.anymore....if.{[stri
17d80 6e 67 20 63 6f 6d 70 61 72 65 20 24 6d 65 6e 75 20 5b 67 72 61 62 20 63 75 72 72 65 6e 74 20 24 ng.compare.$menu.[grab.current.$
17da0 6d 65 6e 75 5d 5d 7d 20 7b 0a 09 20 20 20 20 74 6b 53 61 76 65 47 72 61 62 49 6e 66 6f 20 24 6d menu]]}.{......tkSaveGrabInfo.$m
17dc0 65 6e 75 0a 09 7d 0a 0a 09 23 20 4d 75 73 74 20 72 65 2d 67 72 61 62 20 65 76 65 6e 20 69 66 20 enu..}...#.Must.re-grab.even.if.
17de0 74 68 65 20 67 72 61 62 20 77 69 6e 64 6f 77 20 68 61 73 6e 27 74 20 63 68 61 6e 67 65 64 2c 20 the.grab.window.hasn't.changed,.
17e00 69 6e 20 6f 72 64 65 72 0a 09 23 20 74 6f 20 72 65 6c 65 61 73 65 20 74 68 65 20 69 6d 70 6c 69 in.order..#.to.release.the.impli
17e20 63 69 74 20 67 72 61 62 20 66 72 6f 6d 20 74 68 65 20 62 75 74 74 6f 6e 20 70 72 65 73 73 2e 0a cit.grab.from.the.button.press..
17e40 0a 09 69 66 20 7b 5b 73 74 72 69 6e 67 20 65 71 75 61 6c 20 24 74 63 6c 5f 70 6c 61 74 66 6f 72 ..if.{[string.equal.$tcl_platfor
17e60 6d 28 70 6c 61 74 66 6f 72 6d 29 20 22 75 6e 69 78 22 5d 7d 20 7b 0a 09 20 20 20 20 67 72 61 62 m(platform)."unix"]}.{......grab
17e80 20 2d 67 6c 6f 62 61 6c 20 24 6d 65 6e 75 0a 09 7d 0a 20 20 20 20 7d 0a 7d 0a 0a 23 20 74 6b 4d .-global.$menu..}.....}.}..#.tkM
17ea0 65 6e 75 4c 65 61 76 65 20 2d 2d 0a 23 20 54 68 69 73 20 70 72 6f 63 65 64 75 72 65 20 69 73 20 enuLeave.--.#.This.procedure.is.
17ec0 69 6e 76 6f 6b 65 64 20 74 6f 20 68 61 6e 64 6c 65 20 4c 65 61 76 65 20 65 76 65 6e 74 73 20 66 invoked.to.handle.Leave.events.f
17ee0 6f 72 20 61 20 6d 65 6e 75 2e 20 20 49 74 0a 23 20 64 65 61 63 74 69 76 61 74 65 73 20 65 76 65 or.a.menu...It.#.deactivates.eve
17f00 72 79 74 68 69 6e 67 20 75 6e 6c 65 73 73 20 74 68 65 20 61 63 74 69 76 65 20 65 6c 65 6d 65 6e rything.unless.the.active.elemen
17f20 74 20 69 73 20 61 20 63 61 73 63 61 64 65 20 65 6c 65 6d 65 6e 74 0a 23 20 61 6e 64 20 74 68 65 t.is.a.cascade.element.#.and.the
17f40 20 6d 6f 75 73 65 20 69 73 20 6e 6f 77 20 6f 76 65 72 20 74 68 65 20 73 75 62 6d 65 6e 75 2e 0a .mouse.is.now.over.the.submenu..
17f60 23 0a 23 20 41 72 67 75 6d 65 6e 74 73 3a 0a 23 20 6d 65 6e 75 20 2d 09 09 54 68 65 20 6d 65 6e #.#.Arguments:.#.menu.-..The.men
17f80 75 20 77 69 6e 64 6f 77 2e 0a 23 20 72 6f 6f 74 78 2c 20 72 6f 6f 74 79 20 2d 09 52 6f 6f 74 20 u.window..#.rootx,.rooty.-.Root.
17fa0 63 6f 6f 72 64 69 6e 61 74 65 73 20 6f 66 20 6d 6f 75 73 65 2e 0a 23 20 73 74 61 74 65 20 2d 09 coordinates.of.mouse..#.state.-.
17fc0 09 4d 6f 64 69 66 69 65 72 20 73 74 61 74 65 2e 0a 0a 70 72 6f 63 20 74 6b 4d 65 6e 75 4c 65 61 .Modifier.state...proc.tkMenuLea
17fe0 76 65 20 7b 6d 65 6e 75 20 72 6f 6f 74 78 20 72 6f 6f 74 79 20 73 74 61 74 65 7d 20 7b 0a 20 20 ve.{menu.rootx.rooty.state}.{...
18000 20 20 67 6c 6f 62 61 6c 20 74 6b 50 72 69 76 0a 20 20 20 20 73 65 74 20 74 6b 50 72 69 76 28 77 ..global.tkPriv.....set.tkPriv(w
18020 69 6e 64 6f 77 29 20 7b 7d 0a 20 20 20 20 69 66 20 7b 5b 73 74 72 69 6e 67 20 65 71 75 61 6c 20 indow).{}.....if.{[string.equal.
18040 5b 24 6d 65 6e 75 20 69 6e 64 65 78 20 61 63 74 69 76 65 5d 20 22 6e 6f 6e 65 22 5d 7d 20 7b 0a [$menu.index.active]."none"]}.{.
18060 09 72 65 74 75 72 6e 0a 20 20 20 20 7d 0a 20 20 20 20 69 66 20 7b 5b 73 74 72 69 6e 67 20 65 71 .return.....}.....if.{[string.eq
18080 75 61 6c 20 5b 24 6d 65 6e 75 20 74 79 70 65 20 61 63 74 69 76 65 5d 20 22 63 61 73 63 61 64 65 ual.[$menu.type.active]."cascade
180a0 22 5d 0a 20 20 20 20 20 20 20 20 20 20 26 26 20 5b 73 74 72 69 6e 67 20 65 71 75 61 6c 20 5b 77 "]...........&&.[string.equal.[w
180c0 69 6e 66 6f 20 63 6f 6e 74 61 69 6e 69 6e 67 20 24 72 6f 6f 74 78 20 24 72 6f 6f 74 79 5d 20 5c info.containing.$rootx.$rooty].\
180e0 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 5b 24 6d 65 6e 75 20 65 6e 74 72 79 63 ...................[$menu.entryc
18100 67 65 74 20 61 63 74 69 76 65 20 2d 6d 65 6e 75 5d 5d 7d 20 7b 0a 09 72 65 74 75 72 6e 0a 20 20 get.active.-menu]]}.{..return...
18120 20 20 7d 0a 20 20 20 20 24 6d 65 6e 75 20 61 63 74 69 76 61 74 65 20 6e 6f 6e 65 0a 20 20 20 20 ..}.....$menu.activate.none.....
18140 74 6b 47 65 6e 65 72 61 74 65 4d 65 6e 75 53 65 6c 65 63 74 20 24 6d 65 6e 75 0a 7d 0a 0a 23 20 tkGenerateMenuSelect.$menu.}..#.
18160 74 6b 4d 65 6e 75 49 6e 76 6f 6b 65 20 2d 2d 0a 23 20 54 68 69 73 20 70 72 6f 63 65 64 75 72 65 tkMenuInvoke.--.#.This.procedure
18180 20 69 73 20 69 6e 76 6f 6b 65 64 20 77 68 65 6e 20 62 75 74 74 6f 6e 20 31 20 69 73 20 72 65 6c .is.invoked.when.button.1.is.rel
181a0 65 61 73 65 64 20 6f 76 65 72 20 61 20 6d 65 6e 75 2e 0a 23 20 49 74 20 69 6e 76 6f 6b 65 73 20 eased.over.a.menu..#.It.invokes.
181c0 74 68 65 20 61 70 70 72 6f 70 72 69 61 74 65 20 6d 65 6e 75 20 61 63 74 69 6f 6e 20 61 6e 64 20 the.appropriate.menu.action.and.
181e0 75 6e 70 6f 73 74 73 20 74 68 65 20 6d 65 6e 75 20 69 66 0a 23 20 69 74 20 63 61 6d 65 20 66 72 unposts.the.menu.if.#.it.came.fr
18200 6f 6d 20 61 20 6d 65 6e 75 62 75 74 74 6f 6e 2e 0a 23 0a 23 20 41 72 67 75 6d 65 6e 74 73 3a 0a om.a.menubutton..#.#.Arguments:.
18220 23 20 77 20 2d 09 09 09 4e 61 6d 65 20 6f 66 20 74 68 65 20 6d 65 6e 75 20 77 69 64 67 65 74 2e #.w.-...Name.of.the.menu.widget.
18240 0a 23 20 62 75 74 74 6f 6e 52 65 6c 65 61 73 65 20 2d 09 31 20 6d 65 61 6e 73 20 74 68 69 73 20 .#.buttonRelease.-.1.means.this.
18260 70 72 6f 63 65 64 75 72 65 20 69 73 20 63 61 6c 6c 65 64 20 62 65 63 61 75 73 65 20 6f 66 0a 23 procedure.is.called.because.of.#
18280 09 09 09 61 20 62 75 74 74 6f 6e 20 72 65 6c 65 61 73 65 3b 20 20 30 20 6d 65 61 6e 73 20 62 65 ...a.button.release;..0.means.be
182a0 63 61 75 73 65 20 6f 66 20 6b 65 79 73 74 72 6f 6b 65 2e 0a 0a 70 72 6f 63 20 74 6b 4d 65 6e 75 cause.of.keystroke...proc.tkMenu
182c0 49 6e 76 6f 6b 65 20 7b 77 20 62 75 74 74 6f 6e 52 65 6c 65 61 73 65 7d 20 7b 0a 20 20 20 20 67 Invoke.{w.buttonRelease}.{.....g
182e0 6c 6f 62 61 6c 20 74 6b 50 72 69 76 0a 0a 20 20 20 20 69 66 20 7b 24 62 75 74 74 6f 6e 52 65 6c lobal.tkPriv......if.{$buttonRel
18300 65 61 73 65 20 26 26 20 5b 73 74 72 69 6e 67 20 65 71 75 61 6c 20 24 74 6b 50 72 69 76 28 77 69 ease.&&.[string.equal.$tkPriv(wi
18320 6e 64 6f 77 29 20 7b 7d 5d 7d 20 7b 0a 09 23 20 4d 6f 75 73 65 20 77 61 73 20 70 72 65 73 73 65 ndow).{}]}.{..#.Mouse.was.presse
18340 64 20 6f 76 65 72 20 61 20 6d 65 6e 75 20 77 69 74 68 6f 75 74 20 61 20 6d 65 6e 75 20 62 75 74 d.over.a.menu.without.a.menu.but
18360 74 6f 6e 2c 20 74 68 65 6e 0a 09 23 20 64 72 61 67 67 65 64 20 6f 66 66 20 74 68 65 20 6d 65 6e ton,.then..#.dragged.off.the.men
18380 75 20 28 70 6f 73 73 69 62 6c 79 20 77 69 74 68 20 61 20 63 61 73 63 61 64 65 20 70 6f 73 74 65 u.(possibly.with.a.cascade.poste
183a0 64 29 20 61 6e 64 0a 09 23 20 72 65 6c 65 61 73 65 64 2e 20 20 55 6e 70 6f 73 74 20 65 76 65 72 d).and..#.released...Unpost.ever
183c0 79 74 68 69 6e 67 20 61 6e 64 20 71 75 69 74 2e 0a 0a 09 24 77 20 70 6f 73 74 63 61 73 63 61 64 ything.and.quit....$w.postcascad
183e0 65 20 6e 6f 6e 65 0a 09 24 77 20 61 63 74 69 76 61 74 65 20 6e 6f 6e 65 0a 09 65 76 65 6e 74 20 e.none..$w.activate.none..event.
18400 67 65 6e 65 72 61 74 65 20 24 77 20 3c 3c 4d 65 6e 75 53 65 6c 65 63 74 3e 3e 0a 09 74 6b 4d 65 generate.$w.<<MenuSelect>>..tkMe
18420 6e 75 55 6e 70 6f 73 74 20 24 77 0a 09 72 65 74 75 72 6e 0a 20 20 20 20 7d 0a 20 20 20 20 69 66 nuUnpost.$w..return.....}.....if
18440 20 7b 5b 73 74 72 69 6e 67 20 65 71 75 61 6c 20 5b 24 77 20 74 79 70 65 20 61 63 74 69 76 65 5d .{[string.equal.[$w.type.active]
18460 20 22 63 61 73 63 61 64 65 22 5d 7d 20 7b 0a 09 24 77 20 70 6f 73 74 63 61 73 63 61 64 65 20 61 ."cascade"]}.{..$w.postcascade.a
18480 63 74 69 76 65 0a 09 73 65 74 20 6d 65 6e 75 20 5b 24 77 20 65 6e 74 72 79 63 67 65 74 20 61 63 ctive..set.menu.[$w.entrycget.ac
184a0 74 69 76 65 20 2d 6d 65 6e 75 5d 0a 09 74 6b 4d 65 6e 75 46 69 72 73 74 45 6e 74 72 79 20 24 6d tive.-menu]..tkMenuFirstEntry.$m
184c0 65 6e 75 0a 20 20 20 20 7d 20 65 6c 73 65 69 66 20 7b 5b 73 74 72 69 6e 67 20 65 71 75 61 6c 20 enu.....}.elseif.{[string.equal.
184e0 5b 24 77 20 74 79 70 65 20 61 63 74 69 76 65 5d 20 22 74 65 61 72 6f 66 66 22 5d 7d 20 7b 0a 09 [$w.type.active]."tearoff"]}.{..
18500 74 6b 4d 65 6e 75 55 6e 70 6f 73 74 20 24 77 0a 09 74 6b 54 65 61 72 4f 66 66 4d 65 6e 75 20 24 tkMenuUnpost.$w..tkTearOffMenu.$
18520 77 0a 20 20 20 20 7d 20 65 6c 73 65 69 66 20 7b 5b 73 74 72 69 6e 67 20 65 71 75 61 6c 20 5b 24 w.....}.elseif.{[string.equal.[$
18540 77 20 63 67 65 74 20 2d 74 79 70 65 5d 20 22 6d 65 6e 75 62 61 72 22 5d 7d 20 7b 0a 09 24 77 20 w.cget.-type]."menubar"]}.{..$w.
18560 70 6f 73 74 63 61 73 63 61 64 65 20 6e 6f 6e 65 0a 09 24 77 20 61 63 74 69 76 61 74 65 20 6e 6f postcascade.none..$w.activate.no
18580 6e 65 0a 09 65 76 65 6e 74 20 67 65 6e 65 72 61 74 65 20 24 77 20 3c 3c 4d 65 6e 75 53 65 6c 65 ne..event.generate.$w.<<MenuSele
185a0 63 74 3e 3e 0a 09 74 6b 4d 65 6e 75 55 6e 70 6f 73 74 20 24 77 0a 20 20 20 20 7d 20 65 6c 73 65 ct>>..tkMenuUnpost.$w.....}.else
185c0 20 7b 0a 09 74 6b 4d 65 6e 75 55 6e 70 6f 73 74 20 24 77 0a 09 75 70 6c 65 76 65 6c 20 23 30 20 .{..tkMenuUnpost.$w..uplevel.#0.
185e0 5b 6c 69 73 74 20 24 77 20 69 6e 76 6f 6b 65 20 61 63 74 69 76 65 5d 0a 20 20 20 20 7d 0a 7d 0a [list.$w.invoke.active].....}.}.
18600 0a 23 20 74 6b 4d 65 6e 75 45 73 63 61 70 65 20 2d 2d 0a 23 20 54 68 69 73 20 70 72 6f 63 65 64 .#.tkMenuEscape.--.#.This.proced
18620 75 72 65 20 69 73 20 69 6e 76 6f 6b 65 64 20 66 6f 72 20 74 68 65 20 43 61 6e 63 65 6c 20 28 6f ure.is.invoked.for.the.Cancel.(o
18640 72 20 45 73 63 61 70 65 29 20 6b 65 79 2e 20 20 49 74 20 75 6e 70 6f 73 74 73 0a 23 20 74 68 65 r.Escape).key...It.unposts.#.the
18660 20 67 69 76 65 6e 20 6d 65 6e 75 20 61 6e 64 2c 20 69 66 20 69 74 20 69 73 20 74 68 65 20 74 6f .given.menu.and,.if.it.is.the.to
18680 70 2d 6c 65 76 65 6c 20 6d 65 6e 75 20 66 6f 72 20 61 20 6d 65 6e 75 20 62 75 74 74 6f 6e 2c 0a p-level.menu.for.a.menu.button,.
186a0 23 20 75 6e 70 6f 73 74 73 20 74 68 65 20 6d 65 6e 75 20 62 75 74 74 6f 6e 20 61 73 20 77 65 6c #.unposts.the.menu.button.as.wel
186c0 6c 2e 0a 23 0a 23 20 41 72 67 75 6d 65 6e 74 73 3a 0a 23 20 6d 65 6e 75 20 2d 09 09 4e 61 6d 65 l..#.#.Arguments:.#.menu.-..Name
186e0 20 6f 66 20 74 68 65 20 6d 65 6e 75 20 77 69 6e 64 6f 77 2e 0a 0a 70 72 6f 63 20 74 6b 4d 65 6e .of.the.menu.window...proc.tkMen
18700 75 45 73 63 61 70 65 20 6d 65 6e 75 20 7b 0a 20 20 20 20 73 65 74 20 70 61 72 65 6e 74 20 5b 77 uEscape.menu.{.....set.parent.[w
18720 69 6e 66 6f 20 70 61 72 65 6e 74 20 24 6d 65 6e 75 5d 0a 20 20 20 20 69 66 20 7b 5b 73 74 72 69 info.parent.$menu].....if.{[stri
18740 6e 67 20 63 6f 6d 70 61 72 65 20 5b 77 69 6e 66 6f 20 63 6c 61 73 73 20 24 70 61 72 65 6e 74 5d ng.compare.[winfo.class.$parent]
18760 20 22 4d 65 6e 75 22 5d 7d 20 7b 0a 09 74 6b 4d 65 6e 75 55 6e 70 6f 73 74 20 24 6d 65 6e 75 0a ."Menu"]}.{..tkMenuUnpost.$menu.
18780 20 20 20 20 7d 20 65 6c 73 65 69 66 20 7b 5b 73 74 72 69 6e 67 20 65 71 75 61 6c 20 5b 24 70 61 ....}.elseif.{[string.equal.[$pa
187a0 72 65 6e 74 20 63 67 65 74 20 2d 74 79 70 65 5d 20 22 6d 65 6e 75 62 61 72 22 5d 7d 20 7b 0a 09 rent.cget.-type]."menubar"]}.{..
187c0 74 6b 4d 65 6e 75 55 6e 70 6f 73 74 20 24 6d 65 6e 75 0a 09 74 6b 52 65 73 74 6f 72 65 4f 6c 64 tkMenuUnpost.$menu..tkRestoreOld
187e0 47 72 61 62 0a 20 20 20 20 7d 20 65 6c 73 65 20 7b 0a 09 74 6b 4d 65 6e 75 4e 65 78 74 4d 65 6e Grab.....}.else.{..tkMenuNextMen
18800 75 20 24 6d 65 6e 75 20 6c 65 66 74 0a 20 20 20 20 7d 0a 7d 0a 0a 23 20 54 68 65 20 66 6f 6c 6c u.$menu.left.....}.}..#.The.foll
18820 6f 77 69 6e 67 20 72 6f 75 74 69 6e 65 73 20 68 61 6e 64 6c 65 20 61 72 72 6f 77 20 6b 65 79 73 owing.routines.handle.arrow.keys
18840 2e 20 41 72 72 6f 77 20 6b 65 79 73 20 62 65 68 61 76 65 0a 23 20 64 69 66 66 65 72 65 6e 74 6c ..Arrow.keys.behave.#.differentl
18860 79 20 64 65 70 65 6e 64 69 6e 67 20 6f 6e 20 77 68 65 74 68 65 72 20 74 68 65 20 6d 65 6e 75 20 y.depending.on.whether.the.menu.
18880 69 73 20 61 20 6d 65 6e 75 20 62 61 72 20 6f 72 20 6e 6f 74 2e 0a 0a 70 72 6f 63 20 74 6b 4d 65 is.a.menu.bar.or.not...proc.tkMe
188a0 6e 75 55 70 41 72 72 6f 77 20 7b 6d 65 6e 75 7d 20 7b 0a 20 20 20 20 69 66 20 7b 5b 73 74 72 69 nuUpArrow.{menu}.{.....if.{[stri
188c0 6e 67 20 65 71 75 61 6c 20 5b 24 6d 65 6e 75 20 63 67 65 74 20 2d 74 79 70 65 5d 20 22 6d 65 6e ng.equal.[$menu.cget.-type]."men
188e0 75 62 61 72 22 5d 7d 20 7b 0a 09 74 6b 4d 65 6e 75 4e 65 78 74 4d 65 6e 75 20 24 6d 65 6e 75 20 ubar"]}.{..tkMenuNextMenu.$menu.
18900 6c 65 66 74 0a 20 20 20 20 7d 20 65 6c 73 65 20 7b 0a 09 74 6b 4d 65 6e 75 4e 65 78 74 45 6e 74 left.....}.else.{..tkMenuNextEnt
18920 72 79 20 24 6d 65 6e 75 20 2d 31 0a 20 20 20 20 7d 0a 7d 0a 0a 70 72 6f 63 20 74 6b 4d 65 6e 75 ry.$menu.-1.....}.}..proc.tkMenu
18940 44 6f 77 6e 41 72 72 6f 77 20 7b 6d 65 6e 75 7d 20 7b 0a 20 20 20 20 69 66 20 7b 5b 73 74 72 69 DownArrow.{menu}.{.....if.{[stri
18960 6e 67 20 65 71 75 61 6c 20 5b 24 6d 65 6e 75 20 63 67 65 74 20 2d 74 79 70 65 5d 20 22 6d 65 6e ng.equal.[$menu.cget.-type]."men
18980 75 62 61 72 22 5d 7d 20 7b 0a 09 74 6b 4d 65 6e 75 4e 65 78 74 4d 65 6e 75 20 24 6d 65 6e 75 20 ubar"]}.{..tkMenuNextMenu.$menu.
189a0 72 69 67 68 74 0a 20 20 20 20 7d 20 65 6c 73 65 20 7b 0a 09 74 6b 4d 65 6e 75 4e 65 78 74 45 6e right.....}.else.{..tkMenuNextEn
189c0 74 72 79 20 24 6d 65 6e 75 20 31 0a 20 20 20 20 7d 0a 7d 0a 0a 70 72 6f 63 20 74 6b 4d 65 6e 75 try.$menu.1.....}.}..proc.tkMenu
189e0 4c 65 66 74 41 72 72 6f 77 20 7b 6d 65 6e 75 7d 20 7b 0a 20 20 20 20 69 66 20 7b 5b 73 74 72 69 LeftArrow.{menu}.{.....if.{[stri
18a00 6e 67 20 65 71 75 61 6c 20 5b 24 6d 65 6e 75 20 63 67 65 74 20 2d 74 79 70 65 5d 20 22 6d 65 6e ng.equal.[$menu.cget.-type]."men
18a20 75 62 61 72 22 5d 7d 20 7b 0a 09 74 6b 4d 65 6e 75 4e 65 78 74 45 6e 74 72 79 20 24 6d 65 6e 75 ubar"]}.{..tkMenuNextEntry.$menu
18a40 20 2d 31 0a 20 20 20 20 7d 20 65 6c 73 65 20 7b 0a 09 74 6b 4d 65 6e 75 4e 65 78 74 4d 65 6e 75 .-1.....}.else.{..tkMenuNextMenu
18a60 20 24 6d 65 6e 75 20 6c 65 66 74 0a 20 20 20 20 7d 0a 7d 0a 0a 70 72 6f 63 20 74 6b 4d 65 6e 75 .$menu.left.....}.}..proc.tkMenu
18a80 52 69 67 68 74 41 72 72 6f 77 20 7b 6d 65 6e 75 7d 20 7b 0a 20 20 20 20 69 66 20 7b 5b 73 74 72 RightArrow.{menu}.{.....if.{[str
18aa0 69 6e 67 20 65 71 75 61 6c 20 5b 24 6d 65 6e 75 20 63 67 65 74 20 2d 74 79 70 65 5d 20 22 6d 65 ing.equal.[$menu.cget.-type]."me
18ac0 6e 75 62 61 72 22 5d 7d 20 7b 0a 09 74 6b 4d 65 6e 75 4e 65 78 74 45 6e 74 72 79 20 24 6d 65 6e nubar"]}.{..tkMenuNextEntry.$men
18ae0 75 20 31 0a 20 20 20 20 7d 20 65 6c 73 65 20 7b 0a 09 74 6b 4d 65 6e 75 4e 65 78 74 4d 65 6e 75 u.1.....}.else.{..tkMenuNextMenu
18b00 20 24 6d 65 6e 75 20 72 69 67 68 74 0a 20 20 20 20 7d 0a 7d 0a 0a 23 20 74 6b 4d 65 6e 75 4e 65 .$menu.right.....}.}..#.tkMenuNe
18b20 78 74 4d 65 6e 75 20 2d 2d 0a 23 20 54 68 69 73 20 70 72 6f 63 65 64 75 72 65 20 69 73 20 69 6e xtMenu.--.#.This.procedure.is.in
18b40 76 6f 6b 65 64 20 74 6f 20 68 61 6e 64 6c 65 20 22 6c 65 66 74 22 20 61 6e 64 20 22 72 69 67 68 voked.to.handle."left".and."righ
18b60 74 22 20 74 72 61 76 65 72 73 61 6c 0a 23 20 6d 6f 74 69 6f 6e 73 20 69 6e 20 6d 65 6e 75 73 2e t".traversal.#.motions.in.menus.
18b80 20 20 49 74 20 74 72 61 76 65 72 73 65 73 20 74 6f 20 74 68 65 20 6e 65 78 74 20 6d 65 6e 75 20 ..It.traverses.to.the.next.menu.
18ba0 69 6e 20 61 20 6d 65 6e 75 20 62 61 72 2c 0a 23 20 6f 72 20 69 6e 74 6f 20 6f 72 20 6f 75 74 20 in.a.menu.bar,.#.or.into.or.out.
18bc0 6f 66 20 61 20 63 61 73 63 61 64 65 64 20 6d 65 6e 75 2e 0a 23 0a 23 20 41 72 67 75 6d 65 6e 74 of.a.cascaded.menu..#.#.Argument
18be0 73 3a 0a 23 20 6d 65 6e 75 20 2d 09 09 54 68 65 20 6d 65 6e 75 20 74 68 61 74 20 72 65 63 65 69 s:.#.menu.-..The.menu.that.recei
18c00 76 65 64 20 74 68 65 20 6b 65 79 62 6f 61 72 64 0a 23 09 09 09 65 76 65 6e 74 2e 0a 23 20 64 69 ved.the.keyboard.#...event..#.di
18c20 72 65 63 74 69 6f 6e 20 2d 09 09 44 69 72 65 63 74 69 6f 6e 20 69 6e 20 77 68 69 63 68 20 74 6f rection.-..Direction.in.which.to
18c40 20 6d 6f 76 65 3a 20 22 6c 65 66 74 22 20 6f 72 20 22 72 69 67 68 74 22 0a 0a 70 72 6f 63 20 74 .move:."left".or."right"..proc.t
18c60 6b 4d 65 6e 75 4e 65 78 74 4d 65 6e 75 20 7b 6d 65 6e 75 20 64 69 72 65 63 74 69 6f 6e 7d 20 7b kMenuNextMenu.{menu.direction}.{
18c80 0a 20 20 20 20 67 6c 6f 62 61 6c 20 74 6b 50 72 69 76 0a 0a 20 20 20 20 23 20 46 69 72 73 74 20 .....global.tkPriv......#.First.
18ca0 68 61 6e 64 6c 65 20 74 72 61 76 65 72 73 61 6c 73 20 69 6e 74 6f 20 61 6e 64 20 6f 75 74 20 6f handle.traversals.into.and.out.o
18cc0 66 20 63 61 73 63 61 64 65 64 20 6d 65 6e 75 73 2e 0a 0a 20 20 20 20 69 66 20 7b 5b 73 74 72 69 f.cascaded.menus.......if.{[stri
18ce0 6e 67 20 65 71 75 61 6c 20 24 64 69 72 65 63 74 69 6f 6e 20 22 72 69 67 68 74 22 5d 7d 20 7b 0a ng.equal.$direction."right"]}.{.
18d00 09 73 65 74 20 63 6f 75 6e 74 20 31 0a 09 73 65 74 20 70 61 72 65 6e 74 20 5b 77 69 6e 66 6f 20 .set.count.1..set.parent.[winfo.
18d20 70 61 72 65 6e 74 20 24 6d 65 6e 75 5d 0a 09 73 65 74 20 63 6c 61 73 73 20 5b 77 69 6e 66 6f 20 parent.$menu]..set.class.[winfo.
18d40 63 6c 61 73 73 20 24 70 61 72 65 6e 74 5d 0a 09 69 66 20 7b 5b 73 74 72 69 6e 67 20 65 71 75 61 class.$parent]..if.{[string.equa
18d60 6c 20 5b 24 6d 65 6e 75 20 74 79 70 65 20 61 63 74 69 76 65 5d 20 22 63 61 73 63 61 64 65 22 5d l.[$menu.type.active]."cascade"]
18d80 7d 20 7b 0a 09 20 20 20 20 24 6d 65 6e 75 20 70 6f 73 74 63 61 73 63 61 64 65 20 61 63 74 69 76 }.{......$menu.postcascade.activ
18da0 65 0a 09 20 20 20 20 73 65 74 20 6d 32 20 5b 24 6d 65 6e 75 20 65 6e 74 72 79 63 67 65 74 20 61 e......set.m2.[$menu.entrycget.a
18dc0 63 74 69 76 65 20 2d 6d 65 6e 75 5d 0a 09 20 20 20 20 69 66 20 7b 5b 73 74 72 69 6e 67 20 63 6f ctive.-menu]......if.{[string.co
18de0 6d 70 61 72 65 20 24 6d 32 20 22 22 5d 7d 20 7b 0a 09 09 74 6b 4d 65 6e 75 46 69 72 73 74 45 6e mpare.$m2.""]}.{...tkMenuFirstEn
18e00 74 72 79 20 24 6d 32 0a 09 20 20 20 20 7d 0a 09 20 20 20 20 72 65 74 75 72 6e 0a 09 7d 20 65 6c try.$m2......}......return..}.el
18e20 73 65 20 7b 0a 09 20 20 20 20 73 65 74 20 70 61 72 65 6e 74 20 5b 77 69 6e 66 6f 20 70 61 72 65 se.{......set.parent.[winfo.pare
18e40 6e 74 20 24 6d 65 6e 75 5d 0a 09 20 20 20 20 77 68 69 6c 65 20 7b 5b 73 74 72 69 6e 67 20 63 6f nt.$menu]......while.{[string.co
18e60 6d 70 61 72 65 20 24 70 61 72 65 6e 74 20 22 2e 22 5d 7d 20 7b 0a 09 09 69 66 20 7b 5b 73 74 72 mpare.$parent."."]}.{...if.{[str
18e80 69 6e 67 20 65 71 75 61 6c 20 5b 77 69 6e 66 6f 20 63 6c 61 73 73 20 24 70 61 72 65 6e 74 5d 20 ing.equal.[winfo.class.$parent].
18ea0 22 4d 65 6e 75 22 5d 20 5c 0a 09 09 09 26 26 20 5b 73 74 72 69 6e 67 20 65 71 75 61 6c 20 5b 24 "Menu"].\....&&.[string.equal.[$
18ec0 70 61 72 65 6e 74 20 63 67 65 74 20 2d 74 79 70 65 5d 20 22 6d 65 6e 75 62 61 72 22 5d 7d 20 7b parent.cget.-type]."menubar"]}.{
18ee0 0a 09 09 20 20 20 20 74 6b 5f 6d 65 6e 75 53 65 74 46 6f 63 75 73 20 24 70 61 72 65 6e 74 0a 09 .......tk_menuSetFocus.$parent..
18f00 09 20 20 20 20 74 6b 4d 65 6e 75 4e 65 78 74 45 6e 74 72 79 20 24 70 61 72 65 6e 74 20 31 0a 09 .....tkMenuNextEntry.$parent.1..
18f20 09 20 20 20 20 72 65 74 75 72 6e 0a 09 09 7d 0a 09 09 73 65 74 20 70 61 72 65 6e 74 20 5b 77 69 .....return...}...set.parent.[wi
18f40 6e 66 6f 20 70 61 72 65 6e 74 20 24 70 61 72 65 6e 74 5d 0a 09 20 20 20 20 7d 0a 09 7d 0a 20 20 nfo.parent.$parent]......}..}...
18f60 20 20 7d 20 65 6c 73 65 20 7b 0a 09 73 65 74 20 63 6f 75 6e 74 20 2d 31 0a 09 73 65 74 20 6d 32 ..}.else.{..set.count.-1..set.m2
18f80 20 5b 77 69 6e 66 6f 20 70 61 72 65 6e 74 20 24 6d 65 6e 75 5d 0a 09 69 66 20 7b 5b 73 74 72 69 .[winfo.parent.$menu]..if.{[stri
18fa0 6e 67 20 65 71 75 61 6c 20 5b 77 69 6e 66 6f 20 63 6c 61 73 73 20 24 6d 32 5d 20 22 4d 65 6e 75 ng.equal.[winfo.class.$m2]."Menu
18fc0 22 5d 7d 20 7b 0a 09 20 20 20 20 69 66 20 7b 5b 73 74 72 69 6e 67 20 63 6f 6d 70 61 72 65 20 5b "]}.{......if.{[string.compare.[
18fe0 24 6d 32 20 63 67 65 74 20 2d 74 79 70 65 5d 20 22 6d 65 6e 75 62 61 72 22 5d 7d 20 7b 0a 09 09 $m2.cget.-type]."menubar"]}.{...
19000 24 6d 65 6e 75 20 61 63 74 69 76 61 74 65 20 6e 6f 6e 65 0a 09 09 74 6b 47 65 6e 65 72 61 74 65 $menu.activate.none...tkGenerate
19020 4d 65 6e 75 53 65 6c 65 63 74 20 24 6d 65 6e 75 0a 09 09 74 6b 5f 6d 65 6e 75 53 65 74 46 6f 63 MenuSelect.$menu...tk_menuSetFoc
19040 75 73 20 24 6d 32 0a 09 09 0a 09 09 23 20 54 68 69 73 20 63 6f 64 65 20 75 6e 70 6f 73 74 73 20 us.$m2......#.This.code.unposts.
19060 61 6e 79 20 70 6f 73 74 65 64 20 73 75 62 6d 65 6e 75 20 69 6e 20 74 68 65 20 70 61 72 65 6e 74 any.posted.submenu.in.the.parent
19080 2e 0a 09 09 0a 09 09 73 65 74 20 74 6d 70 20 5b 24 6d 32 20 69 6e 64 65 78 20 61 63 74 69 76 65 .......set.tmp.[$m2.index.active
190a0 5d 0a 09 09 24 6d 32 20 61 63 74 69 76 61 74 65 20 6e 6f 6e 65 0a 09 09 24 6d 32 20 61 63 74 69 ]...$m2.activate.none...$m2.acti
190c0 76 61 74 65 20 24 74 6d 70 0a 09 09 72 65 74 75 72 6e 0a 09 20 20 20 20 7d 0a 09 7d 0a 20 20 20 vate.$tmp...return......}..}....
190e0 20 7d 0a 0a 20 20 20 20 23 20 43 61 6e 27 74 20 74 72 61 76 65 72 73 65 20 69 6e 74 6f 20 6f 72 .}......#.Can't.traverse.into.or
19100 20 6f 75 74 20 6f 66 20 61 20 63 61 73 63 61 64 65 64 20 6d 65 6e 75 2e 20 20 47 6f 20 74 6f 20 .out.of.a.cascaded.menu...Go.to.
19120 74 68 65 20 6e 65 78 74 0a 20 20 20 20 23 20 6f 72 20 70 72 65 76 69 6f 75 73 20 6d 65 6e 75 62 the.next.....#.or.previous.menub
19140 75 74 74 6f 6e 2c 20 69 66 20 74 68 61 74 20 6d 61 6b 65 73 20 73 65 6e 73 65 2e 0a 0a 20 20 20 utton,.if.that.makes.sense......
19160 20 73 65 74 20 6d 32 20 5b 77 69 6e 66 6f 20 70 61 72 65 6e 74 20 24 6d 65 6e 75 5d 0a 20 20 20 .set.m2.[winfo.parent.$menu]....
19180 20 69 66 20 7b 5b 73 74 72 69 6e 67 20 65 71 75 61 6c 20 5b 77 69 6e 66 6f 20 63 6c 61 73 73 20 .if.{[string.equal.[winfo.class.
191a0 24 6d 32 5d 20 22 4d 65 6e 75 22 5d 7d 20 7b 0a 09 69 66 20 7b 5b 73 74 72 69 6e 67 20 65 71 75 $m2]."Menu"]}.{..if.{[string.equ
191c0 61 6c 20 5b 24 6d 32 20 63 67 65 74 20 2d 74 79 70 65 5d 20 22 6d 65 6e 75 62 61 72 22 5d 7d 20 al.[$m2.cget.-type]."menubar"]}.
191e0 7b 0a 09 20 20 20 20 74 6b 5f 6d 65 6e 75 53 65 74 46 6f 63 75 73 20 24 6d 32 0a 09 20 20 20 20 {......tk_menuSetFocus.$m2......
19200 74 6b 4d 65 6e 75 4e 65 78 74 45 6e 74 72 79 20 24 6d 32 20 2d 31 0a 09 20 20 20 20 72 65 74 75 tkMenuNextEntry.$m2.-1......retu
19220 72 6e 0a 09 7d 0a 20 20 20 20 7d 0a 0a 20 20 20 20 73 65 74 20 77 20 24 74 6b 50 72 69 76 28 70 rn..}.....}......set.w.$tkPriv(p
19240 6f 73 74 65 64 4d 62 29 0a 20 20 20 20 69 66 20 7b 5b 73 74 72 69 6e 67 20 65 71 75 61 6c 20 24 ostedMb).....if.{[string.equal.$
19260 77 20 22 22 5d 7d 20 7b 0a 09 72 65 74 75 72 6e 0a 20 20 20 20 7d 0a 20 20 20 20 73 65 74 20 62 w.""]}.{..return.....}.....set.b
19280 75 74 74 6f 6e 73 20 5b 77 69 6e 66 6f 20 63 68 69 6c 64 72 65 6e 20 5b 77 69 6e 66 6f 20 70 61 uttons.[winfo.children.[winfo.pa
192a0 72 65 6e 74 20 24 77 5d 5d 0a 20 20 20 20 73 65 74 20 6c 65 6e 67 74 68 20 5b 6c 6c 65 6e 67 74 rent.$w]].....set.length.[llengt
192c0 68 20 24 62 75 74 74 6f 6e 73 5d 0a 20 20 20 20 73 65 74 20 69 20 5b 65 78 70 72 20 7b 5b 6c 73 h.$buttons].....set.i.[expr.{[ls
192e0 65 61 72 63 68 20 2d 65 78 61 63 74 20 24 62 75 74 74 6f 6e 73 20 24 77 5d 20 2b 20 24 63 6f 75 earch.-exact.$buttons.$w].+.$cou
19300 6e 74 7d 5d 0a 20 20 20 20 77 68 69 6c 65 20 31 20 7b 0a 09 77 68 69 6c 65 20 7b 24 69 20 3c 20 nt}].....while.1.{..while.{$i.<.
19320 30 7d 20 7b 0a 09 20 20 20 20 69 6e 63 72 20 69 20 24 6c 65 6e 67 74 68 0a 09 7d 0a 09 77 68 69 0}.{......incr.i.$length..}..whi
19340 6c 65 20 7b 24 69 20 3e 3d 20 24 6c 65 6e 67 74 68 7d 20 7b 0a 09 20 20 20 20 69 6e 63 72 20 69 le.{$i.>=.$length}.{......incr.i
19360 20 2d 24 6c 65 6e 67 74 68 0a 09 7d 0a 09 73 65 74 20 6d 62 20 5b 6c 69 6e 64 65 78 20 24 62 75 .-$length..}..set.mb.[lindex.$bu
19380 74 74 6f 6e 73 20 24 69 5d 0a 09 69 66 20 7b 5b 73 74 72 69 6e 67 20 65 71 75 61 6c 20 5b 77 69 ttons.$i]..if.{[string.equal.[wi
193a0 6e 66 6f 20 63 6c 61 73 73 20 24 6d 62 5d 20 22 4d 65 6e 75 62 75 74 74 6f 6e 22 5d 20 5c 0a 09 nfo.class.$mb]."Menubutton"].\..
193c0 09 26 26 20 5b 73 74 72 69 6e 67 20 63 6f 6d 70 61 72 65 20 5b 24 6d 62 20 63 67 65 74 20 2d 73 .&&.[string.compare.[$mb.cget.-s
193e0 74 61 74 65 5d 20 22 64 69 73 61 62 6c 65 64 22 5d 20 5c 0a 09 09 26 26 20 5b 73 74 72 69 6e 67 tate]."disabled"].\...&&.[string
19400 20 63 6f 6d 70 61 72 65 20 5b 24 6d 62 20 63 67 65 74 20 2d 6d 65 6e 75 5d 20 22 22 5d 20 5c 0a .compare.[$mb.cget.-menu].""].\.
19420 09 09 26 26 20 5b 73 74 72 69 6e 67 20 63 6f 6d 70 61 72 65 20 5b 5b 24 6d 62 20 63 67 65 74 20 ..&&.[string.compare.[[$mb.cget.
19440 2d 6d 65 6e 75 5d 20 69 6e 64 65 78 20 6c 61 73 74 5d 20 22 6e 6f 6e 65 22 5d 7d 20 7b 0a 09 20 -menu].index.last]."none"]}.{...
19460 20 20 20 62 72 65 61 6b 0a 09 7d 0a 09 69 66 20 7b 5b 73 74 72 69 6e 67 20 65 71 75 61 6c 20 24 ...break..}..if.{[string.equal.$
19480 6d 62 20 24 77 5d 7d 20 7b 0a 09 20 20 20 20 72 65 74 75 72 6e 0a 09 7d 0a 09 69 6e 63 72 20 69 mb.$w]}.{......return..}..incr.i
194a0 20 24 63 6f 75 6e 74 0a 20 20 20 20 7d 0a 20 20 20 20 74 6b 4d 62 50 6f 73 74 20 24 6d 62 0a 20 .$count.....}.....tkMbPost.$mb..
194c0 20 20 20 74 6b 4d 65 6e 75 46 69 72 73 74 45 6e 74 72 79 20 5b 24 6d 62 20 63 67 65 74 20 2d 6d ...tkMenuFirstEntry.[$mb.cget.-m
194e0 65 6e 75 5d 0a 7d 0a 0a 23 20 74 6b 4d 65 6e 75 4e 65 78 74 45 6e 74 72 79 20 2d 2d 0a 23 20 41 enu].}..#.tkMenuNextEntry.--.#.A
19500 63 74 69 76 61 74 65 20 74 68 65 20 6e 65 78 74 20 68 69 67 68 65 72 20 6f 72 20 6c 6f 77 65 72 ctivate.the.next.higher.or.lower
19520 20 65 6e 74 72 79 20 69 6e 20 74 68 65 20 70 6f 73 74 65 64 20 6d 65 6e 75 2c 0a 23 20 77 72 61 .entry.in.the.posted.menu,.#.wra
19540 70 70 69 6e 67 20 61 72 6f 75 6e 64 20 61 74 20 74 68 65 20 65 6e 64 73 2e 20 20 44 69 73 61 62 pping.around.at.the.ends...Disab
19560 6c 65 64 20 65 6e 74 72 69 65 73 20 61 72 65 20 73 6b 69 70 70 65 64 2e 0a 23 0a 23 20 41 72 67 led.entries.are.skipped..#.#.Arg
19580 75 6d 65 6e 74 73 3a 0a 23 20 6d 65 6e 75 20 2d 09 09 09 4d 65 6e 75 20 77 69 6e 64 6f 77 20 74 uments:.#.menu.-...Menu.window.t
195a0 68 61 74 20 72 65 63 65 69 76 65 64 20 74 68 65 20 6b 65 79 73 74 72 6f 6b 65 2e 0a 23 20 63 6f hat.received.the.keystroke..#.co
195c0 75 6e 74 20 2d 09 09 09 31 20 6d 65 61 6e 73 20 67 6f 20 74 6f 20 74 68 65 20 6e 65 78 74 20 6c unt.-...1.means.go.to.the.next.l
195e0 6f 77 65 72 20 65 6e 74 72 79 2c 0a 23 09 09 09 09 2d 31 20 6d 65 61 6e 73 20 67 6f 20 74 6f 20 ower.entry,.#....-1.means.go.to.
19600 74 68 65 20 6e 65 78 74 20 68 69 67 68 65 72 20 65 6e 74 72 79 2e 0a 0a 70 72 6f 63 20 74 6b 4d the.next.higher.entry...proc.tkM
19620 65 6e 75 4e 65 78 74 45 6e 74 72 79 20 7b 6d 65 6e 75 20 63 6f 75 6e 74 7d 20 7b 0a 20 20 20 20 enuNextEntry.{menu.count}.{.....
19640 67 6c 6f 62 61 6c 20 74 6b 50 72 69 76 0a 0a 20 20 20 20 69 66 20 7b 5b 73 74 72 69 6e 67 20 65 global.tkPriv......if.{[string.e
19660 71 75 61 6c 20 5b 24 6d 65 6e 75 20 69 6e 64 65 78 20 6c 61 73 74 5d 20 22 6e 6f 6e 65 22 5d 7d qual.[$menu.index.last]."none"]}
19680 20 7b 0a 09 72 65 74 75 72 6e 0a 20 20 20 20 7d 0a 20 20 20 20 73 65 74 20 6c 65 6e 67 74 68 20 .{..return.....}.....set.length.
196a0 5b 65 78 70 72 20 7b 5b 24 6d 65 6e 75 20 69 6e 64 65 78 20 6c 61 73 74 5d 2b 31 7d 5d 0a 20 20 [expr.{[$menu.index.last]+1}]...
196c0 20 20 73 65 74 20 71 75 69 74 41 66 74 65 72 20 24 6c 65 6e 67 74 68 0a 20 20 20 20 73 65 74 20 ..set.quitAfter.$length.....set.
196e0 61 63 74 69 76 65 20 5b 24 6d 65 6e 75 20 69 6e 64 65 78 20 61 63 74 69 76 65 5d 0a 20 20 20 20 active.[$menu.index.active].....
19700 69 66 20 7b 5b 73 74 72 69 6e 67 20 65 71 75 61 6c 20 24 61 63 74 69 76 65 20 22 6e 6f 6e 65 22 if.{[string.equal.$active."none"
19720 5d 7d 20 7b 0a 09 73 65 74 20 69 20 30 0a 20 20 20 20 7d 20 65 6c 73 65 20 7b 0a 09 73 65 74 20 ]}.{..set.i.0.....}.else.{..set.
19740 69 20 5b 65 78 70 72 20 7b 24 61 63 74 69 76 65 20 2b 20 24 63 6f 75 6e 74 7d 5d 0a 20 20 20 20 i.[expr.{$active.+.$count}].....
19760 7d 0a 20 20 20 20 77 68 69 6c 65 20 31 20 7b 0a 09 69 66 20 7b 24 71 75 69 74 41 66 74 65 72 20 }.....while.1.{..if.{$quitAfter.
19780 3c 3d 20 30 7d 20 7b 0a 09 20 20 20 20 23 20 57 65 27 76 65 20 74 72 69 65 64 20 65 76 65 72 79 <=.0}.{......#.We've.tried.every
197a0 20 65 6e 74 72 79 20 69 6e 20 74 68 65 20 6d 65 6e 75 2e 20 20 45 69 74 68 65 72 20 74 68 65 72 .entry.in.the.menu...Either.ther
197c0 65 20 61 72 65 0a 09 20 20 20 20 23 20 6e 6f 6e 65 2c 20 6f 72 20 74 68 65 79 27 72 65 20 61 6c e.are......#.none,.or.they're.al
197e0 6c 20 64 69 73 61 62 6c 65 64 2e 20 20 4a 75 73 74 20 67 69 76 65 20 75 70 2e 0a 0a 09 20 20 20 l.disabled...Just.give.up.......
19800 20 72 65 74 75 72 6e 0a 09 7d 0a 09 77 68 69 6c 65 20 7b 24 69 20 3c 20 30 7d 20 7b 0a 09 20 20 .return..}..while.{$i.<.0}.{....
19820 20 20 69 6e 63 72 20 69 20 24 6c 65 6e 67 74 68 0a 09 7d 0a 09 77 68 69 6c 65 20 7b 24 69 20 3e ..incr.i.$length..}..while.{$i.>
19840 3d 20 24 6c 65 6e 67 74 68 7d 20 7b 0a 09 20 20 20 20 69 6e 63 72 20 69 20 2d 24 6c 65 6e 67 74 =.$length}.{......incr.i.-$lengt
19860 68 0a 09 7d 0a 09 69 66 20 7b 5b 63 61 74 63 68 20 7b 24 6d 65 6e 75 20 65 6e 74 72 79 63 67 65 h..}..if.{[catch.{$menu.entrycge
19880 74 20 24 69 20 2d 73 74 61 74 65 7d 20 73 74 61 74 65 5d 20 3d 3d 20 30 7d 20 7b 0a 09 20 20 20 t.$i.-state}.state].==.0}.{.....
198a0 20 69 66 20 7b 5b 73 74 72 69 6e 67 20 63 6f 6d 70 61 72 65 20 24 73 74 61 74 65 20 22 64 69 73 .if.{[string.compare.$state."dis
198c0 61 62 6c 65 64 22 5d 7d 20 7b 0a 09 09 62 72 65 61 6b 0a 09 20 20 20 20 7d 0a 09 7d 0a 09 69 66 abled"]}.{...break......}..}..if
198e0 20 7b 24 69 20 3d 3d 20 24 61 63 74 69 76 65 7d 20 7b 0a 09 20 20 20 20 72 65 74 75 72 6e 0a 09 .{$i.==.$active}.{......return..
19900 7d 0a 09 69 6e 63 72 20 69 20 24 63 6f 75 6e 74 0a 09 69 6e 63 72 20 71 75 69 74 41 66 74 65 72 }..incr.i.$count..incr.quitAfter
19920 20 2d 31 0a 20 20 20 20 7d 0a 20 20 20 20 24 6d 65 6e 75 20 61 63 74 69 76 61 74 65 20 24 69 0a .-1.....}.....$menu.activate.$i.
19940 20 20 20 20 74 6b 47 65 6e 65 72 61 74 65 4d 65 6e 75 53 65 6c 65 63 74 20 24 6d 65 6e 75 0a 20 ....tkGenerateMenuSelect.$menu..
19960 20 20 20 69 66 20 7b 5b 73 74 72 69 6e 67 20 65 71 75 61 6c 20 5b 24 6d 65 6e 75 20 74 79 70 65 ...if.{[string.equal.[$menu.type
19980 20 24 69 5d 20 22 63 61 73 63 61 64 65 22 5d 7d 20 7b 0a 09 73 65 74 20 63 61 73 63 61 64 65 20 .$i]."cascade"]}.{..set.cascade.
199a0 5b 24 6d 65 6e 75 20 65 6e 74 72 79 63 67 65 74 20 24 69 20 2d 6d 65 6e 75 5d 0a 09 69 66 20 7b [$menu.entrycget.$i.-menu]..if.{
199c0 5b 73 74 72 69 6e 67 20 63 6f 6d 70 61 72 65 20 24 63 61 73 63 61 64 65 20 22 22 5d 7d 20 7b 0a [string.compare.$cascade.""]}.{.
199e0 09 20 20 20 20 23 20 48 65 72 65 20 77 65 20 61 75 74 6f 2d 70 6f 73 74 20 61 20 63 61 73 63 61 .....#.Here.we.auto-post.a.casca
19a00 64 65 2e 20 20 54 68 69 73 20 69 73 20 6e 65 63 65 73 73 61 72 79 20 77 68 65 6e 0a 09 20 20 20 de...This.is.necessary.when.....
19a20 20 23 20 77 65 20 74 72 61 76 65 72 73 65 20 6c 65 66 74 2f 72 69 67 68 74 20 69 6e 20 74 68 65 .#.we.traverse.left/right.in.the
19a40 20 6d 65 6e 75 62 61 72 2c 20 62 75 74 20 75 6e 64 65 73 69 72 61 62 6c 65 20 77 68 65 6e 0a 09 .menubar,.but.undesirable.when..
19a60 20 20 20 20 23 20 77 65 20 74 72 61 76 65 72 73 65 20 75 70 2f 64 6f 77 6e 20 69 6e 20 61 20 6d ....#.we.traverse.up/down.in.a.m
19a80 65 6e 75 2e 0a 09 20 20 20 20 24 6d 65 6e 75 20 70 6f 73 74 63 61 73 63 61 64 65 20 24 69 0a 09 enu.......$menu.postcascade.$i..
19aa0 20 20 20 20 74 6b 4d 65 6e 75 46 69 72 73 74 45 6e 74 72 79 20 24 63 61 73 63 61 64 65 0a 09 7d ....tkMenuFirstEntry.$cascade..}
19ac0 0a 20 20 20 20 7d 0a 7d 0a 0a 23 20 74 6b 4d 65 6e 75 46 69 6e 64 20 2d 2d 0a 23 20 54 68 69 73 .....}.}..#.tkMenuFind.--.#.This
19ae0 20 70 72 6f 63 65 64 75 72 65 20 73 65 61 72 63 68 65 73 20 74 68 65 20 65 6e 74 69 72 65 20 77 .procedure.searches.the.entire.w
19b00 69 6e 64 6f 77 20 68 69 65 72 61 72 63 68 79 20 75 6e 64 65 72 20 77 20 66 6f 72 0a 23 20 61 20 indow.hierarchy.under.w.for.#.a.
19b20 6d 65 6e 75 62 75 74 74 6f 6e 20 74 68 61 74 20 69 73 6e 27 74 20 64 69 73 61 62 6c 65 64 20 61 menubutton.that.isn't.disabled.a
19b40 6e 64 20 77 68 6f 73 65 20 75 6e 64 65 72 6c 69 6e 65 64 20 63 68 61 72 61 63 74 65 72 0a 23 20 nd.whose.underlined.character.#.
19b60 69 73 20 22 63 68 61 72 22 20 6f 72 20 61 6e 20 65 6e 74 72 79 20 69 6e 20 61 20 6d 65 6e 75 62 is."char".or.an.entry.in.a.menub
19b80 61 72 20 74 68 61 74 20 69 73 6e 27 74 20 64 69 73 61 62 6c 65 64 20 61 6e 64 20 77 68 6f 73 65 ar.that.isn't.disabled.and.whose
19ba0 0a 23 20 75 6e 64 65 72 6c 69 6e 65 64 20 63 68 61 72 61 63 74 65 72 20 69 73 20 22 63 68 61 72 .#.underlined.character.is."char
19bc0 22 2e 0a 23 20 49 74 20 72 65 74 75 72 6e 73 20 74 68 65 20 6e 61 6d 65 20 6f 66 20 74 68 61 74 "..#.It.returns.the.name.of.that
19be0 20 77 69 6e 64 6f 77 2c 20 69 66 20 66 6f 75 6e 64 2c 20 6f 72 20 61 6e 0a 23 20 65 6d 70 74 79 .window,.if.found,.or.an.#.empty
19c00 20 73 74 72 69 6e 67 20 69 66 20 6e 6f 20 6d 61 74 63 68 69 6e 67 20 77 69 6e 64 6f 77 20 77 61 .string.if.no.matching.window.wa
19c20 73 20 66 6f 75 6e 64 2e 20 20 49 66 20 22 63 68 61 72 22 20 69 73 20 61 6e 0a 23 20 65 6d 70 74 s.found...If."char".is.an.#.empt
19c40 79 20 73 74 72 69 6e 67 20 74 68 65 6e 20 74 68 65 20 70 72 6f 63 65 64 75 72 65 20 72 65 74 75 y.string.then.the.procedure.retu
19c60 72 6e 73 20 74 68 65 20 6e 61 6d 65 20 6f 66 20 74 68 65 20 66 69 72 73 74 0a 23 20 6d 65 6e 75 rns.the.name.of.the.first.#.menu
19c80 62 75 74 74 6f 6e 20 66 6f 75 6e 64 20 74 68 61 74 20 69 73 6e 27 74 20 64 69 73 61 62 6c 65 64 button.found.that.isn't.disabled
19ca0 2e 0a 23 0a 23 20 41 72 67 75 6d 65 6e 74 73 3a 0a 23 20 77 20 2d 09 09 09 09 4e 61 6d 65 20 6f ..#.#.Arguments:.#.w.-....Name.o
19cc0 66 20 77 69 6e 64 6f 77 20 77 68 65 72 65 20 6b 65 79 20 77 61 73 20 74 79 70 65 64 2e 0a 23 20 f.window.where.key.was.typed..#.
19ce0 63 68 61 72 20 2d 09 09 09 55 6e 64 65 72 6c 69 6e 65 64 20 63 68 61 72 61 63 74 65 72 20 74 6f char.-...Underlined.character.to
19d00 20 73 65 61 72 63 68 20 66 6f 72 3b 0a 23 09 09 09 09 6d 61 79 20 62 65 20 65 69 74 68 65 72 20 .search.for;.#....may.be.either.
19d20 75 70 70 65 72 20 6f 72 20 6c 6f 77 65 72 20 63 61 73 65 2c 20 61 6e 64 0a 23 09 09 09 09 77 69 upper.or.lower.case,.and.#....wi
19d40 6c 6c 20 6d 61 74 63 68 20 65 69 74 68 65 72 20 75 70 70 65 72 20 6f 72 20 6c 6f 77 65 72 20 63 ll.match.either.upper.or.lower.c
19d60 61 73 65 2e 0a 0a 70 72 6f 63 20 74 6b 4d 65 6e 75 46 69 6e 64 20 7b 77 20 63 68 61 72 7d 20 7b ase...proc.tkMenuFind.{w.char}.{
19d80 0a 20 20 20 20 67 6c 6f 62 61 6c 20 74 6b 50 72 69 76 0a 20 20 20 20 73 65 74 20 63 68 61 72 20 .....global.tkPriv.....set.char.
19da0 5b 73 74 72 69 6e 67 20 74 6f 6c 6f 77 65 72 20 24 63 68 61 72 5d 0a 20 20 20 20 73 65 74 20 77 [string.tolower.$char].....set.w
19dc0 69 6e 64 6f 77 6c 69 73 74 20 5b 77 69 6e 66 6f 20 63 68 69 6c 64 20 24 77 5d 0a 0a 20 20 20 20 indowlist.[winfo.child.$w]......
19de0 66 6f 72 65 61 63 68 20 63 68 69 6c 64 20 24 77 69 6e 64 6f 77 6c 69 73 74 20 7b 0a 09 23 20 44 foreach.child.$windowlist.{..#.D
19e00 6f 6e 27 74 20 64 65 73 63 65 6e 64 20 69 6e 74 6f 20 6f 74 68 65 72 20 74 6f 70 6c 65 76 65 6c on't.descend.into.other.toplevel
19e20 73 2e 0a 20 20 20 20 20 20 20 20 69 66 20 7b 5b 73 74 72 69 6e 67 20 63 6f 6d 70 61 72 65 20 5b s..........if.{[string.compare.[
19e40 77 69 6e 66 6f 20 74 6f 70 6c 65 76 65 6c 20 5b 66 6f 63 75 73 5d 5d 20 5c 0a 09 09 5b 77 69 6e winfo.toplevel.[focus]].\...[win
19e60 66 6f 20 74 6f 70 6c 65 76 65 6c 20 24 63 68 69 6c 64 5d 5d 7d 20 7b 0a 09 20 20 20 20 63 6f 6e fo.toplevel.$child]]}.{......con
19e80 74 69 6e 75 65 0a 09 7d 0a 09 69 66 20 7b 5b 73 74 72 69 6e 67 20 65 71 75 61 6c 20 5b 77 69 6e tinue..}..if.{[string.equal.[win
19ea0 66 6f 20 63 6c 61 73 73 20 24 63 68 69 6c 64 5d 20 22 4d 65 6e 75 22 5d 20 26 26 20 5c 0a 09 09 fo.class.$child]."Menu"].&&.\...
19ec0 5b 73 74 72 69 6e 67 20 65 71 75 61 6c 20 5b 24 63 68 69 6c 64 20 63 67 65 74 20 2d 74 79 70 65 [string.equal.[$child.cget.-type
19ee0 5d 20 22 6d 65 6e 75 62 61 72 22 5d 7d 20 7b 0a 09 20 20 20 20 69 66 20 7b 5b 73 74 72 69 6e 67 ]."menubar"]}.{......if.{[string
19f00 20 65 71 75 61 6c 20 24 63 68 61 72 20 22 22 5d 7d 20 7b 0a 09 09 72 65 74 75 72 6e 20 24 63 68 .equal.$char.""]}.{...return.$ch
19f20 69 6c 64 0a 09 20 20 20 20 7d 0a 09 20 20 20 20 73 65 74 20 6c 61 73 74 20 5b 24 63 68 69 6c 64 ild......}......set.last.[$child
19f40 20 69 6e 64 65 78 20 6c 61 73 74 5d 0a 09 20 20 20 20 66 6f 72 20 7b 73 65 74 20 69 20 5b 24 63 .index.last]......for.{set.i.[$c
19f60 68 69 6c 64 20 63 67 65 74 20 2d 74 65 61 72 6f 66 66 5d 7d 20 7b 24 69 20 3c 3d 20 24 6c 61 73 hild.cget.-tearoff]}.{$i.<=.$las
19f80 74 7d 20 7b 69 6e 63 72 20 69 7d 20 7b 0a 09 09 69 66 20 7b 5b 73 74 72 69 6e 67 20 65 71 75 61 t}.{incr.i}.{...if.{[string.equa
19fa0 6c 20 5b 24 63 68 69 6c 64 20 74 79 70 65 20 24 69 5d 20 22 73 65 70 61 72 61 74 6f 72 22 5d 7d l.[$child.type.$i]."separator"]}
19fc0 20 7b 0a 09 09 20 20 20 20 63 6f 6e 74 69 6e 75 65 0a 09 09 7d 0a 09 09 73 65 74 20 63 68 61 72 .{.......continue...}...set.char
19fe0 32 20 5b 73 74 72 69 6e 67 20 69 6e 64 65 78 20 5b 24 63 68 69 6c 64 20 65 6e 74 72 79 63 67 65 2.[string.index.[$child.entrycge
1a000 74 20 24 69 20 2d 6c 61 62 65 6c 5d 20 5c 0a 09 09 09 5b 24 63 68 69 6c 64 20 65 6e 74 72 79 63 t.$i.-label].\....[$child.entryc
1a020 67 65 74 20 24 69 20 2d 75 6e 64 65 72 6c 69 6e 65 5d 5d 0a 09 09 69 66 20 7b 5b 73 74 72 69 6e get.$i.-underline]]...if.{[strin
1a040 67 20 65 71 75 61 6c 20 24 63 68 61 72 20 5b 73 74 72 69 6e 67 20 74 6f 6c 6f 77 65 72 20 24 63 g.equal.$char.[string.tolower.$c
1a060 68 61 72 32 5d 5d 20 5c 0a 09 09 09 7c 7c 20 5b 73 74 72 69 6e 67 20 65 71 75 61 6c 20 24 63 68 har2]].\....||.[string.equal.$ch
1a080 61 72 20 22 22 5d 7d 20 7b 0a 09 09 20 20 20 20 69 66 20 7b 5b 73 74 72 69 6e 67 20 63 6f 6d 70 ar.""]}.{.......if.{[string.comp
1a0a0 61 72 65 20 5b 24 63 68 69 6c 64 20 65 6e 74 72 79 63 67 65 74 20 24 69 20 2d 73 74 61 74 65 5d are.[$child.entrycget.$i.-state]
1a0c0 20 22 64 69 73 61 62 6c 65 64 22 5d 7d 20 7b 0a 09 09 09 72 65 74 75 72 6e 20 24 63 68 69 6c 64 ."disabled"]}.{....return.$child
1a0e0 0a 09 09 20 20 20 20 7d 0a 09 09 7d 0a 09 20 20 20 20 7d 0a 09 7d 0a 20 20 20 20 7d 0a 0a 20 20 .......}...}......}..}.....}....
1a100 20 20 66 6f 72 65 61 63 68 20 63 68 69 6c 64 20 24 77 69 6e 64 6f 77 6c 69 73 74 20 7b 0a 09 23 ..foreach.child.$windowlist.{..#
1a120 20 44 6f 6e 27 74 20 64 65 73 63 65 6e 64 20 69 6e 74 6f 20 6f 74 68 65 72 20 74 6f 70 6c 65 76 .Don't.descend.into.other.toplev
1a140 65 6c 73 2e 0a 20 20 20 20 20 20 20 20 69 66 20 7b 5b 73 74 72 69 6e 67 20 63 6f 6d 70 61 72 65 els..........if.{[string.compare
1a160 20 5b 77 69 6e 66 6f 20 74 6f 70 6c 65 76 65 6c 20 5b 66 6f 63 75 73 5d 5d 20 5c 0a 09 09 5b 77 .[winfo.toplevel.[focus]].\...[w
1a180 69 6e 66 6f 20 74 6f 70 6c 65 76 65 6c 20 24 63 68 69 6c 64 5d 5d 7d 20 7b 0a 09 20 20 20 20 63 info.toplevel.$child]]}.{......c
1a1a0 6f 6e 74 69 6e 75 65 0a 09 7d 0a 09 73 77 69 74 63 68 20 5b 77 69 6e 66 6f 20 63 6c 61 73 73 20 ontinue..}..switch.[winfo.class.
1a1c0 24 63 68 69 6c 64 5d 20 7b 0a 09 20 20 20 20 4d 65 6e 75 62 75 74 74 6f 6e 20 7b 0a 09 09 73 65 $child].{......Menubutton.{...se
1a1e0 74 20 63 68 61 72 32 20 5b 73 74 72 69 6e 67 20 69 6e 64 65 78 20 5b 24 63 68 69 6c 64 20 63 67 t.char2.[string.index.[$child.cg
1a200 65 74 20 2d 74 65 78 74 5d 20 5c 0a 09 09 09 5b 24 63 68 69 6c 64 20 63 67 65 74 20 2d 75 6e 64 et.-text].\....[$child.cget.-und
1a220 65 72 6c 69 6e 65 5d 5d 0a 09 09 69 66 20 7b 5b 73 74 72 69 6e 67 20 65 71 75 61 6c 20 24 63 68 erline]]...if.{[string.equal.$ch
1a240 61 72 20 5b 73 74 72 69 6e 67 20 74 6f 6c 6f 77 65 72 20 24 63 68 61 72 32 5d 5d 20 5c 0a 09 09 ar.[string.tolower.$char2]].\...
1a260 09 7c 7c 20 5b 73 74 72 69 6e 67 20 65 71 75 61 6c 20 24 63 68 61 72 20 22 22 5d 7d 20 7b 0a 09 .||.[string.equal.$char.""]}.{..
1a280 09 20 20 20 20 69 66 20 7b 5b 73 74 72 69 6e 67 20 63 6f 6d 70 61 72 65 20 5b 24 63 68 69 6c 64 .....if.{[string.compare.[$child
1a2a0 20 63 67 65 74 20 2d 73 74 61 74 65 5d 20 22 64 69 73 61 62 6c 65 64 22 5d 7d 20 7b 0a 09 09 09 .cget.-state]."disabled"]}.{....
1a2c0 72 65 74 75 72 6e 20 24 63 68 69 6c 64 0a 09 09 20 20 20 20 7d 0a 09 09 7d 0a 09 20 20 20 20 7d return.$child.......}...}......}
1a2e0 0a 0a 09 20 20 20 20 64 65 66 61 75 6c 74 20 7b 0a 09 09 73 65 74 20 6d 61 74 63 68 20 5b 74 6b .......default.{...set.match.[tk
1a300 4d 65 6e 75 46 69 6e 64 20 24 63 68 69 6c 64 20 24 63 68 61 72 5d 0a 09 09 69 66 20 7b 5b 73 74 MenuFind.$child.$char]...if.{[st
1a320 72 69 6e 67 20 63 6f 6d 70 61 72 65 20 24 6d 61 74 63 68 20 22 22 5d 7d 20 7b 0a 09 09 20 20 20 ring.compare.$match.""]}.{......
1a340 20 72 65 74 75 72 6e 20 24 6d 61 74 63 68 0a 09 09 7d 0a 09 20 20 20 20 7d 0a 09 7d 0a 20 20 20 .return.$match...}......}..}....
1a360 20 7d 0a 20 20 20 20 72 65 74 75 72 6e 20 7b 7d 0a 7d 0a 0a 23 20 74 6b 54 72 61 76 65 72 73 65 .}.....return.{}.}..#.tkTraverse
1a380 54 6f 4d 65 6e 75 20 2d 2d 0a 23 20 54 68 69 73 20 70 72 6f 63 65 64 75 72 65 20 69 6d 70 6c 65 ToMenu.--.#.This.procedure.imple
1a3a0 6d 65 6e 74 73 20 6b 65 79 62 6f 61 72 64 20 74 72 61 76 65 72 73 61 6c 20 6f 66 20 6d 65 6e 75 ments.keyboard.traversal.of.menu
1a3c0 73 2e 20 20 47 69 76 65 6e 20 61 6e 0a 23 20 41 53 43 49 49 20 63 68 61 72 61 63 74 65 72 20 22 s...Given.an.#.ASCII.character."
1a3e0 63 68 61 72 22 2c 20 69 74 20 6c 6f 6f 6b 73 20 66 6f 72 20 61 20 6d 65 6e 75 62 75 74 74 6f 6e char",.it.looks.for.a.menubutton
1a400 20 77 69 74 68 20 74 68 61 74 20 63 68 61 72 61 63 74 65 72 0a 23 20 75 6e 64 65 72 6c 69 6e 65 .with.that.character.#.underline
1a420 64 2e 20 20 49 66 20 6f 6e 65 20 69 73 20 66 6f 75 6e 64 2c 20 69 74 20 70 6f 73 74 73 20 74 68 d...If.one.is.found,.it.posts.th
1a440 65 20 6d 65 6e 75 62 75 74 74 6f 6e 27 73 20 6d 65 6e 75 0a 23 0a 23 20 41 72 67 75 6d 65 6e 74 e.menubutton's.menu.#.#.Argument
1a460 73 3a 0a 23 20 77 20 2d 09 09 09 09 57 69 6e 64 6f 77 20 69 6e 20 77 68 69 63 68 20 74 68 65 20 s:.#.w.-....Window.in.which.the.
1a480 6b 65 79 20 77 61 73 20 74 79 70 65 64 20 28 73 65 6c 65 63 74 73 0a 23 09 09 09 09 61 20 74 6f key.was.typed.(selects.#....a.to
1a4a0 70 6c 65 76 65 6c 20 77 69 6e 64 6f 77 29 2e 0a 23 20 63 68 61 72 20 2d 09 09 09 43 68 61 72 61 plevel.window)..#.char.-...Chara
1a4c0 63 74 65 72 20 74 68 61 74 20 73 65 6c 65 63 74 73 20 61 20 6d 65 6e 75 2e 20 20 54 68 65 20 63 cter.that.selects.a.menu...The.c
1a4e0 61 73 65 0a 23 09 09 09 09 69 73 20 69 67 6e 6f 72 65 64 2e 20 20 49 66 20 61 6e 20 65 6d 70 74 ase.#....is.ignored...If.an.empt
1a500 79 20 73 74 72 69 6e 67 2c 20 6e 6f 74 68 69 6e 67 0a 23 09 09 09 09 68 61 70 70 65 6e 73 2e 0a y.string,.nothing.#....happens..
1a520 0a 70 72 6f 63 20 74 6b 54 72 61 76 65 72 73 65 54 6f 4d 65 6e 75 20 7b 77 20 63 68 61 72 7d 20 .proc.tkTraverseToMenu.{w.char}.
1a540 7b 0a 20 20 20 20 67 6c 6f 62 61 6c 20 74 6b 50 72 69 76 0a 20 20 20 20 69 66 20 7b 5b 73 74 72 {.....global.tkPriv.....if.{[str
1a560 69 6e 67 20 65 71 75 61 6c 20 24 63 68 61 72 20 22 22 5d 7d 20 7b 0a 09 72 65 74 75 72 6e 0a 20 ing.equal.$char.""]}.{..return..
1a580 20 20 20 7d 0a 20 20 20 20 77 68 69 6c 65 20 7b 5b 73 74 72 69 6e 67 20 65 71 75 61 6c 20 5b 77 ...}.....while.{[string.equal.[w
1a5a0 69 6e 66 6f 20 63 6c 61 73 73 20 24 77 5d 20 22 4d 65 6e 75 22 5d 7d 20 7b 0a 09 69 66 20 7b 5b info.class.$w]."Menu"]}.{..if.{[
1a5c0 73 74 72 69 6e 67 20 63 6f 6d 70 61 72 65 20 5b 24 77 20 63 67 65 74 20 2d 74 79 70 65 5d 20 22 string.compare.[$w.cget.-type]."
1a5e0 6d 65 6e 75 62 61 72 22 5d 20 5c 0a 09 09 26 26 20 5b 73 74 72 69 6e 67 20 65 71 75 61 6c 20 24 menubar"].\...&&.[string.equal.$
1a600 74 6b 50 72 69 76 28 70 6f 73 74 65 64 4d 62 29 20 22 22 5d 7d 20 7b 0a 09 20 20 20 20 72 65 74 tkPriv(postedMb).""]}.{......ret
1a620 75 72 6e 0a 09 7d 0a 09 69 66 20 7b 5b 73 74 72 69 6e 67 20 65 71 75 61 6c 20 5b 24 77 20 63 67 urn..}..if.{[string.equal.[$w.cg
1a640 65 74 20 2d 74 79 70 65 5d 20 22 6d 65 6e 75 62 61 72 22 5d 7d 20 7b 0a 09 20 20 20 20 62 72 65 et.-type]."menubar"]}.{......bre
1a660 61 6b 0a 09 7d 0a 09 73 65 74 20 77 20 5b 77 69 6e 66 6f 20 70 61 72 65 6e 74 20 24 77 5d 0a 20 ak..}..set.w.[winfo.parent.$w]..
1a680 20 20 20 7d 0a 20 20 20 20 73 65 74 20 77 20 5b 74 6b 4d 65 6e 75 46 69 6e 64 20 5b 77 69 6e 66 ...}.....set.w.[tkMenuFind.[winf
1a6a0 6f 20 74 6f 70 6c 65 76 65 6c 20 24 77 5d 20 24 63 68 61 72 5d 0a 20 20 20 20 69 66 20 7b 5b 73 o.toplevel.$w].$char].....if.{[s
1a6c0 74 72 69 6e 67 20 63 6f 6d 70 61 72 65 20 24 77 20 22 22 5d 7d 20 7b 0a 09 69 66 20 7b 5b 73 74 tring.compare.$w.""]}.{..if.{[st
1a6e0 72 69 6e 67 20 65 71 75 61 6c 20 5b 77 69 6e 66 6f 20 63 6c 61 73 73 20 24 77 5d 20 22 4d 65 6e ring.equal.[winfo.class.$w]."Men
1a700 75 22 5d 7d 20 7b 0a 09 20 20 20 20 74 6b 5f 6d 65 6e 75 53 65 74 46 6f 63 75 73 20 24 77 0a 09 u"]}.{......tk_menuSetFocus.$w..
1a720 20 20 20 20 73 65 74 20 74 6b 50 72 69 76 28 77 69 6e 64 6f 77 29 20 24 77 0a 09 20 20 20 20 74 ....set.tkPriv(window).$w......t
1a740 6b 53 61 76 65 47 72 61 62 49 6e 66 6f 20 24 77 0a 09 20 20 20 20 67 72 61 62 20 2d 67 6c 6f 62 kSaveGrabInfo.$w......grab.-glob
1a760 61 6c 20 24 77 0a 09 20 20 20 20 74 6b 54 72 61 76 65 72 73 65 57 69 74 68 69 6e 4d 65 6e 75 20 al.$w......tkTraverseWithinMenu.
1a780 24 77 20 24 63 68 61 72 0a 09 7d 20 65 6c 73 65 20 7b 0a 09 20 20 20 20 74 6b 4d 62 50 6f 73 74 $w.$char..}.else.{......tkMbPost
1a7a0 20 24 77 0a 09 20 20 20 20 74 6b 4d 65 6e 75 46 69 72 73 74 45 6e 74 72 79 20 5b 24 77 20 63 67 .$w......tkMenuFirstEntry.[$w.cg
1a7c0 65 74 20 2d 6d 65 6e 75 5d 0a 09 7d 0a 20 20 20 20 7d 0a 7d 0a 0a 23 20 74 6b 46 69 72 73 74 4d et.-menu]..}.....}.}..#.tkFirstM
1a7e0 65 6e 75 20 2d 2d 0a 23 20 54 68 69 73 20 70 72 6f 63 65 64 75 72 65 20 74 72 61 76 65 72 73 65 enu.--.#.This.procedure.traverse
1a800 73 20 74 6f 20 74 68 65 20 66 69 72 73 74 20 6d 65 6e 75 62 75 74 74 6f 6e 20 69 6e 20 74 68 65 s.to.the.first.menubutton.in.the
1a820 20 74 6f 70 6c 65 76 65 6c 0a 23 20 66 6f 72 20 61 20 67 69 76 65 6e 20 77 69 6e 64 6f 77 2c 20 .toplevel.#.for.a.given.window,.
1a840 61 6e 64 20 70 6f 73 74 73 20 74 68 61 74 20 6d 65 6e 75 62 75 74 74 6f 6e 27 73 20 6d 65 6e 75 and.posts.that.menubutton's.menu
1a860 2e 0a 23 0a 23 20 41 72 67 75 6d 65 6e 74 73 3a 0a 23 20 77 20 2d 09 09 09 09 4e 61 6d 65 20 6f ..#.#.Arguments:.#.w.-....Name.o
1a880 66 20 61 20 77 69 6e 64 6f 77 2e 20 20 53 65 6c 65 63 74 73 20 77 68 69 63 68 20 74 6f 70 6c 65 f.a.window...Selects.which.tople
1a8a0 76 65 6c 0a 23 09 09 09 09 74 6f 20 73 65 61 72 63 68 20 66 6f 72 20 6d 65 6e 75 62 75 74 74 6f vel.#....to.search.for.menubutto
1a8c0 6e 73 2e 0a 0a 70 72 6f 63 20 74 6b 46 69 72 73 74 4d 65 6e 75 20 77 20 7b 0a 20 20 20 20 73 65 ns...proc.tkFirstMenu.w.{.....se
1a8e0 74 20 77 20 5b 74 6b 4d 65 6e 75 46 69 6e 64 20 5b 77 69 6e 66 6f 20 74 6f 70 6c 65 76 65 6c 20 t.w.[tkMenuFind.[winfo.toplevel.
1a900 24 77 5d 20 22 22 5d 0a 20 20 20 20 69 66 20 7b 5b 73 74 72 69 6e 67 20 63 6f 6d 70 61 72 65 20 $w].""].....if.{[string.compare.
1a920 24 77 20 22 22 5d 7d 20 7b 0a 09 69 66 20 7b 5b 73 74 72 69 6e 67 20 65 71 75 61 6c 20 5b 77 69 $w.""]}.{..if.{[string.equal.[wi
1a940 6e 66 6f 20 63 6c 61 73 73 20 24 77 5d 20 22 4d 65 6e 75 22 5d 7d 20 7b 0a 09 20 20 20 20 74 6b nfo.class.$w]."Menu"]}.{......tk
1a960 5f 6d 65 6e 75 53 65 74 46 6f 63 75 73 20 24 77 0a 09 20 20 20 20 73 65 74 20 74 6b 50 72 69 76 _menuSetFocus.$w......set.tkPriv
1a980 28 77 69 6e 64 6f 77 29 20 24 77 0a 09 20 20 20 20 74 6b 53 61 76 65 47 72 61 62 49 6e 66 6f 20 (window).$w......tkSaveGrabInfo.
1a9a0 24 77 0a 09 20 20 20 20 67 72 61 62 20 2d 67 6c 6f 62 61 6c 20 24 77 0a 09 20 20 20 20 74 6b 4d $w......grab.-global.$w......tkM
1a9c0 65 6e 75 46 69 72 73 74 45 6e 74 72 79 20 24 77 0a 09 7d 20 65 6c 73 65 20 7b 0a 09 20 20 20 20 enuFirstEntry.$w..}.else.{......
1a9e0 74 6b 4d 62 50 6f 73 74 20 24 77 0a 09 20 20 20 20 74 6b 4d 65 6e 75 46 69 72 73 74 45 6e 74 72 tkMbPost.$w......tkMenuFirstEntr
1aa00 79 20 5b 24 77 20 63 67 65 74 20 2d 6d 65 6e 75 5d 0a 09 7d 0a 20 20 20 20 7d 0a 7d 0a 0a 23 20 y.[$w.cget.-menu]..}.....}.}..#.
1aa20 74 6b 54 72 61 76 65 72 73 65 57 69 74 68 69 6e 4d 65 6e 75 0a 23 20 54 68 69 73 20 70 72 6f 63 tkTraverseWithinMenu.#.This.proc
1aa40 65 64 75 72 65 20 69 6d 70 6c 65 6d 65 6e 74 73 20 6b 65 79 62 6f 61 72 64 20 74 72 61 76 65 72 edure.implements.keyboard.traver
1aa60 73 61 6c 20 77 69 74 68 69 6e 20 61 20 6d 65 6e 75 2e 20 20 49 74 0a 23 20 73 65 61 72 63 68 65 sal.within.a.menu...It.#.searche
1aa80 73 20 66 6f 72 20 61 6e 20 65 6e 74 72 79 20 69 6e 20 74 68 65 20 6d 65 6e 75 20 74 68 61 74 20 s.for.an.entry.in.the.menu.that.
1aaa0 68 61 73 20 22 63 68 61 72 22 20 75 6e 64 65 72 6c 69 6e 65 64 2e 20 20 49 66 0a 23 20 73 75 63 has."char".underlined...If.#.suc
1aac0 68 20 61 6e 20 65 6e 74 72 79 20 69 73 20 66 6f 75 6e 64 2c 20 69 74 20 69 73 20 69 6e 76 6f 6b h.an.entry.is.found,.it.is.invok
1aae0 65 64 20 61 6e 64 20 74 68 65 20 6d 65 6e 75 20 69 73 20 75 6e 70 6f 73 74 65 64 2e 0a 23 0a 23 ed.and.the.menu.is.unposted..#.#
1ab00 20 41 72 67 75 6d 65 6e 74 73 3a 0a 23 20 77 20 2d 09 09 09 09 54 68 65 20 6e 61 6d 65 20 6f 66 .Arguments:.#.w.-....The.name.of
1ab20 20 74 68 65 20 6d 65 6e 75 20 77 69 64 67 65 74 2e 0a 23 20 63 68 61 72 20 2d 09 09 09 54 68 65 .the.menu.widget..#.char.-...The
1ab40 20 63 68 61 72 61 63 74 65 72 20 74 6f 20 6c 6f 6f 6b 20 66 6f 72 3b 20 20 63 61 73 65 20 69 73 .character.to.look.for;..case.is
1ab60 0a 23 09 09 09 09 69 67 6e 6f 72 65 64 2e 20 20 49 66 20 74 68 65 20 73 74 72 69 6e 67 20 69 73 .#....ignored...If.the.string.is
1ab80 20 65 6d 70 74 79 20 74 68 65 6e 0a 23 09 09 09 09 6e 6f 74 68 69 6e 67 20 68 61 70 70 65 6e 73 .empty.then.#....nothing.happens
1aba0 2e 0a 0a 70 72 6f 63 20 74 6b 54 72 61 76 65 72 73 65 57 69 74 68 69 6e 4d 65 6e 75 20 7b 77 20 ...proc.tkTraverseWithinMenu.{w.
1abc0 63 68 61 72 7d 20 7b 0a 20 20 20 20 69 66 20 7b 5b 73 74 72 69 6e 67 20 65 71 75 61 6c 20 24 63 char}.{.....if.{[string.equal.$c
1abe0 68 61 72 20 22 22 5d 7d 20 7b 0a 09 72 65 74 75 72 6e 0a 20 20 20 20 7d 0a 20 20 20 20 73 65 74 har.""]}.{..return.....}.....set
1ac00 20 63 68 61 72 20 5b 73 74 72 69 6e 67 20 74 6f 6c 6f 77 65 72 20 24 63 68 61 72 5d 0a 20 20 20 .char.[string.tolower.$char]....
1ac20 20 73 65 74 20 6c 61 73 74 20 5b 24 77 20 69 6e 64 65 78 20 6c 61 73 74 5d 0a 20 20 20 20 69 66 .set.last.[$w.index.last].....if
1ac40 20 7b 5b 73 74 72 69 6e 67 20 65 71 75 61 6c 20 24 6c 61 73 74 20 22 6e 6f 6e 65 22 5d 7d 20 7b .{[string.equal.$last."none"]}.{
1ac60 0a 09 72 65 74 75 72 6e 0a 20 20 20 20 7d 0a 20 20 20 20 66 6f 72 20 7b 73 65 74 20 69 20 30 7d ..return.....}.....for.{set.i.0}
1ac80 20 7b 24 69 20 3c 3d 20 24 6c 61 73 74 7d 20 7b 69 6e 63 72 20 69 7d 20 7b 0a 09 69 66 20 7b 5b .{$i.<=.$last}.{incr.i}.{..if.{[
1aca0 63 61 74 63 68 20 7b 73 65 74 20 63 68 61 72 32 20 5b 73 74 72 69 6e 67 20 69 6e 64 65 78 20 5c catch.{set.char2.[string.index.\
1acc0 0a 09 09 5b 24 77 20 65 6e 74 72 79 63 67 65 74 20 24 69 20 2d 6c 61 62 65 6c 5d 20 5b 24 77 20 ...[$w.entrycget.$i.-label].[$w.
1ace0 65 6e 74 72 79 63 67 65 74 20 24 69 20 2d 75 6e 64 65 72 6c 69 6e 65 5d 5d 7d 5d 7d 20 7b 0a 09 entrycget.$i.-underline]]}]}.{..
1ad00 20 20 20 20 63 6f 6e 74 69 6e 75 65 0a 09 7d 0a 09 69 66 20 7b 5b 73 74 72 69 6e 67 20 65 71 75 ....continue..}..if.{[string.equ
1ad20 61 6c 20 24 63 68 61 72 20 5b 73 74 72 69 6e 67 20 74 6f 6c 6f 77 65 72 20 24 63 68 61 72 32 5d al.$char.[string.tolower.$char2]
1ad40 5d 7d 20 7b 0a 09 20 20 20 20 69 66 20 7b 5b 73 74 72 69 6e 67 20 65 71 75 61 6c 20 5b 24 77 20 ]}.{......if.{[string.equal.[$w.
1ad60 74 79 70 65 20 24 69 5d 20 22 63 61 73 63 61 64 65 22 5d 7d 20 7b 0a 09 09 24 77 20 61 63 74 69 type.$i]."cascade"]}.{...$w.acti
1ad80 76 61 74 65 20 24 69 0a 09 09 24 77 20 70 6f 73 74 63 61 73 63 61 64 65 20 61 63 74 69 76 65 0a vate.$i...$w.postcascade.active.
1ada0 09 09 65 76 65 6e 74 20 67 65 6e 65 72 61 74 65 20 24 77 20 3c 3c 4d 65 6e 75 53 65 6c 65 63 74 ..event.generate.$w.<<MenuSelect
1adc0 3e 3e 0a 09 09 73 65 74 20 6d 32 20 5b 24 77 20 65 6e 74 72 79 63 67 65 74 20 24 69 20 2d 6d 65 >>...set.m2.[$w.entrycget.$i.-me
1ade0 6e 75 5d 0a 09 09 69 66 20 7b 5b 73 74 72 69 6e 67 20 63 6f 6d 70 61 72 65 20 24 6d 32 20 22 22 nu]...if.{[string.compare.$m2.""
1ae00 5d 7d 20 7b 0a 09 09 20 20 20 20 74 6b 4d 65 6e 75 46 69 72 73 74 45 6e 74 72 79 20 24 6d 32 0a ]}.{.......tkMenuFirstEntry.$m2.
1ae20 09 09 7d 0a 09 20 20 20 20 7d 20 65 6c 73 65 20 7b 0a 09 09 74 6b 4d 65 6e 75 55 6e 70 6f 73 74 ..}......}.else.{...tkMenuUnpost
1ae40 20 24 77 0a 09 09 75 70 6c 65 76 65 6c 20 23 30 20 5b 6c 69 73 74 20 24 77 20 69 6e 76 6f 6b 65 .$w...uplevel.#0.[list.$w.invoke
1ae60 20 24 69 5d 0a 09 20 20 20 20 7d 0a 09 20 20 20 20 72 65 74 75 72 6e 0a 09 7d 0a 20 20 20 20 7d .$i]......}......return..}.....}
1ae80 0a 7d 0a 0a 23 20 74 6b 4d 65 6e 75 46 69 72 73 74 45 6e 74 72 79 20 2d 2d 0a 23 20 47 69 76 65 .}..#.tkMenuFirstEntry.--.#.Give
1aea0 6e 20 61 20 6d 65 6e 75 2c 20 74 68 69 73 20 70 72 6f 63 65 64 75 72 65 20 66 69 6e 64 73 20 74 n.a.menu,.this.procedure.finds.t
1aec0 68 65 20 66 69 72 73 74 20 65 6e 74 72 79 20 74 68 61 74 20 69 73 6e 27 74 0a 23 20 64 69 73 61 he.first.entry.that.isn't.#.disa
1aee0 62 6c 65 64 20 6f 72 20 61 20 74 65 61 72 2d 6f 66 66 20 6f 72 20 73 65 70 61 72 61 74 6f 72 2c bled.or.a.tear-off.or.separator,
1af00 20 61 6e 64 20 61 63 74 69 76 61 74 65 73 20 74 68 61 74 20 65 6e 74 72 79 2e 0a 23 20 48 6f 77 .and.activates.that.entry..#.How
1af20 65 76 65 72 2c 20 69 66 20 74 68 65 72 65 20 69 73 20 61 6c 72 65 61 64 79 20 61 6e 20 61 63 74 ever,.if.there.is.already.an.act
1af40 69 76 65 20 65 6e 74 72 79 20 69 6e 20 74 68 65 20 6d 65 6e 75 20 28 65 2e 67 2e 2c 0a 23 20 62 ive.entry.in.the.menu.(e.g.,.#.b
1af60 65 63 61 75 73 65 20 6f 66 20 61 20 70 72 65 76 69 6f 75 73 20 63 61 6c 6c 20 74 6f 20 74 6b 50 ecause.of.a.previous.call.to.tkP
1af80 6f 73 74 4f 76 65 72 50 6f 69 6e 74 29 20 74 68 65 6e 20 74 68 65 20 61 63 74 69 76 65 0a 23 20 ostOverPoint).then.the.active.#.
1afa0 65 6e 74 72 79 20 69 73 6e 27 74 20 63 68 61 6e 67 65 64 2e 20 20 54 68 69 73 20 70 72 6f 63 65 entry.isn't.changed...This.proce
1afc0 64 75 72 65 20 61 6c 73 6f 20 73 65 74 73 20 74 68 65 20 69 6e 70 75 74 20 66 6f 63 75 73 0a 23 dure.also.sets.the.input.focus.#
1afe0 20 74 6f 20 74 68 65 20 6d 65 6e 75 2e 0a 23 0a 23 20 41 72 67 75 6d 65 6e 74 73 3a 0a 23 20 6d .to.the.menu..#.#.Arguments:.#.m
1b000 65 6e 75 20 2d 09 09 4e 61 6d 65 20 6f 66 20 74 68 65 20 6d 65 6e 75 20 77 69 6e 64 6f 77 20 28 enu.-..Name.of.the.menu.window.(
1b020 70 6f 73 73 69 62 6c 79 20 65 6d 70 74 79 29 2e 0a 0a 70 72 6f 63 20 74 6b 4d 65 6e 75 46 69 72 possibly.empty)...proc.tkMenuFir
1b040 73 74 45 6e 74 72 79 20 6d 65 6e 75 20 7b 0a 20 20 20 20 69 66 20 7b 5b 73 74 72 69 6e 67 20 65 stEntry.menu.{.....if.{[string.e
1b060 71 75 61 6c 20 24 6d 65 6e 75 20 22 22 5d 7d 20 7b 0a 09 72 65 74 75 72 6e 0a 20 20 20 20 7d 0a qual.$menu.""]}.{..return.....}.
1b080 20 20 20 20 74 6b 5f 6d 65 6e 75 53 65 74 46 6f 63 75 73 20 24 6d 65 6e 75 0a 20 20 20 20 69 66 ....tk_menuSetFocus.$menu.....if
1b0a0 20 7b 5b 73 74 72 69 6e 67 20 63 6f 6d 70 61 72 65 20 5b 24 6d 65 6e 75 20 69 6e 64 65 78 20 61 .{[string.compare.[$menu.index.a
1b0c0 63 74 69 76 65 5d 20 22 6e 6f 6e 65 22 5d 7d 20 7b 0a 09 72 65 74 75 72 6e 0a 20 20 20 20 7d 0a ctive]."none"]}.{..return.....}.
1b0e0 20 20 20 20 73 65 74 20 6c 61 73 74 20 5b 24 6d 65 6e 75 20 69 6e 64 65 78 20 6c 61 73 74 5d 0a ....set.last.[$menu.index.last].
1b100 20 20 20 20 69 66 20 7b 5b 73 74 72 69 6e 67 20 65 71 75 61 6c 20 24 6c 61 73 74 20 22 6e 6f 6e ....if.{[string.equal.$last."non
1b120 65 22 5d 7d 20 7b 0a 09 72 65 74 75 72 6e 0a 20 20 20 20 7d 0a 20 20 20 20 66 6f 72 20 7b 73 65 e"]}.{..return.....}.....for.{se
1b140 74 20 69 20 30 7d 20 7b 24 69 20 3c 3d 20 24 6c 61 73 74 7d 20 7b 69 6e 63 72 20 69 7d 20 7b 0a t.i.0}.{$i.<=.$last}.{incr.i}.{.
1b160 09 69 66 20 7b 28 5b 63 61 74 63 68 20 7b 73 65 74 20 73 74 61 74 65 20 5b 24 6d 65 6e 75 20 65 .if.{([catch.{set.state.[$menu.e
1b180 6e 74 72 79 63 67 65 74 20 24 69 20 2d 73 74 61 74 65 5d 7d 5d 20 3d 3d 20 30 29 20 5c 0a 09 09 ntrycget.$i.-state]}].==.0).\...
1b1a0 26 26 20 5b 73 74 72 69 6e 67 20 63 6f 6d 70 61 72 65 20 24 73 74 61 74 65 20 22 64 69 73 61 62 &&.[string.compare.$state."disab
1b1c0 6c 65 64 22 5d 20 5c 0a 09 09 26 26 20 5b 73 74 72 69 6e 67 20 63 6f 6d 70 61 72 65 20 5b 24 6d led"].\...&&.[string.compare.[$m
1b1e0 65 6e 75 20 74 79 70 65 20 24 69 5d 20 22 74 65 61 72 6f 66 66 22 5d 7d 20 7b 0a 09 20 20 20 20 enu.type.$i]."tearoff"]}.{......
1b200 24 6d 65 6e 75 20 61 63 74 69 76 61 74 65 20 24 69 0a 09 20 20 20 20 74 6b 47 65 6e 65 72 61 74 $menu.activate.$i......tkGenerat
1b220 65 4d 65 6e 75 53 65 6c 65 63 74 20 24 6d 65 6e 75 0a 09 20 20 20 20 69 66 20 7b 5b 73 74 72 69 eMenuSelect.$menu......if.{[stri
1b240 6e 67 20 65 71 75 61 6c 20 5b 24 6d 65 6e 75 20 74 79 70 65 20 24 69 5d 20 22 63 61 73 63 61 64 ng.equal.[$menu.type.$i]."cascad
1b260 65 22 5d 7d 20 7b 0a 09 09 73 65 74 20 63 61 73 63 61 64 65 20 5b 24 6d 65 6e 75 20 65 6e 74 72 e"]}.{...set.cascade.[$menu.entr
1b280 79 63 67 65 74 20 24 69 20 2d 6d 65 6e 75 5d 0a 09 09 69 66 20 7b 5b 73 74 72 69 6e 67 20 63 6f ycget.$i.-menu]...if.{[string.co
1b2a0 6d 70 61 72 65 20 24 63 61 73 63 61 64 65 20 22 22 5d 7d 20 7b 0a 09 09 20 20 20 20 24 6d 65 6e mpare.$cascade.""]}.{.......$men
1b2c0 75 20 70 6f 73 74 63 61 73 63 61 64 65 20 24 69 0a 09 09 20 20 20 20 74 6b 4d 65 6e 75 46 69 72 u.postcascade.$i.......tkMenuFir
1b2e0 73 74 45 6e 74 72 79 20 24 63 61 73 63 61 64 65 0a 09 09 7d 0a 09 20 20 20 20 7d 0a 09 20 20 20 stEntry.$cascade...}......}.....
1b300 20 72 65 74 75 72 6e 0a 09 7d 0a 20 20 20 20 7d 0a 7d 0a 0a 23 20 74 6b 4d 65 6e 75 46 69 6e 64 .return..}.....}.}..#.tkMenuFind
1b320 4e 61 6d 65 20 2d 2d 0a 23 20 47 69 76 65 6e 20 61 20 6d 65 6e 75 20 61 6e 64 20 61 20 74 65 78 Name.--.#.Given.a.menu.and.a.tex
1b340 74 20 73 74 72 69 6e 67 2c 20 72 65 74 75 72 6e 20 74 68 65 20 69 6e 64 65 78 20 6f 66 20 74 68 t.string,.return.the.index.of.th
1b360 65 20 6d 65 6e 75 20 65 6e 74 72 79 0a 23 20 74 68 61 74 20 64 69 73 70 6c 61 79 73 20 74 68 65 e.menu.entry.#.that.displays.the
1b380 20 73 74 72 69 6e 67 20 61 73 20 69 74 73 20 6c 61 62 65 6c 2e 20 20 49 66 20 74 68 65 72 65 20 .string.as.its.label...If.there.
1b3a0 69 73 20 6e 6f 20 73 75 63 68 20 65 6e 74 72 79 2c 0a 23 20 72 65 74 75 72 6e 20 61 6e 20 65 6d is.no.such.entry,.#.return.an.em
1b3c0 70 74 79 20 73 74 72 69 6e 67 2e 20 20 54 68 69 73 20 70 72 6f 63 65 64 75 72 65 20 69 73 20 74 pty.string...This.procedure.is.t
1b3e0 72 69 63 6b 79 20 62 65 63 61 75 73 65 20 73 6f 6d 65 20 6e 61 6d 65 73 0a 23 20 6c 69 6b 65 20 ricky.because.some.names.#.like.
1b400 22 61 63 74 69 76 65 22 20 68 61 76 65 20 61 20 73 70 65 63 69 61 6c 20 6d 65 61 6e 69 6e 67 20 "active".have.a.special.meaning.
1b420 69 6e 20 6d 65 6e 75 20 63 6f 6d 6d 61 6e 64 73 2c 20 73 6f 20 77 65 20 63 61 6e 27 74 0a 23 20 in.menu.commands,.so.we.can't.#.
1b440 61 6c 77 61 79 73 20 75 73 65 20 74 68 65 20 22 69 6e 64 65 78 22 20 77 69 64 67 65 74 20 63 6f always.use.the."index".widget.co
1b460 6d 6d 61 6e 64 2e 0a 23 0a 23 20 41 72 67 75 6d 65 6e 74 73 3a 0a 23 20 6d 65 6e 75 20 2d 09 09 mmand..#.#.Arguments:.#.menu.-..
1b480 4e 61 6d 65 20 6f 66 20 74 68 65 20 6d 65 6e 75 20 77 69 64 67 65 74 2e 0a 23 20 73 20 2d 09 09 Name.of.the.menu.widget..#.s.-..
1b4a0 09 53 74 72 69 6e 67 20 74 6f 20 6c 6f 6f 6b 20 66 6f 72 2e 0a 0a 70 72 6f 63 20 74 6b 4d 65 6e .String.to.look.for...proc.tkMen
1b4c0 75 46 69 6e 64 4e 61 6d 65 20 7b 6d 65 6e 75 20 73 7d 20 7b 0a 20 20 20 20 73 65 74 20 69 20 22 uFindName.{menu.s}.{.....set.i."
1b4e0 22 0a 20 20 20 20 69 66 20 7b 21 5b 72 65 67 65 78 70 20 7b 5e 61 63 74 69 76 65 24 7c 5e 6c 61 ".....if.{![regexp.{^active$|^la
1b500 73 74 24 7c 5e 6e 6f 6e 65 24 7c 5e 5b 30 2d 39 5d 7c 5e 40 7d 20 24 73 5d 7d 20 7b 0a 09 63 61 st$|^none$|^[0-9]|^@}.$s]}.{..ca
1b520 74 63 68 20 7b 73 65 74 20 69 20 5b 24 6d 65 6e 75 20 69 6e 64 65 78 20 24 73 5d 7d 0a 09 72 65 tch.{set.i.[$menu.index.$s]}..re
1b540 74 75 72 6e 20 24 69 0a 20 20 20 20 7d 0a 20 20 20 20 73 65 74 20 6c 61 73 74 20 5b 24 6d 65 6e turn.$i.....}.....set.last.[$men
1b560 75 20 69 6e 64 65 78 20 6c 61 73 74 5d 0a 20 20 20 20 69 66 20 7b 5b 73 74 72 69 6e 67 20 65 71 u.index.last].....if.{[string.eq
1b580 75 61 6c 20 24 6c 61 73 74 20 22 6e 6f 6e 65 22 5d 7d 20 7b 0a 09 72 65 74 75 72 6e 0a 20 20 20 ual.$last."none"]}.{..return....
1b5a0 20 7d 0a 20 20 20 20 66 6f 72 20 7b 73 65 74 20 69 20 30 7d 20 7b 24 69 20 3c 3d 20 24 6c 61 73 .}.....for.{set.i.0}.{$i.<=.$las
1b5c0 74 7d 20 7b 69 6e 63 72 20 69 7d 20 7b 0a 09 69 66 20 7b 21 5b 63 61 74 63 68 20 7b 24 6d 65 6e t}.{incr.i}.{..if.{![catch.{$men
1b5e0 75 20 65 6e 74 72 79 63 67 65 74 20 24 69 20 2d 6c 61 62 65 6c 7d 20 6c 61 62 65 6c 5d 7d 20 7b u.entrycget.$i.-label}.label]}.{
1b600 0a 09 20 20 20 20 69 66 20 7b 5b 73 74 72 69 6e 67 20 65 71 75 61 6c 20 24 6c 61 62 65 6c 20 24 ......if.{[string.equal.$label.$
1b620 73 5d 7d 20 7b 0a 09 09 72 65 74 75 72 6e 20 24 69 0a 09 20 20 20 20 7d 0a 09 7d 0a 20 20 20 20 s]}.{...return.$i......}..}.....
1b640 7d 0a 20 20 20 20 72 65 74 75 72 6e 20 22 22 0a 7d 0a 0a 23 20 74 6b 50 6f 73 74 4f 76 65 72 50 }.....return."".}..#.tkPostOverP
1b660 6f 69 6e 74 20 2d 2d 0a 23 20 54 68 69 73 20 70 72 6f 63 65 64 75 72 65 20 70 6f 73 74 73 20 61 oint.--.#.This.procedure.posts.a
1b680 20 67 69 76 65 6e 20 6d 65 6e 75 20 73 75 63 68 20 74 68 61 74 20 61 20 67 69 76 65 6e 20 65 6e .given.menu.such.that.a.given.en
1b6a0 74 72 79 20 69 6e 20 74 68 65 0a 23 20 6d 65 6e 75 20 69 73 20 63 65 6e 74 65 72 65 64 20 6f 76 try.in.the.#.menu.is.centered.ov
1b6c0 65 72 20 61 20 67 69 76 65 6e 20 70 6f 69 6e 74 20 69 6e 20 74 68 65 20 72 6f 6f 74 20 77 69 6e er.a.given.point.in.the.root.win
1b6e0 64 6f 77 2e 20 20 49 74 20 61 6c 73 6f 0a 23 20 61 63 74 69 76 61 74 65 73 20 74 68 65 20 67 69 dow...It.also.#.activates.the.gi
1b700 76 65 6e 20 65 6e 74 72 79 2e 0a 23 0a 23 20 41 72 67 75 6d 65 6e 74 73 3a 0a 23 20 6d 65 6e 75 ven.entry..#.#.Arguments:.#.menu
1b720 20 2d 09 09 4d 65 6e 75 20 74 6f 20 70 6f 73 74 2e 0a 23 20 78 2c 20 79 20 2d 09 09 52 6f 6f 74 .-..Menu.to.post..#.x,.y.-..Root
1b740 20 63 6f 6f 72 64 69 6e 61 74 65 73 20 6f 66 20 70 6f 69 6e 74 2e 0a 23 20 65 6e 74 72 79 20 2d .coordinates.of.point..#.entry.-
1b760 09 09 49 6e 64 65 78 20 6f 66 20 65 6e 74 72 79 20 77 69 74 68 69 6e 20 6d 65 6e 75 20 74 6f 20 ..Index.of.entry.within.menu.to.
1b780 63 65 6e 74 65 72 20 6f 76 65 72 20 28 78 2c 79 29 2e 0a 23 09 09 09 49 66 20 6f 6d 69 74 74 65 center.over.(x,y)..#...If.omitte
1b7a0 64 20 6f 72 20 73 70 65 63 69 66 69 65 64 20 61 73 20 7b 7d 2c 20 74 68 65 6e 20 74 68 65 20 6d d.or.specified.as.{},.then.the.m
1b7c0 65 6e 75 27 73 0a 23 09 09 09 75 70 70 65 72 2d 6c 65 66 74 20 63 6f 72 6e 65 72 20 67 6f 65 73 enu's.#...upper-left.corner.goes
1b7e0 20 61 74 20 28 78 2c 79 29 2e 0a 0a 70 72 6f 63 20 74 6b 50 6f 73 74 4f 76 65 72 50 6f 69 6e 74 .at.(x,y)...proc.tkPostOverPoint
1b800 20 7b 6d 65 6e 75 20 78 20 79 20 7b 65 6e 74 72 79 20 7b 7d 7d 7d 20 20 7b 0a 20 20 20 20 67 6c .{menu.x.y.{entry.{}}}..{.....gl
1b820 6f 62 61 6c 20 74 63 6c 5f 70 6c 61 74 66 6f 72 6d 0a 20 20 20 20 0a 20 20 20 20 69 66 20 7b 5b obal.tcl_platform..........if.{[
1b840 73 74 72 69 6e 67 20 63 6f 6d 70 61 72 65 20 24 65 6e 74 72 79 20 7b 7d 5d 7d 20 7b 0a 09 69 66 string.compare.$entry.{}]}.{..if
1b860 20 7b 24 65 6e 74 72 79 20 3d 3d 20 5b 24 6d 65 6e 75 20 69 6e 64 65 78 20 6c 61 73 74 5d 7d 20 .{$entry.==.[$menu.index.last]}.
1b880 7b 0a 09 20 20 20 20 69 6e 63 72 20 79 20 5b 65 78 70 72 20 7b 2d 28 5b 24 6d 65 6e 75 20 79 70 {......incr.y.[expr.{-([$menu.yp
1b8a0 6f 73 69 74 69 6f 6e 20 24 65 6e 74 72 79 5d 20 5c 0a 09 09 20 20 20 20 2b 20 5b 77 69 6e 66 6f osition.$entry].\.......+.[winfo
1b8c0 20 72 65 71 68 65 69 67 68 74 20 24 6d 65 6e 75 5d 29 2f 32 7d 5d 0a 09 7d 20 65 6c 73 65 20 7b .reqheight.$menu])/2}]..}.else.{
1b8e0 0a 09 20 20 20 20 69 6e 63 72 20 79 20 5b 65 78 70 72 20 7b 2d 28 5b 24 6d 65 6e 75 20 79 70 6f ......incr.y.[expr.{-([$menu.ypo
1b900 73 69 74 69 6f 6e 20 24 65 6e 74 72 79 5d 20 5c 0a 09 09 20 20 20 20 2b 20 5b 24 6d 65 6e 75 20 sition.$entry].\.......+.[$menu.
1b920 79 70 6f 73 69 74 69 6f 6e 20 5b 65 78 70 72 20 7b 24 65 6e 74 72 79 2b 31 7d 5d 5d 29 2f 32 7d yposition.[expr.{$entry+1}]])/2}
1b940 5d 0a 09 7d 0a 09 69 6e 63 72 20 78 20 5b 65 78 70 72 20 7b 2d 5b 77 69 6e 66 6f 20 72 65 71 77 ]..}..incr.x.[expr.{-[winfo.reqw
1b960 69 64 74 68 20 24 6d 65 6e 75 5d 2f 32 7d 5d 0a 20 20 20 20 7d 0a 20 20 20 20 24 6d 65 6e 75 20 idth.$menu]/2}].....}.....$menu.
1b980 70 6f 73 74 20 24 78 20 24 79 0a 20 20 20 20 69 66 20 7b 5b 73 74 72 69 6e 67 20 63 6f 6d 70 61 post.$x.$y.....if.{[string.compa
1b9a0 72 65 20 24 65 6e 74 72 79 20 7b 7d 5d 20 5c 0a 09 20 20 20 20 26 26 20 5b 73 74 72 69 6e 67 20 re.$entry.{}].\......&&.[string.
1b9c0 63 6f 6d 70 61 72 65 20 5b 24 6d 65 6e 75 20 65 6e 74 72 79 63 67 65 74 20 24 65 6e 74 72 79 20 compare.[$menu.entrycget.$entry.
1b9e0 2d 73 74 61 74 65 5d 20 22 64 69 73 61 62 6c 65 64 22 5d 7d 20 7b 0a 09 24 6d 65 6e 75 20 61 63 -state]."disabled"]}.{..$menu.ac
1ba00 74 69 76 61 74 65 20 24 65 6e 74 72 79 0a 09 74 6b 47 65 6e 65 72 61 74 65 4d 65 6e 75 53 65 6c tivate.$entry..tkGenerateMenuSel
1ba20 65 63 74 20 24 6d 65 6e 75 0a 20 20 20 20 7d 0a 7d 0a 0a 23 20 74 6b 53 61 76 65 47 72 61 62 49 ect.$menu.....}.}..#.tkSaveGrabI
1ba40 6e 66 6f 20 2d 2d 0a 23 20 53 65 74 73 20 74 68 65 20 76 61 72 69 61 62 6c 65 73 20 74 6b 50 72 nfo.--.#.Sets.the.variables.tkPr
1ba60 69 76 28 6f 6c 64 47 72 61 62 29 20 61 6e 64 20 74 6b 50 72 69 76 28 67 72 61 62 53 74 61 74 75 iv(oldGrab).and.tkPriv(grabStatu
1ba80 73 29 20 74 6f 20 72 65 63 6f 72 64 0a 23 20 74 68 65 20 73 74 61 74 65 20 6f 66 20 61 6e 79 20 s).to.record.#.the.state.of.any.
1baa0 65 78 69 73 74 69 6e 67 20 67 72 61 62 20 6f 6e 20 74 68 65 20 77 27 73 20 64 69 73 70 6c 61 79 existing.grab.on.the.w's.display
1bac0 2e 0a 23 0a 23 20 41 72 67 75 6d 65 6e 74 73 3a 0a 23 20 77 20 2d 09 09 09 4e 61 6d 65 20 6f 66 ..#.#.Arguments:.#.w.-...Name.of
1bae0 20 61 20 77 69 6e 64 6f 77 3b 20 20 75 73 65 64 20 74 6f 20 73 65 6c 65 63 74 20 74 68 65 20 64 .a.window;..used.to.select.the.d
1bb00 69 73 70 6c 61 79 0a 23 09 09 09 77 68 6f 73 65 20 67 72 61 62 20 69 6e 66 6f 72 6d 61 74 69 6f isplay.#...whose.grab.informatio
1bb20 6e 20 69 73 20 74 6f 20 62 65 20 72 65 63 6f 72 64 65 64 2e 0a 0a 70 72 6f 63 20 74 6b 53 61 76 n.is.to.be.recorded...proc.tkSav
1bb40 65 47 72 61 62 49 6e 66 6f 20 77 20 7b 0a 20 20 20 20 67 6c 6f 62 61 6c 20 74 6b 50 72 69 76 0a eGrabInfo.w.{.....global.tkPriv.
1bb60 20 20 20 20 73 65 74 20 74 6b 50 72 69 76 28 6f 6c 64 47 72 61 62 29 20 5b 67 72 61 62 20 63 75 ....set.tkPriv(oldGrab).[grab.cu
1bb80 72 72 65 6e 74 20 24 77 5d 0a 20 20 20 20 69 66 20 7b 5b 73 74 72 69 6e 67 20 63 6f 6d 70 61 72 rrent.$w].....if.{[string.compar
1bba0 65 20 24 74 6b 50 72 69 76 28 6f 6c 64 47 72 61 62 29 20 22 22 5d 7d 20 7b 0a 09 73 65 74 20 74 e.$tkPriv(oldGrab).""]}.{..set.t
1bbc0 6b 50 72 69 76 28 67 72 61 62 53 74 61 74 75 73 29 20 5b 67 72 61 62 20 73 74 61 74 75 73 20 24 kPriv(grabStatus).[grab.status.$
1bbe0 74 6b 50 72 69 76 28 6f 6c 64 47 72 61 62 29 5d 0a 20 20 20 20 7d 0a 7d 0a 0a 23 20 74 6b 52 65 tkPriv(oldGrab)].....}.}..#.tkRe
1bc00 73 74 6f 72 65 4f 6c 64 47 72 61 62 20 2d 2d 0a 23 20 52 65 73 74 6f 72 65 73 20 74 68 65 20 67 storeOldGrab.--.#.Restores.the.g
1bc20 72 61 62 20 74 6f 20 77 68 61 74 20 69 74 20 77 61 73 20 62 65 66 6f 72 65 20 54 6b 53 61 76 65 rab.to.what.it.was.before.TkSave
1bc40 47 72 61 62 49 6e 66 6f 20 77 61 73 20 63 61 6c 6c 65 64 2e 0a 23 0a 0a 70 72 6f 63 20 74 6b 52 GrabInfo.was.called..#..proc.tkR
1bc60 65 73 74 6f 72 65 4f 6c 64 47 72 61 62 20 7b 7d 20 7b 0a 20 20 20 20 67 6c 6f 62 61 6c 20 74 6b estoreOldGrab.{}.{.....global.tk
1bc80 50 72 69 76 0a 0a 20 20 20 20 69 66 20 7b 5b 73 74 72 69 6e 67 20 63 6f 6d 70 61 72 65 20 24 74 Priv......if.{[string.compare.$t
1bca0 6b 50 72 69 76 28 6f 6c 64 47 72 61 62 29 20 22 22 5d 7d 20 7b 0a 0a 20 20 20 20 09 23 20 42 65 kPriv(oldGrab).""]}.{.......#.Be
1bcc0 20 63 61 72 65 66 75 6c 20 72 65 73 74 6f 72 69 6e 67 20 74 68 65 20 6f 6c 64 20 67 72 61 62 2c .careful.restoring.the.old.grab,
1bce0 20 73 69 6e 63 65 20 69 74 27 73 20 77 69 6e 64 6f 77 20 6d 61 79 20 6e 6f 74 0a 09 23 20 62 65 .since.it's.window.may.not..#.be
1bd00 20 76 69 73 69 62 6c 65 20 61 6e 79 6d 6f 72 65 2e 0a 0a 09 63 61 74 63 68 20 7b 0a 20 20 20 20 .visible.anymore....catch.{.....
1bd20 20 20 20 20 20 20 69 66 20 7b 5b 73 74 72 69 6e 67 20 65 71 75 61 6c 20 24 74 6b 50 72 69 76 28 ......if.{[string.equal.$tkPriv(
1bd40 67 72 61 62 53 74 61 74 75 73 29 20 22 67 6c 6f 62 61 6c 22 5d 7d 20 7b 0a 09 09 67 72 61 62 20 grabStatus)."global"]}.{...grab.
1bd60 73 65 74 20 2d 67 6c 6f 62 61 6c 20 24 74 6b 50 72 69 76 28 6f 6c 64 47 72 61 62 29 0a 09 20 20 set.-global.$tkPriv(oldGrab)....
1bd80 20 20 7d 20 65 6c 73 65 20 7b 0a 09 09 67 72 61 62 20 73 65 74 20 24 74 6b 50 72 69 76 28 6f 6c ..}.else.{...grab.set.$tkPriv(ol
1bda0 64 47 72 61 62 29 0a 09 20 20 20 20 7d 0a 09 7d 0a 09 73 65 74 20 74 6b 50 72 69 76 28 6f 6c 64 dGrab)......}..}..set.tkPriv(old
1bdc0 47 72 61 62 29 20 22 22 0a 20 20 20 20 7d 0a 7d 0a 0a 70 72 6f 63 20 74 6b 5f 6d 65 6e 75 53 65 Grab)."".....}.}..proc.tk_menuSe
1bde0 74 46 6f 63 75 73 20 7b 6d 65 6e 75 7d 20 7b 0a 20 20 20 20 67 6c 6f 62 61 6c 20 74 6b 50 72 69 tFocus.{menu}.{.....global.tkPri
1be00 76 0a 20 20 20 20 69 66 20 7b 21 5b 69 6e 66 6f 20 65 78 69 73 74 73 20 74 6b 50 72 69 76 28 66 v.....if.{![info.exists.tkPriv(f
1be20 6f 63 75 73 29 5d 20 7c 7c 20 5b 73 74 72 69 6e 67 20 65 71 75 61 6c 20 24 74 6b 50 72 69 76 28 ocus)].||.[string.equal.$tkPriv(
1be40 66 6f 63 75 73 29 20 7b 7d 5d 7d 20 7b 0a 09 73 65 74 20 74 6b 50 72 69 76 28 66 6f 63 75 73 29 focus).{}]}.{..set.tkPriv(focus)
1be60 20 5b 66 6f 63 75 73 5d 0a 20 20 20 20 7d 0a 20 20 20 20 66 6f 63 75 73 20 24 6d 65 6e 75 0a 7d .[focus].....}.....focus.$menu.}
1be80 0a 20 20 20 20 0a 70 72 6f 63 20 74 6b 47 65 6e 65 72 61 74 65 4d 65 6e 75 53 65 6c 65 63 74 20 ......proc.tkGenerateMenuSelect.
1bea0 7b 6d 65 6e 75 7d 20 7b 0a 20 20 20 20 67 6c 6f 62 61 6c 20 74 6b 50 72 69 76 0a 0a 20 20 20 20 {menu}.{.....global.tkPriv......
1bec0 69 66 20 7b 5b 73 74 72 69 6e 67 20 65 71 75 61 6c 20 24 74 6b 50 72 69 76 28 61 63 74 69 76 65 if.{[string.equal.$tkPriv(active
1bee0 4d 65 6e 75 29 20 24 6d 65 6e 75 5d 20 5c 0a 20 20 20 20 20 20 20 20 20 20 26 26 20 5b 73 74 72 Menu).$menu].\...........&&.[str
1bf00 69 6e 67 20 65 71 75 61 6c 20 24 74 6b 50 72 69 76 28 61 63 74 69 76 65 49 74 65 6d 29 20 5b 24 ing.equal.$tkPriv(activeItem).[$
1bf20 6d 65 6e 75 20 69 6e 64 65 78 20 61 63 74 69 76 65 5d 5d 7d 20 7b 0a 09 72 65 74 75 72 6e 0a 20 menu.index.active]]}.{..return..
1bf40 20 20 20 7d 0a 0a 20 20 20 20 73 65 74 20 74 6b 50 72 69 76 28 61 63 74 69 76 65 4d 65 6e 75 29 ...}......set.tkPriv(activeMenu)
1bf60 20 24 6d 65 6e 75 0a 20 20 20 20 73 65 74 20 74 6b 50 72 69 76 28 61 63 74 69 76 65 49 74 65 6d .$menu.....set.tkPriv(activeItem
1bf80 29 20 5b 24 6d 65 6e 75 20 69 6e 64 65 78 20 61 63 74 69 76 65 5d 0a 20 20 20 20 65 76 65 6e 74 ).[$menu.index.active].....event
1bfa0 20 67 65 6e 65 72 61 74 65 20 24 6d 65 6e 75 20 3c 3c 4d 65 6e 75 53 65 6c 65 63 74 3e 3e 0a 7d .generate.$menu.<<MenuSelect>>.}
1bfc0 0a 0a 23 20 74 6b 5f 70 6f 70 75 70 20 2d 2d 0a 23 20 54 68 69 73 20 70 72 6f 63 65 64 75 72 65 ..#.tk_popup.--.#.This.procedure
1bfe0 20 70 6f 70 73 20 75 70 20 61 20 6d 65 6e 75 20 61 6e 64 20 73 65 74 73 20 74 68 69 6e 67 73 20 .pops.up.a.menu.and.sets.things.
1c000 75 70 20 66 6f 72 20 74 72 61 76 65 72 73 69 6e 67 0a 23 20 74 68 65 20 6d 65 6e 75 20 61 6e 64 up.for.traversing.#.the.menu.and
1c020 20 69 74 73 20 73 75 62 6d 65 6e 75 73 2e 0a 23 0a 23 20 41 72 67 75 6d 65 6e 74 73 3a 0a 23 20 .its.submenus..#.#.Arguments:.#.
1c040 6d 65 6e 75 20 2d 09 09 4e 61 6d 65 20 6f 66 20 74 68 65 20 6d 65 6e 75 20 74 6f 20 62 65 20 70 menu.-..Name.of.the.menu.to.be.p
1c060 6f 70 70 65 64 20 75 70 2e 0a 23 20 78 2c 20 79 20 2d 09 09 52 6f 6f 74 20 63 6f 6f 72 64 69 6e opped.up..#.x,.y.-..Root.coordin
1c080 61 74 65 73 20 61 74 20 77 68 69 63 68 20 74 6f 20 70 6f 70 20 75 70 20 74 68 65 0a 23 09 09 09 ates.at.which.to.pop.up.the.#...
1c0a0 6d 65 6e 75 2e 0a 23 20 65 6e 74 72 79 20 2d 09 09 49 6e 64 65 78 20 6f 66 20 61 20 6d 65 6e 75 menu..#.entry.-..Index.of.a.menu
1c0c0 20 65 6e 74 72 79 20 74 6f 20 63 65 6e 74 65 72 20 6f 76 65 72 20 28 78 2c 79 29 2e 0a 23 09 09 .entry.to.center.over.(x,y)..#..
1c0e0 09 49 66 20 6f 6d 69 74 74 65 64 20 6f 72 20 73 70 65 63 69 66 69 65 64 20 61 73 20 7b 7d 2c 20 .If.omitted.or.specified.as.{},.
1c100 74 68 65 6e 20 6d 65 6e 75 27 73 0a 23 09 09 09 75 70 70 65 72 2d 6c 65 66 74 20 63 6f 72 6e 65 then.menu's.#...upper-left.corne
1c120 72 20 67 6f 65 73 20 61 74 20 28 78 2c 79 29 2e 0a 0a 70 72 6f 63 20 74 6b 5f 70 6f 70 75 70 20 r.goes.at.(x,y)...proc.tk_popup.
1c140 7b 6d 65 6e 75 20 78 20 79 20 7b 65 6e 74 72 79 20 7b 7d 7d 7d 20 7b 0a 20 20 20 20 67 6c 6f 62 {menu.x.y.{entry.{}}}.{.....glob
1c160 61 6c 20 74 6b 50 72 69 76 0a 20 20 20 20 67 6c 6f 62 61 6c 20 74 63 6c 5f 70 6c 61 74 66 6f 72 al.tkPriv.....global.tcl_platfor
1c180 6d 0a 20 20 20 20 69 66 20 7b 5b 73 74 72 69 6e 67 20 63 6f 6d 70 61 72 65 20 24 74 6b 50 72 69 m.....if.{[string.compare.$tkPri
1c1a0 76 28 70 6f 70 75 70 29 20 22 22 5d 20 5c 0a 09 20 20 20 20 7c 7c 20 5b 73 74 72 69 6e 67 20 63 v(popup).""].\......||.[string.c
1c1c0 6f 6d 70 61 72 65 20 24 74 6b 50 72 69 76 28 70 6f 73 74 65 64 4d 62 29 20 22 22 5d 7d 20 7b 0a ompare.$tkPriv(postedMb).""]}.{.
1c1e0 09 74 6b 4d 65 6e 75 55 6e 70 6f 73 74 20 7b 7d 0a 20 20 20 20 7d 0a 20 20 20 20 74 6b 50 6f 73 .tkMenuUnpost.{}.....}.....tkPos
1c200 74 4f 76 65 72 50 6f 69 6e 74 20 24 6d 65 6e 75 20 24 78 20 24 79 20 24 65 6e 74 72 79 0a 20 20 tOverPoint.$menu.$x.$y.$entry...
1c220 20 20 69 66 20 7b 5b 73 74 72 69 6e 67 20 65 71 75 61 6c 20 24 74 63 6c 5f 70 6c 61 74 66 6f 72 ..if.{[string.equal.$tcl_platfor
1c240 6d 28 70 6c 61 74 66 6f 72 6d 29 20 22 75 6e 69 78 22 5d 20 5c 0a 09 20 20 20 20 26 26 20 5b 77 m(platform)."unix"].\......&&.[w
1c260 69 6e 66 6f 20 76 69 65 77 61 62 6c 65 20 24 6d 65 6e 75 5d 7d 20 7b 0a 20 20 20 20 20 20 20 20 info.viewable.$menu]}.{.........
1c280 74 6b 53 61 76 65 47 72 61 62 49 6e 66 6f 20 24 6d 65 6e 75 0a 09 67 72 61 62 20 2d 67 6c 6f 62 tkSaveGrabInfo.$menu..grab.-glob
1c2a0 61 6c 20 24 6d 65 6e 75 0a 09 73 65 74 20 74 6b 50 72 69 76 28 70 6f 70 75 70 29 20 24 6d 65 6e al.$menu..set.tkPriv(popup).$men
1c2c0 75 0a 09 74 6b 5f 6d 65 6e 75 53 65 74 46 6f 63 75 73 20 24 6d 65 6e 75 0a 20 20 20 20 7d 0a 7d u..tk_menuSetFocus.$menu.....}.}
1c2e0 0a 00 00 06 7b 23 20 6f 70 74 4d 65 6e 75 2e 74 63 6c 20 2d 2d 0a 23 0a 23 20 54 68 69 73 20 66 ....{#.optMenu.tcl.--.#.#.This.f
1c300 69 6c 65 20 64 65 66 69 6e 65 73 20 74 68 65 20 70 72 6f 63 65 64 75 72 65 20 74 6b 5f 6f 70 74 ile.defines.the.procedure.tk_opt
1c320 69 6f 6e 4d 65 6e 75 2c 20 77 68 69 63 68 20 63 72 65 61 74 65 73 0a 23 20 61 6e 20 6f 70 74 69 ionMenu,.which.creates.#.an.opti
1c340 6f 6e 20 62 75 74 74 6f 6e 20 61 6e 64 20 69 74 73 20 61 73 73 6f 63 69 61 74 65 64 20 6d 65 6e on.button.and.its.associated.men
1c360 75 2e 0a 23 0a 23 20 52 43 53 3a 20 40 28 23 29 20 24 49 64 3a 20 6f 70 74 4d 65 6e 75 2e 74 63 u..#.#.RCS:.@(#).$Id:.optMenu.tc
1c380 6c 2c 76 20 31 2e 33 20 31 39 39 38 2f 30 39 2f 31 34 20 31 38 3a 32 33 3a 32 34 20 73 74 61 6e l,v.1.3.1998/09/14.18:23:24.stan
1c3a0 74 6f 6e 20 45 78 70 20 24 0a 23 0a 23 20 43 6f 70 79 72 69 67 68 74 20 28 63 29 20 31 39 39 34 ton.Exp.$.#.#.Copyright.(c).1994
1c3c0 20 54 68 65 20 52 65 67 65 6e 74 73 20 6f 66 20 74 68 65 20 55 6e 69 76 65 72 73 69 74 79 20 6f .The.Regents.of.the.University.o
1c3e0 66 20 43 61 6c 69 66 6f 72 6e 69 61 2e 0a 23 20 43 6f 70 79 72 69 67 68 74 20 28 63 29 20 31 39 f.California..#.Copyright.(c).19
1c400 39 34 20 53 75 6e 20 4d 69 63 72 6f 73 79 73 74 65 6d 73 2c 20 49 6e 63 2e 0a 23 0a 23 20 53 65 94.Sun.Microsystems,.Inc..#.#.Se
1c420 65 20 74 68 65 20 66 69 6c 65 20 22 6c 69 63 65 6e 73 65 2e 74 65 72 6d 73 22 20 66 6f 72 20 69 e.the.file."license.terms".for.i
1c440 6e 66 6f 72 6d 61 74 69 6f 6e 20 6f 6e 20 75 73 61 67 65 20 61 6e 64 20 72 65 64 69 73 74 72 69 nformation.on.usage.and.redistri
1c460 62 75 74 69 6f 6e 0a 23 20 6f 66 20 74 68 69 73 20 66 69 6c 65 2c 20 61 6e 64 20 66 6f 72 20 61 bution.#.of.this.file,.and.for.a
1c480 20 44 49 53 43 4c 41 49 4d 45 52 20 4f 46 20 41 4c 4c 20 57 41 52 52 41 4e 54 49 45 53 2e 0a 23 .DISCLAIMER.OF.ALL.WARRANTIES..#
1c4a0 0a 0a 23 20 74 6b 5f 6f 70 74 69 6f 6e 4d 65 6e 75 20 2d 2d 0a 23 20 54 68 69 73 20 70 72 6f 63 ..#.tk_optionMenu.--.#.This.proc
1c4c0 65 64 75 72 65 20 63 72 65 61 74 65 73 20 61 6e 20 6f 70 74 69 6f 6e 20 62 75 74 74 6f 6e 20 6e edure.creates.an.option.button.n
1c4e0 61 6d 65 64 20 24 77 20 61 6e 64 20 61 6e 20 61 73 73 6f 63 69 61 74 65 64 0a 23 20 6d 65 6e 75 amed.$w.and.an.associated.#.menu
1c500 2e 20 20 54 6f 67 65 74 68 65 72 20 74 68 65 79 20 70 72 6f 76 69 64 65 20 74 68 65 20 66 75 6e ...Together.they.provide.the.fun
1c520 63 74 69 6f 6e 61 6c 69 74 79 20 6f 66 20 4d 6f 74 69 66 20 6f 70 74 69 6f 6e 20 6d 65 6e 75 73 ctionality.of.Motif.option.menus
1c540 3a 0a 23 20 74 68 65 79 20 63 61 6e 20 62 65 20 75 73 65 64 20 74 6f 20 73 65 6c 65 63 74 20 6f :.#.they.can.be.used.to.select.o
1c560 6e 65 20 6f 66 20 6d 61 6e 79 20 76 61 6c 75 65 73 2c 20 61 6e 64 20 74 68 65 20 63 75 72 72 65 ne.of.many.values,.and.the.curre
1c580 6e 74 20 76 61 6c 75 65 0a 23 20 61 70 70 65 61 72 73 20 69 6e 20 74 68 65 20 67 6c 6f 62 61 6c nt.value.#.appears.in.the.global
1c5a0 20 76 61 72 69 61 62 6c 65 20 76 61 72 4e 61 6d 65 2c 20 61 73 20 77 65 6c 6c 20 61 73 20 69 6e .variable.varName,.as.well.as.in
1c5c0 20 74 68 65 20 74 65 78 74 20 6f 66 0a 23 20 74 68 65 20 6f 70 74 69 6f 6e 20 6d 65 6e 75 62 75 .the.text.of.#.the.option.menubu
1c5e0 74 74 6f 6e 2e 20 20 54 68 65 20 6e 61 6d 65 20 6f 66 20 74 68 65 20 6d 65 6e 75 20 69 73 20 72 tton...The.name.of.the.menu.is.r
1c600 65 74 75 72 6e 65 64 20 61 73 20 74 68 65 0a 23 20 70 72 6f 63 65 64 75 72 65 27 73 20 72 65 73 eturned.as.the.#.procedure's.res
1c620 75 6c 74 2c 20 73 6f 20 74 68 61 74 20 74 68 65 20 63 61 6c 6c 65 72 20 63 61 6e 20 75 73 65 20 ult,.so.that.the.caller.can.use.
1c640 69 74 20 74 6f 20 63 68 61 6e 67 65 20 63 6f 6e 66 69 67 75 72 61 74 69 6f 6e 0a 23 20 6f 70 74 it.to.change.configuration.#.opt
1c660 69 6f 6e 73 20 6f 6e 20 74 68 65 20 6d 65 6e 75 20 6f 72 20 6f 74 68 65 72 77 69 73 65 20 6d 61 ions.on.the.menu.or.otherwise.ma
1c680 6e 69 70 75 6c 61 74 65 20 69 74 2e 0a 23 0a 23 20 41 72 67 75 6d 65 6e 74 73 3a 0a 23 20 77 20 nipulate.it..#.#.Arguments:.#.w.
1c6a0 2d 09 09 09 54 68 65 20 6e 61 6d 65 20 74 6f 20 75 73 65 20 66 6f 72 20 74 68 65 20 6d 65 6e 75 -...The.name.to.use.for.the.menu
1c6c0 62 75 74 74 6f 6e 2e 0a 23 20 76 61 72 4e 61 6d 65 20 2d 09 09 47 6c 6f 62 61 6c 20 76 61 72 69 button..#.varName.-..Global.vari
1c6e0 61 62 6c 65 20 74 6f 20 68 6f 6c 64 20 74 68 65 20 63 75 72 72 65 6e 74 6c 79 20 73 65 6c 65 63 able.to.hold.the.currently.selec
1c700 74 65 64 20 76 61 6c 75 65 2e 0a 23 20 66 69 72 73 74 56 61 6c 75 65 20 2d 09 09 46 69 72 73 74 ted.value..#.firstValue.-..First
1c720 20 6f 66 20 6c 65 67 61 6c 20 76 61 6c 75 65 73 20 66 6f 72 20 6f 70 74 69 6f 6e 20 28 6d 75 73 .of.legal.values.for.option.(mus
1c740 74 20 62 65 20 3e 3d 20 31 29 2e 0a 23 20 61 72 67 73 20 2d 09 09 41 6e 79 20 6e 75 6d 62 65 72 t.be.>=.1)..#.args.-..Any.number
1c760 20 6f 66 20 61 64 64 69 74 69 6f 6e 61 6c 20 76 61 6c 75 65 73 2e 0a 0a 70 72 6f 63 20 74 6b 5f .of.additional.values...proc.tk_
1c780 6f 70 74 69 6f 6e 4d 65 6e 75 20 7b 77 20 76 61 72 4e 61 6d 65 20 66 69 72 73 74 56 61 6c 75 65 optionMenu.{w.varName.firstValue
1c7a0 20 61 72 67 73 7d 20 7b 0a 20 20 20 20 75 70 76 61 72 20 23 30 20 24 76 61 72 4e 61 6d 65 20 76 .args}.{.....upvar.#0.$varName.v
1c7c0 61 72 0a 0a 20 20 20 20 69 66 20 7b 21 5b 69 6e 66 6f 20 65 78 69 73 74 73 20 76 61 72 5d 7d 20 ar......if.{![info.exists.var]}.
1c7e0 7b 0a 09 73 65 74 20 76 61 72 20 24 66 69 72 73 74 56 61 6c 75 65 0a 20 20 20 20 7d 0a 20 20 20 {..set.var.$firstValue.....}....
1c800 20 6d 65 6e 75 62 75 74 74 6f 6e 20 24 77 20 2d 74 65 78 74 76 61 72 69 61 62 6c 65 20 24 76 61 .menubutton.$w.-textvariable.$va
1c820 72 4e 61 6d 65 20 2d 69 6e 64 69 63 61 74 6f 72 6f 6e 20 31 20 2d 6d 65 6e 75 20 24 77 2e 6d 65 rName.-indicatoron.1.-menu.$w.me
1c840 6e 75 20 5c 0a 09 20 20 20 20 2d 72 65 6c 69 65 66 20 72 61 69 73 65 64 20 2d 62 64 20 32 20 2d nu.\......-relief.raised.-bd.2.-
1c860 68 69 67 68 6c 69 67 68 74 74 68 69 63 6b 6e 65 73 73 20 32 20 2d 61 6e 63 68 6f 72 20 63 20 5c highlightthickness.2.-anchor.c.\
1c880 0a 09 20 20 20 20 2d 64 69 72 65 63 74 69 6f 6e 20 66 6c 75 73 68 0a 20 20 20 20 6d 65 6e 75 20 ......-direction.flush.....menu.
1c8a0 24 77 2e 6d 65 6e 75 20 2d 74 65 61 72 6f 66 66 20 30 0a 20 20 20 20 24 77 2e 6d 65 6e 75 20 61 $w.menu.-tearoff.0.....$w.menu.a
1c8c0 64 64 20 72 61 64 69 6f 62 75 74 74 6f 6e 20 2d 6c 61 62 65 6c 20 24 66 69 72 73 74 56 61 6c 75 dd.radiobutton.-label.$firstValu
1c8e0 65 20 2d 76 61 72 69 61 62 6c 65 20 24 76 61 72 4e 61 6d 65 0a 20 20 20 20 66 6f 72 65 61 63 68 e.-variable.$varName.....foreach
1c900 20 69 20 24 61 72 67 73 20 7b 0a 20 20 20 20 09 24 77 2e 6d 65 6e 75 20 61 64 64 20 72 61 64 69 .i.$args.{......$w.menu.add.radi
1c920 6f 62 75 74 74 6f 6e 20 2d 6c 61 62 65 6c 20 24 69 20 2d 76 61 72 69 61 62 6c 65 20 24 76 61 72 obutton.-label.$i.-variable.$var
1c940 4e 61 6d 65 0a 20 20 20 20 7d 0a 20 20 20 20 72 65 74 75 72 6e 20 24 77 2e 6d 65 6e 75 0a 7d 0a Name.....}.....return.$w.menu.}.
1c960 00 00 1c e4 23 20 70 61 6c 65 74 74 65 2e 74 63 6c 20 2d 2d 0a 23 0a 23 20 54 68 69 73 20 66 69 ....#.palette.tcl.--.#.#.This.fi
1c980 6c 65 20 63 6f 6e 74 61 69 6e 73 20 70 72 6f 63 65 64 75 72 65 73 20 74 68 61 74 20 63 68 61 6e le.contains.procedures.that.chan
1c9a0 67 65 20 74 68 65 20 63 6f 6c 6f 72 20 70 61 6c 65 74 74 65 20 75 73 65 64 0a 23 20 62 79 20 54 ge.the.color.palette.used.#.by.T
1c9c0 6b 2e 0a 23 0a 23 20 52 43 53 3a 20 40 28 23 29 20 24 49 64 3a 20 70 61 6c 65 74 74 65 2e 74 63 k..#.#.RCS:.@(#).$Id:.palette.tc
1c9e0 6c 2c 76 20 31 2e 35 20 31 39 39 39 2f 30 39 2f 30 32 20 31 37 3a 30 32 3a 35 33 20 68 6f 62 62 l,v.1.5.1999/09/02.17:02:53.hobb
1ca00 73 20 45 78 70 20 24 0a 23 0a 23 20 43 6f 70 79 72 69 67 68 74 20 28 63 29 20 31 39 39 35 2d 31 s.Exp.$.#.#.Copyright.(c).1995-1
1ca20 39 39 37 20 53 75 6e 20 4d 69 63 72 6f 73 79 73 74 65 6d 73 2c 20 49 6e 63 2e 0a 23 0a 23 20 53 997.Sun.Microsystems,.Inc..#.#.S
1ca40 65 65 20 74 68 65 20 66 69 6c 65 20 22 6c 69 63 65 6e 73 65 2e 74 65 72 6d 73 22 20 66 6f 72 20 ee.the.file."license.terms".for.
1ca60 69 6e 66 6f 72 6d 61 74 69 6f 6e 20 6f 6e 20 75 73 61 67 65 20 61 6e 64 20 72 65 64 69 73 74 72 information.on.usage.and.redistr
1ca80 69 62 75 74 69 6f 6e 0a 23 20 6f 66 20 74 68 69 73 20 66 69 6c 65 2c 20 61 6e 64 20 66 6f 72 20 ibution.#.of.this.file,.and.for.
1caa0 61 20 44 49 53 43 4c 41 49 4d 45 52 20 4f 46 20 41 4c 4c 20 57 41 52 52 41 4e 54 49 45 53 2e 0a a.DISCLAIMER.OF.ALL.WARRANTIES..
1cac0 23 0a 0a 23 20 74 6b 5f 73 65 74 50 61 6c 65 74 74 65 20 2d 2d 0a 23 20 43 68 61 6e 67 65 73 20 #..#.tk_setPalette.--.#.Changes.
1cae0 74 68 65 20 64 65 66 61 75 6c 74 20 63 6f 6c 6f 72 20 73 63 68 65 6d 65 20 66 6f 72 20 61 20 54 the.default.color.scheme.for.a.T
1cb00 6b 20 61 70 70 6c 69 63 61 74 69 6f 6e 20 62 79 20 73 65 74 74 69 6e 67 0a 23 20 64 65 66 61 75 k.application.by.setting.#.defau
1cb20 6c 74 20 63 6f 6c 6f 72 73 20 69 6e 20 74 68 65 20 6f 70 74 69 6f 6e 20 64 61 74 61 62 61 73 65 lt.colors.in.the.option.database
1cb40 20 61 6e 64 20 62 79 20 6d 6f 64 69 66 79 69 6e 67 20 61 6c 6c 20 6f 66 20 74 68 65 0a 23 20 63 .and.by.modifying.all.of.the.#.c
1cb60 6f 6c 6f 72 20 6f 70 74 69 6f 6e 73 20 66 6f 72 20 65 78 69 73 74 69 6e 67 20 77 69 64 67 65 74 olor.options.for.existing.widget
1cb80 73 20 74 68 61 74 20 68 61 76 65 20 74 68 65 20 64 65 66 61 75 6c 74 20 76 61 6c 75 65 2e 0a 23 s.that.have.the.default.value..#
1cba0 0a 23 20 41 72 67 75 6d 65 6e 74 73 3a 0a 23 20 54 68 65 20 61 72 67 75 6d 65 6e 74 73 20 63 6f .#.Arguments:.#.The.arguments.co
1cbc0 6e 73 69 73 74 20 6f 66 20 65 69 74 68 65 72 20 61 20 73 69 6e 67 6c 65 20 63 6f 6c 6f 72 20 6e nsist.of.either.a.single.color.n
1cbe0 61 6d 65 2c 20 77 68 69 63 68 0a 23 20 77 69 6c 6c 20 62 65 20 75 73 65 64 20 61 73 20 74 68 65 ame,.which.#.will.be.used.as.the
1cc00 20 6e 65 77 20 62 61 63 6b 67 72 6f 75 6e 64 20 63 6f 6c 6f 72 20 28 61 6c 6c 20 6f 74 68 65 72 .new.background.color.(all.other
1cc20 20 63 6f 6c 6f 72 73 20 77 69 6c 6c 0a 23 20 62 65 20 63 6f 6d 70 75 74 65 64 20 66 72 6f 6d 20 .colors.will.#.be.computed.from.
1cc40 74 68 69 73 29 20 6f 72 20 61 6e 20 65 76 65 6e 20 6e 75 6d 62 65 72 20 6f 66 20 76 61 6c 75 65 this).or.an.even.number.of.value
1cc60 73 20 63 6f 6e 73 69 73 74 69 6e 67 20 6f 66 0a 23 20 6f 70 74 69 6f 6e 20 6e 61 6d 65 73 20 61 s.consisting.of.#.option.names.a
1cc80 6e 64 20 76 61 6c 75 65 73 2e 20 20 54 68 65 20 6e 61 6d 65 20 66 6f 72 20 61 6e 20 6f 70 74 69 nd.values...The.name.for.an.opti
1cca0 6f 6e 20 69 73 20 74 68 65 20 6f 6e 65 20 75 73 65 64 0a 23 20 66 6f 72 20 74 68 65 20 6f 70 74 on.is.the.one.used.#.for.the.opt
1ccc0 69 6f 6e 20 64 61 74 61 62 61 73 65 2c 20 73 75 63 68 20 61 73 20 61 63 74 69 76 65 46 6f 72 65 ion.database,.such.as.activeFore
1cce0 67 72 6f 75 6e 64 2c 20 6e 6f 74 20 2d 61 63 74 69 76 65 66 6f 72 65 67 72 6f 75 6e 64 2e 0a 0a ground,.not.-activeforeground...
1cd00 70 72 6f 63 20 74 6b 5f 73 65 74 50 61 6c 65 74 74 65 20 7b 61 72 67 73 7d 20 7b 0a 20 20 20 20 proc.tk_setPalette.{args}.{.....
1cd20 69 66 20 7b 5b 77 69 6e 66 6f 20 64 65 70 74 68 20 2e 5d 20 3d 3d 20 31 7d 20 7b 0a 09 23 20 4a if.{[winfo.depth..].==.1}.{..#.J
1cd40 75 73 74 20 72 65 74 75 72 6e 20 6f 6e 20 6d 6f 6e 6f 63 68 72 6f 6d 65 20 64 69 73 70 6c 61 79 ust.return.on.monochrome.display
1cd60 73 2c 20 6f 74 68 65 72 77 69 73 65 20 65 72 72 6f 72 73 20 77 69 6c 6c 20 6f 63 63 75 72 0a 09 s,.otherwise.errors.will.occur..
1cd80 72 65 74 75 72 6e 0a 20 20 20 20 7d 0a 0a 20 20 20 20 67 6c 6f 62 61 6c 20 74 6b 50 61 6c 65 74 return.....}......global.tkPalet
1cda0 74 65 0a 0a 20 20 20 20 23 20 43 72 65 61 74 65 20 61 6e 20 61 72 72 61 79 20 74 68 61 74 20 68 te......#.Create.an.array.that.h
1cdc0 61 73 20 74 68 65 20 63 6f 6d 70 6c 65 74 65 20 6e 65 77 20 70 61 6c 65 74 74 65 2e 20 20 49 66 as.the.complete.new.palette...If
1cde0 20 73 6f 6d 65 20 63 6f 6c 6f 72 73 0a 20 20 20 20 23 20 61 72 65 6e 27 74 20 73 70 65 63 69 66 .some.colors.....#.aren't.specif
1ce00 69 65 64 2c 20 63 6f 6d 70 75 74 65 20 74 68 65 6d 20 66 72 6f 6d 20 6f 74 68 65 72 20 63 6f 6c ied,.compute.them.from.other.col
1ce20 6f 72 73 20 74 68 61 74 20 61 72 65 20 73 70 65 63 69 66 69 65 64 2e 0a 0a 20 20 20 20 69 66 20 ors.that.are.specified.......if.
1ce40 7b 5b 6c 6c 65 6e 67 74 68 20 24 61 72 67 73 5d 20 3d 3d 20 31 7d 20 7b 0a 09 73 65 74 20 6e 65 {[llength.$args].==.1}.{..set.ne
1ce60 77 28 62 61 63 6b 67 72 6f 75 6e 64 29 20 5b 6c 69 6e 64 65 78 20 24 61 72 67 73 20 30 5d 0a 20 w(background).[lindex.$args.0]..
1ce80 20 20 20 7d 20 65 6c 73 65 20 7b 0a 09 61 72 72 61 79 20 73 65 74 20 6e 65 77 20 24 61 72 67 73 ...}.else.{..array.set.new.$args
1cea0 0a 20 20 20 20 7d 0a 20 20 20 20 69 66 20 7b 21 5b 69 6e 66 6f 20 65 78 69 73 74 73 20 6e 65 77 .....}.....if.{![info.exists.new
1cec0 28 62 61 63 6b 67 72 6f 75 6e 64 29 5d 7d 20 7b 0a 09 65 72 72 6f 72 20 22 6d 75 73 74 20 73 70 (background)]}.{..error."must.sp
1cee0 65 63 69 66 79 20 61 20 62 61 63 6b 67 72 6f 75 6e 64 20 63 6f 6c 6f 72 22 0a 20 20 20 20 7d 0a ecify.a.background.color".....}.
1cf00 20 20 20 20 69 66 20 7b 21 5b 69 6e 66 6f 20 65 78 69 73 74 73 20 6e 65 77 28 66 6f 72 65 67 72 ....if.{![info.exists.new(foregr
1cf20 6f 75 6e 64 29 5d 7d 20 7b 0a 09 73 65 74 20 6e 65 77 28 66 6f 72 65 67 72 6f 75 6e 64 29 20 62 ound)]}.{..set.new(foreground).b
1cf40 6c 61 63 6b 0a 20 20 20 20 7d 0a 20 20 20 20 73 65 74 20 62 67 20 5b 77 69 6e 66 6f 20 72 67 62 lack.....}.....set.bg.[winfo.rgb
1cf60 20 2e 20 24 6e 65 77 28 62 61 63 6b 67 72 6f 75 6e 64 29 5d 0a 20 20 20 20 73 65 74 20 66 67 20 ...$new(background)].....set.fg.
1cf80 5b 77 69 6e 66 6f 20 72 67 62 20 2e 20 24 6e 65 77 28 66 6f 72 65 67 72 6f 75 6e 64 29 5d 0a 20 [winfo.rgb...$new(foreground)]..
1cfa0 20 20 20 73 65 74 20 64 61 72 6b 65 72 42 67 20 5b 66 6f 72 6d 61 74 20 23 25 30 32 78 25 30 32 ...set.darkerBg.[format.#%02x%02
1cfc0 78 25 30 32 78 20 5b 65 78 70 72 20 7b 28 39 2a 5b 6c 69 6e 64 65 78 20 24 62 67 20 30 5d 29 2f x%02x.[expr.{(9*[lindex.$bg.0])/
1cfe0 32 35 36 30 7d 5d 20 5c 0a 09 20 20 20 20 5b 65 78 70 72 20 7b 28 39 2a 5b 6c 69 6e 64 65 78 20 2560}].\......[expr.{(9*[lindex.
1d000 24 62 67 20 31 5d 29 2f 32 35 36 30 7d 5d 20 5b 65 78 70 72 20 7b 28 39 2a 5b 6c 69 6e 64 65 78 $bg.1])/2560}].[expr.{(9*[lindex
1d020 20 24 62 67 20 32 5d 29 2f 32 35 36 30 7d 5d 5d 0a 20 20 20 20 66 6f 72 65 61 63 68 20 69 20 7b .$bg.2])/2560}]].....foreach.i.{
1d040 61 63 74 69 76 65 46 6f 72 65 67 72 6f 75 6e 64 20 69 6e 73 65 72 74 42 61 63 6b 67 72 6f 75 6e activeForeground.insertBackgroun
1d060 64 20 73 65 6c 65 63 74 46 6f 72 65 67 72 6f 75 6e 64 20 5c 0a 09 20 20 20 20 68 69 67 68 6c 69 d.selectForeground.\......highli
1d080 67 68 74 43 6f 6c 6f 72 7d 20 7b 0a 09 69 66 20 7b 21 5b 69 6e 66 6f 20 65 78 69 73 74 73 20 6e ghtColor}.{..if.{![info.exists.n
1d0a0 65 77 28 24 69 29 5d 7d 20 7b 0a 09 20 20 20 20 73 65 74 20 6e 65 77 28 24 69 29 20 24 6e 65 77 ew($i)]}.{......set.new($i).$new
1d0c0 28 66 6f 72 65 67 72 6f 75 6e 64 29 0a 09 7d 0a 20 20 20 20 7d 0a 20 20 20 20 69 66 20 7b 21 5b (foreground)..}.....}.....if.{![
1d0e0 69 6e 66 6f 20 65 78 69 73 74 73 20 6e 65 77 28 64 69 73 61 62 6c 65 64 46 6f 72 65 67 72 6f 75 info.exists.new(disabledForegrou
1d100 6e 64 29 5d 7d 20 7b 0a 09 73 65 74 20 6e 65 77 28 64 69 73 61 62 6c 65 64 46 6f 72 65 67 72 6f nd)]}.{..set.new(disabledForegro
1d120 75 6e 64 29 20 5b 66 6f 72 6d 61 74 20 23 25 30 32 78 25 30 32 78 25 30 32 78 20 5c 0a 09 09 5b und).[format.#%02x%02x%02x.\...[
1d140 65 78 70 72 20 7b 28 33 2a 5b 6c 69 6e 64 65 78 20 24 62 67 20 30 5d 20 2b 20 5b 6c 69 6e 64 65 expr.{(3*[lindex.$bg.0].+.[linde
1d160 78 20 24 66 67 20 30 5d 29 2f 31 30 32 34 7d 5d 20 5c 0a 09 09 5b 65 78 70 72 20 7b 28 33 2a 5b x.$fg.0])/1024}].\...[expr.{(3*[
1d180 6c 69 6e 64 65 78 20 24 62 67 20 31 5d 20 2b 20 5b 6c 69 6e 64 65 78 20 24 66 67 20 31 5d 29 2f lindex.$bg.1].+.[lindex.$fg.1])/
1d1a0 31 30 32 34 7d 5d 20 5c 0a 09 09 5b 65 78 70 72 20 7b 28 33 2a 5b 6c 69 6e 64 65 78 20 24 62 67 1024}].\...[expr.{(3*[lindex.$bg
1d1c0 20 32 5d 20 2b 20 5b 6c 69 6e 64 65 78 20 24 66 67 20 32 5d 29 2f 31 30 32 34 7d 5d 5d 0a 20 20 .2].+.[lindex.$fg.2])/1024}]]...
1d1e0 20 20 7d 0a 20 20 20 20 69 66 20 7b 21 5b 69 6e 66 6f 20 65 78 69 73 74 73 20 6e 65 77 28 68 69 ..}.....if.{![info.exists.new(hi
1d200 67 68 6c 69 67 68 74 42 61 63 6b 67 72 6f 75 6e 64 29 5d 7d 20 7b 0a 09 73 65 74 20 6e 65 77 28 ghlightBackground)]}.{..set.new(
1d220 68 69 67 68 6c 69 67 68 74 42 61 63 6b 67 72 6f 75 6e 64 29 20 24 6e 65 77 28 62 61 63 6b 67 72 highlightBackground).$new(backgr
1d240 6f 75 6e 64 29 0a 20 20 20 20 7d 0a 20 20 20 20 69 66 20 7b 21 5b 69 6e 66 6f 20 65 78 69 73 74 ound).....}.....if.{![info.exist
1d260 73 20 6e 65 77 28 61 63 74 69 76 65 42 61 63 6b 67 72 6f 75 6e 64 29 5d 7d 20 7b 0a 09 23 20 50 s.new(activeBackground)]}.{..#.P
1d280 69 63 6b 20 61 20 64 65 66 61 75 6c 74 20 61 63 74 69 76 65 20 62 61 63 6b 67 72 6f 75 6e 64 20 ick.a.default.active.background.
1d2a0 74 68 61 74 20 69 73 6c 69 67 68 74 65 72 20 74 68 61 6e 20 74 68 65 0a 09 23 20 6e 6f 72 6d 61 that.islighter.than.the..#.norma
1d2c0 6c 20 62 61 63 6b 67 72 6f 75 6e 64 2e 20 20 54 6f 20 64 6f 20 74 68 69 73 2c 20 72 6f 75 6e 64 l.background...To.do.this,.round
1d2e0 20 65 61 63 68 20 63 6f 6c 6f 72 20 63 6f 6d 70 6f 6e 65 6e 74 0a 09 23 20 75 70 20 62 79 20 31 .each.color.component..#.up.by.1
1d300 35 25 20 6f 72 20 31 2f 33 20 6f 66 20 74 68 65 20 77 61 79 20 74 6f 20 66 75 6c 6c 20 77 68 69 5%.or.1/3.of.the.way.to.full.whi
1d320 74 65 2c 20 77 68 69 63 68 65 76 65 72 20 69 73 0a 09 23 20 67 72 65 61 74 65 72 2e 0a 0a 09 66 te,.whichever.is..#.greater....f
1d340 6f 72 65 61 63 68 20 69 20 7b 30 20 31 20 32 7d 20 7b 0a 09 20 20 20 20 73 65 74 20 6c 69 67 68 oreach.i.{0.1.2}.{......set.ligh
1d360 74 28 24 69 29 20 5b 65 78 70 72 20 7b 5b 6c 69 6e 64 65 78 20 24 62 67 20 24 69 5d 2f 32 35 36 t($i).[expr.{[lindex.$bg.$i]/256
1d380 7d 5d 0a 09 20 20 20 20 73 65 74 20 69 6e 63 31 20 5b 65 78 70 72 20 7b 28 24 6c 69 67 68 74 28 }]......set.inc1.[expr.{($light(
1d3a0 24 69 29 2a 31 35 29 2f 31 30 30 7d 5d 0a 09 20 20 20 20 73 65 74 20 69 6e 63 32 20 5b 65 78 70 $i)*15)/100}]......set.inc2.[exp
1d3c0 72 20 7b 28 32 35 35 2d 24 6c 69 67 68 74 28 24 69 29 29 2f 33 7d 5d 0a 09 20 20 20 20 69 66 20 r.{(255-$light($i))/3}]......if.
1d3e0 7b 24 69 6e 63 31 20 3e 20 24 69 6e 63 32 7d 20 7b 0a 09 09 69 6e 63 72 20 6c 69 67 68 74 28 24 {$inc1.>.$inc2}.{...incr.light($
1d400 69 29 20 24 69 6e 63 31 0a 09 20 20 20 20 7d 20 65 6c 73 65 20 7b 0a 09 09 69 6e 63 72 20 6c 69 i).$inc1......}.else.{...incr.li
1d420 67 68 74 28 24 69 29 20 24 69 6e 63 32 0a 09 20 20 20 20 7d 0a 09 20 20 20 20 69 66 20 7b 24 6c ght($i).$inc2......}......if.{$l
1d440 69 67 68 74 28 24 69 29 20 3e 20 32 35 35 7d 20 7b 0a 09 09 73 65 74 20 6c 69 67 68 74 28 24 69 ight($i).>.255}.{...set.light($i
1d460 29 20 32 35 35 0a 09 20 20 20 20 7d 0a 09 7d 0a 09 73 65 74 20 6e 65 77 28 61 63 74 69 76 65 42 ).255......}..}..set.new(activeB
1d480 61 63 6b 67 72 6f 75 6e 64 29 20 5b 66 6f 72 6d 61 74 20 23 25 30 32 78 25 30 32 78 25 30 32 78 ackground).[format.#%02x%02x%02x
1d4a0 20 24 6c 69 67 68 74 28 30 29 20 5c 0a 09 09 24 6c 69 67 68 74 28 31 29 20 24 6c 69 67 68 74 28 .$light(0).\...$light(1).$light(
1d4c0 32 29 5d 0a 20 20 20 20 7d 0a 20 20 20 20 69 66 20 7b 21 5b 69 6e 66 6f 20 65 78 69 73 74 73 20 2)].....}.....if.{![info.exists.
1d4e0 6e 65 77 28 73 65 6c 65 63 74 42 61 63 6b 67 72 6f 75 6e 64 29 5d 7d 20 7b 0a 09 73 65 74 20 6e new(selectBackground)]}.{..set.n
1d500 65 77 28 73 65 6c 65 63 74 42 61 63 6b 67 72 6f 75 6e 64 29 20 24 64 61 72 6b 65 72 42 67 0a 20 ew(selectBackground).$darkerBg..
1d520 20 20 20 7d 0a 20 20 20 20 69 66 20 7b 21 5b 69 6e 66 6f 20 65 78 69 73 74 73 20 6e 65 77 28 74 ...}.....if.{![info.exists.new(t
1d540 72 6f 75 67 68 43 6f 6c 6f 72 29 5d 7d 20 7b 0a 09 73 65 74 20 6e 65 77 28 74 72 6f 75 67 68 43 roughColor)]}.{..set.new(troughC
1d560 6f 6c 6f 72 29 20 24 64 61 72 6b 65 72 42 67 0a 20 20 20 20 7d 0a 20 20 20 20 69 66 20 7b 21 5b olor).$darkerBg.....}.....if.{![
1d580 69 6e 66 6f 20 65 78 69 73 74 73 20 6e 65 77 28 73 65 6c 65 63 74 43 6f 6c 6f 72 29 5d 7d 20 7b info.exists.new(selectColor)]}.{
1d5a0 0a 09 73 65 74 20 6e 65 77 28 73 65 6c 65 63 74 43 6f 6c 6f 72 29 20 23 62 30 33 30 36 30 0a 20 ..set.new(selectColor).#b03060..
1d5c0 20 20 20 7d 0a 0a 20 20 20 20 23 20 6c 65 74 27 73 20 6d 61 6b 65 20 6f 6e 65 20 6f 66 20 65 61 ...}......#.let's.make.one.of.ea
1d5e0 63 68 20 6f 66 20 74 68 65 20 77 69 64 67 65 74 73 20 73 6f 20 77 65 20 6b 6e 6f 77 20 77 68 61 ch.of.the.widgets.so.we.know.wha
1d600 74 20 74 68 65 20 0a 20 20 20 20 23 20 64 65 66 61 75 6c 74 73 20 61 72 65 20 63 75 72 72 65 6e t.the......#.defaults.are.curren
1d620 74 6c 79 20 66 6f 72 20 74 68 69 73 20 70 6c 61 74 66 6f 72 6d 2e 0a 20 20 20 20 74 6f 70 6c 65 tly.for.this.platform......tople
1d640 76 65 6c 20 2e 5f 5f 5f 74 6b 5f 73 65 74 5f 70 61 6c 65 74 74 65 0a 20 20 20 20 77 6d 20 77 69 vel..___tk_set_palette.....wm.wi
1d660 74 68 64 72 61 77 20 2e 5f 5f 5f 74 6b 5f 73 65 74 5f 70 61 6c 65 74 74 65 0a 20 20 20 20 66 6f thdraw..___tk_set_palette.....fo
1d680 72 65 61 63 68 20 71 20 7b 62 75 74 74 6f 6e 20 63 61 6e 76 61 73 20 63 68 65 63 6b 62 75 74 74 reach.q.{button.canvas.checkbutt
1d6a0 6f 6e 20 65 6e 74 72 79 20 66 72 61 6d 65 20 6c 61 62 65 6c 20 6c 69 73 74 62 6f 78 20 5c 0a 09 on.entry.frame.label.listbox.\..
1d6c0 20 20 20 20 6d 65 6e 75 62 75 74 74 6f 6e 20 6d 65 6e 75 20 6d 65 73 73 61 67 65 20 72 61 64 69 ....menubutton.menu.message.radi
1d6e0 6f 62 75 74 74 6f 6e 20 73 63 61 6c 65 20 73 63 72 6f 6c 6c 62 61 72 20 74 65 78 74 7d 20 7b 0a obutton.scale.scrollbar.text}.{.
1d700 09 24 71 20 2e 5f 5f 5f 74 6b 5f 73 65 74 5f 70 61 6c 65 74 74 65 2e 24 71 0a 20 20 20 20 7d 0a .$q..___tk_set_palette.$q.....}.
1d720 0a 20 20 20 20 23 20 57 61 6c 6b 20 74 68 65 20 77 69 64 67 65 74 20 68 69 65 72 61 72 63 68 79 .....#.Walk.the.widget.hierarchy
1d740 2c 20 72 65 63 6f 6c 6f 72 69 6e 67 20 61 6c 6c 20 65 78 69 73 74 69 6e 67 20 77 69 6e 64 6f 77 ,.recoloring.all.existing.window
1d760 73 2e 0a 20 20 20 20 23 20 54 68 65 20 6f 70 74 69 6f 6e 20 64 61 74 61 62 61 73 65 20 6d 75 73 s......#.The.option.database.mus
1d780 74 20 62 65 20 73 65 74 20 61 63 63 6f 72 64 69 6e 67 20 74 6f 20 77 68 61 74 20 77 65 20 64 6f t.be.set.according.to.what.we.do
1d7a0 20 68 65 72 65 2c 20 0a 20 20 20 20 23 20 62 75 74 20 69 74 20 62 72 65 61 6b 73 20 74 68 69 6e .here,......#.but.it.breaks.thin
1d7c0 67 73 20 69 66 20 77 65 20 73 65 74 20 74 68 69 6e 67 73 20 69 6e 20 74 68 65 20 64 61 74 61 62 gs.if.we.set.things.in.the.datab
1d7e0 61 73 65 20 77 68 69 6c 65 20 0a 20 20 20 20 23 20 77 65 20 61 72 65 20 63 68 61 6e 67 69 6e 67 ase.while......#.we.are.changing
1d800 20 63 6f 6c 6f 72 73 2e 2e 2e 73 6f 2c 20 74 6b 52 65 63 6f 6c 6f 72 54 72 65 65 20 6e 6f 77 20 .colors...so,.tkRecolorTree.now.
1d820 72 65 74 75 72 6e 73 20 74 68 65 0a 20 20 20 20 23 20 6f 70 74 69 6f 6e 20 64 61 74 61 62 61 73 returns.the.....#.option.databas
1d840 65 20 63 68 61 6e 67 65 73 20 74 68 61 74 20 6e 65 65 64 20 74 6f 20 62 65 20 6d 61 64 65 2c 20 e.changes.that.need.to.be.made,.
1d860 61 6e 64 20 74 68 65 79 0a 20 20 20 20 23 20 6e 65 65 64 20 74 6f 20 62 65 20 65 76 61 6c 6c 65 and.they.....#.need.to.be.evalle
1d880 64 20 68 65 72 65 20 74 6f 20 74 61 6b 65 20 65 66 66 65 63 74 2e 0a 20 20 20 20 23 20 57 65 20 d.here.to.take.effect......#.We.
1d8a0 68 61 76 65 20 74 6f 20 77 61 6c 6b 20 74 68 65 20 77 68 6f 6c 65 20 77 69 64 67 65 74 20 74 72 have.to.walk.the.whole.widget.tr
1d8c0 65 65 20 69 6e 73 74 65 61 64 20 6f 66 20 6a 75 73 74 20 0a 20 20 20 20 23 20 72 65 6c 79 69 6e ee.instead.of.just......#.relyin
1d8e0 67 20 6f 6e 20 74 68 65 20 77 69 64 67 65 74 73 20 77 65 27 76 65 20 63 72 65 61 74 65 64 20 61 g.on.the.widgets.we've.created.a
1d900 62 6f 76 65 20 74 6f 20 64 6f 20 74 68 65 20 77 6f 72 6b 0a 20 20 20 20 23 20 62 65 63 61 75 73 bove.to.do.the.work.....#.becaus
1d920 65 20 64 69 66 66 65 72 65 6e 74 20 65 78 74 65 6e 73 69 6f 6e 73 20 6d 61 79 20 70 72 6f 76 69 e.different.extensions.may.provi
1d940 64 65 20 6f 74 68 65 72 20 6b 69 6e 64 73 0a 20 20 20 20 23 20 6f 66 20 77 69 64 67 65 74 73 20 de.other.kinds.....#.of.widgets.
1d960 74 68 61 74 20 77 65 20 64 6f 6e 27 74 20 63 75 72 72 65 6e 74 6c 79 20 6b 6e 6f 77 20 61 62 6f that.we.don't.currently.know.abo
1d980 75 74 2c 20 73 6f 20 77 65 27 6c 6c 0a 20 20 20 20 23 20 77 61 6c 6b 20 74 68 65 20 77 68 6f 6c ut,.so.we'll.....#.walk.the.whol
1d9a0 65 20 68 69 65 72 61 72 63 68 79 20 6a 75 73 74 20 69 6e 20 63 61 73 65 2e 0a 0a 20 20 20 20 65 e.hierarchy.just.in.case.......e
1d9c0 76 61 6c 20 5b 74 6b 52 65 63 6f 6c 6f 72 54 72 65 65 20 2e 20 6e 65 77 5d 0a 0a 20 20 20 20 63 val.[tkRecolorTree...new]......c
1d9e0 61 74 63 68 20 7b 64 65 73 74 72 6f 79 20 2e 5f 5f 5f 74 6b 5f 73 65 74 5f 70 61 6c 65 74 74 65 atch.{destroy..___tk_set_palette
1da00 7d 0a 0a 20 20 20 20 23 20 43 68 61 6e 67 65 20 74 68 65 20 6f 70 74 69 6f 6e 20 64 61 74 61 62 }......#.Change.the.option.datab
1da20 61 73 65 20 73 6f 20 74 68 61 74 20 66 75 74 75 72 65 20 77 69 6e 64 6f 77 73 20 77 69 6c 6c 20 ase.so.that.future.windows.will.
1da40 67 65 74 20 74 68 65 0a 20 20 20 20 23 20 73 61 6d 65 20 63 6f 6c 6f 72 73 2e 0a 0a 20 20 20 20 get.the.....#.same.colors.......
1da60 66 6f 72 65 61 63 68 20 6f 70 74 69 6f 6e 20 5b 61 72 72 61 79 20 6e 61 6d 65 73 20 6e 65 77 5d foreach.option.[array.names.new]
1da80 20 7b 0a 09 6f 70 74 69 6f 6e 20 61 64 64 20 2a 24 6f 70 74 69 6f 6e 20 24 6e 65 77 28 24 6f 70 .{..option.add.*$option.$new($op
1daa0 74 69 6f 6e 29 20 77 69 64 67 65 74 44 65 66 61 75 6c 74 0a 20 20 20 20 7d 0a 0a 20 20 20 20 23 tion).widgetDefault.....}......#
1dac0 20 53 61 76 65 20 74 68 65 20 6f 70 74 69 6f 6e 73 20 69 6e 20 74 68 65 20 67 6c 6f 62 61 6c 20 .Save.the.options.in.the.global.
1dae0 76 61 72 69 61 62 6c 65 20 74 6b 50 61 6c 65 74 74 65 2c 20 66 6f 72 20 75 73 65 20 74 68 65 0a variable.tkPalette,.for.use.the.
1db00 20 20 20 20 23 20 6e 65 78 74 20 74 69 6d 65 20 77 65 20 63 68 61 6e 67 65 20 74 68 65 20 6f 70 ....#.next.time.we.change.the.op
1db20 74 69 6f 6e 73 2e 0a 0a 20 20 20 20 61 72 72 61 79 20 73 65 74 20 74 6b 50 61 6c 65 74 74 65 20 tions.......array.set.tkPalette.
1db40 5b 61 72 72 61 79 20 67 65 74 20 6e 65 77 5d 0a 7d 0a 0a 23 20 74 6b 52 65 63 6f 6c 6f 72 54 72 [array.get.new].}..#.tkRecolorTr
1db60 65 65 20 2d 2d 0a 23 20 54 68 69 73 20 70 72 6f 63 65 64 75 72 65 20 63 68 61 6e 67 65 73 20 74 ee.--.#.This.procedure.changes.t
1db80 68 65 20 63 6f 6c 6f 72 73 20 69 6e 20 61 20 77 69 6e 64 6f 77 20 61 6e 64 20 61 6c 6c 20 6f 66 he.colors.in.a.window.and.all.of
1dba0 20 69 74 73 0a 23 20 64 65 73 63 65 6e 64 61 6e 74 73 2c 20 61 63 63 6f 72 64 69 6e 67 20 74 6f .its.#.descendants,.according.to
1dbc0 20 69 6e 66 6f 72 6d 61 74 69 6f 6e 20 70 72 6f 76 69 64 65 64 20 62 79 20 74 68 65 20 63 6f 6c .information.provided.by.the.col
1dbe0 6f 72 73 0a 23 20 61 72 67 75 6d 65 6e 74 2e 20 54 68 69 73 20 6c 6f 6f 6b 73 20 61 74 20 74 68 ors.#.argument..This.looks.at.th
1dc00 65 20 64 65 66 61 75 6c 74 73 20 70 72 6f 76 69 64 65 64 20 62 79 20 74 68 65 20 6f 70 74 69 6f e.defaults.provided.by.the.optio
1dc20 6e 20 0a 23 20 64 61 74 61 62 61 73 65 2c 20 69 66 20 69 74 20 65 78 69 73 74 73 2c 20 61 6e 64 n..#.database,.if.it.exists,.and
1dc40 20 69 66 20 6e 6f 74 2c 20 74 68 65 6e 20 69 74 20 6c 6f 6f 6b 73 20 61 74 20 74 68 65 20 64 65 .if.not,.then.it.looks.at.the.de
1dc60 66 61 75 6c 74 0a 23 20 76 61 6c 75 65 20 6f 66 20 74 68 65 20 77 69 64 67 65 74 20 69 74 73 65 fault.#.value.of.the.widget.itse
1dc80 6c 66 2e 0a 23 0a 23 20 41 72 67 75 6d 65 6e 74 73 3a 0a 23 20 77 20 2d 09 09 09 54 68 65 20 6e lf..#.#.Arguments:.#.w.-...The.n
1dca0 61 6d 65 20 6f 66 20 61 20 77 69 6e 64 6f 77 2e 20 20 54 68 69 73 20 77 69 6e 64 6f 77 20 61 6e ame.of.a.window...This.window.an
1dcc0 64 20 61 6c 6c 20 69 74 73 0a 23 09 09 09 64 65 73 63 65 6e 64 61 6e 74 73 20 61 72 65 20 72 65 d.all.its.#...descendants.are.re
1dce0 63 6f 6c 6f 72 65 64 2e 0a 23 20 63 6f 6c 6f 72 73 20 2d 09 09 54 68 65 20 6e 61 6d 65 20 6f 66 colored..#.colors.-..The.name.of
1dd00 20 61 6e 20 61 72 72 61 79 20 76 61 72 69 61 62 6c 65 20 69 6e 20 74 68 65 20 63 61 6c 6c 65 72 .an.array.variable.in.the.caller
1dd20 2c 0a 23 09 09 09 77 68 69 63 68 20 63 6f 6e 74 61 69 6e 73 20 63 6f 6c 6f 72 20 69 6e 66 6f 72 ,.#...which.contains.color.infor
1dd40 6d 61 74 69 6f 6e 2e 20 20 45 61 63 68 20 65 6c 65 6d 65 6e 74 0a 23 09 09 09 69 73 20 6e 61 6d mation...Each.element.#...is.nam
1dd60 65 64 20 61 66 74 65 72 20 61 20 77 69 64 67 65 74 20 63 6f 6e 66 69 67 75 72 61 74 69 6f 6e 20 ed.after.a.widget.configuration.
1dd80 6f 70 74 69 6f 6e 2c 20 61 6e 64 0a 23 09 09 09 65 61 63 68 20 76 61 6c 75 65 20 69 73 20 74 68 option,.and.#...each.value.is.th
1dda0 65 20 76 61 6c 75 65 20 66 6f 72 20 74 68 61 74 20 6f 70 74 69 6f 6e 2e 0a 0a 70 72 6f 63 20 74 e.value.for.that.option...proc.t
1ddc0 6b 52 65 63 6f 6c 6f 72 54 72 65 65 20 7b 77 20 63 6f 6c 6f 72 73 7d 20 7b 0a 20 20 20 20 67 6c kRecolorTree.{w.colors}.{.....gl
1dde0 6f 62 61 6c 20 74 6b 50 61 6c 65 74 74 65 0a 20 20 20 20 75 70 76 61 72 20 24 63 6f 6c 6f 72 73 obal.tkPalette.....upvar.$colors
1de00 20 63 0a 20 20 20 20 73 65 74 20 72 65 73 75 6c 74 20 7b 7d 0a 20 20 20 20 66 6f 72 65 61 63 68 .c.....set.result.{}.....foreach
1de20 20 64 62 4f 70 74 69 6f 6e 20 5b 61 72 72 61 79 20 6e 61 6d 65 73 20 63 5d 20 7b 0a 09 73 65 74 .dbOption.[array.names.c].{..set
1de40 20 6f 70 74 69 6f 6e 20 2d 5b 73 74 72 69 6e 67 20 74 6f 6c 6f 77 65 72 20 24 64 62 4f 70 74 69 .option.-[string.tolower.$dbOpti
1de60 6f 6e 5d 0a 09 69 66 20 7b 21 5b 63 61 74 63 68 20 7b 24 77 20 63 6f 6e 66 69 67 20 24 6f 70 74 on]..if.{![catch.{$w.config.$opt
1de80 69 6f 6e 7d 20 76 61 6c 75 65 5d 7d 20 7b 0a 09 20 20 20 20 23 20 69 66 20 74 68 65 20 6f 70 74 ion}.value]}.{......#.if.the.opt
1dea0 69 6f 6e 20 64 61 74 61 62 61 73 65 20 68 61 73 20 61 20 70 72 65 66 65 72 65 6e 63 65 20 66 6f ion.database.has.a.preference.fo
1dec0 72 20 74 68 69 73 0a 09 20 20 20 20 23 20 64 62 4f 70 74 69 6f 6e 2c 20 74 68 65 6e 20 75 73 65 r.this......#.dbOption,.then.use
1dee0 20 69 74 2c 20 6f 74 68 65 72 77 69 73 65 20 75 73 65 20 74 68 65 20 64 65 66 61 75 6c 74 73 0a .it,.otherwise.use.the.defaults.
1df00 09 20 20 20 20 23 20 66 6f 72 20 74 68 65 20 77 69 64 67 65 74 2e 0a 09 20 20 20 20 73 65 74 20 .....#.for.the.widget.......set.
1df20 64 65 66 61 75 6c 74 63 6f 6c 6f 72 20 5b 6f 70 74 69 6f 6e 20 67 65 74 20 24 77 20 24 64 62 4f defaultcolor.[option.get.$w.$dbO
1df40 70 74 69 6f 6e 20 77 69 64 67 65 74 44 65 66 61 75 6c 74 5d 0a 09 20 20 20 20 69 66 20 7b 5b 73 ption.widgetDefault]......if.{[s
1df60 74 72 69 6e 67 20 6d 61 74 63 68 20 7b 7d 20 24 64 65 66 61 75 6c 74 63 6f 6c 6f 72 5d 7d 20 7b tring.match.{}.$defaultcolor]}.{
1df80 0a 09 09 73 65 74 20 64 65 66 61 75 6c 74 63 6f 6c 6f 72 20 5b 77 69 6e 66 6f 20 72 67 62 20 2e ...set.defaultcolor.[winfo.rgb..
1dfa0 20 5b 6c 69 6e 64 65 78 20 24 76 61 6c 75 65 20 33 5d 5d 0a 09 20 20 20 20 7d 20 65 6c 73 65 20 .[lindex.$value.3]]......}.else.
1dfc0 7b 0a 09 09 73 65 74 20 64 65 66 61 75 6c 74 63 6f 6c 6f 72 20 5b 77 69 6e 66 6f 20 72 67 62 20 {...set.defaultcolor.[winfo.rgb.
1dfe0 2e 20 24 64 65 66 61 75 6c 74 63 6f 6c 6f 72 5d 0a 09 20 20 20 20 7d 0a 09 20 20 20 20 73 65 74 ..$defaultcolor]......}......set
1e000 20 63 68 6f 73 65 6e 63 6f 6c 6f 72 20 5b 77 69 6e 66 6f 20 72 67 62 20 2e 20 5b 6c 69 6e 64 65 .chosencolor.[winfo.rgb...[linde
1e020 78 20 24 76 61 6c 75 65 20 34 5d 5d 0a 09 20 20 20 20 69 66 20 7b 5b 73 74 72 69 6e 67 20 6d 61 x.$value.4]]......if.{[string.ma
1e040 74 63 68 20 24 64 65 66 61 75 6c 74 63 6f 6c 6f 72 20 24 63 68 6f 73 65 6e 63 6f 6c 6f 72 5d 7d tch.$defaultcolor.$chosencolor]}
1e060 20 7b 0a 09 09 23 20 43 68 61 6e 67 65 20 74 68 65 20 6f 70 74 69 6f 6e 20 64 61 74 61 62 61 73 .{...#.Change.the.option.databas
1e080 65 20 73 6f 20 74 68 61 74 20 66 75 74 75 72 65 20 77 69 6e 64 6f 77 73 20 77 69 6c 6c 20 67 65 e.so.that.future.windows.will.ge
1e0a0 74 0a 09 09 23 20 74 68 65 20 73 61 6d 65 20 63 6f 6c 6f 72 73 2e 0a 09 09 61 70 70 65 6e 64 20 t...#.the.same.colors....append.
1e0c0 72 65 73 75 6c 74 20 22 3b 5c 6e 6f 70 74 69 6f 6e 20 61 64 64 20 5b 6c 69 73 74 20 5c 0a 09 09 result.";\noption.add.[list.\...
1e0e0 20 20 20 20 2a 5b 77 69 6e 66 6f 20 63 6c 61 73 73 20 24 77 5d 2e 24 64 62 4f 70 74 69 6f 6e 20 ....*[winfo.class.$w].$dbOption.
1e100 24 63 28 24 64 62 4f 70 74 69 6f 6e 29 20 36 30 5d 22 0a 09 09 24 77 20 63 6f 6e 66 69 67 75 72 $c($dbOption).60]"...$w.configur
1e120 65 20 24 6f 70 74 69 6f 6e 20 24 63 28 24 64 62 4f 70 74 69 6f 6e 29 0a 09 20 20 20 20 7d 0a 09 e.$option.$c($dbOption)......}..
1e140 7d 0a 20 20 20 20 7d 0a 20 20 20 20 66 6f 72 65 61 63 68 20 63 68 69 6c 64 20 5b 77 69 6e 66 6f }.....}.....foreach.child.[winfo
1e160 20 63 68 69 6c 64 72 65 6e 20 24 77 5d 20 7b 0a 09 61 70 70 65 6e 64 20 72 65 73 75 6c 74 20 22 .children.$w].{..append.result."
1e180 3b 5c 6e 5b 74 6b 52 65 63 6f 6c 6f 72 54 72 65 65 20 24 63 68 69 6c 64 20 63 5d 22 0a 20 20 20 ;\n[tkRecolorTree.$child.c]"....
1e1a0 20 7d 0a 20 20 20 20 72 65 74 75 72 6e 20 24 72 65 73 75 6c 74 0a 7d 0a 0a 23 20 74 6b 44 61 72 .}.....return.$result.}..#.tkDar
1e1c0 6b 65 6e 20 2d 2d 0a 23 20 47 69 76 65 6e 20 61 20 63 6f 6c 6f 72 20 6e 61 6d 65 2c 20 63 6f 6d ken.--.#.Given.a.color.name,.com
1e1e0 70 75 74 65 73 20 61 20 6e 65 77 20 63 6f 6c 6f 72 20 76 61 6c 75 65 20 74 68 61 74 20 64 61 72 putes.a.new.color.value.that.dar
1e200 6b 65 6e 73 20 28 6f 72 0a 23 20 62 72 69 67 68 74 65 6e 73 29 20 74 68 65 20 67 69 76 65 6e 20 kens.(or.#.brightens).the.given.
1e220 63 6f 6c 6f 72 20 62 79 20 61 20 67 69 76 65 6e 20 70 65 72 63 65 6e 74 2e 0a 23 0a 23 20 41 72 color.by.a.given.percent..#.#.Ar
1e240 67 75 6d 65 6e 74 73 3a 0a 23 20 63 6f 6c 6f 72 20 2d 09 4e 61 6d 65 20 6f 66 20 73 74 61 72 74 guments:.#.color.-.Name.of.start
1e260 69 6e 67 20 63 6f 6c 6f 72 2e 0a 23 20 70 65 72 65 63 65 6e 74 20 2d 09 49 6e 74 65 67 65 72 20 ing.color..#.perecent.-.Integer.
1e280 74 65 6c 6c 69 6e 67 20 68 6f 77 20 6d 75 63 68 20 74 6f 20 62 72 69 67 68 74 65 6e 20 6f 72 20 telling.how.much.to.brighten.or.
1e2a0 64 61 72 6b 65 6e 20 61 73 20 61 0a 23 09 09 70 65 72 63 65 6e 74 3a 20 35 30 20 6d 65 61 6e 73 darken.as.a.#..percent:.50.means
1e2c0 20 64 61 72 6b 65 6e 20 62 79 20 35 30 25 2c 20 31 31 30 20 6d 65 61 6e 73 20 62 72 69 67 68 74 .darken.by.50%,.110.means.bright
1e2e0 65 6e 0a 23 09 09 62 79 20 31 30 25 2e 0a 0a 70 72 6f 63 20 74 6b 44 61 72 6b 65 6e 20 7b 63 6f en.#..by.10%...proc.tkDarken.{co
1e300 6c 6f 72 20 70 65 72 63 65 6e 74 7d 20 7b 0a 20 20 20 20 66 6f 72 65 61 63 68 20 7b 72 65 64 20 lor.percent}.{.....foreach.{red.
1e320 67 72 65 65 6e 20 62 6c 75 65 7d 20 5b 77 69 6e 66 6f 20 72 67 62 20 2e 20 24 63 6f 6c 6f 72 5d green.blue}.[winfo.rgb...$color]
1e340 20 7b 0a 09 73 65 74 20 72 65 64 20 5b 65 78 70 72 20 7b 28 24 72 65 64 2f 32 35 36 29 2a 24 70 .{..set.red.[expr.{($red/256)*$p
1e360 65 72 63 65 6e 74 2f 31 30 30 7d 5d 0a 09 73 65 74 20 67 72 65 65 6e 20 5b 65 78 70 72 20 7b 28 ercent/100}]..set.green.[expr.{(
1e380 24 67 72 65 65 6e 2f 32 35 36 29 2a 24 70 65 72 63 65 6e 74 2f 31 30 30 7d 5d 0a 09 73 65 74 20 $green/256)*$percent/100}]..set.
1e3a0 62 6c 75 65 20 5b 65 78 70 72 20 7b 28 24 62 6c 75 65 2f 32 35 36 29 2a 24 70 65 72 63 65 6e 74 blue.[expr.{($blue/256)*$percent
1e3c0 2f 31 30 30 7d 5d 0a 09 62 72 65 61 6b 0a 20 20 20 20 7d 0a 20 20 20 20 69 66 20 7b 24 72 65 64 /100}]..break.....}.....if.{$red
1e3e0 20 3e 20 32 35 35 7d 20 7b 0a 09 73 65 74 20 72 65 64 20 32 35 35 0a 20 20 20 20 7d 0a 20 20 20 .>.255}.{..set.red.255.....}....
1e400 20 69 66 20 7b 24 67 72 65 65 6e 20 3e 20 32 35 35 7d 20 7b 0a 09 73 65 74 20 67 72 65 65 6e 20 .if.{$green.>.255}.{..set.green.
1e420 32 35 35 0a 20 20 20 20 7d 0a 20 20 20 20 69 66 20 7b 24 62 6c 75 65 20 3e 20 32 35 35 7d 20 7b 255.....}.....if.{$blue.>.255}.{
1e440 0a 09 73 65 74 20 62 6c 75 65 20 32 35 35 0a 20 20 20 20 7d 0a 20 20 20 20 72 65 74 75 72 6e 20 ..set.blue.255.....}.....return.
1e460 5b 66 6f 72 6d 61 74 20 22 23 25 30 32 78 25 30 32 78 25 30 32 78 22 20 24 72 65 64 20 24 67 72 [format."#%02x%02x%02x".$red.$gr
1e480 65 65 6e 20 24 62 6c 75 65 5d 0a 7d 0a 0a 23 20 74 6b 5f 62 69 73 71 75 65 20 2d 2d 0a 23 20 52 een.$blue].}..#.tk_bisque.--.#.R
1e4a0 65 73 65 74 20 74 68 65 20 54 6b 20 63 6f 6c 6f 72 20 70 61 6c 65 74 74 65 20 74 6f 20 74 68 65 eset.the.Tk.color.palette.to.the
1e4c0 20 6f 6c 64 20 22 62 69 73 71 75 65 22 20 63 6f 6c 6f 72 73 2e 0a 23 0a 23 20 41 72 67 75 6d 65 .old."bisque".colors..#.#.Argume
1e4e0 6e 74 73 3a 0a 23 20 4e 6f 6e 65 2e 0a 0a 70 72 6f 63 20 74 6b 5f 62 69 73 71 75 65 20 7b 7d 20 nts:.#.None...proc.tk_bisque.{}.
1e500 7b 0a 20 20 20 20 74 6b 5f 73 65 74 50 61 6c 65 74 74 65 20 61 63 74 69 76 65 42 61 63 6b 67 72 {.....tk_setPalette.activeBackgr
1e520 6f 75 6e 64 20 23 65 36 63 65 62 31 20 61 63 74 69 76 65 46 6f 72 65 67 72 6f 75 6e 64 20 62 6c ound.#e6ceb1.activeForeground.bl
1e540 61 63 6b 20 5c 0a 09 20 20 20 20 62 61 63 6b 67 72 6f 75 6e 64 20 23 66 66 65 34 63 34 20 64 69 ack.\......background.#ffe4c4.di
1e560 73 61 62 6c 65 64 46 6f 72 65 67 72 6f 75 6e 64 20 23 62 30 62 30 62 30 20 66 6f 72 65 67 72 6f sabledForeground.#b0b0b0.foregro
1e580 75 6e 64 20 62 6c 61 63 6b 20 5c 0a 09 20 20 20 20 68 69 67 68 6c 69 67 68 74 42 61 63 6b 67 72 und.black.\......highlightBackgr
1e5a0 6f 75 6e 64 20 23 66 66 65 34 63 34 20 68 69 67 68 6c 69 67 68 74 43 6f 6c 6f 72 20 62 6c 61 63 ound.#ffe4c4.highlightColor.blac
1e5c0 6b 20 5c 0a 09 20 20 20 20 69 6e 73 65 72 74 42 61 63 6b 67 72 6f 75 6e 64 20 62 6c 61 63 6b 20 k.\......insertBackground.black.
1e5e0 73 65 6c 65 63 74 43 6f 6c 6f 72 20 23 62 30 33 30 36 30 20 5c 0a 09 20 20 20 20 73 65 6c 65 63 selectColor.#b03060.\......selec
1e600 74 42 61 63 6b 67 72 6f 75 6e 64 20 23 65 36 63 65 62 31 20 73 65 6c 65 63 74 46 6f 72 65 67 72 tBackground.#e6ceb1.selectForegr
1e620 6f 75 6e 64 20 62 6c 61 63 6b 20 5c 0a 09 20 20 20 20 74 72 6f 75 67 68 43 6f 6c 6f 72 20 23 63 ound.black.\......troughColor.#c
1e640 64 62 37 39 65 0a 7d 0a 00 00 1b 3b 23 20 73 63 61 6c 65 2e 74 63 6c 20 2d 2d 0a 23 0a 23 20 54 db79e.}....;#.scale.tcl.--.#.#.T
1e660 68 69 73 20 66 69 6c 65 20 64 65 66 69 6e 65 73 20 74 68 65 20 64 65 66 61 75 6c 74 20 62 69 6e his.file.defines.the.default.bin
1e680 64 69 6e 67 73 20 66 6f 72 20 54 6b 20 73 63 61 6c 65 20 77 69 64 67 65 74 73 20 61 6e 64 20 70 dings.for.Tk.scale.widgets.and.p
1e6a0 72 6f 76 69 64 65 73 0a 23 20 70 72 6f 63 65 64 75 72 65 73 20 74 68 61 74 20 68 65 6c 70 20 69 rovides.#.procedures.that.help.i
1e6c0 6e 20 69 6d 70 6c 65 6d 65 6e 74 69 6e 67 20 74 68 65 20 62 69 6e 64 69 6e 67 73 2e 0a 23 0a 23 n.implementing.the.bindings..#.#
1e6e0 20 52 43 53 3a 20 40 28 23 29 20 24 49 64 3a 20 73 63 61 6c 65 2e 74 63 6c 2c 76 20 31 2e 36 20 .RCS:.@(#).$Id:.scale.tcl,v.1.6.
1e700 32 30 30 30 2f 30 31 2f 30 36 20 30 32 3a 32 32 3a 32 34 20 68 6f 62 62 73 20 45 78 70 20 24 0a 2000/01/06.02:22:24.hobbs.Exp.$.
1e720 23 0a 23 20 43 6f 70 79 72 69 67 68 74 20 28 63 29 20 31 39 39 34 20 54 68 65 20 52 65 67 65 6e #.#.Copyright.(c).1994.The.Regen
1e740 74 73 20 6f 66 20 74 68 65 20 55 6e 69 76 65 72 73 69 74 79 20 6f 66 20 43 61 6c 69 66 6f 72 6e ts.of.the.University.of.Californ
1e760 69 61 2e 0a 23 20 43 6f 70 79 72 69 67 68 74 20 28 63 29 20 31 39 39 34 2d 31 39 39 35 20 53 75 ia..#.Copyright.(c).1994-1995.Su
1e780 6e 20 4d 69 63 72 6f 73 79 73 74 65 6d 73 2c 20 49 6e 63 2e 0a 23 0a 23 20 53 65 65 20 74 68 65 n.Microsystems,.Inc..#.#.See.the
1e7a0 20 66 69 6c 65 20 22 6c 69 63 65 6e 73 65 2e 74 65 72 6d 73 22 20 66 6f 72 20 69 6e 66 6f 72 6d .file."license.terms".for.inform
1e7c0 61 74 69 6f 6e 20 6f 6e 20 75 73 61 67 65 20 61 6e 64 20 72 65 64 69 73 74 72 69 62 75 74 69 6f ation.on.usage.and.redistributio
1e7e0 6e 0a 23 20 6f 66 20 74 68 69 73 20 66 69 6c 65 2c 20 61 6e 64 20 66 6f 72 20 61 20 44 49 53 43 n.#.of.this.file,.and.for.a.DISC
1e800 4c 41 49 4d 45 52 20 4f 46 20 41 4c 4c 20 57 41 52 52 41 4e 54 49 45 53 2e 0a 23 0a 0a 23 2d 2d LAIMER.OF.ALL.WARRANTIES..#..#--
1e820 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d --------------------------------
1e840 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d --------------------------------
1e860 2d 2d 2d 2d 2d 2d 2d 0a 23 20 54 68 65 20 63 6f 64 65 20 62 65 6c 6f 77 20 63 72 65 61 74 65 73 -------.#.The.code.below.creates
1e880 20 74 68 65 20 64 65 66 61 75 6c 74 20 63 6c 61 73 73 20 62 69 6e 64 69 6e 67 73 20 66 6f 72 20 .the.default.class.bindings.for.
1e8a0 65 6e 74 72 69 65 73 2e 0a 23 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d entries..#----------------------
1e8c0 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d --------------------------------
1e8e0 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 0a 0a 23 20 53 74 61 6e 64 61 72 64 20 -------------------..#.Standard.
1e900 4d 6f 74 69 66 20 62 69 6e 64 69 6e 67 73 3a 0a 0a 62 69 6e 64 20 53 63 61 6c 65 20 3c 45 6e 74 Motif.bindings:..bind.Scale.<Ent
1e920 65 72 3e 20 7b 0a 20 20 20 20 69 66 20 7b 24 74 6b 5f 73 74 72 69 63 74 4d 6f 74 69 66 7d 20 7b er>.{.....if.{$tk_strictMotif}.{
1e940 0a 09 73 65 74 20 74 6b 50 72 69 76 28 61 63 74 69 76 65 42 67 29 20 5b 25 57 20 63 67 65 74 20 ..set.tkPriv(activeBg).[%W.cget.
1e960 2d 61 63 74 69 76 65 62 61 63 6b 67 72 6f 75 6e 64 5d 0a 09 25 57 20 63 6f 6e 66 69 67 20 2d 61 -activebackground]..%W.config.-a
1e980 63 74 69 76 65 62 61 63 6b 67 72 6f 75 6e 64 20 5b 25 57 20 63 67 65 74 20 2d 62 61 63 6b 67 72 ctivebackground.[%W.cget.-backgr
1e9a0 6f 75 6e 64 5d 0a 20 20 20 20 7d 0a 20 20 20 20 74 6b 53 63 61 6c 65 41 63 74 69 76 61 74 65 20 ound].....}.....tkScaleActivate.
1e9c0 25 57 20 25 78 20 25 79 0a 7d 0a 62 69 6e 64 20 53 63 61 6c 65 20 3c 4d 6f 74 69 6f 6e 3e 20 7b %W.%x.%y.}.bind.Scale.<Motion>.{
1e9e0 0a 20 20 20 20 74 6b 53 63 61 6c 65 41 63 74 69 76 61 74 65 20 25 57 20 25 78 20 25 79 0a 7d 0a .....tkScaleActivate.%W.%x.%y.}.
1ea00 62 69 6e 64 20 53 63 61 6c 65 20 3c 4c 65 61 76 65 3e 20 7b 0a 20 20 20 20 69 66 20 7b 24 74 6b bind.Scale.<Leave>.{.....if.{$tk
1ea20 5f 73 74 72 69 63 74 4d 6f 74 69 66 7d 20 7b 0a 09 25 57 20 63 6f 6e 66 69 67 20 2d 61 63 74 69 _strictMotif}.{..%W.config.-acti
1ea40 76 65 62 61 63 6b 67 72 6f 75 6e 64 20 24 74 6b 50 72 69 76 28 61 63 74 69 76 65 42 67 29 0a 20 vebackground.$tkPriv(activeBg)..
1ea60 20 20 20 7d 0a 20 20 20 20 69 66 20 7b 5b 73 74 72 69 6e 67 20 65 71 75 61 6c 20 5b 25 57 20 63 ...}.....if.{[string.equal.[%W.c
1ea80 67 65 74 20 2d 73 74 61 74 65 5d 20 22 61 63 74 69 76 65 22 5d 7d 20 7b 0a 09 25 57 20 63 6f 6e get.-state]."active"]}.{..%W.con
1eaa0 66 69 67 75 72 65 20 2d 73 74 61 74 65 20 6e 6f 72 6d 61 6c 0a 20 20 20 20 7d 0a 7d 0a 62 69 6e figure.-state.normal.....}.}.bin
1eac0 64 20 53 63 61 6c 65 20 3c 31 3e 20 7b 0a 20 20 20 20 74 6b 53 63 61 6c 65 42 75 74 74 6f 6e 44 d.Scale.<1>.{.....tkScaleButtonD
1eae0 6f 77 6e 20 25 57 20 25 78 20 25 79 0a 7d 0a 62 69 6e 64 20 53 63 61 6c 65 20 3c 42 31 2d 4d 6f own.%W.%x.%y.}.bind.Scale.<B1-Mo
1eb00 74 69 6f 6e 3e 20 7b 0a 20 20 20 20 74 6b 53 63 61 6c 65 44 72 61 67 20 25 57 20 25 78 20 25 79 tion>.{.....tkScaleDrag.%W.%x.%y
1eb20 0a 7d 0a 62 69 6e 64 20 53 63 61 6c 65 20 3c 42 31 2d 4c 65 61 76 65 3e 20 7b 20 7d 0a 62 69 6e .}.bind.Scale.<B1-Leave>.{.}.bin
1eb40 64 20 53 63 61 6c 65 20 3c 42 31 2d 45 6e 74 65 72 3e 20 7b 20 7d 0a 62 69 6e 64 20 53 63 61 6c d.Scale.<B1-Enter>.{.}.bind.Scal
1eb60 65 20 3c 42 75 74 74 6f 6e 52 65 6c 65 61 73 65 2d 31 3e 20 7b 0a 20 20 20 20 74 6b 43 61 6e 63 e.<ButtonRelease-1>.{.....tkCanc
1eb80 65 6c 52 65 70 65 61 74 0a 20 20 20 20 74 6b 53 63 61 6c 65 45 6e 64 44 72 61 67 20 25 57 0a 20 elRepeat.....tkScaleEndDrag.%W..
1eba0 20 20 20 74 6b 53 63 61 6c 65 41 63 74 69 76 61 74 65 20 25 57 20 25 78 20 25 79 0a 7d 0a 62 69 ...tkScaleActivate.%W.%x.%y.}.bi
1ebc0 6e 64 20 53 63 61 6c 65 20 3c 32 3e 20 7b 0a 20 20 20 20 74 6b 53 63 61 6c 65 42 75 74 74 6f 6e nd.Scale.<2>.{.....tkScaleButton
1ebe0 32 44 6f 77 6e 20 25 57 20 25 78 20 25 79 0a 7d 0a 62 69 6e 64 20 53 63 61 6c 65 20 3c 42 32 2d 2Down.%W.%x.%y.}.bind.Scale.<B2-
1ec00 4d 6f 74 69 6f 6e 3e 20 7b 0a 20 20 20 20 74 6b 53 63 61 6c 65 44 72 61 67 20 25 57 20 25 78 20 Motion>.{.....tkScaleDrag.%W.%x.
1ec20 25 79 0a 7d 0a 62 69 6e 64 20 53 63 61 6c 65 20 3c 42 32 2d 4c 65 61 76 65 3e 20 7b 20 7d 0a 62 %y.}.bind.Scale.<B2-Leave>.{.}.b
1ec40 69 6e 64 20 53 63 61 6c 65 20 3c 42 32 2d 45 6e 74 65 72 3e 20 7b 20 7d 0a 62 69 6e 64 20 53 63 ind.Scale.<B2-Enter>.{.}.bind.Sc
1ec60 61 6c 65 20 3c 42 75 74 74 6f 6e 52 65 6c 65 61 73 65 2d 32 3e 20 7b 0a 20 20 20 20 74 6b 43 61 ale.<ButtonRelease-2>.{.....tkCa
1ec80 6e 63 65 6c 52 65 70 65 61 74 0a 20 20 20 20 74 6b 53 63 61 6c 65 45 6e 64 44 72 61 67 20 25 57 ncelRepeat.....tkScaleEndDrag.%W
1eca0 0a 20 20 20 20 74 6b 53 63 61 6c 65 41 63 74 69 76 61 74 65 20 25 57 20 25 78 20 25 79 0a 7d 0a .....tkScaleActivate.%W.%x.%y.}.
1ecc0 62 69 6e 64 20 53 63 61 6c 65 20 3c 43 6f 6e 74 72 6f 6c 2d 31 3e 20 7b 0a 20 20 20 20 74 6b 53 bind.Scale.<Control-1>.{.....tkS
1ece0 63 61 6c 65 43 6f 6e 74 72 6f 6c 50 72 65 73 73 20 25 57 20 25 78 20 25 79 0a 7d 0a 62 69 6e 64 caleControlPress.%W.%x.%y.}.bind
1ed00 20 53 63 61 6c 65 20 3c 55 70 3e 20 7b 0a 20 20 20 20 74 6b 53 63 61 6c 65 49 6e 63 72 65 6d 65 .Scale.<Up>.{.....tkScaleIncreme
1ed20 6e 74 20 25 57 20 75 70 20 6c 69 74 74 6c 65 20 6e 6f 52 65 70 65 61 74 0a 7d 0a 62 69 6e 64 20 nt.%W.up.little.noRepeat.}.bind.
1ed40 53 63 61 6c 65 20 3c 44 6f 77 6e 3e 20 7b 0a 20 20 20 20 74 6b 53 63 61 6c 65 49 6e 63 72 65 6d Scale.<Down>.{.....tkScaleIncrem
1ed60 65 6e 74 20 25 57 20 64 6f 77 6e 20 6c 69 74 74 6c 65 20 6e 6f 52 65 70 65 61 74 0a 7d 0a 62 69 ent.%W.down.little.noRepeat.}.bi
1ed80 6e 64 20 53 63 61 6c 65 20 3c 4c 65 66 74 3e 20 7b 0a 20 20 20 20 74 6b 53 63 61 6c 65 49 6e 63 nd.Scale.<Left>.{.....tkScaleInc
1eda0 72 65 6d 65 6e 74 20 25 57 20 75 70 20 6c 69 74 74 6c 65 20 6e 6f 52 65 70 65 61 74 0a 7d 0a 62 rement.%W.up.little.noRepeat.}.b
1edc0 69 6e 64 20 53 63 61 6c 65 20 3c 52 69 67 68 74 3e 20 7b 0a 20 20 20 20 74 6b 53 63 61 6c 65 49 ind.Scale.<Right>.{.....tkScaleI
1ede0 6e 63 72 65 6d 65 6e 74 20 25 57 20 64 6f 77 6e 20 6c 69 74 74 6c 65 20 6e 6f 52 65 70 65 61 74 ncrement.%W.down.little.noRepeat
1ee00 0a 7d 0a 62 69 6e 64 20 53 63 61 6c 65 20 3c 43 6f 6e 74 72 6f 6c 2d 55 70 3e 20 7b 0a 20 20 20 .}.bind.Scale.<Control-Up>.{....
1ee20 20 74 6b 53 63 61 6c 65 49 6e 63 72 65 6d 65 6e 74 20 25 57 20 75 70 20 62 69 67 20 6e 6f 52 65 .tkScaleIncrement.%W.up.big.noRe
1ee40 70 65 61 74 0a 7d 0a 62 69 6e 64 20 53 63 61 6c 65 20 3c 43 6f 6e 74 72 6f 6c 2d 44 6f 77 6e 3e peat.}.bind.Scale.<Control-Down>
1ee60 20 7b 0a 20 20 20 20 74 6b 53 63 61 6c 65 49 6e 63 72 65 6d 65 6e 74 20 25 57 20 64 6f 77 6e 20 .{.....tkScaleIncrement.%W.down.
1ee80 62 69 67 20 6e 6f 52 65 70 65 61 74 0a 7d 0a 62 69 6e 64 20 53 63 61 6c 65 20 3c 43 6f 6e 74 72 big.noRepeat.}.bind.Scale.<Contr
1eea0 6f 6c 2d 4c 65 66 74 3e 20 7b 0a 20 20 20 20 74 6b 53 63 61 6c 65 49 6e 63 72 65 6d 65 6e 74 20 ol-Left>.{.....tkScaleIncrement.
1eec0 25 57 20 75 70 20 62 69 67 20 6e 6f 52 65 70 65 61 74 0a 7d 0a 62 69 6e 64 20 53 63 61 6c 65 20 %W.up.big.noRepeat.}.bind.Scale.
1eee0 3c 43 6f 6e 74 72 6f 6c 2d 52 69 67 68 74 3e 20 7b 0a 20 20 20 20 74 6b 53 63 61 6c 65 49 6e 63 <Control-Right>.{.....tkScaleInc
1ef00 72 65 6d 65 6e 74 20 25 57 20 64 6f 77 6e 20 62 69 67 20 6e 6f 52 65 70 65 61 74 0a 7d 0a 62 69 rement.%W.down.big.noRepeat.}.bi
1ef20 6e 64 20 53 63 61 6c 65 20 3c 48 6f 6d 65 3e 20 7b 0a 20 20 20 20 25 57 20 73 65 74 20 5b 25 57 nd.Scale.<Home>.{.....%W.set.[%W
1ef40 20 63 67 65 74 20 2d 66 72 6f 6d 5d 0a 7d 0a 62 69 6e 64 20 53 63 61 6c 65 20 3c 45 6e 64 3e 20 .cget.-from].}.bind.Scale.<End>.
1ef60 7b 0a 20 20 20 20 25 57 20 73 65 74 20 5b 25 57 20 63 67 65 74 20 2d 74 6f 5d 0a 7d 0a 0a 23 20 {.....%W.set.[%W.cget.-to].}..#.
1ef80 74 6b 53 63 61 6c 65 41 63 74 69 76 61 74 65 20 2d 2d 0a 23 20 54 68 69 73 20 70 72 6f 63 65 64 tkScaleActivate.--.#.This.proced
1efa0 75 72 65 20 69 73 20 69 6e 76 6f 6b 65 64 20 74 6f 20 63 68 65 63 6b 20 61 20 67 69 76 65 6e 20 ure.is.invoked.to.check.a.given.
1efc0 78 2d 79 20 70 6f 73 69 74 69 6f 6e 20 69 6e 20 74 68 65 0a 23 20 73 63 61 6c 65 20 61 6e 64 20 x-y.position.in.the.#.scale.and.
1efe0 61 63 74 69 76 61 74 65 20 74 68 65 20 73 6c 69 64 65 72 20 69 66 20 74 68 65 20 78 2d 79 20 70 activate.the.slider.if.the.x-y.p
1f000 6f 73 69 74 69 6f 6e 20 66 61 6c 6c 73 20 77 69 74 68 69 6e 0a 23 20 74 68 65 20 73 6c 69 64 65 osition.falls.within.#.the.slide
1f020 72 2e 0a 23 0a 23 20 41 72 67 75 6d 65 6e 74 73 3a 0a 23 20 77 20 2d 09 09 54 68 65 20 73 63 61 r..#.#.Arguments:.#.w.-..The.sca
1f040 6c 65 20 77 69 64 67 65 74 2e 0a 23 20 78 2c 20 79 20 2d 09 4d 6f 75 73 65 20 63 6f 6f 72 64 69 le.widget..#.x,.y.-.Mouse.coordi
1f060 6e 61 74 65 73 2e 0a 0a 70 72 6f 63 20 74 6b 53 63 61 6c 65 41 63 74 69 76 61 74 65 20 7b 77 20 nates...proc.tkScaleActivate.{w.
1f080 78 20 79 7d 20 7b 0a 20 20 20 20 67 6c 6f 62 61 6c 20 74 6b 50 72 69 76 0a 20 20 20 20 69 66 20 x.y}.{.....global.tkPriv.....if.
1f0a0 7b 5b 73 74 72 69 6e 67 20 65 71 75 61 6c 20 5b 24 77 20 63 67 65 74 20 2d 73 74 61 74 65 5d 20 {[string.equal.[$w.cget.-state].
1f0c0 22 64 69 73 61 62 6c 65 64 22 5d 7d 20 7b 0a 09 72 65 74 75 72 6e 0a 20 20 20 20 7d 0a 20 20 20 "disabled"]}.{..return.....}....
1f0e0 20 69 66 20 7b 5b 73 74 72 69 6e 67 20 65 71 75 61 6c 20 5b 24 77 20 69 64 65 6e 74 69 66 79 20 .if.{[string.equal.[$w.identify.
1f100 24 78 20 24 79 5d 20 22 73 6c 69 64 65 72 22 5d 7d 20 7b 0a 09 24 77 20 63 6f 6e 66 69 67 75 72 $x.$y]."slider"]}.{..$w.configur
1f120 65 20 2d 73 74 61 74 65 20 61 63 74 69 76 65 0a 20 20 20 20 7d 20 65 6c 73 65 20 7b 0a 09 24 77 e.-state.active.....}.else.{..$w
1f140 20 63 6f 6e 66 69 67 75 72 65 20 2d 73 74 61 74 65 20 6e 6f 72 6d 61 6c 0a 20 20 20 20 7d 0a 7d .configure.-state.normal.....}.}
1f160 0a 0a 23 20 74 6b 53 63 61 6c 65 42 75 74 74 6f 6e 44 6f 77 6e 20 2d 2d 0a 23 20 54 68 69 73 20 ..#.tkScaleButtonDown.--.#.This.
1f180 70 72 6f 63 65 64 75 72 65 20 69 73 20 69 6e 76 6f 6b 65 64 20 77 68 65 6e 20 61 20 62 75 74 74 procedure.is.invoked.when.a.butt
1f1a0 6f 6e 20 69 73 20 70 72 65 73 73 65 64 20 69 6e 20 61 20 73 63 61 6c 65 2e 20 20 49 74 0a 23 20 on.is.pressed.in.a.scale...It.#.
1f1c0 74 61 6b 65 73 20 64 69 66 66 65 72 65 6e 74 20 61 63 74 69 6f 6e 73 20 64 65 70 65 6e 64 69 6e takes.different.actions.dependin
1f1e0 67 20 6f 6e 20 77 68 65 72 65 20 74 68 65 20 62 75 74 74 6f 6e 20 77 61 73 20 70 72 65 73 73 65 g.on.where.the.button.was.presse
1f200 64 2e 0a 23 0a 23 20 41 72 67 75 6d 65 6e 74 73 3a 0a 23 20 77 20 2d 09 09 54 68 65 20 73 63 61 d..#.#.Arguments:.#.w.-..The.sca
1f220 6c 65 20 77 69 64 67 65 74 2e 0a 23 20 78 2c 20 79 20 2d 09 4d 6f 75 73 65 20 63 6f 6f 72 64 69 le.widget..#.x,.y.-.Mouse.coordi
1f240 6e 61 74 65 73 20 6f 66 20 62 75 74 74 6f 6e 20 70 72 65 73 73 2e 0a 0a 70 72 6f 63 20 74 6b 53 nates.of.button.press...proc.tkS
1f260 63 61 6c 65 42 75 74 74 6f 6e 44 6f 77 6e 20 7b 77 20 78 20 79 7d 20 7b 0a 20 20 20 20 67 6c 6f caleButtonDown.{w.x.y}.{.....glo
1f280 62 61 6c 20 74 6b 50 72 69 76 0a 20 20 20 20 73 65 74 20 74 6b 50 72 69 76 28 64 72 61 67 67 69 bal.tkPriv.....set.tkPriv(draggi
1f2a0 6e 67 29 20 30 0a 20 20 20 20 73 65 74 20 65 6c 20 5b 24 77 20 69 64 65 6e 74 69 66 79 20 24 78 ng).0.....set.el.[$w.identify.$x
1f2c0 20 24 79 5d 0a 20 20 20 20 69 66 20 7b 5b 73 74 72 69 6e 67 20 65 71 75 61 6c 20 24 65 6c 20 22 .$y].....if.{[string.equal.$el."
1f2e0 74 72 6f 75 67 68 31 22 5d 7d 20 7b 0a 09 74 6b 53 63 61 6c 65 49 6e 63 72 65 6d 65 6e 74 20 24 trough1"]}.{..tkScaleIncrement.$
1f300 77 20 75 70 20 6c 69 74 74 6c 65 20 69 6e 69 74 69 61 6c 0a 20 20 20 20 7d 20 65 6c 73 65 69 66 w.up.little.initial.....}.elseif
1f320 20 7b 5b 73 74 72 69 6e 67 20 65 71 75 61 6c 20 24 65 6c 20 22 74 72 6f 75 67 68 32 22 5d 7d 20 .{[string.equal.$el."trough2"]}.
1f340 7b 0a 09 74 6b 53 63 61 6c 65 49 6e 63 72 65 6d 65 6e 74 20 24 77 20 64 6f 77 6e 20 6c 69 74 74 {..tkScaleIncrement.$w.down.litt
1f360 6c 65 20 69 6e 69 74 69 61 6c 0a 20 20 20 20 7d 20 65 6c 73 65 69 66 20 7b 5b 73 74 72 69 6e 67 le.initial.....}.elseif.{[string
1f380 20 65 71 75 61 6c 20 24 65 6c 20 22 73 6c 69 64 65 72 22 5d 7d 20 7b 0a 09 73 65 74 20 74 6b 50 .equal.$el."slider"]}.{..set.tkP
1f3a0 72 69 76 28 64 72 61 67 67 69 6e 67 29 20 31 0a 09 73 65 74 20 74 6b 50 72 69 76 28 69 6e 69 74 riv(dragging).1..set.tkPriv(init
1f3c0 56 61 6c 75 65 29 20 5b 24 77 20 67 65 74 5d 0a 09 73 65 74 20 63 6f 6f 72 64 73 20 5b 24 77 20 Value).[$w.get]..set.coords.[$w.
1f3e0 63 6f 6f 72 64 73 5d 0a 09 73 65 74 20 74 6b 50 72 69 76 28 64 65 6c 74 61 58 29 20 5b 65 78 70 coords]..set.tkPriv(deltaX).[exp
1f400 72 20 7b 24 78 20 2d 20 5b 6c 69 6e 64 65 78 20 24 63 6f 6f 72 64 73 20 30 5d 7d 5d 0a 09 73 65 r.{$x.-.[lindex.$coords.0]}]..se
1f420 74 20 74 6b 50 72 69 76 28 64 65 6c 74 61 59 29 20 5b 65 78 70 72 20 7b 24 79 20 2d 20 5b 6c 69 t.tkPriv(deltaY).[expr.{$y.-.[li
1f440 6e 64 65 78 20 24 63 6f 6f 72 64 73 20 31 5d 7d 5d 0a 09 24 77 20 63 6f 6e 66 69 67 75 72 65 20 ndex.$coords.1]}]..$w.configure.
1f460 2d 73 6c 69 64 65 72 72 65 6c 69 65 66 20 73 75 6e 6b 65 6e 0a 20 20 20 20 7d 0a 7d 0a 0a 23 20 -sliderrelief.sunken.....}.}..#.
1f480 74 6b 53 63 61 6c 65 44 72 61 67 20 2d 2d 0a 23 20 54 68 69 73 20 70 72 6f 63 65 64 75 72 65 20 tkScaleDrag.--.#.This.procedure.
1f4a0 69 73 20 63 61 6c 6c 65 64 20 77 68 65 6e 20 74 68 65 20 6d 6f 75 73 65 20 69 73 20 64 72 61 67 is.called.when.the.mouse.is.drag
1f4c0 67 65 64 20 77 69 74 68 0a 23 20 6d 6f 75 73 65 20 62 75 74 74 6f 6e 20 31 20 64 6f 77 6e 2e 20 ged.with.#.mouse.button.1.down..
1f4e0 20 49 66 20 74 68 65 20 64 72 61 67 20 73 74 61 72 74 65 64 20 69 6e 73 69 64 65 20 74 68 65 20 .If.the.drag.started.inside.the.
1f500 73 6c 69 64 65 72 0a 23 20 28 69 2e 65 2e 20 74 68 65 20 73 63 61 6c 65 20 69 73 20 61 63 74 69 slider.#.(i.e..the.scale.is.acti
1f520 76 65 29 20 74 68 65 6e 20 74 68 65 20 73 63 61 6c 65 27 73 20 76 61 6c 75 65 20 69 73 20 61 64 ve).then.the.scale's.value.is.ad
1f540 6a 75 73 74 65 64 0a 23 20 74 6f 20 72 65 66 6c 65 63 74 20 74 68 65 20 6d 6f 75 73 65 27 73 20 justed.#.to.reflect.the.mouse's.
1f560 70 6f 73 69 74 69 6f 6e 2e 0a 23 0a 23 20 41 72 67 75 6d 65 6e 74 73 3a 0a 23 20 77 20 2d 09 09 position..#.#.Arguments:.#.w.-..
1f580 54 68 65 20 73 63 61 6c 65 20 77 69 64 67 65 74 2e 0a 23 20 78 2c 20 79 20 2d 09 4d 6f 75 73 65 The.scale.widget..#.x,.y.-.Mouse
1f5a0 20 63 6f 6f 72 64 69 6e 61 74 65 73 2e 0a 0a 70 72 6f 63 20 74 6b 53 63 61 6c 65 44 72 61 67 20 .coordinates...proc.tkScaleDrag.
1f5c0 7b 77 20 78 20 79 7d 20 7b 0a 20 20 20 20 67 6c 6f 62 61 6c 20 74 6b 50 72 69 76 0a 20 20 20 20 {w.x.y}.{.....global.tkPriv.....
1f5e0 69 66 20 7b 21 24 74 6b 50 72 69 76 28 64 72 61 67 67 69 6e 67 29 7d 20 7b 0a 09 72 65 74 75 72 if.{!$tkPriv(dragging)}.{..retur
1f600 6e 0a 20 20 20 20 7d 0a 20 20 20 20 24 77 20 73 65 74 20 5b 24 77 20 67 65 74 20 5b 65 78 70 72 n.....}.....$w.set.[$w.get.[expr
1f620 20 7b 24 78 2d 24 74 6b 50 72 69 76 28 64 65 6c 74 61 58 29 7d 5d 20 5b 65 78 70 72 20 7b 24 79 .{$x-$tkPriv(deltaX)}].[expr.{$y
1f640 2d 24 74 6b 50 72 69 76 28 64 65 6c 74 61 59 29 7d 5d 5d 0a 7d 0a 0a 23 20 74 6b 53 63 61 6c 65 -$tkPriv(deltaY)}]].}..#.tkScale
1f660 45 6e 64 44 72 61 67 20 2d 2d 0a 23 20 54 68 69 73 20 70 72 6f 63 65 64 75 72 65 20 69 73 20 63 EndDrag.--.#.This.procedure.is.c
1f680 61 6c 6c 65 64 20 74 6f 20 65 6e 64 20 61 6e 20 69 6e 74 65 72 61 63 74 69 76 65 20 64 72 61 67 alled.to.end.an.interactive.drag
1f6a0 20 6f 66 20 74 68 65 0a 23 20 73 6c 69 64 65 72 2e 20 20 49 74 20 6a 75 73 74 20 6d 61 72 6b 73 .of.the.#.slider...It.just.marks
1f6c0 20 74 68 65 20 64 72 61 67 20 61 73 20 6f 76 65 72 2e 0a 23 0a 23 20 41 72 67 75 6d 65 6e 74 73 .the.drag.as.over..#.#.Arguments
1f6e0 3a 0a 23 20 77 20 2d 09 09 54 68 65 20 73 63 61 6c 65 20 77 69 64 67 65 74 2e 0a 0a 70 72 6f 63 :.#.w.-..The.scale.widget...proc
1f700 20 74 6b 53 63 61 6c 65 45 6e 64 44 72 61 67 20 7b 77 7d 20 7b 0a 20 20 20 20 67 6c 6f 62 61 6c .tkScaleEndDrag.{w}.{.....global
1f720 20 74 6b 50 72 69 76 0a 20 20 20 20 73 65 74 20 74 6b 50 72 69 76 28 64 72 61 67 67 69 6e 67 29 .tkPriv.....set.tkPriv(dragging)
1f740 20 30 0a 20 20 20 20 24 77 20 63 6f 6e 66 69 67 75 72 65 20 2d 73 6c 69 64 65 72 72 65 6c 69 65 .0.....$w.configure.-sliderrelie
1f760 66 20 72 61 69 73 65 64 0a 7d 0a 0a 23 20 74 6b 53 63 61 6c 65 49 6e 63 72 65 6d 65 6e 74 20 2d f.raised.}..#.tkScaleIncrement.-
1f780 2d 0a 23 20 54 68 69 73 20 70 72 6f 63 65 64 75 72 65 20 69 73 20 69 6e 76 6f 6b 65 64 20 74 6f -.#.This.procedure.is.invoked.to
1f7a0 20 69 6e 63 72 65 6d 65 6e 74 20 74 68 65 20 76 61 6c 75 65 20 6f 66 20 61 20 73 63 61 6c 65 20 .increment.the.value.of.a.scale.
1f7c0 61 6e 64 0a 23 20 74 6f 20 73 65 74 20 75 70 20 61 75 74 6f 2d 72 65 70 65 61 74 69 6e 67 20 6f and.#.to.set.up.auto-repeating.o
1f7e0 66 20 74 68 65 20 61 63 74 69 6f 6e 20 69 66 20 74 68 61 74 20 69 73 20 64 65 73 69 72 65 64 2e f.the.action.if.that.is.desired.
1f800 20 20 54 68 65 0a 23 20 77 61 79 20 74 68 65 20 76 61 6c 75 65 20 69 73 20 69 6e 63 72 65 6d 65 ..The.#.way.the.value.is.increme
1f820 6e 74 65 64 20 64 65 70 65 6e 64 73 20 6f 6e 20 74 68 65 20 22 64 69 72 22 20 61 6e 64 20 22 62 nted.depends.on.the."dir".and."b
1f840 69 67 22 0a 23 20 61 72 67 75 6d 65 6e 74 73 2e 0a 23 0a 23 20 41 72 67 75 6d 65 6e 74 73 3a 0a ig".#.arguments..#.#.Arguments:.
1f860 23 20 77 20 2d 09 09 54 68 65 20 73 63 61 6c 65 20 77 69 64 67 65 74 2e 0a 23 20 64 69 72 20 2d #.w.-..The.scale.widget..#.dir.-
1f880 09 09 22 75 70 22 20 6d 65 61 6e 73 20 6d 6f 76 65 20 76 61 6c 75 65 20 74 6f 77 61 72 64 73 20 .."up".means.move.value.towards.
1f8a0 2d 66 72 6f 6d 2c 20 22 64 6f 77 6e 22 20 6d 65 61 6e 73 0a 23 09 09 6d 6f 76 65 20 74 6f 77 61 -from,."down".means.#..move.towa
1f8c0 72 64 73 20 2d 74 6f 2e 0a 23 20 62 69 67 20 2d 09 09 53 69 7a 65 20 6f 66 20 69 6e 63 72 65 6d rds.-to..#.big.-..Size.of.increm
1f8e0 65 6e 74 73 3a 20 22 62 69 67 22 20 6f 72 20 22 6c 69 74 74 6c 65 22 2e 0a 23 20 72 65 70 65 61 ents:."big".or."little"..#.repea
1f900 74 20 2d 09 57 68 65 74 68 65 72 20 61 6e 64 20 68 6f 77 20 74 6f 20 61 75 74 6f 2d 72 65 70 65 t.-.Whether.and.how.to.auto-repe
1f920 61 74 20 74 68 65 20 61 63 74 69 6f 6e 3a 20 20 22 6e 6f 52 65 70 65 61 74 22 0a 23 09 09 6d 65 at.the.action:.."noRepeat".#..me
1f940 61 6e 73 20 64 6f 6e 27 74 20 61 75 74 6f 2d 72 65 70 65 61 74 2c 20 22 69 6e 69 74 69 61 6c 22 ans.don't.auto-repeat,."initial"
1f960 20 6d 65 61 6e 73 20 74 68 69 73 20 69 73 20 74 68 65 0a 23 09 09 66 69 72 73 74 20 61 63 74 69 .means.this.is.the.#..first.acti
1f980 6f 6e 20 69 6e 20 61 6e 20 61 75 74 6f 2d 72 65 70 65 61 74 20 73 65 71 75 65 6e 63 65 2c 20 61 on.in.an.auto-repeat.sequence,.a
1f9a0 6e 64 20 22 61 67 61 69 6e 22 0a 23 09 09 6d 65 61 6e 73 20 74 68 69 73 20 69 73 20 74 68 65 20 nd."again".#..means.this.is.the.
1f9c0 73 65 63 6f 6e 64 20 72 65 70 65 74 69 74 69 6f 6e 20 6f 72 20 6c 61 74 65 72 2e 0a 0a 70 72 6f second.repetition.or.later...pro
1f9e0 63 20 74 6b 53 63 61 6c 65 49 6e 63 72 65 6d 65 6e 74 20 7b 77 20 64 69 72 20 62 69 67 20 72 65 c.tkScaleIncrement.{w.dir.big.re
1fa00 70 65 61 74 7d 20 7b 0a 20 20 20 20 67 6c 6f 62 61 6c 20 74 6b 50 72 69 76 0a 20 20 20 20 69 66 peat}.{.....global.tkPriv.....if
1fa20 20 7b 21 5b 77 69 6e 66 6f 20 65 78 69 73 74 73 20 24 77 5d 7d 20 72 65 74 75 72 6e 0a 20 20 20 .{![winfo.exists.$w]}.return....
1fa40 20 69 66 20 7b 5b 73 74 72 69 6e 67 20 65 71 75 61 6c 20 24 62 69 67 20 22 62 69 67 22 5d 7d 20 .if.{[string.equal.$big."big"]}.
1fa60 7b 0a 09 73 65 74 20 69 6e 63 20 5b 24 77 20 63 67 65 74 20 2d 62 69 67 69 6e 63 72 65 6d 65 6e {..set.inc.[$w.cget.-bigincremen
1fa80 74 5d 0a 09 69 66 20 7b 24 69 6e 63 20 3d 3d 20 30 7d 20 7b 0a 09 20 20 20 20 73 65 74 20 69 6e t]..if.{$inc.==.0}.{......set.in
1faa0 63 20 5b 65 78 70 72 20 7b 61 62 73 28 5b 24 77 20 63 67 65 74 20 2d 74 6f 5d 20 2d 20 5b 24 77 c.[expr.{abs([$w.cget.-to].-.[$w
1fac0 20 63 67 65 74 20 2d 66 72 6f 6d 5d 29 2f 31 30 2e 30 7d 5d 0a 09 7d 0a 09 69 66 20 7b 24 69 6e .cget.-from])/10.0}]..}..if.{$in
1fae0 63 20 3c 20 5b 24 77 20 63 67 65 74 20 2d 72 65 73 6f 6c 75 74 69 6f 6e 5d 7d 20 7b 0a 09 20 20 c.<.[$w.cget.-resolution]}.{....
1fb00 20 20 73 65 74 20 69 6e 63 20 5b 24 77 20 63 67 65 74 20 2d 72 65 73 6f 6c 75 74 69 6f 6e 5d 0a ..set.inc.[$w.cget.-resolution].
1fb20 09 7d 0a 20 20 20 20 7d 20 65 6c 73 65 20 7b 0a 09 73 65 74 20 69 6e 63 20 5b 24 77 20 63 67 65 .}.....}.else.{..set.inc.[$w.cge
1fb40 74 20 2d 72 65 73 6f 6c 75 74 69 6f 6e 5d 0a 20 20 20 20 7d 0a 20 20 20 20 69 66 20 7b 28 5b 24 t.-resolution].....}.....if.{([$
1fb60 77 20 63 67 65 74 20 2d 66 72 6f 6d 5d 20 3e 20 5b 24 77 20 63 67 65 74 20 2d 74 6f 5d 29 20 5e w.cget.-from].>.[$w.cget.-to]).^
1fb80 20 5b 73 74 72 69 6e 67 20 65 71 75 61 6c 20 24 64 69 72 20 22 75 70 22 5d 7d 20 7b 0a 09 73 65 .[string.equal.$dir."up"]}.{..se
1fba0 74 20 69 6e 63 20 5b 65 78 70 72 20 7b 2d 24 69 6e 63 7d 5d 0a 20 20 20 20 7d 0a 20 20 20 20 24 t.inc.[expr.{-$inc}].....}.....$
1fbc0 77 20 73 65 74 20 5b 65 78 70 72 20 7b 5b 24 77 20 67 65 74 5d 20 2b 20 24 69 6e 63 7d 5d 0a 0a w.set.[expr.{[$w.get].+.$inc}]..
1fbe0 20 20 20 20 69 66 20 7b 5b 73 74 72 69 6e 67 20 65 71 75 61 6c 20 24 72 65 70 65 61 74 20 22 61 ....if.{[string.equal.$repeat."a
1fc00 67 61 69 6e 22 5d 7d 20 7b 0a 09 73 65 74 20 74 6b 50 72 69 76 28 61 66 74 65 72 49 64 29 20 5b gain"]}.{..set.tkPriv(afterId).[
1fc20 61 66 74 65 72 20 5b 24 77 20 63 67 65 74 20 2d 72 65 70 65 61 74 69 6e 74 65 72 76 61 6c 5d 20 after.[$w.cget.-repeatinterval].
1fc40 5c 0a 09 09 5b 6c 69 73 74 20 74 6b 53 63 61 6c 65 49 6e 63 72 65 6d 65 6e 74 20 24 77 20 24 64 \...[list.tkScaleIncrement.$w.$d
1fc60 69 72 20 24 62 69 67 20 61 67 61 69 6e 5d 5d 0a 20 20 20 20 7d 20 65 6c 73 65 69 66 20 7b 5b 73 ir.$big.again]].....}.elseif.{[s
1fc80 74 72 69 6e 67 20 65 71 75 61 6c 20 24 72 65 70 65 61 74 20 22 69 6e 69 74 69 61 6c 22 5d 7d 20 tring.equal.$repeat."initial"]}.
1fca0 7b 0a 09 73 65 74 20 64 65 6c 61 79 20 5b 24 77 20 63 67 65 74 20 2d 72 65 70 65 61 74 64 65 6c {..set.delay.[$w.cget.-repeatdel
1fcc0 61 79 5d 0a 09 69 66 20 7b 24 64 65 6c 61 79 20 3e 20 30 7d 20 7b 0a 09 20 20 20 20 73 65 74 20 ay]..if.{$delay.>.0}.{......set.
1fce0 74 6b 50 72 69 76 28 61 66 74 65 72 49 64 29 20 5b 61 66 74 65 72 20 24 64 65 6c 61 79 20 5c 0a tkPriv(afterId).[after.$delay.\.
1fd00 09 09 20 20 20 20 5b 6c 69 73 74 20 74 6b 53 63 61 6c 65 49 6e 63 72 65 6d 65 6e 74 20 24 77 20 ......[list.tkScaleIncrement.$w.
1fd20 24 64 69 72 20 24 62 69 67 20 61 67 61 69 6e 5d 5d 0a 09 7d 0a 20 20 20 20 7d 0a 7d 0a 0a 23 20 $dir.$big.again]]..}.....}.}..#.
1fd40 74 6b 53 63 61 6c 65 43 6f 6e 74 72 6f 6c 50 72 65 73 73 20 2d 2d 0a 23 20 54 68 69 73 20 70 72 tkScaleControlPress.--.#.This.pr
1fd60 6f 63 65 64 75 72 65 20 68 61 6e 64 6c 65 73 20 62 75 74 74 6f 6e 20 70 72 65 73 73 65 73 20 74 ocedure.handles.button.presses.t
1fd80 68 61 74 20 61 72 65 20 6d 61 64 65 20 77 69 74 68 20 74 68 65 20 43 6f 6e 74 72 6f 6c 0a 23 20 hat.are.made.with.the.Control.#.
1fda0 6b 65 79 20 64 6f 77 6e 2e 20 20 44 65 70 65 6e 64 69 6e 67 20 6f 6e 20 74 68 65 20 6d 6f 75 73 key.down...Depending.on.the.mous
1fdc0 65 20 70 6f 73 69 74 69 6f 6e 2c 20 69 74 20 61 64 6a 75 73 74 73 20 74 68 65 20 73 63 61 6c 65 e.position,.it.adjusts.the.scale
1fde0 0a 23 20 76 61 6c 75 65 20 74 6f 20 6f 6e 65 20 65 6e 64 20 6f 66 20 74 68 65 20 72 61 6e 67 65 .#.value.to.one.end.of.the.range
1fe00 20 6f 72 20 74 68 65 20 6f 74 68 65 72 2e 0a 23 0a 23 20 41 72 67 75 6d 65 6e 74 73 3a 0a 23 20 .or.the.other..#.#.Arguments:.#.
1fe20 77 20 2d 09 09 54 68 65 20 73 63 61 6c 65 20 77 69 64 67 65 74 2e 0a 23 20 78 2c 20 79 20 2d 09 w.-..The.scale.widget..#.x,.y.-.
1fe40 4d 6f 75 73 65 20 63 6f 6f 72 64 69 6e 61 74 65 73 20 77 68 65 72 65 20 74 68 65 20 62 75 74 74 Mouse.coordinates.where.the.butt
1fe60 6f 6e 20 77 61 73 20 70 72 65 73 73 65 64 2e 0a 0a 70 72 6f 63 20 74 6b 53 63 61 6c 65 43 6f 6e on.was.pressed...proc.tkScaleCon
1fe80 74 72 6f 6c 50 72 65 73 73 20 7b 77 20 78 20 79 7d 20 7b 0a 20 20 20 20 73 65 74 20 65 6c 20 5b trolPress.{w.x.y}.{.....set.el.[
1fea0 24 77 20 69 64 65 6e 74 69 66 79 20 24 78 20 24 79 5d 0a 20 20 20 20 69 66 20 7b 5b 73 74 72 69 $w.identify.$x.$y].....if.{[stri
1fec0 6e 67 20 65 71 75 61 6c 20 24 65 6c 20 22 74 72 6f 75 67 68 31 22 5d 7d 20 7b 0a 09 24 77 20 73 ng.equal.$el."trough1"]}.{..$w.s
1fee0 65 74 20 5b 24 77 20 63 67 65 74 20 2d 66 72 6f 6d 5d 0a 20 20 20 20 7d 20 65 6c 73 65 69 66 20 et.[$w.cget.-from].....}.elseif.
1ff00 7b 5b 73 74 72 69 6e 67 20 65 71 75 61 6c 20 24 65 6c 20 22 74 72 6f 75 67 68 32 22 5d 7d 20 7b {[string.equal.$el."trough2"]}.{
1ff20 0a 09 24 77 20 73 65 74 20 5b 24 77 20 63 67 65 74 20 2d 74 6f 5d 0a 20 20 20 20 7d 0a 7d 0a 0a ..$w.set.[$w.cget.-to].....}.}..
1ff40 23 20 74 6b 53 63 61 6c 65 42 75 74 74 6f 6e 32 44 6f 77 6e 0a 23 20 54 68 69 73 20 70 72 6f 63 #.tkScaleButton2Down.#.This.proc
1ff60 65 64 75 72 65 20 69 73 20 69 6e 76 6f 6b 65 64 20 77 68 65 6e 20 62 75 74 74 6f 6e 20 32 20 69 edure.is.invoked.when.button.2.i
1ff80 73 20 70 72 65 73 73 65 64 20 6f 76 65 72 20 61 20 73 63 61 6c 65 2e 0a 23 20 49 74 20 73 65 74 s.pressed.over.a.scale..#.It.set
1ffa0 73 20 74 68 65 20 76 61 6c 75 65 20 74 6f 20 63 6f 72 72 65 73 70 6f 6e 64 20 74 6f 20 74 68 65 s.the.value.to.correspond.to.the
1ffc0 20 6d 6f 75 73 65 20 70 6f 73 69 74 69 6f 6e 20 61 6e 64 20 73 74 61 72 74 73 0a 23 20 61 20 73 .mouse.position.and.starts.#.a.s
1ffe0 6c 69 64 65 72 20 64 72 61 67 2e 0a 23 0a 23 20 41 72 67 75 6d 65 6e 74 73 3a 0a 23 20 77 20 2d lider.drag..#.#.Arguments:.#.w.-
20000 09 09 54 68 65 20 73 63 72 6f 6c 6c 62 61 72 20 77 69 64 67 65 74 2e 0a 23 20 78 2c 20 79 20 2d ..The.scrollbar.widget..#.x,.y.-
20020 09 4d 6f 75 73 65 20 63 6f 6f 72 64 69 6e 61 74 65 73 20 77 69 74 68 69 6e 20 74 68 65 20 77 69 .Mouse.coordinates.within.the.wi
20040 64 67 65 74 2e 0a 0a 70 72 6f 63 20 74 6b 53 63 61 6c 65 42 75 74 74 6f 6e 32 44 6f 77 6e 20 7b dget...proc.tkScaleButton2Down.{
20060 77 20 78 20 79 7d 20 7b 0a 20 20 20 20 67 6c 6f 62 61 6c 20 74 6b 50 72 69 76 0a 0a 20 20 20 20 w.x.y}.{.....global.tkPriv......
20080 69 66 20 7b 5b 73 74 72 69 6e 67 20 65 71 75 61 6c 20 5b 24 77 20 63 67 65 74 20 2d 73 74 61 74 if.{[string.equal.[$w.cget.-stat
200a0 65 5d 20 22 64 69 73 61 62 6c 65 64 22 5d 7d 20 7b 0a 20 20 20 20 20 20 72 65 74 75 72 6e 0a 20 e]."disabled"]}.{.......return..
200c0 20 20 20 7d 0a 20 20 20 20 24 77 20 63 6f 6e 66 69 67 75 72 65 20 2d 73 74 61 74 65 20 61 63 74 ...}.....$w.configure.-state.act
200e0 69 76 65 0a 20 20 20 20 24 77 20 73 65 74 20 5b 24 77 20 67 65 74 20 24 78 20 24 79 5d 0a 20 20 ive.....$w.set.[$w.get.$x.$y]...
20100 20 20 73 65 74 20 74 6b 50 72 69 76 28 64 72 61 67 67 69 6e 67 29 20 31 0a 20 20 20 20 73 65 74 ..set.tkPriv(dragging).1.....set
20120 20 74 6b 50 72 69 76 28 69 6e 69 74 56 61 6c 75 65 29 20 5b 24 77 20 67 65 74 5d 0a 20 20 20 20 .tkPriv(initValue).[$w.get].....
20140 73 65 74 20 63 6f 6f 72 64 73 20 22 24 78 20 24 79 22 0a 20 20 20 20 73 65 74 20 74 6b 50 72 69 set.coords."$x.$y".....set.tkPri
20160 76 28 64 65 6c 74 61 58 29 20 30 0a 20 20 20 20 73 65 74 20 74 6b 50 72 69 76 28 64 65 6c 74 61 v(deltaX).0.....set.tkPriv(delta
20180 59 29 20 30 0a 7d 0a 00 00 2d df 23 20 73 63 72 6c 62 61 72 2e 74 63 6c 20 2d 2d 0a 23 0a 23 20 Y).0.}...-.#.scrlbar.tcl.--.#.#.
201a0 54 68 69 73 20 66 69 6c 65 20 64 65 66 69 6e 65 73 20 74 68 65 20 64 65 66 61 75 6c 74 20 62 69 This.file.defines.the.default.bi
201c0 6e 64 69 6e 67 73 20 66 6f 72 20 54 6b 20 73 63 72 6f 6c 6c 62 61 72 20 77 69 64 67 65 74 73 2e ndings.for.Tk.scrollbar.widgets.
201e0 0a 23 20 49 74 20 61 6c 73 6f 20 70 72 6f 76 69 64 65 73 20 70 72 6f 63 65 64 75 72 65 73 20 74 .#.It.also.provides.procedures.t
20200 68 61 74 20 68 65 6c 70 20 69 6e 20 69 6d 70 6c 65 6d 65 6e 74 69 6e 67 20 74 68 65 20 62 69 6e hat.help.in.implementing.the.bin
20220 64 69 6e 67 73 2e 0a 23 0a 23 20 52 43 53 3a 20 40 28 23 29 20 24 49 64 3a 20 73 63 72 6c 62 61 dings..#.#.RCS:.@(#).$Id:.scrlba
20240 72 2e 74 63 6c 2c 76 20 31 2e 38 20 32 30 30 30 2f 30 31 2f 30 36 20 30 32 3a 32 32 3a 32 34 20 r.tcl,v.1.8.2000/01/06.02:22:24.
20260 68 6f 62 62 73 20 45 78 70 20 24 0a 23 0a 23 20 43 6f 70 79 72 69 67 68 74 20 28 63 29 20 31 39 hobbs.Exp.$.#.#.Copyright.(c).19
20280 39 34 20 54 68 65 20 52 65 67 65 6e 74 73 20 6f 66 20 74 68 65 20 55 6e 69 76 65 72 73 69 74 79 94.The.Regents.of.the.University
202a0 20 6f 66 20 43 61 6c 69 66 6f 72 6e 69 61 2e 0a 23 20 43 6f 70 79 72 69 67 68 74 20 28 63 29 20 .of.California..#.Copyright.(c).
202c0 31 39 39 34 2d 31 39 39 36 20 53 75 6e 20 4d 69 63 72 6f 73 79 73 74 65 6d 73 2c 20 49 6e 63 2e 1994-1996.Sun.Microsystems,.Inc.
202e0 0a 23 0a 23 20 53 65 65 20 74 68 65 20 66 69 6c 65 20 22 6c 69 63 65 6e 73 65 2e 74 65 72 6d 73 .#.#.See.the.file."license.terms
20300 22 20 66 6f 72 20 69 6e 66 6f 72 6d 61 74 69 6f 6e 20 6f 6e 20 75 73 61 67 65 20 61 6e 64 20 72 ".for.information.on.usage.and.r
20320 65 64 69 73 74 72 69 62 75 74 69 6f 6e 0a 23 20 6f 66 20 74 68 69 73 20 66 69 6c 65 2c 20 61 6e edistribution.#.of.this.file,.an
20340 64 20 66 6f 72 20 61 20 44 49 53 43 4c 41 49 4d 45 52 20 4f 46 20 41 4c 4c 20 57 41 52 52 41 4e d.for.a.DISCLAIMER.OF.ALL.WARRAN
20360 54 49 45 53 2e 0a 23 0a 0a 23 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d TIES..#..#----------------------
20380 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d --------------------------------
203a0 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 0a 23 20 54 68 65 20 63 6f 64 65 20 62 -------------------.#.The.code.b
203c0 65 6c 6f 77 20 63 72 65 61 74 65 73 20 74 68 65 20 64 65 66 61 75 6c 74 20 63 6c 61 73 73 20 62 elow.creates.the.default.class.b
203e0 69 6e 64 69 6e 67 73 20 66 6f 72 20 73 63 72 6f 6c 6c 62 61 72 73 2e 0a 23 2d 2d 2d 2d 2d 2d 2d indings.for.scrollbars..#-------
20400 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d --------------------------------
20420 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d --------------------------------
20440 2d 2d 0a 0a 23 20 53 74 61 6e 64 61 72 64 20 4d 6f 74 69 66 20 62 69 6e 64 69 6e 67 73 3a 0a 69 --..#.Standard.Motif.bindings:.i
20460 66 20 7b 5b 73 74 72 69 6e 67 20 63 6f 6d 70 61 72 65 20 24 74 63 6c 5f 70 6c 61 74 66 6f 72 6d f.{[string.compare.$tcl_platform
20480 28 70 6c 61 74 66 6f 72 6d 29 20 22 77 69 6e 64 6f 77 73 22 5d 20 26 26 20 5c 0a 09 5b 73 74 72 (platform)."windows"].&&.\..[str
204a0 69 6e 67 20 63 6f 6d 70 61 72 65 20 24 74 63 6c 5f 70 6c 61 74 66 6f 72 6d 28 70 6c 61 74 66 6f ing.compare.$tcl_platform(platfo
204c0 72 6d 29 20 22 6d 61 63 69 6e 74 6f 73 68 22 5d 7d 20 7b 0a 0a 62 69 6e 64 20 53 63 72 6f 6c 6c rm)."macintosh"]}.{..bind.Scroll
204e0 62 61 72 20 3c 45 6e 74 65 72 3e 20 7b 0a 20 20 20 20 69 66 20 7b 24 74 6b 5f 73 74 72 69 63 74 bar.<Enter>.{.....if.{$tk_strict
20500 4d 6f 74 69 66 7d 20 7b 0a 09 73 65 74 20 74 6b 50 72 69 76 28 61 63 74 69 76 65 42 67 29 20 5b Motif}.{..set.tkPriv(activeBg).[
20520 25 57 20 63 67 65 74 20 2d 61 63 74 69 76 65 62 61 63 6b 67 72 6f 75 6e 64 5d 0a 09 25 57 20 63 %W.cget.-activebackground]..%W.c
20540 6f 6e 66 69 67 20 2d 61 63 74 69 76 65 62 61 63 6b 67 72 6f 75 6e 64 20 5b 25 57 20 63 67 65 74 onfig.-activebackground.[%W.cget
20560 20 2d 62 61 63 6b 67 72 6f 75 6e 64 5d 0a 20 20 20 20 7d 0a 20 20 20 20 25 57 20 61 63 74 69 76 .-background].....}.....%W.activ
20580 61 74 65 20 5b 25 57 20 69 64 65 6e 74 69 66 79 20 25 78 20 25 79 5d 0a 7d 0a 62 69 6e 64 20 53 ate.[%W.identify.%x.%y].}.bind.S
205a0 63 72 6f 6c 6c 62 61 72 20 3c 4d 6f 74 69 6f 6e 3e 20 7b 0a 20 20 20 20 25 57 20 61 63 74 69 76 crollbar.<Motion>.{.....%W.activ
205c0 61 74 65 20 5b 25 57 20 69 64 65 6e 74 69 66 79 20 25 78 20 25 79 5d 0a 7d 0a 0a 23 20 54 68 65 ate.[%W.identify.%x.%y].}..#.The
205e0 20 22 69 6e 66 6f 20 65 78 69 73 74 73 22 20 63 6f 6d 6d 61 6e 64 20 69 6e 20 74 68 65 20 66 6f ."info.exists".command.in.the.fo
20600 6c 6c 6f 77 69 6e 67 20 62 69 6e 64 69 6e 67 20 68 61 6e 64 6c 65 73 20 74 68 65 0a 23 20 73 69 llowing.binding.handles.the.#.si
20620 74 75 61 74 69 6f 6e 20 77 68 65 72 65 20 61 20 4c 65 61 76 65 20 65 76 65 6e 74 20 6f 63 63 75 tuation.where.a.Leave.event.occu
20640 72 73 20 66 6f 72 20 61 20 73 63 72 6f 6c 6c 62 61 72 20 77 69 74 68 6f 75 74 20 74 68 65 20 45 rs.for.a.scrollbar.without.the.E
20660 6e 74 65 72 0a 23 20 65 76 65 6e 74 2e 20 20 54 68 69 73 20 73 65 65 6d 73 20 74 6f 20 68 61 70 nter.#.event...This.seems.to.hap
20680 70 65 6e 20 6f 6e 20 73 6f 6d 65 20 73 79 73 74 65 6d 73 20 28 73 75 63 68 20 61 73 20 53 6f 6c pen.on.some.systems.(such.as.Sol
206a0 61 72 69 73 20 32 2e 34 29 20 66 6f 72 0a 23 20 75 6e 6b 6e 6f 77 6e 20 72 65 61 73 6f 6e 73 2e aris.2.4).for.#.unknown.reasons.
206c0 0a 0a 62 69 6e 64 20 53 63 72 6f 6c 6c 62 61 72 20 3c 4c 65 61 76 65 3e 20 7b 0a 20 20 20 20 69 ..bind.Scrollbar.<Leave>.{.....i
206e0 66 20 7b 24 74 6b 5f 73 74 72 69 63 74 4d 6f 74 69 66 20 26 26 20 5b 69 6e 66 6f 20 65 78 69 73 f.{$tk_strictMotif.&&.[info.exis
20700 74 73 20 74 6b 50 72 69 76 28 61 63 74 69 76 65 42 67 29 5d 7d 20 7b 0a 09 25 57 20 63 6f 6e 66 ts.tkPriv(activeBg)]}.{..%W.conf
20720 69 67 20 2d 61 63 74 69 76 65 62 61 63 6b 67 72 6f 75 6e 64 20 24 74 6b 50 72 69 76 28 61 63 74 ig.-activebackground.$tkPriv(act
20740 69 76 65 42 67 29 0a 20 20 20 20 7d 0a 20 20 20 20 25 57 20 61 63 74 69 76 61 74 65 20 7b 7d 0a iveBg).....}.....%W.activate.{}.
20760 7d 0a 62 69 6e 64 20 53 63 72 6f 6c 6c 62 61 72 20 3c 31 3e 20 7b 0a 20 20 20 20 74 6b 53 63 72 }.bind.Scrollbar.<1>.{.....tkScr
20780 6f 6c 6c 42 75 74 74 6f 6e 44 6f 77 6e 20 25 57 20 25 78 20 25 79 0a 7d 0a 62 69 6e 64 20 53 63 ollButtonDown.%W.%x.%y.}.bind.Sc
207a0 72 6f 6c 6c 62 61 72 20 3c 42 31 2d 4d 6f 74 69 6f 6e 3e 20 7b 0a 20 20 20 20 74 6b 53 63 72 6f rollbar.<B1-Motion>.{.....tkScro
207c0 6c 6c 44 72 61 67 20 25 57 20 25 78 20 25 79 0a 7d 0a 62 69 6e 64 20 53 63 72 6f 6c 6c 62 61 72 llDrag.%W.%x.%y.}.bind.Scrollbar
207e0 20 3c 42 31 2d 42 32 2d 4d 6f 74 69 6f 6e 3e 20 7b 0a 20 20 20 20 74 6b 53 63 72 6f 6c 6c 44 72 .<B1-B2-Motion>.{.....tkScrollDr
20800 61 67 20 25 57 20 25 78 20 25 79 0a 7d 0a 62 69 6e 64 20 53 63 72 6f 6c 6c 62 61 72 20 3c 42 75 ag.%W.%x.%y.}.bind.Scrollbar.<Bu
20820 74 74 6f 6e 52 65 6c 65 61 73 65 2d 31 3e 20 7b 0a 20 20 20 20 74 6b 53 63 72 6f 6c 6c 42 75 74 ttonRelease-1>.{.....tkScrollBut
20840 74 6f 6e 55 70 20 25 57 20 25 78 20 25 79 0a 7d 0a 62 69 6e 64 20 53 63 72 6f 6c 6c 62 61 72 20 tonUp.%W.%x.%y.}.bind.Scrollbar.
20860 3c 42 31 2d 4c 65 61 76 65 3e 20 7b 0a 20 20 20 20 23 20 50 72 65 76 65 6e 74 73 20 3c 4c 65 61 <B1-Leave>.{.....#.Prevents.<Lea
20880 76 65 3e 20 62 69 6e 64 69 6e 67 20 66 72 6f 6d 20 62 65 69 6e 67 20 69 6e 76 6f 6b 65 64 2e 0a ve>.binding.from.being.invoked..
208a0 7d 0a 62 69 6e 64 20 53 63 72 6f 6c 6c 62 61 72 20 3c 42 31 2d 45 6e 74 65 72 3e 20 7b 0a 20 20 }.bind.Scrollbar.<B1-Enter>.{...
208c0 20 20 23 20 50 72 65 76 65 6e 74 73 20 3c 45 6e 74 65 72 3e 20 62 69 6e 64 69 6e 67 20 66 72 6f ..#.Prevents.<Enter>.binding.fro
208e0 6d 20 62 65 69 6e 67 20 69 6e 76 6f 6b 65 64 2e 0a 7d 0a 62 69 6e 64 20 53 63 72 6f 6c 6c 62 61 m.being.invoked..}.bind.Scrollba
20900 72 20 3c 32 3e 20 7b 0a 20 20 20 20 74 6b 53 63 72 6f 6c 6c 42 75 74 74 6f 6e 32 44 6f 77 6e 20 r.<2>.{.....tkScrollButton2Down.
20920 25 57 20 25 78 20 25 79 0a 7d 0a 62 69 6e 64 20 53 63 72 6f 6c 6c 62 61 72 20 3c 42 31 2d 32 3e %W.%x.%y.}.bind.Scrollbar.<B1-2>
20940 20 7b 0a 20 20 20 20 23 20 44 6f 20 6e 6f 74 68 69 6e 67 2c 20 73 69 6e 63 65 20 62 75 74 74 6f .{.....#.Do.nothing,.since.butto
20960 6e 20 31 20 69 73 20 61 6c 72 65 61 64 79 20 64 6f 77 6e 2e 0a 7d 0a 62 69 6e 64 20 53 63 72 6f n.1.is.already.down..}.bind.Scro
20980 6c 6c 62 61 72 20 3c 42 32 2d 31 3e 20 7b 0a 20 20 20 20 23 20 44 6f 20 6e 6f 74 68 69 6e 67 2c llbar.<B2-1>.{.....#.Do.nothing,
209a0 20 73 69 6e 63 65 20 62 75 74 74 6f 6e 20 32 20 69 73 20 61 6c 72 65 61 64 79 20 64 6f 77 6e 2e .since.button.2.is.already.down.
209c0 0a 7d 0a 62 69 6e 64 20 53 63 72 6f 6c 6c 62 61 72 20 3c 42 32 2d 4d 6f 74 69 6f 6e 3e 20 7b 0a .}.bind.Scrollbar.<B2-Motion>.{.
209e0 20 20 20 20 74 6b 53 63 72 6f 6c 6c 44 72 61 67 20 25 57 20 25 78 20 25 79 0a 7d 0a 62 69 6e 64 ....tkScrollDrag.%W.%x.%y.}.bind
20a00 20 53 63 72 6f 6c 6c 62 61 72 20 3c 42 75 74 74 6f 6e 52 65 6c 65 61 73 65 2d 32 3e 20 7b 0a 20 .Scrollbar.<ButtonRelease-2>.{..
20a20 20 20 20 74 6b 53 63 72 6f 6c 6c 42 75 74 74 6f 6e 55 70 20 25 57 20 25 78 20 25 79 0a 7d 0a 62 ...tkScrollButtonUp.%W.%x.%y.}.b
20a40 69 6e 64 20 53 63 72 6f 6c 6c 62 61 72 20 3c 42 31 2d 42 75 74 74 6f 6e 52 65 6c 65 61 73 65 2d ind.Scrollbar.<B1-ButtonRelease-
20a60 32 3e 20 7b 0a 20 20 20 20 23 20 44 6f 20 6e 6f 74 68 69 6e 67 3a 20 20 42 31 20 72 65 6c 65 61 2>.{.....#.Do.nothing:..B1.relea
20a80 73 65 20 77 69 6c 6c 20 68 61 6e 64 6c 65 20 69 74 2e 0a 7d 0a 62 69 6e 64 20 53 63 72 6f 6c 6c se.will.handle.it..}.bind.Scroll
20aa0 62 61 72 20 3c 42 32 2d 42 75 74 74 6f 6e 52 65 6c 65 61 73 65 2d 31 3e 20 7b 0a 20 20 20 20 23 bar.<B2-ButtonRelease-1>.{.....#
20ac0 20 44 6f 20 6e 6f 74 68 69 6e 67 3a 20 20 42 32 20 72 65 6c 65 61 73 65 20 77 69 6c 6c 20 68 61 .Do.nothing:..B2.release.will.ha
20ae0 6e 64 6c 65 20 69 74 2e 0a 7d 0a 62 69 6e 64 20 53 63 72 6f 6c 6c 62 61 72 20 3c 42 32 2d 4c 65 ndle.it..}.bind.Scrollbar.<B2-Le
20b00 61 76 65 3e 20 7b 0a 20 20 20 20 23 20 50 72 65 76 65 6e 74 73 20 3c 4c 65 61 76 65 3e 20 62 69 ave>.{.....#.Prevents.<Leave>.bi
20b20 6e 64 69 6e 67 20 66 72 6f 6d 20 62 65 69 6e 67 20 69 6e 76 6f 6b 65 64 2e 0a 7d 0a 62 69 6e 64 nding.from.being.invoked..}.bind
20b40 20 53 63 72 6f 6c 6c 62 61 72 20 3c 42 32 2d 45 6e 74 65 72 3e 20 7b 0a 20 20 20 20 23 20 50 72 .Scrollbar.<B2-Enter>.{.....#.Pr
20b60 65 76 65 6e 74 73 20 3c 45 6e 74 65 72 3e 20 62 69 6e 64 69 6e 67 20 66 72 6f 6d 20 62 65 69 6e events.<Enter>.binding.from.bein
20b80 67 20 69 6e 76 6f 6b 65 64 2e 0a 7d 0a 62 69 6e 64 20 53 63 72 6f 6c 6c 62 61 72 20 3c 43 6f 6e g.invoked..}.bind.Scrollbar.<Con
20ba0 74 72 6f 6c 2d 31 3e 20 7b 0a 20 20 20 20 74 6b 53 63 72 6f 6c 6c 54 6f 70 42 6f 74 74 6f 6d 20 trol-1>.{.....tkScrollTopBottom.
20bc0 25 57 20 25 78 20 25 79 0a 7d 0a 62 69 6e 64 20 53 63 72 6f 6c 6c 62 61 72 20 3c 43 6f 6e 74 72 %W.%x.%y.}.bind.Scrollbar.<Contr
20be0 6f 6c 2d 32 3e 20 7b 0a 20 20 20 20 74 6b 53 63 72 6f 6c 6c 54 6f 70 42 6f 74 74 6f 6d 20 25 57 ol-2>.{.....tkScrollTopBottom.%W
20c00 20 25 78 20 25 79 0a 7d 0a 0a 62 69 6e 64 20 53 63 72 6f 6c 6c 62 61 72 20 3c 55 70 3e 20 7b 0a .%x.%y.}..bind.Scrollbar.<Up>.{.
20c20 20 20 20 20 74 6b 53 63 72 6f 6c 6c 42 79 55 6e 69 74 73 20 25 57 20 76 20 2d 31 0a 7d 0a 62 69 ....tkScrollByUnits.%W.v.-1.}.bi
20c40 6e 64 20 53 63 72 6f 6c 6c 62 61 72 20 3c 44 6f 77 6e 3e 20 7b 0a 20 20 20 20 74 6b 53 63 72 6f nd.Scrollbar.<Down>.{.....tkScro
20c60 6c 6c 42 79 55 6e 69 74 73 20 25 57 20 76 20 31 0a 7d 0a 62 69 6e 64 20 53 63 72 6f 6c 6c 62 61 llByUnits.%W.v.1.}.bind.Scrollba
20c80 72 20 3c 43 6f 6e 74 72 6f 6c 2d 55 70 3e 20 7b 0a 20 20 20 20 74 6b 53 63 72 6f 6c 6c 42 79 50 r.<Control-Up>.{.....tkScrollByP
20ca0 61 67 65 73 20 25 57 20 76 20 2d 31 0a 7d 0a 62 69 6e 64 20 53 63 72 6f 6c 6c 62 61 72 20 3c 43 ages.%W.v.-1.}.bind.Scrollbar.<C
20cc0 6f 6e 74 72 6f 6c 2d 44 6f 77 6e 3e 20 7b 0a 20 20 20 20 74 6b 53 63 72 6f 6c 6c 42 79 50 61 67 ontrol-Down>.{.....tkScrollByPag
20ce0 65 73 20 25 57 20 76 20 31 0a 7d 0a 62 69 6e 64 20 53 63 72 6f 6c 6c 62 61 72 20 3c 4c 65 66 74 es.%W.v.1.}.bind.Scrollbar.<Left
20d00 3e 20 7b 0a 20 20 20 20 74 6b 53 63 72 6f 6c 6c 42 79 55 6e 69 74 73 20 25 57 20 68 20 2d 31 0a >.{.....tkScrollByUnits.%W.h.-1.
20d20 7d 0a 62 69 6e 64 20 53 63 72 6f 6c 6c 62 61 72 20 3c 52 69 67 68 74 3e 20 7b 0a 20 20 20 20 74 }.bind.Scrollbar.<Right>.{.....t
20d40 6b 53 63 72 6f 6c 6c 42 79 55 6e 69 74 73 20 25 57 20 68 20 31 0a 7d 0a 62 69 6e 64 20 53 63 72 kScrollByUnits.%W.h.1.}.bind.Scr
20d60 6f 6c 6c 62 61 72 20 3c 43 6f 6e 74 72 6f 6c 2d 4c 65 66 74 3e 20 7b 0a 20 20 20 20 74 6b 53 63 ollbar.<Control-Left>.{.....tkSc
20d80 72 6f 6c 6c 42 79 50 61 67 65 73 20 25 57 20 68 20 2d 31 0a 7d 0a 62 69 6e 64 20 53 63 72 6f 6c rollByPages.%W.h.-1.}.bind.Scrol
20da0 6c 62 61 72 20 3c 43 6f 6e 74 72 6f 6c 2d 52 69 67 68 74 3e 20 7b 0a 20 20 20 20 74 6b 53 63 72 lbar.<Control-Right>.{.....tkScr
20dc0 6f 6c 6c 42 79 50 61 67 65 73 20 25 57 20 68 20 31 0a 7d 0a 62 69 6e 64 20 53 63 72 6f 6c 6c 62 ollByPages.%W.h.1.}.bind.Scrollb
20de0 61 72 20 3c 50 72 69 6f 72 3e 20 7b 0a 20 20 20 20 74 6b 53 63 72 6f 6c 6c 42 79 50 61 67 65 73 ar.<Prior>.{.....tkScrollByPages
20e00 20 25 57 20 68 76 20 2d 31 0a 7d 0a 62 69 6e 64 20 53 63 72 6f 6c 6c 62 61 72 20 3c 4e 65 78 74 .%W.hv.-1.}.bind.Scrollbar.<Next
20e20 3e 20 7b 0a 20 20 20 20 74 6b 53 63 72 6f 6c 6c 42 79 50 61 67 65 73 20 25 57 20 68 76 20 31 0a >.{.....tkScrollByPages.%W.hv.1.
20e40 7d 0a 62 69 6e 64 20 53 63 72 6f 6c 6c 62 61 72 20 3c 48 6f 6d 65 3e 20 7b 0a 20 20 20 20 74 6b }.bind.Scrollbar.<Home>.{.....tk
20e60 53 63 72 6f 6c 6c 54 6f 50 6f 73 20 25 57 20 30 0a 7d 0a 62 69 6e 64 20 53 63 72 6f 6c 6c 62 61 ScrollToPos.%W.0.}.bind.Scrollba
20e80 72 20 3c 45 6e 64 3e 20 7b 0a 20 20 20 20 74 6b 53 63 72 6f 6c 6c 54 6f 50 6f 73 20 25 57 20 31 r.<End>.{.....tkScrollToPos.%W.1
20ea0 0a 7d 0a 7d 0a 23 20 74 6b 53 63 72 6f 6c 6c 42 75 74 74 6f 6e 44 6f 77 6e 20 2d 2d 0a 23 20 54 .}.}.#.tkScrollButtonDown.--.#.T
20ec0 68 69 73 20 70 72 6f 63 65 64 75 72 65 20 69 73 20 69 6e 76 6f 6b 65 64 20 77 68 65 6e 20 61 20 his.procedure.is.invoked.when.a.
20ee0 62 75 74 74 6f 6e 20 69 73 20 70 72 65 73 73 65 64 20 69 6e 20 61 20 73 63 72 6f 6c 6c 62 61 72 button.is.pressed.in.a.scrollbar
20f00 2e 0a 23 20 49 74 20 63 68 61 6e 67 65 73 20 74 68 65 20 77 61 79 20 74 68 65 20 73 63 72 6f 6c ..#.It.changes.the.way.the.scrol
20f20 6c 62 61 72 20 69 73 20 64 69 73 70 6c 61 79 65 64 20 61 6e 64 20 74 61 6b 65 73 20 61 63 74 69 lbar.is.displayed.and.takes.acti
20f40 6f 6e 73 0a 23 20 64 65 70 65 6e 64 69 6e 67 20 6f 6e 20 77 68 65 72 65 20 74 68 65 20 6d 6f 75 ons.#.depending.on.where.the.mou
20f60 73 65 20 69 73 2e 0a 23 0a 23 20 41 72 67 75 6d 65 6e 74 73 3a 0a 23 20 77 20 2d 09 09 54 68 65 se.is..#.#.Arguments:.#.w.-..The
20f80 20 73 63 72 6f 6c 6c 62 61 72 20 77 69 64 67 65 74 2e 0a 23 20 78 2c 20 79 20 2d 09 4d 6f 75 73 .scrollbar.widget..#.x,.y.-.Mous
20fa0 65 20 63 6f 6f 72 64 69 6e 61 74 65 73 2e 0a 0a 70 72 6f 63 20 74 6b 53 63 72 6f 6c 6c 42 75 74 e.coordinates...proc.tkScrollBut
20fc0 74 6f 6e 44 6f 77 6e 20 7b 77 20 78 20 79 7d 20 7b 0a 20 20 20 20 67 6c 6f 62 61 6c 20 74 6b 50 tonDown.{w.x.y}.{.....global.tkP
20fe0 72 69 76 0a 20 20 20 20 73 65 74 20 74 6b 50 72 69 76 28 72 65 6c 69 65 66 29 20 5b 24 77 20 63 riv.....set.tkPriv(relief).[$w.c
21000 67 65 74 20 2d 61 63 74 69 76 65 72 65 6c 69 65 66 5d 0a 20 20 20 20 24 77 20 63 6f 6e 66 69 67 get.-activerelief].....$w.config
21020 75 72 65 20 2d 61 63 74 69 76 65 72 65 6c 69 65 66 20 73 75 6e 6b 65 6e 0a 20 20 20 20 73 65 74 ure.-activerelief.sunken.....set
21040 20 65 6c 65 6d 65 6e 74 20 5b 24 77 20 69 64 65 6e 74 69 66 79 20 24 78 20 24 79 5d 0a 20 20 20 .element.[$w.identify.$x.$y]....
21060 20 69 66 20 7b 5b 73 74 72 69 6e 67 20 65 71 75 61 6c 20 24 65 6c 65 6d 65 6e 74 20 22 73 6c 69 .if.{[string.equal.$element."sli
21080 64 65 72 22 5d 7d 20 7b 0a 09 74 6b 53 63 72 6f 6c 6c 53 74 61 72 74 44 72 61 67 20 24 77 20 24 der"]}.{..tkScrollStartDrag.$w.$
210a0 78 20 24 79 0a 20 20 20 20 7d 20 65 6c 73 65 20 7b 0a 09 74 6b 53 63 72 6f 6c 6c 53 65 6c 65 63 x.$y.....}.else.{..tkScrollSelec
210c0 74 20 24 77 20 24 65 6c 65 6d 65 6e 74 20 69 6e 69 74 69 61 6c 0a 20 20 20 20 7d 0a 7d 0a 0a 23 t.$w.$element.initial.....}.}..#
210e0 20 74 6b 53 63 72 6f 6c 6c 42 75 74 74 6f 6e 55 70 20 2d 2d 0a 23 20 54 68 69 73 20 70 72 6f 63 .tkScrollButtonUp.--.#.This.proc
21100 65 64 75 72 65 20 69 73 20 69 6e 76 6f 6b 65 64 20 77 68 65 6e 20 61 20 62 75 74 74 6f 6e 20 69 edure.is.invoked.when.a.button.i
21120 73 20 72 65 6c 65 61 73 65 64 20 69 6e 20 61 20 73 63 72 6f 6c 6c 62 61 72 2e 0a 23 20 49 74 20 s.released.in.a.scrollbar..#.It.
21140 63 61 6e 63 65 6c 73 20 73 63 61 6e 73 20 61 6e 64 20 61 75 74 6f 2d 72 65 70 65 61 74 73 20 74 cancels.scans.and.auto-repeats.t
21160 68 61 74 20 77 65 72 65 20 69 6e 20 70 72 6f 67 72 65 73 73 2c 20 61 6e 64 20 72 65 73 74 6f 72 hat.were.in.progress,.and.restor
21180 65 73 0a 23 20 74 68 65 20 77 61 79 20 74 68 65 20 61 63 74 69 76 65 20 65 6c 65 6d 65 6e 74 20 es.#.the.way.the.active.element.
211a0 69 73 20 64 69 73 70 6c 61 79 65 64 2e 0a 23 0a 23 20 41 72 67 75 6d 65 6e 74 73 3a 0a 23 20 77 is.displayed..#.#.Arguments:.#.w
211c0 20 2d 09 09 54 68 65 20 73 63 72 6f 6c 6c 62 61 72 20 77 69 64 67 65 74 2e 0a 23 20 78 2c 20 79 .-..The.scrollbar.widget..#.x,.y
211e0 20 2d 09 4d 6f 75 73 65 20 63 6f 6f 72 64 69 6e 61 74 65 73 2e 0a 0a 70 72 6f 63 20 74 6b 53 63 .-.Mouse.coordinates...proc.tkSc
21200 72 6f 6c 6c 42 75 74 74 6f 6e 55 70 20 7b 77 20 78 20 79 7d 20 7b 0a 20 20 20 20 67 6c 6f 62 61 rollButtonUp.{w.x.y}.{.....globa
21220 6c 20 74 6b 50 72 69 76 0a 20 20 20 20 74 6b 43 61 6e 63 65 6c 52 65 70 65 61 74 0a 20 20 20 20 l.tkPriv.....tkCancelRepeat.....
21240 69 66 20 7b 5b 69 6e 66 6f 20 65 78 69 73 74 73 20 74 6b 50 72 69 76 28 72 65 6c 69 65 66 29 5d if.{[info.exists.tkPriv(relief)]
21260 7d 20 7b 0a 09 23 20 41 76 6f 69 64 20 65 72 72 6f 72 20 64 75 65 20 74 6f 20 73 70 75 72 69 6f }.{..#.Avoid.error.due.to.spurio
21280 75 73 20 72 65 6c 65 61 73 65 20 65 76 65 6e 74 73 0a 09 24 77 20 63 6f 6e 66 69 67 75 72 65 20 us.release.events..$w.configure.
212a0 2d 61 63 74 69 76 65 72 65 6c 69 65 66 20 24 74 6b 50 72 69 76 28 72 65 6c 69 65 66 29 0a 09 74 -activerelief.$tkPriv(relief)..t
212c0 6b 53 63 72 6f 6c 6c 45 6e 64 44 72 61 67 20 24 77 20 24 78 20 24 79 0a 09 24 77 20 61 63 74 69 kScrollEndDrag.$w.$x.$y..$w.acti
212e0 76 61 74 65 20 5b 24 77 20 69 64 65 6e 74 69 66 79 20 24 78 20 24 79 5d 0a 20 20 20 20 7d 0a 7d vate.[$w.identify.$x.$y].....}.}
21300 0a 0a 23 20 74 6b 53 63 72 6f 6c 6c 53 65 6c 65 63 74 20 2d 2d 0a 23 20 54 68 69 73 20 70 72 6f ..#.tkScrollSelect.--.#.This.pro
21320 63 65 64 75 72 65 20 69 73 20 69 6e 76 6f 6b 65 64 20 77 68 65 6e 20 61 20 62 75 74 74 6f 6e 20 cedure.is.invoked.when.a.button.
21340 69 73 20 70 72 65 73 73 65 64 20 6f 76 65 72 20 74 68 65 20 73 63 72 6f 6c 6c 62 61 72 2e 0a 23 is.pressed.over.the.scrollbar..#
21360 20 49 74 20 69 6e 76 6f 6b 65 73 20 6f 6e 65 20 6f 66 20 73 65 76 65 72 61 6c 20 73 63 72 6f 6c .It.invokes.one.of.several.scrol
21380 6c 69 6e 67 20 61 63 74 69 6f 6e 73 20 64 65 70 65 6e 64 69 6e 67 20 6f 6e 20 77 68 65 72 65 20 ling.actions.depending.on.where.
213a0 69 6e 0a 23 20 74 68 65 20 73 63 72 6f 6c 6c 62 61 72 20 74 68 65 20 62 75 74 74 6f 6e 20 77 61 in.#.the.scrollbar.the.button.wa
213c0 73 20 70 72 65 73 73 65 64 2e 0a 23 0a 23 20 41 72 67 75 6d 65 6e 74 73 3a 0a 23 20 77 20 2d 09 s.pressed..#.#.Arguments:.#.w.-.
213e0 09 54 68 65 20 73 63 72 6f 6c 6c 62 61 72 20 77 69 64 67 65 74 2e 0a 23 20 65 6c 65 6d 65 6e 74 .The.scrollbar.widget..#.element
21400 20 2d 09 54 68 65 20 65 6c 65 6d 65 6e 74 20 6f 66 20 74 68 65 20 73 63 72 6f 6c 6c 62 61 72 20 .-.The.element.of.the.scrollbar.
21420 74 68 61 74 20 77 61 73 20 73 65 6c 65 63 74 65 64 2c 20 73 75 63 68 0a 23 09 09 61 73 20 22 61 that.was.selected,.such.#..as."a
21440 72 72 6f 77 31 22 20 6f 72 20 22 74 72 6f 75 67 68 32 22 2e 20 20 53 68 6f 75 6c 64 6e 27 74 20 rrow1".or."trough2"...Shouldn't.
21460 62 65 20 22 73 6c 69 64 65 72 22 2e 0a 23 20 72 65 70 65 61 74 20 2d 09 57 68 65 74 68 65 72 20 be."slider"..#.repeat.-.Whether.
21480 61 6e 64 20 68 6f 77 20 74 6f 20 61 75 74 6f 2d 72 65 70 65 61 74 20 74 68 65 20 61 63 74 69 6f and.how.to.auto-repeat.the.actio
214a0 6e 3a 20 20 22 6e 6f 52 65 70 65 61 74 22 0a 23 09 09 6d 65 61 6e 73 20 64 6f 6e 27 74 20 61 75 n:.."noRepeat".#..means.don't.au
214c0 74 6f 2d 72 65 70 65 61 74 2c 20 22 69 6e 69 74 69 61 6c 22 20 6d 65 61 6e 73 20 74 68 69 73 20 to-repeat,."initial".means.this.
214e0 69 73 20 74 68 65 0a 23 09 09 66 69 72 73 74 20 61 63 74 69 6f 6e 20 69 6e 20 61 6e 20 61 75 74 is.the.#..first.action.in.an.aut
21500 6f 2d 72 65 70 65 61 74 20 73 65 71 75 65 6e 63 65 2c 20 61 6e 64 20 22 61 67 61 69 6e 22 0a 23 o-repeat.sequence,.and."again".#
21520 09 09 6d 65 61 6e 73 20 74 68 69 73 20 69 73 20 74 68 65 20 73 65 63 6f 6e 64 20 72 65 70 65 74 ..means.this.is.the.second.repet
21540 69 74 69 6f 6e 20 6f 72 20 6c 61 74 65 72 2e 0a 0a 70 72 6f 63 20 74 6b 53 63 72 6f 6c 6c 53 65 ition.or.later...proc.tkScrollSe
21560 6c 65 63 74 20 7b 77 20 65 6c 65 6d 65 6e 74 20 72 65 70 65 61 74 7d 20 7b 0a 20 20 20 20 67 6c lect.{w.element.repeat}.{.....gl
21580 6f 62 61 6c 20 74 6b 50 72 69 76 0a 20 20 20 20 69 66 20 7b 21 5b 77 69 6e 66 6f 20 65 78 69 73 obal.tkPriv.....if.{![winfo.exis
215a0 74 73 20 24 77 5d 7d 20 72 65 74 75 72 6e 0a 20 20 20 20 73 77 69 74 63 68 20 2d 2d 20 24 65 6c ts.$w]}.return.....switch.--.$el
215c0 65 6d 65 6e 74 20 7b 0a 09 22 61 72 72 6f 77 31 22 09 7b 74 6b 53 63 72 6f 6c 6c 42 79 55 6e 69 ement.{.."arrow1".{tkScrollByUni
215e0 74 73 20 24 77 20 68 76 20 2d 31 7d 0a 09 22 74 72 6f 75 67 68 31 22 09 7b 74 6b 53 63 72 6f 6c ts.$w.hv.-1}.."trough1".{tkScrol
21600 6c 42 79 50 61 67 65 73 20 24 77 20 68 76 20 2d 31 7d 0a 09 22 74 72 6f 75 67 68 32 22 09 7b 74 lByPages.$w.hv.-1}.."trough2".{t
21620 6b 53 63 72 6f 6c 6c 42 79 50 61 67 65 73 20 24 77 20 68 76 20 31 7d 0a 09 22 61 72 72 6f 77 32 kScrollByPages.$w.hv.1}.."arrow2
21640 22 09 7b 74 6b 53 63 72 6f 6c 6c 42 79 55 6e 69 74 73 20 24 77 20 68 76 20 31 7d 0a 09 64 65 66 ".{tkScrollByUnits.$w.hv.1}..def
21660 61 75 6c 74 09 09 7b 72 65 74 75 72 6e 7d 0a 20 20 20 20 7d 0a 20 20 20 20 69 66 20 7b 5b 73 74 ault..{return}.....}.....if.{[st
21680 72 69 6e 67 20 65 71 75 61 6c 20 24 72 65 70 65 61 74 20 22 61 67 61 69 6e 22 5d 7d 20 7b 0a 09 ring.equal.$repeat."again"]}.{..
216a0 73 65 74 20 74 6b 50 72 69 76 28 61 66 74 65 72 49 64 29 20 5b 61 66 74 65 72 20 5b 24 77 20 63 set.tkPriv(afterId).[after.[$w.c
216c0 67 65 74 20 2d 72 65 70 65 61 74 69 6e 74 65 72 76 61 6c 5d 20 5c 0a 09 09 5b 6c 69 73 74 20 74 get.-repeatinterval].\...[list.t
216e0 6b 53 63 72 6f 6c 6c 53 65 6c 65 63 74 20 24 77 20 24 65 6c 65 6d 65 6e 74 20 61 67 61 69 6e 5d kScrollSelect.$w.$element.again]
21700 5d 0a 20 20 20 20 7d 20 65 6c 73 65 69 66 20 7b 5b 73 74 72 69 6e 67 20 65 71 75 61 6c 20 24 72 ].....}.elseif.{[string.equal.$r
21720 65 70 65 61 74 20 22 69 6e 69 74 69 61 6c 22 5d 7d 20 7b 0a 09 73 65 74 20 64 65 6c 61 79 20 5b epeat."initial"]}.{..set.delay.[
21740 24 77 20 63 67 65 74 20 2d 72 65 70 65 61 74 64 65 6c 61 79 5d 0a 09 69 66 20 7b 24 64 65 6c 61 $w.cget.-repeatdelay]..if.{$dela
21760 79 20 3e 20 30 7d 20 7b 0a 09 20 20 20 20 73 65 74 20 74 6b 50 72 69 76 28 61 66 74 65 72 49 64 y.>.0}.{......set.tkPriv(afterId
21780 29 20 5b 61 66 74 65 72 20 24 64 65 6c 61 79 20 5c 0a 09 09 20 20 20 20 5b 6c 69 73 74 20 74 6b ).[after.$delay.\.......[list.tk
217a0 53 63 72 6f 6c 6c 53 65 6c 65 63 74 20 24 77 20 24 65 6c 65 6d 65 6e 74 20 61 67 61 69 6e 5d 5d ScrollSelect.$w.$element.again]]
217c0 0a 09 7d 0a 20 20 20 20 7d 0a 7d 0a 0a 23 20 74 6b 53 63 72 6f 6c 6c 53 74 61 72 74 44 72 61 67 ..}.....}.}..#.tkScrollStartDrag
217e0 20 2d 2d 0a 23 20 54 68 69 73 20 70 72 6f 63 65 64 75 72 65 20 69 73 20 63 61 6c 6c 65 64 20 74 .--.#.This.procedure.is.called.t
21800 6f 20 69 6e 69 74 69 61 74 65 20 61 20 64 72 61 67 20 6f 66 20 74 68 65 20 73 6c 69 64 65 72 2e o.initiate.a.drag.of.the.slider.
21820 20 20 49 74 20 6a 75 73 74 0a 23 20 72 65 6d 65 6d 62 65 72 73 20 74 68 65 20 73 74 61 72 74 69 ..It.just.#.remembers.the.starti
21840 6e 67 20 70 6f 73 69 74 69 6f 6e 20 6f 66 20 74 68 65 20 6d 6f 75 73 65 20 61 6e 64 20 73 6c 69 ng.position.of.the.mouse.and.sli
21860 64 65 72 2e 0a 23 0a 23 20 41 72 67 75 6d 65 6e 74 73 3a 0a 23 20 77 20 2d 09 09 54 68 65 20 73 der..#.#.Arguments:.#.w.-..The.s
21880 63 72 6f 6c 6c 62 61 72 20 77 69 64 67 65 74 2e 0a 23 20 78 2c 20 79 20 2d 09 54 68 65 20 6d 6f crollbar.widget..#.x,.y.-.The.mo
218a0 75 73 65 20 70 6f 73 69 74 69 6f 6e 20 61 74 20 74 68 65 20 73 74 61 72 74 20 6f 66 20 74 68 65 use.position.at.the.start.of.the
218c0 20 64 72 61 67 20 6f 70 65 72 61 74 69 6f 6e 2e 0a 0a 70 72 6f 63 20 74 6b 53 63 72 6f 6c 6c 53 .drag.operation...proc.tkScrollS
218e0 74 61 72 74 44 72 61 67 20 7b 77 20 78 20 79 7d 20 7b 0a 20 20 20 20 67 6c 6f 62 61 6c 20 74 6b tartDrag.{w.x.y}.{.....global.tk
21900 50 72 69 76 0a 0a 20 20 20 20 69 66 20 7b 5b 73 74 72 69 6e 67 20 65 71 75 61 6c 20 5b 24 77 20 Priv......if.{[string.equal.[$w.
21920 63 67 65 74 20 2d 63 6f 6d 6d 61 6e 64 5d 20 22 22 5d 7d 20 7b 0a 09 72 65 74 75 72 6e 0a 20 20 cget.-command].""]}.{..return...
21940 20 20 7d 0a 20 20 20 20 73 65 74 20 74 6b 50 72 69 76 28 70 72 65 73 73 58 29 20 24 78 0a 20 20 ..}.....set.tkPriv(pressX).$x...
21960 20 20 73 65 74 20 74 6b 50 72 69 76 28 70 72 65 73 73 59 29 20 24 79 0a 20 20 20 20 73 65 74 20 ..set.tkPriv(pressY).$y.....set.
21980 74 6b 50 72 69 76 28 69 6e 69 74 56 61 6c 75 65 73 29 20 5b 24 77 20 67 65 74 5d 0a 20 20 20 20 tkPriv(initValues).[$w.get].....
219a0 73 65 74 20 69 76 30 20 5b 6c 69 6e 64 65 78 20 24 74 6b 50 72 69 76 28 69 6e 69 74 56 61 6c 75 set.iv0.[lindex.$tkPriv(initValu
219c0 65 73 29 20 30 5d 0a 20 20 20 20 69 66 20 7b 5b 6c 6c 65 6e 67 74 68 20 24 74 6b 50 72 69 76 28 es).0].....if.{[llength.$tkPriv(
219e0 69 6e 69 74 56 61 6c 75 65 73 29 5d 20 3d 3d 20 32 7d 20 7b 0a 09 73 65 74 20 74 6b 50 72 69 76 initValues)].==.2}.{..set.tkPriv
21a00 28 69 6e 69 74 50 6f 73 29 20 24 69 76 30 0a 20 20 20 20 7d 20 65 6c 73 65 69 66 20 7b 24 69 76 (initPos).$iv0.....}.elseif.{$iv
21a20 30 20 3d 3d 20 30 7d 20 7b 0a 09 73 65 74 20 74 6b 50 72 69 76 28 69 6e 69 74 50 6f 73 29 20 30 0.==.0}.{..set.tkPriv(initPos).0
21a40 2e 30 0a 20 20 20 20 7d 20 65 6c 73 65 20 7b 0a 09 73 65 74 20 74 6b 50 72 69 76 28 69 6e 69 74 .0.....}.else.{..set.tkPriv(init
21a60 50 6f 73 29 20 5b 65 78 70 72 20 7b 28 64 6f 75 62 6c 65 28 5b 6c 69 6e 64 65 78 20 24 74 6b 50 Pos).[expr.{(double([lindex.$tkP
21a80 72 69 76 28 69 6e 69 74 56 61 6c 75 65 73 29 20 32 5d 29 29 20 5c 0a 09 09 2f 20 5b 6c 69 6e 64 riv(initValues).2])).\.../.[lind
21aa0 65 78 20 24 74 6b 50 72 69 76 28 69 6e 69 74 56 61 6c 75 65 73 29 20 30 5d 7d 5d 0a 20 20 20 20 ex.$tkPriv(initValues).0]}].....
21ac0 7d 0a 7d 0a 0a 23 20 74 6b 53 63 72 6f 6c 6c 44 72 61 67 20 2d 2d 0a 23 20 54 68 69 73 20 70 72 }.}..#.tkScrollDrag.--.#.This.pr
21ae0 6f 63 65 64 75 72 65 20 69 73 20 63 61 6c 6c 65 64 20 66 6f 72 20 65 61 63 68 20 6d 6f 75 73 65 ocedure.is.called.for.each.mouse
21b00 20 6d 6f 74 69 6f 6e 20 65 76 65 6e 20 77 68 65 6e 20 74 68 65 20 73 6c 69 64 65 72 0a 23 20 69 .motion.even.when.the.slider.#.i
21b20 73 20 62 65 69 6e 67 20 64 72 61 67 67 65 64 2e 20 20 49 74 20 6e 6f 74 69 66 69 65 73 20 74 68 s.being.dragged...It.notifies.th
21b40 65 20 61 73 73 6f 63 69 61 74 65 64 20 77 69 64 67 65 74 20 69 66 20 77 65 27 72 65 20 6e 6f 74 e.associated.widget.if.we're.not
21b60 0a 23 20 6a 75 6d 70 20 73 63 72 6f 6c 6c 69 6e 67 2c 20 61 6e 64 20 69 74 20 6a 75 73 74 20 75 .#.jump.scrolling,.and.it.just.u
21b80 70 64 61 74 65 73 20 74 68 65 20 73 63 72 6f 6c 6c 62 61 72 20 69 66 20 77 65 20 61 72 65 20 6a pdates.the.scrollbar.if.we.are.j
21ba0 75 6d 70 0a 23 20 73 63 72 6f 6c 6c 69 6e 67 2e 0a 23 0a 23 20 41 72 67 75 6d 65 6e 74 73 3a 0a ump.#.scrolling..#.#.Arguments:.
21bc0 23 20 77 20 2d 09 09 54 68 65 20 73 63 72 6f 6c 6c 62 61 72 20 77 69 64 67 65 74 2e 0a 23 20 78 #.w.-..The.scrollbar.widget..#.x
21be0 2c 20 79 20 2d 09 54 68 65 20 63 75 72 72 65 6e 74 20 6d 6f 75 73 65 20 70 6f 73 69 74 69 6f 6e ,.y.-.The.current.mouse.position
21c00 2e 0a 0a 70 72 6f 63 20 74 6b 53 63 72 6f 6c 6c 44 72 61 67 20 7b 77 20 78 20 79 7d 20 7b 0a 20 ...proc.tkScrollDrag.{w.x.y}.{..
21c20 20 20 20 67 6c 6f 62 61 6c 20 74 6b 50 72 69 76 0a 0a 20 20 20 20 69 66 20 7b 5b 73 74 72 69 6e ...global.tkPriv......if.{[strin
21c40 67 20 65 71 75 61 6c 20 24 74 6b 50 72 69 76 28 69 6e 69 74 50 6f 73 29 20 22 22 5d 7d 20 7b 0a g.equal.$tkPriv(initPos).""]}.{.
21c60 09 72 65 74 75 72 6e 0a 20 20 20 20 7d 0a 20 20 20 20 73 65 74 20 64 65 6c 74 61 20 5b 24 77 20 .return.....}.....set.delta.[$w.
21c80 64 65 6c 74 61 20 5b 65 78 70 72 20 7b 24 78 20 2d 20 24 74 6b 50 72 69 76 28 70 72 65 73 73 58 delta.[expr.{$x.-.$tkPriv(pressX
21ca0 29 7d 5d 20 5b 65 78 70 72 20 7b 24 79 20 2d 20 24 74 6b 50 72 69 76 28 70 72 65 73 73 59 29 7d )}].[expr.{$y.-.$tkPriv(pressY)}
21cc0 5d 5d 0a 20 20 20 20 69 66 20 7b 5b 24 77 20 63 67 65 74 20 2d 6a 75 6d 70 5d 7d 20 7b 0a 09 69 ]].....if.{[$w.cget.-jump]}.{..i
21ce0 66 20 7b 5b 6c 6c 65 6e 67 74 68 20 24 74 6b 50 72 69 76 28 69 6e 69 74 56 61 6c 75 65 73 29 5d f.{[llength.$tkPriv(initValues)]
21d00 20 3d 3d 20 32 7d 20 7b 0a 09 20 20 20 20 24 77 20 73 65 74 20 5b 65 78 70 72 20 7b 5b 6c 69 6e .==.2}.{......$w.set.[expr.{[lin
21d20 64 65 78 20 24 74 6b 50 72 69 76 28 69 6e 69 74 56 61 6c 75 65 73 29 20 30 5d 20 2b 20 24 64 65 dex.$tkPriv(initValues).0].+.$de
21d40 6c 74 61 7d 5d 20 5c 0a 09 09 20 20 20 20 5b 65 78 70 72 20 7b 5b 6c 69 6e 64 65 78 20 24 74 6b lta}].\.......[expr.{[lindex.$tk
21d60 50 72 69 76 28 69 6e 69 74 56 61 6c 75 65 73 29 20 31 5d 20 2b 20 24 64 65 6c 74 61 7d 5d 0a 09 Priv(initValues).1].+.$delta}]..
21d80 7d 20 65 6c 73 65 20 7b 0a 09 20 20 20 20 73 65 74 20 64 65 6c 74 61 20 5b 65 78 70 72 20 7b 72 }.else.{......set.delta.[expr.{r
21da0 6f 75 6e 64 28 24 64 65 6c 74 61 20 2a 20 5b 6c 69 6e 64 65 78 20 24 74 6b 50 72 69 76 28 69 6e ound($delta.*.[lindex.$tkPriv(in
21dc0 69 74 56 61 6c 75 65 73 29 20 30 5d 29 7d 5d 0a 09 20 20 20 20 65 76 61 6c 20 5b 6c 69 73 74 20 itValues).0])}]......eval.[list.
21de0 24 77 5d 20 73 65 74 20 5b 6c 72 65 70 6c 61 63 65 20 24 74 6b 50 72 69 76 28 69 6e 69 74 56 61 $w].set.[lreplace.$tkPriv(initVa
21e00 6c 75 65 73 29 20 32 20 33 20 5c 0a 09 09 20 20 20 20 5b 65 78 70 72 20 7b 5b 6c 69 6e 64 65 78 lues).2.3.\.......[expr.{[lindex
21e20 20 24 74 6b 50 72 69 76 28 69 6e 69 74 56 61 6c 75 65 73 29 20 32 5d 20 2b 20 24 64 65 6c 74 61 .$tkPriv(initValues).2].+.$delta
21e40 7d 5d 20 5c 0a 09 09 20 20 20 20 5b 65 78 70 72 20 7b 5b 6c 69 6e 64 65 78 20 24 74 6b 50 72 69 }].\.......[expr.{[lindex.$tkPri
21e60 76 28 69 6e 69 74 56 61 6c 75 65 73 29 20 33 5d 20 2b 20 24 64 65 6c 74 61 7d 5d 5d 0a 09 7d 0a v(initValues).3].+.$delta}]]..}.
21e80 20 20 20 20 7d 20 65 6c 73 65 20 7b 0a 09 74 6b 53 63 72 6f 6c 6c 54 6f 50 6f 73 20 24 77 20 5b ....}.else.{..tkScrollToPos.$w.[
21ea0 65 78 70 72 20 7b 24 74 6b 50 72 69 76 28 69 6e 69 74 50 6f 73 29 20 2b 20 24 64 65 6c 74 61 7d expr.{$tkPriv(initPos).+.$delta}
21ec0 5d 0a 20 20 20 20 7d 0a 7d 0a 0a 23 20 74 6b 53 63 72 6f 6c 6c 45 6e 64 44 72 61 67 20 2d 2d 0a ].....}.}..#.tkScrollEndDrag.--.
21ee0 23 20 54 68 69 73 20 70 72 6f 63 65 64 75 72 65 20 69 73 20 63 61 6c 6c 65 64 20 74 6f 20 65 6e #.This.procedure.is.called.to.en
21f00 64 20 61 6e 20 69 6e 74 65 72 61 63 74 69 76 65 20 64 72 61 67 20 6f 66 20 74 68 65 20 73 6c 69 d.an.interactive.drag.of.the.sli
21f20 64 65 72 2e 0a 23 20 49 74 20 73 63 72 6f 6c 6c 73 20 74 68 65 20 77 69 6e 64 6f 77 20 69 66 20 der..#.It.scrolls.the.window.if.
21f40 77 65 27 72 65 20 69 6e 20 6a 75 6d 70 20 6d 6f 64 65 2c 20 6f 74 68 65 72 77 69 73 65 20 69 74 we're.in.jump.mode,.otherwise.it
21f60 20 64 6f 65 73 20 6e 6f 74 68 69 6e 67 2e 0a 23 0a 23 20 41 72 67 75 6d 65 6e 74 73 3a 0a 23 20 .does.nothing..#.#.Arguments:.#.
21f80 77 20 2d 09 09 54 68 65 20 73 63 72 6f 6c 6c 62 61 72 20 77 69 64 67 65 74 2e 0a 23 20 78 2c 20 w.-..The.scrollbar.widget..#.x,.
21fa0 79 20 2d 09 54 68 65 20 6d 6f 75 73 65 20 70 6f 73 69 74 69 6f 6e 20 61 74 20 74 68 65 20 65 6e y.-.The.mouse.position.at.the.en
21fc0 64 20 6f 66 20 74 68 65 20 64 72 61 67 20 6f 70 65 72 61 74 69 6f 6e 2e 0a 0a 70 72 6f 63 20 74 d.of.the.drag.operation...proc.t
21fe0 6b 53 63 72 6f 6c 6c 45 6e 64 44 72 61 67 20 7b 77 20 78 20 79 7d 20 7b 0a 20 20 20 20 67 6c 6f kScrollEndDrag.{w.x.y}.{.....glo
22000 62 61 6c 20 74 6b 50 72 69 76 0a 0a 20 20 20 20 69 66 20 7b 5b 73 74 72 69 6e 67 20 65 71 75 61 bal.tkPriv......if.{[string.equa
22020 6c 20 24 74 6b 50 72 69 76 28 69 6e 69 74 50 6f 73 29 20 22 22 5d 7d 20 7b 0a 09 72 65 74 75 72 l.$tkPriv(initPos).""]}.{..retur
22040 6e 0a 20 20 20 20 7d 0a 20 20 20 20 69 66 20 7b 5b 24 77 20 63 67 65 74 20 2d 6a 75 6d 70 5d 7d n.....}.....if.{[$w.cget.-jump]}
22060 20 7b 0a 09 73 65 74 20 64 65 6c 74 61 20 5b 24 77 20 64 65 6c 74 61 20 5b 65 78 70 72 20 7b 24 .{..set.delta.[$w.delta.[expr.{$
22080 78 20 2d 20 24 74 6b 50 72 69 76 28 70 72 65 73 73 58 29 7d 5d 20 5c 0a 09 09 5b 65 78 70 72 20 x.-.$tkPriv(pressX)}].\...[expr.
220a0 7b 24 79 20 2d 20 24 74 6b 50 72 69 76 28 70 72 65 73 73 59 29 7d 5d 5d 0a 09 74 6b 53 63 72 6f {$y.-.$tkPriv(pressY)}]]..tkScro
220c0 6c 6c 54 6f 50 6f 73 20 24 77 20 5b 65 78 70 72 20 7b 24 74 6b 50 72 69 76 28 69 6e 69 74 50 6f llToPos.$w.[expr.{$tkPriv(initPo
220e0 73 29 20 2b 20 24 64 65 6c 74 61 7d 5d 0a 20 20 20 20 7d 0a 20 20 20 20 73 65 74 20 74 6b 50 72 s).+.$delta}].....}.....set.tkPr
22100 69 76 28 69 6e 69 74 50 6f 73 29 20 22 22 0a 7d 0a 0a 23 20 74 6b 53 63 72 6f 6c 6c 42 79 55 6e iv(initPos)."".}..#.tkScrollByUn
22120 69 74 73 20 2d 2d 0a 23 20 54 68 69 73 20 70 72 6f 63 65 64 75 72 65 20 74 65 6c 6c 73 20 74 68 its.--.#.This.procedure.tells.th
22140 65 20 73 63 72 6f 6c 6c 62 61 72 27 73 20 61 73 73 6f 63 69 61 74 65 64 20 77 69 64 67 65 74 20 e.scrollbar's.associated.widget.
22160 74 6f 20 73 63 72 6f 6c 6c 20 75 70 0a 23 20 6f 72 20 64 6f 77 6e 20 62 79 20 61 20 67 69 76 65 to.scroll.up.#.or.down.by.a.give
22180 6e 20 6e 75 6d 62 65 72 20 6f 66 20 75 6e 69 74 73 2e 20 20 49 74 20 6e 6f 74 69 66 69 65 73 20 n.number.of.units...It.notifies.
221a0 74 68 65 20 61 73 73 6f 63 69 61 74 65 64 20 77 69 64 67 65 74 0a 23 20 69 6e 20 64 69 66 66 65 the.associated.widget.#.in.diffe
221c0 72 65 6e 74 20 77 61 79 73 20 66 6f 72 20 6f 6c 64 20 61 6e 64 20 6e 65 77 20 63 6f 6d 6d 61 6e rent.ways.for.old.and.new.comman
221e0 64 20 73 79 6e 74 61 78 65 73 2e 0a 23 0a 23 20 41 72 67 75 6d 65 6e 74 73 3a 0a 23 20 77 20 2d d.syntaxes..#.#.Arguments:.#.w.-
22200 09 09 54 68 65 20 73 63 72 6f 6c 6c 62 61 72 20 77 69 64 67 65 74 2e 0a 23 20 6f 72 69 65 6e 74 ..The.scrollbar.widget..#.orient
22220 20 2d 09 57 68 69 63 68 20 6b 69 6e 64 73 20 6f 66 20 73 63 72 6f 6c 6c 62 61 72 73 20 74 68 69 .-.Which.kinds.of.scrollbars.thi
22240 73 20 61 70 70 6c 69 65 73 20 74 6f 3a 20 20 22 68 22 20 66 6f 72 0a 23 09 09 68 6f 72 69 7a 6f s.applies.to:.."h".for.#..horizo
22260 6e 74 61 6c 2c 20 22 76 22 20 66 6f 72 20 76 65 72 74 69 63 61 6c 2c 20 22 68 76 22 20 66 6f 72 ntal,."v".for.vertical,."hv".for
22280 20 62 6f 74 68 2e 0a 23 20 61 6d 6f 75 6e 74 20 2d 09 48 6f 77 20 6d 61 6e 79 20 75 6e 69 74 73 .both..#.amount.-.How.many.units
222a0 20 74 6f 20 73 63 72 6f 6c 6c 3a 20 20 74 79 70 69 63 61 6c 6c 79 20 31 20 6f 72 20 2d 31 2e 0a .to.scroll:..typically.1.or.-1..
222c0 0a 70 72 6f 63 20 74 6b 53 63 72 6f 6c 6c 42 79 55 6e 69 74 73 20 7b 77 20 6f 72 69 65 6e 74 20 .proc.tkScrollByUnits.{w.orient.
222e0 61 6d 6f 75 6e 74 7d 20 7b 0a 20 20 20 20 73 65 74 20 63 6d 64 20 5b 24 77 20 63 67 65 74 20 2d amount}.{.....set.cmd.[$w.cget.-
22300 63 6f 6d 6d 61 6e 64 5d 0a 20 20 20 20 69 66 20 7b 5b 73 74 72 69 6e 67 20 65 71 75 61 6c 20 24 command].....if.{[string.equal.$
22320 63 6d 64 20 22 22 5d 20 7c 7c 20 28 5b 73 74 72 69 6e 67 20 66 69 72 73 74 20 5c 0a 09 20 20 20 cmd.""].||.([string.first.\.....
22340 20 5b 73 74 72 69 6e 67 20 69 6e 64 65 78 20 5b 24 77 20 63 67 65 74 20 2d 6f 72 69 65 6e 74 5d .[string.index.[$w.cget.-orient]
22360 20 30 5d 20 24 6f 72 69 65 6e 74 5d 20 3c 20 30 29 7d 20 7b 0a 09 72 65 74 75 72 6e 0a 20 20 20 .0].$orient].<.0)}.{..return....
22380 20 7d 0a 20 20 20 20 73 65 74 20 69 6e 66 6f 20 5b 24 77 20 67 65 74 5d 0a 20 20 20 20 69 66 20 .}.....set.info.[$w.get].....if.
223a0 7b 5b 6c 6c 65 6e 67 74 68 20 24 69 6e 66 6f 5d 20 3d 3d 20 32 7d 20 7b 0a 09 75 70 6c 65 76 65 {[llength.$info].==.2}.{..upleve
223c0 6c 20 23 30 20 24 63 6d 64 20 73 63 72 6f 6c 6c 20 24 61 6d 6f 75 6e 74 20 75 6e 69 74 73 0a 20 l.#0.$cmd.scroll.$amount.units..
223e0 20 20 20 7d 20 65 6c 73 65 20 7b 0a 09 75 70 6c 65 76 65 6c 20 23 30 20 24 63 6d 64 20 5b 65 78 ...}.else.{..uplevel.#0.$cmd.[ex
22400 70 72 20 7b 5b 6c 69 6e 64 65 78 20 24 69 6e 66 6f 20 32 5d 20 2b 20 24 61 6d 6f 75 6e 74 7d 5d pr.{[lindex.$info.2].+.$amount}]
22420 0a 20 20 20 20 7d 0a 7d 0a 0a 23 20 74 6b 53 63 72 6f 6c 6c 42 79 50 61 67 65 73 20 2d 2d 0a 23 .....}.}..#.tkScrollByPages.--.#
22440 20 54 68 69 73 20 70 72 6f 63 65 64 75 72 65 20 74 65 6c 6c 73 20 74 68 65 20 73 63 72 6f 6c 6c .This.procedure.tells.the.scroll
22460 62 61 72 27 73 20 61 73 73 6f 63 69 61 74 65 64 20 77 69 64 67 65 74 20 74 6f 20 73 63 72 6f 6c bar's.associated.widget.to.scrol
22480 6c 20 75 70 0a 23 20 6f 72 20 64 6f 77 6e 20 62 79 20 61 20 67 69 76 65 6e 20 6e 75 6d 62 65 72 l.up.#.or.down.by.a.given.number
224a0 20 6f 66 20 73 63 72 65 65 6e 66 75 6c 73 2e 20 20 49 74 20 6e 6f 74 69 66 69 65 73 20 74 68 65 .of.screenfuls...It.notifies.the
224c0 20 61 73 73 6f 63 69 61 74 65 64 0a 23 20 77 69 64 67 65 74 20 69 6e 20 64 69 66 66 65 72 65 6e .associated.#.widget.in.differen
224e0 74 20 77 61 79 73 20 66 6f 72 20 6f 6c 64 20 61 6e 64 20 6e 65 77 20 63 6f 6d 6d 61 6e 64 20 73 t.ways.for.old.and.new.command.s
22500 79 6e 74 61 78 65 73 2e 0a 23 0a 23 20 41 72 67 75 6d 65 6e 74 73 3a 0a 23 20 77 20 2d 09 09 54 yntaxes..#.#.Arguments:.#.w.-..T
22520 68 65 20 73 63 72 6f 6c 6c 62 61 72 20 77 69 64 67 65 74 2e 0a 23 20 6f 72 69 65 6e 74 20 2d 09 he.scrollbar.widget..#.orient.-.
22540 57 68 69 63 68 20 6b 69 6e 64 73 20 6f 66 20 73 63 72 6f 6c 6c 62 61 72 73 20 74 68 69 73 20 61 Which.kinds.of.scrollbars.this.a
22560 70 70 6c 69 65 73 20 74 6f 3a 20 20 22 68 22 20 66 6f 72 0a 23 09 09 68 6f 72 69 7a 6f 6e 74 61 pplies.to:.."h".for.#..horizonta
22580 6c 2c 20 22 76 22 20 66 6f 72 20 76 65 72 74 69 63 61 6c 2c 20 22 68 76 22 20 66 6f 72 20 62 6f l,."v".for.vertical,."hv".for.bo
225a0 74 68 2e 0a 23 20 61 6d 6f 75 6e 74 20 2d 09 48 6f 77 20 6d 61 6e 79 20 73 63 72 65 65 6e 73 20 th..#.amount.-.How.many.screens.
225c0 74 6f 20 73 63 72 6f 6c 6c 3a 20 20 74 79 70 69 63 61 6c 6c 79 20 31 20 6f 72 20 2d 31 2e 0a 0a to.scroll:..typically.1.or.-1...
225e0 70 72 6f 63 20 74 6b 53 63 72 6f 6c 6c 42 79 50 61 67 65 73 20 7b 77 20 6f 72 69 65 6e 74 20 61 proc.tkScrollByPages.{w.orient.a
22600 6d 6f 75 6e 74 7d 20 7b 0a 20 20 20 20 73 65 74 20 63 6d 64 20 5b 24 77 20 63 67 65 74 20 2d 63 mount}.{.....set.cmd.[$w.cget.-c
22620 6f 6d 6d 61 6e 64 5d 0a 20 20 20 20 69 66 20 7b 5b 73 74 72 69 6e 67 20 65 71 75 61 6c 20 24 63 ommand].....if.{[string.equal.$c
22640 6d 64 20 22 22 5d 20 7c 7c 20 28 5b 73 74 72 69 6e 67 20 66 69 72 73 74 20 5c 0a 09 20 20 20 20 md.""].||.([string.first.\......
22660 5b 73 74 72 69 6e 67 20 69 6e 64 65 78 20 5b 24 77 20 63 67 65 74 20 2d 6f 72 69 65 6e 74 5d 20 [string.index.[$w.cget.-orient].
22680 30 5d 20 24 6f 72 69 65 6e 74 5d 20 3c 20 30 29 7d 20 7b 0a 09 72 65 74 75 72 6e 0a 20 20 20 20 0].$orient].<.0)}.{..return.....
226a0 7d 0a 20 20 20 20 73 65 74 20 69 6e 66 6f 20 5b 24 77 20 67 65 74 5d 0a 20 20 20 20 69 66 20 7b }.....set.info.[$w.get].....if.{
226c0 5b 6c 6c 65 6e 67 74 68 20 24 69 6e 66 6f 5d 20 3d 3d 20 32 7d 20 7b 0a 09 75 70 6c 65 76 65 6c [llength.$info].==.2}.{..uplevel
226e0 20 23 30 20 24 63 6d 64 20 73 63 72 6f 6c 6c 20 24 61 6d 6f 75 6e 74 20 70 61 67 65 73 0a 20 20 .#0.$cmd.scroll.$amount.pages...
22700 20 20 7d 20 65 6c 73 65 20 7b 0a 09 75 70 6c 65 76 65 6c 20 23 30 20 24 63 6d 64 20 5b 65 78 70 ..}.else.{..uplevel.#0.$cmd.[exp
22720 72 20 7b 5b 6c 69 6e 64 65 78 20 24 69 6e 66 6f 20 32 5d 20 2b 20 24 61 6d 6f 75 6e 74 2a 28 5b r.{[lindex.$info.2].+.$amount*([
22740 6c 69 6e 64 65 78 20 24 69 6e 66 6f 20 31 5d 20 2d 20 31 29 7d 5d 0a 20 20 20 20 7d 0a 7d 0a 0a lindex.$info.1].-.1)}].....}.}..
22760 23 20 74 6b 53 63 72 6f 6c 6c 54 6f 50 6f 73 20 2d 2d 0a 23 20 54 68 69 73 20 70 72 6f 63 65 64 #.tkScrollToPos.--.#.This.proced
22780 75 72 65 20 74 65 6c 6c 73 20 74 68 65 20 73 63 72 6f 6c 6c 62 61 72 27 73 20 61 73 73 6f 63 69 ure.tells.the.scrollbar's.associ
227a0 61 74 65 64 20 77 69 64 67 65 74 20 74 6f 20 73 63 72 6f 6c 6c 20 74 6f 0a 23 20 61 20 70 61 72 ated.widget.to.scroll.to.#.a.par
227c0 74 69 63 75 6c 61 72 20 6c 6f 63 61 74 69 6f 6e 2c 20 67 69 76 65 6e 20 62 79 20 61 20 66 72 61 ticular.location,.given.by.a.fra
227e0 63 74 69 6f 6e 20 62 65 74 77 65 65 6e 20 30 20 61 6e 64 20 31 2e 20 20 49 74 20 6e 6f 74 69 66 ction.between.0.and.1...It.notif
22800 69 65 73 0a 23 20 74 68 65 20 61 73 73 6f 63 69 61 74 65 64 20 77 69 64 67 65 74 20 69 6e 20 64 ies.#.the.associated.widget.in.d
22820 69 66 66 65 72 65 6e 74 20 77 61 79 73 20 66 6f 72 20 6f 6c 64 20 61 6e 64 20 6e 65 77 20 63 6f ifferent.ways.for.old.and.new.co
22840 6d 6d 61 6e 64 20 73 79 6e 74 61 78 65 73 2e 0a 23 0a 23 20 41 72 67 75 6d 65 6e 74 73 3a 0a 23 mmand.syntaxes..#.#.Arguments:.#
22860 20 77 20 2d 09 09 54 68 65 20 73 63 72 6f 6c 6c 62 61 72 20 77 69 64 67 65 74 2e 0a 23 20 70 6f .w.-..The.scrollbar.widget..#.po
22880 73 20 2d 09 09 41 20 66 72 61 63 74 69 6f 6e 20 62 65 74 77 65 65 6e 20 30 20 61 6e 64 20 31 20 s.-..A.fraction.between.0.and.1.
228a0 69 6e 64 69 63 61 74 69 6e 67 20 61 20 64 65 73 69 72 65 64 20 70 6f 73 69 74 69 6f 6e 0a 23 09 indicating.a.desired.position.#.
228c0 09 69 6e 20 74 68 65 20 64 6f 63 75 6d 65 6e 74 2e 0a 0a 70 72 6f 63 20 74 6b 53 63 72 6f 6c 6c .in.the.document...proc.tkScroll
228e0 54 6f 50 6f 73 20 7b 77 20 70 6f 73 7d 20 7b 0a 20 20 20 20 73 65 74 20 63 6d 64 20 5b 24 77 20 ToPos.{w.pos}.{.....set.cmd.[$w.
22900 63 67 65 74 20 2d 63 6f 6d 6d 61 6e 64 5d 0a 20 20 20 20 69 66 20 7b 5b 73 74 72 69 6e 67 20 65 cget.-command].....if.{[string.e
22920 71 75 61 6c 20 24 63 6d 64 20 22 22 5d 7d 20 7b 0a 09 72 65 74 75 72 6e 0a 20 20 20 20 7d 0a 20 qual.$cmd.""]}.{..return.....}..
22940 20 20 20 73 65 74 20 69 6e 66 6f 20 5b 24 77 20 67 65 74 5d 0a 20 20 20 20 69 66 20 7b 5b 6c 6c ...set.info.[$w.get].....if.{[ll
22960 65 6e 67 74 68 20 24 69 6e 66 6f 5d 20 3d 3d 20 32 7d 20 7b 0a 09 75 70 6c 65 76 65 6c 20 23 30 ength.$info].==.2}.{..uplevel.#0
22980 20 24 63 6d 64 20 6d 6f 76 65 74 6f 20 24 70 6f 73 0a 20 20 20 20 7d 20 65 6c 73 65 20 7b 0a 09 .$cmd.moveto.$pos.....}.else.{..
229a0 75 70 6c 65 76 65 6c 20 23 30 20 24 63 6d 64 20 5b 65 78 70 72 20 7b 72 6f 75 6e 64 28 5b 6c 69 uplevel.#0.$cmd.[expr.{round([li
229c0 6e 64 65 78 20 24 69 6e 66 6f 20 30 5d 2a 24 70 6f 73 29 7d 5d 0a 20 20 20 20 7d 0a 7d 0a 0a 23 ndex.$info.0]*$pos)}].....}.}..#
229e0 20 74 6b 53 63 72 6f 6c 6c 54 6f 70 42 6f 74 74 6f 6d 0a 23 20 53 63 72 6f 6c 6c 20 74 6f 20 74 .tkScrollTopBottom.#.Scroll.to.t
22a00 68 65 20 74 6f 70 20 6f 72 20 62 6f 74 74 6f 6d 20 6f 66 20 74 68 65 20 64 6f 63 75 6d 65 6e 74 he.top.or.bottom.of.the.document
22a20 2c 20 64 65 70 65 6e 64 69 6e 67 20 6f 6e 20 74 68 65 20 6d 6f 75 73 65 0a 23 20 70 6f 73 69 74 ,.depending.on.the.mouse.#.posit
22a40 69 6f 6e 2e 0a 23 0a 23 20 41 72 67 75 6d 65 6e 74 73 3a 0a 23 20 77 20 2d 09 09 54 68 65 20 73 ion..#.#.Arguments:.#.w.-..The.s
22a60 63 72 6f 6c 6c 62 61 72 20 77 69 64 67 65 74 2e 0a 23 20 78 2c 20 79 20 2d 09 4d 6f 75 73 65 20 crollbar.widget..#.x,.y.-.Mouse.
22a80 63 6f 6f 72 64 69 6e 61 74 65 73 20 77 69 74 68 69 6e 20 74 68 65 20 77 69 64 67 65 74 2e 0a 0a coordinates.within.the.widget...
22aa0 70 72 6f 63 20 74 6b 53 63 72 6f 6c 6c 54 6f 70 42 6f 74 74 6f 6d 20 7b 77 20 78 20 79 7d 20 7b proc.tkScrollTopBottom.{w.x.y}.{
22ac0 0a 20 20 20 20 67 6c 6f 62 61 6c 20 74 6b 50 72 69 76 0a 20 20 20 20 73 65 74 20 65 6c 65 6d 65 .....global.tkPriv.....set.eleme
22ae0 6e 74 20 5b 24 77 20 69 64 65 6e 74 69 66 79 20 24 78 20 24 79 5d 0a 20 20 20 20 69 66 20 7b 5b nt.[$w.identify.$x.$y].....if.{[
22b00 73 74 72 69 6e 67 20 6d 61 74 63 68 20 2a 31 20 24 65 6c 65 6d 65 6e 74 5d 7d 20 7b 0a 09 74 6b string.match.*1.$element]}.{..tk
22b20 53 63 72 6f 6c 6c 54 6f 50 6f 73 20 24 77 20 30 0a 20 20 20 20 7d 20 65 6c 73 65 69 66 20 7b 5b ScrollToPos.$w.0.....}.elseif.{[
22b40 73 74 72 69 6e 67 20 6d 61 74 63 68 20 2a 32 20 24 65 6c 65 6d 65 6e 74 5d 7d 20 7b 0a 09 74 6b string.match.*2.$element]}.{..tk
22b60 53 63 72 6f 6c 6c 54 6f 50 6f 73 20 24 77 20 31 0a 20 20 20 20 7d 0a 0a 20 20 20 20 23 20 53 65 ScrollToPos.$w.1.....}......#.Se
22b80 74 20 74 6b 50 72 69 76 28 72 65 6c 69 65 66 29 2c 20 73 69 6e 63 65 20 69 74 27 73 20 6e 65 65 t.tkPriv(relief),.since.it's.nee
22ba0 64 65 64 20 62 79 20 74 6b 53 63 72 6f 6c 6c 42 75 74 74 6f 6e 55 70 2e 0a 0a 20 20 20 20 73 65 ded.by.tkScrollButtonUp.......se
22bc0 74 20 74 6b 50 72 69 76 28 72 65 6c 69 65 66 29 20 5b 24 77 20 63 67 65 74 20 2d 61 63 74 69 76 t.tkPriv(relief).[$w.cget.-activ
22be0 65 72 65 6c 69 65 66 5d 0a 7d 0a 0a 23 20 74 6b 53 63 72 6f 6c 6c 42 75 74 74 6f 6e 32 44 6f 77 erelief].}..#.tkScrollButton2Dow
22c00 6e 0a 23 20 54 68 69 73 20 70 72 6f 63 65 64 75 72 65 20 69 73 20 69 6e 76 6f 6b 65 64 20 77 68 n.#.This.procedure.is.invoked.wh
22c20 65 6e 20 62 75 74 74 6f 6e 20 32 20 69 73 20 70 72 65 73 73 65 64 20 6f 76 65 72 20 61 20 73 63 en.button.2.is.pressed.over.a.sc
22c40 72 6f 6c 6c 62 61 72 2e 0a 23 20 49 66 20 74 68 65 20 62 75 74 74 6f 6e 20 69 73 20 6f 76 65 72 rollbar..#.If.the.button.is.over
22c60 20 74 68 65 20 74 72 6f 75 67 68 20 6f 72 20 73 6c 69 64 65 72 2c 20 69 74 20 73 65 74 73 20 74 .the.trough.or.slider,.it.sets.t
22c80 68 65 20 73 63 72 6f 6c 6c 62 61 72 20 74 6f 0a 23 20 74 68 65 20 6d 6f 75 73 65 20 70 6f 73 69 he.scrollbar.to.#.the.mouse.posi
22ca0 74 69 6f 6e 20 61 6e 64 20 73 74 61 72 74 73 20 61 20 73 6c 69 64 65 72 20 64 72 61 67 2e 20 20 tion.and.starts.a.slider.drag...
22cc0 4f 74 68 65 72 77 69 73 65 20 69 74 20 6a 75 73 74 0a 23 20 62 65 68 61 76 65 73 20 74 68 65 20 Otherwise.it.just.#.behaves.the.
22ce0 73 61 6d 65 20 61 73 20 62 75 74 74 6f 6e 20 31 2e 0a 23 0a 23 20 41 72 67 75 6d 65 6e 74 73 3a same.as.button.1..#.#.Arguments:
22d00 0a 23 20 77 20 2d 09 09 54 68 65 20 73 63 72 6f 6c 6c 62 61 72 20 77 69 64 67 65 74 2e 0a 23 20 .#.w.-..The.scrollbar.widget..#.
22d20 78 2c 20 79 20 2d 09 4d 6f 75 73 65 20 63 6f 6f 72 64 69 6e 61 74 65 73 20 77 69 74 68 69 6e 20 x,.y.-.Mouse.coordinates.within.
22d40 74 68 65 20 77 69 64 67 65 74 2e 0a 0a 70 72 6f 63 20 74 6b 53 63 72 6f 6c 6c 42 75 74 74 6f 6e the.widget...proc.tkScrollButton
22d60 32 44 6f 77 6e 20 7b 77 20 78 20 79 7d 20 7b 0a 20 20 20 20 67 6c 6f 62 61 6c 20 74 6b 50 72 69 2Down.{w.x.y}.{.....global.tkPri
22d80 76 0a 20 20 20 20 73 65 74 20 65 6c 65 6d 65 6e 74 20 5b 24 77 20 69 64 65 6e 74 69 66 79 20 24 v.....set.element.[$w.identify.$
22da0 78 20 24 79 5d 0a 20 20 20 20 69 66 20 7b 5b 73 74 72 69 6e 67 20 6d 61 74 63 68 20 7b 61 72 72 x.$y].....if.{[string.match.{arr
22dc0 6f 77 5b 31 32 5d 7d 20 24 65 6c 65 6d 65 6e 74 5d 7d 20 7b 0a 09 74 6b 53 63 72 6f 6c 6c 42 75 ow[12]}.$element]}.{..tkScrollBu
22de0 74 74 6f 6e 44 6f 77 6e 20 24 77 20 24 78 20 24 79 0a 09 72 65 74 75 72 6e 0a 20 20 20 20 7d 0a ttonDown.$w.$x.$y..return.....}.
22e00 20 20 20 20 74 6b 53 63 72 6f 6c 6c 54 6f 50 6f 73 20 24 77 20 5b 24 77 20 66 72 61 63 74 69 6f ....tkScrollToPos.$w.[$w.fractio
22e20 6e 20 24 78 20 24 79 5d 0a 20 20 20 20 73 65 74 20 74 6b 50 72 69 76 28 72 65 6c 69 65 66 29 20 n.$x.$y].....set.tkPriv(relief).
22e40 5b 24 77 20 63 67 65 74 20 2d 61 63 74 69 76 65 72 65 6c 69 65 66 5d 0a 0a 20 20 20 20 23 20 4e [$w.cget.-activerelief]......#.N
22e60 65 65 64 20 74 68 65 20 22 75 70 64 61 74 65 20 69 64 6c 65 74 61 73 6b 73 22 20 62 65 6c 6f 77 eed.the."update.idletasks".below
22e80 20 73 6f 20 74 68 61 74 20 74 68 65 20 77 69 64 67 65 74 20 63 61 6c 6c 73 20 75 73 0a 20 20 20 .so.that.the.widget.calls.us....
22ea0 20 23 20 62 61 63 6b 20 74 6f 20 72 65 73 65 74 20 74 68 65 20 61 63 74 75 61 6c 20 73 63 72 6f .#.back.to.reset.the.actual.scro
22ec0 6c 6c 62 61 72 20 70 6f 73 69 74 69 6f 6e 20 62 65 66 6f 72 65 20 77 65 20 73 74 61 72 74 20 74 llbar.position.before.we.start.t
22ee0 68 65 0a 20 20 20 20 23 20 73 6c 69 64 65 72 20 64 72 61 67 2e 0a 0a 20 20 20 20 75 70 64 61 74 he.....#.slider.drag.......updat
22f00 65 20 69 64 6c 65 74 61 73 6b 73 0a 20 20 20 20 24 77 20 63 6f 6e 66 69 67 75 72 65 20 2d 61 63 e.idletasks.....$w.configure.-ac
22f20 74 69 76 65 72 65 6c 69 65 66 20 73 75 6e 6b 65 6e 0a 20 20 20 20 24 77 20 61 63 74 69 76 61 74 tiverelief.sunken.....$w.activat
22f40 65 20 73 6c 69 64 65 72 0a 20 20 20 20 74 6b 53 63 72 6f 6c 6c 53 74 61 72 74 44 72 61 67 20 24 e.slider.....tkScrollStartDrag.$
22f60 77 20 24 78 20 24 79 0a 7d 0a 00 00 12 31 23 20 74 65 61 72 6f 66 66 2e 74 63 6c 20 2d 2d 0a 23 w.$x.$y.}....1#.tearoff.tcl.--.#
22f80 0a 23 20 54 68 69 73 20 66 69 6c 65 20 63 6f 6e 74 61 69 6e 73 20 70 72 6f 63 65 64 75 72 65 73 .#.This.file.contains.procedures
22fa0 20 74 68 61 74 20 69 6d 70 6c 65 6d 65 6e 74 20 74 65 61 72 2d 6f 66 66 20 6d 65 6e 75 73 2e 0a .that.implement.tear-off.menus..
22fc0 23 0a 23 20 52 43 53 3a 20 40 28 23 29 20 24 49 64 3a 20 74 65 61 72 6f 66 66 2e 74 63 6c 2c 76 #.#.RCS:.@(#).$Id:.tearoff.tcl,v
22fe0 20 31 2e 36 20 32 30 30 30 2f 30 31 2f 30 36 20 30 32 3a 32 32 3a 32 34 20 68 6f 62 62 73 20 45 .1.6.2000/01/06.02:22:24.hobbs.E
23000 78 70 20 24 0a 23 0a 23 20 43 6f 70 79 72 69 67 68 74 20 28 63 29 20 31 39 39 34 20 54 68 65 20 xp.$.#.#.Copyright.(c).1994.The.
23020 52 65 67 65 6e 74 73 20 6f 66 20 74 68 65 20 55 6e 69 76 65 72 73 69 74 79 20 6f 66 20 43 61 6c Regents.of.the.University.of.Cal
23040 69 66 6f 72 6e 69 61 2e 0a 23 20 43 6f 70 79 72 69 67 68 74 20 28 63 29 20 31 39 39 34 2d 31 39 ifornia..#.Copyright.(c).1994-19
23060 39 37 20 53 75 6e 20 4d 69 63 72 6f 73 79 73 74 65 6d 73 2c 20 49 6e 63 2e 0a 23 0a 23 20 53 65 97.Sun.Microsystems,.Inc..#.#.Se
23080 65 20 74 68 65 20 66 69 6c 65 20 22 6c 69 63 65 6e 73 65 2e 74 65 72 6d 73 22 20 66 6f 72 20 69 e.the.file."license.terms".for.i
230a0 6e 66 6f 72 6d 61 74 69 6f 6e 20 6f 6e 20 75 73 61 67 65 20 61 6e 64 20 72 65 64 69 73 74 72 69 nformation.on.usage.and.redistri
230c0 62 75 74 69 6f 6e 0a 23 20 6f 66 20 74 68 69 73 20 66 69 6c 65 2c 20 61 6e 64 20 66 6f 72 20 61 bution.#.of.this.file,.and.for.a
230e0 20 44 49 53 43 4c 41 49 4d 45 52 20 4f 46 20 41 4c 4c 20 57 41 52 52 41 4e 54 49 45 53 2e 0a 23 .DISCLAIMER.OF.ALL.WARRANTIES..#
23100 0a 0a 23 20 74 6b 54 65 61 72 6f 66 66 4d 65 6e 75 20 2d 2d 0a 23 20 47 69 76 65 6e 20 74 68 65 ..#.tkTearoffMenu.--.#.Given.the
23120 20 6e 61 6d 65 20 6f 66 20 61 20 6d 65 6e 75 2c 20 74 68 69 73 20 70 72 6f 63 65 64 75 72 65 20 .name.of.a.menu,.this.procedure.
23140 63 72 65 61 74 65 73 20 61 20 74 6f 72 6e 2d 6f 66 66 20 6d 65 6e 75 0a 23 20 74 68 61 74 20 69 creates.a.torn-off.menu.#.that.i
23160 73 20 69 64 65 6e 74 69 63 61 6c 20 74 6f 20 74 68 65 20 67 69 76 65 6e 20 6d 65 6e 75 20 28 69 s.identical.to.the.given.menu.(i
23180 6e 63 6c 75 64 69 6e 67 20 6e 65 73 74 65 64 20 73 75 62 6d 65 6e 75 73 29 2e 0a 23 20 54 68 65 ncluding.nested.submenus)..#.The
231a0 20 6e 65 77 20 74 6f 72 6e 2d 6f 66 66 20 6d 65 6e 75 20 65 78 69 73 74 73 20 61 73 20 61 20 74 .new.torn-off.menu.exists.as.a.t
231c0 6f 70 6c 65 76 65 6c 20 77 69 6e 64 6f 77 20 6d 61 6e 61 67 65 64 20 62 79 20 74 68 65 0a 23 20 oplevel.window.managed.by.the.#.
231e0 77 69 6e 64 6f 77 20 6d 61 6e 61 67 65 72 2e 20 20 54 68 65 20 72 65 74 75 72 6e 20 76 61 6c 75 window.manager...The.return.valu
23200 65 20 69 73 20 74 68 65 20 6e 61 6d 65 20 6f 66 20 74 68 65 20 6e 65 77 20 6d 65 6e 75 2e 0a 23 e.is.the.name.of.the.new.menu..#
23220 20 54 68 65 20 77 69 6e 64 6f 77 20 69 73 20 63 72 65 61 74 65 64 20 61 74 20 74 68 65 20 70 6f .The.window.is.created.at.the.po
23240 69 6e 74 20 73 70 65 63 69 66 69 65 64 20 62 79 20 78 20 61 6e 64 20 79 0a 23 0a 23 20 41 72 67 int.specified.by.x.and.y.#.#.Arg
23260 75 6d 65 6e 74 73 3a 0a 23 20 77 20 2d 09 09 09 54 68 65 20 6d 65 6e 75 20 74 6f 20 62 65 20 74 uments:.#.w.-...The.menu.to.be.t
23280 6f 72 6e 2d 6f 66 66 20 28 64 75 70 6c 69 63 61 74 65 64 29 2e 0a 23 20 78 20 2d 09 09 09 78 20 orn-off.(duplicated)..#.x.-...x.
232a0 63 6f 6f 72 64 69 6e 61 74 65 20 77 68 65 72 65 20 77 69 6e 64 6f 77 20 69 73 20 63 72 65 61 74 coordinate.where.window.is.creat
232c0 65 64 0a 23 20 79 20 2d 09 09 09 79 20 63 6f 6f 72 64 69 6e 61 74 65 20 77 68 65 72 65 20 77 69 ed.#.y.-...y.coordinate.where.wi
232e0 6e 64 6f 77 20 69 73 20 63 72 65 61 74 65 64 0a 0a 70 72 6f 63 20 74 6b 54 65 61 72 4f 66 66 4d ndow.is.created..proc.tkTearOffM
23300 65 6e 75 20 7b 77 20 7b 78 20 30 7d 20 7b 79 20 30 7d 7d 20 7b 0a 20 20 20 20 23 20 46 69 6e 64 enu.{w.{x.0}.{y.0}}.{.....#.Find
23320 20 61 20 75 6e 69 71 75 65 20 6e 61 6d 65 20 74 6f 20 75 73 65 20 66 6f 72 20 74 68 65 20 74 6f .a.unique.name.to.use.for.the.to
23340 72 6e 2d 6f 66 66 20 6d 65 6e 75 2e 20 20 46 69 6e 64 20 74 68 65 20 66 69 72 73 74 0a 20 20 20 rn-off.menu...Find.the.first....
23360 20 23 20 61 6e 63 65 73 74 6f 72 20 6f 66 20 77 20 74 68 61 74 20 69 73 20 61 20 74 6f 70 6c 65 .#.ancestor.of.w.that.is.a.tople
23380 76 65 6c 20 62 75 74 20 6e 6f 74 20 61 20 6d 65 6e 75 2c 20 61 6e 64 20 75 73 65 20 74 68 69 73 vel.but.not.a.menu,.and.use.this
233a0 20 61 73 0a 20 20 20 20 23 20 74 68 65 20 70 61 72 65 6e 74 20 6f 66 20 74 68 65 20 6e 65 77 20 .as.....#.the.parent.of.the.new.
233c0 6d 65 6e 75 2e 20 20 54 68 69 73 20 67 75 61 72 61 6e 74 65 65 73 20 74 68 61 74 20 74 68 65 20 menu...This.guarantees.that.the.
233e0 74 6f 72 6e 20 6f 66 66 0a 20 20 20 20 23 20 6d 65 6e 75 20 77 69 6c 6c 20 62 65 20 6f 6e 20 74 torn.off.....#.menu.will.be.on.t
23400 68 65 20 73 61 6d 65 20 73 63 72 65 65 6e 20 61 73 20 74 68 65 20 6f 72 69 67 69 6e 61 6c 20 6d he.same.screen.as.the.original.m
23420 65 6e 75 2e 20 20 42 79 20 6d 61 6b 69 6e 67 0a 20 20 20 20 23 20 69 74 20 61 20 63 68 69 6c 64 enu...By.making.....#.it.a.child
23440 20 6f 66 20 74 68 65 20 61 6e 63 65 73 74 6f 72 2c 20 72 61 74 68 65 72 20 74 68 61 6e 20 61 20 .of.the.ancestor,.rather.than.a.
23460 63 68 69 6c 64 20 6f 66 20 74 68 65 20 6d 65 6e 75 2c 20 69 74 0a 20 20 20 20 23 20 63 61 6e 20 child.of.the.menu,.it.....#.can.
23480 63 6f 6e 74 69 6e 75 65 20 74 6f 20 6c 69 76 65 20 65 76 65 6e 20 69 66 20 74 68 65 20 6d 65 6e continue.to.live.even.if.the.men
234a0 75 20 69 73 20 64 65 6c 65 74 65 64 3b 20 20 69 74 20 77 69 6c 6c 20 67 6f 0a 20 20 20 20 23 20 u.is.deleted;..it.will.go.....#.
234c0 61 77 61 79 20 77 68 65 6e 20 74 68 65 20 74 6f 70 6c 65 76 65 6c 20 67 6f 65 73 20 61 77 61 79 away.when.the.toplevel.goes.away
234e0 2e 0a 0a 20 20 20 20 69 66 20 7b 24 78 20 3d 3d 20 30 7d 20 7b 0a 20 20 20 20 09 73 65 74 20 78 .......if.{$x.==.0}.{......set.x
23500 20 5b 77 69 6e 66 6f 20 72 6f 6f 74 78 20 24 77 5d 0a 20 20 20 20 7d 0a 20 20 20 20 69 66 20 7b .[winfo.rootx.$w].....}.....if.{
23520 24 79 20 3d 3d 20 30 7d 20 7b 0a 20 20 20 20 09 73 65 74 20 79 20 5b 77 69 6e 66 6f 20 72 6f 6f $y.==.0}.{......set.y.[winfo.roo
23540 74 79 20 24 77 5d 0a 20 20 20 20 7d 0a 0a 20 20 20 20 73 65 74 20 70 61 72 65 6e 74 20 5b 77 69 ty.$w].....}......set.parent.[wi
23560 6e 66 6f 20 70 61 72 65 6e 74 20 24 77 5d 0a 20 20 20 20 77 68 69 6c 65 20 7b 5b 73 74 72 69 6e nfo.parent.$w].....while.{[strin
23580 67 20 63 6f 6d 70 61 72 65 20 5b 77 69 6e 66 6f 20 74 6f 70 6c 65 76 65 6c 20 24 70 61 72 65 6e g.compare.[winfo.toplevel.$paren
235a0 74 5d 20 24 70 61 72 65 6e 74 5d 20 5c 0a 09 20 20 20 20 7c 7c 20 5b 73 74 72 69 6e 67 20 65 71 t].$parent].\......||.[string.eq
235c0 75 61 6c 20 5b 77 69 6e 66 6f 20 63 6c 61 73 73 20 24 70 61 72 65 6e 74 5d 20 22 4d 65 6e 75 22 ual.[winfo.class.$parent]."Menu"
235e0 5d 7d 20 7b 0a 09 73 65 74 20 70 61 72 65 6e 74 20 5b 77 69 6e 66 6f 20 70 61 72 65 6e 74 20 24 ]}.{..set.parent.[winfo.parent.$
23600 70 61 72 65 6e 74 5d 0a 20 20 20 20 7d 0a 20 20 20 20 69 66 20 7b 5b 73 74 72 69 6e 67 20 65 71 parent].....}.....if.{[string.eq
23620 75 61 6c 20 24 70 61 72 65 6e 74 20 22 2e 22 5d 7d 20 7b 0a 09 73 65 74 20 70 61 72 65 6e 74 20 ual.$parent."."]}.{..set.parent.
23640 22 22 0a 20 20 20 20 7d 0a 20 20 20 20 66 6f 72 20 7b 73 65 74 20 69 20 31 7d 20 31 20 7b 69 6e "".....}.....for.{set.i.1}.1.{in
23660 63 72 20 69 7d 20 7b 0a 09 73 65 74 20 6d 65 6e 75 20 24 70 61 72 65 6e 74 2e 74 65 61 72 6f 66 cr.i}.{..set.menu.$parent.tearof
23680 66 24 69 0a 09 69 66 20 7b 21 5b 77 69 6e 66 6f 20 65 78 69 73 74 73 20 24 6d 65 6e 75 5d 7d 20 f$i..if.{![winfo.exists.$menu]}.
236a0 7b 0a 09 20 20 20 20 62 72 65 61 6b 0a 09 7d 0a 20 20 20 20 7d 0a 0a 20 20 20 20 24 77 20 63 6c {......break..}.....}......$w.cl
236c0 6f 6e 65 20 24 6d 65 6e 75 20 74 65 61 72 6f 66 66 0a 0a 20 20 20 20 23 20 50 69 63 6b 20 61 20 one.$menu.tearoff......#.Pick.a.
236e0 74 69 74 6c 65 20 66 6f 72 20 74 68 65 20 6e 65 77 20 6d 65 6e 75 20 62 79 20 6c 6f 6f 6b 69 6e title.for.the.new.menu.by.lookin
23700 67 20 61 74 20 74 68 65 20 70 61 72 65 6e 74 20 6f 66 20 74 68 65 0a 20 20 20 20 23 20 6f 72 69 g.at.the.parent.of.the.....#.ori
23720 67 69 6e 61 6c 3a 20 69 66 20 74 68 65 20 70 61 72 65 6e 74 20 69 73 20 61 20 6d 65 6e 75 2c 20 ginal:.if.the.parent.is.a.menu,.
23740 74 68 65 6e 20 75 73 65 20 74 68 65 20 74 65 78 74 20 6f 66 20 74 68 65 20 61 63 74 69 76 65 0a then.use.the.text.of.the.active.
23760 20 20 20 20 23 20 65 6e 74 72 79 2e 20 20 49 66 20 69 74 27 73 20 61 20 6d 65 6e 75 62 75 74 74 ....#.entry...If.it's.a.menubutt
23780 6f 6e 20 74 68 65 6e 20 75 73 65 20 69 74 73 20 74 65 78 74 2e 0a 0a 20 20 20 20 73 65 74 20 70 on.then.use.its.text.......set.p
237a0 61 72 65 6e 74 20 5b 77 69 6e 66 6f 20 70 61 72 65 6e 74 20 24 77 5d 0a 20 20 20 20 69 66 20 7b arent.[winfo.parent.$w].....if.{
237c0 5b 73 74 72 69 6e 67 20 63 6f 6d 70 61 72 65 20 5b 24 6d 65 6e 75 20 63 67 65 74 20 2d 74 69 74 [string.compare.[$menu.cget.-tit
237e0 6c 65 5d 20 22 22 5d 7d 20 7b 0a 20 20 20 20 09 77 6d 20 74 69 74 6c 65 20 24 6d 65 6e 75 20 5b le].""]}.{......wm.title.$menu.[
23800 24 6d 65 6e 75 20 63 67 65 74 20 2d 74 69 74 6c 65 5d 0a 20 20 20 20 7d 20 65 6c 73 65 20 7b 0a $menu.cget.-title].....}.else.{.
23820 20 20 20 20 09 73 77 69 74 63 68 20 5b 77 69 6e 66 6f 20 63 6c 61 73 73 20 24 70 61 72 65 6e 74 .....switch.[winfo.class.$parent
23840 5d 20 7b 0a 09 20 20 20 20 4d 65 6e 75 62 75 74 74 6f 6e 20 7b 0a 09 20 20 20 20 09 77 6d 20 74 ].{......Menubutton.{.......wm.t
23860 69 74 6c 65 20 24 6d 65 6e 75 20 5b 24 70 61 72 65 6e 74 20 63 67 65 74 20 2d 74 65 78 74 5d 0a itle.$menu.[$parent.cget.-text].
23880 09 20 20 20 20 7d 0a 09 20 20 20 20 4d 65 6e 75 20 7b 0a 09 20 20 20 20 09 77 6d 20 74 69 74 6c .....}......Menu.{.......wm.titl
238a0 65 20 24 6d 65 6e 75 20 5b 24 70 61 72 65 6e 74 20 65 6e 74 72 79 63 67 65 74 20 61 63 74 69 76 e.$menu.[$parent.entrycget.activ
238c0 65 20 2d 6c 61 62 65 6c 5d 0a 09 20 20 20 20 7d 0a 09 7d 0a 20 20 20 20 7d 0a 0a 20 20 20 20 24 e.-label]......}..}.....}......$
238e0 6d 65 6e 75 20 70 6f 73 74 20 24 78 20 24 79 0a 0a 20 20 20 20 69 66 20 7b 5b 77 69 6e 66 6f 20 menu.post.$x.$y......if.{[winfo.
23900 65 78 69 73 74 73 20 24 6d 65 6e 75 5d 20 3d 3d 20 30 7d 20 7b 0a 09 72 65 74 75 72 6e 20 22 22 exists.$menu].==.0}.{..return.""
23920 0a 20 20 20 20 7d 0a 0a 20 20 20 20 23 20 53 65 74 20 74 6b 50 72 69 76 28 66 6f 63 75 73 29 20 .....}......#.Set.tkPriv(focus).
23940 6f 6e 20 65 6e 74 72 79 3a 20 20 6f 74 68 65 72 77 69 73 65 20 74 68 65 20 66 6f 63 75 73 20 77 on.entry:..otherwise.the.focus.w
23960 69 6c 6c 20 67 65 74 20 6c 6f 73 74 0a 20 20 20 20 23 20 61 66 74 65 72 20 6b 65 79 62 6f 61 72 ill.get.lost.....#.after.keyboar
23980 64 20 69 6e 76 6f 63 61 74 69 6f 6e 20 6f 66 20 61 20 73 75 62 2d 6d 65 6e 75 20 28 69 74 20 77 d.invocation.of.a.sub-menu.(it.w
239a0 69 6c 6c 20 73 74 61 79 20 6f 6e 20 74 68 65 0a 20 20 20 20 23 20 73 75 62 6d 65 6e 75 29 2e 0a ill.stay.on.the.....#.submenu)..
239c0 0a 20 20 20 20 62 69 6e 64 20 24 6d 65 6e 75 20 3c 45 6e 74 65 72 3e 20 7b 0a 09 73 65 74 20 74 .....bind.$menu.<Enter>.{..set.t
239e0 6b 50 72 69 76 28 66 6f 63 75 73 29 20 25 57 0a 20 20 20 20 7d 0a 0a 20 20 20 20 23 20 49 66 20 kPriv(focus).%W.....}......#.If.
23a00 74 68 65 72 65 20 69 73 20 61 20 2d 74 65 61 72 6f 66 66 63 6f 6d 6d 61 6e 64 20 6f 70 74 69 6f there.is.a.-tearoffcommand.optio
23a20 6e 20 66 6f 72 20 74 68 65 20 6d 65 6e 75 2c 20 69 6e 76 6f 6b 65 20 69 74 0a 20 20 20 20 23 20 n.for.the.menu,.invoke.it.....#.
23a40 6e 6f 77 2e 0a 0a 20 20 20 20 73 65 74 20 63 6d 64 20 5b 24 77 20 63 67 65 74 20 2d 74 65 61 72 now.......set.cmd.[$w.cget.-tear
23a60 6f 66 66 63 6f 6d 6d 61 6e 64 5d 0a 20 20 20 20 69 66 20 7b 5b 73 74 72 69 6e 67 20 63 6f 6d 70 offcommand].....if.{[string.comp
23a80 61 72 65 20 24 63 6d 64 20 22 22 5d 7d 20 7b 0a 09 75 70 6c 65 76 65 6c 20 23 30 20 24 63 6d 64 are.$cmd.""]}.{..uplevel.#0.$cmd
23aa0 20 5b 6c 69 73 74 20 24 77 20 24 6d 65 6e 75 5d 0a 20 20 20 20 7d 0a 20 20 20 20 72 65 74 75 72 .[list.$w.$menu].....}.....retur
23ac0 6e 20 24 6d 65 6e 75 0a 7d 0a 0a 23 20 74 6b 4d 65 6e 75 44 75 70 20 2d 2d 0a 23 20 47 69 76 65 n.$menu.}..#.tkMenuDup.--.#.Give
23ae0 6e 20 61 20 6d 65 6e 75 20 28 68 69 65 72 61 72 63 68 79 29 2c 20 63 72 65 61 74 65 20 61 20 64 n.a.menu.(hierarchy),.create.a.d
23b00 75 70 6c 69 63 61 74 65 20 6d 65 6e 75 20 28 68 69 65 72 61 72 63 68 79 29 0a 23 20 69 6e 20 61 uplicate.menu.(hierarchy).#.in.a
23b20 20 67 69 76 65 6e 20 77 69 6e 64 6f 77 2e 0a 23 0a 23 20 41 72 67 75 6d 65 6e 74 73 3a 0a 23 20 .given.window..#.#.Arguments:.#.
23b40 73 72 63 20 2d 09 09 09 53 6f 75 72 63 65 20 77 69 6e 64 6f 77 2e 20 20 4d 75 73 74 20 62 65 20 src.-...Source.window...Must.be.
23b60 61 20 6d 65 6e 75 2e 20 20 49 74 20 61 6e 64 20 69 74 73 0a 23 09 09 09 6d 65 6e 75 20 64 65 73 a.menu...It.and.its.#...menu.des
23b80 63 65 6e 64 61 6e 74 73 20 77 69 6c 6c 20 62 65 20 64 75 70 6c 69 63 61 74 65 64 20 61 74 20 64 cendants.will.be.duplicated.at.d
23ba0 73 74 2e 0a 23 20 64 73 74 20 2d 09 09 09 4e 61 6d 65 20 74 6f 20 75 73 65 20 66 6f 72 20 74 6f st..#.dst.-...Name.to.use.for.to
23bc0 70 6d 6f 73 74 20 6d 65 6e 75 20 69 6e 20 64 75 70 6c 69 63 61 74 65 0a 23 09 09 09 68 69 65 72 pmost.menu.in.duplicate.#...hier
23be0 61 72 63 68 79 2e 0a 0a 70 72 6f 63 20 74 6b 4d 65 6e 75 44 75 70 20 7b 73 72 63 20 64 73 74 20 archy...proc.tkMenuDup.{src.dst.
23c00 74 79 70 65 7d 20 7b 0a 20 20 20 20 73 65 74 20 63 6d 64 20 5b 6c 69 73 74 20 6d 65 6e 75 20 24 type}.{.....set.cmd.[list.menu.$
23c20 64 73 74 20 2d 74 79 70 65 20 24 74 79 70 65 5d 0a 20 20 20 20 66 6f 72 65 61 63 68 20 6f 70 74 dst.-type.$type].....foreach.opt
23c40 69 6f 6e 20 5b 24 73 72 63 20 63 6f 6e 66 69 67 75 72 65 5d 20 7b 0a 09 69 66 20 7b 5b 6c 6c 65 ion.[$src.configure].{..if.{[lle
23c60 6e 67 74 68 20 24 6f 70 74 69 6f 6e 5d 20 3d 3d 20 32 7d 20 7b 0a 09 20 20 20 20 63 6f 6e 74 69 ngth.$option].==.2}.{......conti
23c80 6e 75 65 0a 09 7d 0a 09 69 66 20 7b 5b 73 74 72 69 6e 67 20 65 71 75 61 6c 20 5b 6c 69 6e 64 65 nue..}..if.{[string.equal.[linde
23ca0 78 20 24 6f 70 74 69 6f 6e 20 30 5d 20 22 2d 74 79 70 65 22 5d 7d 20 7b 0a 09 20 20 20 20 63 6f x.$option.0]."-type"]}.{......co
23cc0 6e 74 69 6e 75 65 0a 09 7d 0a 09 6c 61 70 70 65 6e 64 20 63 6d 64 20 5b 6c 69 6e 64 65 78 20 24 ntinue..}..lappend.cmd.[lindex.$
23ce0 6f 70 74 69 6f 6e 20 30 5d 20 5b 6c 69 6e 64 65 78 20 24 6f 70 74 69 6f 6e 20 34 5d 0a 20 20 20 option.0].[lindex.$option.4]....
23d00 20 7d 0a 20 20 20 20 65 76 61 6c 20 24 63 6d 64 0a 20 20 20 20 73 65 74 20 6c 61 73 74 20 5b 24 .}.....eval.$cmd.....set.last.[$
23d20 73 72 63 20 69 6e 64 65 78 20 6c 61 73 74 5d 0a 20 20 20 20 69 66 20 7b 5b 73 74 72 69 6e 67 20 src.index.last].....if.{[string.
23d40 65 71 75 61 6c 20 24 6c 61 73 74 20 22 6e 6f 6e 65 22 5d 7d 20 7b 0a 09 72 65 74 75 72 6e 0a 20 equal.$last."none"]}.{..return..
23d60 20 20 20 7d 0a 20 20 20 20 66 6f 72 20 7b 73 65 74 20 69 20 5b 24 73 72 63 20 63 67 65 74 20 2d ...}.....for.{set.i.[$src.cget.-
23d80 74 65 61 72 6f 66 66 5d 7d 20 7b 24 69 20 3c 3d 20 24 6c 61 73 74 7d 20 7b 69 6e 63 72 20 69 7d tearoff]}.{$i.<=.$last}.{incr.i}
23da0 20 7b 0a 09 73 65 74 20 63 6d 64 20 5b 6c 69 73 74 20 24 64 73 74 20 61 64 64 20 5b 24 73 72 63 .{..set.cmd.[list.$dst.add.[$src
23dc0 20 74 79 70 65 20 24 69 5d 5d 0a 09 66 6f 72 65 61 63 68 20 6f 70 74 69 6f 6e 20 5b 24 73 72 63 .type.$i]]..foreach.option.[$src
23de0 20 65 6e 74 72 79 63 6f 6e 66 69 67 75 72 65 20 24 69 5d 20 20 7b 0a 09 20 20 20 20 6c 61 70 70 .entryconfigure.$i]..{......lapp
23e00 65 6e 64 20 63 6d 64 20 5b 6c 69 6e 64 65 78 20 24 6f 70 74 69 6f 6e 20 30 5d 20 5b 6c 69 6e 64 end.cmd.[lindex.$option.0].[lind
23e20 65 78 20 24 6f 70 74 69 6f 6e 20 34 5d 0a 09 7d 0a 09 65 76 61 6c 20 24 63 6d 64 0a 20 20 20 20 ex.$option.4]..}..eval.$cmd.....
23e40 7d 0a 0a 20 20 20 20 23 20 44 75 70 6c 69 63 61 74 65 20 74 68 65 20 62 69 6e 64 69 6e 67 20 74 }......#.Duplicate.the.binding.t
23e60 61 67 73 20 61 6e 64 20 62 69 6e 64 69 6e 67 73 20 66 72 6f 6d 20 74 68 65 20 73 6f 75 72 63 65 ags.and.bindings.from.the.source
23e80 20 6d 65 6e 75 2e 0a 0a 20 20 20 20 73 65 74 20 74 61 67 73 20 5b 62 69 6e 64 74 61 67 73 20 24 .menu.......set.tags.[bindtags.$
23ea0 73 72 63 5d 0a 20 20 20 20 73 65 74 20 73 72 63 4c 65 6e 20 5b 73 74 72 69 6e 67 20 6c 65 6e 67 src].....set.srcLen.[string.leng
23ec0 74 68 20 24 73 72 63 5d 0a 20 0a 20 20 20 20 23 20 43 6f 70 79 20 74 61 67 73 20 74 6f 20 78 2c th.$src].......#.Copy.tags.to.x,
23ee0 20 72 65 70 6c 61 63 69 6e 67 20 65 61 63 68 20 73 75 62 73 74 72 69 6e 67 20 6f 66 20 73 72 63 .replacing.each.substring.of.src
23f00 20 77 69 74 68 20 64 73 74 2e 0a 0a 20 20 20 20 77 68 69 6c 65 20 7b 5b 73 65 74 20 69 6e 64 65 .with.dst.......while.{[set.inde
23f20 78 20 5b 73 74 72 69 6e 67 20 66 69 72 73 74 20 24 73 72 63 20 24 74 61 67 73 5d 5d 20 21 3d 20 x.[string.first.$src.$tags]].!=.
23f40 2d 31 7d 20 7b 0a 09 61 70 70 65 6e 64 20 78 20 5b 73 74 72 69 6e 67 20 72 61 6e 67 65 20 24 74 -1}.{..append.x.[string.range.$t
23f60 61 67 73 20 30 20 5b 65 78 70 72 20 7b 24 69 6e 64 65 78 20 2d 20 31 7d 5d 5d 24 64 73 74 0a 09 ags.0.[expr.{$index.-.1}]]$dst..
23f80 73 65 74 20 74 61 67 73 20 5b 73 74 72 69 6e 67 20 72 61 6e 67 65 20 24 74 61 67 73 20 5b 65 78 set.tags.[string.range.$tags.[ex
23fa0 70 72 20 7b 24 69 6e 64 65 78 20 2b 20 24 73 72 63 4c 65 6e 7d 5d 20 65 6e 64 5d 0a 20 20 20 20 pr.{$index.+.$srcLen}].end].....
23fc0 7d 0a 20 20 20 20 61 70 70 65 6e 64 20 78 20 24 74 61 67 73 0a 0a 20 20 20 20 62 69 6e 64 74 61 }.....append.x.$tags......bindta
23fe0 67 73 20 24 64 73 74 20 24 78 0a 0a 20 20 20 20 66 6f 72 65 61 63 68 20 65 76 65 6e 74 20 5b 62 gs.$dst.$x......foreach.event.[b
24000 69 6e 64 20 24 73 72 63 5d 20 7b 0a 09 75 6e 73 65 74 20 78 0a 09 73 65 74 20 73 63 72 69 70 74 ind.$src].{..unset.x..set.script
24020 20 5b 62 69 6e 64 20 24 73 72 63 20 24 65 76 65 6e 74 5d 0a 09 73 65 74 20 65 76 65 6e 74 4c 65 .[bind.$src.$event]..set.eventLe
24040 6e 20 5b 73 74 72 69 6e 67 20 6c 65 6e 67 74 68 20 24 65 76 65 6e 74 5d 0a 0a 09 23 20 43 6f 70 n.[string.length.$event]...#.Cop
24060 79 20 73 63 72 69 70 74 20 74 6f 20 78 2c 20 72 65 70 6c 61 63 69 6e 67 20 65 61 63 68 20 73 75 y.script.to.x,.replacing.each.su
24080 62 73 74 72 69 6e 67 20 6f 66 20 65 76 65 6e 74 20 77 69 74 68 20 64 73 74 2e 0a 0a 09 77 68 69 bstring.of.event.with.dst....whi
240a0 6c 65 20 7b 5b 73 65 74 20 69 6e 64 65 78 20 5b 73 74 72 69 6e 67 20 66 69 72 73 74 20 24 65 76 le.{[set.index.[string.first.$ev
240c0 65 6e 74 20 24 73 63 72 69 70 74 5d 5d 20 21 3d 20 2d 31 7d 20 7b 0a 09 20 20 20 20 61 70 70 65 ent.$script]].!=.-1}.{......appe
240e0 6e 64 20 78 20 5b 73 74 72 69 6e 67 20 72 61 6e 67 65 20 24 73 63 72 69 70 74 20 30 20 5b 65 78 nd.x.[string.range.$script.0.[ex
24100 70 72 20 7b 24 69 6e 64 65 78 20 2d 20 31 7d 5d 5d 0a 09 20 20 20 20 61 70 70 65 6e 64 20 78 20 pr.{$index.-.1}]]......append.x.
24120 24 64 73 74 0a 09 20 20 20 20 73 65 74 20 73 63 72 69 70 74 20 5b 73 74 72 69 6e 67 20 72 61 6e $dst......set.script.[string.ran
24140 67 65 20 24 73 63 72 69 70 74 20 5b 65 78 70 72 20 7b 24 69 6e 64 65 78 20 2b 20 24 65 76 65 6e ge.$script.[expr.{$index.+.$even
24160 74 4c 65 6e 7d 5d 20 65 6e 64 5d 0a 09 7d 0a 09 61 70 70 65 6e 64 20 78 20 24 73 63 72 69 70 74 tLen}].end]..}..append.x.$script
24180 0a 0a 09 62 69 6e 64 20 24 64 73 74 20 24 65 76 65 6e 74 20 24 78 0a 20 20 20 20 7d 0a 7d 0a 00 ...bind.$dst.$event.$x.....}.}..
241a0 00 6d a2 23 20 74 65 78 74 2e 74 63 6c 20 2d 2d 0a 23 0a 23 20 54 68 69 73 20 66 69 6c 65 20 64 .m.#.text.tcl.--.#.#.This.file.d
241c0 65 66 69 6e 65 73 20 74 68 65 20 64 65 66 61 75 6c 74 20 62 69 6e 64 69 6e 67 73 20 66 6f 72 20 efines.the.default.bindings.for.
241e0 54 6b 20 74 65 78 74 20 77 69 64 67 65 74 73 20 61 6e 64 20 70 72 6f 76 69 64 65 73 0a 23 20 70 Tk.text.widgets.and.provides.#.p
24200 72 6f 63 65 64 75 72 65 73 20 74 68 61 74 20 68 65 6c 70 20 69 6e 20 69 6d 70 6c 65 6d 65 6e 74 rocedures.that.help.in.implement
24220 69 6e 67 20 74 68 65 20 62 69 6e 64 69 6e 67 73 2e 0a 23 0a 23 20 52 43 53 3a 20 40 28 23 29 20 ing.the.bindings..#.#.RCS:.@(#).
24240 24 49 64 3a 20 74 65 78 74 2e 74 63 6c 2c 76 20 31 2e 31 30 20 32 30 30 30 2f 30 32 2f 31 30 20 $Id:.text.tcl,v.1.10.2000/02/10.
24260 30 38 3a 35 32 3a 35 30 20 68 6f 62 62 73 20 45 78 70 20 24 0a 23 0a 23 20 43 6f 70 79 72 69 67 08:52:50.hobbs.Exp.$.#.#.Copyrig
24280 68 74 20 28 63 29 20 31 39 39 32 2d 31 39 39 34 20 54 68 65 20 52 65 67 65 6e 74 73 20 6f 66 20 ht.(c).1992-1994.The.Regents.of.
242a0 74 68 65 20 55 6e 69 76 65 72 73 69 74 79 20 6f 66 20 43 61 6c 69 66 6f 72 6e 69 61 2e 0a 23 20 the.University.of.California..#.
242c0 43 6f 70 79 72 69 67 68 74 20 28 63 29 20 31 39 39 34 2d 31 39 39 37 20 53 75 6e 20 4d 69 63 72 Copyright.(c).1994-1997.Sun.Micr
242e0 6f 73 79 73 74 65 6d 73 2c 20 49 6e 63 2e 0a 23 20 43 6f 70 79 72 69 67 68 74 20 28 63 29 20 31 osystems,.Inc..#.Copyright.(c).1
24300 39 39 38 20 62 79 20 53 63 72 69 70 74 69 63 73 20 43 6f 72 70 6f 72 61 74 69 6f 6e 2e 0a 23 0a 998.by.Scriptics.Corporation..#.
24320 23 20 53 65 65 20 74 68 65 20 66 69 6c 65 20 22 6c 69 63 65 6e 73 65 2e 74 65 72 6d 73 22 20 66 #.See.the.file."license.terms".f
24340 6f 72 20 69 6e 66 6f 72 6d 61 74 69 6f 6e 20 6f 6e 20 75 73 61 67 65 20 61 6e 64 20 72 65 64 69 or.information.on.usage.and.redi
24360 73 74 72 69 62 75 74 69 6f 6e 0a 23 20 6f 66 20 74 68 69 73 20 66 69 6c 65 2c 20 61 6e 64 20 66 stribution.#.of.this.file,.and.f
24380 6f 72 20 61 20 44 49 53 43 4c 41 49 4d 45 52 20 4f 46 20 41 4c 4c 20 57 41 52 52 41 4e 54 49 45 or.a.DISCLAIMER.OF.ALL.WARRANTIE
243a0 53 2e 0a 23 0a 0a 23 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d S..#..#-------------------------
243c0 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d --------------------------------
243e0 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 0a 23 20 45 6c 65 6d 65 6e 74 73 20 6f 66 20 74 ----------------.#.Elements.of.t
24400 6b 50 72 69 76 20 74 68 61 74 20 61 72 65 20 75 73 65 64 20 69 6e 20 74 68 69 73 20 66 69 6c 65 kPriv.that.are.used.in.this.file
24420 3a 0a 23 0a 23 20 61 66 74 65 72 49 64 20 2d 09 09 49 66 20 6e 6f 6e 2d 6e 75 6c 6c 2c 20 69 74 :.#.#.afterId.-..If.non-null,.it
24440 20 6d 65 61 6e 73 20 74 68 61 74 20 61 75 74 6f 2d 73 63 61 6e 6e 69 6e 67 20 69 73 20 75 6e 64 .means.that.auto-scanning.is.und
24460 65 72 77 61 79 0a 23 09 09 09 61 6e 64 20 69 74 20 67 69 76 65 73 20 74 68 65 20 22 61 66 74 65 erway.#...and.it.gives.the."afte
24480 72 22 20 69 64 20 66 6f 72 20 74 68 65 20 6e 65 78 74 20 61 75 74 6f 2d 73 63 61 6e 0a 23 09 09 r".id.for.the.next.auto-scan.#..
244a0 09 63 6f 6d 6d 61 6e 64 20 74 6f 20 62 65 20 65 78 65 63 75 74 65 64 2e 0a 23 20 63 68 61 72 20 .command.to.be.executed..#.char.
244c0 2d 09 09 43 68 61 72 61 63 74 65 72 20 70 6f 73 69 74 69 6f 6e 20 6f 6e 20 74 68 65 20 6c 69 6e -..Character.position.on.the.lin
244e0 65 3b 20 20 6b 65 70 74 20 69 6e 20 6f 72 64 65 72 0a 23 09 09 09 74 6f 20 61 6c 6c 6f 77 20 6d e;..kept.in.order.#...to.allow.m
24500 6f 76 69 6e 67 20 75 70 20 6f 72 20 64 6f 77 6e 20 70 61 73 74 20 73 68 6f 72 74 20 6c 69 6e 65 oving.up.or.down.past.short.line
24520 73 20 77 68 69 6c 65 0a 23 09 09 09 73 74 69 6c 6c 20 72 65 6d 65 6d 62 65 72 69 6e 67 20 74 68 s.while.#...still.remembering.th
24540 65 20 64 65 73 69 72 65 64 20 70 6f 73 69 74 69 6f 6e 2e 0a 23 20 6d 6f 75 73 65 4d 6f 76 65 64 e.desired.position..#.mouseMoved
24560 20 2d 09 09 4e 6f 6e 2d 7a 65 72 6f 20 6d 65 61 6e 73 20 74 68 65 20 6d 6f 75 73 65 20 68 61 73 .-..Non-zero.means.the.mouse.has
24580 20 6d 6f 76 65 64 20 61 20 73 69 67 6e 69 66 69 63 61 6e 74 0a 23 09 09 09 61 6d 6f 75 6e 74 20 .moved.a.significant.#...amount.
245a0 73 69 6e 63 65 20 74 68 65 20 62 75 74 74 6f 6e 20 77 65 6e 74 20 64 6f 77 6e 20 28 73 6f 2c 20 since.the.button.went.down.(so,.
245c0 66 6f 72 20 65 78 61 6d 70 6c 65 2c 0a 23 09 09 09 73 74 61 72 74 20 64 72 61 67 67 69 6e 67 20 for.example,.#...start.dragging.
245e0 6f 75 74 20 61 20 73 65 6c 65 63 74 69 6f 6e 29 2e 0a 23 20 70 72 65 76 50 6f 73 20 2d 09 09 55 out.a.selection)..#.prevPos.-..U
24600 73 65 64 20 77 68 65 6e 20 6d 6f 76 69 6e 67 20 75 70 20 6f 72 20 64 6f 77 6e 20 6c 69 6e 65 73 sed.when.moving.up.or.down.lines
24620 20 76 69 61 20 74 68 65 20 6b 65 79 62 6f 61 72 64 2e 0a 23 09 09 09 4b 65 65 70 73 20 74 72 61 .via.the.keyboard..#...Keeps.tra
24640 63 6b 20 6f 66 20 74 68 65 20 70 72 65 76 69 6f 75 73 20 69 6e 73 65 72 74 20 70 6f 73 69 74 69 ck.of.the.previous.insert.positi
24660 6f 6e 2c 20 73 6f 0a 23 09 09 09 77 65 20 63 61 6e 20 64 69 73 74 69 6e 67 75 69 73 68 20 61 20 on,.so.#...we.can.distinguish.a.
24680 73 65 72 69 65 73 20 6f 66 20 75 70 73 20 61 6e 64 20 64 6f 77 6e 73 2c 20 61 6c 6c 0a 23 09 09 series.of.ups.and.downs,.all.#..
246a0 09 69 6e 20 61 20 72 6f 77 2c 20 66 72 6f 6d 20 61 20 6e 65 77 20 75 70 20 6f 72 20 64 6f 77 6e .in.a.row,.from.a.new.up.or.down
246c0 2e 0a 23 20 73 65 6c 65 63 74 4d 6f 64 65 20 2d 09 09 54 68 65 20 73 74 79 6c 65 20 6f 66 20 73 ..#.selectMode.-..The.style.of.s
246e0 65 6c 65 63 74 69 6f 6e 20 63 75 72 72 65 6e 74 6c 79 20 75 6e 64 65 72 77 61 79 3a 0a 23 09 09 election.currently.underway:.#..
24700 09 63 68 61 72 2c 20 77 6f 72 64 2c 20 6f 72 20 6c 69 6e 65 2e 0a 23 20 78 2c 20 79 20 2d 09 09 .char,.word,.or.line..#.x,.y.-..
24720 4c 61 73 74 20 6b 6e 6f 77 6e 20 6d 6f 75 73 65 20 63 6f 6f 72 64 69 6e 61 74 65 73 20 66 6f 72 Last.known.mouse.coordinates.for
24740 20 73 63 61 6e 6e 69 6e 67 0a 23 09 09 09 61 6e 64 20 61 75 74 6f 2d 73 63 61 6e 6e 69 6e 67 2e .scanning.#...and.auto-scanning.
24760 0a 23 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d .#------------------------------
24780 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d --------------------------------
247a0 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 0a 0a 23 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d -----------..#------------------
247c0 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d --------------------------------
247e0 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 0a 23 20 54 68 65 20 63 6f -----------------------.#.The.co
24800 64 65 20 62 65 6c 6f 77 20 63 72 65 61 74 65 73 20 74 68 65 20 64 65 66 61 75 6c 74 20 63 6c 61 de.below.creates.the.default.cla
24820 73 73 20 62 69 6e 64 69 6e 67 73 20 66 6f 72 20 65 6e 74 72 69 65 73 2e 0a 23 2d 2d 2d 2d 2d 2d ss.bindings.for.entries..#------
24840 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d --------------------------------
24860 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d --------------------------------
24880 2d 2d 2d 0a 0a 23 20 53 74 61 6e 64 61 72 64 20 4d 6f 74 69 66 20 62 69 6e 64 69 6e 67 73 3a 0a ---..#.Standard.Motif.bindings:.
248a0 0a 62 69 6e 64 20 54 65 78 74 20 3c 31 3e 20 7b 0a 20 20 20 20 74 6b 54 65 78 74 42 75 74 74 6f .bind.Text.<1>.{.....tkTextButto
248c0 6e 31 20 25 57 20 25 78 20 25 79 0a 20 20 20 20 25 57 20 74 61 67 20 72 65 6d 6f 76 65 20 73 65 n1.%W.%x.%y.....%W.tag.remove.se
248e0 6c 20 30 2e 30 20 65 6e 64 0a 7d 0a 62 69 6e 64 20 54 65 78 74 20 3c 42 31 2d 4d 6f 74 69 6f 6e l.0.0.end.}.bind.Text.<B1-Motion
24900 3e 20 7b 0a 20 20 20 20 73 65 74 20 74 6b 50 72 69 76 28 78 29 20 25 78 0a 20 20 20 20 73 65 74 >.{.....set.tkPriv(x).%x.....set
24920 20 74 6b 50 72 69 76 28 79 29 20 25 79 0a 20 20 20 20 74 6b 54 65 78 74 53 65 6c 65 63 74 54 6f .tkPriv(y).%y.....tkTextSelectTo
24940 20 25 57 20 25 78 20 25 79 0a 7d 0a 62 69 6e 64 20 54 65 78 74 20 3c 44 6f 75 62 6c 65 2d 31 3e .%W.%x.%y.}.bind.Text.<Double-1>
24960 20 7b 0a 20 20 20 20 73 65 74 20 74 6b 50 72 69 76 28 73 65 6c 65 63 74 4d 6f 64 65 29 20 77 6f .{.....set.tkPriv(selectMode).wo
24980 72 64 0a 20 20 20 20 74 6b 54 65 78 74 53 65 6c 65 63 74 54 6f 20 25 57 20 25 78 20 25 79 0a 20 rd.....tkTextSelectTo.%W.%x.%y..
249a0 20 20 20 63 61 74 63 68 20 7b 25 57 20 6d 61 72 6b 20 73 65 74 20 69 6e 73 65 72 74 20 73 65 6c ...catch.{%W.mark.set.insert.sel
249c0 2e 66 69 72 73 74 7d 0a 7d 0a 62 69 6e 64 20 54 65 78 74 20 3c 54 72 69 70 6c 65 2d 31 3e 20 7b .first}.}.bind.Text.<Triple-1>.{
249e0 0a 20 20 20 20 73 65 74 20 74 6b 50 72 69 76 28 73 65 6c 65 63 74 4d 6f 64 65 29 20 6c 69 6e 65 .....set.tkPriv(selectMode).line
24a00 0a 20 20 20 20 74 6b 54 65 78 74 53 65 6c 65 63 74 54 6f 20 25 57 20 25 78 20 25 79 0a 20 20 20 .....tkTextSelectTo.%W.%x.%y....
24a20 20 63 61 74 63 68 20 7b 25 57 20 6d 61 72 6b 20 73 65 74 20 69 6e 73 65 72 74 20 73 65 6c 2e 66 .catch.{%W.mark.set.insert.sel.f
24a40 69 72 73 74 7d 0a 7d 0a 62 69 6e 64 20 54 65 78 74 20 3c 53 68 69 66 74 2d 31 3e 20 7b 0a 20 20 irst}.}.bind.Text.<Shift-1>.{...
24a60 20 20 74 6b 54 65 78 74 52 65 73 65 74 41 6e 63 68 6f 72 20 25 57 20 40 25 78 2c 25 79 0a 20 20 ..tkTextResetAnchor.%W.@%x,%y...
24a80 20 20 73 65 74 20 74 6b 50 72 69 76 28 73 65 6c 65 63 74 4d 6f 64 65 29 20 63 68 61 72 0a 20 20 ..set.tkPriv(selectMode).char...
24aa0 20 20 74 6b 54 65 78 74 53 65 6c 65 63 74 54 6f 20 25 57 20 25 78 20 25 79 0a 7d 0a 62 69 6e 64 ..tkTextSelectTo.%W.%x.%y.}.bind
24ac0 20 54 65 78 74 20 3c 44 6f 75 62 6c 65 2d 53 68 69 66 74 2d 31 3e 09 7b 0a 20 20 20 20 73 65 74 .Text.<Double-Shift-1>.{.....set
24ae0 20 74 6b 50 72 69 76 28 73 65 6c 65 63 74 4d 6f 64 65 29 20 77 6f 72 64 0a 20 20 20 20 74 6b 54 .tkPriv(selectMode).word.....tkT
24b00 65 78 74 53 65 6c 65 63 74 54 6f 20 25 57 20 25 78 20 25 79 0a 7d 0a 62 69 6e 64 20 54 65 78 74 extSelectTo.%W.%x.%y.}.bind.Text
24b20 20 3c 54 72 69 70 6c 65 2d 53 68 69 66 74 2d 31 3e 09 7b 0a 20 20 20 20 73 65 74 20 74 6b 50 72 .<Triple-Shift-1>.{.....set.tkPr
24b40 69 76 28 73 65 6c 65 63 74 4d 6f 64 65 29 20 6c 69 6e 65 0a 20 20 20 20 74 6b 54 65 78 74 53 65 iv(selectMode).line.....tkTextSe
24b60 6c 65 63 74 54 6f 20 25 57 20 25 78 20 25 79 0a 7d 0a 62 69 6e 64 20 54 65 78 74 20 3c 42 31 2d lectTo.%W.%x.%y.}.bind.Text.<B1-
24b80 4c 65 61 76 65 3e 20 7b 0a 20 20 20 20 73 65 74 20 74 6b 50 72 69 76 28 78 29 20 25 78 0a 20 20 Leave>.{.....set.tkPriv(x).%x...
24ba0 20 20 73 65 74 20 74 6b 50 72 69 76 28 79 29 20 25 79 0a 20 20 20 20 74 6b 54 65 78 74 41 75 74 ..set.tkPriv(y).%y.....tkTextAut
24bc0 6f 53 63 61 6e 20 25 57 0a 7d 0a 62 69 6e 64 20 54 65 78 74 20 3c 42 31 2d 45 6e 74 65 72 3e 20 oScan.%W.}.bind.Text.<B1-Enter>.
24be0 7b 0a 20 20 20 20 74 6b 43 61 6e 63 65 6c 52 65 70 65 61 74 0a 7d 0a 62 69 6e 64 20 54 65 78 74 {.....tkCancelRepeat.}.bind.Text
24c00 20 3c 42 75 74 74 6f 6e 52 65 6c 65 61 73 65 2d 31 3e 20 7b 0a 20 20 20 20 74 6b 43 61 6e 63 65 .<ButtonRelease-1>.{.....tkCance
24c20 6c 52 65 70 65 61 74 0a 7d 0a 62 69 6e 64 20 54 65 78 74 20 3c 43 6f 6e 74 72 6f 6c 2d 31 3e 20 lRepeat.}.bind.Text.<Control-1>.
24c40 7b 0a 20 20 20 20 25 57 20 6d 61 72 6b 20 73 65 74 20 69 6e 73 65 72 74 20 40 25 78 2c 25 79 0a {.....%W.mark.set.insert.@%x,%y.
24c60 7d 0a 62 69 6e 64 20 54 65 78 74 20 3c 4c 65 66 74 3e 20 7b 0a 20 20 20 20 74 6b 54 65 78 74 53 }.bind.Text.<Left>.{.....tkTextS
24c80 65 74 43 75 72 73 6f 72 20 25 57 20 69 6e 73 65 72 74 2d 31 63 0a 7d 0a 62 69 6e 64 20 54 65 78 etCursor.%W.insert-1c.}.bind.Tex
24ca0 74 20 3c 52 69 67 68 74 3e 20 7b 0a 20 20 20 20 74 6b 54 65 78 74 53 65 74 43 75 72 73 6f 72 20 t.<Right>.{.....tkTextSetCursor.
24cc0 25 57 20 69 6e 73 65 72 74 2b 31 63 0a 7d 0a 62 69 6e 64 20 54 65 78 74 20 3c 55 70 3e 20 7b 0a %W.insert+1c.}.bind.Text.<Up>.{.
24ce0 20 20 20 20 74 6b 54 65 78 74 53 65 74 43 75 72 73 6f 72 20 25 57 20 5b 74 6b 54 65 78 74 55 70 ....tkTextSetCursor.%W.[tkTextUp
24d00 44 6f 77 6e 4c 69 6e 65 20 25 57 20 2d 31 5d 0a 7d 0a 62 69 6e 64 20 54 65 78 74 20 3c 44 6f 77 DownLine.%W.-1].}.bind.Text.<Dow
24d20 6e 3e 20 7b 0a 20 20 20 20 74 6b 54 65 78 74 53 65 74 43 75 72 73 6f 72 20 25 57 20 5b 74 6b 54 n>.{.....tkTextSetCursor.%W.[tkT
24d40 65 78 74 55 70 44 6f 77 6e 4c 69 6e 65 20 25 57 20 31 5d 0a 7d 0a 62 69 6e 64 20 54 65 78 74 20 extUpDownLine.%W.1].}.bind.Text.
24d60 3c 53 68 69 66 74 2d 4c 65 66 74 3e 20 7b 0a 20 20 20 20 74 6b 54 65 78 74 4b 65 79 53 65 6c 65 <Shift-Left>.{.....tkTextKeySele
24d80 63 74 20 25 57 20 5b 25 57 20 69 6e 64 65 78 20 7b 69 6e 73 65 72 74 20 2d 20 31 63 7d 5d 0a 7d ct.%W.[%W.index.{insert.-.1c}].}
24da0 0a 62 69 6e 64 20 54 65 78 74 20 3c 53 68 69 66 74 2d 52 69 67 68 74 3e 20 7b 0a 20 20 20 20 74 .bind.Text.<Shift-Right>.{.....t
24dc0 6b 54 65 78 74 4b 65 79 53 65 6c 65 63 74 20 25 57 20 5b 25 57 20 69 6e 64 65 78 20 7b 69 6e 73 kTextKeySelect.%W.[%W.index.{ins
24de0 65 72 74 20 2b 20 31 63 7d 5d 0a 7d 0a 62 69 6e 64 20 54 65 78 74 20 3c 53 68 69 66 74 2d 55 70 ert.+.1c}].}.bind.Text.<Shift-Up
24e00 3e 20 7b 0a 20 20 20 20 74 6b 54 65 78 74 4b 65 79 53 65 6c 65 63 74 20 25 57 20 5b 74 6b 54 65 >.{.....tkTextKeySelect.%W.[tkTe
24e20 78 74 55 70 44 6f 77 6e 4c 69 6e 65 20 25 57 20 2d 31 5d 0a 7d 0a 62 69 6e 64 20 54 65 78 74 20 xtUpDownLine.%W.-1].}.bind.Text.
24e40 3c 53 68 69 66 74 2d 44 6f 77 6e 3e 20 7b 0a 20 20 20 20 74 6b 54 65 78 74 4b 65 79 53 65 6c 65 <Shift-Down>.{.....tkTextKeySele
24e60 63 74 20 25 57 20 5b 74 6b 54 65 78 74 55 70 44 6f 77 6e 4c 69 6e 65 20 25 57 20 31 5d 0a 7d 0a ct.%W.[tkTextUpDownLine.%W.1].}.
24e80 62 69 6e 64 20 54 65 78 74 20 3c 43 6f 6e 74 72 6f 6c 2d 4c 65 66 74 3e 20 7b 0a 20 20 20 20 74 bind.Text.<Control-Left>.{.....t
24ea0 6b 54 65 78 74 53 65 74 43 75 72 73 6f 72 20 25 57 20 5b 74 6b 54 65 78 74 50 72 65 76 50 6f 73 kTextSetCursor.%W.[tkTextPrevPos
24ec0 20 25 57 20 69 6e 73 65 72 74 20 74 63 6c 5f 73 74 61 72 74 4f 66 50 72 65 76 69 6f 75 73 57 6f .%W.insert.tcl_startOfPreviousWo
24ee0 72 64 5d 0a 7d 0a 62 69 6e 64 20 54 65 78 74 20 3c 43 6f 6e 74 72 6f 6c 2d 52 69 67 68 74 3e 20 rd].}.bind.Text.<Control-Right>.
24f00 7b 0a 20 20 20 20 74 6b 54 65 78 74 53 65 74 43 75 72 73 6f 72 20 25 57 20 5b 74 6b 54 65 78 74 {.....tkTextSetCursor.%W.[tkText
24f20 4e 65 78 74 57 6f 72 64 20 25 57 20 69 6e 73 65 72 74 5d 0a 7d 0a 62 69 6e 64 20 54 65 78 74 20 NextWord.%W.insert].}.bind.Text.
24f40 3c 43 6f 6e 74 72 6f 6c 2d 55 70 3e 20 7b 0a 20 20 20 20 74 6b 54 65 78 74 53 65 74 43 75 72 73 <Control-Up>.{.....tkTextSetCurs
24f60 6f 72 20 25 57 20 5b 74 6b 54 65 78 74 50 72 65 76 50 61 72 61 20 25 57 20 69 6e 73 65 72 74 5d or.%W.[tkTextPrevPara.%W.insert]
24f80 0a 7d 0a 62 69 6e 64 20 54 65 78 74 20 3c 43 6f 6e 74 72 6f 6c 2d 44 6f 77 6e 3e 20 7b 0a 20 20 .}.bind.Text.<Control-Down>.{...
24fa0 20 20 74 6b 54 65 78 74 53 65 74 43 75 72 73 6f 72 20 25 57 20 5b 74 6b 54 65 78 74 4e 65 78 74 ..tkTextSetCursor.%W.[tkTextNext
24fc0 50 61 72 61 20 25 57 20 69 6e 73 65 72 74 5d 0a 7d 0a 62 69 6e 64 20 54 65 78 74 20 3c 53 68 69 Para.%W.insert].}.bind.Text.<Shi
24fe0 66 74 2d 43 6f 6e 74 72 6f 6c 2d 4c 65 66 74 3e 20 7b 0a 20 20 20 20 74 6b 54 65 78 74 4b 65 79 ft-Control-Left>.{.....tkTextKey
25000 53 65 6c 65 63 74 20 25 57 20 5b 74 6b 54 65 78 74 50 72 65 76 50 6f 73 20 25 57 20 69 6e 73 65 Select.%W.[tkTextPrevPos.%W.inse
25020 72 74 20 74 63 6c 5f 73 74 61 72 74 4f 66 50 72 65 76 69 6f 75 73 57 6f 72 64 5d 0a 7d 0a 62 69 rt.tcl_startOfPreviousWord].}.bi
25040 6e 64 20 54 65 78 74 20 3c 53 68 69 66 74 2d 43 6f 6e 74 72 6f 6c 2d 52 69 67 68 74 3e 20 7b 0a nd.Text.<Shift-Control-Right>.{.
25060 20 20 20 20 74 6b 54 65 78 74 4b 65 79 53 65 6c 65 63 74 20 25 57 20 5b 74 6b 54 65 78 74 4e 65 ....tkTextKeySelect.%W.[tkTextNe
25080 78 74 57 6f 72 64 20 25 57 20 69 6e 73 65 72 74 5d 0a 7d 0a 62 69 6e 64 20 54 65 78 74 20 3c 53 xtWord.%W.insert].}.bind.Text.<S
250a0 68 69 66 74 2d 43 6f 6e 74 72 6f 6c 2d 55 70 3e 20 7b 0a 20 20 20 20 74 6b 54 65 78 74 4b 65 79 hift-Control-Up>.{.....tkTextKey
250c0 53 65 6c 65 63 74 20 25 57 20 5b 74 6b 54 65 78 74 50 72 65 76 50 61 72 61 20 25 57 20 69 6e 73 Select.%W.[tkTextPrevPara.%W.ins
250e0 65 72 74 5d 0a 7d 0a 62 69 6e 64 20 54 65 78 74 20 3c 53 68 69 66 74 2d 43 6f 6e 74 72 6f 6c 2d ert].}.bind.Text.<Shift-Control-
25100 44 6f 77 6e 3e 20 7b 0a 20 20 20 20 74 6b 54 65 78 74 4b 65 79 53 65 6c 65 63 74 20 25 57 20 5b Down>.{.....tkTextKeySelect.%W.[
25120 74 6b 54 65 78 74 4e 65 78 74 50 61 72 61 20 25 57 20 69 6e 73 65 72 74 5d 0a 7d 0a 62 69 6e 64 tkTextNextPara.%W.insert].}.bind
25140 20 54 65 78 74 20 3c 50 72 69 6f 72 3e 20 7b 0a 20 20 20 20 74 6b 54 65 78 74 53 65 74 43 75 72 .Text.<Prior>.{.....tkTextSetCur
25160 73 6f 72 20 25 57 20 5b 74 6b 54 65 78 74 53 63 72 6f 6c 6c 50 61 67 65 73 20 25 57 20 2d 31 5d sor.%W.[tkTextScrollPages.%W.-1]
25180 0a 7d 0a 62 69 6e 64 20 54 65 78 74 20 3c 53 68 69 66 74 2d 50 72 69 6f 72 3e 20 7b 0a 20 20 20 .}.bind.Text.<Shift-Prior>.{....
251a0 20 74 6b 54 65 78 74 4b 65 79 53 65 6c 65 63 74 20 25 57 20 5b 74 6b 54 65 78 74 53 63 72 6f 6c .tkTextKeySelect.%W.[tkTextScrol
251c0 6c 50 61 67 65 73 20 25 57 20 2d 31 5d 0a 7d 0a 62 69 6e 64 20 54 65 78 74 20 3c 4e 65 78 74 3e lPages.%W.-1].}.bind.Text.<Next>
251e0 20 7b 0a 20 20 20 20 74 6b 54 65 78 74 53 65 74 43 75 72 73 6f 72 20 25 57 20 5b 74 6b 54 65 78 .{.....tkTextSetCursor.%W.[tkTex
25200 74 53 63 72 6f 6c 6c 50 61 67 65 73 20 25 57 20 31 5d 0a 7d 0a 62 69 6e 64 20 54 65 78 74 20 3c tScrollPages.%W.1].}.bind.Text.<
25220 53 68 69 66 74 2d 4e 65 78 74 3e 20 7b 0a 20 20 20 20 74 6b 54 65 78 74 4b 65 79 53 65 6c 65 63 Shift-Next>.{.....tkTextKeySelec
25240 74 20 25 57 20 5b 74 6b 54 65 78 74 53 63 72 6f 6c 6c 50 61 67 65 73 20 25 57 20 31 5d 0a 7d 0a t.%W.[tkTextScrollPages.%W.1].}.
25260 62 69 6e 64 20 54 65 78 74 20 3c 43 6f 6e 74 72 6f 6c 2d 50 72 69 6f 72 3e 20 7b 0a 20 20 20 20 bind.Text.<Control-Prior>.{.....
25280 25 57 20 78 76 69 65 77 20 73 63 72 6f 6c 6c 20 2d 31 20 70 61 67 65 0a 7d 0a 62 69 6e 64 20 54 %W.xview.scroll.-1.page.}.bind.T
252a0 65 78 74 20 3c 43 6f 6e 74 72 6f 6c 2d 4e 65 78 74 3e 20 7b 0a 20 20 20 20 25 57 20 78 76 69 65 ext.<Control-Next>.{.....%W.xvie
252c0 77 20 73 63 72 6f 6c 6c 20 31 20 70 61 67 65 0a 7d 0a 0a 62 69 6e 64 20 54 65 78 74 20 3c 48 6f w.scroll.1.page.}..bind.Text.<Ho
252e0 6d 65 3e 20 7b 0a 20 20 20 20 74 6b 54 65 78 74 53 65 74 43 75 72 73 6f 72 20 25 57 20 7b 69 6e me>.{.....tkTextSetCursor.%W.{in
25300 73 65 72 74 20 6c 69 6e 65 73 74 61 72 74 7d 0a 7d 0a 62 69 6e 64 20 54 65 78 74 20 3c 53 68 69 sert.linestart}.}.bind.Text.<Shi
25320 66 74 2d 48 6f 6d 65 3e 20 7b 0a 20 20 20 20 74 6b 54 65 78 74 4b 65 79 53 65 6c 65 63 74 20 25 ft-Home>.{.....tkTextKeySelect.%
25340 57 20 7b 69 6e 73 65 72 74 20 6c 69 6e 65 73 74 61 72 74 7d 0a 7d 0a 62 69 6e 64 20 54 65 78 74 W.{insert.linestart}.}.bind.Text
25360 20 3c 45 6e 64 3e 20 7b 0a 20 20 20 20 74 6b 54 65 78 74 53 65 74 43 75 72 73 6f 72 20 25 57 20 .<End>.{.....tkTextSetCursor.%W.
25380 7b 69 6e 73 65 72 74 20 6c 69 6e 65 65 6e 64 7d 0a 7d 0a 62 69 6e 64 20 54 65 78 74 20 3c 53 68 {insert.lineend}.}.bind.Text.<Sh
253a0 69 66 74 2d 45 6e 64 3e 20 7b 0a 20 20 20 20 74 6b 54 65 78 74 4b 65 79 53 65 6c 65 63 74 20 25 ift-End>.{.....tkTextKeySelect.%
253c0 57 20 7b 69 6e 73 65 72 74 20 6c 69 6e 65 65 6e 64 7d 0a 7d 0a 62 69 6e 64 20 54 65 78 74 20 3c W.{insert.lineend}.}.bind.Text.<
253e0 43 6f 6e 74 72 6f 6c 2d 48 6f 6d 65 3e 20 7b 0a 20 20 20 20 74 6b 54 65 78 74 53 65 74 43 75 72 Control-Home>.{.....tkTextSetCur
25400 73 6f 72 20 25 57 20 31 2e 30 0a 7d 0a 62 69 6e 64 20 54 65 78 74 20 3c 43 6f 6e 74 72 6f 6c 2d sor.%W.1.0.}.bind.Text.<Control-
25420 53 68 69 66 74 2d 48 6f 6d 65 3e 20 7b 0a 20 20 20 20 74 6b 54 65 78 74 4b 65 79 53 65 6c 65 63 Shift-Home>.{.....tkTextKeySelec
25440 74 20 25 57 20 31 2e 30 0a 7d 0a 62 69 6e 64 20 54 65 78 74 20 3c 43 6f 6e 74 72 6f 6c 2d 45 6e t.%W.1.0.}.bind.Text.<Control-En
25460 64 3e 20 7b 0a 20 20 20 20 74 6b 54 65 78 74 53 65 74 43 75 72 73 6f 72 20 25 57 20 7b 65 6e 64 d>.{.....tkTextSetCursor.%W.{end
25480 20 2d 20 31 20 63 68 61 72 7d 0a 7d 0a 62 69 6e 64 20 54 65 78 74 20 3c 43 6f 6e 74 72 6f 6c 2d .-.1.char}.}.bind.Text.<Control-
254a0 53 68 69 66 74 2d 45 6e 64 3e 20 7b 0a 20 20 20 20 74 6b 54 65 78 74 4b 65 79 53 65 6c 65 63 74 Shift-End>.{.....tkTextKeySelect
254c0 20 25 57 20 7b 65 6e 64 20 2d 20 31 20 63 68 61 72 7d 0a 7d 0a 0a 62 69 6e 64 20 54 65 78 74 20 .%W.{end.-.1.char}.}..bind.Text.
254e0 3c 54 61 62 3e 20 7b 0a 20 20 20 20 74 6b 54 65 78 74 49 6e 73 65 72 74 20 25 57 20 5c 74 0a 20 <Tab>.{.....tkTextInsert.%W.\t..
25500 20 20 20 66 6f 63 75 73 20 25 57 0a 20 20 20 20 62 72 65 61 6b 0a 7d 0a 62 69 6e 64 20 54 65 78 ...focus.%W.....break.}.bind.Tex
25520 74 20 3c 53 68 69 66 74 2d 54 61 62 3e 20 7b 0a 20 20 20 20 23 20 4e 65 65 64 65 64 20 6f 6e 6c t.<Shift-Tab>.{.....#.Needed.onl
25540 79 20 74 6f 20 6b 65 65 70 20 3c 54 61 62 3e 20 62 69 6e 64 69 6e 67 20 66 72 6f 6d 20 74 72 69 y.to.keep.<Tab>.binding.from.tri
25560 67 67 65 72 69 6e 67 3b 20 20 64 6f 65 73 6e 27 74 0a 20 20 20 20 23 20 68 61 76 65 20 74 6f 20 ggering;..doesn't.....#.have.to.
25580 61 63 74 75 61 6c 6c 79 20 64 6f 20 61 6e 79 74 68 69 6e 67 2e 0a 20 20 20 20 62 72 65 61 6b 0a actually.do.anything......break.
255a0 7d 0a 62 69 6e 64 20 54 65 78 74 20 3c 43 6f 6e 74 72 6f 6c 2d 54 61 62 3e 20 7b 0a 20 20 20 20 }.bind.Text.<Control-Tab>.{.....
255c0 66 6f 63 75 73 20 5b 74 6b 5f 66 6f 63 75 73 4e 65 78 74 20 25 57 5d 0a 7d 0a 62 69 6e 64 20 54 focus.[tk_focusNext.%W].}.bind.T
255e0 65 78 74 20 3c 43 6f 6e 74 72 6f 6c 2d 53 68 69 66 74 2d 54 61 62 3e 20 7b 0a 20 20 20 20 66 6f ext.<Control-Shift-Tab>.{.....fo
25600 63 75 73 20 5b 74 6b 5f 66 6f 63 75 73 50 72 65 76 20 25 57 5d 0a 7d 0a 62 69 6e 64 20 54 65 78 cus.[tk_focusPrev.%W].}.bind.Tex
25620 74 20 3c 43 6f 6e 74 72 6f 6c 2d 69 3e 20 7b 0a 20 20 20 20 74 6b 54 65 78 74 49 6e 73 65 72 74 t.<Control-i>.{.....tkTextInsert
25640 20 25 57 20 5c 74 0a 7d 0a 62 69 6e 64 20 54 65 78 74 20 3c 52 65 74 75 72 6e 3e 20 7b 0a 20 20 .%W.\t.}.bind.Text.<Return>.{...
25660 20 20 74 6b 54 65 78 74 49 6e 73 65 72 74 20 25 57 20 5c 6e 0a 7d 0a 62 69 6e 64 20 54 65 78 74 ..tkTextInsert.%W.\n.}.bind.Text
25680 20 3c 44 65 6c 65 74 65 3e 20 7b 0a 20 20 20 20 69 66 20 7b 5b 73 74 72 69 6e 67 20 63 6f 6d 70 .<Delete>.{.....if.{[string.comp
256a0 61 72 65 20 5b 25 57 20 74 61 67 20 6e 65 78 74 72 61 6e 67 65 20 73 65 6c 20 31 2e 30 20 65 6e are.[%W.tag.nextrange.sel.1.0.en
256c0 64 5d 20 22 22 5d 7d 20 7b 0a 09 25 57 20 64 65 6c 65 74 65 20 73 65 6c 2e 66 69 72 73 74 20 73 d].""]}.{..%W.delete.sel.first.s
256e0 65 6c 2e 6c 61 73 74 0a 20 20 20 20 7d 20 65 6c 73 65 20 7b 0a 09 25 57 20 64 65 6c 65 74 65 20 el.last.....}.else.{..%W.delete.
25700 69 6e 73 65 72 74 0a 09 25 57 20 73 65 65 20 69 6e 73 65 72 74 0a 20 20 20 20 7d 0a 7d 0a 62 69 insert..%W.see.insert.....}.}.bi
25720 6e 64 20 54 65 78 74 20 3c 42 61 63 6b 53 70 61 63 65 3e 20 7b 0a 20 20 20 20 69 66 20 7b 5b 73 nd.Text.<BackSpace>.{.....if.{[s
25740 74 72 69 6e 67 20 63 6f 6d 70 61 72 65 20 5b 25 57 20 74 61 67 20 6e 65 78 74 72 61 6e 67 65 20 tring.compare.[%W.tag.nextrange.
25760 73 65 6c 20 31 2e 30 20 65 6e 64 5d 20 22 22 5d 7d 20 7b 0a 09 25 57 20 64 65 6c 65 74 65 20 73 sel.1.0.end].""]}.{..%W.delete.s
25780 65 6c 2e 66 69 72 73 74 20 73 65 6c 2e 6c 61 73 74 0a 20 20 20 20 7d 20 65 6c 73 65 69 66 20 7b el.first.sel.last.....}.elseif.{
257a0 5b 25 57 20 63 6f 6d 70 61 72 65 20 69 6e 73 65 72 74 20 21 3d 20 31 2e 30 5d 7d 20 7b 0a 09 25 [%W.compare.insert.!=.1.0]}.{..%
257c0 57 20 64 65 6c 65 74 65 20 69 6e 73 65 72 74 2d 31 63 0a 09 25 57 20 73 65 65 20 69 6e 73 65 72 W.delete.insert-1c..%W.see.inser
257e0 74 0a 20 20 20 20 7d 0a 7d 0a 0a 62 69 6e 64 20 54 65 78 74 20 3c 43 6f 6e 74 72 6f 6c 2d 73 70 t.....}.}..bind.Text.<Control-sp
25800 61 63 65 3e 20 7b 0a 20 20 20 20 25 57 20 6d 61 72 6b 20 73 65 74 20 61 6e 63 68 6f 72 20 69 6e ace>.{.....%W.mark.set.anchor.in
25820 73 65 72 74 0a 7d 0a 62 69 6e 64 20 54 65 78 74 20 3c 53 65 6c 65 63 74 3e 20 7b 0a 20 20 20 20 sert.}.bind.Text.<Select>.{.....
25840 25 57 20 6d 61 72 6b 20 73 65 74 20 61 6e 63 68 6f 72 20 69 6e 73 65 72 74 0a 7d 0a 62 69 6e 64 %W.mark.set.anchor.insert.}.bind
25860 20 54 65 78 74 20 3c 43 6f 6e 74 72 6f 6c 2d 53 68 69 66 74 2d 73 70 61 63 65 3e 20 7b 0a 20 20 .Text.<Control-Shift-space>.{...
25880 20 20 73 65 74 20 74 6b 50 72 69 76 28 73 65 6c 65 63 74 4d 6f 64 65 29 20 63 68 61 72 0a 20 20 ..set.tkPriv(selectMode).char...
258a0 20 20 74 6b 54 65 78 74 4b 65 79 45 78 74 65 6e 64 20 25 57 20 69 6e 73 65 72 74 0a 7d 0a 62 69 ..tkTextKeyExtend.%W.insert.}.bi
258c0 6e 64 20 54 65 78 74 20 3c 53 68 69 66 74 2d 53 65 6c 65 63 74 3e 20 7b 0a 20 20 20 20 73 65 74 nd.Text.<Shift-Select>.{.....set
258e0 20 74 6b 50 72 69 76 28 73 65 6c 65 63 74 4d 6f 64 65 29 20 63 68 61 72 0a 20 20 20 20 74 6b 54 .tkPriv(selectMode).char.....tkT
25900 65 78 74 4b 65 79 45 78 74 65 6e 64 20 25 57 20 69 6e 73 65 72 74 0a 7d 0a 62 69 6e 64 20 54 65 extKeyExtend.%W.insert.}.bind.Te
25920 78 74 20 3c 43 6f 6e 74 72 6f 6c 2d 73 6c 61 73 68 3e 20 7b 0a 20 20 20 20 25 57 20 74 61 67 20 xt.<Control-slash>.{.....%W.tag.
25940 61 64 64 20 73 65 6c 20 31 2e 30 20 65 6e 64 0a 7d 0a 62 69 6e 64 20 54 65 78 74 20 3c 43 6f 6e add.sel.1.0.end.}.bind.Text.<Con
25960 74 72 6f 6c 2d 62 61 63 6b 73 6c 61 73 68 3e 20 7b 0a 20 20 20 20 25 57 20 74 61 67 20 72 65 6d trol-backslash>.{.....%W.tag.rem
25980 6f 76 65 20 73 65 6c 20 31 2e 30 20 65 6e 64 0a 7d 0a 62 69 6e 64 20 54 65 78 74 20 3c 3c 43 75 ove.sel.1.0.end.}.bind.Text.<<Cu
259a0 74 3e 3e 20 7b 0a 20 20 20 20 74 6b 5f 74 65 78 74 43 75 74 20 25 57 0a 7d 0a 62 69 6e 64 20 54 t>>.{.....tk_textCut.%W.}.bind.T
259c0 65 78 74 20 3c 3c 43 6f 70 79 3e 3e 20 7b 0a 20 20 20 20 74 6b 5f 74 65 78 74 43 6f 70 79 20 25 ext.<<Copy>>.{.....tk_textCopy.%
259e0 57 0a 7d 0a 62 69 6e 64 20 54 65 78 74 20 3c 3c 50 61 73 74 65 3e 3e 20 7b 0a 20 20 20 20 74 6b W.}.bind.Text.<<Paste>>.{.....tk
25a00 5f 74 65 78 74 50 61 73 74 65 20 25 57 0a 7d 0a 62 69 6e 64 20 54 65 78 74 20 3c 3c 43 6c 65 61 _textPaste.%W.}.bind.Text.<<Clea
25a20 72 3e 3e 20 7b 0a 20 20 20 20 63 61 74 63 68 20 7b 25 57 20 64 65 6c 65 74 65 20 73 65 6c 2e 66 r>>.{.....catch.{%W.delete.sel.f
25a40 69 72 73 74 20 73 65 6c 2e 6c 61 73 74 7d 0a 7d 0a 62 69 6e 64 20 54 65 78 74 20 3c 3c 50 61 73 irst.sel.last}.}.bind.Text.<<Pas
25a60 74 65 53 65 6c 65 63 74 69 6f 6e 3e 3e 20 7b 0a 20 20 20 20 69 66 20 7b 21 24 74 6b 50 72 69 76 teSelection>>.{.....if.{!$tkPriv
25a80 28 6d 6f 75 73 65 4d 6f 76 65 64 29 20 7c 7c 20 24 74 6b 5f 73 74 72 69 63 74 4d 6f 74 69 66 7d (mouseMoved).||.$tk_strictMotif}
25aa0 20 7b 0a 09 74 6b 54 65 78 74 50 61 73 74 65 20 25 57 20 25 78 20 25 79 0a 20 20 20 20 7d 0a 7d .{..tkTextPaste.%W.%x.%y.....}.}
25ac0 0a 62 69 6e 64 20 54 65 78 74 20 3c 49 6e 73 65 72 74 3e 20 7b 0a 20 20 20 20 63 61 74 63 68 20 .bind.Text.<Insert>.{.....catch.
25ae0 7b 74 6b 54 65 78 74 49 6e 73 65 72 74 20 25 57 20 5b 73 65 6c 65 63 74 69 6f 6e 20 67 65 74 20 {tkTextInsert.%W.[selection.get.
25b00 2d 64 69 73 70 6c 61 79 6f 66 20 25 57 5d 7d 0a 7d 0a 62 69 6e 64 20 54 65 78 74 20 3c 4b 65 79 -displayof.%W]}.}.bind.Text.<Key
25b20 50 72 65 73 73 3e 20 7b 0a 20 20 20 20 74 6b 54 65 78 74 49 6e 73 65 72 74 20 25 57 20 25 41 0a Press>.{.....tkTextInsert.%W.%A.
25b40 7d 0a 0a 23 20 49 67 6e 6f 72 65 20 61 6c 6c 20 41 6c 74 2c 20 4d 65 74 61 2c 20 61 6e 64 20 43 }..#.Ignore.all.Alt,.Meta,.and.C
25b60 6f 6e 74 72 6f 6c 20 6b 65 79 70 72 65 73 73 65 73 20 75 6e 6c 65 73 73 20 65 78 70 6c 69 63 69 ontrol.keypresses.unless.explici
25b80 74 6c 79 20 62 6f 75 6e 64 2e 0a 23 20 4f 74 68 65 72 77 69 73 65 2c 20 69 66 20 61 20 77 69 64 tly.bound..#.Otherwise,.if.a.wid
25ba0 67 65 74 20 62 69 6e 64 69 6e 67 20 66 6f 72 20 6f 6e 65 20 6f 66 20 74 68 65 73 65 20 69 73 20 get.binding.for.one.of.these.is.
25bc0 64 65 66 69 6e 65 64 2c 20 74 68 65 0a 23 20 3c 4b 65 79 50 72 65 73 73 3e 20 63 6c 61 73 73 20 defined,.the.#.<KeyPress>.class.
25be0 62 69 6e 64 69 6e 67 20 77 69 6c 6c 20 61 6c 73 6f 20 66 69 72 65 20 61 6e 64 20 69 6e 73 65 72 binding.will.also.fire.and.inser
25c00 74 20 74 68 65 20 63 68 61 72 61 63 74 65 72 2c 0a 23 20 77 68 69 63 68 20 69 73 20 77 72 6f 6e t.the.character,.#.which.is.wron
25c20 67 2e 20 20 44 69 74 74 6f 20 66 6f 72 20 3c 45 73 63 61 70 65 3e 2e 0a 0a 62 69 6e 64 20 54 65 g...Ditto.for.<Escape>...bind.Te
25c40 78 74 20 3c 41 6c 74 2d 4b 65 79 50 72 65 73 73 3e 20 7b 23 20 6e 6f 74 68 69 6e 67 20 7d 0a 62 xt.<Alt-KeyPress>.{#.nothing.}.b
25c60 69 6e 64 20 54 65 78 74 20 3c 4d 65 74 61 2d 4b 65 79 50 72 65 73 73 3e 20 7b 23 20 6e 6f 74 68 ind.Text.<Meta-KeyPress>.{#.noth
25c80 69 6e 67 7d 0a 62 69 6e 64 20 54 65 78 74 20 3c 43 6f 6e 74 72 6f 6c 2d 4b 65 79 50 72 65 73 73 ing}.bind.Text.<Control-KeyPress
25ca0 3e 20 7b 23 20 6e 6f 74 68 69 6e 67 7d 0a 62 69 6e 64 20 54 65 78 74 20 3c 45 73 63 61 70 65 3e >.{#.nothing}.bind.Text.<Escape>
25cc0 20 7b 23 20 6e 6f 74 68 69 6e 67 7d 0a 62 69 6e 64 20 54 65 78 74 20 3c 4b 50 5f 45 6e 74 65 72 .{#.nothing}.bind.Text.<KP_Enter
25ce0 3e 20 7b 23 20 6e 6f 74 68 69 6e 67 7d 0a 69 66 20 7b 5b 73 74 72 69 6e 67 20 65 71 75 61 6c 20 >.{#.nothing}.if.{[string.equal.
25d00 24 74 63 6c 5f 70 6c 61 74 66 6f 72 6d 28 70 6c 61 74 66 6f 72 6d 29 20 22 6d 61 63 69 6e 74 6f $tcl_platform(platform)."macinto
25d20 73 68 22 5d 7d 20 7b 0a 20 20 20 20 62 69 6e 64 20 54 65 78 74 20 3c 43 6f 6d 6d 61 6e 64 2d 4b sh"]}.{.....bind.Text.<Command-K
25d40 65 79 50 72 65 73 73 3e 20 7b 23 20 6e 6f 74 68 69 6e 67 7d 0a 7d 0a 0a 23 20 41 64 64 69 74 69 eyPress>.{#.nothing}.}..#.Additi
25d60 6f 6e 61 6c 20 65 6d 61 63 73 2d 6c 69 6b 65 20 62 69 6e 64 69 6e 67 73 3a 0a 0a 62 69 6e 64 20 onal.emacs-like.bindings:..bind.
25d80 54 65 78 74 20 3c 43 6f 6e 74 72 6f 6c 2d 61 3e 20 7b 0a 20 20 20 20 69 66 20 7b 21 24 74 6b 5f Text.<Control-a>.{.....if.{!$tk_
25da0 73 74 72 69 63 74 4d 6f 74 69 66 7d 20 7b 0a 09 74 6b 54 65 78 74 53 65 74 43 75 72 73 6f 72 20 strictMotif}.{..tkTextSetCursor.
25dc0 25 57 20 7b 69 6e 73 65 72 74 20 6c 69 6e 65 73 74 61 72 74 7d 0a 20 20 20 20 7d 0a 7d 0a 62 69 %W.{insert.linestart}.....}.}.bi
25de0 6e 64 20 54 65 78 74 20 3c 43 6f 6e 74 72 6f 6c 2d 62 3e 20 7b 0a 20 20 20 20 69 66 20 7b 21 24 nd.Text.<Control-b>.{.....if.{!$
25e00 74 6b 5f 73 74 72 69 63 74 4d 6f 74 69 66 7d 20 7b 0a 09 74 6b 54 65 78 74 53 65 74 43 75 72 73 tk_strictMotif}.{..tkTextSetCurs
25e20 6f 72 20 25 57 20 69 6e 73 65 72 74 2d 31 63 0a 20 20 20 20 7d 0a 7d 0a 62 69 6e 64 20 54 65 78 or.%W.insert-1c.....}.}.bind.Tex
25e40 74 20 3c 43 6f 6e 74 72 6f 6c 2d 64 3e 20 7b 0a 20 20 20 20 69 66 20 7b 21 24 74 6b 5f 73 74 72 t.<Control-d>.{.....if.{!$tk_str
25e60 69 63 74 4d 6f 74 69 66 7d 20 7b 0a 09 25 57 20 64 65 6c 65 74 65 20 69 6e 73 65 72 74 0a 20 20 ictMotif}.{..%W.delete.insert...
25e80 20 20 7d 0a 7d 0a 62 69 6e 64 20 54 65 78 74 20 3c 43 6f 6e 74 72 6f 6c 2d 65 3e 20 7b 0a 20 20 ..}.}.bind.Text.<Control-e>.{...
25ea0 20 20 69 66 20 7b 21 24 74 6b 5f 73 74 72 69 63 74 4d 6f 74 69 66 7d 20 7b 0a 09 74 6b 54 65 78 ..if.{!$tk_strictMotif}.{..tkTex
25ec0 74 53 65 74 43 75 72 73 6f 72 20 25 57 20 7b 69 6e 73 65 72 74 20 6c 69 6e 65 65 6e 64 7d 0a 20 tSetCursor.%W.{insert.lineend}..
25ee0 20 20 20 7d 0a 7d 0a 62 69 6e 64 20 54 65 78 74 20 3c 43 6f 6e 74 72 6f 6c 2d 66 3e 20 7b 0a 20 ...}.}.bind.Text.<Control-f>.{..
25f00 20 20 20 69 66 20 7b 21 24 74 6b 5f 73 74 72 69 63 74 4d 6f 74 69 66 7d 20 7b 0a 09 74 6b 54 65 ...if.{!$tk_strictMotif}.{..tkTe
25f20 78 74 53 65 74 43 75 72 73 6f 72 20 25 57 20 69 6e 73 65 72 74 2b 31 63 0a 20 20 20 20 7d 0a 7d xtSetCursor.%W.insert+1c.....}.}
25f40 0a 62 69 6e 64 20 54 65 78 74 20 3c 43 6f 6e 74 72 6f 6c 2d 6b 3e 20 7b 0a 20 20 20 20 69 66 20 .bind.Text.<Control-k>.{.....if.
25f60 7b 21 24 74 6b 5f 73 74 72 69 63 74 4d 6f 74 69 66 7d 20 7b 0a 09 69 66 20 7b 5b 25 57 20 63 6f {!$tk_strictMotif}.{..if.{[%W.co
25f80 6d 70 61 72 65 20 69 6e 73 65 72 74 20 3d 3d 20 7b 69 6e 73 65 72 74 20 6c 69 6e 65 65 6e 64 7d mpare.insert.==.{insert.lineend}
25fa0 5d 7d 20 7b 0a 09 20 20 20 20 25 57 20 64 65 6c 65 74 65 20 69 6e 73 65 72 74 0a 09 7d 20 65 6c ]}.{......%W.delete.insert..}.el
25fc0 73 65 20 7b 0a 09 20 20 20 20 25 57 20 64 65 6c 65 74 65 20 69 6e 73 65 72 74 20 7b 69 6e 73 65 se.{......%W.delete.insert.{inse
25fe0 72 74 20 6c 69 6e 65 65 6e 64 7d 0a 09 7d 0a 20 20 20 20 7d 0a 7d 0a 62 69 6e 64 20 54 65 78 74 rt.lineend}..}.....}.}.bind.Text
26000 20 3c 43 6f 6e 74 72 6f 6c 2d 6e 3e 20 7b 0a 20 20 20 20 69 66 20 7b 21 24 74 6b 5f 73 74 72 69 .<Control-n>.{.....if.{!$tk_stri
26020 63 74 4d 6f 74 69 66 7d 20 7b 0a 09 74 6b 54 65 78 74 53 65 74 43 75 72 73 6f 72 20 25 57 20 5b ctMotif}.{..tkTextSetCursor.%W.[
26040 74 6b 54 65 78 74 55 70 44 6f 77 6e 4c 69 6e 65 20 25 57 20 31 5d 0a 20 20 20 20 7d 0a 7d 0a 62 tkTextUpDownLine.%W.1].....}.}.b
26060 69 6e 64 20 54 65 78 74 20 3c 43 6f 6e 74 72 6f 6c 2d 6f 3e 20 7b 0a 20 20 20 20 69 66 20 7b 21 ind.Text.<Control-o>.{.....if.{!
26080 24 74 6b 5f 73 74 72 69 63 74 4d 6f 74 69 66 7d 20 7b 0a 09 25 57 20 69 6e 73 65 72 74 20 69 6e $tk_strictMotif}.{..%W.insert.in
260a0 73 65 72 74 20 5c 6e 0a 09 25 57 20 6d 61 72 6b 20 73 65 74 20 69 6e 73 65 72 74 20 69 6e 73 65 sert.\n..%W.mark.set.insert.inse
260c0 72 74 2d 31 63 0a 20 20 20 20 7d 0a 7d 0a 62 69 6e 64 20 54 65 78 74 20 3c 43 6f 6e 74 72 6f 6c rt-1c.....}.}.bind.Text.<Control
260e0 2d 70 3e 20 7b 0a 20 20 20 20 69 66 20 7b 21 24 74 6b 5f 73 74 72 69 63 74 4d 6f 74 69 66 7d 20 -p>.{.....if.{!$tk_strictMotif}.
26100 7b 0a 09 74 6b 54 65 78 74 53 65 74 43 75 72 73 6f 72 20 25 57 20 5b 74 6b 54 65 78 74 55 70 44 {..tkTextSetCursor.%W.[tkTextUpD
26120 6f 77 6e 4c 69 6e 65 20 25 57 20 2d 31 5d 0a 20 20 20 20 7d 0a 7d 0a 62 69 6e 64 20 54 65 78 74 ownLine.%W.-1].....}.}.bind.Text
26140 20 3c 43 6f 6e 74 72 6f 6c 2d 74 3e 20 7b 0a 20 20 20 20 69 66 20 7b 21 24 74 6b 5f 73 74 72 69 .<Control-t>.{.....if.{!$tk_stri
26160 63 74 4d 6f 74 69 66 7d 20 7b 0a 09 74 6b 54 65 78 74 54 72 61 6e 73 70 6f 73 65 20 25 57 0a 20 ctMotif}.{..tkTextTranspose.%W..
26180 20 20 20 7d 0a 7d 0a 0a 69 66 20 7b 5b 73 74 72 69 6e 67 20 63 6f 6d 70 61 72 65 20 24 74 63 6c ...}.}..if.{[string.compare.$tcl
261a0 5f 70 6c 61 74 66 6f 72 6d 28 70 6c 61 74 66 6f 72 6d 29 20 22 77 69 6e 64 6f 77 73 22 5d 7d 20 _platform(platform)."windows"]}.
261c0 7b 0a 62 69 6e 64 20 54 65 78 74 20 3c 43 6f 6e 74 72 6f 6c 2d 76 3e 20 7b 0a 20 20 20 20 69 66 {.bind.Text.<Control-v>.{.....if
261e0 20 7b 21 24 74 6b 5f 73 74 72 69 63 74 4d 6f 74 69 66 7d 20 7b 0a 09 74 6b 54 65 78 74 53 63 72 .{!$tk_strictMotif}.{..tkTextScr
26200 6f 6c 6c 50 61 67 65 73 20 25 57 20 31 0a 20 20 20 20 7d 0a 7d 0a 7d 0a 0a 62 69 6e 64 20 54 65 ollPages.%W.1.....}.}.}..bind.Te
26220 78 74 20 3c 4d 65 74 61 2d 62 3e 20 7b 0a 20 20 20 20 69 66 20 7b 21 24 74 6b 5f 73 74 72 69 63 xt.<Meta-b>.{.....if.{!$tk_stric
26240 74 4d 6f 74 69 66 7d 20 7b 0a 09 74 6b 54 65 78 74 53 65 74 43 75 72 73 6f 72 20 25 57 20 5b 74 tMotif}.{..tkTextSetCursor.%W.[t
26260 6b 54 65 78 74 50 72 65 76 50 6f 73 20 25 57 20 69 6e 73 65 72 74 20 74 63 6c 5f 73 74 61 72 74 kTextPrevPos.%W.insert.tcl_start
26280 4f 66 50 72 65 76 69 6f 75 73 57 6f 72 64 5d 0a 20 20 20 20 7d 0a 7d 0a 62 69 6e 64 20 54 65 78 OfPreviousWord].....}.}.bind.Tex
262a0 74 20 3c 4d 65 74 61 2d 64 3e 20 7b 0a 20 20 20 20 69 66 20 7b 21 24 74 6b 5f 73 74 72 69 63 74 t.<Meta-d>.{.....if.{!$tk_strict
262c0 4d 6f 74 69 66 7d 20 7b 0a 09 25 57 20 64 65 6c 65 74 65 20 69 6e 73 65 72 74 20 5b 74 6b 54 65 Motif}.{..%W.delete.insert.[tkTe
262e0 78 74 4e 65 78 74 57 6f 72 64 20 25 57 20 69 6e 73 65 72 74 5d 0a 20 20 20 20 7d 0a 7d 0a 62 69 xtNextWord.%W.insert].....}.}.bi
26300 6e 64 20 54 65 78 74 20 3c 4d 65 74 61 2d 66 3e 20 7b 0a 20 20 20 20 69 66 20 7b 21 24 74 6b 5f nd.Text.<Meta-f>.{.....if.{!$tk_
26320 73 74 72 69 63 74 4d 6f 74 69 66 7d 20 7b 0a 09 74 6b 54 65 78 74 53 65 74 43 75 72 73 6f 72 20 strictMotif}.{..tkTextSetCursor.
26340 25 57 20 5b 74 6b 54 65 78 74 4e 65 78 74 57 6f 72 64 20 25 57 20 69 6e 73 65 72 74 5d 0a 20 20 %W.[tkTextNextWord.%W.insert]...
26360 20 20 7d 0a 7d 0a 62 69 6e 64 20 54 65 78 74 20 3c 4d 65 74 61 2d 6c 65 73 73 3e 20 7b 0a 20 20 ..}.}.bind.Text.<Meta-less>.{...
26380 20 20 69 66 20 7b 21 24 74 6b 5f 73 74 72 69 63 74 4d 6f 74 69 66 7d 20 7b 0a 09 74 6b 54 65 78 ..if.{!$tk_strictMotif}.{..tkTex
263a0 74 53 65 74 43 75 72 73 6f 72 20 25 57 20 31 2e 30 0a 20 20 20 20 7d 0a 7d 0a 62 69 6e 64 20 54 tSetCursor.%W.1.0.....}.}.bind.T
263c0 65 78 74 20 3c 4d 65 74 61 2d 67 72 65 61 74 65 72 3e 20 7b 0a 20 20 20 20 69 66 20 7b 21 24 74 ext.<Meta-greater>.{.....if.{!$t
263e0 6b 5f 73 74 72 69 63 74 4d 6f 74 69 66 7d 20 7b 0a 09 74 6b 54 65 78 74 53 65 74 43 75 72 73 6f k_strictMotif}.{..tkTextSetCurso
26400 72 20 25 57 20 65 6e 64 2d 31 63 0a 20 20 20 20 7d 0a 7d 0a 62 69 6e 64 20 54 65 78 74 20 3c 4d r.%W.end-1c.....}.}.bind.Text.<M
26420 65 74 61 2d 42 61 63 6b 53 70 61 63 65 3e 20 7b 0a 20 20 20 20 69 66 20 7b 21 24 74 6b 5f 73 74 eta-BackSpace>.{.....if.{!$tk_st
26440 72 69 63 74 4d 6f 74 69 66 7d 20 7b 0a 09 25 57 20 64 65 6c 65 74 65 20 5b 74 6b 54 65 78 74 50 rictMotif}.{..%W.delete.[tkTextP
26460 72 65 76 50 6f 73 20 25 57 20 69 6e 73 65 72 74 20 74 63 6c 5f 73 74 61 72 74 4f 66 50 72 65 76 revPos.%W.insert.tcl_startOfPrev
26480 69 6f 75 73 57 6f 72 64 5d 20 69 6e 73 65 72 74 0a 20 20 20 20 7d 0a 7d 0a 62 69 6e 64 20 54 65 iousWord].insert.....}.}.bind.Te
264a0 78 74 20 3c 4d 65 74 61 2d 44 65 6c 65 74 65 3e 20 7b 0a 20 20 20 20 69 66 20 7b 21 24 74 6b 5f xt.<Meta-Delete>.{.....if.{!$tk_
264c0 73 74 72 69 63 74 4d 6f 74 69 66 7d 20 7b 0a 09 25 57 20 64 65 6c 65 74 65 20 5b 74 6b 54 65 78 strictMotif}.{..%W.delete.[tkTex
264e0 74 50 72 65 76 50 6f 73 20 25 57 20 69 6e 73 65 72 74 20 74 63 6c 5f 73 74 61 72 74 4f 66 50 72 tPrevPos.%W.insert.tcl_startOfPr
26500 65 76 69 6f 75 73 57 6f 72 64 5d 20 69 6e 73 65 72 74 0a 20 20 20 20 7d 0a 7d 0a 0a 23 20 4d 61 eviousWord].insert.....}.}..#.Ma
26520 63 69 6e 74 6f 73 68 20 6f 6e 6c 79 20 62 69 6e 64 69 6e 67 73 3a 0a 0a 23 20 69 66 20 74 65 78 cintosh.only.bindings:..#.if.tex
26540 74 20 62 6c 61 63 6b 20 26 20 68 69 67 68 6c 69 67 68 74 20 62 6c 61 63 6b 20 2d 3e 20 74 65 78 t.black.&.highlight.black.->.tex
26560 74 20 77 68 69 74 65 2c 20 6f 74 68 65 72 20 74 65 78 74 20 74 68 65 20 73 61 6d 65 0a 69 66 20 t.white,.other.text.the.same.if.
26580 7b 5b 73 74 72 69 6e 67 20 65 71 75 61 6c 20 24 74 63 6c 5f 70 6c 61 74 66 6f 72 6d 28 70 6c 61 {[string.equal.$tcl_platform(pla
265a0 74 66 6f 72 6d 29 20 22 6d 61 63 69 6e 74 6f 73 68 22 5d 7d 20 7b 0a 62 69 6e 64 20 54 65 78 74 tform)."macintosh"]}.{.bind.Text
265c0 20 3c 46 6f 63 75 73 49 6e 3e 20 7b 0a 20 20 20 20 25 57 20 74 61 67 20 63 6f 6e 66 69 67 75 72 .<FocusIn>.{.....%W.tag.configur
265e0 65 20 73 65 6c 20 2d 62 6f 72 64 65 72 77 69 64 74 68 20 30 0a 20 20 20 20 25 57 20 63 6f 6e 66 e.sel.-borderwidth.0.....%W.conf
26600 69 67 75 72 65 20 2d 73 65 6c 65 63 74 62 61 63 6b 67 72 6f 75 6e 64 20 73 79 73 74 65 6d 48 69 igure.-selectbackground.systemHi
26620 67 68 6c 69 67 68 74 20 2d 73 65 6c 65 63 74 66 6f 72 65 67 72 6f 75 6e 64 20 73 79 73 74 65 6d ghlight.-selectforeground.system
26640 48 69 67 68 6c 69 67 68 74 54 65 78 74 0a 7d 0a 62 69 6e 64 20 54 65 78 74 20 3c 46 6f 63 75 73 HighlightText.}.bind.Text.<Focus
26660 4f 75 74 3e 20 7b 0a 20 20 20 20 25 57 20 74 61 67 20 63 6f 6e 66 69 67 75 72 65 20 73 65 6c 20 Out>.{.....%W.tag.configure.sel.
26680 2d 62 6f 72 64 65 72 77 69 64 74 68 20 31 0a 20 20 20 20 25 57 20 63 6f 6e 66 69 67 75 72 65 20 -borderwidth.1.....%W.configure.
266a0 2d 73 65 6c 65 63 74 62 61 63 6b 67 72 6f 75 6e 64 20 77 68 69 74 65 20 2d 73 65 6c 65 63 74 66 -selectbackground.white.-selectf
266c0 6f 72 65 67 72 6f 75 6e 64 20 62 6c 61 63 6b 0a 7d 0a 62 69 6e 64 20 54 65 78 74 20 3c 4f 70 74 oreground.black.}.bind.Text.<Opt
266e0 69 6f 6e 2d 4c 65 66 74 3e 20 7b 0a 20 20 20 20 74 6b 54 65 78 74 53 65 74 43 75 72 73 6f 72 20 ion-Left>.{.....tkTextSetCursor.
26700 25 57 20 5b 74 6b 54 65 78 74 50 72 65 76 50 6f 73 20 25 57 20 69 6e 73 65 72 74 20 74 63 6c 5f %W.[tkTextPrevPos.%W.insert.tcl_
26720 73 74 61 72 74 4f 66 50 72 65 76 69 6f 75 73 57 6f 72 64 5d 0a 7d 0a 62 69 6e 64 20 54 65 78 74 startOfPreviousWord].}.bind.Text
26740 20 3c 4f 70 74 69 6f 6e 2d 52 69 67 68 74 3e 20 7b 0a 20 20 20 20 74 6b 54 65 78 74 53 65 74 43 .<Option-Right>.{.....tkTextSetC
26760 75 72 73 6f 72 20 25 57 20 5b 74 6b 54 65 78 74 4e 65 78 74 57 6f 72 64 20 25 57 20 69 6e 73 65 ursor.%W.[tkTextNextWord.%W.inse
26780 72 74 5d 0a 7d 0a 62 69 6e 64 20 54 65 78 74 20 3c 4f 70 74 69 6f 6e 2d 55 70 3e 20 7b 0a 20 20 rt].}.bind.Text.<Option-Up>.{...
267a0 20 20 74 6b 54 65 78 74 53 65 74 43 75 72 73 6f 72 20 25 57 20 5b 74 6b 54 65 78 74 50 72 65 76 ..tkTextSetCursor.%W.[tkTextPrev
267c0 50 61 72 61 20 25 57 20 69 6e 73 65 72 74 5d 0a 7d 0a 62 69 6e 64 20 54 65 78 74 20 3c 4f 70 74 Para.%W.insert].}.bind.Text.<Opt
267e0 69 6f 6e 2d 44 6f 77 6e 3e 20 7b 0a 20 20 20 20 74 6b 54 65 78 74 53 65 74 43 75 72 73 6f 72 20 ion-Down>.{.....tkTextSetCursor.
26800 25 57 20 5b 74 6b 54 65 78 74 4e 65 78 74 50 61 72 61 20 25 57 20 69 6e 73 65 72 74 5d 0a 7d 0a %W.[tkTextNextPara.%W.insert].}.
26820 62 69 6e 64 20 54 65 78 74 20 3c 53 68 69 66 74 2d 4f 70 74 69 6f 6e 2d 4c 65 66 74 3e 20 7b 0a bind.Text.<Shift-Option-Left>.{.
26840 20 20 20 20 74 6b 54 65 78 74 4b 65 79 53 65 6c 65 63 74 20 25 57 20 5b 74 6b 54 65 78 74 50 72 ....tkTextKeySelect.%W.[tkTextPr
26860 65 76 50 6f 73 20 25 57 20 69 6e 73 65 72 74 20 74 63 6c 5f 73 74 61 72 74 4f 66 50 72 65 76 69 evPos.%W.insert.tcl_startOfPrevi
26880 6f 75 73 57 6f 72 64 5d 0a 7d 0a 62 69 6e 64 20 54 65 78 74 20 3c 53 68 69 66 74 2d 4f 70 74 69 ousWord].}.bind.Text.<Shift-Opti
268a0 6f 6e 2d 52 69 67 68 74 3e 20 7b 0a 20 20 20 20 74 6b 54 65 78 74 4b 65 79 53 65 6c 65 63 74 20 on-Right>.{.....tkTextKeySelect.
268c0 25 57 20 5b 74 6b 54 65 78 74 4e 65 78 74 57 6f 72 64 20 25 57 20 69 6e 73 65 72 74 5d 0a 7d 0a %W.[tkTextNextWord.%W.insert].}.
268e0 62 69 6e 64 20 54 65 78 74 20 3c 53 68 69 66 74 2d 4f 70 74 69 6f 6e 2d 55 70 3e 20 7b 0a 20 20 bind.Text.<Shift-Option-Up>.{...
26900 20 20 74 6b 54 65 78 74 4b 65 79 53 65 6c 65 63 74 20 25 57 20 5b 74 6b 54 65 78 74 50 72 65 76 ..tkTextKeySelect.%W.[tkTextPrev
26920 50 61 72 61 20 25 57 20 69 6e 73 65 72 74 5d 0a 7d 0a 62 69 6e 64 20 54 65 78 74 20 3c 53 68 69 Para.%W.insert].}.bind.Text.<Shi
26940 66 74 2d 4f 70 74 69 6f 6e 2d 44 6f 77 6e 3e 20 7b 0a 20 20 20 20 74 6b 54 65 78 74 4b 65 79 53 ft-Option-Down>.{.....tkTextKeyS
26960 65 6c 65 63 74 20 25 57 20 5b 74 6b 54 65 78 74 4e 65 78 74 50 61 72 61 20 25 57 20 69 6e 73 65 elect.%W.[tkTextNextPara.%W.inse
26980 72 74 5d 0a 7d 0a 0a 23 20 45 6e 64 20 6f 66 20 4d 61 63 20 6f 6e 6c 79 20 62 69 6e 64 69 6e 67 rt].}..#.End.of.Mac.only.binding
269a0 73 0a 7d 0a 0a 23 20 41 20 66 65 77 20 61 64 64 69 74 69 6f 6e 61 6c 20 62 69 6e 64 69 6e 67 73 s.}..#.A.few.additional.bindings
269c0 20 6f 66 20 6d 79 20 6f 77 6e 2e 0a 0a 62 69 6e 64 20 54 65 78 74 20 3c 43 6f 6e 74 72 6f 6c 2d .of.my.own...bind.Text.<Control-
269e0 68 3e 20 7b 0a 20 20 20 20 69 66 20 7b 21 24 74 6b 5f 73 74 72 69 63 74 4d 6f 74 69 66 7d 20 7b h>.{.....if.{!$tk_strictMotif}.{
26a00 0a 09 69 66 20 7b 5b 25 57 20 63 6f 6d 70 61 72 65 20 69 6e 73 65 72 74 20 21 3d 20 31 2e 30 5d ..if.{[%W.compare.insert.!=.1.0]
26a20 7d 20 7b 0a 09 20 20 20 20 25 57 20 64 65 6c 65 74 65 20 69 6e 73 65 72 74 2d 31 63 0a 09 20 20 }.{......%W.delete.insert-1c....
26a40 20 20 25 57 20 73 65 65 20 69 6e 73 65 72 74 0a 09 7d 0a 20 20 20 20 7d 0a 7d 0a 62 69 6e 64 20 ..%W.see.insert..}.....}.}.bind.
26a60 54 65 78 74 20 3c 32 3e 20 7b 0a 20 20 20 20 69 66 20 7b 21 24 74 6b 5f 73 74 72 69 63 74 4d 6f Text.<2>.{.....if.{!$tk_strictMo
26a80 74 69 66 7d 20 7b 0a 09 25 57 20 73 63 61 6e 20 6d 61 72 6b 20 25 78 20 25 79 0a 09 73 65 74 20 tif}.{..%W.scan.mark.%x.%y..set.
26aa0 74 6b 50 72 69 76 28 78 29 20 25 78 0a 09 73 65 74 20 74 6b 50 72 69 76 28 79 29 20 25 79 0a 09 tkPriv(x).%x..set.tkPriv(y).%y..
26ac0 73 65 74 20 74 6b 50 72 69 76 28 6d 6f 75 73 65 4d 6f 76 65 64 29 20 30 0a 20 20 20 20 7d 0a 7d set.tkPriv(mouseMoved).0.....}.}
26ae0 0a 62 69 6e 64 20 54 65 78 74 20 3c 42 32 2d 4d 6f 74 69 6f 6e 3e 20 7b 0a 20 20 20 20 69 66 20 .bind.Text.<B2-Motion>.{.....if.
26b00 7b 21 24 74 6b 5f 73 74 72 69 63 74 4d 6f 74 69 66 7d 20 7b 0a 09 69 66 20 7b 28 25 78 20 21 3d {!$tk_strictMotif}.{..if.{(%x.!=
26b20 20 24 74 6b 50 72 69 76 28 78 29 29 20 7c 7c 20 28 25 79 20 21 3d 20 24 74 6b 50 72 69 76 28 79 .$tkPriv(x)).||.(%y.!=.$tkPriv(y
26b40 29 29 7d 20 7b 0a 09 20 20 20 20 73 65 74 20 74 6b 50 72 69 76 28 6d 6f 75 73 65 4d 6f 76 65 64 ))}.{......set.tkPriv(mouseMoved
26b60 29 20 31 0a 09 7d 0a 09 69 66 20 7b 24 74 6b 50 72 69 76 28 6d 6f 75 73 65 4d 6f 76 65 64 29 7d ).1..}..if.{$tkPriv(mouseMoved)}
26b80 20 7b 0a 09 20 20 20 20 25 57 20 73 63 61 6e 20 64 72 61 67 74 6f 20 25 78 20 25 79 0a 09 7d 0a .{......%W.scan.dragto.%x.%y..}.
26ba0 20 20 20 20 7d 0a 7d 0a 73 65 74 20 74 6b 50 72 69 76 28 70 72 65 76 50 6f 73 29 20 7b 7d 0a 0a ....}.}.set.tkPriv(prevPos).{}..
26bc0 23 20 54 68 65 20 4d 6f 75 73 65 57 68 65 65 6c 20 77 69 6c 6c 20 74 79 70 69 63 61 6c 6c 79 20 #.The.MouseWheel.will.typically.
26be0 6f 6e 6c 79 20 66 69 72 65 20 6f 6e 20 57 69 6e 64 6f 77 73 2e 20 20 48 6f 77 65 76 65 72 2c 0a only.fire.on.Windows...However,.
26c00 23 20 73 6f 6d 65 6f 6e 65 20 63 6f 75 6c 64 20 75 73 65 20 74 68 65 20 22 65 76 65 6e 74 20 67 #.someone.could.use.the."event.g
26c20 65 6e 65 72 61 74 65 22 20 63 6f 6d 6d 61 6e 64 20 74 6f 20 70 72 6f 64 75 63 65 20 6f 6e 65 0a enerate".command.to.produce.one.
26c40 23 20 6f 6e 20 6f 74 68 65 72 20 70 6c 61 74 66 6f 72 6d 73 2e 0a 0a 62 69 6e 64 20 54 65 78 74 #.on.other.platforms...bind.Text
26c60 20 3c 4d 6f 75 73 65 57 68 65 65 6c 3e 20 7b 0a 20 20 20 20 25 57 20 79 76 69 65 77 20 73 63 72 .<MouseWheel>.{.....%W.yview.scr
26c80 6f 6c 6c 20 5b 65 78 70 72 20 7b 2d 20 28 25 44 20 2f 20 31 32 30 29 20 2a 20 34 7d 5d 20 75 6e oll.[expr.{-.(%D./.120).*.4}].un
26ca0 69 74 73 0a 7d 0a 0a 69 66 20 7b 5b 73 74 72 69 6e 67 20 65 71 75 61 6c 20 22 75 6e 69 78 22 20 its.}..if.{[string.equal."unix".
26cc0 24 74 63 6c 5f 70 6c 61 74 66 6f 72 6d 28 70 6c 61 74 66 6f 72 6d 29 5d 7d 20 7b 0a 20 20 20 20 $tcl_platform(platform)]}.{.....
26ce0 23 20 53 75 70 70 6f 72 74 20 66 6f 72 20 6d 6f 75 73 65 77 68 65 65 6c 73 20 6f 6e 20 4c 69 6e #.Support.for.mousewheels.on.Lin
26d00 75 78 2f 55 6e 69 78 20 63 6f 6d 6d 6f 6e 6c 79 20 63 6f 6d 65 73 20 74 68 72 6f 75 67 68 20 6d ux/Unix.commonly.comes.through.m
26d20 61 70 70 69 6e 67 0a 20 20 20 20 23 20 74 68 65 20 77 68 65 65 6c 20 74 6f 20 74 68 65 20 65 78 apping.....#.the.wheel.to.the.ex
26d40 74 65 6e 64 65 64 20 62 75 74 74 6f 6e 73 2e 20 20 49 66 20 79 6f 75 20 68 61 76 65 20 61 20 6d tended.buttons...If.you.have.a.m
26d60 6f 75 73 65 77 68 65 65 6c 2c 20 66 69 6e 64 0a 20 20 20 20 23 20 4c 69 6e 75 78 20 63 6f 6e 66 ousewheel,.find.....#.Linux.conf
26d80 69 67 75 72 61 74 69 6f 6e 20 69 6e 66 6f 20 61 74 3a 0a 20 20 20 20 23 09 68 74 74 70 3a 2f 2f iguration.info.at:.....#.http://
26da0 77 77 77 2e 69 6e 72 69 61 2e 66 72 2f 6b 6f 61 6c 61 2f 63 6f 6c 61 73 2f 6d 6f 75 73 65 2d 77 www.inria.fr/koala/colas/mouse-w
26dc0 68 65 65 6c 2d 73 63 72 6f 6c 6c 2f 0a 20 20 20 20 62 69 6e 64 20 54 65 78 74 20 3c 34 3e 20 7b heel-scroll/.....bind.Text.<4>.{
26de0 0a 09 69 66 20 7b 21 24 74 6b 5f 73 74 72 69 63 74 4d 6f 74 69 66 7d 20 7b 0a 09 20 20 20 20 25 ..if.{!$tk_strictMotif}.{......%
26e00 57 20 79 76 69 65 77 20 73 63 72 6f 6c 6c 20 2d 35 20 75 6e 69 74 73 0a 09 7d 0a 20 20 20 20 7d W.yview.scroll.-5.units..}.....}
26e20 0a 20 20 20 20 62 69 6e 64 20 54 65 78 74 20 3c 35 3e 20 7b 0a 09 69 66 20 7b 21 24 74 6b 5f 73 .....bind.Text.<5>.{..if.{!$tk_s
26e40 74 72 69 63 74 4d 6f 74 69 66 7d 20 7b 0a 09 20 20 20 20 25 57 20 79 76 69 65 77 20 73 63 72 6f trictMotif}.{......%W.yview.scro
26e60 6c 6c 20 35 20 75 6e 69 74 73 0a 09 7d 0a 20 20 20 20 7d 0a 7d 0a 0a 23 20 74 6b 54 65 78 74 43 ll.5.units..}.....}.}..#.tkTextC
26e80 6c 6f 73 65 73 74 47 61 70 20 2d 2d 0a 23 20 47 69 76 65 6e 20 78 20 61 6e 64 20 79 20 63 6f 6f losestGap.--.#.Given.x.and.y.coo
26ea0 72 64 69 6e 61 74 65 73 2c 20 74 68 69 73 20 70 72 6f 63 65 64 75 72 65 20 66 69 6e 64 73 20 74 rdinates,.this.procedure.finds.t
26ec0 68 65 20 63 6c 6f 73 65 73 74 20 62 6f 75 6e 64 61 72 79 0a 23 20 62 65 74 77 65 65 6e 20 63 68 he.closest.boundary.#.between.ch
26ee0 61 72 61 63 74 65 72 73 20 74 6f 20 74 68 65 20 67 69 76 65 6e 20 63 6f 6f 72 64 69 6e 61 74 65 aracters.to.the.given.coordinate
26f00 73 20 61 6e 64 20 72 65 74 75 72 6e 73 20 74 68 65 20 69 6e 64 65 78 0a 23 20 6f 66 20 74 68 65 s.and.returns.the.index.#.of.the
26f20 20 63 68 61 72 61 63 74 65 72 20 6a 75 73 74 20 61 66 74 65 72 20 74 68 65 20 62 6f 75 6e 64 61 .character.just.after.the.bounda
26f40 72 79 2e 0a 23 0a 23 20 41 72 67 75 6d 65 6e 74 73 3a 0a 23 20 77 20 2d 09 09 54 68 65 20 74 65 ry..#.#.Arguments:.#.w.-..The.te
26f60 78 74 20 77 69 6e 64 6f 77 2e 0a 23 20 78 20 2d 09 09 58 2d 63 6f 6f 72 64 69 6e 61 74 65 20 77 xt.window..#.x.-..X-coordinate.w
26f80 69 74 68 69 6e 20 74 68 65 20 77 69 6e 64 6f 77 2e 0a 23 20 79 20 2d 09 09 59 2d 63 6f 6f 72 64 ithin.the.window..#.y.-..Y-coord
26fa0 69 6e 61 74 65 20 77 69 74 68 69 6e 20 74 68 65 20 77 69 6e 64 6f 77 2e 0a 0a 70 72 6f 63 20 74 inate.within.the.window...proc.t
26fc0 6b 54 65 78 74 43 6c 6f 73 65 73 74 47 61 70 20 7b 77 20 78 20 79 7d 20 7b 0a 20 20 20 20 73 65 kTextClosestGap.{w.x.y}.{.....se
26fe0 74 20 70 6f 73 20 5b 24 77 20 69 6e 64 65 78 20 40 24 78 2c 24 79 5d 0a 20 20 20 20 73 65 74 20 t.pos.[$w.index.@$x,$y].....set.
27000 62 62 6f 78 20 5b 24 77 20 62 62 6f 78 20 24 70 6f 73 5d 0a 20 20 20 20 69 66 20 7b 5b 73 74 72 bbox.[$w.bbox.$pos].....if.{[str
27020 69 6e 67 20 65 71 75 61 6c 20 24 62 62 6f 78 20 22 22 5d 7d 20 7b 0a 09 72 65 74 75 72 6e 20 24 ing.equal.$bbox.""]}.{..return.$
27040 70 6f 73 0a 20 20 20 20 7d 0a 20 20 20 20 69 66 20 7b 28 24 78 20 2d 20 5b 6c 69 6e 64 65 78 20 pos.....}.....if.{($x.-.[lindex.
27060 24 62 62 6f 78 20 30 5d 29 20 3c 20 28 5b 6c 69 6e 64 65 78 20 24 62 62 6f 78 20 32 5d 2f 32 29 $bbox.0]).<.([lindex.$bbox.2]/2)
27080 7d 20 7b 0a 09 72 65 74 75 72 6e 20 24 70 6f 73 0a 20 20 20 20 7d 0a 20 20 20 20 24 77 20 69 6e }.{..return.$pos.....}.....$w.in
270a0 64 65 78 20 22 24 70 6f 73 20 2b 20 31 20 63 68 61 72 22 0a 7d 0a 0a 23 20 74 6b 54 65 78 74 42 dex."$pos.+.1.char".}..#.tkTextB
270c0 75 74 74 6f 6e 31 20 2d 2d 0a 23 20 54 68 69 73 20 70 72 6f 63 65 64 75 72 65 20 69 73 20 69 6e utton1.--.#.This.procedure.is.in
270e0 76 6f 6b 65 64 20 74 6f 20 68 61 6e 64 6c 65 20 62 75 74 74 6f 6e 2d 31 20 70 72 65 73 73 65 73 voked.to.handle.button-1.presses
27100 20 69 6e 20 74 65 78 74 0a 23 20 77 69 64 67 65 74 73 2e 20 20 49 74 20 6d 6f 76 65 73 20 74 68 .in.text.#.widgets...It.moves.th
27120 65 20 69 6e 73 65 72 74 69 6f 6e 20 63 75 72 73 6f 72 2c 20 73 65 74 73 20 74 68 65 20 73 65 6c e.insertion.cursor,.sets.the.sel
27140 65 63 74 69 6f 6e 20 61 6e 63 68 6f 72 2c 0a 23 20 61 6e 64 20 63 6c 61 69 6d 73 20 74 68 65 20 ection.anchor,.#.and.claims.the.
27160 69 6e 70 75 74 20 66 6f 63 75 73 2e 0a 23 0a 23 20 41 72 67 75 6d 65 6e 74 73 3a 0a 23 20 77 20 input.focus..#.#.Arguments:.#.w.
27180 2d 09 09 54 68 65 20 74 65 78 74 20 77 69 6e 64 6f 77 20 69 6e 20 77 68 69 63 68 20 74 68 65 20 -..The.text.window.in.which.the.
271a0 62 75 74 74 6f 6e 20 77 61 73 20 70 72 65 73 73 65 64 2e 0a 23 20 78 20 2d 09 09 54 68 65 20 78 button.was.pressed..#.x.-..The.x
271c0 2d 63 6f 6f 72 64 69 6e 61 74 65 20 6f 66 20 74 68 65 20 62 75 74 74 6f 6e 20 70 72 65 73 73 2e -coordinate.of.the.button.press.
271e0 0a 23 20 79 20 2d 09 09 54 68 65 20 78 2d 63 6f 6f 72 64 69 6e 61 74 65 20 6f 66 20 74 68 65 20 .#.y.-..The.x-coordinate.of.the.
27200 62 75 74 74 6f 6e 20 70 72 65 73 73 2e 0a 0a 70 72 6f 63 20 74 6b 54 65 78 74 42 75 74 74 6f 6e button.press...proc.tkTextButton
27220 31 20 7b 77 20 78 20 79 7d 20 7b 0a 20 20 20 20 67 6c 6f 62 61 6c 20 74 6b 50 72 69 76 0a 0a 20 1.{w.x.y}.{.....global.tkPriv...
27240 20 20 20 73 65 74 20 74 6b 50 72 69 76 28 73 65 6c 65 63 74 4d 6f 64 65 29 20 63 68 61 72 0a 20 ...set.tkPriv(selectMode).char..
27260 20 20 20 73 65 74 20 74 6b 50 72 69 76 28 6d 6f 75 73 65 4d 6f 76 65 64 29 20 30 0a 20 20 20 20 ...set.tkPriv(mouseMoved).0.....
27280 73 65 74 20 74 6b 50 72 69 76 28 70 72 65 73 73 58 29 20 24 78 0a 20 20 20 20 24 77 20 6d 61 72 set.tkPriv(pressX).$x.....$w.mar
272a0 6b 20 73 65 74 20 69 6e 73 65 72 74 20 5b 74 6b 54 65 78 74 43 6c 6f 73 65 73 74 47 61 70 20 24 k.set.insert.[tkTextClosestGap.$
272c0 77 20 24 78 20 24 79 5d 0a 20 20 20 20 24 77 20 6d 61 72 6b 20 73 65 74 20 61 6e 63 68 6f 72 20 w.$x.$y].....$w.mark.set.anchor.
272e0 69 6e 73 65 72 74 0a 20 20 20 20 69 66 20 7b 5b 73 74 72 69 6e 67 20 65 71 75 61 6c 20 5b 24 77 insert.....if.{[string.equal.[$w
27300 20 63 67 65 74 20 2d 73 74 61 74 65 5d 20 22 6e 6f 72 6d 61 6c 22 5d 7d 20 7b 66 6f 63 75 73 20 .cget.-state]."normal"]}.{focus.
27320 24 77 7d 0a 7d 0a 0a 23 20 74 6b 54 65 78 74 53 65 6c 65 63 74 54 6f 20 2d 2d 0a 23 20 54 68 69 $w}.}..#.tkTextSelectTo.--.#.Thi
27340 73 20 70 72 6f 63 65 64 75 72 65 20 69 73 20 69 6e 76 6f 6b 65 64 20 74 6f 20 65 78 74 65 6e 64 s.procedure.is.invoked.to.extend
27360 20 74 68 65 20 73 65 6c 65 63 74 69 6f 6e 2c 20 74 79 70 69 63 61 6c 6c 79 20 77 68 65 6e 0a 23 .the.selection,.typically.when.#
27380 20 64 72 61 67 67 69 6e 67 20 69 74 20 77 69 74 68 20 74 68 65 20 6d 6f 75 73 65 2e 20 20 44 65 .dragging.it.with.the.mouse...De
273a0 70 65 6e 64 69 6e 67 20 6f 6e 20 74 68 65 20 73 65 6c 65 63 74 69 6f 6e 20 6d 6f 64 65 20 28 63 pending.on.the.selection.mode.(c
273c0 68 61 72 61 63 74 65 72 2c 0a 23 20 77 6f 72 64 2c 20 6c 69 6e 65 29 20 69 74 20 73 65 6c 65 63 haracter,.#.word,.line).it.selec
273e0 74 73 20 69 6e 20 64 69 66 66 65 72 65 6e 74 2d 73 69 7a 65 64 20 75 6e 69 74 73 2e 20 20 54 68 ts.in.different-sized.units...Th
27400 69 73 20 70 72 6f 63 65 64 75 72 65 0a 23 20 69 67 6e 6f 72 65 73 20 6d 6f 75 73 65 20 6d 6f 74 is.procedure.#.ignores.mouse.mot
27420 69 6f 6e 73 20 69 6e 69 74 69 61 6c 6c 79 20 75 6e 74 69 6c 20 74 68 65 20 6d 6f 75 73 65 20 68 ions.initially.until.the.mouse.h
27440 61 73 20 6d 6f 76 65 64 20 66 72 6f 6d 0a 23 20 6f 6e 65 20 63 68 61 72 61 63 74 65 72 20 74 6f as.moved.from.#.one.character.to
27460 20 61 6e 6f 74 68 65 72 20 6f 72 20 75 6e 74 69 6c 20 74 68 65 72 65 20 68 61 76 65 20 62 65 65 .another.or.until.there.have.bee
27480 6e 20 6d 75 6c 74 69 70 6c 65 20 63 6c 69 63 6b 73 2e 0a 23 0a 23 20 41 72 67 75 6d 65 6e 74 73 n.multiple.clicks..#.#.Arguments
274a0 3a 0a 23 20 77 20 2d 09 09 54 68 65 20 74 65 78 74 20 77 69 6e 64 6f 77 20 69 6e 20 77 68 69 63 :.#.w.-..The.text.window.in.whic
274c0 68 20 74 68 65 20 62 75 74 74 6f 6e 20 77 61 73 20 70 72 65 73 73 65 64 2e 0a 23 20 78 20 2d 09 h.the.button.was.pressed..#.x.-.
274e0 09 4d 6f 75 73 65 20 78 20 70 6f 73 69 74 69 6f 6e 2e 0a 23 20 79 20 2d 20 09 09 4d 6f 75 73 65 .Mouse.x.position..#.y.-...Mouse
27500 20 79 20 70 6f 73 69 74 69 6f 6e 2e 0a 0a 70 72 6f 63 20 74 6b 54 65 78 74 53 65 6c 65 63 74 54 .y.position...proc.tkTextSelectT
27520 6f 20 7b 77 20 78 20 79 7d 20 7b 0a 20 20 20 20 67 6c 6f 62 61 6c 20 74 6b 50 72 69 76 20 74 63 o.{w.x.y}.{.....global.tkPriv.tc
27540 6c 5f 70 6c 61 74 66 6f 72 6d 0a 0a 20 20 20 20 73 65 74 20 63 75 72 20 5b 74 6b 54 65 78 74 43 l_platform......set.cur.[tkTextC
27560 6c 6f 73 65 73 74 47 61 70 20 24 77 20 24 78 20 24 79 5d 0a 20 20 20 20 69 66 20 7b 5b 63 61 74 losestGap.$w.$x.$y].....if.{[cat
27580 63 68 20 7b 24 77 20 69 6e 64 65 78 20 61 6e 63 68 6f 72 7d 5d 7d 20 7b 0a 09 24 77 20 6d 61 72 ch.{$w.index.anchor}]}.{..$w.mar
275a0 6b 20 73 65 74 20 61 6e 63 68 6f 72 20 24 63 75 72 0a 20 20 20 20 7d 0a 20 20 20 20 73 65 74 20 k.set.anchor.$cur.....}.....set.
275c0 61 6e 63 68 6f 72 20 5b 24 77 20 69 6e 64 65 78 20 61 6e 63 68 6f 72 5d 0a 20 20 20 20 69 66 20 anchor.[$w.index.anchor].....if.
275e0 7b 5b 24 77 20 63 6f 6d 70 61 72 65 20 24 63 75 72 20 21 3d 20 24 61 6e 63 68 6f 72 5d 20 7c 7c {[$w.compare.$cur.!=.$anchor].||
27600 20 28 61 62 73 28 24 74 6b 50 72 69 76 28 70 72 65 73 73 58 29 20 2d 20 24 78 29 20 3e 3d 20 33 .(abs($tkPriv(pressX).-.$x).>=.3
27620 29 7d 20 7b 0a 09 73 65 74 20 74 6b 50 72 69 76 28 6d 6f 75 73 65 4d 6f 76 65 64 29 20 31 0a 20 )}.{..set.tkPriv(mouseMoved).1..
27640 20 20 20 7d 0a 20 20 20 20 73 77 69 74 63 68 20 24 74 6b 50 72 69 76 28 73 65 6c 65 63 74 4d 6f ...}.....switch.$tkPriv(selectMo
27660 64 65 29 20 7b 0a 09 63 68 61 72 20 7b 0a 09 20 20 20 20 69 66 20 7b 5b 24 77 20 63 6f 6d 70 61 de).{..char.{......if.{[$w.compa
27680 72 65 20 24 63 75 72 20 3c 20 61 6e 63 68 6f 72 5d 7d 20 7b 0a 09 09 73 65 74 20 66 69 72 73 74 re.$cur.<.anchor]}.{...set.first
276a0 20 24 63 75 72 0a 09 09 73 65 74 20 6c 61 73 74 20 61 6e 63 68 6f 72 0a 09 20 20 20 20 7d 20 65 .$cur...set.last.anchor......}.e
276c0 6c 73 65 20 7b 0a 09 09 73 65 74 20 66 69 72 73 74 20 61 6e 63 68 6f 72 0a 09 09 73 65 74 20 6c lse.{...set.first.anchor...set.l
276e0 61 73 74 20 24 63 75 72 0a 09 20 20 20 20 7d 0a 09 7d 0a 09 77 6f 72 64 20 7b 0a 09 20 20 20 20 ast.$cur......}..}..word.{......
27700 69 66 20 7b 5b 24 77 20 63 6f 6d 70 61 72 65 20 24 63 75 72 20 3c 20 61 6e 63 68 6f 72 5d 7d 20 if.{[$w.compare.$cur.<.anchor]}.
27720 7b 0a 09 09 73 65 74 20 66 69 72 73 74 20 5b 74 6b 54 65 78 74 50 72 65 76 50 6f 73 20 24 77 20 {...set.first.[tkTextPrevPos.$w.
27740 22 24 63 75 72 20 2b 20 31 63 22 20 74 63 6c 5f 77 6f 72 64 42 72 65 61 6b 42 65 66 6f 72 65 5d "$cur.+.1c".tcl_wordBreakBefore]
27760 0a 09 09 73 65 74 20 6c 61 73 74 20 5b 74 6b 54 65 78 74 4e 65 78 74 50 6f 73 20 24 77 20 22 61 ...set.last.[tkTextNextPos.$w."a
27780 6e 63 68 6f 72 22 20 74 63 6c 5f 77 6f 72 64 42 72 65 61 6b 41 66 74 65 72 5d 0a 09 20 20 20 20 nchor".tcl_wordBreakAfter]......
277a0 7d 20 65 6c 73 65 20 7b 0a 09 09 73 65 74 20 66 69 72 73 74 20 5b 74 6b 54 65 78 74 50 72 65 76 }.else.{...set.first.[tkTextPrev
277c0 50 6f 73 20 24 77 20 61 6e 63 68 6f 72 20 74 63 6c 5f 77 6f 72 64 42 72 65 61 6b 42 65 66 6f 72 Pos.$w.anchor.tcl_wordBreakBefor
277e0 65 5d 0a 09 09 73 65 74 20 6c 61 73 74 20 5b 74 6b 54 65 78 74 4e 65 78 74 50 6f 73 20 24 77 20 e]...set.last.[tkTextNextPos.$w.
27800 22 24 63 75 72 20 2d 20 31 63 22 20 74 63 6c 5f 77 6f 72 64 42 72 65 61 6b 41 66 74 65 72 5d 0a "$cur.-.1c".tcl_wordBreakAfter].
27820 09 20 20 20 20 7d 0a 09 7d 0a 09 6c 69 6e 65 20 7b 0a 09 20 20 20 20 69 66 20 7b 5b 24 77 20 63 .....}..}..line.{......if.{[$w.c
27840 6f 6d 70 61 72 65 20 24 63 75 72 20 3c 20 61 6e 63 68 6f 72 5d 7d 20 7b 0a 09 09 73 65 74 20 66 ompare.$cur.<.anchor]}.{...set.f
27860 69 72 73 74 20 5b 24 77 20 69 6e 64 65 78 20 22 24 63 75 72 20 6c 69 6e 65 73 74 61 72 74 22 5d irst.[$w.index."$cur.linestart"]
27880 0a 09 09 73 65 74 20 6c 61 73 74 20 5b 24 77 20 69 6e 64 65 78 20 22 61 6e 63 68 6f 72 20 2d 20 ...set.last.[$w.index."anchor.-.
278a0 31 63 20 6c 69 6e 65 65 6e 64 20 2b 20 31 63 22 5d 0a 09 20 20 20 20 7d 20 65 6c 73 65 20 7b 0a 1c.lineend.+.1c"]......}.else.{.
278c0 09 09 73 65 74 20 66 69 72 73 74 20 5b 24 77 20 69 6e 64 65 78 20 22 61 6e 63 68 6f 72 20 6c 69 ..set.first.[$w.index."anchor.li
278e0 6e 65 73 74 61 72 74 22 5d 0a 09 09 73 65 74 20 6c 61 73 74 20 5b 24 77 20 69 6e 64 65 78 20 22 nestart"]...set.last.[$w.index."
27900 24 63 75 72 20 6c 69 6e 65 65 6e 64 20 2b 20 31 63 22 5d 0a 09 20 20 20 20 7d 0a 09 7d 0a 20 20 $cur.lineend.+.1c"]......}..}...
27920 20 20 7d 0a 20 20 20 20 69 66 20 7b 24 74 6b 50 72 69 76 28 6d 6f 75 73 65 4d 6f 76 65 64 29 20 ..}.....if.{$tkPriv(mouseMoved).
27940 7c 7c 20 5b 73 74 72 69 6e 67 20 63 6f 6d 70 61 72 65 20 24 74 6b 50 72 69 76 28 73 65 6c 65 63 ||.[string.compare.$tkPriv(selec
27960 74 4d 6f 64 65 29 20 22 63 68 61 72 22 5d 7d 20 7b 0a 09 69 66 20 7b 5b 73 74 72 69 6e 67 20 63 tMode)."char"]}.{..if.{[string.c
27980 6f 6d 70 61 72 65 20 24 74 63 6c 5f 70 6c 61 74 66 6f 72 6d 28 70 6c 61 74 66 6f 72 6d 29 20 22 ompare.$tcl_platform(platform)."
279a0 75 6e 69 78 22 5d 20 5c 0a 09 09 26 26 20 5b 24 77 20 63 6f 6d 70 61 72 65 20 24 63 75 72 20 3c unix"].\...&&.[$w.compare.$cur.<
279c0 20 61 6e 63 68 6f 72 5d 7d 20 7b 0a 09 20 20 20 20 24 77 20 6d 61 72 6b 20 73 65 74 20 69 6e 73 .anchor]}.{......$w.mark.set.ins
279e0 65 72 74 20 24 66 69 72 73 74 0a 09 7d 20 65 6c 73 65 20 7b 0a 09 20 20 20 20 24 77 20 6d 61 72 ert.$first..}.else.{......$w.mar
27a00 6b 20 73 65 74 20 69 6e 73 65 72 74 20 24 6c 61 73 74 0a 09 7d 0a 09 24 77 20 74 61 67 20 72 65 k.set.insert.$last..}..$w.tag.re
27a20 6d 6f 76 65 20 73 65 6c 20 30 2e 30 20 24 66 69 72 73 74 0a 09 24 77 20 74 61 67 20 61 64 64 20 move.sel.0.0.$first..$w.tag.add.
27a40 73 65 6c 20 24 66 69 72 73 74 20 24 6c 61 73 74 0a 09 24 77 20 74 61 67 20 72 65 6d 6f 76 65 20 sel.$first.$last..$w.tag.remove.
27a60 73 65 6c 20 24 6c 61 73 74 20 65 6e 64 0a 09 75 70 64 61 74 65 20 69 64 6c 65 74 61 73 6b 73 0a sel.$last.end..update.idletasks.
27a80 20 20 20 20 7d 0a 7d 0a 0a 23 20 74 6b 54 65 78 74 4b 65 79 45 78 74 65 6e 64 20 2d 2d 0a 23 20 ....}.}..#.tkTextKeyExtend.--.#.
27aa0 54 68 69 73 20 70 72 6f 63 65 64 75 72 65 20 68 61 6e 64 6c 65 73 20 65 78 74 65 6e 64 69 6e 67 This.procedure.handles.extending
27ac0 20 74 68 65 20 73 65 6c 65 63 74 69 6f 6e 20 66 72 6f 6d 20 74 68 65 20 6b 65 79 62 6f 61 72 64 .the.selection.from.the.keyboard
27ae0 2c 0a 23 20 77 68 65 72 65 20 74 68 65 20 70 6f 69 6e 74 20 74 6f 20 65 78 74 65 6e 64 20 74 6f ,.#.where.the.point.to.extend.to
27b00 20 69 73 20 72 65 61 6c 6c 79 20 74 68 65 20 62 6f 75 6e 64 61 72 79 20 62 65 74 77 65 65 6e 20 .is.really.the.boundary.between.
27b20 74 77 6f 0a 23 20 63 68 61 72 61 63 74 65 72 73 20 72 61 74 68 65 72 20 74 68 61 6e 20 61 20 70 two.#.characters.rather.than.a.p
27b40 61 72 74 69 63 75 6c 61 72 20 63 68 61 72 61 63 74 65 72 2e 0a 23 0a 23 20 41 72 67 75 6d 65 6e articular.character..#.#.Argumen
27b60 74 73 3a 0a 23 20 77 20 2d 09 09 54 68 65 20 74 65 78 74 20 77 69 6e 64 6f 77 2e 0a 23 20 69 6e ts:.#.w.-..The.text.window..#.in
27b80 64 65 78 20 2d 09 54 68 65 20 70 6f 69 6e 74 20 74 6f 20 77 68 69 63 68 20 74 68 65 20 73 65 6c dex.-.The.point.to.which.the.sel
27ba0 65 63 74 69 6f 6e 20 69 73 20 74 6f 20 62 65 20 65 78 74 65 6e 64 65 64 2e 0a 0a 70 72 6f 63 20 ection.is.to.be.extended...proc.
27bc0 74 6b 54 65 78 74 4b 65 79 45 78 74 65 6e 64 20 7b 77 20 69 6e 64 65 78 7d 20 7b 0a 20 20 20 20 tkTextKeyExtend.{w.index}.{.....
27be0 67 6c 6f 62 61 6c 20 74 6b 50 72 69 76 0a 0a 20 20 20 20 73 65 74 20 63 75 72 20 5b 24 77 20 69 global.tkPriv......set.cur.[$w.i
27c00 6e 64 65 78 20 24 69 6e 64 65 78 5d 0a 20 20 20 20 69 66 20 7b 5b 63 61 74 63 68 20 7b 24 77 20 ndex.$index].....if.{[catch.{$w.
27c20 69 6e 64 65 78 20 61 6e 63 68 6f 72 7d 5d 7d 20 7b 0a 09 24 77 20 6d 61 72 6b 20 73 65 74 20 61 index.anchor}]}.{..$w.mark.set.a
27c40 6e 63 68 6f 72 20 24 63 75 72 0a 20 20 20 20 7d 0a 20 20 20 20 73 65 74 20 61 6e 63 68 6f 72 20 nchor.$cur.....}.....set.anchor.
27c60 5b 24 77 20 69 6e 64 65 78 20 61 6e 63 68 6f 72 5d 0a 20 20 20 20 69 66 20 7b 5b 24 77 20 63 6f [$w.index.anchor].....if.{[$w.co
27c80 6d 70 61 72 65 20 24 63 75 72 20 3c 20 61 6e 63 68 6f 72 5d 7d 20 7b 0a 09 73 65 74 20 66 69 72 mpare.$cur.<.anchor]}.{..set.fir
27ca0 73 74 20 24 63 75 72 0a 09 73 65 74 20 6c 61 73 74 20 61 6e 63 68 6f 72 0a 20 20 20 20 7d 20 65 st.$cur..set.last.anchor.....}.e
27cc0 6c 73 65 20 7b 0a 09 73 65 74 20 66 69 72 73 74 20 61 6e 63 68 6f 72 0a 09 73 65 74 20 6c 61 73 lse.{..set.first.anchor..set.las
27ce0 74 20 24 63 75 72 0a 20 20 20 20 7d 0a 20 20 20 20 24 77 20 74 61 67 20 72 65 6d 6f 76 65 20 73 t.$cur.....}.....$w.tag.remove.s
27d00 65 6c 20 30 2e 30 20 24 66 69 72 73 74 0a 20 20 20 20 24 77 20 74 61 67 20 61 64 64 20 73 65 6c el.0.0.$first.....$w.tag.add.sel
27d20 20 24 66 69 72 73 74 20 24 6c 61 73 74 0a 20 20 20 20 24 77 20 74 61 67 20 72 65 6d 6f 76 65 20 .$first.$last.....$w.tag.remove.
27d40 73 65 6c 20 24 6c 61 73 74 20 65 6e 64 0a 7d 0a 0a 23 20 74 6b 54 65 78 74 50 61 73 74 65 20 2d sel.$last.end.}..#.tkTextPaste.-
27d60 2d 0a 23 20 54 68 69 73 20 70 72 6f 63 65 64 75 72 65 20 73 65 74 73 20 74 68 65 20 69 6e 73 65 -.#.This.procedure.sets.the.inse
27d80 72 74 69 6f 6e 20 63 75 72 73 6f 72 20 74 6f 20 74 68 65 20 6d 6f 75 73 65 20 70 6f 73 69 74 69 rtion.cursor.to.the.mouse.positi
27da0 6f 6e 2c 0a 23 20 69 6e 73 65 72 74 73 20 74 68 65 20 73 65 6c 65 63 74 69 6f 6e 2c 20 61 6e 64 on,.#.inserts.the.selection,.and
27dc0 20 73 65 74 73 20 74 68 65 20 66 6f 63 75 73 20 74 6f 20 74 68 65 20 77 69 6e 64 6f 77 2e 0a 23 .sets.the.focus.to.the.window..#
27de0 0a 23 20 41 72 67 75 6d 65 6e 74 73 3a 0a 23 20 77 20 2d 09 09 54 68 65 20 74 65 78 74 20 77 69 .#.Arguments:.#.w.-..The.text.wi
27e00 6e 64 6f 77 2e 0a 23 20 78 2c 20 79 20 2d 20 09 50 6f 73 69 74 69 6f 6e 20 6f 66 20 74 68 65 20 ndow..#.x,.y.-..Position.of.the.
27e20 6d 6f 75 73 65 2e 0a 0a 70 72 6f 63 20 74 6b 54 65 78 74 50 61 73 74 65 20 7b 77 20 78 20 79 7d mouse...proc.tkTextPaste.{w.x.y}
27e40 20 7b 0a 20 20 20 20 24 77 20 6d 61 72 6b 20 73 65 74 20 69 6e 73 65 72 74 20 5b 74 6b 54 65 78 .{.....$w.mark.set.insert.[tkTex
27e60 74 43 6c 6f 73 65 73 74 47 61 70 20 24 77 20 24 78 20 24 79 5d 0a 20 20 20 20 63 61 74 63 68 20 tClosestGap.$w.$x.$y].....catch.
27e80 7b 24 77 20 69 6e 73 65 72 74 20 69 6e 73 65 72 74 20 5b 73 65 6c 65 63 74 69 6f 6e 20 67 65 74 {$w.insert.insert.[selection.get
27ea0 20 2d 64 69 73 70 6c 61 79 6f 66 20 24 77 5d 7d 0a 20 20 20 20 69 66 20 7b 5b 73 74 72 69 6e 67 .-displayof.$w]}.....if.{[string
27ec0 20 65 71 75 61 6c 20 5b 24 77 20 63 67 65 74 20 2d 73 74 61 74 65 5d 20 22 6e 6f 72 6d 61 6c 22 .equal.[$w.cget.-state]."normal"
27ee0 5d 7d 20 7b 66 6f 63 75 73 20 24 77 7d 0a 7d 0a 0a 23 20 74 6b 54 65 78 74 41 75 74 6f 53 63 61 ]}.{focus.$w}.}..#.tkTextAutoSca
27f00 6e 20 2d 2d 0a 23 20 54 68 69 73 20 70 72 6f 63 65 64 75 72 65 20 69 73 20 69 6e 76 6f 6b 65 64 n.--.#.This.procedure.is.invoked
27f20 20 77 68 65 6e 20 74 68 65 20 6d 6f 75 73 65 20 6c 65 61 76 65 73 20 61 20 74 65 78 74 20 77 69 .when.the.mouse.leaves.a.text.wi
27f40 6e 64 6f 77 0a 23 20 77 69 74 68 20 62 75 74 74 6f 6e 20 31 20 64 6f 77 6e 2e 20 20 49 74 20 73 ndow.#.with.button.1.down...It.s
27f60 63 72 6f 6c 6c 73 20 74 68 65 20 77 69 6e 64 6f 77 20 75 70 2c 20 64 6f 77 6e 2c 20 6c 65 66 74 crolls.the.window.up,.down,.left
27f80 2c 20 6f 72 20 72 69 67 68 74 2c 0a 23 20 64 65 70 65 6e 64 69 6e 67 20 6f 6e 20 77 68 65 72 65 ,.or.right,.#.depending.on.where
27fa0 20 74 68 65 20 6d 6f 75 73 65 20 69 73 20 28 74 68 69 73 20 69 6e 66 6f 72 6d 61 74 69 6f 6e 20 .the.mouse.is.(this.information.
27fc0 77 61 73 20 73 61 76 65 64 20 69 6e 0a 23 20 74 6b 50 72 69 76 28 78 29 20 61 6e 64 20 74 6b 50 was.saved.in.#.tkPriv(x).and.tkP
27fe0 72 69 76 28 79 29 29 2c 20 61 6e 64 20 72 65 73 63 68 65 64 75 6c 65 73 20 69 74 73 65 6c 66 20 riv(y)),.and.reschedules.itself.
28000 61 73 20 61 6e 20 22 61 66 74 65 72 22 0a 23 20 63 6f 6d 6d 61 6e 64 20 73 6f 20 74 68 61 74 20 as.an."after".#.command.so.that.
28020 74 68 65 20 77 69 6e 64 6f 77 20 63 6f 6e 74 69 6e 75 65 73 20 74 6f 20 73 63 72 6f 6c 6c 20 75 the.window.continues.to.scroll.u
28040 6e 74 69 6c 20 74 68 65 20 6d 6f 75 73 65 0a 23 20 6d 6f 76 65 73 20 62 61 63 6b 20 69 6e 74 6f ntil.the.mouse.#.moves.back.into
28060 20 74 68 65 20 77 69 6e 64 6f 77 20 6f 72 20 74 68 65 20 6d 6f 75 73 65 20 62 75 74 74 6f 6e 20 .the.window.or.the.mouse.button.
28080 69 73 20 72 65 6c 65 61 73 65 64 2e 0a 23 0a 23 20 41 72 67 75 6d 65 6e 74 73 3a 0a 23 20 77 20 is.released..#.#.Arguments:.#.w.
280a0 2d 09 09 54 68 65 20 74 65 78 74 20 77 69 6e 64 6f 77 2e 0a 0a 70 72 6f 63 20 74 6b 54 65 78 74 -..The.text.window...proc.tkText
280c0 41 75 74 6f 53 63 61 6e 20 7b 77 7d 20 7b 0a 20 20 20 20 67 6c 6f 62 61 6c 20 74 6b 50 72 69 76 AutoScan.{w}.{.....global.tkPriv
280e0 0a 20 20 20 20 69 66 20 7b 21 5b 77 69 6e 66 6f 20 65 78 69 73 74 73 20 24 77 5d 7d 20 72 65 74 .....if.{![winfo.exists.$w]}.ret
28100 75 72 6e 0a 20 20 20 20 69 66 20 7b 24 74 6b 50 72 69 76 28 79 29 20 3e 3d 20 5b 77 69 6e 66 6f urn.....if.{$tkPriv(y).>=.[winfo
28120 20 68 65 69 67 68 74 20 24 77 5d 7d 20 7b 0a 09 24 77 20 79 76 69 65 77 20 73 63 72 6f 6c 6c 20 .height.$w]}.{..$w.yview.scroll.
28140 32 20 75 6e 69 74 73 0a 20 20 20 20 7d 20 65 6c 73 65 69 66 20 7b 24 74 6b 50 72 69 76 28 79 29 2.units.....}.elseif.{$tkPriv(y)
28160 20 3c 20 30 7d 20 7b 0a 09 24 77 20 79 76 69 65 77 20 73 63 72 6f 6c 6c 20 2d 32 20 75 6e 69 74 .<.0}.{..$w.yview.scroll.-2.unit
28180 73 0a 20 20 20 20 7d 20 65 6c 73 65 69 66 20 7b 24 74 6b 50 72 69 76 28 78 29 20 3e 3d 20 5b 77 s.....}.elseif.{$tkPriv(x).>=.[w
281a0 69 6e 66 6f 20 77 69 64 74 68 20 24 77 5d 7d 20 7b 0a 09 24 77 20 78 76 69 65 77 20 73 63 72 6f info.width.$w]}.{..$w.xview.scro
281c0 6c 6c 20 32 20 75 6e 69 74 73 0a 20 20 20 20 7d 20 65 6c 73 65 69 66 20 7b 24 74 6b 50 72 69 76 ll.2.units.....}.elseif.{$tkPriv
281e0 28 78 29 20 3c 20 30 7d 20 7b 0a 09 24 77 20 78 76 69 65 77 20 73 63 72 6f 6c 6c 20 2d 32 20 75 (x).<.0}.{..$w.xview.scroll.-2.u
28200 6e 69 74 73 0a 20 20 20 20 7d 20 65 6c 73 65 20 7b 0a 09 72 65 74 75 72 6e 0a 20 20 20 20 7d 0a nits.....}.else.{..return.....}.
28220 20 20 20 20 74 6b 54 65 78 74 53 65 6c 65 63 74 54 6f 20 24 77 20 24 74 6b 50 72 69 76 28 78 29 ....tkTextSelectTo.$w.$tkPriv(x)
28240 20 24 74 6b 50 72 69 76 28 79 29 0a 20 20 20 20 73 65 74 20 74 6b 50 72 69 76 28 61 66 74 65 72 .$tkPriv(y).....set.tkPriv(after
28260 49 64 29 20 5b 61 66 74 65 72 20 35 30 20 5b 6c 69 73 74 20 74 6b 54 65 78 74 41 75 74 6f 53 63 Id).[after.50.[list.tkTextAutoSc
28280 61 6e 20 24 77 5d 5d 0a 7d 0a 0a 23 20 74 6b 54 65 78 74 53 65 74 43 75 72 73 6f 72 0a 23 20 4d an.$w]].}..#.tkTextSetCursor.#.M
282a0 6f 76 65 20 74 68 65 20 69 6e 73 65 72 74 69 6f 6e 20 63 75 72 73 6f 72 20 74 6f 20 61 20 67 69 ove.the.insertion.cursor.to.a.gi
282c0 76 65 6e 20 70 6f 73 69 74 69 6f 6e 20 69 6e 20 61 20 74 65 78 74 2e 20 20 41 6c 73 6f 0a 23 20 ven.position.in.a.text...Also.#.
282e0 63 6c 65 61 72 73 20 74 68 65 20 73 65 6c 65 63 74 69 6f 6e 2c 20 69 66 20 74 68 65 72 65 20 69 clears.the.selection,.if.there.i
28300 73 20 6f 6e 65 20 69 6e 20 74 68 65 20 74 65 78 74 2c 20 61 6e 64 20 6d 61 6b 65 73 20 73 75 72 s.one.in.the.text,.and.makes.sur
28320 65 0a 23 20 74 68 61 74 20 74 68 65 20 69 6e 73 65 72 74 69 6f 6e 20 63 75 72 73 6f 72 20 69 73 e.#.that.the.insertion.cursor.is
28340 20 76 69 73 69 62 6c 65 2e 20 20 41 6c 73 6f 2c 20 64 6f 6e 27 74 20 6c 65 74 20 74 68 65 20 69 .visible...Also,.don't.let.the.i
28360 6e 73 65 72 74 69 6f 6e 0a 23 20 63 75 72 73 6f 72 20 61 70 70 65 61 72 20 6f 6e 20 74 68 65 20 nsertion.#.cursor.appear.on.the.
28380 64 75 6d 6d 79 20 6c 61 73 74 20 6c 69 6e 65 20 6f 66 20 74 68 65 20 74 65 78 74 2e 0a 23 0a 23 dummy.last.line.of.the.text..#.#
283a0 20 41 72 67 75 6d 65 6e 74 73 3a 0a 23 20 77 20 2d 09 09 54 68 65 20 74 65 78 74 20 77 69 6e 64 .Arguments:.#.w.-..The.text.wind
283c0 6f 77 2e 0a 23 20 70 6f 73 20 2d 09 09 54 68 65 20 64 65 73 69 72 65 64 20 6e 65 77 20 70 6f 73 ow..#.pos.-..The.desired.new.pos
283e0 69 74 69 6f 6e 20 66 6f 72 20 74 68 65 20 63 75 72 73 6f 72 20 69 6e 20 74 68 65 20 77 69 6e 64 ition.for.the.cursor.in.the.wind
28400 6f 77 2e 0a 0a 70 72 6f 63 20 74 6b 54 65 78 74 53 65 74 43 75 72 73 6f 72 20 7b 77 20 70 6f 73 ow...proc.tkTextSetCursor.{w.pos
28420 7d 20 7b 0a 20 20 20 20 67 6c 6f 62 61 6c 20 74 6b 50 72 69 76 0a 0a 20 20 20 20 69 66 20 7b 5b }.{.....global.tkPriv......if.{[
28440 24 77 20 63 6f 6d 70 61 72 65 20 24 70 6f 73 20 3d 3d 20 65 6e 64 5d 7d 20 7b 0a 09 73 65 74 20 $w.compare.$pos.==.end]}.{..set.
28460 70 6f 73 20 7b 65 6e 64 20 2d 20 31 20 63 68 61 72 73 7d 0a 20 20 20 20 7d 0a 20 20 20 20 24 77 pos.{end.-.1.chars}.....}.....$w
28480 20 6d 61 72 6b 20 73 65 74 20 69 6e 73 65 72 74 20 24 70 6f 73 0a 20 20 20 20 24 77 20 74 61 67 .mark.set.insert.$pos.....$w.tag
284a0 20 72 65 6d 6f 76 65 20 73 65 6c 20 31 2e 30 20 65 6e 64 0a 20 20 20 20 24 77 20 73 65 65 20 69 .remove.sel.1.0.end.....$w.see.i
284c0 6e 73 65 72 74 0a 7d 0a 0a 23 20 74 6b 54 65 78 74 4b 65 79 53 65 6c 65 63 74 0a 23 20 54 68 69 nsert.}..#.tkTextKeySelect.#.Thi
284e0 73 20 70 72 6f 63 65 64 75 72 65 20 69 73 20 69 6e 76 6f 6b 65 64 20 77 68 65 6e 20 73 74 72 6f s.procedure.is.invoked.when.stro
28500 6b 69 6e 67 20 6f 75 74 20 73 65 6c 65 63 74 69 6f 6e 73 20 75 73 69 6e 67 20 74 68 65 0a 23 20 king.out.selections.using.the.#.
28520 6b 65 79 62 6f 61 72 64 2e 20 20 49 74 20 6d 6f 76 65 73 20 74 68 65 20 63 75 72 73 6f 72 20 74 keyboard...It.moves.the.cursor.t
28540 6f 20 61 20 6e 65 77 20 70 6f 73 69 74 69 6f 6e 2c 20 74 68 65 6e 20 65 78 74 65 6e 64 73 0a 23 o.a.new.position,.then.extends.#
28560 20 74 68 65 20 73 65 6c 65 63 74 69 6f 6e 20 74 6f 20 74 68 61 74 20 70 6f 73 69 74 69 6f 6e 2e .the.selection.to.that.position.
28580 0a 23 0a 23 20 41 72 67 75 6d 65 6e 74 73 3a 0a 23 20 77 20 2d 09 09 54 68 65 20 74 65 78 74 20 .#.#.Arguments:.#.w.-..The.text.
285a0 77 69 6e 64 6f 77 2e 0a 23 20 6e 65 77 20 2d 09 09 41 20 6e 65 77 20 70 6f 73 69 74 69 6f 6e 20 window..#.new.-..A.new.position.
285c0 66 6f 72 20 74 68 65 20 69 6e 73 65 72 74 69 6f 6e 20 63 75 72 73 6f 72 20 28 74 68 65 20 63 75 for.the.insertion.cursor.(the.cu
285e0 72 73 6f 72 20 68 61 73 6e 27 74 0a 23 09 09 61 63 74 75 61 6c 6c 79 20 62 65 65 6e 20 6d 6f 76 rsor.hasn't.#..actually.been.mov
28600 65 64 20 74 6f 20 74 68 69 73 20 70 6f 73 69 74 69 6f 6e 20 79 65 74 29 2e 0a 0a 70 72 6f 63 20 ed.to.this.position.yet)...proc.
28620 74 6b 54 65 78 74 4b 65 79 53 65 6c 65 63 74 20 7b 77 20 6e 65 77 7d 20 7b 0a 20 20 20 20 67 6c tkTextKeySelect.{w.new}.{.....gl
28640 6f 62 61 6c 20 74 6b 50 72 69 76 0a 0a 20 20 20 20 69 66 20 7b 5b 73 74 72 69 6e 67 20 65 71 75 obal.tkPriv......if.{[string.equ
28660 61 6c 20 5b 24 77 20 74 61 67 20 6e 65 78 74 72 61 6e 67 65 20 73 65 6c 20 31 2e 30 20 65 6e 64 al.[$w.tag.nextrange.sel.1.0.end
28680 5d 20 22 22 5d 7d 20 7b 0a 09 69 66 20 7b 5b 24 77 20 63 6f 6d 70 61 72 65 20 24 6e 65 77 20 3c ].""]}.{..if.{[$w.compare.$new.<
286a0 20 69 6e 73 65 72 74 5d 7d 20 7b 0a 09 20 20 20 20 24 77 20 74 61 67 20 61 64 64 20 73 65 6c 20 .insert]}.{......$w.tag.add.sel.
286c0 24 6e 65 77 20 69 6e 73 65 72 74 0a 09 7d 20 65 6c 73 65 20 7b 0a 09 20 20 20 20 24 77 20 74 61 $new.insert..}.else.{......$w.ta
286e0 67 20 61 64 64 20 73 65 6c 20 69 6e 73 65 72 74 20 24 6e 65 77 0a 09 7d 0a 09 24 77 20 6d 61 72 g.add.sel.insert.$new..}..$w.mar
28700 6b 20 73 65 74 20 61 6e 63 68 6f 72 20 69 6e 73 65 72 74 0a 20 20 20 20 7d 20 65 6c 73 65 20 7b k.set.anchor.insert.....}.else.{
28720 0a 09 69 66 20 7b 5b 24 77 20 63 6f 6d 70 61 72 65 20 24 6e 65 77 20 3c 20 61 6e 63 68 6f 72 5d ..if.{[$w.compare.$new.<.anchor]
28740 7d 20 7b 0a 09 20 20 20 20 73 65 74 20 66 69 72 73 74 20 24 6e 65 77 0a 09 20 20 20 20 73 65 74 }.{......set.first.$new......set
28760 20 6c 61 73 74 20 61 6e 63 68 6f 72 0a 09 7d 20 65 6c 73 65 20 7b 0a 09 20 20 20 20 73 65 74 20 .last.anchor..}.else.{......set.
28780 66 69 72 73 74 20 61 6e 63 68 6f 72 0a 09 20 20 20 20 73 65 74 20 6c 61 73 74 20 24 6e 65 77 0a first.anchor......set.last.$new.
287a0 09 7d 0a 09 24 77 20 74 61 67 20 72 65 6d 6f 76 65 20 73 65 6c 20 31 2e 30 20 24 66 69 72 73 74 .}..$w.tag.remove.sel.1.0.$first
287c0 0a 09 24 77 20 74 61 67 20 61 64 64 20 73 65 6c 20 24 66 69 72 73 74 20 24 6c 61 73 74 0a 09 24 ..$w.tag.add.sel.$first.$last..$
287e0 77 20 74 61 67 20 72 65 6d 6f 76 65 20 73 65 6c 20 24 6c 61 73 74 20 65 6e 64 0a 20 20 20 20 7d w.tag.remove.sel.$last.end.....}
28800 0a 20 20 20 20 24 77 20 6d 61 72 6b 20 73 65 74 20 69 6e 73 65 72 74 20 24 6e 65 77 0a 20 20 20 .....$w.mark.set.insert.$new....
28820 20 24 77 20 73 65 65 20 69 6e 73 65 72 74 0a 20 20 20 20 75 70 64 61 74 65 20 69 64 6c 65 74 61 .$w.see.insert.....update.idleta
28840 73 6b 73 0a 7d 0a 0a 23 20 74 6b 54 65 78 74 52 65 73 65 74 41 6e 63 68 6f 72 20 2d 2d 0a 23 20 sks.}..#.tkTextResetAnchor.--.#.
28860 53 65 74 20 74 68 65 20 73 65 6c 65 63 74 69 6f 6e 20 61 6e 63 68 6f 72 20 74 6f 20 77 68 69 63 Set.the.selection.anchor.to.whic
28880 68 65 76 65 72 20 65 6e 64 20 69 73 20 66 61 72 74 68 65 73 74 20 66 72 6f 6d 20 74 68 65 0a 23 hever.end.is.farthest.from.the.#
288a0 20 69 6e 64 65 78 20 61 72 67 75 6d 65 6e 74 2e 20 20 4f 6e 65 20 73 70 65 63 69 61 6c 20 74 72 .index.argument...One.special.tr
288c0 69 63 6b 3a 20 69 66 20 74 68 65 20 73 65 6c 65 63 74 69 6f 6e 20 68 61 73 20 74 77 6f 20 6f 72 ick:.if.the.selection.has.two.or
288e0 0a 23 20 66 65 77 65 72 20 63 68 61 72 61 63 74 65 72 73 2c 20 6a 75 73 74 20 6c 65 61 76 65 20 .#.fewer.characters,.just.leave.
28900 74 68 65 20 61 6e 63 68 6f 72 20 77 68 65 72 65 20 69 74 20 69 73 2e 20 20 49 6e 20 74 68 69 73 the.anchor.where.it.is...In.this
28920 0a 23 20 63 61 73 65 20 69 74 20 64 6f 65 73 6e 27 74 20 6d 61 74 74 65 72 20 77 68 69 63 68 20 .#.case.it.doesn't.matter.which.
28940 70 6f 69 6e 74 20 67 65 74 73 20 63 68 6f 73 65 6e 20 66 6f 72 20 74 68 65 20 61 6e 63 68 6f 72 point.gets.chosen.for.the.anchor
28960 2c 0a 23 20 61 6e 64 20 66 6f 72 20 74 68 65 20 74 68 69 6e 67 73 20 6c 69 6b 65 20 53 68 69 66 ,.#.and.for.the.things.like.Shif
28980 74 2d 4c 65 66 74 20 61 6e 64 20 53 68 69 66 74 2d 52 69 67 68 74 20 74 68 69 73 20 70 72 6f 64 t-Left.and.Shift-Right.this.prod
289a0 75 63 65 73 0a 23 20 62 65 74 74 65 72 20 62 65 68 61 76 69 6f 72 20 77 68 65 6e 20 74 68 65 20 uces.#.better.behavior.when.the.
289c0 63 75 72 73 6f 72 20 6d 6f 76 65 73 20 62 61 63 6b 20 61 6e 64 20 66 6f 72 74 68 20 61 63 72 6f cursor.moves.back.and.forth.acro
289e0 73 73 20 74 68 65 0a 23 20 61 6e 63 68 6f 72 2e 0a 23 0a 23 20 41 72 67 75 6d 65 6e 74 73 3a 0a ss.the.#.anchor..#.#.Arguments:.
28a00 23 20 77 20 2d 09 09 54 68 65 20 74 65 78 74 20 77 69 64 67 65 74 2e 0a 23 20 69 6e 64 65 78 20 #.w.-..The.text.widget..#.index.
28a20 2d 09 50 6f 73 69 74 69 6f 6e 20 61 74 20 77 68 69 63 68 20 6d 6f 75 73 65 20 62 75 74 74 6f 6e -.Position.at.which.mouse.button
28a40 20 77 61 73 20 70 72 65 73 73 65 64 2c 20 77 68 69 63 68 20 64 65 74 65 72 6d 69 6e 65 73 0a 23 .was.pressed,.which.determines.#
28a60 09 09 77 68 69 63 68 20 65 6e 64 20 6f 66 20 73 65 6c 65 63 74 69 6f 6e 20 73 68 6f 75 6c 64 20 ..which.end.of.selection.should.
28a80 62 65 20 75 73 65 64 20 61 73 20 61 6e 63 68 6f 72 20 70 6f 69 6e 74 2e 0a 0a 70 72 6f 63 20 74 be.used.as.anchor.point...proc.t
28aa0 6b 54 65 78 74 52 65 73 65 74 41 6e 63 68 6f 72 20 7b 77 20 69 6e 64 65 78 7d 20 7b 0a 20 20 20 kTextResetAnchor.{w.index}.{....
28ac0 20 67 6c 6f 62 61 6c 20 74 6b 50 72 69 76 0a 0a 20 20 20 20 69 66 20 7b 5b 73 74 72 69 6e 67 20 .global.tkPriv......if.{[string.
28ae0 65 71 75 61 6c 20 5b 24 77 20 74 61 67 20 72 61 6e 67 65 73 20 73 65 6c 5d 20 22 22 5d 7d 20 7b equal.[$w.tag.ranges.sel].""]}.{
28b00 0a 09 24 77 20 6d 61 72 6b 20 73 65 74 20 61 6e 63 68 6f 72 20 24 69 6e 64 65 78 0a 09 72 65 74 ..$w.mark.set.anchor.$index..ret
28b20 75 72 6e 0a 20 20 20 20 7d 0a 20 20 20 20 73 65 74 20 61 20 5b 24 77 20 69 6e 64 65 78 20 24 69 urn.....}.....set.a.[$w.index.$i
28b40 6e 64 65 78 5d 0a 20 20 20 20 73 65 74 20 62 20 5b 24 77 20 69 6e 64 65 78 20 73 65 6c 2e 66 69 ndex].....set.b.[$w.index.sel.fi
28b60 72 73 74 5d 0a 20 20 20 20 73 65 74 20 63 20 5b 24 77 20 69 6e 64 65 78 20 73 65 6c 2e 6c 61 73 rst].....set.c.[$w.index.sel.las
28b80 74 5d 0a 20 20 20 20 69 66 20 7b 5b 24 77 20 63 6f 6d 70 61 72 65 20 24 61 20 3c 20 24 62 5d 7d t].....if.{[$w.compare.$a.<.$b]}
28ba0 20 7b 0a 09 24 77 20 6d 61 72 6b 20 73 65 74 20 61 6e 63 68 6f 72 20 73 65 6c 2e 6c 61 73 74 0a .{..$w.mark.set.anchor.sel.last.
28bc0 09 72 65 74 75 72 6e 0a 20 20 20 20 7d 0a 20 20 20 20 69 66 20 7b 5b 24 77 20 63 6f 6d 70 61 72 .return.....}.....if.{[$w.compar
28be0 65 20 24 61 20 3e 20 24 63 5d 7d 20 7b 0a 09 24 77 20 6d 61 72 6b 20 73 65 74 20 61 6e 63 68 6f e.$a.>.$c]}.{..$w.mark.set.ancho
28c00 72 20 73 65 6c 2e 66 69 72 73 74 0a 09 72 65 74 75 72 6e 0a 20 20 20 20 7d 0a 20 20 20 20 73 63 r.sel.first..return.....}.....sc
28c20 61 6e 20 24 61 20 22 25 64 2e 25 64 22 20 6c 69 6e 65 41 20 63 68 41 0a 20 20 20 20 73 63 61 6e an.$a."%d.%d".lineA.chA.....scan
28c40 20 24 62 20 22 25 64 2e 25 64 22 20 6c 69 6e 65 42 20 63 68 42 0a 20 20 20 20 73 63 61 6e 20 24 .$b."%d.%d".lineB.chB.....scan.$
28c60 63 20 22 25 64 2e 25 64 22 20 6c 69 6e 65 43 20 63 68 43 0a 20 20 20 20 69 66 20 7b 24 6c 69 6e c."%d.%d".lineC.chC.....if.{$lin
28c80 65 42 20 3c 20 24 6c 69 6e 65 43 2b 32 7d 20 7b 0a 09 73 65 74 20 74 6f 74 61 6c 20 5b 73 74 72 eB.<.$lineC+2}.{..set.total.[str
28ca0 69 6e 67 20 6c 65 6e 67 74 68 20 5b 24 77 20 67 65 74 20 24 62 20 24 63 5d 5d 0a 09 69 66 20 7b ing.length.[$w.get.$b.$c]]..if.{
28cc0 24 74 6f 74 61 6c 20 3c 3d 20 32 7d 20 7b 0a 09 20 20 20 20 72 65 74 75 72 6e 0a 09 7d 0a 09 69 $total.<=.2}.{......return..}..i
28ce0 66 20 7b 5b 73 74 72 69 6e 67 20 6c 65 6e 67 74 68 20 5b 24 77 20 67 65 74 20 24 62 20 24 61 5d f.{[string.length.[$w.get.$b.$a]
28d00 5d 20 3c 20 28 24 74 6f 74 61 6c 2f 32 29 7d 20 7b 0a 09 20 20 20 20 24 77 20 6d 61 72 6b 20 73 ].<.($total/2)}.{......$w.mark.s
28d20 65 74 20 61 6e 63 68 6f 72 20 73 65 6c 2e 6c 61 73 74 0a 09 7d 20 65 6c 73 65 20 7b 0a 09 20 20 et.anchor.sel.last..}.else.{....
28d40 20 20 24 77 20 6d 61 72 6b 20 73 65 74 20 61 6e 63 68 6f 72 20 73 65 6c 2e 66 69 72 73 74 0a 09 ..$w.mark.set.anchor.sel.first..
28d60 7d 0a 09 72 65 74 75 72 6e 0a 20 20 20 20 7d 0a 20 20 20 20 69 66 20 7b 28 24 6c 69 6e 65 41 2d }..return.....}.....if.{($lineA-
28d80 24 6c 69 6e 65 42 29 20 3c 20 28 24 6c 69 6e 65 43 2d 24 6c 69 6e 65 41 29 7d 20 7b 0a 09 24 77 $lineB).<.($lineC-$lineA)}.{..$w
28da0 20 6d 61 72 6b 20 73 65 74 20 61 6e 63 68 6f 72 20 73 65 6c 2e 6c 61 73 74 0a 20 20 20 20 7d 20 .mark.set.anchor.sel.last.....}.
28dc0 65 6c 73 65 20 7b 0a 09 24 77 20 6d 61 72 6b 20 73 65 74 20 61 6e 63 68 6f 72 20 73 65 6c 2e 66 else.{..$w.mark.set.anchor.sel.f
28de0 69 72 73 74 0a 20 20 20 20 7d 0a 7d 0a 0a 23 20 74 6b 54 65 78 74 49 6e 73 65 72 74 20 2d 2d 0a irst.....}.}..#.tkTextInsert.--.
28e00 23 20 49 6e 73 65 72 74 20 61 20 73 74 72 69 6e 67 20 69 6e 74 6f 20 61 20 74 65 78 74 20 61 74 #.Insert.a.string.into.a.text.at
28e20 20 74 68 65 20 70 6f 69 6e 74 20 6f 66 20 74 68 65 20 69 6e 73 65 72 74 69 6f 6e 20 63 75 72 73 .the.point.of.the.insertion.curs
28e40 6f 72 2e 0a 23 20 49 66 20 74 68 65 72 65 20 69 73 20 61 20 73 65 6c 65 63 74 69 6f 6e 20 69 6e or..#.If.there.is.a.selection.in
28e60 20 74 68 65 20 74 65 78 74 2c 20 61 6e 64 20 69 74 20 63 6f 76 65 72 73 20 74 68 65 20 70 6f 69 .the.text,.and.it.covers.the.poi
28e80 6e 74 20 6f 66 20 74 68 65 0a 23 20 69 6e 73 65 72 74 69 6f 6e 20 63 75 72 73 6f 72 2c 20 74 68 nt.of.the.#.insertion.cursor,.th
28ea0 65 6e 20 64 65 6c 65 74 65 20 74 68 65 20 73 65 6c 65 63 74 69 6f 6e 20 62 65 66 6f 72 65 20 69 en.delete.the.selection.before.i
28ec0 6e 73 65 72 74 69 6e 67 2e 0a 23 0a 23 20 41 72 67 75 6d 65 6e 74 73 3a 0a 23 20 77 20 2d 09 09 nserting..#.#.Arguments:.#.w.-..
28ee0 54 68 65 20 74 65 78 74 20 77 69 6e 64 6f 77 20 69 6e 20 77 68 69 63 68 20 74 6f 20 69 6e 73 65 The.text.window.in.which.to.inse
28f00 72 74 20 74 68 65 20 73 74 72 69 6e 67 0a 23 20 73 20 2d 09 09 54 68 65 20 73 74 72 69 6e 67 20 rt.the.string.#.s.-..The.string.
28f20 74 6f 20 69 6e 73 65 72 74 20 28 75 73 75 61 6c 6c 79 20 6a 75 73 74 20 61 20 73 69 6e 67 6c 65 to.insert.(usually.just.a.single
28f40 20 63 68 61 72 61 63 74 65 72 29 0a 0a 70 72 6f 63 20 74 6b 54 65 78 74 49 6e 73 65 72 74 20 7b .character)..proc.tkTextInsert.{
28f60 77 20 73 7d 20 7b 0a 20 20 20 20 69 66 20 7b 5b 73 74 72 69 6e 67 20 65 71 75 61 6c 20 24 73 20 w.s}.{.....if.{[string.equal.$s.
28f80 22 22 5d 20 7c 7c 20 5b 73 74 72 69 6e 67 20 65 71 75 61 6c 20 5b 24 77 20 63 67 65 74 20 2d 73 ""].||.[string.equal.[$w.cget.-s
28fa0 74 61 74 65 5d 20 22 64 69 73 61 62 6c 65 64 22 5d 7d 20 7b 0a 09 72 65 74 75 72 6e 0a 20 20 20 tate]."disabled"]}.{..return....
28fc0 20 7d 0a 20 20 20 20 63 61 74 63 68 20 7b 0a 09 69 66 20 7b 5b 24 77 20 63 6f 6d 70 61 72 65 20 .}.....catch.{..if.{[$w.compare.
28fe0 73 65 6c 2e 66 69 72 73 74 20 3c 3d 20 69 6e 73 65 72 74 5d 20 5c 0a 09 09 26 26 20 5b 24 77 20 sel.first.<=.insert].\...&&.[$w.
29000 63 6f 6d 70 61 72 65 20 73 65 6c 2e 6c 61 73 74 20 3e 3d 20 69 6e 73 65 72 74 5d 7d 20 7b 0a 09 compare.sel.last.>=.insert]}.{..
29020 20 20 20 20 24 77 20 64 65 6c 65 74 65 20 73 65 6c 2e 66 69 72 73 74 20 73 65 6c 2e 6c 61 73 74 ....$w.delete.sel.first.sel.last
29040 0a 09 7d 0a 20 20 20 20 7d 0a 20 20 20 20 24 77 20 69 6e 73 65 72 74 20 69 6e 73 65 72 74 20 24 ..}.....}.....$w.insert.insert.$
29060 73 0a 20 20 20 20 24 77 20 73 65 65 20 69 6e 73 65 72 74 0a 7d 0a 0a 23 20 74 6b 54 65 78 74 55 s.....$w.see.insert.}..#.tkTextU
29080 70 44 6f 77 6e 4c 69 6e 65 20 2d 2d 0a 23 20 52 65 74 75 72 6e 73 20 74 68 65 20 69 6e 64 65 78 pDownLine.--.#.Returns.the.index
290a0 20 6f 66 20 74 68 65 20 63 68 61 72 61 63 74 65 72 20 6f 6e 65 20 6c 69 6e 65 20 61 62 6f 76 65 .of.the.character.one.line.above
290c0 20 6f 72 20 62 65 6c 6f 77 20 74 68 65 0a 23 20 69 6e 73 65 72 74 69 6f 6e 20 63 75 72 73 6f 72 .or.below.the.#.insertion.cursor
290e0 2e 20 20 54 68 65 72 65 20 61 72 65 20 74 77 6f 20 74 72 69 63 6b 79 20 74 68 69 6e 67 73 20 68 ...There.are.two.tricky.things.h
29100 65 72 65 2e 20 20 46 69 72 73 74 2c 0a 23 20 77 65 20 77 61 6e 74 20 74 6f 20 6d 61 69 6e 74 61 ere...First,.#.we.want.to.mainta
29120 69 6e 20 74 68 65 20 6f 72 69 67 69 6e 61 6c 20 63 6f 6c 75 6d 6e 20 61 63 72 6f 73 73 20 72 65 in.the.original.column.across.re
29140 70 65 61 74 65 64 20 6f 70 65 72 61 74 69 6f 6e 73 2c 0a 23 20 65 76 65 6e 20 74 68 6f 75 67 68 peated.operations,.#.even.though
29160 20 73 6f 6d 65 20 6c 69 6e 65 73 20 74 68 61 74 20 77 69 6c 6c 20 67 65 74 20 70 61 73 73 65 64 .some.lines.that.will.get.passed
29180 20 74 68 72 6f 75 67 68 20 64 6f 6e 27 74 20 68 61 76 65 0a 23 20 65 6e 6f 75 67 68 20 63 68 61 .through.don't.have.#.enough.cha
291a0 72 61 63 74 65 72 73 20 74 6f 20 63 6f 76 65 72 20 74 68 65 20 6f 72 69 67 69 6e 61 6c 20 63 6f racters.to.cover.the.original.co
291c0 6c 75 6d 6e 2e 20 20 53 65 63 6f 6e 64 2c 20 64 6f 6e 27 74 0a 23 20 74 72 79 20 74 6f 20 73 63 lumn...Second,.don't.#.try.to.sc
291e0 72 6f 6c 6c 20 70 61 73 74 20 74 68 65 20 62 65 67 69 6e 6e 69 6e 67 20 6f 72 20 65 6e 64 20 6f roll.past.the.beginning.or.end.o
29200 66 20 74 68 65 20 74 65 78 74 2e 0a 23 0a 23 20 41 72 67 75 6d 65 6e 74 73 3a 0a 23 20 77 20 2d f.the.text..#.#.Arguments:.#.w.-
29220 09 09 54 68 65 20 74 65 78 74 20 77 69 6e 64 6f 77 20 69 6e 20 77 68 69 63 68 20 74 68 65 20 63 ..The.text.window.in.which.the.c
29240 75 72 73 6f 72 20 69 73 20 74 6f 20 6d 6f 76 65 2e 0a 23 20 6e 20 2d 09 09 54 68 65 20 6e 75 6d ursor.is.to.move..#.n.-..The.num
29260 62 65 72 20 6f 66 20 6c 69 6e 65 73 20 74 6f 20 6d 6f 76 65 3a 20 2d 31 20 66 6f 72 20 75 70 20 ber.of.lines.to.move:.-1.for.up.
29280 6f 6e 65 20 6c 69 6e 65 2c 0a 23 09 09 2b 31 20 66 6f 72 20 64 6f 77 6e 20 6f 6e 65 20 6c 69 6e one.line,.#..+1.for.down.one.lin
292a0 65 2e 0a 0a 70 72 6f 63 20 74 6b 54 65 78 74 55 70 44 6f 77 6e 4c 69 6e 65 20 7b 77 20 6e 7d 20 e...proc.tkTextUpDownLine.{w.n}.
292c0 7b 0a 20 20 20 20 67 6c 6f 62 61 6c 20 74 6b 50 72 69 76 0a 0a 20 20 20 20 73 65 74 20 69 20 5b {.....global.tkPriv......set.i.[
292e0 24 77 20 69 6e 64 65 78 20 69 6e 73 65 72 74 5d 0a 20 20 20 20 73 63 61 6e 20 24 69 20 22 25 64 $w.index.insert].....scan.$i."%d
29300 2e 25 64 22 20 6c 69 6e 65 20 63 68 61 72 0a 20 20 20 20 69 66 20 7b 5b 73 74 72 69 6e 67 20 63 .%d".line.char.....if.{[string.c
29320 6f 6d 70 61 72 65 20 24 74 6b 50 72 69 76 28 70 72 65 76 50 6f 73 29 20 24 69 5d 7d 20 7b 0a 09 ompare.$tkPriv(prevPos).$i]}.{..
29340 73 65 74 20 74 6b 50 72 69 76 28 63 68 61 72 29 20 24 63 68 61 72 0a 20 20 20 20 7d 0a 20 20 20 set.tkPriv(char).$char.....}....
29360 20 73 65 74 20 6e 65 77 20 5b 24 77 20 69 6e 64 65 78 20 5b 65 78 70 72 20 7b 24 6c 69 6e 65 20 .set.new.[$w.index.[expr.{$line.
29380 2b 20 24 6e 7d 5d 2e 24 74 6b 50 72 69 76 28 63 68 61 72 29 5d 0a 20 20 20 20 69 66 20 7b 5b 24 +.$n}].$tkPriv(char)].....if.{[$
293a0 77 20 63 6f 6d 70 61 72 65 20 24 6e 65 77 20 3d 3d 20 65 6e 64 5d 20 7c 7c 20 5b 24 77 20 63 6f w.compare.$new.==.end].||.[$w.co
293c0 6d 70 61 72 65 20 24 6e 65 77 20 3d 3d 20 22 69 6e 73 65 72 74 20 6c 69 6e 65 73 74 61 72 74 22 mpare.$new.==."insert.linestart"
293e0 5d 7d 20 7b 0a 09 73 65 74 20 6e 65 77 20 24 69 0a 20 20 20 20 7d 0a 20 20 20 20 73 65 74 20 74 ]}.{..set.new.$i.....}.....set.t
29400 6b 50 72 69 76 28 70 72 65 76 50 6f 73 29 20 24 6e 65 77 0a 20 20 20 20 72 65 74 75 72 6e 20 24 kPriv(prevPos).$new.....return.$
29420 6e 65 77 0a 7d 0a 0a 23 20 74 6b 54 65 78 74 50 72 65 76 50 61 72 61 20 2d 2d 0a 23 20 52 65 74 new.}..#.tkTextPrevPara.--.#.Ret
29440 75 72 6e 73 20 74 68 65 20 69 6e 64 65 78 20 6f 66 20 74 68 65 20 62 65 67 69 6e 6e 69 6e 67 20 urns.the.index.of.the.beginning.
29460 6f 66 20 74 68 65 20 70 61 72 61 67 72 61 70 68 20 6a 75 73 74 20 62 65 66 6f 72 65 20 61 20 67 of.the.paragraph.just.before.a.g
29480 69 76 65 6e 0a 23 20 70 6f 73 69 74 69 6f 6e 20 69 6e 20 74 68 65 20 74 65 78 74 20 28 74 68 65 iven.#.position.in.the.text.(the
294a0 20 62 65 67 69 6e 6e 69 6e 67 20 6f 66 20 61 20 70 61 72 61 67 72 61 70 68 20 69 73 20 74 68 65 .beginning.of.a.paragraph.is.the
294c0 20 66 69 72 73 74 20 6e 6f 6e 2d 62 6c 61 6e 6b 0a 23 20 63 68 61 72 61 63 74 65 72 20 61 66 74 .first.non-blank.#.character.aft
294e0 65 72 20 61 20 62 6c 61 6e 6b 20 6c 69 6e 65 29 2e 0a 23 0a 23 20 41 72 67 75 6d 65 6e 74 73 3a er.a.blank.line)..#.#.Arguments:
29500 0a 23 20 77 20 2d 09 09 54 68 65 20 74 65 78 74 20 77 69 6e 64 6f 77 20 69 6e 20 77 68 69 63 68 .#.w.-..The.text.window.in.which
29520 20 74 68 65 20 63 75 72 73 6f 72 20 69 73 20 74 6f 20 6d 6f 76 65 2e 0a 23 20 70 6f 73 20 2d 09 .the.cursor.is.to.move..#.pos.-.
29540 09 50 6f 73 69 74 69 6f 6e 20 61 74 20 77 68 69 63 68 20 74 6f 20 73 74 61 72 74 20 73 65 61 72 .Position.at.which.to.start.sear
29560 63 68 2e 0a 0a 70 72 6f 63 20 74 6b 54 65 78 74 50 72 65 76 50 61 72 61 20 7b 77 20 70 6f 73 7d ch...proc.tkTextPrevPara.{w.pos}
29580 20 7b 0a 20 20 20 20 73 65 74 20 70 6f 73 20 5b 24 77 20 69 6e 64 65 78 20 22 24 70 6f 73 20 6c .{.....set.pos.[$w.index."$pos.l
295a0 69 6e 65 73 74 61 72 74 22 5d 0a 20 20 20 20 77 68 69 6c 65 20 31 20 7b 0a 09 69 66 20 7b 28 5b inestart"].....while.1.{..if.{([
295c0 73 74 72 69 6e 67 20 65 71 75 61 6c 20 5b 24 77 20 67 65 74 20 22 24 70 6f 73 20 2d 20 31 20 6c string.equal.[$w.get."$pos.-.1.l
295e0 69 6e 65 22 5d 20 22 5c 6e 22 5d 20 5c 0a 09 09 26 26 20 5b 73 74 72 69 6e 67 20 63 6f 6d 70 61 ine"]."\n"].\...&&.[string.compa
29600 72 65 20 5b 24 77 20 67 65 74 20 24 70 6f 73 5d 20 22 5c 6e 22 5d 29 20 5c 0a 09 09 7c 7c 20 5b re.[$w.get.$pos]."\n"]).\...||.[
29620 73 74 72 69 6e 67 20 65 71 75 61 6c 20 24 70 6f 73 20 22 31 2e 30 22 5d 7d 20 7b 0a 09 20 20 20 string.equal.$pos."1.0"]}.{.....
29640 20 69 66 20 7b 5b 72 65 67 65 78 70 20 2d 69 6e 64 69 63 65 73 20 7b 5e 5b 20 09 5d 2b 28 2e 29 .if.{[regexp.-indices.{^[..]+(.)
29660 7d 20 5b 24 77 20 67 65 74 20 24 70 6f 73 20 22 24 70 6f 73 20 6c 69 6e 65 65 6e 64 22 5d 20 5c }.[$w.get.$pos."$pos.lineend"].\
29680 0a 09 09 20 20 20 20 64 75 6d 6d 79 20 69 6e 64 65 78 5d 7d 20 7b 0a 09 09 73 65 74 20 70 6f 73 .......dummy.index]}.{...set.pos
296a0 20 5b 24 77 20 69 6e 64 65 78 20 22 24 70 6f 73 20 2b 20 5b 6c 69 6e 64 65 78 20 24 69 6e 64 65 .[$w.index."$pos.+.[lindex.$inde
296c0 78 20 30 5d 20 63 68 61 72 73 22 5d 0a 09 20 20 20 20 7d 0a 09 20 20 20 20 69 66 20 7b 5b 24 77 x.0].chars"]......}......if.{[$w
296e0 20 63 6f 6d 70 61 72 65 20 24 70 6f 73 20 21 3d 20 69 6e 73 65 72 74 5d 20 7c 7c 20 5b 73 74 72 .compare.$pos.!=.insert].||.[str
29700 69 6e 67 20 65 71 75 61 6c 20 24 70 6f 73 20 31 2e 30 5d 7d 20 7b 0a 09 09 72 65 74 75 72 6e 20 ing.equal.$pos.1.0]}.{...return.
29720 24 70 6f 73 0a 09 20 20 20 20 7d 0a 09 7d 0a 09 73 65 74 20 70 6f 73 20 5b 24 77 20 69 6e 64 65 $pos......}..}..set.pos.[$w.inde
29740 78 20 22 24 70 6f 73 20 2d 20 31 20 6c 69 6e 65 22 5d 0a 20 20 20 20 7d 0a 7d 0a 0a 23 20 74 6b x."$pos.-.1.line"].....}.}..#.tk
29760 54 65 78 74 4e 65 78 74 50 61 72 61 20 2d 2d 0a 23 20 52 65 74 75 72 6e 73 20 74 68 65 20 69 6e TextNextPara.--.#.Returns.the.in
29780 64 65 78 20 6f 66 20 74 68 65 20 62 65 67 69 6e 6e 69 6e 67 20 6f 66 20 74 68 65 20 70 61 72 61 dex.of.the.beginning.of.the.para
297a0 67 72 61 70 68 20 6a 75 73 74 20 61 66 74 65 72 20 61 20 67 69 76 65 6e 0a 23 20 70 6f 73 69 74 graph.just.after.a.given.#.posit
297c0 69 6f 6e 20 69 6e 20 74 68 65 20 74 65 78 74 20 28 74 68 65 20 62 65 67 69 6e 6e 69 6e 67 20 6f ion.in.the.text.(the.beginning.o
297e0 66 20 61 20 70 61 72 61 67 72 61 70 68 20 69 73 20 74 68 65 20 66 69 72 73 74 20 6e 6f 6e 2d 62 f.a.paragraph.is.the.first.non-b
29800 6c 61 6e 6b 0a 23 20 63 68 61 72 61 63 74 65 72 20 61 66 74 65 72 20 61 20 62 6c 61 6e 6b 20 6c lank.#.character.after.a.blank.l
29820 69 6e 65 29 2e 0a 23 0a 23 20 41 72 67 75 6d 65 6e 74 73 3a 0a 23 20 77 20 2d 09 09 54 68 65 20 ine)..#.#.Arguments:.#.w.-..The.
29840 74 65 78 74 20 77 69 6e 64 6f 77 20 69 6e 20 77 68 69 63 68 20 74 68 65 20 63 75 72 73 6f 72 20 text.window.in.which.the.cursor.
29860 69 73 20 74 6f 20 6d 6f 76 65 2e 0a 23 20 73 74 61 72 74 20 2d 09 50 6f 73 69 74 69 6f 6e 20 61 is.to.move..#.start.-.Position.a
29880 74 20 77 68 69 63 68 20 74 6f 20 73 74 61 72 74 20 73 65 61 72 63 68 2e 0a 0a 70 72 6f 63 20 74 t.which.to.start.search...proc.t
298a0 6b 54 65 78 74 4e 65 78 74 50 61 72 61 20 7b 77 20 73 74 61 72 74 7d 20 7b 0a 20 20 20 20 73 65 kTextNextPara.{w.start}.{.....se
298c0 74 20 70 6f 73 20 5b 24 77 20 69 6e 64 65 78 20 22 24 73 74 61 72 74 20 6c 69 6e 65 73 74 61 72 t.pos.[$w.index."$start.linestar
298e0 74 20 2b 20 31 20 6c 69 6e 65 22 5d 0a 20 20 20 20 77 68 69 6c 65 20 7b 5b 73 74 72 69 6e 67 20 t.+.1.line"].....while.{[string.
29900 63 6f 6d 70 61 72 65 20 5b 24 77 20 67 65 74 20 24 70 6f 73 5d 20 22 5c 6e 22 5d 7d 20 7b 0a 09 compare.[$w.get.$pos]."\n"]}.{..
29920 69 66 20 7b 5b 24 77 20 63 6f 6d 70 61 72 65 20 24 70 6f 73 20 3d 3d 20 65 6e 64 5d 7d 20 7b 0a if.{[$w.compare.$pos.==.end]}.{.
29940 09 20 20 20 20 72 65 74 75 72 6e 20 5b 24 77 20 69 6e 64 65 78 20 22 65 6e 64 20 2d 20 31 63 22 .....return.[$w.index."end.-.1c"
29960 5d 0a 09 7d 0a 09 73 65 74 20 70 6f 73 20 5b 24 77 20 69 6e 64 65 78 20 22 24 70 6f 73 20 2b 20 ]..}..set.pos.[$w.index."$pos.+.
29980 31 20 6c 69 6e 65 22 5d 0a 20 20 20 20 7d 0a 20 20 20 20 77 68 69 6c 65 20 7b 5b 73 74 72 69 6e 1.line"].....}.....while.{[strin
299a0 67 20 65 71 75 61 6c 20 5b 24 77 20 67 65 74 20 24 70 6f 73 5d 20 22 5c 6e 22 5d 7d 20 7b 0a 09 g.equal.[$w.get.$pos]."\n"]}.{..
299c0 73 65 74 20 70 6f 73 20 5b 24 77 20 69 6e 64 65 78 20 22 24 70 6f 73 20 2b 20 31 20 6c 69 6e 65 set.pos.[$w.index."$pos.+.1.line
299e0 22 5d 0a 09 69 66 20 7b 5b 24 77 20 63 6f 6d 70 61 72 65 20 24 70 6f 73 20 3d 3d 20 65 6e 64 5d "]..if.{[$w.compare.$pos.==.end]
29a00 7d 20 7b 0a 09 20 20 20 20 72 65 74 75 72 6e 20 5b 24 77 20 69 6e 64 65 78 20 22 65 6e 64 20 2d }.{......return.[$w.index."end.-
29a20 20 31 63 22 5d 0a 09 7d 0a 20 20 20 20 7d 0a 20 20 20 20 69 66 20 7b 5b 72 65 67 65 78 70 20 2d .1c"]..}.....}.....if.{[regexp.-
29a40 69 6e 64 69 63 65 73 20 7b 5e 5b 20 09 5d 2b 28 2e 29 7d 20 5b 24 77 20 67 65 74 20 24 70 6f 73 indices.{^[..]+(.)}.[$w.get.$pos
29a60 20 22 24 70 6f 73 20 6c 69 6e 65 65 6e 64 22 5d 20 5c 0a 09 20 20 20 20 64 75 6d 6d 79 20 69 6e ."$pos.lineend"].\......dummy.in
29a80 64 65 78 5d 7d 20 7b 0a 09 72 65 74 75 72 6e 20 5b 24 77 20 69 6e 64 65 78 20 22 24 70 6f 73 20 dex]}.{..return.[$w.index."$pos.
29aa0 2b 20 5b 6c 69 6e 64 65 78 20 24 69 6e 64 65 78 20 30 5d 20 63 68 61 72 73 22 5d 0a 20 20 20 20 +.[lindex.$index.0].chars"].....
29ac0 7d 0a 20 20 20 20 72 65 74 75 72 6e 20 24 70 6f 73 0a 7d 0a 0a 23 20 74 6b 54 65 78 74 53 63 72 }.....return.$pos.}..#.tkTextScr
29ae0 6f 6c 6c 50 61 67 65 73 20 2d 2d 0a 23 20 54 68 69 73 20 69 73 20 61 20 75 74 69 6c 69 74 79 20 ollPages.--.#.This.is.a.utility.
29b00 70 72 6f 63 65 64 75 72 65 20 75 73 65 64 20 69 6e 20 62 69 6e 64 69 6e 67 73 20 66 6f 72 20 6d procedure.used.in.bindings.for.m
29b20 6f 76 69 6e 67 20 75 70 20 61 6e 64 20 64 6f 77 6e 0a 23 20 70 61 67 65 73 20 61 6e 64 20 70 6f oving.up.and.down.#.pages.and.po
29b40 73 73 69 62 6c 79 20 65 78 74 65 6e 64 69 6e 67 20 74 68 65 20 73 65 6c 65 63 74 69 6f 6e 20 61 ssibly.extending.the.selection.a
29b60 6c 6f 6e 67 20 74 68 65 20 77 61 79 2e 20 20 49 74 20 73 63 72 6f 6c 6c 73 0a 23 20 74 68 65 20 long.the.way...It.scrolls.#.the.
29b80 76 69 65 77 20 69 6e 20 74 68 65 20 77 69 64 67 65 74 20 62 79 20 74 68 65 20 6e 75 6d 62 65 72 view.in.the.widget.by.the.number
29ba0 20 6f 66 20 70 61 67 65 73 2c 20 61 6e 64 20 69 74 20 72 65 74 75 72 6e 73 20 74 68 65 0a 23 20 .of.pages,.and.it.returns.the.#.
29bc0 69 6e 64 65 78 20 6f 66 20 74 68 65 20 63 68 61 72 61 63 74 65 72 20 74 68 61 74 20 69 73 20 61 index.of.the.character.that.is.a
29be0 74 20 74 68 65 20 73 61 6d 65 20 70 6f 73 69 74 69 6f 6e 20 69 6e 20 74 68 65 20 6e 65 77 20 76 t.the.same.position.in.the.new.v
29c00 69 65 77 0a 23 20 61 73 20 74 68 65 20 69 6e 73 65 72 74 69 6f 6e 20 63 75 72 73 6f 72 20 75 73 iew.#.as.the.insertion.cursor.us
29c20 65 64 20 74 6f 20 62 65 20 69 6e 20 74 68 65 20 6f 6c 64 20 76 69 65 77 2e 0a 23 0a 23 20 41 72 ed.to.be.in.the.old.view..#.#.Ar
29c40 67 75 6d 65 6e 74 73 3a 0a 23 20 77 20 2d 09 09 54 68 65 20 74 65 78 74 20 77 69 6e 64 6f 77 20 guments:.#.w.-..The.text.window.
29c60 69 6e 20 77 68 69 63 68 20 74 68 65 20 63 75 72 73 6f 72 20 69 73 20 74 6f 20 6d 6f 76 65 2e 0a in.which.the.cursor.is.to.move..
29c80 23 20 63 6f 75 6e 74 20 2d 09 4e 75 6d 62 65 72 20 6f 66 20 70 61 67 65 73 20 66 6f 72 77 61 72 #.count.-.Number.of.pages.forwar
29ca0 64 20 74 6f 20 73 63 72 6f 6c 6c 3b 20 20 6d 61 79 20 62 65 20 6e 65 67 61 74 69 76 65 0a 23 09 d.to.scroll;..may.be.negative.#.
29cc0 09 74 6f 20 73 63 72 6f 6c 6c 20 62 61 63 6b 77 61 72 64 73 2e 0a 0a 70 72 6f 63 20 74 6b 54 65 .to.scroll.backwards...proc.tkTe
29ce0 78 74 53 63 72 6f 6c 6c 50 61 67 65 73 20 7b 77 20 63 6f 75 6e 74 7d 20 7b 0a 20 20 20 20 73 65 xtScrollPages.{w.count}.{.....se
29d00 74 20 62 62 6f 78 20 5b 24 77 20 62 62 6f 78 20 69 6e 73 65 72 74 5d 0a 20 20 20 20 24 77 20 79 t.bbox.[$w.bbox.insert].....$w.y
29d20 76 69 65 77 20 73 63 72 6f 6c 6c 20 24 63 6f 75 6e 74 20 70 61 67 65 73 0a 20 20 20 20 69 66 20 view.scroll.$count.pages.....if.
29d40 7b 5b 73 74 72 69 6e 67 20 65 71 75 61 6c 20 24 62 62 6f 78 20 22 22 5d 7d 20 7b 0a 09 72 65 74 {[string.equal.$bbox.""]}.{..ret
29d60 75 72 6e 20 5b 24 77 20 69 6e 64 65 78 20 40 5b 65 78 70 72 20 7b 5b 77 69 6e 66 6f 20 68 65 69 urn.[$w.index.@[expr.{[winfo.hei
29d80 67 68 74 20 24 77 5d 2f 32 7d 5d 2c 30 5d 0a 20 20 20 20 7d 0a 20 20 20 20 72 65 74 75 72 6e 20 ght.$w]/2}],0].....}.....return.
29da0 5b 24 77 20 69 6e 64 65 78 20 40 5b 6c 69 6e 64 65 78 20 24 62 62 6f 78 20 30 5d 2c 5b 6c 69 6e [$w.index.@[lindex.$bbox.0],[lin
29dc0 64 65 78 20 24 62 62 6f 78 20 31 5d 5d 0a 7d 0a 0a 23 20 74 6b 54 65 78 74 54 72 61 6e 73 70 6f dex.$bbox.1]].}..#.tkTextTranspo
29de0 73 65 20 2d 2d 0a 23 20 54 68 69 73 20 70 72 6f 63 65 64 75 72 65 20 69 6d 70 6c 65 6d 65 6e 74 se.--.#.This.procedure.implement
29e00 73 20 74 68 65 20 22 74 72 61 6e 73 70 6f 73 65 22 20 66 75 6e 63 74 69 6f 6e 20 66 6f 72 20 74 s.the."transpose".function.for.t
29e20 65 78 74 20 77 69 64 67 65 74 73 2e 0a 23 20 49 74 20 74 72 61 6e 70 6f 73 65 73 20 74 68 65 20 ext.widgets..#.It.tranposes.the.
29e40 63 68 61 72 61 63 74 65 72 73 20 6f 6e 20 65 69 74 68 65 72 20 73 69 64 65 20 6f 66 20 74 68 65 characters.on.either.side.of.the
29e60 20 69 6e 73 65 72 74 69 6f 6e 20 63 75 72 73 6f 72 2c 0a 23 20 75 6e 6c 65 73 73 20 74 68 65 20 .insertion.cursor,.#.unless.the.
29e80 63 75 72 73 6f 72 20 69 73 20 61 74 20 74 68 65 20 65 6e 64 20 6f 66 20 74 68 65 20 6c 69 6e 65 cursor.is.at.the.end.of.the.line
29ea0 2e 20 20 49 6e 20 74 68 69 73 20 63 61 73 65 20 69 74 0a 23 20 74 72 61 6e 73 70 6f 73 65 73 20 ...In.this.case.it.#.transposes.
29ec0 74 68 65 20 74 77 6f 20 63 68 61 72 61 63 74 65 72 73 20 74 6f 20 74 68 65 20 6c 65 66 74 20 6f the.two.characters.to.the.left.o
29ee0 66 20 74 68 65 20 63 75 72 73 6f 72 2e 20 20 49 6e 20 65 69 74 68 65 72 0a 23 20 63 61 73 65 2c f.the.cursor...In.either.#.case,
29f00 20 74 68 65 20 63 75 72 73 6f 72 20 65 6e 64 73 20 75 70 20 74 6f 20 74 68 65 20 72 69 67 68 74 .the.cursor.ends.up.to.the.right
29f20 20 6f 66 20 74 68 65 20 74 72 61 6e 73 70 6f 73 65 64 20 63 68 61 72 61 63 74 65 72 73 2e 0a 23 .of.the.transposed.characters..#
29f40 0a 23 20 41 72 67 75 6d 65 6e 74 73 3a 0a 23 20 77 20 2d 09 09 54 65 78 74 20 77 69 6e 64 6f 77 .#.Arguments:.#.w.-..Text.window
29f60 20 69 6e 20 77 68 69 63 68 20 74 6f 20 74 72 61 6e 73 70 6f 73 65 2e 0a 0a 70 72 6f 63 20 74 6b .in.which.to.transpose...proc.tk
29f80 54 65 78 74 54 72 61 6e 73 70 6f 73 65 20 77 20 7b 0a 20 20 20 20 73 65 74 20 70 6f 73 20 69 6e TextTranspose.w.{.....set.pos.in
29fa0 73 65 72 74 0a 20 20 20 20 69 66 20 7b 5b 24 77 20 63 6f 6d 70 61 72 65 20 24 70 6f 73 20 21 3d sert.....if.{[$w.compare.$pos.!=
29fc0 20 22 24 70 6f 73 20 6c 69 6e 65 65 6e 64 22 5d 7d 20 7b 0a 09 73 65 74 20 70 6f 73 20 5b 24 77 ."$pos.lineend"]}.{..set.pos.[$w
29fe0 20 69 6e 64 65 78 20 22 24 70 6f 73 20 2b 20 31 20 63 68 61 72 22 5d 0a 20 20 20 20 7d 0a 20 20 .index."$pos.+.1.char"].....}...
2a000 20 20 73 65 74 20 6e 65 77 20 5b 24 77 20 67 65 74 20 22 24 70 6f 73 20 2d 20 31 20 63 68 61 72 ..set.new.[$w.get."$pos.-.1.char
2a020 22 5d 5b 24 77 20 67 65 74 20 20 22 24 70 6f 73 20 2d 20 32 20 63 68 61 72 22 5d 0a 20 20 20 20 "][$w.get.."$pos.-.2.char"].....
2a040 69 66 20 7b 5b 24 77 20 63 6f 6d 70 61 72 65 20 22 24 70 6f 73 20 2d 20 31 20 63 68 61 72 22 20 if.{[$w.compare."$pos.-.1.char".
2a060 3d 3d 20 31 2e 30 5d 7d 20 7b 0a 09 72 65 74 75 72 6e 0a 20 20 20 20 7d 0a 20 20 20 20 24 77 20 ==.1.0]}.{..return.....}.....$w.
2a080 64 65 6c 65 74 65 20 22 24 70 6f 73 20 2d 20 32 20 63 68 61 72 22 20 24 70 6f 73 0a 20 20 20 20 delete."$pos.-.2.char".$pos.....
2a0a0 24 77 20 69 6e 73 65 72 74 20 69 6e 73 65 72 74 20 24 6e 65 77 0a 20 20 20 20 24 77 20 73 65 65 $w.insert.insert.$new.....$w.see
2a0c0 20 69 6e 73 65 72 74 0a 7d 0a 0a 23 20 74 6b 5f 74 65 78 74 43 6f 70 79 20 2d 2d 0a 23 20 54 68 .insert.}..#.tk_textCopy.--.#.Th
2a0e0 69 73 20 70 72 6f 63 65 64 75 72 65 20 63 6f 70 69 65 73 20 74 68 65 20 73 65 6c 65 63 74 69 6f is.procedure.copies.the.selectio
2a100 6e 20 66 72 6f 6d 20 61 20 74 65 78 74 20 77 69 64 67 65 74 20 69 6e 74 6f 20 74 68 65 0a 23 20 n.from.a.text.widget.into.the.#.
2a120 63 6c 69 70 62 6f 61 72 64 2e 0a 23 0a 23 20 41 72 67 75 6d 65 6e 74 73 3a 0a 23 20 77 20 2d 09 clipboard..#.#.Arguments:.#.w.-.
2a140 09 4e 61 6d 65 20 6f 66 20 61 20 74 65 78 74 20 77 69 64 67 65 74 2e 0a 0a 70 72 6f 63 20 74 6b .Name.of.a.text.widget...proc.tk
2a160 5f 74 65 78 74 43 6f 70 79 20 77 20 7b 0a 20 20 20 20 69 66 20 7b 21 5b 63 61 74 63 68 20 7b 73 _textCopy.w.{.....if.{![catch.{s
2a180 65 74 20 64 61 74 61 20 5b 24 77 20 67 65 74 20 73 65 6c 2e 66 69 72 73 74 20 73 65 6c 2e 6c 61 et.data.[$w.get.sel.first.sel.la
2a1a0 73 74 5d 7d 5d 7d 20 7b 0a 09 63 6c 69 70 62 6f 61 72 64 20 63 6c 65 61 72 20 2d 64 69 73 70 6c st]}]}.{..clipboard.clear.-displ
2a1c0 61 79 6f 66 20 24 77 0a 09 63 6c 69 70 62 6f 61 72 64 20 61 70 70 65 6e 64 20 2d 64 69 73 70 6c ayof.$w..clipboard.append.-displ
2a1e0 61 79 6f 66 20 24 77 20 24 64 61 74 61 0a 20 20 20 20 7d 0a 7d 0a 0a 23 20 74 6b 5f 74 65 78 74 ayof.$w.$data.....}.}..#.tk_text
2a200 43 75 74 20 2d 2d 0a 23 20 54 68 69 73 20 70 72 6f 63 65 64 75 72 65 20 63 6f 70 69 65 73 20 74 Cut.--.#.This.procedure.copies.t
2a220 68 65 20 73 65 6c 65 63 74 69 6f 6e 20 66 72 6f 6d 20 61 20 74 65 78 74 20 77 69 64 67 65 74 20 he.selection.from.a.text.widget.
2a240 69 6e 74 6f 20 74 68 65 0a 23 20 63 6c 69 70 62 6f 61 72 64 2c 20 74 68 65 6e 20 64 65 6c 65 74 into.the.#.clipboard,.then.delet
2a260 65 73 20 74 68 65 20 73 65 6c 65 63 74 69 6f 6e 20 28 69 66 20 69 74 20 65 78 69 73 74 73 20 69 es.the.selection.(if.it.exists.i
2a280 6e 20 74 68 65 20 67 69 76 65 6e 0a 23 20 77 69 64 67 65 74 29 2e 0a 23 0a 23 20 41 72 67 75 6d n.the.given.#.widget)..#.#.Argum
2a2a0 65 6e 74 73 3a 0a 23 20 77 20 2d 09 09 4e 61 6d 65 20 6f 66 20 61 20 74 65 78 74 20 77 69 64 67 ents:.#.w.-..Name.of.a.text.widg
2a2c0 65 74 2e 0a 0a 70 72 6f 63 20 74 6b 5f 74 65 78 74 43 75 74 20 77 20 7b 0a 20 20 20 20 69 66 20 et...proc.tk_textCut.w.{.....if.
2a2e0 7b 21 5b 63 61 74 63 68 20 7b 73 65 74 20 64 61 74 61 20 5b 24 77 20 67 65 74 20 73 65 6c 2e 66 {![catch.{set.data.[$w.get.sel.f
2a300 69 72 73 74 20 73 65 6c 2e 6c 61 73 74 5d 7d 5d 7d 20 7b 0a 09 63 6c 69 70 62 6f 61 72 64 20 63 irst.sel.last]}]}.{..clipboard.c
2a320 6c 65 61 72 20 2d 64 69 73 70 6c 61 79 6f 66 20 24 77 0a 09 63 6c 69 70 62 6f 61 72 64 20 61 70 lear.-displayof.$w..clipboard.ap
2a340 70 65 6e 64 20 2d 64 69 73 70 6c 61 79 6f 66 20 24 77 20 24 64 61 74 61 0a 09 24 77 20 64 65 6c pend.-displayof.$w.$data..$w.del
2a360 65 74 65 20 73 65 6c 2e 66 69 72 73 74 20 73 65 6c 2e 6c 61 73 74 0a 20 20 20 20 7d 0a 7d 0a 0a ete.sel.first.sel.last.....}.}..
2a380 23 20 74 6b 5f 74 65 78 74 50 61 73 74 65 20 2d 2d 0a 23 20 54 68 69 73 20 70 72 6f 63 65 64 75 #.tk_textPaste.--.#.This.procedu
2a3a0 72 65 20 70 61 73 74 65 73 20 74 68 65 20 63 6f 6e 74 65 6e 74 73 20 6f 66 20 74 68 65 20 63 6c re.pastes.the.contents.of.the.cl
2a3c0 69 70 62 6f 61 72 64 20 74 6f 20 74 68 65 20 69 6e 73 65 72 74 69 6f 6e 0a 23 20 70 6f 69 6e 74 ipboard.to.the.insertion.#.point
2a3e0 20 69 6e 20 61 20 74 65 78 74 20 77 69 64 67 65 74 2e 0a 23 0a 23 20 41 72 67 75 6d 65 6e 74 73 .in.a.text.widget..#.#.Arguments
2a400 3a 0a 23 20 77 20 2d 09 09 4e 61 6d 65 20 6f 66 20 61 20 74 65 78 74 20 77 69 64 67 65 74 2e 0a :.#.w.-..Name.of.a.text.widget..
2a420 0a 70 72 6f 63 20 74 6b 5f 74 65 78 74 50 61 73 74 65 20 77 20 7b 0a 20 20 20 20 67 6c 6f 62 61 .proc.tk_textPaste.w.{.....globa
2a440 6c 20 74 63 6c 5f 70 6c 61 74 66 6f 72 6d 0a 20 20 20 20 63 61 74 63 68 20 7b 0a 09 69 66 20 7b l.tcl_platform.....catch.{..if.{
2a460 5b 73 74 72 69 6e 67 20 63 6f 6d 70 61 72 65 20 24 74 63 6c 5f 70 6c 61 74 66 6f 72 6d 28 70 6c [string.compare.$tcl_platform(pl
2a480 61 74 66 6f 72 6d 29 20 22 75 6e 69 78 22 5d 7d 20 7b 0a 09 20 20 20 20 63 61 74 63 68 20 7b 0a atform)."unix"]}.{......catch.{.
2a4a0 09 09 24 77 20 64 65 6c 65 74 65 20 73 65 6c 2e 66 69 72 73 74 20 73 65 6c 2e 6c 61 73 74 0a 09 ..$w.delete.sel.first.sel.last..
2a4c0 20 20 20 20 7d 0a 09 7d 0a 09 24 77 20 69 6e 73 65 72 74 20 69 6e 73 65 72 74 20 5b 73 65 6c 65 ....}..}..$w.insert.insert.[sele
2a4e0 63 74 69 6f 6e 20 67 65 74 20 2d 64 69 73 70 6c 61 79 6f 66 20 24 77 20 2d 73 65 6c 65 63 74 69 ction.get.-displayof.$w.-selecti
2a500 6f 6e 20 43 4c 49 50 42 4f 41 52 44 5d 0a 20 20 20 20 7d 0a 7d 0a 0a 23 20 74 6b 54 65 78 74 4e on.CLIPBOARD].....}.}..#.tkTextN
2a520 65 78 74 57 6f 72 64 20 2d 2d 0a 23 20 52 65 74 75 72 6e 73 20 74 68 65 20 69 6e 64 65 78 20 6f extWord.--.#.Returns.the.index.o
2a540 66 20 74 68 65 20 6e 65 78 74 20 77 6f 72 64 20 70 6f 73 69 74 69 6f 6e 20 61 66 74 65 72 20 61 f.the.next.word.position.after.a
2a560 20 67 69 76 65 6e 20 70 6f 73 69 74 69 6f 6e 20 69 6e 20 74 68 65 0a 23 20 74 65 78 74 2e 20 20 .given.position.in.the.#.text...
2a580 54 68 65 20 6e 65 78 74 20 77 6f 72 64 20 69 73 20 70 6c 61 74 66 6f 72 6d 20 64 65 70 65 6e 64 The.next.word.is.platform.depend
2a5a0 65 6e 74 20 61 6e 64 20 6d 61 79 20 62 65 20 65 69 74 68 65 72 20 74 68 65 20 6e 65 78 74 0a 23 ent.and.may.be.either.the.next.#
2a5c0 20 65 6e 64 2d 6f 66 2d 77 6f 72 64 20 70 6f 73 69 74 69 6f 6e 20 6f 72 20 74 68 65 20 6e 65 78 .end-of-word.position.or.the.nex
2a5e0 74 20 73 74 61 72 74 2d 6f 66 2d 77 6f 72 64 20 70 6f 73 69 74 69 6f 6e 20 61 66 74 65 72 20 74 t.start-of-word.position.after.t
2a600 68 65 20 6e 65 78 74 0a 23 20 65 6e 64 2d 6f 66 2d 77 6f 72 64 20 70 6f 73 69 74 69 6f 6e 2e 0a he.next.#.end-of-word.position..
2a620 23 0a 23 20 41 72 67 75 6d 65 6e 74 73 3a 0a 23 20 77 20 2d 09 09 54 68 65 20 74 65 78 74 20 77 #.#.Arguments:.#.w.-..The.text.w
2a640 69 6e 64 6f 77 20 69 6e 20 77 68 69 63 68 20 74 68 65 20 63 75 72 73 6f 72 20 69 73 20 74 6f 20 indow.in.which.the.cursor.is.to.
2a660 6d 6f 76 65 2e 0a 23 20 73 74 61 72 74 20 2d 09 50 6f 73 69 74 69 6f 6e 20 61 74 20 77 68 69 63 move..#.start.-.Position.at.whic
2a680 68 20 74 6f 20 73 74 61 72 74 20 73 65 61 72 63 68 2e 0a 0a 69 66 20 7b 5b 73 74 72 69 6e 67 20 h.to.start.search...if.{[string.
2a6a0 65 71 75 61 6c 20 24 74 63 6c 5f 70 6c 61 74 66 6f 72 6d 28 70 6c 61 74 66 6f 72 6d 29 20 22 77 equal.$tcl_platform(platform)."w
2a6c0 69 6e 64 6f 77 73 22 5d 7d 20 20 7b 0a 20 20 20 20 70 72 6f 63 20 74 6b 54 65 78 74 4e 65 78 74 indows"]}..{.....proc.tkTextNext
2a6e0 57 6f 72 64 20 7b 77 20 73 74 61 72 74 7d 20 7b 0a 09 74 6b 54 65 78 74 4e 65 78 74 50 6f 73 20 Word.{w.start}.{..tkTextNextPos.
2a700 24 77 20 5b 74 6b 54 65 78 74 4e 65 78 74 50 6f 73 20 24 77 20 24 73 74 61 72 74 20 74 63 6c 5f $w.[tkTextNextPos.$w.$start.tcl_
2a720 65 6e 64 4f 66 57 6f 72 64 5d 20 5c 0a 09 20 20 20 20 74 63 6c 5f 73 74 61 72 74 4f 66 4e 65 78 endOfWord].\......tcl_startOfNex
2a740 74 57 6f 72 64 0a 20 20 20 20 7d 0a 7d 20 65 6c 73 65 20 7b 0a 20 20 20 20 70 72 6f 63 20 74 6b tWord.....}.}.else.{.....proc.tk
2a760 54 65 78 74 4e 65 78 74 57 6f 72 64 20 7b 77 20 73 74 61 72 74 7d 20 7b 0a 09 74 6b 54 65 78 74 TextNextWord.{w.start}.{..tkText
2a780 4e 65 78 74 50 6f 73 20 24 77 20 24 73 74 61 72 74 20 74 63 6c 5f 65 6e 64 4f 66 57 6f 72 64 0a NextPos.$w.$start.tcl_endOfWord.
2a7a0 20 20 20 20 7d 0a 7d 0a 0a 23 20 74 6b 54 65 78 74 4e 65 78 74 50 6f 73 20 2d 2d 0a 23 20 52 65 ....}.}..#.tkTextNextPos.--.#.Re
2a7c0 74 75 72 6e 73 20 74 68 65 20 69 6e 64 65 78 20 6f 66 20 74 68 65 20 6e 65 78 74 20 70 6f 73 69 turns.the.index.of.the.next.posi
2a7e0 74 69 6f 6e 20 61 66 74 65 72 20 74 68 65 20 67 69 76 65 6e 20 73 74 61 72 74 69 6e 67 0a 23 20 tion.after.the.given.starting.#.
2a800 70 6f 73 69 74 69 6f 6e 20 69 6e 20 74 68 65 20 74 65 78 74 20 61 73 20 63 6f 6d 70 75 74 65 64 position.in.the.text.as.computed
2a820 20 62 79 20 61 20 73 70 65 63 69 66 69 65 64 20 66 75 6e 63 74 69 6f 6e 2e 0a 23 0a 23 20 41 72 .by.a.specified.function..#.#.Ar
2a840 67 75 6d 65 6e 74 73 3a 0a 23 20 77 20 2d 09 09 54 68 65 20 74 65 78 74 20 77 69 6e 64 6f 77 20 guments:.#.w.-..The.text.window.
2a860 69 6e 20 77 68 69 63 68 20 74 68 65 20 63 75 72 73 6f 72 20 69 73 20 74 6f 20 6d 6f 76 65 2e 0a in.which.the.cursor.is.to.move..
2a880 23 20 73 74 61 72 74 20 2d 09 50 6f 73 69 74 69 6f 6e 20 61 74 20 77 68 69 63 68 20 74 6f 20 73 #.start.-.Position.at.which.to.s
2a8a0 74 61 72 74 20 73 65 61 72 63 68 2e 0a 23 20 6f 70 20 2d 09 09 46 75 6e 63 74 69 6f 6e 20 74 6f tart.search..#.op.-..Function.to
2a8c0 20 75 73 65 20 74 6f 20 66 69 6e 64 20 6e 65 78 74 20 70 6f 73 69 74 69 6f 6e 2e 0a 0a 70 72 6f .use.to.find.next.position...pro
2a8e0 63 20 74 6b 54 65 78 74 4e 65 78 74 50 6f 73 20 7b 77 20 73 74 61 72 74 20 6f 70 7d 20 7b 0a 20 c.tkTextNextPos.{w.start.op}.{..
2a900 20 20 20 73 65 74 20 74 65 78 74 20 22 22 0a 20 20 20 20 73 65 74 20 63 75 72 20 24 73 74 61 72 ...set.text."".....set.cur.$star
2a920 74 0a 20 20 20 20 77 68 69 6c 65 20 7b 5b 24 77 20 63 6f 6d 70 61 72 65 20 24 63 75 72 20 3c 20 t.....while.{[$w.compare.$cur.<.
2a940 65 6e 64 5d 7d 20 7b 0a 09 73 65 74 20 74 65 78 74 20 24 74 65 78 74 5b 24 77 20 67 65 74 20 24 end]}.{..set.text.$text[$w.get.$
2a960 63 75 72 20 22 24 63 75 72 20 6c 69 6e 65 65 6e 64 20 2b 20 31 63 22 5d 0a 09 73 65 74 20 70 6f cur."$cur.lineend.+.1c"]..set.po
2a980 73 20 5b 24 6f 70 20 24 74 65 78 74 20 30 5d 0a 09 69 66 20 7b 24 70 6f 73 20 3e 3d 20 30 7d 20 s.[$op.$text.0]..if.{$pos.>=.0}.
2a9a0 7b 0a 09 20 20 20 20 23 23 20 41 64 6a 75 73 74 20 66 6f 72 20 65 6d 62 65 64 64 65 64 20 77 69 {......##.Adjust.for.embedded.wi
2a9c0 6e 64 6f 77 73 20 61 6e 64 20 69 6d 61 67 65 73 0a 09 20 20 20 20 23 23 20 64 75 6d 70 20 67 69 ndows.and.images......##.dump.gi
2a9e0 76 65 73 20 75 73 20 33 20 69 74 65 6d 73 20 70 65 72 20 77 69 6e 64 6f 77 2f 69 6d 61 67 65 0a ves.us.3.items.per.window/image.
2aa00 09 20 20 20 20 73 65 74 20 64 75 6d 70 20 5b 24 77 20 64 75 6d 70 20 2d 69 6d 61 67 65 20 2d 77 .....set.dump.[$w.dump.-image.-w
2aa20 69 6e 64 6f 77 20 24 73 74 61 72 74 20 22 24 73 74 61 72 74 20 2b 20 24 70 6f 73 20 63 22 5d 0a indow.$start."$start.+.$pos.c"].
2aa40 09 20 20 20 20 69 66 20 7b 5b 6c 6c 65 6e 67 74 68 20 24 64 75 6d 70 5d 7d 20 7b 0a 09 09 73 65 .....if.{[llength.$dump]}.{...se
2aa60 74 20 70 6f 73 20 5b 65 78 70 72 20 7b 24 70 6f 73 20 2b 20 28 5b 6c 6c 65 6e 67 74 68 20 24 64 t.pos.[expr.{$pos.+.([llength.$d
2aa80 75 6d 70 5d 2f 33 29 7d 5d 0a 09 20 20 20 20 7d 0a 09 20 20 20 20 72 65 74 75 72 6e 20 5b 24 77 ump]/3)}]......}......return.[$w
2aaa0 20 69 6e 64 65 78 20 22 24 73 74 61 72 74 20 2b 20 24 70 6f 73 20 63 22 5d 0a 09 7d 0a 09 73 65 .index."$start.+.$pos.c"]..}..se
2aac0 74 20 63 75 72 20 5b 24 77 20 69 6e 64 65 78 20 22 24 63 75 72 20 6c 69 6e 65 65 6e 64 20 2b 31 t.cur.[$w.index."$cur.lineend.+1
2aae0 63 22 5d 0a 20 20 20 20 7d 0a 20 20 20 20 72 65 74 75 72 6e 20 65 6e 64 0a 7d 0a 0a 23 20 74 6b c"].....}.....return.end.}..#.tk
2ab00 54 65 78 74 50 72 65 76 50 6f 73 20 2d 2d 0a 23 20 52 65 74 75 72 6e 73 20 74 68 65 20 69 6e 64 TextPrevPos.--.#.Returns.the.ind
2ab20 65 78 20 6f 66 20 74 68 65 20 70 72 65 76 69 6f 75 73 20 70 6f 73 69 74 69 6f 6e 20 62 65 66 6f ex.of.the.previous.position.befo
2ab40 72 65 20 74 68 65 20 67 69 76 65 6e 20 73 74 61 72 74 69 6e 67 0a 23 20 70 6f 73 69 74 69 6f 6e re.the.given.starting.#.position
2ab60 20 69 6e 20 74 68 65 20 74 65 78 74 20 61 73 20 63 6f 6d 70 75 74 65 64 20 62 79 20 61 20 73 70 .in.the.text.as.computed.by.a.sp
2ab80 65 63 69 66 69 65 64 20 66 75 6e 63 74 69 6f 6e 2e 0a 23 0a 23 20 41 72 67 75 6d 65 6e 74 73 3a ecified.function..#.#.Arguments:
2aba0 0a 23 20 77 20 2d 09 09 54 68 65 20 74 65 78 74 20 77 69 6e 64 6f 77 20 69 6e 20 77 68 69 63 68 .#.w.-..The.text.window.in.which
2abc0 20 74 68 65 20 63 75 72 73 6f 72 20 69 73 20 74 6f 20 6d 6f 76 65 2e 0a 23 20 73 74 61 72 74 20 .the.cursor.is.to.move..#.start.
2abe0 2d 09 50 6f 73 69 74 69 6f 6e 20 61 74 20 77 68 69 63 68 20 74 6f 20 73 74 61 72 74 20 73 65 61 -.Position.at.which.to.start.sea
2ac00 72 63 68 2e 0a 23 20 6f 70 20 2d 09 09 46 75 6e 63 74 69 6f 6e 20 74 6f 20 75 73 65 20 74 6f 20 rch..#.op.-..Function.to.use.to.
2ac20 66 69 6e 64 20 6e 65 78 74 20 70 6f 73 69 74 69 6f 6e 2e 0a 0a 70 72 6f 63 20 74 6b 54 65 78 74 find.next.position...proc.tkText
2ac40 50 72 65 76 50 6f 73 20 7b 77 20 73 74 61 72 74 20 6f 70 7d 20 7b 0a 20 20 20 20 73 65 74 20 74 PrevPos.{w.start.op}.{.....set.t
2ac60 65 78 74 20 22 22 0a 20 20 20 20 73 65 74 20 63 75 72 20 24 73 74 61 72 74 0a 20 20 20 20 77 68 ext."".....set.cur.$start.....wh
2ac80 69 6c 65 20 7b 5b 24 77 20 63 6f 6d 70 61 72 65 20 24 63 75 72 20 3e 20 30 2e 30 5d 7d 20 7b 0a ile.{[$w.compare.$cur.>.0.0]}.{.
2aca0 09 73 65 74 20 74 65 78 74 20 5b 24 77 20 67 65 74 20 22 24 63 75 72 20 6c 69 6e 65 73 74 61 72 .set.text.[$w.get."$cur.linestar
2acc0 74 20 2d 20 31 63 22 20 24 63 75 72 5d 24 74 65 78 74 0a 09 73 65 74 20 70 6f 73 20 5b 24 6f 70 t.-.1c".$cur]$text..set.pos.[$op
2ace0 20 24 74 65 78 74 20 65 6e 64 5d 0a 09 69 66 20 7b 24 70 6f 73 20 3e 3d 20 30 7d 20 7b 0a 09 20 .$text.end]..if.{$pos.>=.0}.{...
2ad00 20 20 20 23 23 20 41 64 6a 75 73 74 20 66 6f 72 20 65 6d 62 65 64 64 65 64 20 77 69 6e 64 6f 77 ...##.Adjust.for.embedded.window
2ad20 73 20 61 6e 64 20 69 6d 61 67 65 73 0a 09 20 20 20 20 23 23 20 64 75 6d 70 20 67 69 76 65 73 20 s.and.images......##.dump.gives.
2ad40 75 73 20 33 20 69 74 65 6d 73 20 70 65 72 20 77 69 6e 64 6f 77 2f 69 6d 61 67 65 0a 09 20 20 20 us.3.items.per.window/image.....
2ad60 20 73 65 74 20 64 75 6d 70 20 5b 24 77 20 64 75 6d 70 20 2d 69 6d 61 67 65 20 2d 77 69 6e 64 6f .set.dump.[$w.dump.-image.-windo
2ad80 77 20 22 24 63 75 72 20 6c 69 6e 65 73 74 61 72 74 22 20 22 24 73 74 61 72 74 20 2d 20 31 63 22 w."$cur.linestart"."$start.-.1c"
2ada0 5d 0a 09 20 20 20 20 69 66 20 7b 5b 6c 6c 65 6e 67 74 68 20 24 64 75 6d 70 5d 7d 20 7b 0a 09 09 ]......if.{[llength.$dump]}.{...
2adc0 23 23 20 54 68 69 73 20 69 73 20 61 20 68 6f 6b 65 79 20 65 78 74 72 61 20 68 61 63 6b 20 66 6f ##.This.is.a.hokey.extra.hack.fo
2ade0 72 20 63 6f 6e 74 72 6f 6c 2d 61 72 72 6f 77 20 6d 6f 76 65 6d 65 6e 74 0a 09 09 23 23 20 74 68 r.control-arrow.movement...##.th
2ae00 61 74 20 73 68 6f 75 6c 64 20 62 65 20 69 6e 20 61 20 77 68 69 6c 65 20 6c 6f 6f 70 20 74 6f 20 at.should.be.in.a.while.loop.to.
2ae20 62 65 20 63 6f 72 72 65 63 74 20 28 68 6f 62 62 73 29 0a 09 09 69 66 20 7b 5b 24 77 20 63 6f 6d be.correct.(hobbs)...if.{[$w.com
2ae40 70 61 72 65 20 5b 6c 69 6e 64 65 78 20 24 64 75 6d 70 20 32 5d 20 3e 20 5c 0a 09 09 09 22 24 63 pare.[lindex.$dump.2].>.\...."$c
2ae60 75 72 20 6c 69 6e 65 73 74 61 72 74 20 2d 20 31 63 20 2b 20 24 70 6f 73 20 63 22 5d 7d 20 7b 0a ur.linestart.-.1c.+.$pos.c"]}.{.
2ae80 09 09 20 20 20 20 69 6e 63 72 20 70 6f 73 20 2d 31 0a 09 09 7d 0a 09 09 73 65 74 20 70 6f 73 20 ......incr.pos.-1...}...set.pos.
2aea0 5b 65 78 70 72 20 7b 24 70 6f 73 20 2b 20 28 5b 6c 6c 65 6e 67 74 68 20 24 64 75 6d 70 5d 2f 33 [expr.{$pos.+.([llength.$dump]/3
2aec0 29 7d 5d 0a 09 20 20 20 20 7d 0a 09 20 20 20 20 72 65 74 75 72 6e 20 5b 24 77 20 69 6e 64 65 78 )}]......}......return.[$w.index
2aee0 20 22 24 63 75 72 20 6c 69 6e 65 73 74 61 72 74 20 2d 20 31 63 20 2b 20 24 70 6f 73 20 63 22 5d ."$cur.linestart.-.1c.+.$pos.c"]
2af00 0a 09 7d 0a 09 73 65 74 20 63 75 72 20 5b 24 77 20 69 6e 64 65 78 20 22 24 63 75 72 20 6c 69 6e ..}..set.cur.[$w.index."$cur.lin
2af20 65 73 74 61 72 74 20 2d 20 31 63 22 5d 0a 20 20 20 20 7d 0a 20 20 20 20 72 65 74 75 72 6e 20 30 estart.-.1c"].....}.....return.0
2af40 2e 30 0a 7d 0a 00 00 0d b9 23 20 62 67 65 72 72 6f 72 2e 74 63 6c 20 2d 2d 0a 23 0a 23 20 54 68 .0.}.....#.bgerror.tcl.--.#.#.Th
2af60 69 73 20 66 69 6c 65 20 63 6f 6e 74 61 69 6e 73 20 61 20 64 65 66 61 75 6c 74 20 76 65 72 73 69 is.file.contains.a.default.versi
2af80 6f 6e 20 6f 66 20 74 68 65 20 62 67 65 72 72 6f 72 20 70 72 6f 63 65 64 75 72 65 2e 20 20 49 74 on.of.the.bgerror.procedure...It
2afa0 0a 23 20 70 6f 73 74 73 20 61 20 64 69 61 6c 6f 67 20 62 6f 78 20 77 69 74 68 20 74 68 65 20 65 .#.posts.a.dialog.box.with.the.e
2afc0 72 72 6f 72 20 6d 65 73 73 61 67 65 20 61 6e 64 20 67 69 76 65 73 20 74 68 65 20 75 73 65 72 20 rror.message.and.gives.the.user.
2afe0 61 20 63 68 61 6e 63 65 0a 23 20 74 6f 20 73 65 65 20 61 20 6d 6f 72 65 20 64 65 74 61 69 6c 65 a.chance.#.to.see.a.more.detaile
2b000 64 20 73 74 61 63 6b 20 74 72 61 63 65 2e 0a 23 0a 23 20 52 43 53 3a 20 40 28 23 29 20 24 49 64 d.stack.trace..#.#.RCS:.@(#).$Id
2b020 3a 20 62 67 65 72 72 6f 72 2e 74 63 6c 2c 76 20 31 2e 35 20 31 39 39 39 2f 30 34 2f 31 36 20 30 :.bgerror.tcl,v.1.5.1999/04/16.0
2b040 31 3a 35 31 3a 32 35 20 73 74 61 6e 74 6f 6e 20 45 78 70 20 24 0a 23 0a 23 20 43 6f 70 79 72 69 1:51:25.stanton.Exp.$.#.#.Copyri
2b060 67 68 74 20 28 63 29 20 31 39 39 32 2d 31 39 39 34 20 54 68 65 20 52 65 67 65 6e 74 73 20 6f 66 ght.(c).1992-1994.The.Regents.of
2b080 20 74 68 65 20 55 6e 69 76 65 72 73 69 74 79 20 6f 66 20 43 61 6c 69 66 6f 72 6e 69 61 2e 0a 23 .the.University.of.California..#
2b0a0 20 43 6f 70 79 72 69 67 68 74 20 28 63 29 20 31 39 39 34 2d 31 39 39 36 20 53 75 6e 20 4d 69 63 .Copyright.(c).1994-1996.Sun.Mic
2b0c0 72 6f 73 79 73 74 65 6d 73 2c 20 49 6e 63 2e 0a 23 0a 23 20 53 65 65 20 74 68 65 20 66 69 6c 65 rosystems,.Inc..#.#.See.the.file
2b0e0 20 22 6c 69 63 65 6e 73 65 2e 74 65 72 6d 73 22 20 66 6f 72 20 69 6e 66 6f 72 6d 61 74 69 6f 6e ."license.terms".for.information
2b100 20 6f 6e 20 75 73 61 67 65 20 61 6e 64 20 72 65 64 69 73 74 72 69 62 75 74 69 6f 6e 0a 23 20 6f .on.usage.and.redistribution.#.o
2b120 66 20 74 68 69 73 20 66 69 6c 65 2c 20 61 6e 64 20 66 6f 72 20 61 20 44 49 53 43 4c 41 49 4d 45 f.this.file,.and.for.a.DISCLAIME
2b140 52 20 4f 46 20 41 4c 4c 20 57 41 52 52 41 4e 54 49 45 53 2e 0a 0a 0a 23 20 62 67 65 72 72 6f 72 R.OF.ALL.WARRANTIES....#.bgerror
2b160 20 2d 2d 0a 23 20 54 68 69 73 20 69 73 20 74 68 65 20 64 65 66 61 75 6c 74 20 76 65 72 73 69 6f .--.#.This.is.the.default.versio
2b180 6e 20 6f 66 20 62 67 65 72 72 6f 72 2e 20 0a 23 20 49 74 20 74 72 69 65 73 20 74 6f 20 65 78 65 n.of.bgerror...#.It.tries.to.exe
2b1a0 63 75 74 65 20 74 6b 65 72 72 6f 72 2c 20 69 66 20 74 68 61 74 20 66 61 69 6c 73 20 69 74 20 70 cute.tkerror,.if.that.fails.it.p
2b1c0 6f 73 74 73 20 61 20 64 69 61 6c 6f 67 20 62 6f 78 20 63 6f 6e 74 61 69 6e 69 6e 67 0a 23 20 74 osts.a.dialog.box.containing.#.t
2b1e0 68 65 20 65 72 72 6f 72 20 6d 65 73 73 61 67 65 20 61 6e 64 20 67 69 76 65 73 20 74 68 65 20 75 he.error.message.and.gives.the.u
2b200 73 65 72 20 61 20 63 68 61 6e 63 65 20 74 6f 20 61 73 6b 20 74 6f 20 73 65 65 20 61 20 73 74 61 ser.a.chance.to.ask.to.see.a.sta
2b220 63 6b 0a 23 20 74 72 61 63 65 2e 0a 23 20 41 72 67 75 6d 65 6e 74 73 3a 0a 23 20 65 72 72 20 2d ck.#.trace..#.Arguments:.#.err.-
2b240 09 09 09 54 68 65 20 65 72 72 6f 72 20 6d 65 73 73 61 67 65 2e 0a 0a 70 72 6f 63 20 62 67 65 72 ...The.error.message...proc.bger
2b260 72 6f 72 20 65 72 72 20 7b 0a 20 20 20 20 67 6c 6f 62 61 6c 20 65 72 72 6f 72 49 6e 66 6f 20 74 ror.err.{.....global.errorInfo.t
2b280 63 6c 5f 70 6c 61 74 66 6f 72 6d 0a 0a 20 20 20 20 23 20 73 61 76 65 20 65 72 72 6f 72 49 6e 66 cl_platform......#.save.errorInf
2b2a0 6f 20 77 68 69 63 68 20 77 6f 75 6c 64 20 62 65 20 65 72 61 73 65 64 20 69 6e 20 74 68 65 20 63 o.which.would.be.erased.in.the.c
2b2c0 61 74 63 68 20 62 65 6c 6f 77 20 6f 74 68 65 72 77 69 73 65 2e 0a 20 20 20 20 73 65 74 20 69 6e atch.below.otherwise......set.in
2b2e0 66 6f 20 24 65 72 72 6f 72 49 6e 66 6f 20 3b 0a 0a 20 20 20 20 23 20 46 6f 72 20 62 61 63 6b 77 fo.$errorInfo.;......#.For.backw
2b300 61 72 64 20 63 6f 6d 70 61 74 69 62 69 6c 69 74 79 20 3a 0a 20 20 20 20 23 20 4c 65 74 27 73 20 ard.compatibility.:.....#.Let's.
2b320 74 72 79 20 74 6f 20 65 78 65 63 75 74 65 20 22 74 6b 65 72 72 6f 72 22 20 28 75 73 69 6e 67 20 try.to.execute."tkerror".(using.
2b340 63 61 74 63 68 20 7b 74 6b 65 72 72 6f 72 20 2e 2e 2e 7d 20 0a 20 20 20 20 23 20 69 6e 73 74 65 catch.{tkerror....}......#.inste
2b360 61 64 20 6f 66 20 73 65 61 72 63 68 69 6e 67 20 69 74 20 77 69 74 68 20 69 6e 66 6f 20 70 72 6f ad.of.searching.it.with.info.pro
2b380 63 73 20 73 6f 20 74 68 65 20 61 70 70 6c 69 63 61 74 69 6f 6e 20 67 65 74 73 0a 20 20 20 20 23 cs.so.the.application.gets.....#
2b3a0 20 61 20 63 68 61 6e 63 65 20 74 6f 20 61 75 74 6f 20 6c 6f 61 64 20 69 74 20 75 73 69 6e 67 20 .a.chance.to.auto.load.it.using.
2b3c0 69 74 73 20 66 61 76 6f 72 69 74 65 20 22 75 6e 6b 6e 6f 77 6e 22 20 6d 65 63 61 6e 69 73 6d 2e its.favorite."unknown".mecanism.
2b3e0 0a 20 20 20 20 23 20 28 77 65 20 64 6f 20 74 68 65 20 64 65 66 61 75 6c 74 20 64 69 61 6c 6f 67 .....#.(we.do.the.default.dialog
2b400 20 6f 6e 6c 79 20 69 66 20 77 65 20 67 65 74 20 61 20 54 43 4c 5f 45 52 52 4f 52 20 28 3d 31 29 .only.if.we.get.a.TCL_ERROR.(=1)
2b420 20 72 65 74 75 72 6e 0a 20 20 20 20 23 20 20 63 6f 64 65 20 66 72 6f 6d 20 74 68 65 20 74 6b 65 .return.....#..code.from.the.tke
2b440 72 72 6f 72 20 74 72 69 61 6c 2c 20 6f 74 68 65 72 20 72 65 74 20 63 6f 64 65 73 20 61 72 65 20 rror.trial,.other.ret.codes.are.
2b460 70 61 73 73 65 64 20 62 61 63 6b 0a 20 20 20 20 23 20 20 74 6f 20 6f 75 72 20 63 61 6c 6c 65 72 passed.back.....#..to.our.caller
2b480 20 28 74 63 6c 20 62 61 63 6b 67 72 6f 75 6e 64 20 65 72 72 6f 72 20 68 61 6e 64 6c 65 72 29 20 .(tcl.background.error.handler).
2b4a0 73 6f 20 74 68 65 20 63 61 6c 6c 65 64 20 22 74 6b 65 72 72 6f 72 22 0a 20 20 20 20 23 20 20 63 so.the.called."tkerror".....#..c
2b4c0 61 6e 20 73 74 69 6c 6c 20 75 73 65 20 20 72 65 74 75 72 6e 20 2d 63 6f 64 65 20 62 72 65 61 6b an.still.use..return.-code.break
2b4e0 2c 20 74 6f 20 73 6b 69 70 20 72 65 6d 61 69 6e 69 6e 67 20 6d 65 73 73 61 67 65 73 0a 20 20 20 ,.to.skip.remaining.messages....
2b500 20 23 20 20 69 6e 20 74 68 65 20 65 72 72 6f 72 20 71 75 65 75 65 20 66 6f 72 20 69 6e 73 74 61 .#..in.the.error.queue.for.insta
2b520 6e 63 65 29 0a 0a 20 20 20 20 73 65 74 20 72 65 74 20 5b 63 61 74 63 68 20 7b 74 6b 65 72 72 6f nce)......set.ret.[catch.{tkerro
2b540 72 20 24 65 72 72 7d 20 6d 73 67 5d 3b 0a 20 20 20 20 69 66 20 7b 24 72 65 74 20 21 3d 20 31 7d r.$err}.msg];.....if.{$ret.!=.1}
2b560 20 7b 72 65 74 75 72 6e 20 2d 63 6f 64 65 20 24 72 65 74 20 24 6d 73 67 7d 0a 0a 20 20 20 20 23 .{return.-code.$ret.$msg}......#
2b580 20 4f 6b 20 74 68 65 20 61 70 70 6c 69 63 61 74 69 6f 6e 27 73 20 74 6b 65 72 72 6f 72 20 65 69 .Ok.the.application's.tkerror.ei
2b5a0 74 68 65 72 20 66 61 69 6c 65 64 20 6f 72 20 77 61 73 20 6e 6f 74 20 66 6f 75 6e 64 0a 20 20 20 ther.failed.or.was.not.found....
2b5c0 20 23 20 77 65 20 75 73 65 20 74 68 65 20 64 65 66 61 75 6c 74 20 64 69 61 6c 6f 67 20 74 68 65 .#.we.use.the.default.dialog.the
2b5e0 6e 20 3a 0a 20 20 20 20 69 66 20 7b 24 74 63 6c 5f 70 6c 61 74 66 6f 72 6d 28 70 6c 61 74 66 6f n.:.....if.{$tcl_platform(platfo
2b600 72 6d 29 20 3d 3d 20 22 6d 61 63 69 6e 74 6f 73 68 22 7d 20 7b 0a 09 73 65 74 20 6f 6b 20 4f 6b rm).==."macintosh"}.{..set.ok.Ok
2b620 0a 20 20 20 20 7d 20 65 6c 73 65 20 7b 0a 09 73 65 74 20 6f 6b 20 4f 4b 0a 20 20 20 20 7d 0a 20 .....}.else.{..set.ok.OK.....}..
2b640 20 20 20 73 65 74 20 62 75 74 74 6f 6e 20 5b 74 6b 5f 64 69 61 6c 6f 67 20 2e 62 67 65 72 72 6f ...set.button.[tk_dialog..bgerro
2b660 72 44 69 61 6c 6f 67 20 22 45 72 72 6f 72 20 69 6e 20 54 63 6c 20 53 63 72 69 70 74 22 20 5c 0a rDialog."Error.in.Tcl.Script".\.
2b680 09 20 20 20 20 22 45 72 72 6f 72 3a 20 24 65 72 72 22 20 65 72 72 6f 72 20 30 20 24 6f 6b 20 22 ....."Error:.$err".error.0.$ok."
2b6a0 53 6b 69 70 20 4d 65 73 73 61 67 65 73 22 20 22 53 74 61 63 6b 20 54 72 61 63 65 22 5d 0a 20 20 Skip.Messages"."Stack.Trace"]...
2b6c0 20 20 69 66 20 7b 24 62 75 74 74 6f 6e 20 3d 3d 20 30 7d 20 7b 0a 09 72 65 74 75 72 6e 0a 20 20 ..if.{$button.==.0}.{..return...
2b6e0 20 20 7d 20 65 6c 73 65 69 66 20 7b 24 62 75 74 74 6f 6e 20 3d 3d 20 31 7d 20 7b 0a 09 72 65 74 ..}.elseif.{$button.==.1}.{..ret
2b700 75 72 6e 20 2d 63 6f 64 65 20 62 72 65 61 6b 0a 20 20 20 20 7d 0a 0a 20 20 20 20 73 65 74 20 77 urn.-code.break.....}......set.w
2b720 20 2e 62 67 65 72 72 6f 72 54 72 61 63 65 0a 20 20 20 20 63 61 74 63 68 20 7b 64 65 73 74 72 6f ..bgerrorTrace.....catch.{destro
2b740 79 20 24 77 7d 0a 20 20 20 20 74 6f 70 6c 65 76 65 6c 20 24 77 20 2d 63 6c 61 73 73 20 45 72 72 y.$w}.....toplevel.$w.-class.Err
2b760 6f 72 54 72 61 63 65 0a 20 20 20 20 77 6d 20 6d 69 6e 73 69 7a 65 20 24 77 20 31 20 31 0a 20 20 orTrace.....wm.minsize.$w.1.1...
2b780 20 20 77 6d 20 74 69 74 6c 65 20 24 77 20 22 53 74 61 63 6b 20 54 72 61 63 65 20 66 6f 72 20 45 ..wm.title.$w."Stack.Trace.for.E
2b7a0 72 72 6f 72 22 0a 20 20 20 20 77 6d 20 69 63 6f 6e 6e 61 6d 65 20 24 77 20 22 53 74 61 63 6b 20 rror".....wm.iconname.$w."Stack.
2b7c0 54 72 61 63 65 22 0a 20 20 20 20 62 75 74 74 6f 6e 20 24 77 2e 6f 6b 20 2d 74 65 78 74 20 4f 4b Trace".....button.$w.ok.-text.OK
2b7e0 20 2d 63 6f 6d 6d 61 6e 64 20 22 64 65 73 74 72 6f 79 20 24 77 22 20 2d 64 65 66 61 75 6c 74 20 .-command."destroy.$w".-default.
2b800 61 63 74 69 76 65 0a 20 20 20 20 69 66 20 7b 21 5b 73 74 72 69 6e 67 20 63 6f 6d 70 61 72 65 20 active.....if.{![string.compare.
2b820 24 74 63 6c 5f 70 6c 61 74 66 6f 72 6d 28 70 6c 61 74 66 6f 72 6d 29 20 22 6d 61 63 69 6e 74 6f $tcl_platform(platform)."macinto
2b840 73 68 22 5d 7d 20 7b 0a 20 20 20 20 20 20 74 65 78 74 20 24 77 2e 74 65 78 74 20 2d 72 65 6c 69 sh"]}.{.......text.$w.text.-reli
2b860 65 66 20 66 6c 61 74 20 2d 62 64 20 32 20 2d 68 69 67 68 6c 69 67 68 74 74 68 69 63 6b 6e 65 73 ef.flat.-bd.2.-highlightthicknes
2b880 73 20 30 20 2d 73 65 74 67 72 69 64 20 74 72 75 65 20 5c 0a 09 20 20 20 20 2d 79 73 63 72 6f 6c s.0.-setgrid.true.\......-yscrol
2b8a0 6c 63 6f 6d 6d 61 6e 64 20 22 24 77 2e 73 63 72 6f 6c 6c 20 73 65 74 22 20 2d 77 69 64 74 68 20 lcommand."$w.scroll.set".-width.
2b8c0 36 30 20 2d 68 65 69 67 68 74 20 32 30 0a 20 20 20 20 7d 20 65 6c 73 65 20 7b 0a 20 20 20 20 20 60.-height.20.....}.else.{......
2b8e0 20 74 65 78 74 20 24 77 2e 74 65 78 74 20 2d 72 65 6c 69 65 66 20 73 75 6e 6b 65 6e 20 2d 62 64 .text.$w.text.-relief.sunken.-bd
2b900 20 32 20 2d 79 73 63 72 6f 6c 6c 63 6f 6d 6d 61 6e 64 20 22 24 77 2e 73 63 72 6f 6c 6c 20 73 65 .2.-yscrollcommand."$w.scroll.se
2b920 74 22 20 5c 0a 09 20 20 20 20 2d 73 65 74 67 72 69 64 20 74 72 75 65 20 2d 77 69 64 74 68 20 36 t".\......-setgrid.true.-width.6
2b940 30 20 2d 68 65 69 67 68 74 20 32 30 0a 20 20 20 20 7d 0a 20 20 20 20 73 63 72 6f 6c 6c 62 61 72 0.-height.20.....}.....scrollbar
2b960 20 24 77 2e 73 63 72 6f 6c 6c 20 2d 72 65 6c 69 65 66 20 73 75 6e 6b 65 6e 20 2d 63 6f 6d 6d 61 .$w.scroll.-relief.sunken.-comma
2b980 6e 64 20 22 24 77 2e 74 65 78 74 20 79 76 69 65 77 22 0a 20 20 20 20 70 61 63 6b 20 24 77 2e 6f nd."$w.text.yview".....pack.$w.o
2b9a0 6b 20 2d 73 69 64 65 20 62 6f 74 74 6f 6d 20 2d 70 61 64 78 20 33 6d 20 2d 70 61 64 79 20 32 6d k.-side.bottom.-padx.3m.-pady.2m
2b9c0 0a 20 20 20 20 70 61 63 6b 20 24 77 2e 73 63 72 6f 6c 6c 20 2d 73 69 64 65 20 72 69 67 68 74 20 .....pack.$w.scroll.-side.right.
2b9e0 2d 66 69 6c 6c 20 79 0a 20 20 20 20 70 61 63 6b 20 24 77 2e 74 65 78 74 20 2d 73 69 64 65 20 6c -fill.y.....pack.$w.text.-side.l
2ba00 65 66 74 20 2d 65 78 70 61 6e 64 20 79 65 73 20 2d 66 69 6c 6c 20 62 6f 74 68 0a 20 20 20 20 24 eft.-expand.yes.-fill.both.....$
2ba20 77 2e 74 65 78 74 20 69 6e 73 65 72 74 20 30 2e 30 20 24 69 6e 66 6f 0a 20 20 20 20 24 77 2e 74 w.text.insert.0.0.$info.....$w.t
2ba40 65 78 74 20 6d 61 72 6b 20 73 65 74 20 69 6e 73 65 72 74 20 30 2e 30 0a 0a 20 20 20 20 62 69 6e ext.mark.set.insert.0.0......bin
2ba60 64 20 24 77 20 3c 52 65 74 75 72 6e 3e 20 22 64 65 73 74 72 6f 79 20 24 77 22 0a 20 20 20 20 62 d.$w.<Return>."destroy.$w".....b
2ba80 69 6e 64 20 24 77 2e 74 65 78 74 20 3c 52 65 74 75 72 6e 3e 20 22 64 65 73 74 72 6f 79 20 24 77 ind.$w.text.<Return>."destroy.$w
2baa0 3b 20 62 72 65 61 6b 22 0a 0a 20 20 20 20 23 20 43 65 6e 74 65 72 20 74 68 65 20 77 69 6e 64 6f ;.break"......#.Center.the.windo
2bac0 77 20 6f 6e 20 74 68 65 20 73 63 72 65 65 6e 2e 0a 0a 20 20 20 20 77 6d 20 77 69 74 68 64 72 61 w.on.the.screen.......wm.withdra
2bae0 77 20 24 77 0a 20 20 20 20 75 70 64 61 74 65 20 69 64 6c 65 74 61 73 6b 73 0a 20 20 20 20 73 65 w.$w.....update.idletasks.....se
2bb00 74 20 78 20 5b 65 78 70 72 20 7b 5b 77 69 6e 66 6f 20 73 63 72 65 65 6e 77 69 64 74 68 20 24 77 t.x.[expr.{[winfo.screenwidth.$w
2bb20 5d 2f 32 20 2d 20 5b 77 69 6e 66 6f 20 72 65 71 77 69 64 74 68 20 24 77 5d 2f 32 20 5c 0a 09 20 ]/2.-.[winfo.reqwidth.$w]/2.\...
2bb40 20 20 20 2d 20 5b 77 69 6e 66 6f 20 76 72 6f 6f 74 78 20 5b 77 69 6e 66 6f 20 70 61 72 65 6e 74 ...-.[winfo.vrootx.[winfo.parent
2bb60 20 24 77 5d 5d 7d 5d 0a 20 20 20 20 73 65 74 20 79 20 5b 65 78 70 72 20 7b 5b 77 69 6e 66 6f 20 .$w]]}].....set.y.[expr.{[winfo.
2bb80 73 63 72 65 65 6e 68 65 69 67 68 74 20 24 77 5d 2f 32 20 2d 20 5b 77 69 6e 66 6f 20 72 65 71 68 screenheight.$w]/2.-.[winfo.reqh
2bba0 65 69 67 68 74 20 24 77 5d 2f 32 20 5c 0a 09 20 20 20 20 2d 20 5b 77 69 6e 66 6f 20 76 72 6f 6f eight.$w]/2.\......-.[winfo.vroo
2bbc0 74 79 20 5b 77 69 6e 66 6f 20 70 61 72 65 6e 74 20 24 77 5d 5d 7d 5d 0a 20 20 20 20 77 6d 20 67 ty.[winfo.parent.$w]]}].....wm.g
2bbe0 65 6f 6d 20 24 77 20 2b 24 78 2b 24 79 0a 20 20 20 20 77 6d 20 64 65 69 63 6f 6e 69 66 79 20 24 eom.$w.+$x+$y.....wm.deiconify.$
2bc00 77 0a 0a 20 20 20 20 23 20 42 65 20 73 75 72 65 20 74 6f 20 72 65 6c 65 61 73 65 20 61 6e 79 20 w......#.Be.sure.to.release.any.
2bc20 67 72 61 62 73 20 74 68 61 74 20 6d 69 67 68 74 20 62 65 20 70 72 65 73 65 6e 74 20 6f 6e 20 74 grabs.that.might.be.present.on.t
2bc40 68 65 0a 20 20 20 20 23 20 73 63 72 65 65 6e 2c 20 73 69 6e 63 65 20 74 68 65 79 20 63 6f 75 6c he.....#.screen,.since.they.coul
2bc60 64 20 6d 61 6b 65 20 69 74 20 69 6d 70 6f 73 73 69 62 6c 65 20 66 6f 72 20 74 68 65 20 75 73 65 d.make.it.impossible.for.the.use
2bc80 72 0a 20 20 20 20 23 20 74 6f 20 69 6e 74 65 72 61 63 74 20 77 69 74 68 20 74 68 65 20 73 74 61 r.....#.to.interact.with.the.sta
2bca0 63 6b 20 74 72 61 63 65 2e 0a 0a 20 20 20 20 69 66 20 7b 5b 73 74 72 69 6e 67 20 63 6f 6d 70 61 ck.trace.......if.{[string.compa
2bcc0 72 65 20 5b 67 72 61 62 20 63 75 72 72 65 6e 74 20 2e 5d 20 22 22 5d 7d 20 7b 0a 09 67 72 61 62 re.[grab.current..].""]}.{..grab
2bce0 20 72 65 6c 65 61 73 65 20 5b 67 72 61 62 20 63 75 72 72 65 6e 74 20 2e 5d 0a 20 20 20 20 7d 0a .release.[grab.current..].....}.
2bd00 7d 0a 00 00 30 32 23 20 63 6f 6e 73 6f 6c 65 2e 74 63 6c 20 2d 2d 0a 23 0a 23 20 54 68 69 73 20 }...02#.console.tcl.--.#.#.This.
2bd20 63 6f 64 65 20 63 6f 6e 73 74 72 75 63 74 73 20 74 68 65 20 63 6f 6e 73 6f 6c 65 20 77 69 6e 64 code.constructs.the.console.wind
2bd40 6f 77 20 66 6f 72 20 61 6e 20 61 70 70 6c 69 63 61 74 69 6f 6e 2e 20 20 49 74 0a 23 20 63 61 6e ow.for.an.application...It.#.can
2bd60 20 62 65 20 75 73 65 64 20 62 79 20 6e 6f 6e 2d 75 6e 69 78 20 73 79 73 74 65 6d 73 20 74 68 61 .be.used.by.non-unix.systems.tha
2bd80 74 20 64 6f 20 6e 6f 74 20 68 61 76 65 20 62 75 69 6c 74 2d 69 6e 20 73 75 70 70 6f 72 74 0a 23 t.do.not.have.built-in.support.#
2bda0 20 66 6f 72 20 73 68 65 6c 6c 73 2e 0a 23 0a 23 20 52 43 53 3a 20 40 28 23 29 20 24 49 64 3a 20 .for.shells..#.#.RCS:.@(#).$Id:.
2bdc0 63 6f 6e 73 6f 6c 65 2e 74 63 6c 2c 76 20 31 2e 37 20 31 39 39 39 2f 30 39 2f 30 32 20 31 37 3a console.tcl,v.1.7.1999/09/02.17:
2bde0 30 32 3a 35 32 20 68 6f 62 62 73 20 45 78 70 20 24 0a 23 0a 23 20 43 6f 70 79 72 69 67 68 74 20 02:52.hobbs.Exp.$.#.#.Copyright.
2be00 28 63 29 20 31 39 39 38 2d 31 39 39 39 20 53 63 72 69 70 74 69 63 73 20 43 6f 72 70 2e 0a 23 20 (c).1998-1999.Scriptics.Corp..#.
2be20 43 6f 70 79 72 69 67 68 74 20 28 63 29 20 31 39 39 35 2d 31 39 39 37 20 53 75 6e 20 4d 69 63 72 Copyright.(c).1995-1997.Sun.Micr
2be40 6f 73 79 73 74 65 6d 73 2c 20 49 6e 63 2e 0a 23 0a 23 20 53 65 65 20 74 68 65 20 66 69 6c 65 20 osystems,.Inc..#.#.See.the.file.
2be60 22 6c 69 63 65 6e 73 65 2e 74 65 72 6d 73 22 20 66 6f 72 20 69 6e 66 6f 72 6d 61 74 69 6f 6e 20 "license.terms".for.information.
2be80 6f 6e 20 75 73 61 67 65 20 61 6e 64 20 72 65 64 69 73 74 72 69 62 75 74 69 6f 6e 0a 23 20 6f 66 on.usage.and.redistribution.#.of
2bea0 20 74 68 69 73 20 66 69 6c 65 2c 20 61 6e 64 20 66 6f 72 20 61 20 44 49 53 43 4c 41 49 4d 45 52 .this.file,.and.for.a.DISCLAIMER
2bec0 20 4f 46 20 41 4c 4c 20 57 41 52 52 41 4e 54 49 45 53 2e 0a 23 0a 0a 23 20 54 4f 44 4f 3a 20 68 .OF.ALL.WARRANTIES..#..#.TODO:.h
2bee0 69 73 74 6f 72 79 20 2d 20 72 65 6d 65 6d 62 65 72 20 70 61 72 74 69 61 6c 6c 79 20 77 72 69 74 istory.-.remember.partially.writ
2bf00 74 65 6e 20 63 6f 6d 6d 61 6e 64 0a 0a 23 20 74 6b 43 6f 6e 73 6f 6c 65 49 6e 69 74 20 2d 2d 0a ten.command..#.tkConsoleInit.--.
2bf20 23 20 54 68 69 73 20 70 72 6f 63 65 64 75 72 65 20 63 6f 6e 73 74 72 75 63 74 73 20 61 6e 64 20 #.This.procedure.constructs.and.
2bf40 63 6f 6e 66 69 67 75 72 65 73 20 74 68 65 20 63 6f 6e 73 6f 6c 65 20 77 69 6e 64 6f 77 73 2e 0a configures.the.console.windows..
2bf60 23 0a 23 20 41 72 67 75 6d 65 6e 74 73 3a 0a 23 20 09 4e 6f 6e 65 2e 0a 0a 70 72 6f 63 20 74 6b #.#.Arguments:.#..None...proc.tk
2bf80 43 6f 6e 73 6f 6c 65 49 6e 69 74 20 7b 7d 20 7b 0a 20 20 20 20 67 6c 6f 62 61 6c 20 74 63 6c 5f ConsoleInit.{}.{.....global.tcl_
2bfa0 70 6c 61 74 66 6f 72 6d 0a 0a 20 20 20 20 69 66 20 7b 21 5b 63 6f 6e 73 6f 6c 65 69 6e 74 65 72 platform......if.{![consoleinter
2bfc0 70 20 65 76 61 6c 20 7b 73 65 74 20 74 63 6c 5f 69 6e 74 65 72 61 63 74 69 76 65 7d 5d 7d 20 7b p.eval.{set.tcl_interactive}]}.{
2bfe0 0a 09 77 6d 20 77 69 74 68 64 72 61 77 20 2e 0a 20 20 20 20 7d 0a 0a 20 20 20 20 69 66 20 7b 5b ..wm.withdraw.......}......if.{[
2c000 73 74 72 69 6e 67 20 63 6f 6d 70 61 72 65 20 24 74 63 6c 5f 70 6c 61 74 66 6f 72 6d 28 70 6c 61 string.compare.$tcl_platform(pla
2c020 74 66 6f 72 6d 29 20 22 6d 61 63 69 6e 74 6f 73 68 22 5d 7d 20 7b 0a 09 73 65 74 20 6d 6f 64 20 tform)."macintosh"]}.{..set.mod.
2c040 22 43 74 72 6c 22 0a 20 20 20 20 7d 20 65 6c 73 65 20 7b 0a 09 73 65 74 20 6d 6f 64 20 22 43 6d "Ctrl".....}.else.{..set.mod."Cm
2c060 64 22 0a 20 20 20 20 7d 0a 0a 20 20 20 20 6d 65 6e 75 20 2e 6d 65 6e 75 62 61 72 0a 20 20 20 20 d".....}......menu..menubar.....
2c080 2e 6d 65 6e 75 62 61 72 20 61 64 64 20 63 61 73 63 61 64 65 20 2d 6c 61 62 65 6c 20 46 69 6c 65 .menubar.add.cascade.-label.File
2c0a0 20 2d 6d 65 6e 75 20 2e 6d 65 6e 75 62 61 72 2e 66 69 6c 65 20 2d 75 6e 64 65 72 6c 69 6e 65 20 .-menu..menubar.file.-underline.
2c0c0 30 0a 20 20 20 20 2e 6d 65 6e 75 62 61 72 20 61 64 64 20 63 61 73 63 61 64 65 20 2d 6c 61 62 65 0......menubar.add.cascade.-labe
2c0e0 6c 20 45 64 69 74 20 2d 6d 65 6e 75 20 2e 6d 65 6e 75 62 61 72 2e 65 64 69 74 20 2d 75 6e 64 65 l.Edit.-menu..menubar.edit.-unde
2c100 72 6c 69 6e 65 20 30 0a 0a 20 20 20 20 6d 65 6e 75 20 2e 6d 65 6e 75 62 61 72 2e 66 69 6c 65 20 rline.0......menu..menubar.file.
2c120 2d 74 65 61 72 6f 66 66 20 30 0a 20 20 20 20 2e 6d 65 6e 75 62 61 72 2e 66 69 6c 65 20 61 64 64 -tearoff.0......menubar.file.add
2c140 20 63 6f 6d 6d 61 6e 64 20 2d 6c 61 62 65 6c 20 22 53 6f 75 72 63 65 2e 2e 2e 22 20 2d 75 6e 64 .command.-label."Source...".-und
2c160 65 72 6c 69 6e 65 20 30 20 5c 0a 09 20 20 20 20 2d 63 6f 6d 6d 61 6e 64 20 74 6b 43 6f 6e 73 6f erline.0.\......-command.tkConso
2c180 6c 65 53 6f 75 72 63 65 0a 20 20 20 20 2e 6d 65 6e 75 62 61 72 2e 66 69 6c 65 20 61 64 64 20 63 leSource......menubar.file.add.c
2c1a0 6f 6d 6d 61 6e 64 20 2d 6c 61 62 65 6c 20 22 48 69 64 65 20 43 6f 6e 73 6f 6c 65 22 20 2d 75 6e ommand.-label."Hide.Console".-un
2c1c0 64 65 72 6c 69 6e 65 20 30 20 5c 0a 09 20 20 20 20 2d 63 6f 6d 6d 61 6e 64 20 7b 77 6d 20 77 69 derline.0.\......-command.{wm.wi
2c1e0 74 68 64 72 61 77 20 2e 7d 0a 20 20 20 20 69 66 20 7b 5b 73 74 72 69 6e 67 20 63 6f 6d 70 61 72 thdraw..}.....if.{[string.compar
2c200 65 20 24 74 63 6c 5f 70 6c 61 74 66 6f 72 6d 28 70 6c 61 74 66 6f 72 6d 29 20 22 6d 61 63 69 6e e.$tcl_platform(platform)."macin
2c220 74 6f 73 68 22 5d 7d 20 7b 0a 09 2e 6d 65 6e 75 62 61 72 2e 66 69 6c 65 20 61 64 64 20 63 6f 6d tosh"]}.{...menubar.file.add.com
2c240 6d 61 6e 64 20 2d 6c 61 62 65 6c 20 22 45 78 69 74 22 20 2d 75 6e 64 65 72 6c 69 6e 65 20 31 20 mand.-label."Exit".-underline.1.
2c260 2d 63 6f 6d 6d 61 6e 64 20 65 78 69 74 0a 20 20 20 20 7d 20 65 6c 73 65 20 7b 0a 09 2e 6d 65 6e -command.exit.....}.else.{...men
2c280 75 62 61 72 2e 66 69 6c 65 20 61 64 64 20 63 6f 6d 6d 61 6e 64 20 2d 6c 61 62 65 6c 20 22 51 75 ubar.file.add.command.-label."Qu
2c2a0 69 74 22 20 2d 63 6f 6d 6d 61 6e 64 20 65 78 69 74 20 2d 61 63 63 65 6c 20 43 6d 64 2d 51 0a 20 it".-command.exit.-accel.Cmd-Q..
2c2c0 20 20 20 7d 0a 0a 20 20 20 20 6d 65 6e 75 20 2e 6d 65 6e 75 62 61 72 2e 65 64 69 74 20 2d 74 65 ...}......menu..menubar.edit.-te
2c2e0 61 72 6f 66 66 20 30 0a 20 20 20 20 2e 6d 65 6e 75 62 61 72 2e 65 64 69 74 20 61 64 64 20 63 6f aroff.0......menubar.edit.add.co
2c300 6d 6d 61 6e 64 20 2d 6c 61 62 65 6c 20 22 43 75 74 22 20 2d 75 6e 64 65 72 6c 69 6e 65 20 32 20 mmand.-label."Cut".-underline.2.
2c320 5c 0a 09 20 20 20 20 2d 63 6f 6d 6d 61 6e 64 20 7b 20 65 76 65 6e 74 20 67 65 6e 65 72 61 74 65 \......-command.{.event.generate
2c340 20 2e 63 6f 6e 73 6f 6c 65 20 3c 3c 43 75 74 3e 3e 20 7d 20 2d 61 63 63 65 6c 20 22 24 6d 6f 64 ..console.<<Cut>>.}.-accel."$mod
2c360 2b 58 22 0a 20 20 20 20 2e 6d 65 6e 75 62 61 72 2e 65 64 69 74 20 61 64 64 20 63 6f 6d 6d 61 6e +X"......menubar.edit.add.comman
2c380 64 20 2d 6c 61 62 65 6c 20 22 43 6f 70 79 22 20 2d 75 6e 64 65 72 6c 69 6e 65 20 30 20 5c 0a 09 d.-label."Copy".-underline.0.\..
2c3a0 20 20 20 20 2d 63 6f 6d 6d 61 6e 64 20 7b 20 65 76 65 6e 74 20 67 65 6e 65 72 61 74 65 20 2e 63 ....-command.{.event.generate..c
2c3c0 6f 6e 73 6f 6c 65 20 3c 3c 43 6f 70 79 3e 3e 20 7d 20 2d 61 63 63 65 6c 20 22 24 6d 6f 64 2b 43 onsole.<<Copy>>.}.-accel."$mod+C
2c3e0 22 0a 20 20 20 20 2e 6d 65 6e 75 62 61 72 2e 65 64 69 74 20 61 64 64 20 63 6f 6d 6d 61 6e 64 20 "......menubar.edit.add.command.
2c400 2d 6c 61 62 65 6c 20 22 50 61 73 74 65 22 20 2d 75 6e 64 65 72 6c 69 6e 65 20 31 20 5c 0a 09 20 -label."Paste".-underline.1.\...
2c420 20 20 20 2d 63 6f 6d 6d 61 6e 64 20 7b 20 65 76 65 6e 74 20 67 65 6e 65 72 61 74 65 20 2e 63 6f ...-command.{.event.generate..co
2c440 6e 73 6f 6c 65 20 3c 3c 50 61 73 74 65 3e 3e 20 7d 20 2d 61 63 63 65 6c 20 22 24 6d 6f 64 2b 56 nsole.<<Paste>>.}.-accel."$mod+V
2c460 22 0a 0a 20 20 20 20 69 66 20 7b 5b 73 74 72 69 6e 67 20 63 6f 6d 70 61 72 65 20 24 74 63 6c 5f "......if.{[string.compare.$tcl_
2c480 70 6c 61 74 66 6f 72 6d 28 70 6c 61 74 66 6f 72 6d 29 20 22 77 69 6e 64 6f 77 73 22 5d 7d 20 7b platform(platform)."windows"]}.{
2c4a0 0a 09 2e 6d 65 6e 75 62 61 72 2e 65 64 69 74 20 61 64 64 20 63 6f 6d 6d 61 6e 64 20 2d 6c 61 62 ...menubar.edit.add.command.-lab
2c4c0 65 6c 20 22 43 6c 65 61 72 22 20 2d 75 6e 64 65 72 6c 69 6e 65 20 32 20 5c 0a 09 09 2d 63 6f 6d el."Clear".-underline.2.\...-com
2c4e0 6d 61 6e 64 20 7b 20 65 76 65 6e 74 20 67 65 6e 65 72 61 74 65 20 2e 63 6f 6e 73 6f 6c 65 20 3c mand.{.event.generate..console.<
2c500 3c 43 6c 65 61 72 3e 3e 20 7d 0a 20 20 20 20 7d 20 65 6c 73 65 20 7b 0a 09 2e 6d 65 6e 75 62 61 <Clear>>.}.....}.else.{...menuba
2c520 72 2e 65 64 69 74 20 61 64 64 20 63 6f 6d 6d 61 6e 64 20 2d 6c 61 62 65 6c 20 22 44 65 6c 65 74 r.edit.add.command.-label."Delet
2c540 65 22 20 2d 75 6e 64 65 72 6c 69 6e 65 20 30 20 5c 0a 09 09 2d 63 6f 6d 6d 61 6e 64 20 7b 20 65 e".-underline.0.\...-command.{.e
2c560 76 65 6e 74 20 67 65 6e 65 72 61 74 65 20 2e 63 6f 6e 73 6f 6c 65 20 3c 3c 43 6c 65 61 72 3e 3e vent.generate..console.<<Clear>>
2c580 20 7d 20 2d 61 63 63 65 6c 20 22 44 65 6c 22 0a 0a 09 2e 6d 65 6e 75 62 61 72 20 61 64 64 20 63 .}.-accel."Del"....menubar.add.c
2c5a0 61 73 63 61 64 65 20 2d 6c 61 62 65 6c 20 48 65 6c 70 20 2d 6d 65 6e 75 20 2e 6d 65 6e 75 62 61 ascade.-label.Help.-menu..menuba
2c5c0 72 2e 68 65 6c 70 20 2d 75 6e 64 65 72 6c 69 6e 65 20 30 0a 09 6d 65 6e 75 20 2e 6d 65 6e 75 62 r.help.-underline.0..menu..menub
2c5e0 61 72 2e 68 65 6c 70 20 2d 74 65 61 72 6f 66 66 20 30 0a 09 2e 6d 65 6e 75 62 61 72 2e 68 65 6c ar.help.-tearoff.0...menubar.hel
2c600 70 20 61 64 64 20 63 6f 6d 6d 61 6e 64 20 2d 6c 61 62 65 6c 20 22 41 62 6f 75 74 2e 2e 2e 22 20 p.add.command.-label."About...".
2c620 2d 75 6e 64 65 72 6c 69 6e 65 20 30 20 5c 0a 09 09 2d 63 6f 6d 6d 61 6e 64 20 74 6b 43 6f 6e 73 -underline.0.\...-command.tkCons
2c640 6f 6c 65 41 62 6f 75 74 0a 20 20 20 20 7d 0a 0a 20 20 20 20 2e 20 63 6f 6e 66 69 67 75 72 65 20 oleAbout.....}........configure.
2c660 2d 6d 65 6e 75 20 2e 6d 65 6e 75 62 61 72 0a 0a 20 20 20 20 74 65 78 74 20 2e 63 6f 6e 73 6f 6c -menu..menubar......text..consol
2c680 65 20 20 2d 79 73 63 72 6f 6c 6c 63 6f 6d 6d 61 6e 64 20 22 2e 73 62 20 73 65 74 22 20 2d 73 65 e..-yscrollcommand.".sb.set".-se
2c6a0 74 67 72 69 64 20 74 72 75 65 20 0a 20 20 20 20 73 63 72 6f 6c 6c 62 61 72 20 2e 73 62 20 2d 63 tgrid.true......scrollbar..sb.-c
2c6c0 6f 6d 6d 61 6e 64 20 22 2e 63 6f 6e 73 6f 6c 65 20 79 76 69 65 77 22 0a 20 20 20 20 70 61 63 6b ommand.".console.yview".....pack
2c6e0 20 2e 73 62 20 2d 73 69 64 65 20 72 69 67 68 74 20 2d 66 69 6c 6c 20 62 6f 74 68 0a 20 20 20 20 ..sb.-side.right.-fill.both.....
2c700 70 61 63 6b 20 2e 63 6f 6e 73 6f 6c 65 20 2d 66 69 6c 6c 20 62 6f 74 68 20 2d 65 78 70 61 6e 64 pack..console.-fill.both.-expand
2c720 20 31 20 2d 73 69 64 65 20 6c 65 66 74 0a 20 20 20 20 69 66 20 7b 5b 73 74 72 69 6e 67 20 65 71 .1.-side.left.....if.{[string.eq
2c740 75 61 6c 20 24 74 63 6c 5f 70 6c 61 74 66 6f 72 6d 28 70 6c 61 74 66 6f 72 6d 29 20 22 6d 61 63 ual.$tcl_platform(platform)."mac
2c760 69 6e 74 6f 73 68 22 5d 7d 20 7b 0a 20 20 20 20 20 20 20 20 2e 63 6f 6e 73 6f 6c 65 20 63 6f 6e intosh"]}.{..........console.con
2c780 66 69 67 75 72 65 20 2d 66 6f 6e 74 20 7b 4d 6f 6e 61 63 6f 20 39 20 6e 6f 72 6d 61 6c 7d 20 2d figure.-font.{Monaco.9.normal}.-
2c7a0 68 69 67 68 6c 69 67 68 74 74 68 69 63 6b 6e 65 73 73 20 30 0a 20 20 20 20 7d 0a 0a 20 20 20 20 highlightthickness.0.....}......
2c7c0 74 6b 43 6f 6e 73 6f 6c 65 42 69 6e 64 20 2e 63 6f 6e 73 6f 6c 65 0a 0a 20 20 20 20 2e 63 6f 6e tkConsoleBind..console.......con
2c7e0 73 6f 6c 65 20 74 61 67 20 63 6f 6e 66 69 67 75 72 65 20 73 74 64 65 72 72 20 2d 66 6f 72 65 67 sole.tag.configure.stderr.-foreg
2c800 72 6f 75 6e 64 20 72 65 64 0a 20 20 20 20 2e 63 6f 6e 73 6f 6c 65 20 74 61 67 20 63 6f 6e 66 69 round.red......console.tag.confi
2c820 67 75 72 65 20 73 74 64 69 6e 20 2d 66 6f 72 65 67 72 6f 75 6e 64 20 62 6c 75 65 0a 0a 20 20 20 gure.stdin.-foreground.blue.....
2c840 20 66 6f 63 75 73 20 2e 63 6f 6e 73 6f 6c 65 0a 20 20 20 20 0a 20 20 20 20 77 6d 20 70 72 6f 74 .focus..console..........wm.prot
2c860 6f 63 6f 6c 20 2e 20 57 4d 5f 44 45 4c 45 54 45 5f 57 49 4e 44 4f 57 20 7b 20 77 6d 20 77 69 74 ocol...WM_DELETE_WINDOW.{.wm.wit
2c880 68 64 72 61 77 20 2e 20 7d 0a 20 20 20 20 77 6d 20 74 69 74 6c 65 20 2e 20 22 43 6f 6e 73 6f 6c hdraw...}.....wm.title..."Consol
2c8a0 65 22 0a 20 20 20 20 66 6c 75 73 68 20 73 74 64 6f 75 74 0a 20 20 20 20 2e 63 6f 6e 73 6f 6c 65 e".....flush.stdout......console
2c8c0 20 6d 61 72 6b 20 73 65 74 20 6f 75 74 70 75 74 20 5b 2e 63 6f 6e 73 6f 6c 65 20 69 6e 64 65 78 .mark.set.output.[.console.index
2c8e0 20 22 65 6e 64 20 2d 20 31 20 63 68 61 72 22 5d 0a 20 20 20 20 74 6b 54 65 78 74 53 65 74 43 75 ."end.-.1.char"].....tkTextSetCu
2c900 72 73 6f 72 20 2e 63 6f 6e 73 6f 6c 65 20 65 6e 64 0a 20 20 20 20 2e 63 6f 6e 73 6f 6c 65 20 6d rsor..console.end......console.m
2c920 61 72 6b 20 73 65 74 20 70 72 6f 6d 70 74 45 6e 64 20 69 6e 73 65 72 74 0a 20 20 20 20 2e 63 6f ark.set.promptEnd.insert......co
2c940 6e 73 6f 6c 65 20 6d 61 72 6b 20 67 72 61 76 69 74 79 20 70 72 6f 6d 70 74 45 6e 64 20 6c 65 66 nsole.mark.gravity.promptEnd.lef
2c960 74 0a 7d 0a 0a 23 20 74 6b 43 6f 6e 73 6f 6c 65 53 6f 75 72 63 65 20 2d 2d 0a 23 0a 23 20 50 72 t.}..#.tkConsoleSource.--.#.#.Pr
2c980 6f 6d 70 74 73 20 74 68 65 20 75 73 65 72 20 66 6f 72 20 61 20 66 69 6c 65 20 74 6f 20 73 6f 75 ompts.the.user.for.a.file.to.sou
2c9a0 72 63 65 20 69 6e 20 74 68 65 20 6d 61 69 6e 20 69 6e 74 65 72 70 72 65 74 65 72 2e 0a 23 0a 23 rce.in.the.main.interpreter..#.#
2c9c0 20 41 72 67 75 6d 65 6e 74 73 3a 0a 23 20 4e 6f 6e 65 2e 0a 0a 70 72 6f 63 20 74 6b 43 6f 6e 73 .Arguments:.#.None...proc.tkCons
2c9e0 6f 6c 65 53 6f 75 72 63 65 20 7b 7d 20 7b 0a 20 20 20 20 73 65 74 20 66 69 6c 65 6e 61 6d 65 20 oleSource.{}.{.....set.filename.
2ca00 5b 74 6b 5f 67 65 74 4f 70 65 6e 46 69 6c 65 20 2d 64 65 66 61 75 6c 74 65 78 74 65 6e 73 69 6f [tk_getOpenFile.-defaultextensio
2ca20 6e 20 2e 74 63 6c 20 2d 70 61 72 65 6e 74 20 2e 20 5c 0a 09 09 20 20 20 20 20 20 2d 74 69 74 6c n..tcl.-parent...\.........-titl
2ca40 65 20 22 53 65 6c 65 63 74 20 61 20 66 69 6c 65 20 74 6f 20 73 6f 75 72 63 65 22 20 5c 0a 09 09 e."Select.a.file.to.source".\...
2ca60 20 20 20 20 20 20 2d 66 69 6c 65 74 79 70 65 73 20 7b 7b 22 54 63 6c 20 53 63 72 69 70 74 73 22 ......-filetypes.{{"Tcl.Scripts"
2ca80 20 2e 74 63 6c 7d 20 7b 22 41 6c 6c 20 46 69 6c 65 73 22 20 2a 7d 7d 5d 0a 20 20 20 20 69 66 20 ..tcl}.{"All.Files".*}}].....if.
2caa0 7b 5b 73 74 72 69 6e 67 20 63 6f 6d 70 61 72 65 20 24 66 69 6c 65 6e 61 6d 65 20 22 22 5d 7d 20 {[string.compare.$filename.""]}.
2cac0 7b 0a 20 20 20 20 09 73 65 74 20 63 6d 64 20 5b 6c 69 73 74 20 73 6f 75 72 63 65 20 24 66 69 6c {......set.cmd.[list.source.$fil
2cae0 65 6e 61 6d 65 5d 0a 09 69 66 20 7b 5b 63 61 74 63 68 20 7b 63 6f 6e 73 6f 6c 65 69 6e 74 65 72 ename]..if.{[catch.{consoleinter
2cb00 70 20 65 76 61 6c 20 24 63 6d 64 7d 20 72 65 73 75 6c 74 5d 7d 20 7b 0a 09 20 20 20 20 74 6b 43 p.eval.$cmd}.result]}.{......tkC
2cb20 6f 6e 73 6f 6c 65 4f 75 74 70 75 74 20 73 74 64 65 72 72 20 22 24 72 65 73 75 6c 74 5c 6e 22 0a onsoleOutput.stderr."$result\n".
2cb40 09 7d 0a 20 20 20 20 7d 0a 7d 0a 0a 23 20 74 6b 43 6f 6e 73 6f 6c 65 49 6e 76 6f 6b 65 20 2d 2d .}.....}.}..#.tkConsoleInvoke.--
2cb60 0a 23 20 50 72 6f 63 65 73 73 65 73 20 74 68 65 20 63 6f 6d 6d 61 6e 64 20 6c 69 6e 65 20 69 6e .#.Processes.the.command.line.in
2cb80 70 75 74 2e 20 20 49 66 20 74 68 65 20 63 6f 6d 6d 61 6e 64 20 69 73 20 63 6f 6d 70 6c 65 74 65 put...If.the.command.is.complete
2cba0 20 69 74 0a 23 20 69 73 20 65 76 61 6c 65 64 20 69 6e 20 74 68 65 20 6d 61 69 6e 20 69 6e 74 65 .it.#.is.evaled.in.the.main.inte
2cbc0 72 70 72 65 74 65 72 2e 20 20 4f 74 68 65 72 77 69 73 65 2c 20 74 68 65 20 63 6f 6e 74 69 6e 75 rpreter...Otherwise,.the.continu
2cbe0 61 74 69 6f 6e 0a 23 20 70 72 6f 6d 70 74 20 69 73 20 61 64 64 65 64 20 61 6e 64 20 6d 6f 72 65 ation.#.prompt.is.added.and.more
2cc00 20 69 6e 70 75 74 20 6d 61 79 20 62 65 20 61 64 64 65 64 2e 0a 23 0a 23 20 41 72 67 75 6d 65 6e .input.may.be.added..#.#.Argumen
2cc20 74 73 3a 0a 23 20 4e 6f 6e 65 2e 0a 0a 70 72 6f 63 20 74 6b 43 6f 6e 73 6f 6c 65 49 6e 76 6f 6b ts:.#.None...proc.tkConsoleInvok
2cc40 65 20 7b 61 72 67 73 7d 20 7b 0a 20 20 20 20 73 65 74 20 72 61 6e 67 65 73 20 5b 2e 63 6f 6e 73 e.{args}.{.....set.ranges.[.cons
2cc60 6f 6c 65 20 74 61 67 20 72 61 6e 67 65 73 20 69 6e 70 75 74 5d 0a 20 20 20 20 73 65 74 20 63 6d ole.tag.ranges.input].....set.cm
2cc80 64 20 22 22 0a 20 20 20 20 69 66 20 7b 5b 6c 6c 65 6e 67 74 68 20 24 72 61 6e 67 65 73 5d 7d 20 d."".....if.{[llength.$ranges]}.
2cca0 7b 0a 09 73 65 74 20 70 6f 73 20 30 0a 09 77 68 69 6c 65 20 7b 5b 73 74 72 69 6e 67 20 63 6f 6d {..set.pos.0..while.{[string.com
2ccc0 70 61 72 65 20 5b 6c 69 6e 64 65 78 20 24 72 61 6e 67 65 73 20 24 70 6f 73 5d 20 22 22 5d 7d 20 pare.[lindex.$ranges.$pos].""]}.
2cce0 7b 0a 09 20 20 20 20 73 65 74 20 73 74 61 72 74 20 5b 6c 69 6e 64 65 78 20 24 72 61 6e 67 65 73 {......set.start.[lindex.$ranges
2cd00 20 24 70 6f 73 5d 0a 09 20 20 20 20 73 65 74 20 65 6e 64 20 5b 6c 69 6e 64 65 78 20 24 72 61 6e .$pos]......set.end.[lindex.$ran
2cd20 67 65 73 20 5b 69 6e 63 72 20 70 6f 73 5d 5d 0a 09 20 20 20 20 61 70 70 65 6e 64 20 63 6d 64 20 ges.[incr.pos]]......append.cmd.
2cd40 5b 2e 63 6f 6e 73 6f 6c 65 20 67 65 74 20 24 73 74 61 72 74 20 24 65 6e 64 5d 0a 09 20 20 20 20 [.console.get.$start.$end]......
2cd60 69 6e 63 72 20 70 6f 73 0a 09 7d 0a 20 20 20 20 7d 0a 20 20 20 20 69 66 20 7b 5b 73 74 72 69 6e incr.pos..}.....}.....if.{[strin
2cd80 67 20 65 71 75 61 6c 20 24 63 6d 64 20 22 22 5d 7d 20 7b 0a 09 74 6b 43 6f 6e 73 6f 6c 65 50 72 g.equal.$cmd.""]}.{..tkConsolePr
2cda0 6f 6d 70 74 0a 20 20 20 20 7d 20 65 6c 73 65 69 66 20 7b 5b 69 6e 66 6f 20 63 6f 6d 70 6c 65 74 ompt.....}.elseif.{[info.complet
2cdc0 65 20 24 63 6d 64 5d 7d 20 7b 0a 09 2e 63 6f 6e 73 6f 6c 65 20 6d 61 72 6b 20 73 65 74 20 6f 75 e.$cmd]}.{...console.mark.set.ou
2cde0 74 70 75 74 20 65 6e 64 0a 09 2e 63 6f 6e 73 6f 6c 65 20 74 61 67 20 64 65 6c 65 74 65 20 69 6e tput.end...console.tag.delete.in
2ce00 70 75 74 0a 09 73 65 74 20 72 65 73 75 6c 74 20 5b 63 6f 6e 73 6f 6c 65 69 6e 74 65 72 70 20 72 put..set.result.[consoleinterp.r
2ce20 65 63 6f 72 64 20 24 63 6d 64 5d 0a 09 69 66 20 7b 5b 73 74 72 69 6e 67 20 63 6f 6d 70 61 72 65 ecord.$cmd]..if.{[string.compare
2ce40 20 24 72 65 73 75 6c 74 20 22 22 5d 7d 20 7b 0a 09 20 20 20 20 70 75 74 73 20 24 72 65 73 75 6c .$result.""]}.{......puts.$resul
2ce60 74 0a 09 7d 0a 09 74 6b 43 6f 6e 73 6f 6c 65 48 69 73 74 6f 72 79 20 72 65 73 65 74 0a 09 74 6b t..}..tkConsoleHistory.reset..tk
2ce80 43 6f 6e 73 6f 6c 65 50 72 6f 6d 70 74 0a 20 20 20 20 7d 20 65 6c 73 65 20 7b 0a 09 74 6b 43 6f ConsolePrompt.....}.else.{..tkCo
2cea0 6e 73 6f 6c 65 50 72 6f 6d 70 74 20 70 61 72 74 69 61 6c 0a 20 20 20 20 7d 0a 20 20 20 20 2e 63 nsolePrompt.partial.....}......c
2cec0 6f 6e 73 6f 6c 65 20 79 76 69 65 77 20 2d 70 69 63 6b 70 6c 61 63 65 20 69 6e 73 65 72 74 0a 7d onsole.yview.-pickplace.insert.}
2cee0 0a 0a 23 20 74 6b 43 6f 6e 73 6f 6c 65 48 69 73 74 6f 72 79 20 2d 2d 0a 23 20 54 68 69 73 20 70 ..#.tkConsoleHistory.--.#.This.p
2cf00 72 6f 63 65 64 75 72 65 20 69 6d 70 6c 65 6d 65 6e 74 73 20 63 6f 6d 6d 61 6e 64 20 6c 69 6e 65 rocedure.implements.command.line
2cf20 20 68 69 73 74 6f 72 79 20 66 6f 72 20 74 68 65 0a 23 20 63 6f 6e 73 6f 6c 65 2e 20 20 49 6e 20 .history.for.the.#.console...In.
2cf40 67 65 6e 65 72 61 6c 20 69 73 20 65 76 61 6c 73 20 74 68 65 20 68 69 73 74 6f 72 79 20 63 6f 6d general.is.evals.the.history.com
2cf60 6d 61 6e 64 20 69 6e 20 74 68 65 0a 23 20 6d 61 69 6e 20 69 6e 74 65 72 70 72 65 74 65 72 20 74 mand.in.the.#.main.interpreter.t
2cf80 6f 20 6f 62 74 61 69 6e 20 74 68 65 20 68 69 73 74 6f 72 79 2e 20 20 54 68 65 20 67 6c 6f 62 61 o.obtain.the.history...The.globa
2cfa0 6c 20 76 61 72 69 61 62 6c 65 0a 23 20 68 69 73 74 4e 75 6d 20 69 73 20 75 73 65 64 20 74 6f 20 l.variable.#.histNum.is.used.to.
2cfc0 73 74 6f 72 65 20 74 68 65 20 63 75 72 72 65 6e 74 20 6c 6f 63 61 74 69 6f 6e 20 69 6e 20 74 68 store.the.current.location.in.th
2cfe0 65 20 68 69 73 74 6f 72 79 2e 0a 23 0a 23 20 41 72 67 75 6d 65 6e 74 73 3a 0a 23 20 63 6d 64 20 e.history..#.#.Arguments:.#.cmd.
2d000 2d 09 57 68 69 63 68 20 61 63 74 69 6f 6e 20 74 6f 20 74 61 6b 65 3a 20 70 72 65 76 2c 20 6e 65 -.Which.action.to.take:.prev,.ne
2d020 78 74 2c 20 72 65 73 65 74 2e 0a 0a 73 65 74 20 68 69 73 74 4e 75 6d 20 31 0a 70 72 6f 63 20 74 xt,.reset...set.histNum.1.proc.t
2d040 6b 43 6f 6e 73 6f 6c 65 48 69 73 74 6f 72 79 20 7b 63 6d 64 7d 20 7b 0a 20 20 20 20 67 6c 6f 62 kConsoleHistory.{cmd}.{.....glob
2d060 61 6c 20 68 69 73 74 4e 75 6d 0a 20 20 20 20 0a 20 20 20 20 73 77 69 74 63 68 20 24 63 6d 64 20 al.histNum..........switch.$cmd.
2d080 7b 0a 20 20 20 20 09 70 72 65 76 20 7b 0a 09 20 20 20 20 69 6e 63 72 20 68 69 73 74 4e 75 6d 20 {......prev.{......incr.histNum.
2d0a0 2d 31 0a 09 20 20 20 20 69 66 20 7b 24 68 69 73 74 4e 75 6d 20 3d 3d 20 30 7d 20 7b 0a 09 09 73 -1......if.{$histNum.==.0}.{...s
2d0c0 65 74 20 63 6d 64 20 7b 68 69 73 74 6f 72 79 20 65 76 65 6e 74 20 5b 65 78 70 72 20 7b 5b 68 69 et.cmd.{history.event.[expr.{[hi
2d0e0 73 74 6f 72 79 20 6e 65 78 74 69 64 5d 20 2d 31 7d 5d 7d 0a 09 20 20 20 20 7d 20 65 6c 73 65 20 story.nextid].-1}]}......}.else.
2d100 7b 0a 09 09 73 65 74 20 63 6d 64 20 22 68 69 73 74 6f 72 79 20 65 76 65 6e 74 20 24 68 69 73 74 {...set.cmd."history.event.$hist
2d120 4e 75 6d 22 0a 09 20 20 20 20 7d 0a 20 20 20 20 09 20 20 20 20 69 66 20 7b 5b 63 61 74 63 68 20 Num"......}..........if.{[catch.
2d140 7b 63 6f 6e 73 6f 6c 65 69 6e 74 65 72 70 20 65 76 61 6c 20 24 63 6d 64 7d 20 63 6d 64 5d 7d 20 {consoleinterp.eval.$cmd}.cmd]}.
2d160 7b 0a 20 20 20 20 09 20 20 20 20 09 69 6e 63 72 20 68 69 73 74 4e 75 6d 0a 20 20 20 20 09 20 20 {...........incr.histNum........
2d180 20 20 09 72 65 74 75 72 6e 0a 20 20 20 20 09 20 20 20 20 7d 0a 09 20 20 20 20 2e 63 6f 6e 73 6f ...return..........}.......conso
2d1a0 6c 65 20 64 65 6c 65 74 65 20 70 72 6f 6d 70 74 45 6e 64 20 65 6e 64 0a 20 20 20 20 09 20 20 20 le.delete.promptEnd.end.........
2d1c0 20 2e 63 6f 6e 73 6f 6c 65 20 69 6e 73 65 72 74 20 70 72 6f 6d 70 74 45 6e 64 20 24 63 6d 64 20 ..console.insert.promptEnd.$cmd.
2d1e0 7b 69 6e 70 75 74 20 73 74 64 69 6e 7d 0a 20 20 20 20 09 7d 0a 20 20 20 20 09 6e 65 78 74 20 7b {input.stdin}......}......next.{
2d200 0a 09 20 20 20 20 69 6e 63 72 20 68 69 73 74 4e 75 6d 0a 09 20 20 20 20 69 66 20 7b 24 68 69 73 ......incr.histNum......if.{$his
2d220 74 4e 75 6d 20 3d 3d 20 30 7d 20 7b 0a 09 09 73 65 74 20 63 6d 64 20 7b 68 69 73 74 6f 72 79 20 tNum.==.0}.{...set.cmd.{history.
2d240 65 76 65 6e 74 20 5b 65 78 70 72 20 7b 5b 68 69 73 74 6f 72 79 20 6e 65 78 74 69 64 5d 20 2d 31 event.[expr.{[history.nextid].-1
2d260 7d 5d 7d 0a 09 20 20 20 20 7d 20 65 6c 73 65 69 66 20 7b 24 68 69 73 74 4e 75 6d 20 3e 20 30 7d }]}......}.elseif.{$histNum.>.0}
2d280 20 7b 0a 09 09 73 65 74 20 63 6d 64 20 22 22 0a 09 09 73 65 74 20 68 69 73 74 4e 75 6d 20 31 0a .{...set.cmd.""...set.histNum.1.
2d2a0 09 20 20 20 20 7d 20 65 6c 73 65 20 7b 0a 09 09 73 65 74 20 63 6d 64 20 22 68 69 73 74 6f 72 79 .....}.else.{...set.cmd."history
2d2c0 20 65 76 65 6e 74 20 24 68 69 73 74 4e 75 6d 22 0a 09 20 20 20 20 7d 0a 09 20 20 20 20 69 66 20 .event.$histNum"......}......if.
2d2e0 7b 5b 73 74 72 69 6e 67 20 63 6f 6d 70 61 72 65 20 24 63 6d 64 20 22 22 5d 7d 20 7b 0a 09 09 63 {[string.compare.$cmd.""]}.{...c
2d300 61 74 63 68 20 7b 63 6f 6e 73 6f 6c 65 69 6e 74 65 72 70 20 65 76 61 6c 20 24 63 6d 64 7d 20 63 atch.{consoleinterp.eval.$cmd}.c
2d320 6d 64 0a 09 20 20 20 20 7d 0a 09 20 20 20 20 2e 63 6f 6e 73 6f 6c 65 20 64 65 6c 65 74 65 20 70 md......}.......console.delete.p
2d340 72 6f 6d 70 74 45 6e 64 20 65 6e 64 0a 09 20 20 20 20 2e 63 6f 6e 73 6f 6c 65 20 69 6e 73 65 72 romptEnd.end.......console.inser
2d360 74 20 70 72 6f 6d 70 74 45 6e 64 20 24 63 6d 64 20 7b 69 6e 70 75 74 20 73 74 64 69 6e 7d 0a 20 t.promptEnd.$cmd.{input.stdin}..
2d380 20 20 20 09 7d 0a 20 20 20 20 09 72 65 73 65 74 20 7b 0a 20 20 20 20 09 20 20 20 20 73 65 74 20 ....}......reset.{..........set.
2d3a0 68 69 73 74 4e 75 6d 20 31 0a 20 20 20 20 09 7d 0a 20 20 20 20 7d 0a 7d 0a 0a 23 20 74 6b 43 6f histNum.1......}.....}.}..#.tkCo
2d3c0 6e 73 6f 6c 65 50 72 6f 6d 70 74 20 2d 2d 0a 23 20 54 68 69 73 20 70 72 6f 63 65 64 75 72 65 20 nsolePrompt.--.#.This.procedure.
2d3e0 64 72 61 77 73 20 74 68 65 20 70 72 6f 6d 70 74 2e 20 20 49 66 20 74 63 6c 5f 70 72 6f 6d 70 74 draws.the.prompt...If.tcl_prompt
2d400 31 20 6f 72 20 74 63 6c 5f 70 72 6f 6d 70 74 32 0a 23 20 65 78 69 73 74 73 20 69 6e 20 74 68 65 1.or.tcl_prompt2.#.exists.in.the
2d420 20 6d 61 69 6e 20 69 6e 74 65 72 70 72 65 74 65 72 20 69 74 20 77 69 6c 6c 20 62 65 20 63 61 6c .main.interpreter.it.will.be.cal
2d440 6c 65 64 20 74 6f 20 67 65 6e 65 72 61 74 65 20 74 68 65 20 0a 23 20 70 72 6f 6d 70 74 2e 20 20 led.to.generate.the..#.prompt...
2d460 4f 74 68 65 72 77 69 73 65 2c 20 61 20 68 61 72 64 20 63 6f 64 65 64 20 64 65 66 61 75 6c 74 20 Otherwise,.a.hard.coded.default.
2d480 70 72 6f 6d 70 74 20 69 73 20 70 72 69 6e 74 65 64 2e 0a 23 0a 23 20 41 72 67 75 6d 65 6e 74 73 prompt.is.printed..#.#.Arguments
2d4a0 3a 0a 23 20 70 61 72 74 69 61 6c 20 2d 09 46 6c 61 67 20 74 6f 20 73 70 65 63 69 66 79 20 77 68 :.#.partial.-.Flag.to.specify.wh
2d4c0 69 63 68 20 70 72 6f 6d 70 74 20 74 6f 20 70 72 69 6e 74 2e 0a 0a 70 72 6f 63 20 74 6b 43 6f 6e ich.prompt.to.print...proc.tkCon
2d4e0 73 6f 6c 65 50 72 6f 6d 70 74 20 7b 7b 70 61 72 74 69 61 6c 20 6e 6f 72 6d 61 6c 7d 7d 20 7b 0a solePrompt.{{partial.normal}}.{.
2d500 20 20 20 20 69 66 20 7b 5b 73 74 72 69 6e 67 20 65 71 75 61 6c 20 24 70 61 72 74 69 61 6c 20 22 ....if.{[string.equal.$partial."
2d520 6e 6f 72 6d 61 6c 22 5d 7d 20 7b 0a 09 73 65 74 20 74 65 6d 70 20 5b 2e 63 6f 6e 73 6f 6c 65 20 normal"]}.{..set.temp.[.console.
2d540 69 6e 64 65 78 20 22 65 6e 64 20 2d 20 31 20 63 68 61 72 22 5d 0a 09 2e 63 6f 6e 73 6f 6c 65 20 index."end.-.1.char"]...console.
2d560 6d 61 72 6b 20 73 65 74 20 6f 75 74 70 75 74 20 65 6e 64 0a 20 20 20 20 09 69 66 20 7b 5b 63 6f mark.set.output.end......if.{[co
2d580 6e 73 6f 6c 65 69 6e 74 65 72 70 20 65 76 61 6c 20 22 69 6e 66 6f 20 65 78 69 73 74 73 20 74 63 nsoleinterp.eval."info.exists.tc
2d5a0 6c 5f 70 72 6f 6d 70 74 31 22 5d 7d 20 7b 0a 20 20 20 20 09 20 20 20 20 63 6f 6e 73 6f 6c 65 69 l_prompt1"]}.{..........consolei
2d5c0 6e 74 65 72 70 20 65 76 61 6c 20 22 65 76 61 6c 20 5c 5b 73 65 74 20 74 63 6c 5f 70 72 6f 6d 70 nterp.eval."eval.\[set.tcl_promp
2d5e0 74 31 5c 5d 22 0a 20 20 20 20 09 7d 20 65 6c 73 65 20 7b 0a 20 20 20 20 09 20 20 20 20 70 75 74 t1\]"......}.else.{..........put
2d600 73 20 2d 6e 6f 6e 65 77 6c 69 6e 65 20 22 25 20 22 0a 20 20 20 20 09 7d 0a 20 20 20 20 7d 20 65 s.-nonewline."%."......}.....}.e
2d620 6c 73 65 20 7b 0a 09 73 65 74 20 74 65 6d 70 20 5b 2e 63 6f 6e 73 6f 6c 65 20 69 6e 64 65 78 20 lse.{..set.temp.[.console.index.
2d640 6f 75 74 70 75 74 5d 0a 09 2e 63 6f 6e 73 6f 6c 65 20 6d 61 72 6b 20 73 65 74 20 6f 75 74 70 75 output]...console.mark.set.outpu
2d660 74 20 65 6e 64 0a 20 20 20 20 09 69 66 20 7b 5b 63 6f 6e 73 6f 6c 65 69 6e 74 65 72 70 20 65 76 t.end......if.{[consoleinterp.ev
2d680 61 6c 20 22 69 6e 66 6f 20 65 78 69 73 74 73 20 74 63 6c 5f 70 72 6f 6d 70 74 32 22 5d 7d 20 7b al."info.exists.tcl_prompt2"]}.{
2d6a0 0a 20 20 20 20 09 20 20 20 20 63 6f 6e 73 6f 6c 65 69 6e 74 65 72 70 20 65 76 61 6c 20 22 65 76 ..........consoleinterp.eval."ev
2d6c0 61 6c 20 5c 5b 73 65 74 20 74 63 6c 5f 70 72 6f 6d 70 74 32 5c 5d 22 0a 20 20 20 20 09 7d 20 65 al.\[set.tcl_prompt2\]"......}.e
2d6e0 6c 73 65 20 7b 0a 09 20 20 20 20 70 75 74 73 20 2d 6e 6f 6e 65 77 6c 69 6e 65 20 22 3e 20 22 0a lse.{......puts.-nonewline.">.".
2d700 20 20 20 20 09 7d 0a 20 20 20 20 7d 0a 20 20 20 20 66 6c 75 73 68 20 73 74 64 6f 75 74 0a 20 20 .....}.....}.....flush.stdout...
2d720 20 20 2e 63 6f 6e 73 6f 6c 65 20 6d 61 72 6b 20 73 65 74 20 6f 75 74 70 75 74 20 24 74 65 6d 70 ...console.mark.set.output.$temp
2d740 0a 20 20 20 20 74 6b 54 65 78 74 53 65 74 43 75 72 73 6f 72 20 2e 63 6f 6e 73 6f 6c 65 20 65 6e .....tkTextSetCursor..console.en
2d760 64 0a 20 20 20 20 2e 63 6f 6e 73 6f 6c 65 20 6d 61 72 6b 20 73 65 74 20 70 72 6f 6d 70 74 45 6e d......console.mark.set.promptEn
2d780 64 20 69 6e 73 65 72 74 0a 20 20 20 20 2e 63 6f 6e 73 6f 6c 65 20 6d 61 72 6b 20 67 72 61 76 69 d.insert......console.mark.gravi
2d7a0 74 79 20 70 72 6f 6d 70 74 45 6e 64 20 6c 65 66 74 0a 7d 0a 0a 23 20 74 6b 43 6f 6e 73 6f 6c 65 ty.promptEnd.left.}..#.tkConsole
2d7c0 42 69 6e 64 20 2d 2d 0a 23 20 54 68 69 73 20 70 72 6f 63 65 64 75 72 65 20 66 69 72 73 74 20 65 Bind.--.#.This.procedure.first.e
2d7e0 6e 73 75 72 65 73 20 74 68 61 74 20 74 68 65 20 64 65 66 61 75 6c 74 20 62 69 6e 64 69 6e 67 73 nsures.that.the.default.bindings
2d800 20 66 6f 72 20 74 68 65 20 54 65 78 74 0a 23 20 63 6c 61 73 73 20 68 61 76 65 20 62 65 65 6e 20 .for.the.Text.#.class.have.been.
2d820 64 65 66 69 6e 65 64 2e 20 20 54 68 65 6e 20 63 65 72 74 61 69 6e 20 62 69 6e 64 69 6e 67 73 20 defined...Then.certain.bindings.
2d840 61 72 65 20 6f 76 65 72 72 69 64 64 65 6e 20 66 6f 72 0a 23 20 74 68 65 20 63 6c 61 73 73 2e 0a are.overridden.for.#.the.class..
2d860 23 0a 23 20 41 72 67 75 6d 65 6e 74 73 3a 0a 23 20 4e 6f 6e 65 2e 0a 0a 70 72 6f 63 20 74 6b 43 #.#.Arguments:.#.None...proc.tkC
2d880 6f 6e 73 6f 6c 65 42 69 6e 64 20 7b 77 69 6e 7d 20 7b 0a 20 20 20 20 62 69 6e 64 74 61 67 73 20 onsoleBind.{win}.{.....bindtags.
2d8a0 24 77 69 6e 20 22 24 77 69 6e 20 54 65 78 74 20 2e 20 61 6c 6c 22 0a 0a 20 20 20 20 23 20 49 67 $win."$win.Text...all"......#.Ig
2d8c0 6e 6f 72 65 20 61 6c 6c 20 41 6c 74 2c 20 4d 65 74 61 2c 20 61 6e 64 20 43 6f 6e 74 72 6f 6c 20 nore.all.Alt,.Meta,.and.Control.
2d8e0 6b 65 79 70 72 65 73 73 65 73 20 75 6e 6c 65 73 73 20 65 78 70 6c 69 63 69 74 6c 79 20 62 6f 75 keypresses.unless.explicitly.bou
2d900 6e 64 2e 0a 20 20 20 20 23 20 4f 74 68 65 72 77 69 73 65 2c 20 69 66 20 61 20 77 69 64 67 65 74 nd......#.Otherwise,.if.a.widget
2d920 20 62 69 6e 64 69 6e 67 20 66 6f 72 20 6f 6e 65 20 6f 66 20 74 68 65 73 65 20 69 73 20 64 65 66 .binding.for.one.of.these.is.def
2d940 69 6e 65 64 2c 20 74 68 65 0a 20 20 20 20 23 20 3c 4b 65 79 50 72 65 73 73 3e 20 63 6c 61 73 73 ined,.the.....#.<KeyPress>.class
2d960 20 62 69 6e 64 69 6e 67 20 77 69 6c 6c 20 61 6c 73 6f 20 66 69 72 65 20 61 6e 64 20 69 6e 73 65 .binding.will.also.fire.and.inse
2d980 72 74 20 74 68 65 20 63 68 61 72 61 63 74 65 72 2c 0a 20 20 20 20 23 20 77 68 69 63 68 20 69 73 rt.the.character,.....#.which.is
2d9a0 20 77 72 6f 6e 67 2e 20 20 44 69 74 74 6f 20 66 6f 72 20 3c 45 73 63 61 70 65 3e 2e 0a 0a 20 20 .wrong...Ditto.for.<Escape>.....
2d9c0 20 20 62 69 6e 64 20 24 77 69 6e 20 3c 41 6c 74 2d 4b 65 79 50 72 65 73 73 3e 20 7b 23 20 6e 6f ..bind.$win.<Alt-KeyPress>.{#.no
2d9e0 74 68 69 6e 67 20 7d 0a 20 20 20 20 62 69 6e 64 20 24 77 69 6e 20 3c 4d 65 74 61 2d 4b 65 79 50 thing.}.....bind.$win.<Meta-KeyP
2da00 72 65 73 73 3e 20 7b 23 20 6e 6f 74 68 69 6e 67 7d 0a 20 20 20 20 62 69 6e 64 20 24 77 69 6e 20 ress>.{#.nothing}.....bind.$win.
2da20 3c 43 6f 6e 74 72 6f 6c 2d 4b 65 79 50 72 65 73 73 3e 20 7b 23 20 6e 6f 74 68 69 6e 67 7d 0a 20 <Control-KeyPress>.{#.nothing}..
2da40 20 20 20 62 69 6e 64 20 24 77 69 6e 20 3c 45 73 63 61 70 65 3e 20 7b 23 20 6e 6f 74 68 69 6e 67 ...bind.$win.<Escape>.{#.nothing
2da60 7d 0a 20 20 20 20 62 69 6e 64 20 24 77 69 6e 20 3c 4b 50 5f 45 6e 74 65 72 3e 20 7b 23 20 6e 6f }.....bind.$win.<KP_Enter>.{#.no
2da80 74 68 69 6e 67 7d 0a 0a 20 20 20 20 62 69 6e 64 20 24 77 69 6e 20 3c 54 61 62 3e 20 7b 0a 09 74 thing}......bind.$win.<Tab>.{..t
2daa0 6b 43 6f 6e 73 6f 6c 65 49 6e 73 65 72 74 20 25 57 20 5c 74 0a 09 66 6f 63 75 73 20 25 57 0a 09 kConsoleInsert.%W.\t..focus.%W..
2dac0 62 72 65 61 6b 0a 20 20 20 20 7d 0a 20 20 20 20 62 69 6e 64 20 24 77 69 6e 20 3c 52 65 74 75 72 break.....}.....bind.$win.<Retur
2dae0 6e 3e 20 7b 0a 09 25 57 20 6d 61 72 6b 20 73 65 74 20 69 6e 73 65 72 74 20 7b 65 6e 64 20 2d 20 n>.{..%W.mark.set.insert.{end.-.
2db00 31 63 7d 0a 09 74 6b 43 6f 6e 73 6f 6c 65 49 6e 73 65 72 74 20 25 57 20 22 5c 6e 22 0a 09 74 6b 1c}..tkConsoleInsert.%W."\n"..tk
2db20 43 6f 6e 73 6f 6c 65 49 6e 76 6f 6b 65 0a 09 62 72 65 61 6b 0a 20 20 20 20 7d 0a 20 20 20 20 62 ConsoleInvoke..break.....}.....b
2db40 69 6e 64 20 24 77 69 6e 20 3c 44 65 6c 65 74 65 3e 20 7b 0a 09 69 66 20 7b 5b 73 74 72 69 6e 67 ind.$win.<Delete>.{..if.{[string
2db60 20 63 6f 6d 70 61 72 65 20 5b 25 57 20 74 61 67 20 6e 65 78 74 72 61 6e 67 65 20 73 65 6c 20 31 .compare.[%W.tag.nextrange.sel.1
2db80 2e 30 20 65 6e 64 5d 20 22 22 5d 7d 20 7b 0a 09 20 20 20 20 25 57 20 74 61 67 20 72 65 6d 6f 76 .0.end].""]}.{......%W.tag.remov
2dba0 65 20 73 65 6c 20 73 65 6c 2e 66 69 72 73 74 20 70 72 6f 6d 70 74 45 6e 64 0a 09 7d 20 65 6c 73 e.sel.sel.first.promptEnd..}.els
2dbc0 65 69 66 20 7b 5b 25 57 20 63 6f 6d 70 61 72 65 20 69 6e 73 65 72 74 20 3c 20 70 72 6f 6d 70 74 eif.{[%W.compare.insert.<.prompt
2dbe0 45 6e 64 5d 7d 20 7b 0a 09 20 20 20 20 62 72 65 61 6b 0a 09 7d 0a 20 20 20 20 7d 0a 20 20 20 20 End]}.{......break..}.....}.....
2dc00 62 69 6e 64 20 24 77 69 6e 20 3c 42 61 63 6b 53 70 61 63 65 3e 20 7b 0a 09 69 66 20 7b 5b 73 74 bind.$win.<BackSpace>.{..if.{[st
2dc20 72 69 6e 67 20 63 6f 6d 70 61 72 65 20 5b 25 57 20 74 61 67 20 6e 65 78 74 72 61 6e 67 65 20 73 ring.compare.[%W.tag.nextrange.s
2dc40 65 6c 20 31 2e 30 20 65 6e 64 5d 20 22 22 5d 7d 20 7b 0a 09 20 20 20 20 25 57 20 74 61 67 20 72 el.1.0.end].""]}.{......%W.tag.r
2dc60 65 6d 6f 76 65 20 73 65 6c 20 73 65 6c 2e 66 69 72 73 74 20 70 72 6f 6d 70 74 45 6e 64 0a 09 7d emove.sel.sel.first.promptEnd..}
2dc80 20 65 6c 73 65 69 66 20 7b 5b 25 57 20 63 6f 6d 70 61 72 65 20 69 6e 73 65 72 74 20 3c 3d 20 70 .elseif.{[%W.compare.insert.<=.p
2dca0 72 6f 6d 70 74 45 6e 64 5d 7d 20 7b 0a 09 20 20 20 20 62 72 65 61 6b 0a 09 7d 0a 20 20 20 20 7d romptEnd]}.{......break..}.....}
2dcc0 0a 20 20 20 20 66 6f 72 65 61 63 68 20 6c 65 66 74 20 7b 43 6f 6e 74 72 6f 6c 2d 61 20 48 6f 6d .....foreach.left.{Control-a.Hom
2dce0 65 7d 20 7b 0a 09 62 69 6e 64 20 24 77 69 6e 20 3c 24 6c 65 66 74 3e 20 7b 0a 09 20 20 20 20 69 e}.{..bind.$win.<$left>.{......i
2dd00 66 20 7b 5b 25 57 20 63 6f 6d 70 61 72 65 20 69 6e 73 65 72 74 20 3c 20 70 72 6f 6d 70 74 45 6e f.{[%W.compare.insert.<.promptEn
2dd20 64 5d 7d 20 7b 0a 09 09 74 6b 54 65 78 74 53 65 74 43 75 72 73 6f 72 20 25 57 20 7b 69 6e 73 65 d]}.{...tkTextSetCursor.%W.{inse
2dd40 72 74 20 6c 69 6e 65 73 74 61 72 74 7d 0a 09 20 20 20 20 7d 20 65 6c 73 65 20 7b 0a 09 09 74 6b rt.linestart}......}.else.{...tk
2dd60 54 65 78 74 53 65 74 43 75 72 73 6f 72 20 25 57 20 70 72 6f 6d 70 74 45 6e 64 0a 20 20 20 20 20 TextSetCursor.%W.promptEnd......
2dd80 20 20 20 20 20 20 20 7d 0a 09 20 20 20 20 62 72 65 61 6b 0a 09 7d 0a 20 20 20 20 7d 0a 20 20 20 .......}......break..}.....}....
2dda0 20 66 6f 72 65 61 63 68 20 72 69 67 68 74 20 7b 43 6f 6e 74 72 6f 6c 2d 65 20 45 6e 64 7d 20 7b .foreach.right.{Control-e.End}.{
2ddc0 0a 09 62 69 6e 64 20 24 77 69 6e 20 3c 24 72 69 67 68 74 3e 20 7b 0a 09 20 20 20 20 74 6b 54 65 ..bind.$win.<$right>.{......tkTe
2dde0 78 74 53 65 74 43 75 72 73 6f 72 20 25 57 20 7b 69 6e 73 65 72 74 20 6c 69 6e 65 65 6e 64 7d 0a xtSetCursor.%W.{insert.lineend}.
2de00 09 20 20 20 20 62 72 65 61 6b 0a 09 7d 0a 20 20 20 20 7d 0a 20 20 20 20 62 69 6e 64 20 24 77 69 .....break..}.....}.....bind.$wi
2de20 6e 20 3c 43 6f 6e 74 72 6f 6c 2d 64 3e 20 7b 0a 09 69 66 20 7b 5b 25 57 20 63 6f 6d 70 61 72 65 n.<Control-d>.{..if.{[%W.compare
2de40 20 69 6e 73 65 72 74 20 3c 20 70 72 6f 6d 70 74 45 6e 64 5d 7d 20 7b 0a 09 20 20 20 20 62 72 65 .insert.<.promptEnd]}.{......bre
2de60 61 6b 0a 09 7d 0a 20 20 20 20 7d 0a 20 20 20 20 62 69 6e 64 20 24 77 69 6e 20 3c 43 6f 6e 74 72 ak..}.....}.....bind.$win.<Contr
2de80 6f 6c 2d 6b 3e 20 7b 0a 09 69 66 20 7b 5b 25 57 20 63 6f 6d 70 61 72 65 20 69 6e 73 65 72 74 20 ol-k>.{..if.{[%W.compare.insert.
2dea0 3c 20 70 72 6f 6d 70 74 45 6e 64 5d 7d 20 7b 0a 09 20 20 20 20 25 57 20 6d 61 72 6b 20 73 65 74 <.promptEnd]}.{......%W.mark.set
2dec0 20 69 6e 73 65 72 74 20 70 72 6f 6d 70 74 45 6e 64 0a 09 7d 0a 20 20 20 20 7d 0a 20 20 20 20 62 .insert.promptEnd..}.....}.....b
2dee0 69 6e 64 20 24 77 69 6e 20 3c 43 6f 6e 74 72 6f 6c 2d 74 3e 20 7b 0a 09 69 66 20 7b 5b 25 57 20 ind.$win.<Control-t>.{..if.{[%W.
2df00 63 6f 6d 70 61 72 65 20 69 6e 73 65 72 74 20 3c 20 70 72 6f 6d 70 74 45 6e 64 5d 7d 20 7b 0a 09 compare.insert.<.promptEnd]}.{..
2df20 20 20 20 20 62 72 65 61 6b 0a 09 7d 0a 20 20 20 20 7d 0a 20 20 20 20 62 69 6e 64 20 24 77 69 6e ....break..}.....}.....bind.$win
2df40 20 3c 4d 65 74 61 2d 64 3e 20 7b 0a 09 69 66 20 7b 5b 25 57 20 63 6f 6d 70 61 72 65 20 69 6e 73 .<Meta-d>.{..if.{[%W.compare.ins
2df60 65 72 74 20 3c 20 70 72 6f 6d 70 74 45 6e 64 5d 7d 20 7b 0a 09 20 20 20 20 62 72 65 61 6b 0a 09 ert.<.promptEnd]}.{......break..
2df80 7d 0a 20 20 20 20 7d 0a 20 20 20 20 62 69 6e 64 20 24 77 69 6e 20 3c 4d 65 74 61 2d 42 61 63 6b }.....}.....bind.$win.<Meta-Back
2dfa0 53 70 61 63 65 3e 20 7b 0a 09 69 66 20 7b 5b 25 57 20 63 6f 6d 70 61 72 65 20 69 6e 73 65 72 74 Space>.{..if.{[%W.compare.insert
2dfc0 20 3c 3d 20 70 72 6f 6d 70 74 45 6e 64 5d 7d 20 7b 0a 09 20 20 20 20 62 72 65 61 6b 0a 09 7d 0a .<=.promptEnd]}.{......break..}.
2dfe0 20 20 20 20 7d 0a 20 20 20 20 62 69 6e 64 20 24 77 69 6e 20 3c 43 6f 6e 74 72 6f 6c 2d 68 3e 20 ....}.....bind.$win.<Control-h>.
2e000 7b 0a 09 69 66 20 7b 5b 25 57 20 63 6f 6d 70 61 72 65 20 69 6e 73 65 72 74 20 3c 3d 20 70 72 6f {..if.{[%W.compare.insert.<=.pro
2e020 6d 70 74 45 6e 64 5d 7d 20 7b 0a 09 20 20 20 20 62 72 65 61 6b 0a 09 7d 0a 20 20 20 20 7d 0a 20 mptEnd]}.{......break..}.....}..
2e040 20 20 20 66 6f 72 65 61 63 68 20 70 72 65 76 20 7b 43 6f 6e 74 72 6f 6c 2d 70 20 55 70 7d 20 7b ...foreach.prev.{Control-p.Up}.{
2e060 0a 09 62 69 6e 64 20 24 77 69 6e 20 3c 24 70 72 65 76 3e 20 7b 0a 09 20 20 20 20 74 6b 43 6f 6e ..bind.$win.<$prev>.{......tkCon
2e080 73 6f 6c 65 48 69 73 74 6f 72 79 20 70 72 65 76 0a 09 20 20 20 20 62 72 65 61 6b 0a 09 7d 0a 20 soleHistory.prev......break..}..
2e0a0 20 20 20 7d 0a 20 20 20 20 66 6f 72 65 61 63 68 20 70 72 65 76 20 7b 43 6f 6e 74 72 6f 6c 2d 6e ...}.....foreach.prev.{Control-n
2e0c0 20 44 6f 77 6e 7d 20 7b 0a 09 62 69 6e 64 20 24 77 69 6e 20 3c 24 70 72 65 76 3e 20 7b 0a 09 20 .Down}.{..bind.$win.<$prev>.{...
2e0e0 20 20 20 74 6b 43 6f 6e 73 6f 6c 65 48 69 73 74 6f 72 79 20 6e 65 78 74 0a 09 20 20 20 20 62 72 ...tkConsoleHistory.next......br
2e100 65 61 6b 0a 09 7d 0a 20 20 20 20 7d 0a 20 20 20 20 62 69 6e 64 20 24 77 69 6e 20 3c 49 6e 73 65 eak..}.....}.....bind.$win.<Inse
2e120 72 74 3e 20 7b 0a 09 63 61 74 63 68 20 7b 74 6b 43 6f 6e 73 6f 6c 65 49 6e 73 65 72 74 20 25 57 rt>.{..catch.{tkConsoleInsert.%W
2e140 20 5b 73 65 6c 65 63 74 69 6f 6e 20 67 65 74 20 2d 64 69 73 70 6c 61 79 6f 66 20 25 57 5d 7d 0a .[selection.get.-displayof.%W]}.
2e160 09 62 72 65 61 6b 0a 20 20 20 20 7d 0a 20 20 20 20 62 69 6e 64 20 24 77 69 6e 20 3c 4b 65 79 50 .break.....}.....bind.$win.<KeyP
2e180 72 65 73 73 3e 20 7b 0a 09 74 6b 43 6f 6e 73 6f 6c 65 49 6e 73 65 72 74 20 25 57 20 25 41 0a 09 ress>.{..tkConsoleInsert.%W.%A..
2e1a0 62 72 65 61 6b 0a 20 20 20 20 7d 0a 20 20 20 20 66 6f 72 65 61 63 68 20 6c 65 66 74 20 7b 43 6f break.....}.....foreach.left.{Co
2e1c0 6e 74 72 6f 6c 2d 62 20 4c 65 66 74 7d 20 7b 0a 09 62 69 6e 64 20 24 77 69 6e 20 3c 24 6c 65 66 ntrol-b.Left}.{..bind.$win.<$lef
2e1e0 74 3e 20 7b 0a 09 20 20 20 20 69 66 20 7b 5b 25 57 20 63 6f 6d 70 61 72 65 20 69 6e 73 65 72 74 t>.{......if.{[%W.compare.insert
2e200 20 3d 3d 20 70 72 6f 6d 70 74 45 6e 64 5d 7d 20 7b 0a 09 09 62 72 65 61 6b 0a 09 20 20 20 20 7d .==.promptEnd]}.{...break......}
2e220 0a 09 20 20 20 20 74 6b 54 65 78 74 53 65 74 43 75 72 73 6f 72 20 25 57 20 69 6e 73 65 72 74 2d ......tkTextSetCursor.%W.insert-
2e240 31 63 0a 09 20 20 20 20 62 72 65 61 6b 0a 09 7d 0a 20 20 20 20 7d 0a 20 20 20 20 66 6f 72 65 61 1c......break..}.....}.....forea
2e260 63 68 20 72 69 67 68 74 20 7b 43 6f 6e 74 72 6f 6c 2d 66 20 52 69 67 68 74 7d 20 7b 0a 09 62 69 ch.right.{Control-f.Right}.{..bi
2e280 6e 64 20 24 77 69 6e 20 3c 24 72 69 67 68 74 3e 20 7b 0a 09 20 20 20 20 74 6b 54 65 78 74 53 65 nd.$win.<$right>.{......tkTextSe
2e2a0 74 43 75 72 73 6f 72 20 25 57 20 69 6e 73 65 72 74 2b 31 63 0a 09 20 20 20 20 62 72 65 61 6b 0a tCursor.%W.insert+1c......break.
2e2c0 09 7d 0a 20 20 20 20 7d 0a 20 20 20 20 62 69 6e 64 20 24 77 69 6e 20 3c 46 39 3e 20 7b 0a 09 65 .}.....}.....bind.$win.<F9>.{..e
2e2e0 76 61 6c 20 64 65 73 74 72 6f 79 20 5b 77 69 6e 66 6f 20 63 68 69 6c 64 20 2e 5d 0a 09 69 66 20 val.destroy.[winfo.child..]..if.
2e300 7b 5b 73 74 72 69 6e 67 20 65 71 75 61 6c 20 24 74 63 6c 5f 70 6c 61 74 66 6f 72 6d 28 70 6c 61 {[string.equal.$tcl_platform(pla
2e320 74 66 6f 72 6d 29 20 22 6d 61 63 69 6e 74 6f 73 68 22 5d 7d 20 7b 0a 09 20 20 20 20 73 6f 75 72 tform)."macintosh"]}.{......sour
2e340 63 65 20 2d 72 73 72 63 20 43 6f 6e 73 6f 6c 65 0a 09 7d 20 65 6c 73 65 20 7b 0a 09 20 20 20 20 ce.-rsrc.Console..}.else.{......
2e360 73 6f 75 72 63 65 20 5b 66 69 6c 65 20 6a 6f 69 6e 20 24 74 6b 5f 6c 69 62 72 61 72 79 20 63 6f source.[file.join.$tk_library.co
2e380 6e 73 6f 6c 65 2e 74 63 6c 5d 0a 09 7d 0a 20 20 20 20 7d 0a 20 20 20 20 62 69 6e 64 20 24 77 69 nsole.tcl]..}.....}.....bind.$wi
2e3a0 6e 20 3c 3c 43 75 74 3e 3e 20 7b 0a 20 20 20 20 20 20 20 20 23 20 53 61 6d 65 20 61 73 20 74 68 n.<<Cut>>.{.........#.Same.as.th
2e3c0 65 20 63 6f 70 79 20 65 76 65 6e 74 0a 20 09 69 66 20 7b 21 5b 63 61 74 63 68 20 7b 73 65 74 20 e.copy.event...if.{![catch.{set.
2e3e0 64 61 74 61 20 5b 25 57 20 67 65 74 20 73 65 6c 2e 66 69 72 73 74 20 73 65 6c 2e 6c 61 73 74 5d data.[%W.get.sel.first.sel.last]
2e400 7d 5d 7d 20 7b 0a 09 20 20 20 20 63 6c 69 70 62 6f 61 72 64 20 63 6c 65 61 72 20 2d 64 69 73 70 }]}.{......clipboard.clear.-disp
2e420 6c 61 79 6f 66 20 25 57 0a 09 20 20 20 20 63 6c 69 70 62 6f 61 72 64 20 61 70 70 65 6e 64 20 2d layof.%W......clipboard.append.-
2e440 64 69 73 70 6c 61 79 6f 66 20 25 57 20 24 64 61 74 61 0a 09 7d 0a 09 62 72 65 61 6b 0a 20 20 20 displayof.%W.$data..}..break....
2e460 20 7d 0a 20 20 20 20 62 69 6e 64 20 24 77 69 6e 20 3c 3c 43 6f 70 79 3e 3e 20 7b 0a 20 09 69 66 .}.....bind.$win.<<Copy>>.{...if
2e480 20 7b 21 5b 63 61 74 63 68 20 7b 73 65 74 20 64 61 74 61 20 5b 25 57 20 67 65 74 20 73 65 6c 2e .{![catch.{set.data.[%W.get.sel.
2e4a0 66 69 72 73 74 20 73 65 6c 2e 6c 61 73 74 5d 7d 5d 7d 20 7b 0a 09 20 20 20 20 63 6c 69 70 62 6f first.sel.last]}]}.{......clipbo
2e4c0 61 72 64 20 63 6c 65 61 72 20 2d 64 69 73 70 6c 61 79 6f 66 20 25 57 0a 09 20 20 20 20 63 6c 69 ard.clear.-displayof.%W......cli
2e4e0 70 62 6f 61 72 64 20 61 70 70 65 6e 64 20 2d 64 69 73 70 6c 61 79 6f 66 20 25 57 20 24 64 61 74 pboard.append.-displayof.%W.$dat
2e500 61 0a 09 7d 0a 09 62 72 65 61 6b 0a 20 20 20 20 7d 0a 20 20 20 20 62 69 6e 64 20 24 77 69 6e 20 a..}..break.....}.....bind.$win.
2e520 3c 3c 50 61 73 74 65 3e 3e 20 7b 0a 09 63 61 74 63 68 20 7b 0a 09 20 20 20 20 73 65 74 20 63 6c <<Paste>>.{..catch.{......set.cl
2e540 69 70 20 5b 73 65 6c 65 63 74 69 6f 6e 20 67 65 74 20 2d 64 69 73 70 6c 61 79 6f 66 20 25 57 20 ip.[selection.get.-displayof.%W.
2e560 2d 73 65 6c 65 63 74 69 6f 6e 20 43 4c 49 50 42 4f 41 52 44 5d 0a 09 20 20 20 20 73 65 74 20 6c -selection.CLIPBOARD]......set.l
2e580 69 73 74 20 5b 73 70 6c 69 74 20 24 63 6c 69 70 20 5c 6e 5c 72 5d 0a 09 20 20 20 20 74 6b 43 6f ist.[split.$clip.\n\r]......tkCo
2e5a0 6e 73 6f 6c 65 49 6e 73 65 72 74 20 25 57 20 5b 6c 69 6e 64 65 78 20 24 6c 69 73 74 20 30 5d 0a nsoleInsert.%W.[lindex.$list.0].
2e5c0 09 20 20 20 20 66 6f 72 65 61 63 68 20 78 20 5b 6c 72 61 6e 67 65 20 24 6c 69 73 74 20 31 20 65 .....foreach.x.[lrange.$list.1.e
2e5e0 6e 64 5d 20 7b 0a 09 09 25 57 20 6d 61 72 6b 20 73 65 74 20 69 6e 73 65 72 74 20 7b 65 6e 64 20 nd].{...%W.mark.set.insert.{end.
2e600 2d 20 31 63 7d 0a 09 09 74 6b 43 6f 6e 73 6f 6c 65 49 6e 73 65 72 74 20 25 57 20 22 5c 6e 22 0a -.1c}...tkConsoleInsert.%W."\n".
2e620 09 09 74 6b 43 6f 6e 73 6f 6c 65 49 6e 76 6f 6b 65 0a 09 09 74 6b 43 6f 6e 73 6f 6c 65 49 6e 73 ..tkConsoleInvoke...tkConsoleIns
2e640 65 72 74 20 25 57 20 24 78 0a 09 20 20 20 20 7d 0a 09 7d 0a 09 62 72 65 61 6b 0a 20 20 20 20 7d ert.%W.$x......}..}..break.....}
2e660 0a 7d 0a 0a 23 20 74 6b 43 6f 6e 73 6f 6c 65 49 6e 73 65 72 74 20 2d 2d 0a 23 20 49 6e 73 65 72 .}..#.tkConsoleInsert.--.#.Inser
2e680 74 20 61 20 73 74 72 69 6e 67 20 69 6e 74 6f 20 61 20 74 65 78 74 20 61 74 20 74 68 65 20 70 6f t.a.string.into.a.text.at.the.po
2e6a0 69 6e 74 20 6f 66 20 74 68 65 20 69 6e 73 65 72 74 69 6f 6e 20 63 75 72 73 6f 72 2e 0a 23 20 49 int.of.the.insertion.cursor..#.I
2e6c0 66 20 74 68 65 72 65 20 69 73 20 61 20 73 65 6c 65 63 74 69 6f 6e 20 69 6e 20 74 68 65 20 74 65 f.there.is.a.selection.in.the.te
2e6e0 78 74 2c 20 61 6e 64 20 69 74 20 63 6f 76 65 72 73 20 74 68 65 20 70 6f 69 6e 74 20 6f 66 20 74 xt,.and.it.covers.the.point.of.t
2e700 68 65 0a 23 20 69 6e 73 65 72 74 69 6f 6e 20 63 75 72 73 6f 72 2c 20 74 68 65 6e 20 64 65 6c 65 he.#.insertion.cursor,.then.dele
2e720 74 65 20 74 68 65 20 73 65 6c 65 63 74 69 6f 6e 20 62 65 66 6f 72 65 20 69 6e 73 65 72 74 69 6e te.the.selection.before.insertin
2e740 67 2e 20 20 49 6e 73 65 72 74 69 6f 6e 0a 23 20 69 73 20 72 65 73 74 72 69 63 74 65 64 20 74 6f g...Insertion.#.is.restricted.to
2e760 20 74 68 65 20 70 72 6f 6d 70 74 20 61 72 65 61 2e 0a 23 0a 23 20 41 72 67 75 6d 65 6e 74 73 3a .the.prompt.area..#.#.Arguments:
2e780 0a 23 20 77 20 2d 09 09 54 68 65 20 74 65 78 74 20 77 69 6e 64 6f 77 20 69 6e 20 77 68 69 63 68 .#.w.-..The.text.window.in.which
2e7a0 20 74 6f 20 69 6e 73 65 72 74 20 74 68 65 20 73 74 72 69 6e 67 0a 23 20 73 20 2d 09 09 54 68 65 .to.insert.the.string.#.s.-..The
2e7c0 20 73 74 72 69 6e 67 20 74 6f 20 69 6e 73 65 72 74 20 28 75 73 75 61 6c 6c 79 20 6a 75 73 74 20 .string.to.insert.(usually.just.
2e7e0 61 20 73 69 6e 67 6c 65 20 63 68 61 72 61 63 74 65 72 29 0a 0a 70 72 6f 63 20 74 6b 43 6f 6e 73 a.single.character)..proc.tkCons
2e800 6f 6c 65 49 6e 73 65 72 74 20 7b 77 20 73 7d 20 7b 0a 20 20 20 20 69 66 20 7b 5b 73 74 72 69 6e oleInsert.{w.s}.{.....if.{[strin
2e820 67 20 65 71 75 61 6c 20 24 73 20 22 22 5d 7d 20 7b 0a 09 72 65 74 75 72 6e 0a 20 20 20 20 7d 0a g.equal.$s.""]}.{..return.....}.
2e840 20 20 20 20 63 61 74 63 68 20 7b 0a 09 69 66 20 7b 5b 24 77 20 63 6f 6d 70 61 72 65 20 73 65 6c ....catch.{..if.{[$w.compare.sel
2e860 2e 66 69 72 73 74 20 3c 3d 20 69 6e 73 65 72 74 5d 0a 09 09 26 26 20 5b 24 77 20 63 6f 6d 70 61 .first.<=.insert]...&&.[$w.compa
2e880 72 65 20 73 65 6c 2e 6c 61 73 74 20 3e 3d 20 69 6e 73 65 72 74 5d 7d 20 7b 0a 09 20 20 20 20 24 re.sel.last.>=.insert]}.{......$
2e8a0 77 20 74 61 67 20 72 65 6d 6f 76 65 20 73 65 6c 20 73 65 6c 2e 66 69 72 73 74 20 70 72 6f 6d 70 w.tag.remove.sel.sel.first.promp
2e8c0 74 45 6e 64 0a 09 20 20 20 20 24 77 20 64 65 6c 65 74 65 20 73 65 6c 2e 66 69 72 73 74 20 73 65 tEnd......$w.delete.sel.first.se
2e8e0 6c 2e 6c 61 73 74 0a 09 7d 0a 20 20 20 20 7d 0a 20 20 20 20 69 66 20 7b 5b 24 77 20 63 6f 6d 70 l.last..}.....}.....if.{[$w.comp
2e900 61 72 65 20 69 6e 73 65 72 74 20 3c 20 70 72 6f 6d 70 74 45 6e 64 5d 7d 20 7b 0a 09 24 77 20 6d are.insert.<.promptEnd]}.{..$w.m
2e920 61 72 6b 20 73 65 74 20 69 6e 73 65 72 74 20 65 6e 64 09 0a 20 20 20 20 7d 0a 20 20 20 20 24 77 ark.set.insert.end......}.....$w
2e940 20 69 6e 73 65 72 74 20 69 6e 73 65 72 74 20 24 73 20 7b 69 6e 70 75 74 20 73 74 64 69 6e 7d 0a .insert.insert.$s.{input.stdin}.
2e960 20 20 20 20 24 77 20 73 65 65 20 69 6e 73 65 72 74 0a 7d 0a 0a 23 20 74 6b 43 6f 6e 73 6f 6c 65 ....$w.see.insert.}..#.tkConsole
2e980 4f 75 74 70 75 74 20 2d 2d 0a 23 0a 23 20 54 68 69 73 20 72 6f 75 74 69 6e 65 20 69 73 20 63 61 Output.--.#.#.This.routine.is.ca
2e9a0 6c 6c 65 64 20 64 69 72 65 63 74 6c 79 20 62 79 20 43 6f 6e 73 6f 6c 65 50 75 74 73 43 6d 64 20 lled.directly.by.ConsolePutsCmd.
2e9c0 74 6f 20 63 61 75 73 65 20 61 20 73 74 72 69 6e 67 0a 23 20 74 6f 20 62 65 20 64 69 73 70 6c 61 to.cause.a.string.#.to.be.displa
2e9e0 79 65 64 20 69 6e 20 74 68 65 20 63 6f 6e 73 6f 6c 65 2e 0a 23 0a 23 20 41 72 67 75 6d 65 6e 74 yed.in.the.console..#.#.Argument
2ea00 73 3a 0a 23 20 64 65 73 74 20 2d 09 54 68 65 20 6f 75 74 70 75 74 20 74 61 67 20 74 6f 20 62 65 s:.#.dest.-.The.output.tag.to.be
2ea20 20 75 73 65 64 3a 20 65 69 74 68 65 72 20 22 73 74 64 65 72 72 22 20 6f 72 20 22 73 74 64 6f 75 .used:.either."stderr".or."stdou
2ea40 74 22 2e 0a 23 20 73 74 72 69 6e 67 20 2d 09 54 68 65 20 73 74 72 69 6e 67 20 74 6f 20 62 65 20 t"..#.string.-.The.string.to.be.
2ea60 64 69 73 70 6c 61 79 65 64 2e 0a 0a 70 72 6f 63 20 74 6b 43 6f 6e 73 6f 6c 65 4f 75 74 70 75 74 displayed...proc.tkConsoleOutput
2ea80 20 7b 64 65 73 74 20 73 74 72 69 6e 67 7d 20 7b 0a 20 20 20 20 2e 63 6f 6e 73 6f 6c 65 20 69 6e .{dest.string}.{......console.in
2eaa0 73 65 72 74 20 6f 75 74 70 75 74 20 24 73 74 72 69 6e 67 20 24 64 65 73 74 0a 20 20 20 20 2e 63 sert.output.$string.$dest......c
2eac0 6f 6e 73 6f 6c 65 20 73 65 65 20 69 6e 73 65 72 74 0a 7d 0a 0a 23 20 74 6b 43 6f 6e 73 6f 6c 65 onsole.see.insert.}..#.tkConsole
2eae0 45 78 69 74 20 2d 2d 0a 23 0a 23 20 54 68 69 73 20 72 6f 75 74 69 6e 65 20 69 73 20 63 61 6c 6c Exit.--.#.#.This.routine.is.call
2eb00 65 64 20 62 79 20 43 6f 6e 73 6f 6c 65 45 76 65 6e 74 50 72 6f 63 20 77 68 65 6e 20 74 68 65 20 ed.by.ConsoleEventProc.when.the.
2eb20 6d 61 69 6e 20 77 69 6e 64 6f 77 20 6f 66 0a 23 20 74 68 65 20 61 70 70 6c 69 63 61 74 69 6f 6e main.window.of.#.the.application
2eb40 20 69 73 20 64 65 73 74 72 6f 79 65 64 2e 20 20 44 6f 6e 27 74 20 63 61 6c 6c 20 65 78 69 74 20 .is.destroyed...Don't.call.exit.
2eb60 2d 20 74 68 61 74 20 70 72 6f 62 61 62 6c 79 20 61 6c 72 65 61 64 79 0a 23 20 68 61 70 70 65 6e -.that.probably.already.#.happen
2eb80 65 64 2e 20 20 4a 75 73 74 20 64 65 6c 65 74 65 20 6f 75 72 20 77 69 6e 64 6f 77 2e 0a 23 0a 23 ed...Just.delete.our.window..#.#
2eba0 20 41 72 67 75 6d 65 6e 74 73 3a 0a 23 20 4e 6f 6e 65 2e 0a 0a 70 72 6f 63 20 74 6b 43 6f 6e 73 .Arguments:.#.None...proc.tkCons
2ebc0 6f 6c 65 45 78 69 74 20 7b 7d 20 7b 0a 20 20 20 20 64 65 73 74 72 6f 79 20 2e 0a 7d 0a 0a 23 20 oleExit.{}.{.....destroy...}..#.
2ebe0 74 6b 43 6f 6e 73 6f 6c 65 41 62 6f 75 74 20 2d 2d 0a 23 0a 23 20 54 68 69 73 20 72 6f 75 74 69 tkConsoleAbout.--.#.#.This.routi
2ec00 6e 65 20 64 69 73 70 6c 61 79 73 20 61 6e 20 41 62 6f 75 74 20 62 6f 78 20 74 6f 20 73 68 6f 77 ne.displays.an.About.box.to.show
2ec20 20 54 63 6c 2f 54 6b 20 76 65 72 73 69 6f 6e 20 69 6e 66 6f 2e 0a 23 0a 23 20 41 72 67 75 6d 65 .Tcl/Tk.version.info..#.#.Argume
2ec40 6e 74 73 3a 0a 23 20 4e 6f 6e 65 2e 0a 0a 70 72 6f 63 20 74 6b 43 6f 6e 73 6f 6c 65 41 62 6f 75 nts:.#.None...proc.tkConsoleAbou
2ec60 74 20 7b 7d 20 7b 0a 20 20 20 20 67 6c 6f 62 61 6c 20 74 6b 5f 70 61 74 63 68 4c 65 76 65 6c 0a t.{}.{.....global.tk_patchLevel.
2ec80 20 20 20 20 74 6b 5f 6d 65 73 73 61 67 65 42 6f 78 20 2d 74 79 70 65 20 6f 6b 20 2d 6d 65 73 73 ....tk_messageBox.-type.ok.-mess
2eca0 61 67 65 20 22 54 63 6c 20 66 6f 72 20 57 69 6e 64 6f 77 73 0a 43 6f 70 79 72 69 67 68 74 20 5c age."Tcl.for.Windows.Copyright.\
2ecc0 32 35 31 20 31 39 39 39 20 53 63 72 69 70 74 69 63 73 20 43 6f 72 70 6f 72 61 74 69 6f 6e 0a 0a 251.1999.Scriptics.Corporation..
2ece0 54 63 6c 20 5b 69 6e 66 6f 20 70 61 74 63 68 6c 65 76 65 6c 5d 0a 54 6b 20 24 74 6b 5f 70 61 74 Tcl.[info.patchlevel].Tk.$tk_pat
2ed00 63 68 4c 65 76 65 6c 22 0a 7d 0a 0a 23 20 6e 6f 77 20 69 6e 69 74 69 61 6c 69 7a 65 20 74 68 65 chLevel".}..#.now.initialize.the
2ed20 20 63 6f 6e 73 6f 6c 65 0a 0a 74 6b 43 6f 6e 73 6f 6c 65 49 6e 69 74 0a 00 00 39 c3 23 20 6d 73 .console..tkConsoleInit...9.#.ms
2ed40 67 62 6f 78 2e 74 63 6c 20 2d 2d 0a 23 0a 23 09 49 6d 70 6c 65 6d 65 6e 74 73 20 6d 65 73 73 61 gbox.tcl.--.#.#.Implements.messa
2ed60 67 65 62 6f 78 65 73 20 66 6f 72 20 70 6c 61 74 66 6f 72 6d 73 20 74 68 61 74 20 64 6f 20 6e 6f geboxes.for.platforms.that.do.no
2ed80 74 20 68 61 76 65 20 6e 61 74 69 76 65 0a 23 09 6d 65 73 73 61 67 65 62 6f 78 20 73 75 70 70 6f t.have.native.#.messagebox.suppo
2eda0 72 74 2e 0a 23 0a 23 20 52 43 53 3a 20 40 28 23 29 20 24 49 64 3a 20 6d 73 67 62 6f 78 2e 74 63 rt..#.#.RCS:.@(#).$Id:.msgbox.tc
2edc0 6c 2c 76 20 31 2e 38 20 31 39 39 39 2f 31 32 2f 30 33 20 30 37 3a 31 35 3a 30 32 20 68 6f 62 62 l,v.1.8.1999/12/03.07:15:02.hobb
2ede0 73 20 45 78 70 20 24 0a 23 0a 23 20 43 6f 70 79 72 69 67 68 74 20 28 63 29 20 31 39 39 34 2d 31 s.Exp.$.#.#.Copyright.(c).1994-1
2ee00 39 39 37 20 53 75 6e 20 4d 69 63 72 6f 73 79 73 74 65 6d 73 2c 20 49 6e 63 2e 0a 23 0a 23 20 53 997.Sun.Microsystems,.Inc..#.#.S
2ee20 65 65 20 74 68 65 20 66 69 6c 65 20 22 6c 69 63 65 6e 73 65 2e 74 65 72 6d 73 22 20 66 6f 72 20 ee.the.file."license.terms".for.
2ee40 69 6e 66 6f 72 6d 61 74 69 6f 6e 20 6f 6e 20 75 73 61 67 65 20 61 6e 64 20 72 65 64 69 73 74 72 information.on.usage.and.redistr
2ee60 69 62 75 74 69 6f 6e 0a 23 20 6f 66 20 74 68 69 73 20 66 69 6c 65 2c 20 61 6e 64 20 66 6f 72 20 ibution.#.of.this.file,.and.for.
2ee80 61 20 44 49 53 43 4c 41 49 4d 45 52 20 4f 46 20 41 4c 4c 20 57 41 52 52 41 4e 54 49 45 53 2e 0a a.DISCLAIMER.OF.ALL.WARRANTIES..
2eea0 23 0a 0a 23 20 45 6e 73 75 72 65 20 65 78 69 73 74 65 6e 63 65 20 6f 66 20 3a 3a 74 6b 3a 3a 64 #..#.Ensure.existence.of.::tk::d
2eec0 69 61 6c 6f 67 20 6e 61 6d 65 73 70 61 63 65 0a 23 0a 6e 61 6d 65 73 70 61 63 65 20 65 76 61 6c ialog.namespace.#.namespace.eval
2eee0 20 3a 3a 74 6b 3a 3a 64 69 61 6c 6f 67 20 7b 7d 0a 0a 69 6d 61 67 65 20 63 72 65 61 74 65 20 62 .::tk::dialog.{}..image.create.b
2ef00 69 74 6d 61 70 20 3a 3a 74 6b 3a 3a 64 69 61 6c 6f 67 3a 3a 62 31 20 2d 66 6f 72 65 67 72 6f 75 itmap.::tk::dialog::b1.-foregrou
2ef20 6e 64 20 62 6c 61 63 6b 20 5c 0a 2d 64 61 74 61 20 22 23 64 65 66 69 6e 65 20 62 31 5f 77 69 64 nd.black.\.-data."#define.b1_wid
2ef40 74 68 20 33 32 5c 6e 23 64 65 66 69 6e 65 20 62 31 5f 68 65 69 67 68 74 20 33 32 0a 73 74 61 74 th.32\n#define.b1_height.32.stat
2ef60 69 63 20 75 6e 73 69 67 6e 65 64 20 63 68 61 72 20 71 31 5f 62 69 74 73 5b 5d 20 3d 20 7b 0a 20 ic.unsigned.char.q1_bits[].=.{..
2ef80 20 20 30 78 30 30 2c 20 30 78 66 38 2c 20 30 78 31 66 2c 20 30 78 30 30 2c 20 30 78 30 30 2c 20 ..0x00,.0xf8,.0x1f,.0x00,.0x00,.
2efa0 30 78 30 37 2c 20 30 78 65 30 2c 20 30 78 30 30 2c 20 30 78 63 30 2c 20 30 78 30 30 2c 20 30 78 0x07,.0xe0,.0x00,.0xc0,.0x00,.0x
2efc0 30 30 2c 20 30 78 30 33 2c 0a 20 20 20 30 78 32 30 2c 20 30 78 30 30 2c 20 30 78 30 30 2c 20 30 00,.0x03,....0x20,.0x00,.0x00,.0
2efe0 78 30 34 2c 20 30 78 31 30 2c 20 30 78 30 30 2c 20 30 78 30 30 2c 20 30 78 30 38 2c 20 30 78 30 x04,.0x10,.0x00,.0x00,.0x08,.0x0
2f000 38 2c 20 30 78 30 30 2c 20 30 78 30 30 2c 20 30 78 31 30 2c 0a 20 20 20 30 78 30 34 2c 20 30 78 8,.0x00,.0x00,.0x10,....0x04,.0x
2f020 30 30 2c 20 30 78 30 30 2c 20 30 78 32 30 2c 20 30 78 30 32 2c 20 30 78 30 30 2c 20 30 78 30 30 00,.0x00,.0x20,.0x02,.0x00,.0x00
2f040 2c 20 30 78 34 30 2c 20 30 78 30 32 2c 20 30 78 30 30 2c 20 30 78 30 30 2c 20 30 78 34 30 2c 0a ,.0x40,.0x02,.0x00,.0x00,.0x40,.
2f060 20 20 20 30 78 30 31 2c 20 30 78 30 30 2c 20 30 78 30 30 2c 20 30 78 38 30 2c 20 30 78 30 31 2c ...0x01,.0x00,.0x00,.0x80,.0x01,
2f080 20 30 78 30 30 2c 20 30 78 30 30 2c 20 30 78 38 30 2c 20 30 78 30 31 2c 20 30 78 30 30 2c 20 30 .0x00,.0x00,.0x80,.0x01,.0x00,.0
2f0a0 78 30 30 2c 20 30 78 38 30 2c 0a 20 20 20 30 78 30 31 2c 20 30 78 30 30 2c 20 30 78 30 30 2c 20 x00,.0x80,....0x01,.0x00,.0x00,.
2f0c0 30 78 38 30 2c 20 30 78 30 31 2c 20 30 78 30 30 2c 20 30 78 30 30 2c 20 30 78 38 30 2c 20 30 78 0x80,.0x01,.0x00,.0x00,.0x80,.0x
2f0e0 30 31 2c 20 30 78 30 30 2c 20 30 78 30 30 2c 20 30 78 38 30 2c 0a 20 20 20 30 78 30 31 2c 20 30 01,.0x00,.0x00,.0x80,....0x01,.0
2f100 78 30 30 2c 20 30 78 30 30 2c 20 30 78 38 30 2c 20 30 78 30 32 2c 20 30 78 30 30 2c 20 30 78 30 x00,.0x00,.0x80,.0x02,.0x00,.0x0
2f120 30 2c 20 30 78 34 30 2c 20 30 78 30 32 2c 20 30 78 30 30 2c 20 30 78 30 30 2c 20 30 78 34 30 2c 0,.0x40,.0x02,.0x00,.0x00,.0x40,
2f140 0a 20 20 20 30 78 30 34 2c 20 30 78 30 30 2c 20 30 78 30 30 2c 20 30 78 32 30 2c 20 30 78 30 38 ....0x04,.0x00,.0x00,.0x20,.0x08
2f160 2c 20 30 78 30 30 2c 20 30 78 30 30 2c 20 30 78 31 30 2c 20 30 78 31 30 2c 20 30 78 30 30 2c 20 ,.0x00,.0x00,.0x10,.0x10,.0x00,.
2f180 30 78 30 30 2c 20 30 78 30 38 2c 0a 20 20 20 30 78 36 30 2c 20 30 78 30 30 2c 20 30 78 30 30 2c 0x00,.0x08,....0x60,.0x00,.0x00,
2f1a0 20 30 78 30 34 2c 20 30 78 38 30 2c 20 30 78 30 33 2c 20 30 78 38 30 2c 20 30 78 30 33 2c 20 30 .0x04,.0x80,.0x03,.0x80,.0x03,.0
2f1c0 78 30 30 2c 20 30 78 30 63 2c 20 30 78 37 38 2c 20 30 78 30 30 2c 0a 20 20 20 30 78 30 30 2c 20 x00,.0x0c,.0x78,.0x00,....0x00,.
2f1e0 30 78 33 30 2c 20 30 78 30 34 2c 20 30 78 30 30 2c 20 30 78 30 30 2c 20 30 78 34 30 2c 20 30 78 0x30,.0x04,.0x00,.0x00,.0x40,.0x
2f200 30 34 2c 20 30 78 30 30 2c 20 30 78 30 30 2c 20 30 78 34 30 2c 20 30 78 30 34 2c 20 30 78 30 30 04,.0x00,.0x00,.0x40,.0x04,.0x00
2f220 2c 0a 20 20 20 30 78 30 30 2c 20 30 78 38 30 2c 20 30 78 30 34 2c 20 30 78 30 30 2c 20 30 78 30 ,....0x00,.0x80,.0x04,.0x00,.0x0
2f240 30 2c 20 30 78 30 30 2c 20 30 78 30 35 2c 20 30 78 30 30 2c 20 30 78 30 30 2c 20 30 78 30 30 2c 0,.0x00,.0x05,.0x00,.0x00,.0x00,
2f260 20 30 78 30 36 2c 20 30 78 30 30 2c 0a 20 20 20 30 78 30 30 2c 20 30 78 30 30 2c 20 30 78 30 30 .0x06,.0x00,....0x00,.0x00,.0x00
2f280 2c 20 30 78 30 30 2c 20 30 78 30 30 2c 20 30 78 30 30 2c 20 30 78 30 30 2c 20 30 78 30 30 7d 3b ,.0x00,.0x00,.0x00,.0x00,.0x00};
2f2a0 22 0a 69 6d 61 67 65 20 63 72 65 61 74 65 20 62 69 74 6d 61 70 20 3a 3a 74 6b 3a 3a 64 69 61 6c ".image.create.bitmap.::tk::dial
2f2c0 6f 67 3a 3a 62 32 20 2d 66 6f 72 65 67 72 6f 75 6e 64 20 77 68 69 74 65 20 5c 0a 2d 64 61 74 61 og::b2.-foreground.white.\.-data
2f2e0 20 22 23 64 65 66 69 6e 65 20 62 32 5f 77 69 64 74 68 20 33 32 5c 6e 23 64 65 66 69 6e 65 20 62 ."#define.b2_width.32\n#define.b
2f300 32 5f 68 65 69 67 68 74 20 33 32 0a 73 74 61 74 69 63 20 75 6e 73 69 67 6e 65 64 20 63 68 61 72 2_height.32.static.unsigned.char
2f320 20 62 32 5f 62 69 74 73 5b 5d 20 3d 20 7b 0a 20 20 20 30 78 30 30 2c 20 30 78 30 30 2c 20 30 78 .b2_bits[].=.{....0x00,.0x00,.0x
2f340 30 30 2c 20 30 78 30 30 2c 20 30 78 30 30 2c 20 30 78 66 38 2c 20 30 78 31 66 2c 20 30 78 30 30 00,.0x00,.0x00,.0xf8,.0x1f,.0x00
2f360 2c 20 30 78 30 30 2c 20 30 78 66 66 2c 20 30 78 66 66 2c 20 30 78 30 30 2c 0a 20 20 20 30 78 63 ,.0x00,.0xff,.0xff,.0x00,....0xc
2f380 30 2c 20 30 78 66 66 2c 20 30 78 66 66 2c 20 30 78 30 33 2c 20 30 78 65 30 2c 20 30 78 66 66 2c 0,.0xff,.0xff,.0x03,.0xe0,.0xff,
2f3a0 20 30 78 66 66 2c 20 30 78 30 37 2c 20 30 78 66 30 2c 20 30 78 66 66 2c 20 30 78 66 66 2c 20 30 .0xff,.0x07,.0xf0,.0xff,.0xff,.0
2f3c0 78 30 66 2c 0a 20 20 20 30 78 66 38 2c 20 30 78 66 66 2c 20 30 78 66 66 2c 20 30 78 31 66 2c 20 x0f,....0xf8,.0xff,.0xff,.0x1f,.
2f3e0 30 78 66 63 2c 20 30 78 66 66 2c 20 30 78 66 66 2c 20 30 78 33 66 2c 20 30 78 66 63 2c 20 30 78 0xfc,.0xff,.0xff,.0x3f,.0xfc,.0x
2f400 66 66 2c 20 30 78 66 66 2c 20 30 78 33 66 2c 0a 20 20 20 30 78 66 65 2c 20 30 78 66 66 2c 20 30 ff,.0xff,.0x3f,....0xfe,.0xff,.0
2f420 78 66 66 2c 20 30 78 37 66 2c 20 30 78 66 65 2c 20 30 78 66 66 2c 20 30 78 66 66 2c 20 30 78 37 xff,.0x7f,.0xfe,.0xff,.0xff,.0x7
2f440 66 2c 20 30 78 66 65 2c 20 30 78 66 66 2c 20 30 78 66 66 2c 20 30 78 37 66 2c 0a 20 20 20 30 78 f,.0xfe,.0xff,.0xff,.0x7f,....0x
2f460 66 65 2c 20 30 78 66 66 2c 20 30 78 66 66 2c 20 30 78 37 66 2c 20 30 78 66 65 2c 20 30 78 66 66 fe,.0xff,.0xff,.0x7f,.0xfe,.0xff
2f480 2c 20 30 78 66 66 2c 20 30 78 37 66 2c 20 30 78 66 65 2c 20 30 78 66 66 2c 20 30 78 66 66 2c 20 ,.0xff,.0x7f,.0xfe,.0xff,.0xff,.
2f4a0 30 78 37 66 2c 0a 20 20 20 30 78 66 65 2c 20 30 78 66 66 2c 20 30 78 66 66 2c 20 30 78 37 66 2c 0x7f,....0xfe,.0xff,.0xff,.0x7f,
2f4c0 20 30 78 66 63 2c 20 30 78 66 66 2c 20 30 78 66 66 2c 20 30 78 33 66 2c 20 30 78 66 63 2c 20 30 .0xfc,.0xff,.0xff,.0x3f,.0xfc,.0
2f4e0 78 66 66 2c 20 30 78 66 66 2c 20 30 78 33 66 2c 0a 20 20 20 30 78 66 38 2c 20 30 78 66 66 2c 20 xff,.0xff,.0x3f,....0xf8,.0xff,.
2f500 30 78 66 66 2c 20 30 78 31 66 2c 20 30 78 66 30 2c 20 30 78 66 66 2c 20 30 78 66 66 2c 20 30 78 0xff,.0x1f,.0xf0,.0xff,.0xff,.0x
2f520 30 66 2c 20 30 78 65 30 2c 20 30 78 66 66 2c 20 30 78 66 66 2c 20 30 78 30 37 2c 0a 20 20 20 30 0f,.0xe0,.0xff,.0xff,.0x07,....0
2f540 78 38 30 2c 20 30 78 66 66 2c 20 30 78 66 66 2c 20 30 78 30 33 2c 20 30 78 30 30 2c 20 30 78 66 x80,.0xff,.0xff,.0x03,.0x00,.0xf
2f560 63 2c 20 30 78 37 66 2c 20 30 78 30 30 2c 20 30 78 30 30 2c 20 30 78 66 30 2c 20 30 78 30 37 2c c,.0x7f,.0x00,.0x00,.0xf0,.0x07,
2f580 20 30 78 30 30 2c 0a 20 20 20 30 78 30 30 2c 20 30 78 63 30 2c 20 30 78 30 33 2c 20 30 78 30 30 .0x00,....0x00,.0xc0,.0x03,.0x00
2f5a0 2c 20 30 78 30 30 2c 20 30 78 38 30 2c 20 30 78 30 33 2c 20 30 78 30 30 2c 20 30 78 30 30 2c 20 ,.0x00,.0x80,.0x03,.0x00,.0x00,.
2f5c0 30 78 38 30 2c 20 30 78 30 33 2c 20 30 78 30 30 2c 0a 20 20 20 30 78 30 30 2c 20 30 78 30 30 2c 0x80,.0x03,.0x00,....0x00,.0x00,
2f5e0 20 30 78 30 33 2c 20 30 78 30 30 2c 20 30 78 30 30 2c 20 30 78 30 30 2c 20 30 78 30 32 2c 20 30 .0x03,.0x00,.0x00,.0x00,.0x02,.0
2f600 78 30 30 2c 20 30 78 30 30 2c 20 30 78 30 30 2c 20 30 78 30 30 2c 20 30 78 30 30 2c 0a 20 20 20 x00,.0x00,.0x00,.0x00,.0x00,....
2f620 30 78 30 30 2c 20 30 78 30 30 2c 20 30 78 30 30 2c 20 30 78 30 30 2c 20 30 78 30 30 2c 20 30 78 0x00,.0x00,.0x00,.0x00,.0x00,.0x
2f640 30 30 2c 20 30 78 30 30 2c 20 30 78 30 30 7d 3b 22 0a 69 6d 61 67 65 20 63 72 65 61 74 65 20 62 00,.0x00,.0x00};".image.create.b
2f660 69 74 6d 61 70 20 3a 3a 74 6b 3a 3a 64 69 61 6c 6f 67 3a 3a 71 20 2d 66 6f 72 65 67 72 6f 75 6e itmap.::tk::dialog::q.-foregroun
2f680 64 20 62 6c 75 65 20 5c 0a 2d 64 61 74 61 20 22 23 64 65 66 69 6e 65 20 71 5f 77 69 64 74 68 20 d.blue.\.-data."#define.q_width.
2f6a0 33 32 5c 6e 23 64 65 66 69 6e 65 20 71 5f 68 65 69 67 68 74 20 33 32 0a 73 74 61 74 69 63 20 75 32\n#define.q_height.32.static.u
2f6c0 6e 73 69 67 6e 65 64 20 63 68 61 72 20 71 5f 62 69 74 73 5b 5d 20 3d 20 7b 0a 20 20 20 30 78 30 nsigned.char.q_bits[].=.{....0x0
2f6e0 30 2c 20 30 78 30 30 2c 20 30 78 30 30 2c 20 30 78 30 30 2c 20 30 78 30 30 2c 20 30 78 30 30 2c 0,.0x00,.0x00,.0x00,.0x00,.0x00,
2f700 20 30 78 30 30 2c 20 30 78 30 30 2c 20 30 78 30 30 2c 20 30 78 30 30 2c 20 30 78 30 30 2c 20 30 .0x00,.0x00,.0x00,.0x00,.0x00,.0
2f720 78 30 30 2c 0a 20 20 20 30 78 30 30 2c 20 30 78 30 30 2c 20 30 78 30 30 2c 20 30 78 30 30 2c 20 x00,....0x00,.0x00,.0x00,.0x00,.
2f740 30 78 30 30 2c 20 30 78 30 30 2c 20 30 78 30 30 2c 20 30 78 30 30 2c 20 30 78 30 30 2c 20 30 78 0x00,.0x00,.0x00,.0x00,.0x00,.0x
2f760 65 30 2c 20 30 78 30 37 2c 20 30 78 30 30 2c 0a 20 20 20 30 78 30 30 2c 20 30 78 31 30 2c 20 30 e0,.0x07,.0x00,....0x00,.0x10,.0
2f780 78 30 66 2c 20 30 78 30 30 2c 20 30 78 30 30 2c 20 30 78 31 38 2c 20 30 78 31 65 2c 20 30 78 30 x0f,.0x00,.0x00,.0x18,.0x1e,.0x0
2f7a0 30 2c 20 30 78 30 30 2c 20 30 78 33 38 2c 20 30 78 31 65 2c 20 30 78 30 30 2c 0a 20 20 20 30 78 0,.0x00,.0x38,.0x1e,.0x00,....0x
2f7c0 30 30 2c 20 30 78 33 38 2c 20 30 78 31 65 2c 20 30 78 30 30 2c 20 30 78 30 30 2c 20 30 78 31 30 00,.0x38,.0x1e,.0x00,.0x00,.0x10
2f7e0 2c 20 30 78 30 66 2c 20 30 78 30 30 2c 20 30 78 30 30 2c 20 30 78 38 30 2c 20 30 78 30 37 2c 20 ,.0x0f,.0x00,.0x00,.0x80,.0x07,.
2f800 30 78 30 30 2c 0a 20 20 20 30 78 30 30 2c 20 30 78 63 30 2c 20 30 78 30 31 2c 20 30 78 30 30 2c 0x00,....0x00,.0xc0,.0x01,.0x00,
2f820 20 30 78 30 30 2c 20 30 78 63 30 2c 20 30 78 30 30 2c 20 30 78 30 30 2c 20 30 78 30 30 2c 20 30 .0x00,.0xc0,.0x00,.0x00,.0x00,.0
2f840 78 63 30 2c 20 30 78 30 30 2c 20 30 78 30 30 2c 0a 20 20 20 30 78 30 30 2c 20 30 78 30 30 2c 20 xc0,.0x00,.0x00,....0x00,.0x00,.
2f860 30 78 30 30 2c 20 30 78 30 30 2c 20 30 78 30 30 2c 20 30 78 63 30 2c 20 30 78 30 30 2c 20 30 78 0x00,.0x00,.0x00,.0xc0,.0x00,.0x
2f880 30 30 2c 20 30 78 30 30 2c 20 30 78 65 30 2c 20 30 78 30 31 2c 20 30 78 30 30 2c 0a 20 20 20 30 00,.0x00,.0xe0,.0x01,.0x00,....0
2f8a0 78 30 30 2c 20 30 78 65 30 2c 20 30 78 30 31 2c 20 30 78 30 30 2c 20 30 78 30 30 2c 20 30 78 63 x00,.0xe0,.0x01,.0x00,.0x00,.0xc
2f8c0 30 2c 20 30 78 30 30 2c 20 30 78 30 30 2c 20 30 78 30 30 2c 20 30 78 30 30 2c 20 30 78 30 30 2c 0,.0x00,.0x00,.0x00,.0x00,.0x00,
2f8e0 20 30 78 30 30 2c 0a 20 20 20 30 78 30 30 2c 20 30 78 30 30 2c 20 30 78 30 30 2c 20 30 78 30 30 .0x00,....0x00,.0x00,.0x00,.0x00
2f900 2c 20 30 78 30 30 2c 20 30 78 30 30 2c 20 30 78 30 30 2c 20 30 78 30 30 2c 20 30 78 30 30 2c 20 ,.0x00,.0x00,.0x00,.0x00,.0x00,.
2f920 30 78 30 30 2c 20 30 78 30 30 2c 20 30 78 30 30 2c 0a 20 20 20 30 78 30 30 2c 20 30 78 30 30 2c 0x00,.0x00,.0x00,....0x00,.0x00,
2f940 20 30 78 30 30 2c 20 30 78 30 30 2c 20 30 78 30 30 2c 20 30 78 30 30 2c 20 30 78 30 30 2c 20 30 .0x00,.0x00,.0x00,.0x00,.0x00,.0
2f960 78 30 30 2c 20 30 78 30 30 2c 20 30 78 30 30 2c 20 30 78 30 30 2c 20 30 78 30 30 2c 0a 20 20 20 x00,.0x00,.0x00,.0x00,.0x00,....
2f980 30 78 30 30 2c 20 30 78 30 30 2c 20 30 78 30 30 2c 20 30 78 30 30 2c 20 30 78 30 30 2c 20 30 78 0x00,.0x00,.0x00,.0x00,.0x00,.0x
2f9a0 30 30 2c 20 30 78 30 30 2c 20 30 78 30 30 2c 20 30 78 30 30 2c 20 30 78 30 30 2c 20 30 78 30 30 00,.0x00,.0x00,.0x00,.0x00,.0x00
2f9c0 2c 20 30 78 30 30 2c 0a 20 20 20 30 78 30 30 2c 20 30 78 30 30 2c 20 30 78 30 30 2c 20 30 78 30 ,.0x00,....0x00,.0x00,.0x00,.0x0
2f9e0 30 2c 20 30 78 30 30 2c 20 30 78 30 30 2c 20 30 78 30 30 2c 20 30 78 30 30 7d 3b 22 0a 69 6d 61 0,.0x00,.0x00,.0x00,.0x00};".ima
2fa00 67 65 20 63 72 65 61 74 65 20 62 69 74 6d 61 70 20 3a 3a 74 6b 3a 3a 64 69 61 6c 6f 67 3a 3a 69 ge.create.bitmap.::tk::dialog::i
2fa20 20 2d 66 6f 72 65 67 72 6f 75 6e 64 20 62 6c 75 65 20 5c 0a 2d 64 61 74 61 20 22 23 64 65 66 69 .-foreground.blue.\.-data."#defi
2fa40 6e 65 20 69 5f 77 69 64 74 68 20 33 32 5c 6e 23 64 65 66 69 6e 65 20 69 5f 68 65 69 67 68 74 20 ne.i_width.32\n#define.i_height.
2fa60 33 32 0a 73 74 61 74 69 63 20 75 6e 73 69 67 6e 65 64 20 63 68 61 72 20 69 5f 62 69 74 73 5b 5d 32.static.unsigned.char.i_bits[]
2fa80 20 3d 20 7b 0a 20 20 20 30 78 30 30 2c 20 30 78 30 30 2c 20 30 78 30 30 2c 20 30 78 30 30 2c 20 .=.{....0x00,.0x00,.0x00,.0x00,.
2faa0 30 78 30 30 2c 20 30 78 30 30 2c 20 30 78 30 30 2c 20 30 78 30 30 2c 20 30 78 30 30 2c 20 30 78 0x00,.0x00,.0x00,.0x00,.0x00,.0x
2fac0 30 30 2c 20 30 78 30 30 2c 20 30 78 30 30 2c 0a 20 20 20 30 78 30 30 2c 20 30 78 65 30 2c 20 30 00,.0x00,.0x00,....0x00,.0xe0,.0
2fae0 78 30 31 2c 20 30 78 30 30 2c 20 30 78 30 30 2c 20 30 78 66 30 2c 20 30 78 30 33 2c 20 30 78 30 x01,.0x00,.0x00,.0xf0,.0x03,.0x0
2fb00 30 2c 20 30 78 30 30 2c 20 30 78 66 30 2c 20 30 78 30 33 2c 20 30 78 30 30 2c 0a 20 20 20 30 78 0,.0x00,.0xf0,.0x03,.0x00,....0x
2fb20 30 30 2c 20 30 78 65 30 2c 20 30 78 30 31 2c 20 30 78 30 30 2c 20 30 78 30 30 2c 20 30 78 30 30 00,.0xe0,.0x01,.0x00,.0x00,.0x00
2fb40 2c 20 30 78 30 30 2c 20 30 78 30 30 2c 20 30 78 30 30 2c 20 30 78 30 30 2c 20 30 78 30 30 2c 20 ,.0x00,.0x00,.0x00,.0x00,.0x00,.
2fb60 30 78 30 30 2c 0a 20 20 20 30 78 30 30 2c 20 30 78 66 38 2c 20 30 78 30 33 2c 20 30 78 30 30 2c 0x00,....0x00,.0xf8,.0x03,.0x00,
2fb80 20 30 78 30 30 2c 20 30 78 66 30 2c 20 30 78 30 33 2c 20 30 78 30 30 2c 20 30 78 30 30 2c 20 30 .0x00,.0xf0,.0x03,.0x00,.0x00,.0
2fba0 78 65 30 2c 20 30 78 30 33 2c 20 30 78 30 30 2c 0a 20 20 20 30 78 30 30 2c 20 30 78 65 30 2c 20 xe0,.0x03,.0x00,....0x00,.0xe0,.
2fbc0 30 78 30 33 2c 20 30 78 30 30 2c 20 30 78 30 30 2c 20 30 78 65 30 2c 20 30 78 30 33 2c 20 30 78 0x03,.0x00,.0x00,.0xe0,.0x03,.0x
2fbe0 30 30 2c 20 30 78 30 30 2c 20 30 78 65 30 2c 20 30 78 30 33 2c 20 30 78 30 30 2c 0a 20 20 20 30 00,.0x00,.0xe0,.0x03,.0x00,....0
2fc00 78 30 30 2c 20 30 78 65 30 2c 20 30 78 30 33 2c 20 30 78 30 30 2c 20 30 78 30 30 2c 20 30 78 65 x00,.0xe0,.0x03,.0x00,.0x00,.0xe
2fc20 30 2c 20 30 78 30 33 2c 20 30 78 30 30 2c 20 30 78 30 30 2c 20 30 78 66 30 2c 20 30 78 30 37 2c 0,.0x03,.0x00,.0x00,.0xf0,.0x07,
2fc40 20 30 78 30 30 2c 0a 20 20 20 30 78 30 30 2c 20 30 78 66 38 2c 20 30 78 30 66 2c 20 30 78 30 30 .0x00,....0x00,.0xf8,.0x0f,.0x00
2fc60 2c 20 30 78 30 30 2c 20 30 78 30 30 2c 20 30 78 30 30 2c 20 30 78 30 30 2c 20 30 78 30 30 2c 20 ,.0x00,.0x00,.0x00,.0x00,.0x00,.
2fc80 30 78 30 30 2c 20 30 78 30 30 2c 20 30 78 30 30 2c 0a 20 20 20 30 78 30 30 2c 20 30 78 30 30 2c 0x00,.0x00,.0x00,....0x00,.0x00,
2fca0 20 30 78 30 30 2c 20 30 78 30 30 2c 20 30 78 30 30 2c 20 30 78 30 30 2c 20 30 78 30 30 2c 20 30 .0x00,.0x00,.0x00,.0x00,.0x00,.0
2fcc0 78 30 30 2c 20 30 78 30 30 2c 20 30 78 30 30 2c 20 30 78 30 30 2c 20 30 78 30 30 2c 0a 20 20 20 x00,.0x00,.0x00,.0x00,.0x00,....
2fce0 30 78 30 30 2c 20 30 78 30 30 2c 20 30 78 30 30 2c 20 30 78 30 30 2c 20 30 78 30 30 2c 20 30 78 0x00,.0x00,.0x00,.0x00,.0x00,.0x
2fd00 30 30 2c 20 30 78 30 30 2c 20 30 78 30 30 2c 20 30 78 30 30 2c 20 30 78 30 30 2c 20 30 78 30 30 00,.0x00,.0x00,.0x00,.0x00,.0x00
2fd20 2c 20 30 78 30 30 2c 0a 20 20 20 30 78 30 30 2c 20 30 78 30 30 2c 20 30 78 30 30 2c 20 30 78 30 ,.0x00,....0x00,.0x00,.0x00,.0x0
2fd40 30 2c 20 30 78 30 30 2c 20 30 78 30 30 2c 20 30 78 30 30 2c 20 30 78 30 30 2c 20 30 78 30 30 2c 0,.0x00,.0x00,.0x00,.0x00,.0x00,
2fd60 20 30 78 30 30 2c 20 30 78 30 30 2c 20 30 78 30 30 2c 0a 20 20 20 30 78 30 30 2c 20 30 78 30 30 .0x00,.0x00,.0x00,....0x00,.0x00
2fd80 2c 20 30 78 30 30 2c 20 30 78 30 30 2c 20 30 78 30 30 2c 20 30 78 30 30 2c 20 30 78 30 30 2c 20 ,.0x00,.0x00,.0x00,.0x00,.0x00,.
2fda0 30 78 30 30 7d 3b 22 0a 69 6d 61 67 65 20 63 72 65 61 74 65 20 62 69 74 6d 61 70 20 3a 3a 74 6b 0x00};".image.create.bitmap.::tk
2fdc0 3a 3a 64 69 61 6c 6f 67 3a 3a 77 31 20 2d 66 6f 72 65 67 72 6f 75 6e 64 20 62 6c 61 63 6b 20 5c ::dialog::w1.-foreground.black.\
2fde0 0a 2d 64 61 74 61 20 22 23 64 65 66 69 6e 65 20 77 31 5f 77 69 64 74 68 20 33 32 5c 6e 23 64 65 .-data."#define.w1_width.32\n#de
2fe00 66 69 6e 65 20 77 31 5f 68 65 69 67 68 74 20 33 32 0a 73 74 61 74 69 63 20 75 6e 73 69 67 6e 65 fine.w1_height.32.static.unsigne
2fe20 64 20 63 68 61 72 20 77 31 5f 62 69 74 73 5b 5d 20 3d 20 7b 0a 20 20 20 30 78 30 30 2c 20 30 78 d.char.w1_bits[].=.{....0x00,.0x
2fe40 38 30 2c 20 30 78 30 31 2c 20 30 78 30 30 2c 20 30 78 30 30 2c 20 30 78 34 30 2c 20 30 78 30 32 80,.0x01,.0x00,.0x00,.0x40,.0x02
2fe60 2c 20 30 78 30 30 2c 20 30 78 30 30 2c 20 30 78 32 30 2c 20 30 78 30 34 2c 20 30 78 30 30 2c 0a ,.0x00,.0x00,.0x20,.0x04,.0x00,.
2fe80 20 20 20 30 78 30 30 2c 20 30 78 31 30 2c 20 30 78 30 34 2c 20 30 78 30 30 2c 20 30 78 30 30 2c ...0x00,.0x10,.0x04,.0x00,.0x00,
2fea0 20 30 78 31 30 2c 20 30 78 30 38 2c 20 30 78 30 30 2c 20 30 78 30 30 2c 20 30 78 30 38 2c 20 30 .0x10,.0x08,.0x00,.0x00,.0x08,.0
2fec0 78 30 38 2c 20 30 78 30 30 2c 0a 20 20 20 30 78 30 30 2c 20 30 78 30 38 2c 20 30 78 31 30 2c 20 x08,.0x00,....0x00,.0x08,.0x10,.
2fee0 30 78 30 30 2c 20 30 78 30 30 2c 20 30 78 30 34 2c 20 30 78 31 30 2c 20 30 78 30 30 2c 20 30 78 0x00,.0x00,.0x04,.0x10,.0x00,.0x
2ff00 30 30 2c 20 30 78 30 34 2c 20 30 78 32 30 2c 20 30 78 30 30 2c 0a 20 20 20 30 78 30 30 2c 20 30 00,.0x04,.0x20,.0x00,....0x00,.0
2ff20 78 30 32 2c 20 30 78 32 30 2c 20 30 78 30 30 2c 20 30 78 30 30 2c 20 30 78 30 32 2c 20 30 78 34 x02,.0x20,.0x00,.0x00,.0x02,.0x4
2ff40 30 2c 20 30 78 30 30 2c 20 30 78 30 30 2c 20 30 78 30 31 2c 20 30 78 34 30 2c 20 30 78 30 30 2c 0,.0x00,.0x00,.0x01,.0x40,.0x00,
2ff60 0a 20 20 20 30 78 30 30 2c 20 30 78 30 31 2c 20 30 78 38 30 2c 20 30 78 30 30 2c 20 30 78 38 30 ....0x00,.0x01,.0x80,.0x00,.0x80
2ff80 2c 20 30 78 30 30 2c 20 30 78 38 30 2c 20 30 78 30 30 2c 20 30 78 38 30 2c 20 30 78 30 30 2c 20 ,.0x00,.0x80,.0x00,.0x80,.0x00,.
2ffa0 30 78 30 30 2c 20 30 78 30 31 2c 0a 20 20 20 30 78 34 30 2c 20 30 78 30 30 2c 20 30 78 30 30 2c 0x00,.0x01,....0x40,.0x00,.0x00,
2ffc0 20 30 78 30 31 2c 20 30 78 34 30 2c 20 30 78 30 30 2c 20 30 78 30 30 2c 20 30 78 30 32 2c 20 30 .0x01,.0x40,.0x00,.0x00,.0x02,.0
2ffe0 78 32 30 2c 20 30 78 30 30 2c 20 30 78 30 30 2c 20 30 78 30 32 2c 0a 20 20 20 30 78 32 30 2c 20 x20,.0x00,.0x00,.0x02,....0x20,.
30000 30 78 30 30 2c 20 30 78 30 30 2c 20 30 78 30 34 2c 20 30 78 31 30 2c 20 30 78 30 30 2c 20 30 78 0x00,.0x00,.0x04,.0x10,.0x00,.0x
30020 30 30 2c 20 30 78 30 34 2c 20 30 78 31 30 2c 20 30 78 30 30 2c 20 30 78 30 30 2c 20 30 78 30 38 00,.0x04,.0x10,.0x00,.0x00,.0x08
30040 2c 0a 20 20 20 30 78 30 38 2c 20 30 78 30 30 2c 20 30 78 30 30 2c 20 30 78 30 38 2c 20 30 78 30 ,....0x08,.0x00,.0x00,.0x08,.0x0
30060 38 2c 20 30 78 30 30 2c 20 30 78 30 30 2c 20 30 78 31 30 2c 20 30 78 30 34 2c 20 30 78 30 30 2c 8,.0x00,.0x00,.0x10,.0x04,.0x00,
30080 20 30 78 30 30 2c 20 30 78 31 30 2c 0a 20 20 20 30 78 30 34 2c 20 30 78 30 30 2c 20 30 78 30 30 .0x00,.0x10,....0x04,.0x00,.0x00
300a0 2c 20 30 78 32 30 2c 20 30 78 30 32 2c 20 30 78 30 30 2c 20 30 78 30 30 2c 20 30 78 32 30 2c 20 ,.0x20,.0x02,.0x00,.0x00,.0x20,.
300c0 30 78 30 31 2c 20 30 78 30 30 2c 20 30 78 30 30 2c 20 30 78 34 30 2c 0a 20 20 20 30 78 30 31 2c 0x01,.0x00,.0x00,.0x40,....0x01,
300e0 20 30 78 30 30 2c 20 30 78 30 30 2c 20 30 78 34 30 2c 20 30 78 30 31 2c 20 30 78 30 30 2c 20 30 .0x00,.0x00,.0x40,.0x01,.0x00,.0
30100 78 30 30 2c 20 30 78 34 30 2c 20 30 78 30 32 2c 20 30 78 30 30 2c 20 30 78 30 30 2c 20 30 78 32 x00,.0x40,.0x02,.0x00,.0x00,.0x2
30120 30 2c 0a 20 20 20 30 78 66 63 2c 20 30 78 66 66 2c 20 30 78 66 66 2c 20 30 78 31 66 2c 20 30 78 0,....0xfc,.0xff,.0xff,.0x1f,.0x
30140 30 30 2c 20 30 78 30 30 2c 20 30 78 30 30 2c 20 30 78 30 30 7d 3b 22 0a 69 6d 61 67 65 20 63 72 00,.0x00,.0x00,.0x00};".image.cr
30160 65 61 74 65 20 62 69 74 6d 61 70 20 3a 3a 74 6b 3a 3a 64 69 61 6c 6f 67 3a 3a 77 32 20 2d 66 6f eate.bitmap.::tk::dialog::w2.-fo
30180 72 65 67 72 6f 75 6e 64 20 79 65 6c 6c 6f 77 20 5c 0a 2d 64 61 74 61 20 22 23 64 65 66 69 6e 65 reground.yellow.\.-data."#define
301a0 20 77 32 5f 77 69 64 74 68 20 33 32 5c 6e 23 64 65 66 69 6e 65 20 77 32 5f 68 65 69 67 68 74 20 .w2_width.32\n#define.w2_height.
301c0 33 32 0a 73 74 61 74 69 63 20 75 6e 73 69 67 6e 65 64 20 63 68 61 72 20 77 32 5f 62 69 74 73 5b 32.static.unsigned.char.w2_bits[
301e0 5d 20 3d 20 7b 0a 20 20 20 30 78 30 30 2c 20 30 78 30 30 2c 20 30 78 30 30 2c 20 30 78 30 30 2c ].=.{....0x00,.0x00,.0x00,.0x00,
30200 20 30 78 30 30 2c 20 30 78 38 30 2c 20 30 78 30 31 2c 20 30 78 30 30 2c 20 30 78 30 30 2c 20 30 .0x00,.0x80,.0x01,.0x00,.0x00,.0
30220 78 63 30 2c 20 30 78 30 33 2c 20 30 78 30 30 2c 0a 20 20 20 30 78 30 30 2c 20 30 78 65 30 2c 20 xc0,.0x03,.0x00,....0x00,.0xe0,.
30240 30 78 30 33 2c 20 30 78 30 30 2c 20 30 78 30 30 2c 20 30 78 65 30 2c 20 30 78 30 37 2c 20 30 78 0x03,.0x00,.0x00,.0xe0,.0x07,.0x
30260 30 30 2c 20 30 78 30 30 2c 20 30 78 66 30 2c 20 30 78 30 37 2c 20 30 78 30 30 2c 0a 20 20 20 30 00,.0x00,.0xf0,.0x07,.0x00,....0
30280 78 30 30 2c 20 30 78 66 30 2c 20 30 78 30 66 2c 20 30 78 30 30 2c 20 30 78 30 30 2c 20 30 78 66 x00,.0xf0,.0x0f,.0x00,.0x00,.0xf
302a0 38 2c 20 30 78 30 66 2c 20 30 78 30 30 2c 20 30 78 30 30 2c 20 30 78 66 38 2c 20 30 78 31 66 2c 8,.0x0f,.0x00,.0x00,.0xf8,.0x1f,
302c0 20 30 78 30 30 2c 0a 20 20 20 30 78 30 30 2c 20 30 78 66 63 2c 20 30 78 31 66 2c 20 30 78 30 30 .0x00,....0x00,.0xfc,.0x1f,.0x00
302e0 2c 20 30 78 30 30 2c 20 30 78 66 63 2c 20 30 78 33 66 2c 20 30 78 30 30 2c 20 30 78 30 30 2c 20 ,.0x00,.0xfc,.0x3f,.0x00,.0x00,.
30300 30 78 66 65 2c 20 30 78 33 66 2c 20 30 78 30 30 2c 0a 20 20 20 30 78 30 30 2c 20 30 78 66 65 2c 0xfe,.0x3f,.0x00,....0x00,.0xfe,
30320 20 30 78 37 66 2c 20 30 78 30 30 2c 20 30 78 30 30 2c 20 30 78 66 66 2c 20 30 78 37 66 2c 20 30 .0x7f,.0x00,.0x00,.0xff,.0x7f,.0
30340 78 30 30 2c 20 30 78 30 30 2c 20 30 78 66 66 2c 20 30 78 66 66 2c 20 30 78 30 30 2c 0a 20 20 20 x00,.0x00,.0xff,.0xff,.0x00,....
30360 30 78 38 30 2c 20 30 78 66 66 2c 20 30 78 66 66 2c 20 30 78 30 30 2c 20 30 78 38 30 2c 20 30 78 0x80,.0xff,.0xff,.0x00,.0x80,.0x
30380 66 66 2c 20 30 78 66 66 2c 20 30 78 30 31 2c 20 30 78 63 30 2c 20 30 78 66 66 2c 20 30 78 66 66 ff,.0xff,.0x01,.0xc0,.0xff,.0xff
303a0 2c 20 30 78 30 31 2c 0a 20 20 20 30 78 63 30 2c 20 30 78 66 66 2c 20 30 78 66 66 2c 20 30 78 30 ,.0x01,....0xc0,.0xff,.0xff,.0x0
303c0 33 2c 20 30 78 65 30 2c 20 30 78 66 66 2c 20 30 78 66 66 2c 20 30 78 30 33 2c 20 30 78 65 30 2c 3,.0xe0,.0xff,.0xff,.0x03,.0xe0,
303e0 20 30 78 66 66 2c 20 30 78 66 66 2c 20 30 78 30 37 2c 0a 20 20 20 30 78 66 30 2c 20 30 78 66 66 .0xff,.0xff,.0x07,....0xf0,.0xff
30400 2c 20 30 78 66 66 2c 20 30 78 30 37 2c 20 30 78 66 30 2c 20 30 78 66 66 2c 20 30 78 66 66 2c 20 ,.0xff,.0x07,.0xf0,.0xff,.0xff,.
30420 30 78 30 66 2c 20 30 78 66 38 2c 20 30 78 66 66 2c 20 30 78 66 66 2c 20 30 78 30 66 2c 0a 20 20 0x0f,.0xf8,.0xff,.0xff,.0x0f,...
30440 20 30 78 66 38 2c 20 30 78 66 66 2c 20 30 78 66 66 2c 20 30 78 31 66 2c 20 30 78 66 63 2c 20 30 .0xf8,.0xff,.0xff,.0x1f,.0xfc,.0
30460 78 66 66 2c 20 30 78 66 66 2c 20 30 78 31 66 2c 20 30 78 66 65 2c 20 30 78 66 66 2c 20 30 78 66 xff,.0xff,.0x1f,.0xfe,.0xff,.0xf
30480 66 2c 20 30 78 33 66 2c 0a 20 20 20 30 78 66 65 2c 20 30 78 66 66 2c 20 30 78 66 66 2c 20 30 78 f,.0x3f,....0xfe,.0xff,.0xff,.0x
304a0 33 66 2c 20 30 78 66 65 2c 20 30 78 66 66 2c 20 30 78 66 66 2c 20 30 78 33 66 2c 20 30 78 66 63 3f,.0xfe,.0xff,.0xff,.0x3f,.0xfc
304c0 2c 20 30 78 66 66 2c 20 30 78 66 66 2c 20 30 78 31 66 2c 0a 20 20 20 30 78 30 30 2c 20 30 78 30 ,.0xff,.0xff,.0x1f,....0x00,.0x0
304e0 30 2c 20 30 78 30 30 2c 20 30 78 30 30 2c 20 30 78 30 30 2c 20 30 78 30 30 2c 20 30 78 30 30 2c 0,.0x00,.0x00,.0x00,.0x00,.0x00,
30500 20 30 78 30 30 7d 3b 22 0a 69 6d 61 67 65 20 63 72 65 61 74 65 20 62 69 74 6d 61 70 20 3a 3a 74 .0x00};".image.create.bitmap.::t
30520 6b 3a 3a 64 69 61 6c 6f 67 3a 3a 77 33 20 2d 66 6f 72 65 67 72 6f 75 6e 64 20 62 6c 61 63 6b 20 k::dialog::w3.-foreground.black.
30540 5c 0a 2d 64 61 74 61 20 22 23 64 65 66 69 6e 65 20 77 33 5f 77 69 64 74 68 20 33 32 5c 6e 23 64 \.-data."#define.w3_width.32\n#d
30560 65 66 69 6e 65 20 77 33 5f 68 65 69 67 68 74 20 33 32 0a 73 74 61 74 69 63 20 75 6e 73 69 67 6e efine.w3_height.32.static.unsign
30580 65 64 20 63 68 61 72 20 77 33 5f 62 69 74 73 5b 5d 20 3d 20 7b 0a 20 20 20 30 78 30 30 2c 20 30 ed.char.w3_bits[].=.{....0x00,.0
305a0 78 30 30 2c 20 30 78 30 30 2c 20 30 78 30 30 2c 20 30 78 30 30 2c 20 30 78 30 30 2c 20 30 78 30 x00,.0x00,.0x00,.0x00,.0x00,.0x0
305c0 30 2c 20 30 78 30 30 2c 20 30 78 30 30 2c 20 30 78 30 30 2c 20 30 78 30 30 2c 20 30 78 30 30 2c 0,.0x00,.0x00,.0x00,.0x00,.0x00,
305e0 0a 20 20 20 30 78 30 30 2c 20 30 78 30 30 2c 20 30 78 30 30 2c 20 30 78 30 30 2c 20 30 78 30 30 ....0x00,.0x00,.0x00,.0x00,.0x00
30600 2c 20 30 78 30 30 2c 20 30 78 30 30 2c 20 30 78 30 30 2c 20 30 78 30 30 2c 20 30 78 30 30 2c 20 ,.0x00,.0x00,.0x00,.0x00,.0x00,.
30620 30 78 30 30 2c 20 30 78 30 30 2c 0a 20 20 20 30 78 30 30 2c 20 30 78 30 30 2c 20 30 78 30 30 2c 0x00,.0x00,....0x00,.0x00,.0x00,
30640 20 30 78 30 30 2c 20 30 78 30 30 2c 20 30 78 30 30 2c 20 30 78 30 30 2c 20 30 78 30 30 2c 20 30 .0x00,.0x00,.0x00,.0x00,.0x00,.0
30660 78 30 30 2c 20 30 78 30 30 2c 20 30 78 30 30 2c 20 30 78 30 30 2c 0a 20 20 20 30 78 30 30 2c 20 x00,.0x00,.0x00,.0x00,....0x00,.
30680 30 78 63 30 2c 20 30 78 30 33 2c 20 30 78 30 30 2c 20 30 78 30 30 2c 20 30 78 65 30 2c 20 30 78 0xc0,.0x03,.0x00,.0x00,.0xe0,.0x
306a0 30 37 2c 20 30 78 30 30 2c 20 30 78 30 30 2c 20 30 78 65 30 2c 20 30 78 30 37 2c 20 30 78 30 30 07,.0x00,.0x00,.0xe0,.0x07,.0x00
306c0 2c 0a 20 20 20 30 78 30 30 2c 20 30 78 65 30 2c 20 30 78 30 37 2c 20 30 78 30 30 2c 20 30 78 30 ,....0x00,.0xe0,.0x07,.0x00,.0x0
306e0 30 2c 20 30 78 65 30 2c 20 30 78 30 37 2c 20 30 78 30 30 2c 20 30 78 30 30 2c 20 30 78 65 30 2c 0,.0xe0,.0x07,.0x00,.0x00,.0xe0,
30700 20 30 78 30 37 2c 20 30 78 30 30 2c 0a 20 20 20 30 78 30 30 2c 20 30 78 63 30 2c 20 30 78 30 33 .0x07,.0x00,....0x00,.0xc0,.0x03
30720 2c 20 30 78 30 30 2c 20 30 78 30 30 2c 20 30 78 63 30 2c 20 30 78 30 33 2c 20 30 78 30 30 2c 20 ,.0x00,.0x00,.0xc0,.0x03,.0x00,.
30740 30 78 30 30 2c 20 30 78 63 30 2c 20 30 78 30 33 2c 20 30 78 30 30 2c 0a 20 20 20 30 78 30 30 2c 0x00,.0xc0,.0x03,.0x00,....0x00,
30760 20 30 78 38 30 2c 20 30 78 30 31 2c 20 30 78 30 30 2c 20 30 78 30 30 2c 20 30 78 38 30 2c 20 30 .0x80,.0x01,.0x00,.0x00,.0x80,.0
30780 78 30 31 2c 20 30 78 30 30 2c 20 30 78 30 30 2c 20 30 78 38 30 2c 20 30 78 30 31 2c 20 30 78 30 x01,.0x00,.0x00,.0x80,.0x01,.0x0
307a0 30 2c 0a 20 20 20 30 78 30 30 2c 20 30 78 30 30 2c 20 30 78 30 30 2c 20 30 78 30 30 2c 20 30 78 0,....0x00,.0x00,.0x00,.0x00,.0x
307c0 30 30 2c 20 30 78 38 30 2c 20 30 78 30 31 2c 20 30 78 30 30 2c 20 30 78 30 30 2c 20 30 78 63 30 00,.0x80,.0x01,.0x00,.0x00,.0xc0
307e0 2c 20 30 78 30 33 2c 20 30 78 30 30 2c 0a 20 20 20 30 78 30 30 2c 20 30 78 63 30 2c 20 30 78 30 ,.0x03,.0x00,....0x00,.0xc0,.0x0
30800 33 2c 20 30 78 30 30 2c 20 30 78 30 30 2c 20 30 78 38 30 2c 20 30 78 30 31 2c 20 30 78 30 30 2c 3,.0x00,.0x00,.0x80,.0x01,.0x00,
30820 20 30 78 30 30 2c 20 30 78 30 30 2c 20 30 78 30 30 2c 20 30 78 30 30 2c 0a 20 20 20 30 78 30 30 .0x00,.0x00,.0x00,.0x00,....0x00
30840 2c 20 30 78 30 30 2c 20 30 78 30 30 2c 20 30 78 30 30 2c 20 30 78 30 30 2c 20 30 78 30 30 2c 20 ,.0x00,.0x00,.0x00,.0x00,.0x00,.
30860 30 78 30 30 2c 20 30 78 30 30 2c 20 30 78 30 30 2c 20 30 78 30 30 2c 20 30 78 30 30 2c 20 30 78 0x00,.0x00,.0x00,.0x00,.0x00,.0x
30880 30 30 2c 0a 20 20 20 30 78 30 30 2c 20 30 78 30 30 2c 20 30 78 30 30 2c 20 30 78 30 30 2c 20 30 00,....0x00,.0x00,.0x00,.0x00,.0
308a0 78 30 30 2c 20 30 78 30 30 2c 20 30 78 30 30 2c 20 30 78 30 30 7d 3b 22 0a 0a 23 20 74 6b 4d 65 x00,.0x00,.0x00,.0x00};"..#.tkMe
308c0 73 73 61 67 65 42 6f 78 20 2d 2d 0a 23 0a 23 09 50 6f 70 73 20 75 70 20 61 20 6d 65 73 73 61 67 ssageBox.--.#.#.Pops.up.a.messag
308e0 65 62 6f 78 20 77 69 74 68 20 61 6e 20 61 70 70 6c 69 63 61 74 69 6f 6e 2d 73 75 70 70 6c 69 65 ebox.with.an.application-supplie
30900 64 20 6d 65 73 73 61 67 65 20 77 69 74 68 0a 23 09 61 6e 20 69 63 6f 6e 20 61 6e 64 20 61 20 6c d.message.with.#.an.icon.and.a.l
30920 69 73 74 20 6f 66 20 62 75 74 74 6f 6e 73 2e 20 54 68 69 73 20 70 72 6f 63 65 64 75 72 65 20 77 ist.of.buttons..This.procedure.w
30940 69 6c 6c 20 62 65 20 63 61 6c 6c 65 64 0a 23 09 62 79 20 74 6b 5f 6d 65 73 73 61 67 65 42 6f 78 ill.be.called.#.by.tk_messageBox
30960 20 69 66 20 74 68 65 20 70 6c 61 74 66 6f 72 6d 20 64 6f 65 73 20 6e 6f 74 20 68 61 76 65 20 6e .if.the.platform.does.not.have.n
30980 61 74 69 76 65 0a 23 09 6d 65 73 73 61 67 65 62 6f 78 20 73 75 70 70 6f 72 74 2c 20 6f 72 20 69 ative.#.messagebox.support,.or.i
309a0 66 20 74 68 65 20 70 61 72 74 69 63 75 6c 61 72 20 74 79 70 65 20 6f 66 20 6d 65 73 73 61 67 65 f.the.particular.type.of.message
309c0 62 6f 78 20 69 73 0a 23 09 6e 6f 74 20 73 75 70 70 6f 72 74 65 64 20 6e 61 74 69 76 65 6c 79 2e box.is.#.not.supported.natively.
309e0 0a 23 0a 23 09 43 6f 6c 6f 72 20 69 63 6f 6e 73 20 61 72 65 20 75 73 65 64 20 6f 6e 20 55 6e 69 .#.#.Color.icons.are.used.on.Uni
30a00 78 20 64 69 73 70 6c 61 79 73 20 74 68 61 74 20 68 61 76 65 20 61 20 63 6f 6c 6f 72 0a 23 09 64 x.displays.that.have.a.color.#.d
30a20 65 70 74 68 20 6f 66 20 34 20 6f 72 20 6d 6f 72 65 20 61 6e 64 20 24 74 6b 5f 73 74 72 69 63 74 epth.of.4.or.more.and.$tk_strict
30a40 4d 6f 74 69 66 20 69 73 20 6e 6f 74 20 6f 6e 2e 0a 23 0a 23 09 54 68 69 73 20 70 72 6f 63 65 64 Motif.is.not.on..#.#.This.proced
30a60 75 72 65 20 69 73 20 61 20 70 72 69 76 61 74 65 20 70 72 6f 63 65 64 75 72 65 20 73 68 6f 75 6c ure.is.a.private.procedure.shoul
30a80 64 6e 27 74 20 62 65 20 63 61 6c 6c 65 64 0a 23 09 64 69 72 65 63 74 6c 79 2e 20 43 61 6c 6c 20 dn't.be.called.#.directly..Call.
30aa0 74 6b 5f 6d 65 73 73 61 67 65 42 6f 78 20 69 6e 73 74 65 61 64 2e 0a 23 0a 23 09 53 65 65 20 74 tk_messageBox.instead..#.#.See.t
30ac0 68 65 20 75 73 65 72 20 64 6f 63 75 6d 65 6e 74 61 74 69 6f 6e 20 66 6f 72 20 64 65 74 61 69 6c he.user.documentation.for.detail
30ae0 73 20 6f 6e 20 77 68 61 74 20 74 6b 5f 6d 65 73 73 61 67 65 42 6f 78 20 64 6f 65 73 2e 0a 23 0a s.on.what.tk_messageBox.does..#.
30b00 70 72 6f 63 20 74 6b 4d 65 73 73 61 67 65 42 6f 78 20 7b 61 72 67 73 7d 20 7b 0a 20 20 20 20 67 proc.tkMessageBox.{args}.{.....g
30b20 6c 6f 62 61 6c 20 74 6b 50 72 69 76 20 74 63 6c 5f 70 6c 61 74 66 6f 72 6d 20 74 6b 5f 73 74 72 lobal.tkPriv.tcl_platform.tk_str
30b40 69 63 74 4d 6f 74 69 66 0a 0a 20 20 20 20 73 65 74 20 77 20 74 6b 50 72 69 76 4d 73 67 42 6f 78 ictMotif......set.w.tkPrivMsgBox
30b60 0a 20 20 20 20 75 70 76 61 72 20 23 30 20 24 77 20 64 61 74 61 0a 0a 20 20 20 20 23 0a 20 20 20 .....upvar.#0.$w.data......#....
30b80 20 23 20 54 68 65 20 64 65 66 61 75 6c 74 20 76 61 6c 75 65 20 6f 66 20 74 68 65 20 74 69 74 6c .#.The.default.value.of.the.titl
30ba0 65 20 69 73 20 73 70 61 63 65 20 28 22 20 22 29 20 6e 6f 74 20 74 68 65 20 65 6d 70 74 79 20 73 e.is.space.(".").not.the.empty.s
30bc0 74 72 69 6e 67 0a 20 20 20 20 23 20 62 65 63 61 75 73 65 20 66 6f 72 20 73 6f 6d 65 20 77 69 6e tring.....#.because.for.some.win
30be0 64 6f 77 20 6d 61 6e 61 67 65 72 73 2c 20 61 20 0a 20 20 20 20 23 09 09 77 6d 20 74 69 74 6c 65 dow.managers,.a......#..wm.title
30c00 20 2e 66 6f 6f 20 22 22 0a 20 20 20 20 23 20 63 61 75 73 65 73 20 74 68 65 20 77 69 6e 64 6f 77 ..foo."".....#.causes.the.window
30c20 20 74 69 74 6c 65 20 74 6f 20 62 65 20 22 66 6f 6f 22 20 69 6e 73 74 65 61 64 20 6f 66 20 74 68 .title.to.be."foo".instead.of.th
30c40 65 20 65 6d 70 74 79 20 73 74 72 69 6e 67 2e 0a 20 20 20 20 23 0a 20 20 20 20 73 65 74 20 73 70 e.empty.string......#.....set.sp
30c60 65 63 73 20 7b 0a 09 7b 2d 64 65 66 61 75 6c 74 20 22 22 20 22 22 20 22 22 7d 0a 20 20 20 20 20 ecs.{..{-default.""."".""}......
30c80 20 20 20 7b 2d 69 63 6f 6e 20 22 22 20 22 22 20 22 69 6e 66 6f 22 7d 0a 20 20 20 20 20 20 20 20 ...{-icon."".""."info"}.........
30ca0 7b 2d 6d 65 73 73 61 67 65 20 22 22 20 22 22 20 22 22 7d 0a 20 20 20 20 20 20 20 20 7b 2d 70 61 {-message.""."".""}.........{-pa
30cc0 72 65 6e 74 20 22 22 20 22 22 20 2e 7d 0a 20 20 20 20 20 20 20 20 7b 2d 74 69 74 6c 65 20 22 22 rent."".""..}.........{-title.""
30ce0 20 22 22 20 22 20 22 7d 0a 20 20 20 20 20 20 20 20 7b 2d 74 79 70 65 20 22 22 20 22 22 20 22 6f .""."."}.........{-type."".""."o
30d00 6b 22 7d 0a 20 20 20 20 7d 0a 0a 20 20 20 20 74 63 6c 50 61 72 73 65 43 6f 6e 66 69 67 53 70 65 k"}.....}......tclParseConfigSpe
30d20 63 20 24 77 20 24 73 70 65 63 73 20 22 22 20 24 61 72 67 73 0a 0a 20 20 20 20 69 66 20 7b 5b 6c c.$w.$specs."".$args......if.{[l
30d40 73 65 61 72 63 68 20 2d 65 78 61 63 74 20 7b 69 6e 66 6f 20 77 61 72 6e 69 6e 67 20 65 72 72 6f search.-exact.{info.warning.erro
30d60 72 20 71 75 65 73 74 69 6f 6e 7d 20 24 64 61 74 61 28 2d 69 63 6f 6e 29 5d 20 3d 3d 20 2d 31 7d r.question}.$data(-icon)].==.-1}
30d80 20 7b 0a 09 65 72 72 6f 72 20 22 62 61 64 20 2d 69 63 6f 6e 20 76 61 6c 75 65 20 5c 22 24 64 61 .{..error."bad.-icon.value.\"$da
30da0 74 61 28 2d 69 63 6f 6e 29 5c 22 3a 20 6d 75 73 74 20 62 65 20 65 72 72 6f 72 2c 20 69 6e 66 6f ta(-icon)\":.must.be.error,.info
30dc0 2c 20 71 75 65 73 74 69 6f 6e 2c 20 6f 72 20 77 61 72 6e 69 6e 67 22 0a 20 20 20 20 7d 0a 20 20 ,.question,.or.warning".....}...
30de0 20 20 69 66 20 7b 5b 73 74 72 69 6e 67 20 65 71 75 61 6c 20 24 74 63 6c 5f 70 6c 61 74 66 6f 72 ..if.{[string.equal.$tcl_platfor
30e00 6d 28 70 6c 61 74 66 6f 72 6d 29 20 22 6d 61 63 69 6e 74 6f 73 68 22 5d 7d 20 7b 0a 09 73 77 69 m(platform)."macintosh"]}.{..swi
30e20 74 63 68 20 2d 2d 20 24 64 61 74 61 28 2d 69 63 6f 6e 29 20 7b 0a 09 20 20 20 20 22 65 72 72 6f tch.--.$data(-icon).{......"erro
30e40 72 22 20 20 20 20 20 7b 73 65 74 20 64 61 74 61 28 2d 69 63 6f 6e 29 20 22 73 74 6f 70 22 7d 0a r".....{set.data(-icon)."stop"}.
30e60 09 20 20 20 20 22 77 61 72 6e 69 6e 67 22 20 20 20 7b 73 65 74 20 64 61 74 61 28 2d 69 63 6f 6e ....."warning"...{set.data(-icon
30e80 29 20 22 63 61 75 74 69 6f 6e 22 7d 0a 09 20 20 20 20 22 69 6e 66 6f 22 20 20 20 20 20 20 7b 73 )."caution"}......"info"......{s
30ea0 65 74 20 64 61 74 61 28 2d 69 63 6f 6e 29 20 22 6e 6f 74 65 22 7d 0a 09 7d 0a 20 20 20 20 7d 0a et.data(-icon)."note"}..}.....}.
30ec0 0a 20 20 20 20 69 66 20 7b 21 5b 77 69 6e 66 6f 20 65 78 69 73 74 73 20 24 64 61 74 61 28 2d 70 .....if.{![winfo.exists.$data(-p
30ee0 61 72 65 6e 74 29 5d 7d 20 7b 0a 09 65 72 72 6f 72 20 22 62 61 64 20 77 69 6e 64 6f 77 20 70 61 arent)]}.{..error."bad.window.pa
30f00 74 68 20 6e 61 6d 65 20 5c 22 24 64 61 74 61 28 2d 70 61 72 65 6e 74 29 5c 22 22 0a 20 20 20 20 th.name.\"$data(-parent)\"".....
30f20 7d 0a 0a 20 20 20 20 73 77 69 74 63 68 20 2d 2d 20 24 64 61 74 61 28 2d 74 79 70 65 29 20 7b 0a }......switch.--.$data(-type).{.
30f40 09 61 62 6f 72 74 72 65 74 72 79 69 67 6e 6f 72 65 20 7b 0a 09 20 20 20 20 73 65 74 20 62 75 74 .abortretryignore.{......set.but
30f60 74 6f 6e 73 20 7b 0a 09 09 7b 61 62 6f 72 74 20 20 2d 77 69 64 74 68 20 36 20 2d 74 65 78 74 20 tons.{...{abort..-width.6.-text.
30f80 41 62 6f 72 74 20 2d 75 6e 64 65 72 20 30 7d 0a 09 09 7b 72 65 74 72 79 20 20 2d 77 69 64 74 68 Abort.-under.0}...{retry..-width
30fa0 20 36 20 2d 74 65 78 74 20 52 65 74 72 79 20 2d 75 6e 64 65 72 20 30 7d 0a 09 09 7b 69 67 6e 6f .6.-text.Retry.-under.0}...{igno
30fc0 72 65 20 2d 77 69 64 74 68 20 36 20 2d 74 65 78 74 20 49 67 6e 6f 72 65 20 2d 75 6e 64 65 72 20 re.-width.6.-text.Ignore.-under.
30fe0 30 7d 0a 09 20 20 20 20 7d 0a 09 7d 0a 09 6f 6b 20 7b 0a 09 20 20 20 20 73 65 74 20 62 75 74 74 0}......}..}..ok.{......set.butt
31000 6f 6e 73 20 7b 0a 09 09 7b 6f 6b 20 2d 77 69 64 74 68 20 36 20 2d 74 65 78 74 20 4f 4b 20 2d 75 ons.{...{ok.-width.6.-text.OK.-u
31020 6e 64 65 72 20 30 7d 0a 09 20 20 20 20 7d 0a 09 20 20 20 20 69 66 20 7b 5b 73 74 72 69 6e 67 20 nder.0}......}......if.{[string.
31040 65 71 75 61 6c 20 24 64 61 74 61 28 2d 64 65 66 61 75 6c 74 29 20 22 22 5d 7d 20 7b 0a 09 09 73 equal.$data(-default).""]}.{...s
31060 65 74 20 64 61 74 61 28 2d 64 65 66 61 75 6c 74 29 20 22 6f 6b 22 0a 09 20 20 20 20 7d 0a 09 7d et.data(-default)."ok"......}..}
31080 0a 09 6f 6b 63 61 6e 63 65 6c 20 7b 0a 09 20 20 20 20 73 65 74 20 62 75 74 74 6f 6e 73 20 7b 0a ..okcancel.{......set.buttons.{.
310a0 09 09 7b 6f 6b 20 20 20 20 20 2d 77 69 64 74 68 20 36 20 2d 74 65 78 74 20 4f 4b 20 20 20 20 20 ..{ok.....-width.6.-text.OK.....
310c0 2d 75 6e 64 65 72 20 30 7d 0a 09 09 7b 63 61 6e 63 65 6c 20 2d 77 69 64 74 68 20 36 20 2d 74 65 -under.0}...{cancel.-width.6.-te
310e0 78 74 20 43 61 6e 63 65 6c 20 2d 75 6e 64 65 72 20 30 7d 0a 09 20 20 20 20 7d 0a 09 7d 0a 09 72 xt.Cancel.-under.0}......}..}..r
31100 65 74 72 79 63 61 6e 63 65 6c 20 7b 0a 09 20 20 20 20 73 65 74 20 62 75 74 74 6f 6e 73 20 7b 0a etrycancel.{......set.buttons.{.
31120 09 09 7b 72 65 74 72 79 20 20 2d 77 69 64 74 68 20 36 20 2d 74 65 78 74 20 52 65 74 72 79 20 20 ..{retry..-width.6.-text.Retry..
31140 2d 75 6e 64 65 72 20 30 7d 0a 09 09 7b 63 61 6e 63 65 6c 20 2d 77 69 64 74 68 20 36 20 2d 74 65 -under.0}...{cancel.-width.6.-te
31160 78 74 20 43 61 6e 63 65 6c 20 2d 75 6e 64 65 72 20 30 7d 0a 09 20 20 20 20 7d 0a 09 7d 0a 09 79 xt.Cancel.-under.0}......}..}..y
31180 65 73 6e 6f 20 7b 0a 09 20 20 20 20 73 65 74 20 62 75 74 74 6f 6e 73 20 7b 0a 09 09 7b 79 65 73 esno.{......set.buttons.{...{yes
311a0 20 20 20 20 2d 77 69 64 74 68 20 36 20 2d 74 65 78 74 20 59 65 73 20 2d 75 6e 64 65 72 20 30 7d ....-width.6.-text.Yes.-under.0}
311c0 0a 09 09 7b 6e 6f 20 20 20 20 20 2d 77 69 64 74 68 20 36 20 2d 74 65 78 74 20 4e 6f 20 20 2d 75 ...{no.....-width.6.-text.No..-u
311e0 6e 64 65 72 20 30 7d 0a 09 20 20 20 20 7d 0a 09 7d 0a 09 79 65 73 6e 6f 63 61 6e 63 65 6c 20 7b nder.0}......}..}..yesnocancel.{
31200 0a 09 20 20 20 20 73 65 74 20 62 75 74 74 6f 6e 73 20 7b 0a 09 09 7b 79 65 73 20 20 20 20 2d 77 ......set.buttons.{...{yes....-w
31220 69 64 74 68 20 36 20 2d 74 65 78 74 20 59 65 73 20 2d 75 6e 64 65 72 20 30 7d 0a 09 09 7b 6e 6f idth.6.-text.Yes.-under.0}...{no
31240 20 20 20 20 20 2d 77 69 64 74 68 20 36 20 2d 74 65 78 74 20 4e 6f 20 20 2d 75 6e 64 65 72 20 30 .....-width.6.-text.No..-under.0
31260 7d 0a 09 09 7b 63 61 6e 63 65 6c 20 2d 77 69 64 74 68 20 36 20 2d 74 65 78 74 20 43 61 6e 63 65 }...{cancel.-width.6.-text.Cance
31280 6c 20 2d 75 6e 64 65 72 20 30 7d 0a 09 20 20 20 20 7d 0a 09 7d 0a 09 64 65 66 61 75 6c 74 20 7b l.-under.0}......}..}..default.{
312a0 0a 09 20 20 20 20 65 72 72 6f 72 20 22 62 61 64 20 2d 74 79 70 65 20 76 61 6c 75 65 20 5c 22 24 ......error."bad.-type.value.\"$
312c0 64 61 74 61 28 2d 74 79 70 65 29 5c 22 3a 20 6d 75 73 74 20 62 65 20 61 62 6f 72 74 72 65 74 72 data(-type)\":.must.be.abortretr
312e0 79 69 67 6e 6f 72 65 2c 20 6f 6b 2c 20 6f 6b 63 61 6e 63 65 6c 2c 20 72 65 74 72 79 63 61 6e 63 yignore,.ok,.okcancel,.retrycanc
31300 65 6c 2c 20 79 65 73 6e 6f 2c 20 6f 72 20 79 65 73 6e 6f 63 61 6e 63 65 6c 22 0a 09 7d 0a 20 20 el,.yesno,.or.yesnocancel"..}...
31320 20 20 7d 0a 0a 20 20 20 20 69 66 20 7b 5b 73 74 72 69 6e 67 20 63 6f 6d 70 61 72 65 20 24 64 61 ..}......if.{[string.compare.$da
31340 74 61 28 2d 64 65 66 61 75 6c 74 29 20 22 22 5d 7d 20 7b 0a 09 73 65 74 20 76 61 6c 69 64 20 30 ta(-default).""]}.{..set.valid.0
31360 0a 09 66 6f 72 65 61 63 68 20 62 74 6e 20 24 62 75 74 74 6f 6e 73 20 7b 0a 09 20 20 20 20 69 66 ..foreach.btn.$buttons.{......if
31380 20 7b 5b 73 74 72 69 6e 67 20 65 71 75 61 6c 20 5b 6c 69 6e 64 65 78 20 24 62 74 6e 20 30 5d 20 .{[string.equal.[lindex.$btn.0].
313a0 24 64 61 74 61 28 2d 64 65 66 61 75 6c 74 29 5d 7d 20 7b 0a 09 09 73 65 74 20 76 61 6c 69 64 20 $data(-default)]}.{...set.valid.
313c0 31 0a 09 09 62 72 65 61 6b 0a 09 20 20 20 20 7d 0a 09 7d 0a 09 69 66 20 7b 21 24 76 61 6c 69 64 1...break......}..}..if.{!$valid
313e0 7d 20 7b 0a 09 20 20 20 20 65 72 72 6f 72 20 22 69 6e 76 61 6c 69 64 20 64 65 66 61 75 6c 74 20 }.{......error."invalid.default.
31400 62 75 74 74 6f 6e 20 5c 22 24 64 61 74 61 28 2d 64 65 66 61 75 6c 74 29 5c 22 22 0a 09 7d 0a 20 button.\"$data(-default)\""..}..
31420 20 20 20 7d 0a 0a 20 20 20 20 23 20 32 2e 20 53 65 74 20 74 68 65 20 64 69 61 6c 6f 67 20 74 6f ...}......#.2..Set.the.dialog.to
31440 20 62 65 20 61 20 63 68 69 6c 64 20 77 69 6e 64 6f 77 20 6f 66 20 24 70 61 72 65 6e 74 0a 20 20 .be.a.child.window.of.$parent...
31460 20 20 23 0a 20 20 20 20 23 0a 20 20 20 20 69 66 20 7b 5b 73 74 72 69 6e 67 20 63 6f 6d 70 61 72 ..#.....#.....if.{[string.compar
31480 65 20 24 64 61 74 61 28 2d 70 61 72 65 6e 74 29 20 2e 5d 7d 20 7b 0a 09 73 65 74 20 77 20 24 64 e.$data(-parent)..]}.{..set.w.$d
314a0 61 74 61 28 2d 70 61 72 65 6e 74 29 2e 5f 5f 74 6b 5f 5f 6d 65 73 73 61 67 65 62 6f 78 0a 20 20 ata(-parent).__tk__messagebox...
314c0 20 20 7d 20 65 6c 73 65 20 7b 0a 09 73 65 74 20 77 20 2e 5f 5f 74 6b 5f 5f 6d 65 73 73 61 67 65 ..}.else.{..set.w..__tk__message
314e0 62 6f 78 0a 20 20 20 20 7d 0a 0a 20 20 20 20 23 20 33 2e 20 43 72 65 61 74 65 20 74 68 65 20 74 box.....}......#.3..Create.the.t
31500 6f 70 2d 6c 65 76 65 6c 20 77 69 6e 64 6f 77 20 61 6e 64 20 64 69 76 69 64 65 20 69 74 20 69 6e op-level.window.and.divide.it.in
31520 74 6f 20 74 6f 70 0a 20 20 20 20 23 20 61 6e 64 20 62 6f 74 74 6f 6d 20 70 61 72 74 73 2e 0a 0a to.top.....#.and.bottom.parts...
31540 20 20 20 20 63 61 74 63 68 20 7b 64 65 73 74 72 6f 79 20 24 77 7d 0a 20 20 20 20 74 6f 70 6c 65 ....catch.{destroy.$w}.....tople
31560 76 65 6c 20 24 77 20 2d 63 6c 61 73 73 20 44 69 61 6c 6f 67 0a 20 20 20 20 77 6d 20 74 69 74 6c vel.$w.-class.Dialog.....wm.titl
31580 65 20 24 77 20 24 64 61 74 61 28 2d 74 69 74 6c 65 29 0a 20 20 20 20 77 6d 20 69 63 6f 6e 6e 61 e.$w.$data(-title).....wm.iconna
315a0 6d 65 20 24 77 20 44 69 61 6c 6f 67 0a 20 20 20 20 77 6d 20 70 72 6f 74 6f 63 6f 6c 20 24 77 20 me.$w.Dialog.....wm.protocol.$w.
315c0 57 4d 5f 44 45 4c 45 54 45 5f 57 49 4e 44 4f 57 20 7b 20 7d 0a 20 20 20 20 77 6d 20 74 72 61 6e WM_DELETE_WINDOW.{.}.....wm.tran
315e0 73 69 65 6e 74 20 24 77 20 24 64 61 74 61 28 2d 70 61 72 65 6e 74 29 0a 20 20 20 20 69 66 20 7b sient.$w.$data(-parent).....if.{
31600 5b 73 74 72 69 6e 67 20 65 71 75 61 6c 20 24 74 63 6c 5f 70 6c 61 74 66 6f 72 6d 28 70 6c 61 74 [string.equal.$tcl_platform(plat
31620 66 6f 72 6d 29 20 22 6d 61 63 69 6e 74 6f 73 68 22 5d 7d 20 7b 0a 09 75 6e 73 75 70 70 6f 72 74 form)."macintosh"]}.{..unsupport
31640 65 64 31 20 73 74 79 6c 65 20 24 77 20 64 42 6f 78 50 72 6f 63 0a 20 20 20 20 7d 0a 0a 20 20 20 ed1.style.$w.dBoxProc.....}.....
31660 20 66 72 61 6d 65 20 24 77 2e 62 6f 74 0a 20 20 20 20 70 61 63 6b 20 24 77 2e 62 6f 74 20 2d 73 .frame.$w.bot.....pack.$w.bot.-s
31680 69 64 65 20 62 6f 74 74 6f 6d 20 2d 66 69 6c 6c 20 62 6f 74 68 0a 20 20 20 20 66 72 61 6d 65 20 ide.bottom.-fill.both.....frame.
316a0 24 77 2e 74 6f 70 0a 20 20 20 20 70 61 63 6b 20 24 77 2e 74 6f 70 20 2d 73 69 64 65 20 74 6f 70 $w.top.....pack.$w.top.-side.top
316c0 20 2d 66 69 6c 6c 20 62 6f 74 68 20 2d 65 78 70 61 6e 64 20 31 0a 20 20 20 20 69 66 20 7b 5b 73 .-fill.both.-expand.1.....if.{[s
316e0 74 72 69 6e 67 20 63 6f 6d 70 61 72 65 20 24 74 63 6c 5f 70 6c 61 74 66 6f 72 6d 28 70 6c 61 74 tring.compare.$tcl_platform(plat
31700 66 6f 72 6d 29 20 22 6d 61 63 69 6e 74 6f 73 68 22 5d 7d 20 7b 0a 09 24 77 2e 62 6f 74 20 63 6f form)."macintosh"]}.{..$w.bot.co
31720 6e 66 69 67 75 72 65 20 2d 72 65 6c 69 65 66 20 72 61 69 73 65 64 20 2d 62 64 20 31 0a 09 24 77 nfigure.-relief.raised.-bd.1..$w
31740 2e 74 6f 70 20 63 6f 6e 66 69 67 75 72 65 20 2d 72 65 6c 69 65 66 20 72 61 69 73 65 64 20 2d 62 .top.configure.-relief.raised.-b
31760 64 20 31 0a 20 20 20 20 7d 0a 0a 20 20 20 20 23 20 34 2e 20 46 69 6c 6c 20 74 68 65 20 74 6f 70 d.1.....}......#.4..Fill.the.top
31780 20 70 61 72 74 20 77 69 74 68 20 62 69 74 6d 61 70 20 61 6e 64 20 6d 65 73 73 61 67 65 20 28 75 .part.with.bitmap.and.message.(u
317a0 73 65 20 74 68 65 20 6f 70 74 69 6f 6e 0a 20 20 20 20 23 20 64 61 74 61 62 61 73 65 20 66 6f 72 se.the.option.....#.database.for
317c0 20 2d 77 72 61 70 6c 65 6e 67 74 68 20 61 6e 64 20 2d 66 6f 6e 74 20 73 6f 20 74 68 61 74 20 74 .-wraplength.and.-font.so.that.t
317e0 68 65 79 20 63 61 6e 20 62 65 0a 20 20 20 20 23 20 6f 76 65 72 72 69 64 64 65 6e 20 62 79 20 74 hey.can.be.....#.overridden.by.t
31800 68 65 20 63 61 6c 6c 65 72 29 2e 0a 0a 20 20 20 20 6f 70 74 69 6f 6e 20 61 64 64 20 2a 44 69 61 he.caller).......option.add.*Dia
31820 6c 6f 67 2e 6d 73 67 2e 77 72 61 70 4c 65 6e 67 74 68 20 33 69 20 77 69 64 67 65 74 44 65 66 61 log.msg.wrapLength.3i.widgetDefa
31840 75 6c 74 0a 20 20 20 20 69 66 20 7b 5b 73 74 72 69 6e 67 20 65 71 75 61 6c 20 24 74 63 6c 5f 70 ult.....if.{[string.equal.$tcl_p
31860 6c 61 74 66 6f 72 6d 28 70 6c 61 74 66 6f 72 6d 29 20 22 6d 61 63 69 6e 74 6f 73 68 22 5d 7d 20 latform(platform)."macintosh"]}.
31880 7b 0a 09 6f 70 74 69 6f 6e 20 61 64 64 20 2a 44 69 61 6c 6f 67 2e 6d 73 67 2e 66 6f 6e 74 20 73 {..option.add.*Dialog.msg.font.s
318a0 79 73 74 65 6d 20 77 69 64 67 65 74 44 65 66 61 75 6c 74 0a 20 20 20 20 7d 20 65 6c 73 65 20 7b ystem.widgetDefault.....}.else.{
318c0 0a 09 6f 70 74 69 6f 6e 20 61 64 64 20 2a 44 69 61 6c 6f 67 2e 6d 73 67 2e 66 6f 6e 74 20 7b 54 ..option.add.*Dialog.msg.font.{T
318e0 69 6d 65 73 20 31 38 7d 20 77 69 64 67 65 74 44 65 66 61 75 6c 74 0a 20 20 20 20 7d 0a 0a 20 20 imes.18}.widgetDefault.....}....
31900 20 20 6c 61 62 65 6c 20 24 77 2e 6d 73 67 20 2d 6a 75 73 74 69 66 79 20 6c 65 66 74 20 2d 74 65 ..label.$w.msg.-justify.left.-te
31920 78 74 20 24 64 61 74 61 28 2d 6d 65 73 73 61 67 65 29 0a 20 20 20 20 70 61 63 6b 20 24 77 2e 6d xt.$data(-message).....pack.$w.m
31940 73 67 20 2d 69 6e 20 24 77 2e 74 6f 70 20 2d 73 69 64 65 20 72 69 67 68 74 20 2d 65 78 70 61 6e sg.-in.$w.top.-side.right.-expan
31960 64 20 31 20 2d 66 69 6c 6c 20 62 6f 74 68 20 2d 70 61 64 78 20 33 6d 20 2d 70 61 64 79 20 33 6d d.1.-fill.both.-padx.3m.-pady.3m
31980 0a 20 20 20 20 69 66 20 7b 5b 73 74 72 69 6e 67 20 63 6f 6d 70 61 72 65 20 24 64 61 74 61 28 2d .....if.{[string.compare.$data(-
319a0 69 63 6f 6e 29 20 22 22 5d 7d 20 7b 0a 09 69 66 20 7b 5b 73 74 72 69 6e 67 20 65 71 75 61 6c 20 icon).""]}.{..if.{[string.equal.
319c0 24 74 63 6c 5f 70 6c 61 74 66 6f 72 6d 28 70 6c 61 74 66 6f 72 6d 29 20 22 6d 61 63 69 6e 74 6f $tcl_platform(platform)."macinto
319e0 73 68 22 5d 20 5c 0a 09 09 7c 7c 20 28 5b 77 69 6e 66 6f 20 64 65 70 74 68 20 24 77 5d 20 3c 20 sh"].\...||.([winfo.depth.$w].<.
31a00 34 29 20 7c 7c 20 24 74 6b 5f 73 74 72 69 63 74 4d 6f 74 69 66 7d 20 7b 0a 09 20 20 20 20 6c 61 4).||.$tk_strictMotif}.{......la
31a20 62 65 6c 20 24 77 2e 62 69 74 6d 61 70 20 2d 62 69 74 6d 61 70 20 24 64 61 74 61 28 2d 69 63 6f bel.$w.bitmap.-bitmap.$data(-ico
31a40 6e 29 0a 09 7d 20 65 6c 73 65 20 7b 0a 09 20 20 20 20 63 61 6e 76 61 73 20 24 77 2e 62 69 74 6d n)..}.else.{......canvas.$w.bitm
31a60 61 70 20 2d 77 69 64 74 68 20 33 32 20 2d 68 65 69 67 68 74 20 33 32 20 2d 68 69 67 68 6c 69 67 ap.-width.32.-height.32.-highlig
31a80 68 74 74 68 69 63 6b 6e 65 73 73 20 30 0a 09 20 20 20 20 73 77 69 74 63 68 20 24 64 61 74 61 28 htthickness.0......switch.$data(
31aa0 2d 69 63 6f 6e 29 20 7b 0a 09 09 65 72 72 6f 72 20 7b 0a 09 09 20 20 20 20 24 77 2e 62 69 74 6d -icon).{...error.{.......$w.bitm
31ac0 61 70 20 63 72 65 61 74 65 20 6f 76 61 6c 20 30 20 30 20 33 31 20 33 31 20 2d 66 69 6c 6c 20 72 ap.create.oval.0.0.31.31.-fill.r
31ae0 65 64 20 2d 6f 75 74 6c 69 6e 65 20 62 6c 61 63 6b 0a 09 09 20 20 20 20 24 77 2e 62 69 74 6d 61 ed.-outline.black.......$w.bitma
31b00 70 20 63 72 65 61 74 65 20 6c 69 6e 65 20 39 20 39 20 32 33 20 32 33 20 2d 66 69 6c 6c 20 77 68 p.create.line.9.9.23.23.-fill.wh
31b20 69 74 65 20 2d 77 69 64 74 68 20 34 0a 09 09 20 20 20 20 24 77 2e 62 69 74 6d 61 70 20 63 72 65 ite.-width.4.......$w.bitmap.cre
31b40 61 74 65 20 6c 69 6e 65 20 39 20 32 33 20 32 33 20 39 20 2d 66 69 6c 6c 20 77 68 69 74 65 20 2d ate.line.9.23.23.9.-fill.white.-
31b60 77 69 64 74 68 20 34 0a 09 09 7d 0a 09 09 69 6e 66 6f 20 7b 0a 09 09 20 20 20 20 24 77 2e 62 69 width.4...}...info.{.......$w.bi
31b80 74 6d 61 70 20 63 72 65 61 74 65 20 69 6d 61 67 65 20 30 20 30 20 2d 61 6e 63 68 6f 72 20 6e 77 tmap.create.image.0.0.-anchor.nw
31ba0 20 5c 0a 09 09 09 20 20 20 20 2d 69 6d 61 67 65 20 3a 3a 74 6b 3a 3a 64 69 61 6c 6f 67 3a 3a 62 .\........-image.::tk::dialog::b
31bc0 31 0a 09 09 20 20 20 20 24 77 2e 62 69 74 6d 61 70 20 63 72 65 61 74 65 20 69 6d 61 67 65 20 30 1.......$w.bitmap.create.image.0
31be0 20 30 20 2d 61 6e 63 68 6f 72 20 6e 77 20 5c 0a 09 09 09 20 20 20 20 2d 69 6d 61 67 65 20 3a 3a .0.-anchor.nw.\........-image.::
31c00 74 6b 3a 3a 64 69 61 6c 6f 67 3a 3a 62 32 0a 09 09 20 20 20 20 24 77 2e 62 69 74 6d 61 70 20 63 tk::dialog::b2.......$w.bitmap.c
31c20 72 65 61 74 65 20 69 6d 61 67 65 20 30 20 30 20 2d 61 6e 63 68 6f 72 20 6e 77 20 5c 0a 09 09 09 reate.image.0.0.-anchor.nw.\....
31c40 20 20 20 20 2d 69 6d 61 67 65 20 3a 3a 74 6b 3a 3a 64 69 61 6c 6f 67 3a 3a 69 0a 09 09 7d 0a 09 ....-image.::tk::dialog::i...}..
31c60 09 71 75 65 73 74 69 6f 6e 20 7b 0a 09 09 20 20 20 20 24 77 2e 62 69 74 6d 61 70 20 63 72 65 61 .question.{.......$w.bitmap.crea
31c80 74 65 20 69 6d 61 67 65 20 30 20 30 20 2d 61 6e 63 68 6f 72 20 6e 77 20 5c 0a 09 09 09 20 20 20 te.image.0.0.-anchor.nw.\.......
31ca0 20 2d 69 6d 61 67 65 20 3a 3a 74 6b 3a 3a 64 69 61 6c 6f 67 3a 3a 62 31 0a 09 09 20 20 20 20 24 .-image.::tk::dialog::b1.......$
31cc0 77 2e 62 69 74 6d 61 70 20 63 72 65 61 74 65 20 69 6d 61 67 65 20 30 20 30 20 2d 61 6e 63 68 6f w.bitmap.create.image.0.0.-ancho
31ce0 72 20 6e 77 20 5c 0a 09 09 09 20 20 20 20 2d 69 6d 61 67 65 20 3a 3a 74 6b 3a 3a 64 69 61 6c 6f r.nw.\........-image.::tk::dialo
31d00 67 3a 3a 62 32 0a 09 09 20 20 20 20 24 77 2e 62 69 74 6d 61 70 20 63 72 65 61 74 65 20 69 6d 61 g::b2.......$w.bitmap.create.ima
31d20 67 65 20 30 20 30 20 2d 61 6e 63 68 6f 72 20 6e 77 20 5c 0a 09 09 09 20 20 20 20 2d 69 6d 61 67 ge.0.0.-anchor.nw.\........-imag
31d40 65 20 3a 3a 74 6b 3a 3a 64 69 61 6c 6f 67 3a 3a 71 0a 09 09 7d 0a 09 09 64 65 66 61 75 6c 74 20 e.::tk::dialog::q...}...default.
31d60 7b 0a 09 09 20 20 20 20 24 77 2e 62 69 74 6d 61 70 20 63 72 65 61 74 65 20 69 6d 61 67 65 20 30 {.......$w.bitmap.create.image.0
31d80 20 30 20 2d 61 6e 63 68 6f 72 20 6e 77 20 5c 0a 09 09 09 20 20 20 20 2d 69 6d 61 67 65 20 3a 3a .0.-anchor.nw.\........-image.::
31da0 74 6b 3a 3a 64 69 61 6c 6f 67 3a 3a 77 31 0a 09 09 20 20 20 20 24 77 2e 62 69 74 6d 61 70 20 63 tk::dialog::w1.......$w.bitmap.c
31dc0 72 65 61 74 65 20 69 6d 61 67 65 20 30 20 30 20 2d 61 6e 63 68 6f 72 20 6e 77 20 5c 0a 09 09 09 reate.image.0.0.-anchor.nw.\....
31de0 20 20 20 20 2d 69 6d 61 67 65 20 3a 3a 74 6b 3a 3a 64 69 61 6c 6f 67 3a 3a 77 32 0a 09 09 20 20 ....-image.::tk::dialog::w2.....
31e00 20 20 24 77 2e 62 69 74 6d 61 70 20 63 72 65 61 74 65 20 69 6d 61 67 65 20 30 20 30 20 2d 61 6e ..$w.bitmap.create.image.0.0.-an
31e20 63 68 6f 72 20 6e 77 20 5c 0a 09 09 09 20 20 20 20 2d 69 6d 61 67 65 20 3a 3a 74 6b 3a 3a 64 69 chor.nw.\........-image.::tk::di
31e40 61 6c 6f 67 3a 3a 77 33 0a 09 09 7d 0a 09 20 20 20 20 7d 0a 09 7d 0a 09 70 61 63 6b 20 24 77 2e alog::w3...}......}..}..pack.$w.
31e60 62 69 74 6d 61 70 20 2d 69 6e 20 24 77 2e 74 6f 70 20 2d 73 69 64 65 20 6c 65 66 74 20 2d 70 61 bitmap.-in.$w.top.-side.left.-pa
31e80 64 78 20 33 6d 20 2d 70 61 64 79 20 33 6d 0a 20 20 20 20 7d 0a 0a 20 20 20 20 23 20 35 2e 20 43 dx.3m.-pady.3m.....}......#.5..C
31ea0 72 65 61 74 65 20 61 20 72 6f 77 20 6f 66 20 62 75 74 74 6f 6e 73 20 61 74 20 74 68 65 20 62 6f reate.a.row.of.buttons.at.the.bo
31ec0 74 74 6f 6d 20 6f 66 20 74 68 65 20 64 69 61 6c 6f 67 2e 0a 0a 20 20 20 20 73 65 74 20 69 20 30 ttom.of.the.dialog.......set.i.0
31ee0 0a 20 20 20 20 66 6f 72 65 61 63 68 20 62 75 74 20 24 62 75 74 74 6f 6e 73 20 7b 0a 09 73 65 74 .....foreach.but.$buttons.{..set
31f00 20 6e 61 6d 65 20 5b 6c 69 6e 64 65 78 20 24 62 75 74 20 30 5d 0a 09 73 65 74 20 6f 70 74 73 20 .name.[lindex.$but.0]..set.opts.
31f20 5b 6c 72 61 6e 67 65 20 24 62 75 74 20 31 20 65 6e 64 5d 0a 09 69 66 20 7b 21 5b 6c 6c 65 6e 67 [lrange.$but.1.end]..if.{![lleng
31f40 74 68 20 24 6f 70 74 73 5d 7d 20 7b 0a 09 20 20 20 20 23 20 43 61 70 69 74 61 6c 69 7a 65 20 74 th.$opts]}.{......#.Capitalize.t
31f60 68 65 20 66 69 72 73 74 20 6c 65 74 74 65 72 20 6f 66 20 24 6e 61 6d 65 0a 09 20 20 20 20 73 65 he.first.letter.of.$name......se
31f80 74 20 63 61 70 4e 61 6d 65 20 5b 73 74 72 69 6e 67 20 74 6f 75 70 70 65 72 20 24 6e 61 6d 65 20 t.capName.[string.toupper.$name.
31fa0 30 5d 0a 09 20 20 20 20 73 65 74 20 6f 70 74 73 20 5b 6c 69 73 74 20 2d 74 65 78 74 20 24 63 61 0]......set.opts.[list.-text.$ca
31fc0 70 4e 61 6d 65 5d 0a 09 7d 0a 0a 09 65 76 61 6c 20 62 75 74 74 6f 6e 20 5b 6c 69 73 74 20 24 77 pName]..}...eval.button.[list.$w
31fe0 2e 24 6e 61 6d 65 5d 20 24 6f 70 74 73 20 5b 6c 69 73 74 20 2d 63 6f 6d 6d 61 6e 64 20 5b 6c 69 .$name].$opts.[list.-command.[li
32000 73 74 20 73 65 74 20 74 6b 50 72 69 76 28 62 75 74 74 6f 6e 29 20 24 6e 61 6d 65 5d 5d 0a 0a 09 st.set.tkPriv(button).$name]]...
32020 69 66 20 7b 5b 73 74 72 69 6e 67 20 65 71 75 61 6c 20 24 6e 61 6d 65 20 24 64 61 74 61 28 2d 64 if.{[string.equal.$name.$data(-d
32040 65 66 61 75 6c 74 29 5d 7d 20 7b 0a 09 20 20 20 20 24 77 2e 24 6e 61 6d 65 20 63 6f 6e 66 69 67 efault)]}.{......$w.$name.config
32060 75 72 65 20 2d 64 65 66 61 75 6c 74 20 61 63 74 69 76 65 0a 09 7d 0a 09 70 61 63 6b 20 24 77 2e ure.-default.active..}..pack.$w.
32080 24 6e 61 6d 65 20 2d 69 6e 20 24 77 2e 62 6f 74 20 2d 73 69 64 65 20 6c 65 66 74 20 2d 65 78 70 $name.-in.$w.bot.-side.left.-exp
320a0 61 6e 64 20 31 20 2d 70 61 64 78 20 33 6d 20 2d 70 61 64 79 20 32 6d 0a 0a 09 23 20 63 72 65 61 and.1.-padx.3m.-pady.2m...#.crea
320c0 74 65 20 74 68 65 20 62 69 6e 64 69 6e 67 20 66 6f 72 20 74 68 65 20 6b 65 79 20 61 63 63 65 6c te.the.binding.for.the.key.accel
320e0 65 72 61 74 6f 72 2c 20 62 61 73 65 64 20 6f 6e 20 74 68 65 20 75 6e 64 65 72 6c 69 6e 65 0a 09 erator,.based.on.the.underline..
32100 23 0a 09 73 65 74 20 75 6e 64 65 72 49 64 78 20 5b 24 77 2e 24 6e 61 6d 65 20 63 67 65 74 20 2d #..set.underIdx.[$w.$name.cget.-
32120 75 6e 64 65 72 5d 0a 09 69 66 20 7b 24 75 6e 64 65 72 49 64 78 20 3e 3d 20 30 7d 20 7b 0a 09 20 under]..if.{$underIdx.>=.0}.{...
32140 20 20 20 73 65 74 20 6b 65 79 20 5b 73 74 72 69 6e 67 20 69 6e 64 65 78 20 5b 24 77 2e 24 6e 61 ...set.key.[string.index.[$w.$na
32160 6d 65 20 63 67 65 74 20 2d 74 65 78 74 5d 20 24 75 6e 64 65 72 49 64 78 5d 0a 09 20 20 20 20 62 me.cget.-text].$underIdx]......b
32180 69 6e 64 20 24 77 20 3c 41 6c 74 2d 5b 73 74 72 69 6e 67 20 74 6f 6c 6f 77 65 72 20 24 6b 65 79 ind.$w.<Alt-[string.tolower.$key
321a0 5d 3e 20 20 5b 6c 69 73 74 20 24 77 2e 24 6e 61 6d 65 20 69 6e 76 6f 6b 65 5d 0a 09 20 20 20 20 ]>..[list.$w.$name.invoke]......
321c0 62 69 6e 64 20 24 77 20 3c 41 6c 74 2d 5b 73 74 72 69 6e 67 20 74 6f 75 70 70 65 72 20 24 6b 65 bind.$w.<Alt-[string.toupper.$ke
321e0 79 5d 3e 20 20 5b 6c 69 73 74 20 24 77 2e 24 6e 61 6d 65 20 69 6e 76 6f 6b 65 5d 0a 09 7d 0a 09 y]>..[list.$w.$name.invoke]..}..
32200 69 6e 63 72 20 69 0a 20 20 20 20 7d 0a 0a 20 20 20 20 69 66 20 7b 5b 73 74 72 69 6e 67 20 63 6f incr.i.....}......if.{[string.co
32220 6d 70 61 72 65 20 7b 7d 20 24 64 61 74 61 28 2d 64 65 66 61 75 6c 74 29 5d 7d 20 7b 0a 09 62 69 mpare.{}.$data(-default)]}.{..bi
32240 6e 64 20 24 77 20 3c 46 6f 63 75 73 49 6e 3e 20 7b 0a 09 20 20 20 20 69 66 20 7b 5b 73 74 72 69 nd.$w.<FocusIn>.{......if.{[stri
32260 6e 67 20 65 71 75 61 6c 20 42 75 74 74 6f 6e 20 5b 77 69 6e 66 6f 20 63 6c 61 73 73 20 25 57 5d ng.equal.Button.[winfo.class.%W]
32280 5d 7d 20 7b 0a 09 09 25 57 20 63 6f 6e 66 69 67 75 72 65 20 2d 64 65 66 61 75 6c 74 20 61 63 74 ]}.{...%W.configure.-default.act
322a0 69 76 65 0a 09 20 20 20 20 7d 0a 09 7d 0a 09 62 69 6e 64 20 24 77 20 3c 46 6f 63 75 73 4f 75 74 ive......}..}..bind.$w.<FocusOut
322c0 3e 20 7b 0a 09 20 20 20 20 69 66 20 7b 5b 73 74 72 69 6e 67 20 65 71 75 61 6c 20 42 75 74 74 6f >.{......if.{[string.equal.Butto
322e0 6e 20 5b 77 69 6e 66 6f 20 63 6c 61 73 73 20 25 57 5d 5d 7d 20 7b 0a 09 09 25 57 20 63 6f 6e 66 n.[winfo.class.%W]]}.{...%W.conf
32300 69 67 75 72 65 20 2d 64 65 66 61 75 6c 74 20 6e 6f 72 6d 61 6c 0a 09 20 20 20 20 7d 0a 09 7d 0a igure.-default.normal......}..}.
32320 20 20 20 20 7d 0a 0a 20 20 20 20 23 20 36 2e 20 43 72 65 61 74 65 20 61 20 62 69 6e 64 69 6e 67 ....}......#.6..Create.a.binding
32340 20 66 6f 72 20 3c 52 65 74 75 72 6e 3e 20 6f 6e 20 74 68 65 20 64 69 61 6c 6f 67 0a 0a 20 20 20 .for.<Return>.on.the.dialog.....
32360 20 62 69 6e 64 20 24 77 20 3c 52 65 74 75 72 6e 3e 20 7b 0a 09 69 66 20 7b 5b 73 74 72 69 6e 67 .bind.$w.<Return>.{..if.{[string
32380 20 65 71 75 61 6c 20 42 75 74 74 6f 6e 20 5b 77 69 6e 66 6f 20 63 6c 61 73 73 20 25 57 5d 5d 7d .equal.Button.[winfo.class.%W]]}
323a0 20 7b 0a 09 20 20 20 20 74 6b 42 75 74 74 6f 6e 49 6e 76 6f 6b 65 20 25 57 0a 09 7d 0a 20 20 20 .{......tkButtonInvoke.%W..}....
323c0 20 7d 0a 0a 20 20 20 20 23 20 37 2e 20 57 69 74 68 64 72 61 77 20 74 68 65 20 77 69 6e 64 6f 77 .}......#.7..Withdraw.the.window
323e0 2c 20 74 68 65 6e 20 75 70 64 61 74 65 20 61 6c 6c 20 74 68 65 20 67 65 6f 6d 65 74 72 79 20 69 ,.then.update.all.the.geometry.i
32400 6e 66 6f 72 6d 61 74 69 6f 6e 0a 20 20 20 20 23 20 73 6f 20 77 65 20 6b 6e 6f 77 20 68 6f 77 20 nformation.....#.so.we.know.how.
32420 62 69 67 20 69 74 20 77 61 6e 74 73 20 74 6f 20 62 65 2c 20 74 68 65 6e 20 63 65 6e 74 65 72 20 big.it.wants.to.be,.then.center.
32440 74 68 65 20 77 69 6e 64 6f 77 20 69 6e 20 74 68 65 0a 20 20 20 20 23 20 64 69 73 70 6c 61 79 20 the.window.in.the.....#.display.
32460 61 6e 64 20 64 65 2d 69 63 6f 6e 69 66 79 20 69 74 2e 0a 0a 20 20 20 20 3a 3a 74 6b 3a 3a 50 6c and.de-iconify.it.......::tk::Pl
32480 61 63 65 57 69 6e 64 6f 77 20 24 77 20 77 69 64 67 65 74 20 24 64 61 74 61 28 2d 70 61 72 65 6e aceWindow.$w.widget.$data(-paren
324a0 74 29 0a 0a 20 20 20 20 23 20 38 2e 20 53 65 74 20 61 20 67 72 61 62 20 61 6e 64 20 63 6c 61 69 t)......#.8..Set.a.grab.and.clai
324c0 6d 20 74 68 65 20 66 6f 63 75 73 20 74 6f 6f 2e 0a 0a 20 20 20 20 69 66 20 7b 5b 73 74 72 69 6e m.the.focus.too.......if.{[strin
324e0 67 20 63 6f 6d 70 61 72 65 20 24 64 61 74 61 28 2d 64 65 66 61 75 6c 74 29 20 22 22 5d 7d 20 7b g.compare.$data(-default).""]}.{
32500 0a 09 73 65 74 20 66 6f 63 75 73 20 24 77 2e 24 64 61 74 61 28 2d 64 65 66 61 75 6c 74 29 0a 20 ..set.focus.$w.$data(-default)..
32520 20 20 20 7d 20 65 6c 73 65 20 7b 0a 09 73 65 74 20 66 6f 63 75 73 20 24 77 0a 20 20 20 20 7d 0a ...}.else.{..set.focus.$w.....}.
32540 20 20 20 20 3a 3a 74 6b 3a 3a 53 65 74 46 6f 63 75 73 47 72 61 62 20 24 77 20 24 66 6f 63 75 73 ....::tk::SetFocusGrab.$w.$focus
32560 0a 0a 20 20 20 20 23 20 39 2e 20 57 61 69 74 20 66 6f 72 20 74 68 65 20 75 73 65 72 20 74 6f 20 ......#.9..Wait.for.the.user.to.
32580 72 65 73 70 6f 6e 64 2c 20 74 68 65 6e 20 72 65 73 74 6f 72 65 20 74 68 65 20 66 6f 63 75 73 20 respond,.then.restore.the.focus.
325a0 61 6e 64 0a 20 20 20 20 23 20 72 65 74 75 72 6e 20 74 68 65 20 69 6e 64 65 78 20 6f 66 20 74 68 and.....#.return.the.index.of.th
325c0 65 20 73 65 6c 65 63 74 65 64 20 62 75 74 74 6f 6e 2e 20 20 52 65 73 74 6f 72 65 20 74 68 65 20 e.selected.button...Restore.the.
325e0 66 6f 63 75 73 0a 20 20 20 20 23 20 62 65 66 6f 72 65 20 64 65 6c 65 74 69 6e 67 20 74 68 65 20 focus.....#.before.deleting.the.
32600 77 69 6e 64 6f 77 2c 20 73 69 6e 63 65 20 6f 74 68 65 72 77 69 73 65 20 74 68 65 20 77 69 6e 64 window,.since.otherwise.the.wind
32620 6f 77 20 6d 61 6e 61 67 65 72 0a 20 20 20 20 23 20 6d 61 79 20 74 61 6b 65 20 74 68 65 20 66 6f ow.manager.....#.may.take.the.fo
32640 63 75 73 20 61 77 61 79 20 73 6f 20 77 65 20 63 61 6e 27 74 20 72 65 64 69 72 65 63 74 20 69 74 cus.away.so.we.can't.redirect.it
32660 2e 20 20 46 69 6e 61 6c 6c 79 2c 0a 20 20 20 20 23 20 72 65 73 74 6f 72 65 20 61 6e 79 20 67 72 ...Finally,.....#.restore.any.gr
32680 61 62 20 74 68 61 74 20 77 61 73 20 69 6e 20 65 66 66 65 63 74 2e 0a 0a 20 20 20 20 74 6b 77 61 ab.that.was.in.effect.......tkwa
326a0 69 74 20 76 61 72 69 61 62 6c 65 20 74 6b 50 72 69 76 28 62 75 74 74 6f 6e 29 0a 0a 20 20 20 20 it.variable.tkPriv(button)......
326c0 3a 3a 74 6b 3a 3a 52 65 73 74 6f 72 65 46 6f 63 75 73 47 72 61 62 20 24 77 20 24 66 6f 63 75 73 ::tk::RestoreFocusGrab.$w.$focus
326e0 0a 0a 20 20 20 20 72 65 74 75 72 6e 20 24 74 6b 50 72 69 76 28 62 75 74 74 6f 6e 29 0a 7d 0a 00 ......return.$tkPriv(button).}..
32700 00 1c 01 23 20 63 6f 6d 64 6c 67 2e 74 63 6c 20 2d 2d 0a 23 0a 23 09 53 6f 6d 65 20 66 75 6e 63 ...#.comdlg.tcl.--.#.#.Some.func
32720 74 69 6f 6e 73 20 6e 65 65 64 65 64 20 66 6f 72 20 74 68 65 20 63 6f 6d 6d 6f 6e 20 64 69 61 6c tions.needed.for.the.common.dial
32740 6f 67 20 62 6f 78 65 73 2e 20 50 72 6f 62 61 62 6c 79 20 6e 65 65 64 20 74 6f 20 67 6f 0a 23 09 og.boxes..Probably.need.to.go.#.
32760 69 6e 20 61 20 64 69 66 66 65 72 65 6e 74 20 66 69 6c 65 2e 0a 23 0a 23 20 52 43 53 3a 20 40 28 in.a.different.file..#.#.RCS:.@(
32780 23 29 20 24 49 64 3a 20 63 6f 6d 64 6c 67 2e 74 63 6c 2c 76 20 31 2e 36 20 31 39 39 39 2f 31 32 #).$Id:.comdlg.tcl,v.1.6.1999/12
327a0 2f 30 37 20 30 33 3a 30 34 3a 34 33 20 68 6f 62 62 73 20 45 78 70 20 24 0a 23 0a 23 20 43 6f 70 /07.03:04:43.hobbs.Exp.$.#.#.Cop
327c0 79 72 69 67 68 74 20 28 63 29 20 31 39 39 36 20 53 75 6e 20 4d 69 63 72 6f 73 79 73 74 65 6d 73 yright.(c).1996.Sun.Microsystems
327e0 2c 20 49 6e 63 2e 0a 23 0a 23 20 53 65 65 20 74 68 65 20 66 69 6c 65 20 22 6c 69 63 65 6e 73 65 ,.Inc..#.#.See.the.file."license
32800 2e 74 65 72 6d 73 22 20 66 6f 72 20 69 6e 66 6f 72 6d 61 74 69 6f 6e 20 6f 6e 20 75 73 61 67 65 .terms".for.information.on.usage
32820 20 61 6e 64 20 72 65 64 69 73 74 72 69 62 75 74 69 6f 6e 0a 23 20 6f 66 20 74 68 69 73 20 66 69 .and.redistribution.#.of.this.fi
32840 6c 65 2c 20 61 6e 64 20 66 6f 72 20 61 20 44 49 53 43 4c 41 49 4d 45 52 20 4f 46 20 41 4c 4c 20 le,.and.for.a.DISCLAIMER.OF.ALL.
32860 57 41 52 52 41 4e 54 49 45 53 2e 0a 23 0a 0a 23 20 74 63 6c 50 61 72 73 65 43 6f 6e 66 69 67 53 WARRANTIES..#..#.tclParseConfigS
32880 70 65 63 20 2d 2d 0a 23 0a 23 09 50 61 72 73 65 73 20 61 20 6c 69 73 74 20 6f 66 20 22 2d 6f 70 pec.--.#.#.Parses.a.list.of."-op
328a0 74 69 6f 6e 20 76 61 6c 75 65 22 20 70 61 69 72 73 2e 20 49 66 20 61 6c 6c 20 6f 70 74 69 6f 6e tion.value".pairs..If.all.option
328c0 73 20 61 6e 64 0a 23 09 76 61 6c 75 65 73 20 61 72 65 20 6c 65 67 61 6c 2c 20 74 68 65 20 76 61 s.and.#.values.are.legal,.the.va
328e0 6c 75 65 73 20 61 72 65 20 73 74 6f 72 65 64 20 69 6e 0a 23 09 24 64 61 74 61 28 24 6f 70 74 69 lues.are.stored.in.#.$data($opti
32900 6f 6e 29 2e 20 4f 74 68 65 72 77 69 73 65 20 61 6e 20 65 72 72 6f 72 20 6d 65 73 73 61 67 65 20 on)..Otherwise.an.error.message.
32920 69 73 20 72 65 74 75 72 6e 65 64 2e 20 57 68 65 6e 0a 23 09 61 6e 20 65 72 72 6f 72 20 68 61 70 is.returned..When.#.an.error.hap
32940 70 65 6e 73 2c 20 74 68 65 20 64 61 74 61 28 29 20 61 72 72 61 79 20 6d 61 79 20 68 61 76 65 20 pens,.the.data().array.may.have.
32960 62 65 65 6e 20 70 61 72 74 69 61 6c 6c 79 0a 23 09 6d 6f 64 69 66 69 65 64 2c 20 62 75 74 20 61 been.partially.#.modified,.but.a
32980 6c 6c 20 74 68 65 20 6d 6f 64 69 66 69 65 64 20 6d 65 6d 62 65 72 73 20 6f 66 20 74 68 65 20 64 ll.the.modified.members.of.the.d
329a0 61 74 61 28 30 20 61 72 72 61 79 20 61 72 65 0a 23 09 67 75 61 72 61 6e 74 65 65 64 20 74 6f 20 ata(0.array.are.#.guaranteed.to.
329c0 68 61 76 65 20 76 61 6c 69 64 20 76 61 6c 75 65 73 2e 20 54 68 69 73 20 69 73 20 64 69 66 66 65 have.valid.values..This.is.diffe
329e0 72 65 6e 74 20 74 68 61 6e 0a 23 09 54 6b 5f 43 6f 6e 66 69 67 75 72 65 57 69 64 67 65 74 28 29 rent.than.#.Tk_ConfigureWidget()
32a00 20 77 68 69 63 68 20 64 6f 65 73 20 6e 6f 74 20 6d 6f 64 69 66 79 20 74 68 65 20 76 61 6c 75 65 .which.does.not.modify.the.value
32a20 20 6f 66 20 61 0a 23 09 77 69 64 67 65 74 20 72 65 63 6f 72 64 20 69 66 20 61 6e 79 20 65 72 72 .of.a.#.widget.record.if.any.err
32a40 6f 72 20 6f 63 63 75 72 73 2e 0a 23 0a 23 20 41 72 67 75 6d 65 6e 74 73 3a 0a 23 0a 23 20 77 20 or.occurs..#.#.Arguments:.#.#.w.
32a60 3d 20 77 69 64 67 65 74 20 72 65 63 6f 72 64 20 74 6f 20 6d 6f 64 69 66 79 2e 20 4d 75 73 74 20 =.widget.record.to.modify..Must.
32a80 62 65 20 74 68 65 20 70 61 74 68 6e 61 6d 65 20 6f 66 20 61 20 77 69 64 67 65 74 2e 0a 23 0a 23 be.the.pathname.of.a.widget..#.#
32aa0 20 73 70 65 63 73 20 3d 20 7b 0a 23 20 20 20 20 7b 2d 63 6f 6d 6d 61 6e 64 6c 69 6e 65 73 77 69 .specs.=.{.#....{-commandlineswi
32ac0 74 63 68 20 72 65 73 6f 75 72 63 65 4e 61 6d 65 20 52 65 73 6f 75 72 63 65 43 6c 61 73 73 20 64 tch.resourceName.ResourceClass.d
32ae0 65 66 61 75 6c 74 56 61 6c 75 65 20 76 65 72 69 66 69 65 72 7d 0a 23 20 20 20 20 7b 2e 2e 2e 2e efaultValue.verifier}.#....{....
32b00 7d 0a 23 20 7d 0a 23 0a 23 20 66 6c 61 67 73 20 3d 20 63 75 72 72 65 6e 74 6c 79 20 75 6e 75 73 }.#.}.#.#.flags.=.currently.unus
32b20 65 64 2e 0a 23 0a 23 20 61 72 67 4c 69 73 74 20 3d 20 54 68 65 20 6c 69 73 74 20 6f 66 20 20 22 ed..#.#.argList.=.The.list.of.."
32b40 2d 6f 70 74 69 6f 6e 20 76 61 6c 75 65 22 20 70 61 69 72 73 2e 0a 23 0a 70 72 6f 63 20 74 63 6c -option.value".pairs..#.proc.tcl
32b60 50 61 72 73 65 43 6f 6e 66 69 67 53 70 65 63 20 7b 77 20 73 70 65 63 73 20 66 6c 61 67 73 20 61 ParseConfigSpec.{w.specs.flags.a
32b80 72 67 4c 69 73 74 7d 20 7b 0a 20 20 20 20 75 70 76 61 72 20 23 30 20 24 77 20 64 61 74 61 0a 0a rgList}.{.....upvar.#0.$w.data..
32ba0 20 20 20 20 23 20 31 3a 20 50 75 74 20 74 68 65 20 73 70 65 63 73 20 69 6e 20 61 73 73 6f 63 69 ....#.1:.Put.the.specs.in.associ
32bc0 61 74 69 76 65 20 61 72 72 61 79 73 20 66 6f 72 20 66 61 73 74 65 72 20 61 63 63 65 73 73 0a 20 ative.arrays.for.faster.access..
32be0 20 20 20 23 0a 20 20 20 20 66 6f 72 65 61 63 68 20 73 70 65 63 20 24 73 70 65 63 73 20 7b 0a 09 ...#.....foreach.spec.$specs.{..
32c00 69 66 20 7b 5b 6c 6c 65 6e 67 74 68 20 24 73 70 65 63 5d 20 3c 20 34 7d 20 7b 0a 09 20 20 20 20 if.{[llength.$spec].<.4}.{......
32c20 65 72 72 6f 72 20 22 5c 22 73 70 65 63 5c 22 20 73 68 6f 75 6c 64 20 63 6f 6e 74 61 69 6e 20 35 error."\"spec\".should.contain.5
32c40 20 6f 72 20 34 20 65 6c 65 6d 65 6e 74 73 22 0a 09 7d 0a 09 73 65 74 20 63 6d 64 73 77 20 5b 6c .or.4.elements"..}..set.cmdsw.[l
32c60 69 6e 64 65 78 20 24 73 70 65 63 20 30 5d 0a 09 73 65 74 20 63 6d 64 28 24 63 6d 64 73 77 29 20 index.$spec.0]..set.cmd($cmdsw).
32c80 22 22 0a 09 73 65 74 20 72 6e 61 6d 65 28 24 63 6d 64 73 77 29 20 20 20 5b 6c 69 6e 64 65 78 20 ""..set.rname($cmdsw)...[lindex.
32ca0 24 73 70 65 63 20 31 5d 0a 09 73 65 74 20 72 63 6c 61 73 73 28 24 63 6d 64 73 77 29 20 20 5b 6c $spec.1]..set.rclass($cmdsw)..[l
32cc0 69 6e 64 65 78 20 24 73 70 65 63 20 32 5d 0a 09 73 65 74 20 64 65 66 28 24 63 6d 64 73 77 29 20 index.$spec.2]..set.def($cmdsw).
32ce0 20 20 20 20 5b 6c 69 6e 64 65 78 20 24 73 70 65 63 20 33 5d 0a 09 73 65 74 20 76 65 72 70 72 6f ....[lindex.$spec.3]..set.verpro
32d00 63 28 24 63 6d 64 73 77 29 20 5b 6c 69 6e 64 65 78 20 24 73 70 65 63 20 34 5d 0a 20 20 20 20 7d c($cmdsw).[lindex.$spec.4].....}
32d20 0a 0a 20 20 20 20 69 66 20 7b 5b 6c 6c 65 6e 67 74 68 20 24 61 72 67 4c 69 73 74 5d 20 26 20 31 ......if.{[llength.$argList].&.1
32d40 7d 20 7b 0a 09 73 65 74 20 63 6d 64 73 77 20 5b 6c 69 6e 64 65 78 20 24 61 72 67 4c 69 73 74 20 }.{..set.cmdsw.[lindex.$argList.
32d60 65 6e 64 5d 0a 09 69 66 20 7b 21 5b 69 6e 66 6f 20 65 78 69 73 74 73 20 63 6d 64 28 24 63 6d 64 end]..if.{![info.exists.cmd($cmd
32d80 73 77 29 5d 7d 20 7b 0a 09 20 20 20 20 65 72 72 6f 72 20 22 62 61 64 20 6f 70 74 69 6f 6e 20 5c sw)]}.{......error."bad.option.\
32da0 22 24 63 6d 64 73 77 5c 22 3a 20 6d 75 73 74 20 62 65 20 5b 74 63 6c 4c 69 73 74 56 61 6c 69 64 "$cmdsw\":.must.be.[tclListValid
32dc0 46 6c 61 67 73 20 63 6d 64 5d 22 0a 09 7d 0a 09 65 72 72 6f 72 20 22 76 61 6c 75 65 20 66 6f 72 Flags.cmd]"..}..error."value.for
32de0 20 5c 22 24 63 6d 64 73 77 5c 22 20 6d 69 73 73 69 6e 67 22 0a 20 20 20 20 7d 0a 0a 20 20 20 20 .\"$cmdsw\".missing".....}......
32e00 23 20 32 3a 20 73 65 74 20 74 68 65 20 64 65 66 61 75 6c 74 20 76 61 6c 75 65 73 0a 20 20 20 20 #.2:.set.the.default.values.....
32e20 23 0a 20 20 20 20 66 6f 72 65 61 63 68 20 63 6d 64 73 77 20 5b 61 72 72 61 79 20 6e 61 6d 65 73 #.....foreach.cmdsw.[array.names
32e40 20 63 6d 64 5d 20 7b 0a 09 73 65 74 20 64 61 74 61 28 24 63 6d 64 73 77 29 20 24 64 65 66 28 24 .cmd].{..set.data($cmdsw).$def($
32e60 63 6d 64 73 77 29 0a 20 20 20 20 7d 0a 0a 20 20 20 20 23 20 33 3a 20 70 61 72 73 65 20 74 68 65 cmdsw).....}......#.3:.parse.the
32e80 20 61 72 67 75 6d 65 6e 74 20 6c 69 73 74 0a 20 20 20 20 23 0a 20 20 20 20 66 6f 72 65 61 63 68 .argument.list.....#.....foreach
32ea0 20 7b 63 6d 64 73 77 20 76 61 6c 75 65 7d 20 24 61 72 67 4c 69 73 74 20 7b 0a 09 69 66 20 7b 21 .{cmdsw.value}.$argList.{..if.{!
32ec0 5b 69 6e 66 6f 20 65 78 69 73 74 73 20 63 6d 64 28 24 63 6d 64 73 77 29 5d 7d 20 7b 0a 09 20 20 [info.exists.cmd($cmdsw)]}.{....
32ee0 20 20 65 72 72 6f 72 20 22 62 61 64 20 6f 70 74 69 6f 6e 20 5c 22 24 63 6d 64 73 77 5c 22 3a 20 ..error."bad.option.\"$cmdsw\":.
32f00 6d 75 73 74 20 62 65 20 5b 74 63 6c 4c 69 73 74 56 61 6c 69 64 46 6c 61 67 73 20 63 6d 64 5d 22 must.be.[tclListValidFlags.cmd]"
32f20 0a 09 7d 0a 09 73 65 74 20 64 61 74 61 28 24 63 6d 64 73 77 29 20 24 76 61 6c 75 65 0a 20 20 20 ..}..set.data($cmdsw).$value....
32f40 20 7d 0a 0a 20 20 20 20 23 20 44 6f 6e 65 21 0a 7d 0a 0a 70 72 6f 63 20 74 63 6c 4c 69 73 74 56 .}......#.Done!.}..proc.tclListV
32f60 61 6c 69 64 46 6c 61 67 73 20 7b 76 7d 20 7b 0a 20 20 20 20 75 70 76 61 72 20 24 76 20 63 6d 64 alidFlags.{v}.{.....upvar.$v.cmd
32f80 0a 0a 20 20 20 20 73 65 74 20 6c 65 6e 20 5b 6c 6c 65 6e 67 74 68 20 5b 61 72 72 61 79 20 6e 61 ......set.len.[llength.[array.na
32fa0 6d 65 73 20 63 6d 64 5d 5d 0a 20 20 20 20 73 65 74 20 69 20 31 0a 20 20 20 20 73 65 74 20 73 65 mes.cmd]].....set.i.1.....set.se
32fc0 70 61 72 61 74 6f 72 20 22 22 0a 20 20 20 20 73 65 74 20 65 72 72 6f 72 6d 73 67 20 22 22 0a 20 parator."".....set.errormsg.""..
32fe0 20 20 20 66 6f 72 65 61 63 68 20 63 6d 64 73 77 20 5b 6c 73 6f 72 74 20 5b 61 72 72 61 79 20 6e ...foreach.cmdsw.[lsort.[array.n
33000 61 6d 65 73 20 63 6d 64 5d 5d 20 7b 0a 09 61 70 70 65 6e 64 20 65 72 72 6f 72 6d 73 67 20 22 24 ames.cmd]].{..append.errormsg."$
33020 73 65 70 61 72 61 74 6f 72 24 63 6d 64 73 77 22 0a 09 69 6e 63 72 20 69 0a 09 69 66 20 7b 24 69 separator$cmdsw"..incr.i..if.{$i
33040 20 3d 3d 20 24 6c 65 6e 7d 20 7b 0a 09 20 20 20 20 73 65 74 20 73 65 70 61 72 61 74 6f 72 20 22 .==.$len}.{......set.separator."
33060 2c 20 6f 72 20 22 0a 09 7d 20 65 6c 73 65 20 7b 0a 09 20 20 20 20 73 65 74 20 73 65 70 61 72 61 ,.or."..}.else.{......set.separa
33080 74 6f 72 20 22 2c 20 22 0a 09 7d 0a 20 20 20 20 7d 0a 20 20 20 20 72 65 74 75 72 6e 20 24 65 72 tor.",."..}.....}.....return.$er
330a0 72 6f 72 6d 73 67 0a 7d 0a 0a 23 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d rormsg.}..#---------------------
330c0 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d --------------------------------
330e0 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 0a 23 0a 23 09 09 09 46 6f 63 75 73 20 47 72 -----------------.#.#...Focus.Gr
33100 6f 75 70 0a 23 0a 23 20 46 6f 63 75 73 20 67 72 6f 75 70 73 20 61 72 65 20 75 73 65 64 20 74 6f oup.#.#.Focus.groups.are.used.to
33120 20 68 61 6e 64 6c 65 20 74 68 65 20 75 73 65 72 27 73 20 66 6f 63 75 73 69 6e 67 20 61 63 74 69 .handle.the.user's.focusing.acti
33140 6f 6e 73 20 69 6e 73 69 64 65 20 61 0a 23 20 74 6f 70 6c 65 76 65 6c 2e 0a 23 0a 23 20 4f 6e 65 ons.inside.a.#.toplevel..#.#.One
33160 20 65 78 61 6d 70 6c 65 20 6f 66 20 75 73 69 6e 67 20 66 6f 63 75 73 20 67 72 6f 75 70 73 20 69 .example.of.using.focus.groups.i
33180 73 3a 20 77 68 65 6e 20 74 68 65 20 75 73 65 72 20 66 6f 63 75 73 65 73 20 6f 6e 20 61 6e 0a 23 s:.when.the.user.focuses.on.an.#
331a0 20 65 6e 74 72 79 2c 20 74 68 65 20 74 65 78 74 20 69 6e 20 74 68 65 20 65 6e 74 72 79 20 69 73 .entry,.the.text.in.the.entry.is
331c0 20 68 69 67 68 6c 69 67 68 74 65 64 20 61 6e 64 20 74 68 65 20 63 75 72 73 6f 72 20 69 73 20 70 .highlighted.and.the.cursor.is.p
331e0 75 74 20 74 6f 0a 23 20 74 68 65 20 65 6e 64 20 6f 66 20 74 68 65 20 74 65 78 74 2e 20 57 68 65 ut.to.#.the.end.of.the.text..Whe
33200 6e 20 74 68 65 20 75 73 65 72 20 63 68 61 6e 67 65 73 20 66 6f 63 75 73 20 74 6f 20 61 6e 6f 74 n.the.user.changes.focus.to.anot
33220 68 65 72 20 77 69 64 67 65 74 2c 0a 23 20 74 68 65 20 74 65 78 74 20 69 6e 20 74 68 65 20 70 72 her.widget,.#.the.text.in.the.pr
33240 65 76 69 6f 75 73 6c 79 20 66 6f 63 75 73 65 64 20 65 6e 74 72 79 20 69 73 20 76 61 6c 69 64 61 eviously.focused.entry.is.valida
33260 74 65 64 2e 0a 23 0a 23 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d ted..#.#------------------------
33280 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d --------------------------------
332a0 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 0a 0a 0a 23 20 74 6b 46 6f 63 75 73 47 72 6f 75 70 5f --------------...#.tkFocusGroup_
332c0 43 72 65 61 74 65 20 2d 2d 0a 23 0a 23 09 43 72 65 61 74 65 20 61 20 66 6f 63 75 73 20 67 72 6f Create.--.#.#.Create.a.focus.gro
332e0 75 70 2e 20 41 6c 6c 20 74 68 65 20 77 69 64 67 65 74 73 20 69 6e 20 61 20 66 6f 63 75 73 20 67 up..All.the.widgets.in.a.focus.g
33300 72 6f 75 70 20 6d 75 73 74 20 62 65 0a 23 09 77 69 74 68 69 6e 20 74 68 65 20 73 61 6d 65 20 66 roup.must.be.#.within.the.same.f
33320 6f 63 75 73 20 74 6f 70 6c 65 76 65 6c 2e 20 45 61 63 68 20 74 6f 70 6c 65 76 65 6c 20 63 61 6e ocus.toplevel..Each.toplevel.can
33340 20 68 61 76 65 20 6f 6e 6c 79 0a 23 09 6f 6e 65 20 66 6f 63 75 73 20 67 72 6f 75 70 2c 20 77 68 .have.only.#.one.focus.group,.wh
33360 69 63 68 20 69 73 20 69 64 65 6e 74 69 66 69 65 64 20 62 79 20 74 68 65 20 6e 61 6d 65 20 6f 66 ich.is.identified.by.the.name.of
33380 20 74 68 65 0a 23 09 74 6f 70 6c 65 76 65 6c 20 77 69 64 67 65 74 2e 0a 23 0a 70 72 6f 63 20 74 .the.#.toplevel.widget..#.proc.t
333a0 6b 46 6f 63 75 73 47 72 6f 75 70 5f 43 72 65 61 74 65 20 7b 74 7d 20 7b 0a 20 20 20 20 67 6c 6f kFocusGroup_Create.{t}.{.....glo
333c0 62 61 6c 20 74 6b 50 72 69 76 0a 20 20 20 20 69 66 20 7b 5b 73 74 72 69 6e 67 20 63 6f 6d 70 61 bal.tkPriv.....if.{[string.compa
333e0 72 65 20 5b 77 69 6e 66 6f 20 74 6f 70 6c 65 76 65 6c 20 24 74 5d 20 24 74 5d 7d 20 7b 0a 09 65 re.[winfo.toplevel.$t].$t]}.{..e
33400 72 72 6f 72 20 22 24 74 20 69 73 20 6e 6f 74 20 61 20 74 6f 70 6c 65 76 65 6c 20 77 69 6e 64 6f rror."$t.is.not.a.toplevel.windo
33420 77 22 0a 20 20 20 20 7d 0a 20 20 20 20 69 66 20 7b 21 5b 69 6e 66 6f 20 65 78 69 73 74 73 20 74 w".....}.....if.{![info.exists.t
33440 6b 50 72 69 76 28 66 67 2c 24 74 29 5d 7d 20 7b 0a 09 73 65 74 20 74 6b 50 72 69 76 28 66 67 2c kPriv(fg,$t)]}.{..set.tkPriv(fg,
33460 24 74 29 20 31 0a 09 73 65 74 20 74 6b 50 72 69 76 28 66 6f 63 75 73 2c 24 74 29 20 22 22 0a 09 $t).1..set.tkPriv(focus,$t).""..
33480 62 69 6e 64 20 24 74 20 3c 46 6f 63 75 73 49 6e 3e 20 20 5b 6c 69 73 74 20 74 6b 46 6f 63 75 73 bind.$t.<FocusIn>..[list.tkFocus
334a0 47 72 6f 75 70 5f 49 6e 20 20 24 74 20 25 57 20 25 64 5d 0a 09 62 69 6e 64 20 24 74 20 3c 46 6f Group_In..$t.%W.%d]..bind.$t.<Fo
334c0 63 75 73 4f 75 74 3e 20 5b 6c 69 73 74 20 74 6b 46 6f 63 75 73 47 72 6f 75 70 5f 4f 75 74 20 24 cusOut>.[list.tkFocusGroup_Out.$
334e0 74 20 25 57 20 25 64 5d 0a 09 62 69 6e 64 20 24 74 20 3c 44 65 73 74 72 6f 79 3e 20 20 5b 6c 69 t.%W.%d]..bind.$t.<Destroy>..[li
33500 73 74 20 74 6b 46 6f 63 75 73 47 72 6f 75 70 5f 44 65 73 74 72 6f 79 20 24 74 20 25 57 5d 0a 20 st.tkFocusGroup_Destroy.$t.%W]..
33520 20 20 20 7d 0a 7d 0a 0a 23 20 74 6b 46 6f 63 75 73 47 72 6f 75 70 5f 42 69 6e 64 49 6e 20 2d 2d ...}.}..#.tkFocusGroup_BindIn.--
33540 0a 23 0a 23 20 41 64 64 20 61 20 77 69 64 67 65 74 20 69 6e 74 6f 20 74 68 65 20 22 46 6f 63 75 .#.#.Add.a.widget.into.the."Focu
33560 73 49 6e 22 20 6c 69 73 74 20 6f 66 20 74 68 65 20 66 6f 63 75 73 20 67 72 6f 75 70 2e 20 54 68 sIn".list.of.the.focus.group..Th
33580 65 20 24 63 6d 64 20 77 69 6c 6c 20 62 65 0a 23 20 63 61 6c 6c 65 64 20 77 68 65 6e 20 74 68 65 e.$cmd.will.be.#.called.when.the
335a0 20 77 69 64 67 65 74 20 69 73 20 66 6f 63 75 73 65 64 20 6f 6e 20 62 79 20 74 68 65 20 75 73 65 .widget.is.focused.on.by.the.use
335c0 72 2e 0a 23 0a 70 72 6f 63 20 74 6b 46 6f 63 75 73 47 72 6f 75 70 5f 42 69 6e 64 49 6e 20 7b 74 r..#.proc.tkFocusGroup_BindIn.{t
335e0 20 77 20 63 6d 64 7d 20 7b 0a 20 20 20 20 67 6c 6f 62 61 6c 20 74 6b 46 6f 63 75 73 49 6e 20 74 .w.cmd}.{.....global.tkFocusIn.t
33600 6b 50 72 69 76 0a 20 20 20 20 69 66 20 7b 21 5b 69 6e 66 6f 20 65 78 69 73 74 73 20 74 6b 50 72 kPriv.....if.{![info.exists.tkPr
33620 69 76 28 66 67 2c 24 74 29 5d 7d 20 7b 0a 09 65 72 72 6f 72 20 22 66 6f 63 75 73 20 67 72 6f 75 iv(fg,$t)]}.{..error."focus.grou
33640 70 20 5c 22 24 74 5c 22 20 64 6f 65 73 6e 27 74 20 65 78 69 73 74 22 0a 20 20 20 20 7d 0a 20 20 p.\"$t\".doesn't.exist".....}...
33660 20 20 73 65 74 20 74 6b 46 6f 63 75 73 49 6e 28 24 74 2c 24 77 29 20 24 63 6d 64 0a 7d 0a 0a 0a ..set.tkFocusIn($t,$w).$cmd.}...
33680 23 20 74 6b 46 6f 63 75 73 47 72 6f 75 70 5f 42 69 6e 64 4f 75 74 20 2d 2d 0a 23 0a 23 09 41 64 #.tkFocusGroup_BindOut.--.#.#.Ad
336a0 64 20 61 20 77 69 64 67 65 74 20 69 6e 74 6f 20 74 68 65 20 22 46 6f 63 75 73 4f 75 74 22 20 6c d.a.widget.into.the."FocusOut".l
336c0 69 73 74 20 6f 66 20 74 68 65 20 66 6f 63 75 73 20 67 72 6f 75 70 2e 20 54 68 65 0a 23 09 24 63 ist.of.the.focus.group..The.#.$c
336e0 6d 64 20 77 69 6c 6c 20 62 65 20 63 61 6c 6c 65 64 20 77 68 65 6e 20 74 68 65 20 77 69 64 67 65 md.will.be.called.when.the.widge
33700 74 20 6c 6f 73 65 73 20 74 68 65 20 66 6f 63 75 73 20 28 55 73 65 72 0a 23 09 74 79 70 65 73 20 t.loses.the.focus.(User.#.types.
33720 54 61 62 20 6f 72 20 63 6c 69 63 6b 20 6f 6e 20 61 6e 6f 74 68 65 72 20 77 69 64 67 65 74 29 2e Tab.or.click.on.another.widget).
33740 0a 23 0a 70 72 6f 63 20 74 6b 46 6f 63 75 73 47 72 6f 75 70 5f 42 69 6e 64 4f 75 74 20 7b 74 20 .#.proc.tkFocusGroup_BindOut.{t.
33760 77 20 63 6d 64 7d 20 7b 0a 20 20 20 20 67 6c 6f 62 61 6c 20 74 6b 46 6f 63 75 73 4f 75 74 20 74 w.cmd}.{.....global.tkFocusOut.t
33780 6b 50 72 69 76 0a 20 20 20 20 69 66 20 7b 21 5b 69 6e 66 6f 20 65 78 69 73 74 73 20 74 6b 50 72 kPriv.....if.{![info.exists.tkPr
337a0 69 76 28 66 67 2c 24 74 29 5d 7d 20 7b 0a 09 65 72 72 6f 72 20 22 66 6f 63 75 73 20 67 72 6f 75 iv(fg,$t)]}.{..error."focus.grou
337c0 70 20 5c 22 24 74 5c 22 20 64 6f 65 73 6e 27 74 20 65 78 69 73 74 22 0a 20 20 20 20 7d 0a 20 20 p.\"$t\".doesn't.exist".....}...
337e0 20 20 73 65 74 20 74 6b 46 6f 63 75 73 4f 75 74 28 24 74 2c 24 77 29 20 24 63 6d 64 0a 7d 0a 0a ..set.tkFocusOut($t,$w).$cmd.}..
33800 23 20 74 6b 46 6f 63 75 73 47 72 6f 75 70 5f 44 65 73 74 72 6f 79 20 2d 2d 0a 23 0a 23 09 43 6c #.tkFocusGroup_Destroy.--.#.#.Cl
33820 65 61 6e 73 20 75 70 20 77 68 65 6e 20 6d 65 6d 62 65 72 73 20 6f 66 20 74 68 65 20 66 6f 63 75 eans.up.when.members.of.the.focu
33840 73 20 67 72 6f 75 70 20 69 73 20 64 65 6c 65 74 65 64 2c 20 6f 72 20 77 68 65 6e 20 74 68 65 0a s.group.is.deleted,.or.when.the.
33860 23 09 74 6f 70 6c 65 76 65 6c 20 69 74 73 65 6c 66 20 67 65 74 73 20 64 65 6c 65 74 65 64 2e 0a #.toplevel.itself.gets.deleted..
33880 23 0a 70 72 6f 63 20 74 6b 46 6f 63 75 73 47 72 6f 75 70 5f 44 65 73 74 72 6f 79 20 7b 74 20 77 #.proc.tkFocusGroup_Destroy.{t.w
338a0 7d 20 7b 0a 20 20 20 20 67 6c 6f 62 61 6c 20 74 6b 50 72 69 76 20 74 6b 46 6f 63 75 73 49 6e 20 }.{.....global.tkPriv.tkFocusIn.
338c0 74 6b 46 6f 63 75 73 4f 75 74 0a 0a 20 20 20 20 69 66 20 7b 5b 73 74 72 69 6e 67 20 65 71 75 61 tkFocusOut......if.{[string.equa
338e0 6c 20 24 74 20 24 77 5d 7d 20 7b 0a 09 75 6e 73 65 74 20 74 6b 50 72 69 76 28 66 67 2c 24 74 29 l.$t.$w]}.{..unset.tkPriv(fg,$t)
33900 0a 09 75 6e 73 65 74 20 74 6b 50 72 69 76 28 66 6f 63 75 73 2c 24 74 29 20 0a 0a 09 66 6f 72 65 ..unset.tkPriv(focus,$t)....fore
33920 61 63 68 20 6e 61 6d 65 20 5b 61 72 72 61 79 20 6e 61 6d 65 73 20 74 6b 46 6f 63 75 73 49 6e 20 ach.name.[array.names.tkFocusIn.
33940 24 74 2c 2a 5d 20 7b 0a 09 20 20 20 20 75 6e 73 65 74 20 74 6b 46 6f 63 75 73 49 6e 28 24 6e 61 $t,*].{......unset.tkFocusIn($na
33960 6d 65 29 0a 09 7d 0a 09 66 6f 72 65 61 63 68 20 6e 61 6d 65 20 5b 61 72 72 61 79 20 6e 61 6d 65 me)..}..foreach.name.[array.name
33980 73 20 74 6b 46 6f 63 75 73 4f 75 74 20 24 74 2c 2a 5d 20 7b 0a 09 20 20 20 20 75 6e 73 65 74 20 s.tkFocusOut.$t,*].{......unset.
339a0 74 6b 46 6f 63 75 73 4f 75 74 28 24 6e 61 6d 65 29 0a 09 7d 0a 20 20 20 20 7d 20 65 6c 73 65 20 tkFocusOut($name)..}.....}.else.
339c0 7b 0a 09 69 66 20 7b 5b 69 6e 66 6f 20 65 78 69 73 74 73 20 74 6b 50 72 69 76 28 66 6f 63 75 73 {..if.{[info.exists.tkPriv(focus
339e0 2c 24 74 29 5d 20 26 26 20 5c 0a 09 09 5b 73 74 72 69 6e 67 20 65 71 75 61 6c 20 24 74 6b 50 72 ,$t)].&&.\...[string.equal.$tkPr
33a00 69 76 28 66 6f 63 75 73 2c 24 74 29 20 24 77 5d 7d 20 7b 0a 09 20 20 20 20 73 65 74 20 74 6b 50 iv(focus,$t).$w]}.{......set.tkP
33a20 72 69 76 28 66 6f 63 75 73 2c 24 74 29 20 22 22 0a 09 7d 0a 09 63 61 74 63 68 20 7b 0a 09 20 20 riv(focus,$t).""..}..catch.{....
33a40 20 20 75 6e 73 65 74 20 74 6b 46 6f 63 75 73 49 6e 28 24 74 2c 24 77 29 0a 09 7d 0a 09 63 61 74 ..unset.tkFocusIn($t,$w)..}..cat
33a60 63 68 20 7b 0a 09 20 20 20 20 75 6e 73 65 74 20 74 6b 46 6f 63 75 73 4f 75 74 28 24 74 2c 24 77 ch.{......unset.tkFocusOut($t,$w
33a80 29 0a 09 7d 0a 20 20 20 20 7d 0a 7d 0a 0a 23 20 74 6b 46 6f 63 75 73 47 72 6f 75 70 5f 49 6e 20 )..}.....}.}..#.tkFocusGroup_In.
33aa0 2d 2d 0a 23 0a 23 09 48 61 6e 64 6c 65 73 20 74 68 65 20 3c 46 6f 63 75 73 49 6e 3e 20 65 76 65 --.#.#.Handles.the.<FocusIn>.eve
33ac0 6e 74 2e 20 43 61 6c 6c 73 20 74 68 65 20 46 6f 63 75 73 49 6e 20 63 6f 6d 6d 61 6e 64 20 66 6f nt..Calls.the.FocusIn.command.fo
33ae0 72 20 74 68 65 20 6e 65 77 6c 79 0a 23 09 66 6f 63 75 73 65 64 20 77 69 64 67 65 74 20 69 6e 20 r.the.newly.#.focused.widget.in.
33b00 74 68 65 20 66 6f 63 75 73 20 67 72 6f 75 70 2e 0a 23 0a 70 72 6f 63 20 74 6b 46 6f 63 75 73 47 the.focus.group..#.proc.tkFocusG
33b20 72 6f 75 70 5f 49 6e 20 7b 74 20 77 20 64 65 74 61 69 6c 7d 20 7b 0a 20 20 20 20 67 6c 6f 62 61 roup_In.{t.w.detail}.{.....globa
33b40 6c 20 74 6b 50 72 69 76 20 74 6b 46 6f 63 75 73 49 6e 0a 0a 20 20 20 20 69 66 20 7b 21 5b 69 6e l.tkPriv.tkFocusIn......if.{![in
33b60 66 6f 20 65 78 69 73 74 73 20 74 6b 46 6f 63 75 73 49 6e 28 24 74 2c 24 77 29 5d 7d 20 7b 0a 09 fo.exists.tkFocusIn($t,$w)]}.{..
33b80 73 65 74 20 74 6b 46 6f 63 75 73 49 6e 28 24 74 2c 24 77 29 20 22 22 0a 09 72 65 74 75 72 6e 0a set.tkFocusIn($t,$w).""..return.
33ba0 20 20 20 20 7d 0a 20 20 20 20 69 66 20 7b 21 5b 69 6e 66 6f 20 65 78 69 73 74 73 20 74 6b 50 72 ....}.....if.{![info.exists.tkPr
33bc0 69 76 28 66 6f 63 75 73 2c 24 74 29 5d 7d 20 7b 0a 09 72 65 74 75 72 6e 0a 20 20 20 20 7d 0a 20 iv(focus,$t)]}.{..return.....}..
33be0 20 20 20 69 66 20 7b 5b 73 74 72 69 6e 67 20 65 71 75 61 6c 20 24 74 6b 50 72 69 76 28 66 6f 63 ...if.{[string.equal.$tkPriv(foc
33c00 75 73 2c 24 74 29 20 24 77 5d 7d 20 7b 0a 09 23 20 54 68 69 73 20 69 73 20 61 6c 72 65 61 64 79 us,$t).$w]}.{..#.This.is.already
33c20 20 69 6e 20 66 6f 63 75 73 0a 09 23 0a 09 72 65 74 75 72 6e 0a 20 20 20 20 7d 20 65 6c 73 65 20 .in.focus..#..return.....}.else.
33c40 7b 0a 09 73 65 74 20 74 6b 50 72 69 76 28 66 6f 63 75 73 2c 24 74 29 20 24 77 0a 09 65 76 61 6c {..set.tkPriv(focus,$t).$w..eval
33c60 20 24 74 6b 46 6f 63 75 73 49 6e 28 24 74 2c 24 77 29 0a 20 20 20 20 7d 0a 7d 0a 0a 23 20 74 6b .$tkFocusIn($t,$w).....}.}..#.tk
33c80 46 6f 63 75 73 47 72 6f 75 70 5f 4f 75 74 20 2d 2d 0a 23 0a 23 09 48 61 6e 64 6c 65 73 20 74 68 FocusGroup_Out.--.#.#.Handles.th
33ca0 65 20 3c 46 6f 63 75 73 4f 75 74 3e 20 65 76 65 6e 74 2e 20 43 68 65 63 6b 73 20 69 66 20 74 68 e.<FocusOut>.event..Checks.if.th
33cc0 69 73 20 69 73 20 72 65 61 6c 6c 79 20 61 20 6c 6f 73 65 0a 23 09 66 6f 63 75 73 20 65 76 65 6e is.is.really.a.lose.#.focus.even
33ce0 74 2c 20 6e 6f 74 20 6f 6e 65 20 67 65 6e 65 72 61 74 65 64 20 62 79 20 74 68 65 20 6d 6f 75 73 t,.not.one.generated.by.the.mous
33d00 65 20 6d 6f 76 69 6e 67 20 6f 75 74 20 6f 66 20 74 68 65 0a 23 09 74 6f 70 6c 65 76 65 6c 20 77 e.moving.out.of.the.#.toplevel.w
33d20 69 6e 64 6f 77 2e 20 20 43 61 6c 6c 73 20 74 68 65 20 46 6f 63 75 73 4f 75 74 20 63 6f 6d 6d 61 indow...Calls.the.FocusOut.comma
33d40 6e 64 20 66 6f 72 20 74 68 65 20 77 69 64 67 65 74 0a 23 09 77 68 6f 20 6c 6f 73 65 73 20 69 74 nd.for.the.widget.#.who.loses.it
33d60 73 20 66 6f 63 75 73 2e 0a 23 0a 70 72 6f 63 20 74 6b 46 6f 63 75 73 47 72 6f 75 70 5f 4f 75 74 s.focus..#.proc.tkFocusGroup_Out
33d80 20 7b 74 20 77 20 64 65 74 61 69 6c 7d 20 7b 0a 20 20 20 20 67 6c 6f 62 61 6c 20 74 6b 50 72 69 .{t.w.detail}.{.....global.tkPri
33da0 76 20 74 6b 46 6f 63 75 73 4f 75 74 0a 0a 20 20 20 20 69 66 20 7b 5b 73 74 72 69 6e 67 20 63 6f v.tkFocusOut......if.{[string.co
33dc0 6d 70 61 72 65 20 24 64 65 74 61 69 6c 20 4e 6f 74 69 66 79 4e 6f 6e 6c 69 6e 65 61 72 5d 20 26 mpare.$detail.NotifyNonlinear].&
33de0 26 0a 09 5b 73 74 72 69 6e 67 20 63 6f 6d 70 61 72 65 20 24 64 65 74 61 69 6c 20 4e 6f 74 69 66 &..[string.compare.$detail.Notif
33e00 79 4e 6f 6e 6c 69 6e 65 61 72 56 69 72 74 75 61 6c 5d 7d 20 7b 0a 09 23 20 54 68 69 73 20 69 73 yNonlinearVirtual]}.{..#.This.is
33e20 20 63 61 75 73 65 64 20 62 79 20 6d 6f 75 73 65 20 6d 6f 76 69 6e 67 20 6f 75 74 20 6f 66 20 74 .caused.by.mouse.moving.out.of.t
33e40 68 65 20 77 69 6e 64 6f 77 0a 09 72 65 74 75 72 6e 0a 20 20 20 20 7d 0a 20 20 20 20 69 66 20 7b he.window..return.....}.....if.{
33e60 21 5b 69 6e 66 6f 20 65 78 69 73 74 73 20 74 6b 50 72 69 76 28 66 6f 63 75 73 2c 24 74 29 5d 7d ![info.exists.tkPriv(focus,$t)]}
33e80 20 7b 0a 09 72 65 74 75 72 6e 0a 20 20 20 20 7d 0a 20 20 20 20 69 66 20 7b 21 5b 69 6e 66 6f 20 .{..return.....}.....if.{![info.
33ea0 65 78 69 73 74 73 20 74 6b 46 6f 63 75 73 4f 75 74 28 24 74 2c 24 77 29 5d 7d 20 7b 0a 09 72 65 exists.tkFocusOut($t,$w)]}.{..re
33ec0 74 75 72 6e 0a 20 20 20 20 7d 20 65 6c 73 65 20 7b 0a 09 65 76 61 6c 20 24 74 6b 46 6f 63 75 73 turn.....}.else.{..eval.$tkFocus
33ee0 4f 75 74 28 24 74 2c 24 77 29 0a 09 73 65 74 20 74 6b 50 72 69 76 28 66 6f 63 75 73 2c 24 74 29 Out($t,$w)..set.tkPriv(focus,$t)
33f00 20 22 22 0a 20 20 20 20 7d 0a 7d 0a 0a 23 20 74 6b 46 44 47 65 74 46 69 6c 65 54 79 70 65 73 20 ."".....}.}..#.tkFDGetFileTypes.
33f20 2d 2d 0a 23 0a 23 09 50 72 6f 63 65 73 73 20 74 68 65 20 73 74 72 69 6e 67 20 67 69 76 65 6e 20 --.#.#.Process.the.string.given.
33f40 62 79 20 74 68 65 20 2d 66 69 6c 65 74 79 70 65 73 20 6f 70 74 69 6f 6e 20 6f 66 20 74 68 65 20 by.the.-filetypes.option.of.the.
33f60 66 69 6c 65 0a 23 09 64 69 61 6c 6f 67 73 2e 20 53 69 6d 69 6c 61 72 20 74 6f 20 74 68 65 20 43 file.#.dialogs..Similar.to.the.C
33f80 20 66 75 6e 63 74 69 6f 6e 20 54 6b 47 65 74 46 69 6c 65 46 69 6c 74 65 72 73 28 29 20 6f 6e 20 .function.TkGetFileFilters().on.
33fa0 74 68 65 20 4d 61 63 0a 23 09 61 6e 64 20 57 69 6e 64 6f 77 73 20 70 6c 61 74 66 6f 72 6d 2e 0a the.Mac.#.and.Windows.platform..
33fc0 23 0a 70 72 6f 63 20 74 6b 46 44 47 65 74 46 69 6c 65 54 79 70 65 73 20 7b 73 74 72 69 6e 67 7d #.proc.tkFDGetFileTypes.{string}
33fe0 20 7b 0a 20 20 20 20 66 6f 72 65 61 63 68 20 74 20 24 73 74 72 69 6e 67 20 7b 0a 09 69 66 20 7b .{.....foreach.t.$string.{..if.{
34000 5b 6c 6c 65 6e 67 74 68 20 24 74 5d 20 3c 20 32 20 7c 7c 20 5b 6c 6c 65 6e 67 74 68 20 24 74 5d [llength.$t].<.2.||.[llength.$t]
34020 20 3e 20 33 7d 20 7b 0a 09 20 20 20 20 65 72 72 6f 72 20 22 62 61 64 20 66 69 6c 65 20 74 79 70 .>.3}.{......error."bad.file.typ
34040 65 20 5c 22 24 74 5c 22 2c 20 73 68 6f 75 6c 64 20 62 65 20 5c 22 74 79 70 65 4e 61 6d 65 20 7b e.\"$t\",.should.be.\"typeName.{
34060 65 78 74 65 6e 73 69 6f 6e 20 3f 65 78 74 65 6e 73 69 6f 6e 73 20 2e 2e 2e 3f 7d 20 3f 7b 6d 61 extension.?extensions....?}.?{ma
34080 63 54 79 70 65 20 3f 6d 61 63 54 79 70 65 73 20 2e 2e 2e 3f 7d 3f 5c 22 22 0a 09 7d 0a 09 65 76 cType.?macTypes....?}?\""..}..ev
340a0 61 6c 20 6c 61 70 70 65 6e 64 20 5b 6c 69 73 74 20 66 69 6c 65 54 79 70 65 73 28 5b 6c 69 6e 64 al.lappend.[list.fileTypes([lind
340c0 65 78 20 24 74 20 30 5d 29 5d 20 5b 6c 69 6e 64 65 78 20 24 74 20 31 5d 0a 20 20 20 20 7d 0a 0a ex.$t.0])].[lindex.$t.1].....}..
340e0 20 20 20 20 73 65 74 20 74 79 70 65 73 20 7b 7d 0a 20 20 20 20 66 6f 72 65 61 63 68 20 74 20 24 ....set.types.{}.....foreach.t.$
34100 73 74 72 69 6e 67 20 7b 0a 09 73 65 74 20 6c 61 62 65 6c 20 5b 6c 69 6e 64 65 78 20 24 74 20 30 string.{..set.label.[lindex.$t.0
34120 5d 0a 09 73 65 74 20 65 78 74 73 20 7b 7d 0a 0a 09 69 66 20 7b 5b 69 6e 66 6f 20 65 78 69 73 74 ]..set.exts.{}...if.{[info.exist
34140 73 20 68 61 73 44 6f 6e 65 54 79 70 65 28 24 6c 61 62 65 6c 29 5d 7d 20 7b 0a 09 20 20 20 20 63 s.hasDoneType($label)]}.{......c
34160 6f 6e 74 69 6e 75 65 0a 09 7d 0a 0a 09 73 65 74 20 6e 61 6d 65 20 22 24 6c 61 62 65 6c 20 28 22 ontinue..}...set.name."$label.("
34180 0a 09 73 65 74 20 73 65 70 20 22 22 0a 09 66 6f 72 65 61 63 68 20 65 78 74 20 24 66 69 6c 65 54 ..set.sep.""..foreach.ext.$fileT
341a0 79 70 65 73 28 24 6c 61 62 65 6c 29 20 7b 0a 09 20 20 20 20 69 66 20 7b 5b 73 74 72 69 6e 67 20 ypes($label).{......if.{[string.
341c0 65 71 75 61 6c 20 24 65 78 74 20 22 22 5d 7d 20 7b 0a 09 09 63 6f 6e 74 69 6e 75 65 0a 09 20 20 equal.$ext.""]}.{...continue....
341e0 20 20 7d 0a 09 20 20 20 20 72 65 67 73 75 62 20 7b 5e 5b 2e 5d 7d 20 24 65 78 74 20 22 2a 2e 22 ..}......regsub.{^[.]}.$ext."*."
34200 20 65 78 74 0a 09 20 20 20 20 69 66 20 7b 21 5b 69 6e 66 6f 20 65 78 69 73 74 73 20 68 61 73 47 .ext......if.{![info.exists.hasG
34220 6f 74 45 78 74 28 24 6c 61 62 65 6c 2c 24 65 78 74 29 5d 7d 20 7b 0a 09 09 61 70 70 65 6e 64 20 otExt($label,$ext)]}.{...append.
34240 6e 61 6d 65 20 24 73 65 70 24 65 78 74 0a 09 09 6c 61 70 70 65 6e 64 20 65 78 74 73 20 24 65 78 name.$sep$ext...lappend.exts.$ex
34260 74 0a 09 09 73 65 74 20 68 61 73 47 6f 74 45 78 74 28 24 6c 61 62 65 6c 2c 24 65 78 74 29 20 31 t...set.hasGotExt($label,$ext).1
34280 0a 09 20 20 20 20 7d 0a 09 20 20 20 20 73 65 74 20 73 65 70 20 2c 0a 09 7d 0a 09 61 70 70 65 6e ......}......set.sep.,..}..appen
342a0 64 20 6e 61 6d 65 20 22 29 22 0a 09 6c 61 70 70 65 6e 64 20 74 79 70 65 73 20 5b 6c 69 73 74 20 d.name.")"..lappend.types.[list.
342c0 24 6e 61 6d 65 20 24 65 78 74 73 5d 0a 0a 09 73 65 74 20 68 61 73 44 6f 6e 65 54 79 70 65 28 24 $name.$exts]...set.hasDoneType($
342e0 6c 61 62 65 6c 29 20 31 0a 20 20 20 20 7d 0a 0a 20 20 20 20 72 65 74 75 72 6e 20 24 74 79 70 65 label).1.....}......return.$type
34300 73 0a 7d 0a 00 00 42 fd 23 20 69 6e 69 74 2e 74 63 6c 20 2d 2d 0a 23 0a 23 20 44 65 66 61 75 6c s.}...B.#.init.tcl.--.#.#.Defaul
34320 74 20 73 79 73 74 65 6d 20 73 74 61 72 74 75 70 20 66 69 6c 65 20 66 6f 72 20 54 63 6c 2d 62 61 t.system.startup.file.for.Tcl-ba
34340 73 65 64 20 61 70 70 6c 69 63 61 74 69 6f 6e 73 2e 20 20 44 65 66 69 6e 65 73 0a 23 20 22 75 6e sed.applications...Defines.#."un
34360 6b 6e 6f 77 6e 22 20 70 72 6f 63 65 64 75 72 65 20 61 6e 64 20 61 75 74 6f 2d 6c 6f 61 64 20 66 known".procedure.and.auto-load.f
34380 61 63 69 6c 69 74 69 65 73 2e 0a 23 0a 23 20 52 43 53 3a 20 40 28 23 29 20 24 49 64 3a 20 69 6e acilities..#.#.RCS:.@(#).$Id:.in
343a0 69 74 2e 74 63 6c 2c 76 20 31 2e 33 39 20 32 30 30 30 2f 30 32 2f 30 31 20 31 39 3a 32 36 3a 30 it.tcl,v.1.39.2000/02/01.19:26:0
343c0 38 20 65 72 69 63 6d 20 45 78 70 20 24 0a 23 0a 23 20 43 6f 70 79 72 69 67 68 74 20 28 63 29 20 8.ericm.Exp.$.#.#.Copyright.(c).
343e0 31 39 39 31 2d 31 39 39 33 20 54 68 65 20 52 65 67 65 6e 74 73 20 6f 66 20 74 68 65 20 55 6e 69 1991-1993.The.Regents.of.the.Uni
34400 76 65 72 73 69 74 79 20 6f 66 20 43 61 6c 69 66 6f 72 6e 69 61 2e 0a 23 20 43 6f 70 79 72 69 67 versity.of.California..#.Copyrig
34420 68 74 20 28 63 29 20 31 39 39 34 2d 31 39 39 36 20 53 75 6e 20 4d 69 63 72 6f 73 79 73 74 65 6d ht.(c).1994-1996.Sun.Microsystem
34440 73 2c 20 49 6e 63 2e 0a 23 20 43 6f 70 79 72 69 67 68 74 20 28 63 29 20 31 39 39 38 2d 31 39 39 s,.Inc..#.Copyright.(c).1998-199
34460 39 20 53 63 72 69 70 74 69 63 73 20 43 6f 72 70 6f 72 61 74 69 6f 6e 2e 0a 23 0a 23 20 53 65 65 9.Scriptics.Corporation..#.#.See
34480 20 74 68 65 20 66 69 6c 65 20 22 6c 69 63 65 6e 73 65 2e 74 65 72 6d 73 22 20 66 6f 72 20 69 6e .the.file."license.terms".for.in
344a0 66 6f 72 6d 61 74 69 6f 6e 20 6f 6e 20 75 73 61 67 65 20 61 6e 64 20 72 65 64 69 73 74 72 69 62 formation.on.usage.and.redistrib
344c0 75 74 69 6f 6e 0a 23 20 6f 66 20 74 68 69 73 20 66 69 6c 65 2c 20 61 6e 64 20 66 6f 72 20 61 20 ution.#.of.this.file,.and.for.a.
344e0 44 49 53 43 4c 41 49 4d 45 52 20 4f 46 20 41 4c 4c 20 57 41 52 52 41 4e 54 49 45 53 2e 0a 23 0a DISCLAIMER.OF.ALL.WARRANTIES..#.
34500 0a 69 66 20 7b 5b 69 6e 66 6f 20 63 6f 6d 6d 61 6e 64 73 20 70 61 63 6b 61 67 65 5d 20 3d 3d 20 .if.{[info.commands.package].==.
34520 22 22 7d 20 7b 0a 20 20 20 20 65 72 72 6f 72 20 22 76 65 72 73 69 6f 6e 20 6d 69 73 6d 61 74 63 ""}.{.....error."version.mismatc
34540 68 3a 20 6c 69 62 72 61 72 79 5c 6e 73 63 72 69 70 74 73 20 65 78 70 65 63 74 20 54 63 6c 20 76 h:.library\nscripts.expect.Tcl.v
34560 65 72 73 69 6f 6e 20 37 2e 35 62 31 20 6f 72 20 6c 61 74 65 72 20 62 75 74 20 74 68 65 20 6c 6f ersion.7.5b1.or.later.but.the.lo
34580 61 64 65 64 20 76 65 72 73 69 6f 6e 20 69 73 5c 6e 6f 6e 6c 79 20 5b 69 6e 66 6f 20 70 61 74 63 aded.version.is\nonly.[info.patc
345a0 68 6c 65 76 65 6c 5d 22 0a 7d 0a 70 61 63 6b 61 67 65 20 72 65 71 75 69 72 65 20 2d 65 78 61 63 hlevel]".}.package.require.-exac
345c0 74 20 54 63 6c 20 38 2e 33 0a 0a 23 20 43 6f 6d 70 75 74 65 20 74 68 65 20 61 75 74 6f 20 70 61 t.Tcl.8.3..#.Compute.the.auto.pa
345e0 74 68 20 74 6f 20 75 73 65 20 69 6e 20 74 68 69 73 20 69 6e 74 65 72 70 72 65 74 65 72 2e 0a 23 th.to.use.in.this.interpreter..#
34600 20 54 68 65 20 76 61 6c 75 65 73 20 6f 6e 20 74 68 65 20 70 61 74 68 20 63 6f 6d 65 20 66 72 6f .The.values.on.the.path.come.fro
34620 6d 20 73 65 76 65 72 61 6c 20 6c 6f 63 61 74 69 6f 6e 73 3a 0a 23 0a 23 20 54 68 65 20 65 6e 76 m.several.locations:.#.#.The.env
34640 69 72 6f 6e 6d 65 6e 74 20 76 61 72 69 61 62 6c 65 20 54 43 4c 4c 49 42 50 41 54 48 0a 23 0a 23 ironment.variable.TCLLIBPATH.#.#
34660 20 74 63 6c 5f 6c 69 62 72 61 72 79 2c 20 77 68 69 63 68 20 69 73 20 74 68 65 20 64 69 72 65 63 .tcl_library,.which.is.the.direc
34680 74 6f 72 79 20 63 6f 6e 74 61 69 6e 69 6e 67 20 74 68 69 73 20 69 6e 69 74 2e 74 63 6c 20 73 63 tory.containing.this.init.tcl.sc
346a0 72 69 70 74 2e 0a 23 20 74 63 6c 49 6e 69 74 53 63 72 69 70 74 2e 68 20 73 65 61 72 63 68 65 73 ript..#.tclInitScript.h.searches
346c0 20 61 72 6f 75 6e 64 20 66 6f 72 20 74 68 65 20 64 69 72 65 63 74 6f 72 79 20 63 6f 6e 74 61 69 .around.for.the.directory.contai
346e0 6e 69 6e 67 20 74 68 69 73 0a 23 20 69 6e 69 74 2e 74 63 6c 20 61 6e 64 20 64 65 66 69 6e 65 73 ning.this.#.init.tcl.and.defines
34700 20 74 63 6c 5f 6c 69 62 72 61 72 79 20 74 6f 20 74 68 61 74 20 6c 6f 63 61 74 69 6f 6e 20 62 65 .tcl_library.to.that.location.be
34720 66 6f 72 65 20 73 6f 75 72 63 69 6e 67 20 69 74 2e 0a 23 0a 23 20 54 68 65 20 70 61 72 65 6e 74 fore.sourcing.it..#.#.The.parent
34740 20 64 69 72 65 63 74 6f 72 79 20 6f 66 20 74 63 6c 5f 6c 69 62 72 61 72 79 2e 20 41 64 64 69 6e .directory.of.tcl_library..Addin
34760 67 20 74 68 65 20 70 61 72 65 6e 74 0a 23 20 6d 65 61 6e 73 20 74 68 61 74 20 70 61 63 6b 61 67 g.the.parent.#.means.that.packag
34780 65 73 20 69 6e 20 70 65 65 72 20 64 69 72 65 63 74 6f 72 69 65 73 20 77 69 6c 6c 20 62 65 20 66 es.in.peer.directories.will.be.f
347a0 6f 75 6e 64 20 61 75 74 6f 6d 61 74 69 63 61 6c 6c 79 2e 0a 23 0a 23 20 41 6c 73 6f 20 61 64 64 ound.automatically..#.#.Also.add
347c0 20 74 68 65 20 64 69 72 65 63 74 6f 72 79 20 77 68 65 72 65 20 74 68 65 20 65 78 65 63 75 74 61 .the.directory.where.the.executa
347e0 62 6c 65 20 69 73 20 6c 6f 63 61 74 65 64 2c 20 70 6c 75 73 20 2e 2e 2f 6c 69 62 0a 23 20 72 65 ble.is.located,.plus.../lib.#.re
34800 6c 61 74 69 76 65 20 74 6f 20 74 68 61 74 20 70 61 74 68 2e 0a 23 0a 23 20 74 63 6c 5f 70 6b 67 lative.to.that.path..#.#.tcl_pkg
34820 50 61 74 68 2c 20 77 68 69 63 68 20 69 73 20 73 65 74 20 62 79 20 74 68 65 20 70 6c 61 74 66 6f Path,.which.is.set.by.the.platfo
34840 72 6d 2d 73 70 65 63 69 66 69 63 20 69 6e 69 74 69 61 6c 69 7a 61 74 69 6f 6e 20 72 6f 75 74 69 rm-specific.initialization.routi
34860 6e 65 73 0a 23 09 4f 6e 20 55 4e 49 58 20 69 74 20 69 73 20 63 6f 6d 70 69 6c 65 64 20 69 6e 0a nes.#.On.UNIX.it.is.compiled.in.
34880 23 20 20 20 20 20 20 20 4f 6e 20 57 69 6e 64 6f 77 73 2c 20 69 74 20 69 73 20 6e 6f 74 20 75 73 #.......On.Windows,.it.is.not.us
348a0 65 64 0a 23 09 4f 6e 20 4d 61 63 69 6e 74 6f 73 68 20 69 74 20 69 73 20 22 54 6f 6f 6c 20 43 6f ed.#.On.Macintosh.it.is."Tool.Co
348c0 6d 6d 61 6e 64 20 4c 61 6e 67 75 61 67 65 22 20 69 6e 20 74 68 65 20 45 78 74 65 6e 73 69 6f 6e mmand.Language".in.the.Extension
348e0 73 20 66 6f 6c 64 65 72 0a 0a 69 66 20 7b 21 5b 69 6e 66 6f 20 65 78 69 73 74 73 20 61 75 74 6f s.folder..if.{![info.exists.auto
34900 5f 70 61 74 68 5d 7d 20 7b 0a 20 20 20 20 69 66 20 7b 5b 69 6e 66 6f 20 65 78 69 73 74 20 65 6e _path]}.{.....if.{[info.exist.en
34920 76 28 54 43 4c 4c 49 42 50 41 54 48 29 5d 7d 20 7b 0a 09 73 65 74 20 61 75 74 6f 5f 70 61 74 68 v(TCLLIBPATH)]}.{..set.auto_path
34940 20 24 65 6e 76 28 54 43 4c 4c 49 42 50 41 54 48 29 0a 20 20 20 20 7d 20 65 6c 73 65 20 7b 0a 09 .$env(TCLLIBPATH).....}.else.{..
34960 73 65 74 20 61 75 74 6f 5f 70 61 74 68 20 22 22 0a 20 20 20 20 7d 0a 7d 0a 69 66 20 7b 5b 73 74 set.auto_path."".....}.}.if.{[st
34980 72 69 6e 67 20 63 6f 6d 70 61 72 65 20 5b 69 6e 66 6f 20 6c 69 62 72 61 72 79 5d 20 7b 7d 5d 7d ring.compare.[info.library].{}]}
349a0 20 7b 0a 20 20 20 20 66 6f 72 65 61 63 68 20 5f 5f 64 69 72 20 5b 6c 69 73 74 20 5b 69 6e 66 6f .{.....foreach.__dir.[list.[info
349c0 20 6c 69 62 72 61 72 79 5d 20 5b 66 69 6c 65 20 64 69 72 6e 61 6d 65 20 5b 69 6e 66 6f 20 6c 69 .library].[file.dirname.[info.li
349e0 62 72 61 72 79 5d 5d 5d 20 7b 0a 09 69 66 20 7b 5b 6c 73 65 61 72 63 68 20 2d 65 78 61 63 74 20 brary]]].{..if.{[lsearch.-exact.
34a00 24 61 75 74 6f 5f 70 61 74 68 20 24 5f 5f 64 69 72 5d 20 3c 20 30 7d 20 7b 0a 09 20 20 20 20 6c $auto_path.$__dir].<.0}.{......l
34a20 61 70 70 65 6e 64 20 61 75 74 6f 5f 70 61 74 68 20 24 5f 5f 64 69 72 0a 09 7d 0a 20 20 20 20 7d append.auto_path.$__dir..}.....}
34a40 0a 7d 0a 73 65 74 20 5f 5f 64 69 72 20 5b 66 69 6c 65 20 6a 6f 69 6e 20 5b 66 69 6c 65 20 64 69 .}.set.__dir.[file.join.[file.di
34a60 72 6e 61 6d 65 20 5b 66 69 6c 65 20 64 69 72 6e 61 6d 65 20 5c 0a 09 5b 69 6e 66 6f 20 6e 61 6d rname.[file.dirname.\..[info.nam
34a80 65 6f 66 65 78 65 63 75 74 61 62 6c 65 5d 5d 5d 20 6c 69 62 5d 0a 69 66 20 7b 5b 6c 73 65 61 72 eofexecutable]]].lib].if.{[lsear
34aa0 63 68 20 2d 65 78 61 63 74 20 24 61 75 74 6f 5f 70 61 74 68 20 24 5f 5f 64 69 72 5d 20 3c 20 30 ch.-exact.$auto_path.$__dir].<.0
34ac0 7d 20 7b 0a 20 20 20 20 6c 61 70 70 65 6e 64 20 61 75 74 6f 5f 70 61 74 68 20 24 5f 5f 64 69 72 }.{.....lappend.auto_path.$__dir
34ae0 0a 7d 0a 69 66 20 7b 5b 69 6e 66 6f 20 65 78 69 73 74 20 74 63 6c 5f 70 6b 67 50 61 74 68 5d 7d .}.if.{[info.exist.tcl_pkgPath]}
34b00 20 7b 0a 20 20 20 20 66 6f 72 65 61 63 68 20 5f 5f 64 69 72 20 24 74 63 6c 5f 70 6b 67 50 61 74 .{.....foreach.__dir.$tcl_pkgPat
34b20 68 20 7b 0a 09 69 66 20 7b 5b 6c 73 65 61 72 63 68 20 2d 65 78 61 63 74 20 24 61 75 74 6f 5f 70 h.{..if.{[lsearch.-exact.$auto_p
34b40 61 74 68 20 24 5f 5f 64 69 72 5d 20 3c 20 30 7d 20 7b 0a 09 20 20 20 20 6c 61 70 70 65 6e 64 20 ath.$__dir].<.0}.{......lappend.
34b60 61 75 74 6f 5f 70 61 74 68 20 24 5f 5f 64 69 72 0a 09 7d 0a 20 20 20 20 7d 0a 7d 0a 69 66 20 7b auto_path.$__dir..}.....}.}.if.{
34b80 5b 69 6e 66 6f 20 65 78 69 73 74 73 20 5f 5f 64 69 72 5d 7d 20 7b 0a 20 20 20 20 75 6e 73 65 74 [info.exists.__dir]}.{.....unset
34ba0 20 5f 5f 64 69 72 0a 7d 0a 20 20 0a 23 20 57 69 6e 64 6f 77 73 20 73 70 65 63 69 66 69 63 20 65 .__dir.}....#.Windows.specific.e
34bc0 6e 64 20 6f 66 20 69 6e 69 74 69 61 6c 69 7a 61 74 69 6f 6e 0a 0a 69 66 20 7b 28 21 5b 69 6e 74 nd.of.initialization..if.{(![int
34be0 65 72 70 20 69 73 73 61 66 65 5d 29 20 26 26 20 5b 73 74 72 69 6e 67 20 65 71 75 61 6c 20 24 74 erp.issafe]).&&.[string.equal.$t
34c00 63 6c 5f 70 6c 61 74 66 6f 72 6d 28 70 6c 61 74 66 6f 72 6d 29 20 22 77 69 6e 64 6f 77 73 22 5d cl_platform(platform)."windows"]
34c20 7d 20 7b 0a 20 20 20 20 6e 61 6d 65 73 70 61 63 65 20 65 76 61 6c 20 74 63 6c 20 7b 0a 09 70 72 }.{.....namespace.eval.tcl.{..pr
34c40 6f 63 20 65 6e 76 54 72 61 63 65 50 72 6f 63 20 7b 6c 6f 20 6e 31 20 6e 32 20 6f 70 7d 20 7b 0a oc.envTraceProc.{lo.n1.n2.op}.{.
34c60 09 20 20 20 20 73 65 74 20 78 20 24 3a 3a 65 6e 76 28 24 6e 32 29 0a 09 20 20 20 20 73 65 74 20 .....set.x.$::env($n2)......set.
34c80 3a 3a 65 6e 76 28 24 6c 6f 29 20 24 78 0a 09 20 20 20 20 73 65 74 20 3a 3a 65 6e 76 28 5b 73 74 ::env($lo).$x......set.::env([st
34ca0 72 69 6e 67 20 74 6f 75 70 70 65 72 20 24 6c 6f 5d 29 20 24 78 0a 09 7d 0a 20 20 20 20 7d 0a 20 ring.toupper.$lo]).$x..}.....}..
34cc0 20 20 20 66 6f 72 65 61 63 68 20 70 20 5b 61 72 72 61 79 20 6e 61 6d 65 73 20 65 6e 76 5d 20 7b ...foreach.p.[array.names.env].{
34ce0 0a 09 73 65 74 20 75 20 5b 73 74 72 69 6e 67 20 74 6f 75 70 70 65 72 20 24 70 5d 0a 09 69 66 20 ..set.u.[string.toupper.$p]..if.
34d00 7b 5b 73 74 72 69 6e 67 20 63 6f 6d 70 61 72 65 20 24 75 20 24 70 5d 7d 20 7b 0a 09 20 20 20 20 {[string.compare.$u.$p]}.{......
34d20 73 77 69 74 63 68 20 2d 2d 20 24 75 20 7b 0a 09 09 43 4f 4d 53 50 45 43 20 2d 0a 09 09 50 41 54 switch.--.$u.{...COMSPEC.-...PAT
34d40 48 20 7b 0a 09 09 20 20 20 20 69 66 20 7b 21 5b 69 6e 66 6f 20 65 78 69 73 74 73 20 65 6e 76 28 H.{.......if.{![info.exists.env(
34d60 24 75 29 5d 7d 20 7b 0a 09 09 09 73 65 74 20 65 6e 76 28 24 75 29 20 24 65 6e 76 28 24 70 29 0a $u)]}.{....set.env($u).$env($p).
34d80 09 09 20 20 20 20 7d 0a 09 09 20 20 20 20 74 72 61 63 65 20 76 61 72 69 61 62 6c 65 20 65 6e 76 ......}.......trace.variable.env
34da0 28 24 70 29 20 77 20 5b 6c 69 73 74 20 74 63 6c 3a 3a 65 6e 76 54 72 61 63 65 50 72 6f 63 20 24 ($p).w.[list.tcl::envTraceProc.$
34dc0 70 5d 0a 09 09 20 20 20 20 74 72 61 63 65 20 76 61 72 69 61 62 6c 65 20 65 6e 76 28 24 75 29 20 p].......trace.variable.env($u).
34de0 77 20 5b 6c 69 73 74 20 74 63 6c 3a 3a 65 6e 76 54 72 61 63 65 50 72 6f 63 20 24 70 5d 0a 09 09 w.[list.tcl::envTraceProc.$p]...
34e00 7d 0a 09 20 20 20 20 7d 0a 09 7d 0a 20 20 20 20 7d 0a 20 20 20 20 69 66 20 7b 5b 69 6e 66 6f 20 }......}..}.....}.....if.{[info.
34e20 65 78 69 73 74 73 20 70 5d 7d 20 7b 0a 09 75 6e 73 65 74 20 70 0a 20 20 20 20 7d 0a 20 20 20 20 exists.p]}.{..unset.p.....}.....
34e40 69 66 20 7b 5b 69 6e 66 6f 20 65 78 69 73 74 73 20 75 5d 7d 20 7b 0a 09 75 6e 73 65 74 20 75 0a if.{[info.exists.u]}.{..unset.u.
34e60 20 20 20 20 7d 0a 20 20 20 20 69 66 20 7b 21 5b 69 6e 66 6f 20 65 78 69 73 74 73 20 65 6e 76 28 ....}.....if.{![info.exists.env(
34e80 43 4f 4d 53 50 45 43 29 5d 7d 20 7b 0a 09 69 66 20 7b 5b 73 74 72 69 6e 67 20 65 71 75 61 6c 20 COMSPEC)]}.{..if.{[string.equal.
34ea0 24 74 63 6c 5f 70 6c 61 74 66 6f 72 6d 28 6f 73 29 20 22 57 69 6e 64 6f 77 73 20 4e 54 22 5d 7d $tcl_platform(os)."Windows.NT"]}
34ec0 20 7b 0a 09 20 20 20 20 73 65 74 20 65 6e 76 28 43 4f 4d 53 50 45 43 29 20 63 6d 64 2e 65 78 65 .{......set.env(COMSPEC).cmd.exe
34ee0 0a 09 7d 20 65 6c 73 65 20 7b 0a 09 20 20 20 20 73 65 74 20 65 6e 76 28 43 4f 4d 53 50 45 43 29 ..}.else.{......set.env(COMSPEC)
34f00 20 63 6f 6d 6d 61 6e 64 2e 63 6f 6d 0a 09 7d 0a 20 20 20 20 7d 0a 7d 0a 0a 23 20 53 65 74 75 70 .command.com..}.....}.}..#.Setup
34f20 20 74 68 65 20 75 6e 6b 6e 6f 77 6e 20 70 61 63 6b 61 67 65 20 68 61 6e 64 6c 65 72 0a 0a 70 61 .the.unknown.package.handler..pa
34f40 63 6b 61 67 65 20 75 6e 6b 6e 6f 77 6e 20 74 63 6c 50 6b 67 55 6e 6b 6e 6f 77 6e 0a 0a 23 20 43 ckage.unknown.tclPkgUnknown..#.C
34f60 6f 6e 64 69 74 69 6f 6e 61 6c 69 7a 65 20 66 6f 72 20 70 72 65 73 65 6e 63 65 20 6f 66 20 65 78 onditionalize.for.presence.of.ex
34f80 65 63 2e 0a 0a 69 66 20 7b 5b 6c 6c 65 6e 67 74 68 20 5b 69 6e 66 6f 20 63 6f 6d 6d 61 6e 64 73 ec...if.{[llength.[info.commands
34fa0 20 65 78 65 63 5d 5d 20 3d 3d 20 30 7d 20 7b 0a 0a 20 20 20 20 23 20 53 6f 6d 65 20 6d 61 63 68 .exec]].==.0}.{......#.Some.mach
34fc0 69 6e 65 73 2c 20 73 75 63 68 20 61 73 20 74 68 65 20 4d 61 63 69 6e 74 6f 73 68 2c 20 64 6f 20 ines,.such.as.the.Macintosh,.do.
34fe0 6e 6f 74 20 68 61 76 65 20 65 78 65 63 2e 20 41 6c 73 6f 2c 20 6f 6e 20 61 6c 6c 0a 20 20 20 20 not.have.exec..Also,.on.all.....
35000 23 20 70 6c 61 74 66 6f 72 6d 73 2c 20 73 61 66 65 20 69 6e 74 65 72 70 72 65 74 65 72 73 20 64 #.platforms,.safe.interpreters.d
35020 6f 20 6e 6f 74 20 68 61 76 65 20 65 78 65 63 2e 0a 0a 20 20 20 20 73 65 74 20 61 75 74 6f 5f 6e o.not.have.exec.......set.auto_n
35040 6f 65 78 65 63 20 31 0a 7d 0a 73 65 74 20 65 72 72 6f 72 43 6f 64 65 20 22 22 0a 73 65 74 20 65 oexec.1.}.set.errorCode."".set.e
35060 72 72 6f 72 49 6e 66 6f 20 22 22 0a 0a 23 20 44 65 66 69 6e 65 20 61 20 6c 6f 67 20 63 6f 6d 6d rrorInfo.""..#.Define.a.log.comm
35080 61 6e 64 20 28 77 68 69 63 68 20 63 61 6e 20 62 65 20 6f 76 65 72 77 69 74 74 65 6e 20 74 6f 20 and.(which.can.be.overwitten.to.
350a0 6c 6f 67 20 65 72 72 6f 72 73 0a 23 20 64 69 66 66 65 72 65 6e 74 6c 79 2c 20 73 70 65 63 69 61 log.errors.#.differently,.specia
350c0 6c 6c 79 20 77 68 65 6e 20 73 74 64 65 72 72 20 69 73 20 6e 6f 74 20 61 76 61 69 6c 61 62 6c 65 lly.when.stderr.is.not.available
350e0 29 0a 0a 69 66 20 7b 5b 6c 6c 65 6e 67 74 68 20 5b 69 6e 66 6f 20 63 6f 6d 6d 61 6e 64 73 20 74 )..if.{[llength.[info.commands.t
35100 63 6c 4c 6f 67 5d 5d 20 3d 3d 20 30 7d 20 7b 0a 20 20 20 20 70 72 6f 63 20 74 63 6c 4c 6f 67 20 clLog]].==.0}.{.....proc.tclLog.
35120 7b 73 74 72 69 6e 67 7d 20 7b 0a 09 63 61 74 63 68 20 7b 70 75 74 73 20 73 74 64 65 72 72 20 24 {string}.{..catch.{puts.stderr.$
35140 73 74 72 69 6e 67 7d 0a 20 20 20 20 7d 0a 7d 0a 0a 23 20 75 6e 6b 6e 6f 77 6e 20 2d 2d 0a 23 20 string}.....}.}..#.unknown.--.#.
35160 54 68 69 73 20 70 72 6f 63 65 64 75 72 65 20 69 73 20 63 61 6c 6c 65 64 20 77 68 65 6e 20 61 20 This.procedure.is.called.when.a.
35180 54 63 6c 20 63 6f 6d 6d 61 6e 64 20 69 73 20 69 6e 76 6f 6b 65 64 20 74 68 61 74 20 64 6f 65 73 Tcl.command.is.invoked.that.does
351a0 6e 27 74 0a 23 20 65 78 69 73 74 20 69 6e 20 74 68 65 20 69 6e 74 65 72 70 72 65 74 65 72 2e 20 n't.#.exist.in.the.interpreter..
351c0 20 49 74 20 74 61 6b 65 73 20 74 68 65 20 66 6f 6c 6c 6f 77 69 6e 67 20 73 74 65 70 73 20 74 6f .It.takes.the.following.steps.to
351e0 20 6d 61 6b 65 20 74 68 65 0a 23 20 63 6f 6d 6d 61 6e 64 20 61 76 61 69 6c 61 62 6c 65 3a 0a 23 .make.the.#.command.available:.#
35200 0a 23 09 31 2e 20 53 65 65 20 69 66 20 74 68 65 20 63 6f 6d 6d 61 6e 64 20 68 61 73 20 74 68 65 .#.1..See.if.the.command.has.the
35220 20 66 6f 72 6d 20 22 6e 61 6d 65 73 70 61 63 65 20 69 6e 73 63 6f 70 65 20 6e 73 20 63 6d 64 22 .form."namespace.inscope.ns.cmd"
35240 20 61 6e 64 0a 23 09 20 20 20 69 66 20 73 6f 2c 20 63 6f 6e 63 61 74 65 6e 61 74 65 20 69 74 73 .and.#....if.so,.concatenate.its
35260 20 61 72 67 75 6d 65 6e 74 73 20 6f 6e 74 6f 20 74 68 65 20 65 6e 64 20 61 6e 64 20 65 76 61 6c .arguments.onto.the.end.and.eval
35280 75 61 74 65 20 69 74 2e 0a 23 09 32 2e 20 53 65 65 20 69 66 20 74 68 65 20 61 75 74 6f 6c 6f 61 uate.it..#.2..See.if.the.autoloa
352a0 64 20 66 61 63 69 6c 69 74 79 20 63 61 6e 20 6c 6f 63 61 74 65 20 74 68 65 20 63 6f 6d 6d 61 6e d.facility.can.locate.the.comman
352c0 64 20 69 6e 20 61 0a 23 09 20 20 20 54 63 6c 20 73 63 72 69 70 74 20 66 69 6c 65 2e 20 20 49 66 d.in.a.#....Tcl.script.file...If
352e0 20 73 6f 2c 20 6c 6f 61 64 20 69 74 20 61 6e 64 20 65 78 65 63 75 74 65 20 69 74 2e 0a 23 09 33 .so,.load.it.and.execute.it..#.3
35300 2e 20 49 66 20 74 68 65 20 63 6f 6d 6d 61 6e 64 20 77 61 73 20 69 6e 76 6f 6b 65 64 20 69 6e 74 ..If.the.command.was.invoked.int
35320 65 72 61 63 74 69 76 65 6c 79 20 61 74 20 74 6f 70 2d 6c 65 76 65 6c 3a 0a 23 09 20 20 20 20 28 eractively.at.top-level:.#.....(
35340 61 29 20 73 65 65 20 69 66 20 74 68 65 20 63 6f 6d 6d 61 6e 64 20 65 78 69 73 74 73 20 61 73 20 a).see.if.the.command.exists.as.
35360 61 6e 20 65 78 65 63 75 74 61 62 6c 65 20 55 4e 49 58 20 70 72 6f 67 72 61 6d 2e 0a 23 09 09 49 an.executable.UNIX.program..#..I
35380 66 20 73 6f 2c 20 22 65 78 65 63 22 20 74 68 65 20 63 6f 6d 6d 61 6e 64 2e 0a 23 09 20 20 20 20 f.so,."exec".the.command..#.....
353a0 28 62 29 20 73 65 65 20 69 66 20 74 68 65 20 63 6f 6d 6d 61 6e 64 20 72 65 71 75 65 73 74 73 20 (b).see.if.the.command.requests.
353c0 63 73 68 2d 6c 69 6b 65 20 68 69 73 74 6f 72 79 20 73 75 62 73 74 69 74 75 74 69 6f 6e 0a 23 09 csh-like.history.substitution.#.
353e0 09 69 6e 20 6f 6e 65 20 6f 66 20 74 68 65 20 63 6f 6d 6d 6f 6e 20 66 6f 72 6d 73 20 21 21 2c 20 .in.one.of.the.common.forms.!!,.
35400 21 3c 6e 75 6d 62 65 72 3e 2c 20 6f 72 20 5e 6f 6c 64 5e 6e 65 77 2e 20 20 49 66 0a 23 09 09 73 !<number>,.or.^old^new...If.#..s
35420 6f 2c 20 65 6d 75 6c 61 74 65 20 63 73 68 27 73 20 68 69 73 74 6f 72 79 20 73 75 62 73 74 69 74 o,.emulate.csh's.history.substit
35440 75 74 69 6f 6e 2e 0a 23 09 20 20 20 20 28 63 29 20 73 65 65 20 69 66 20 74 68 65 20 63 6f 6d 6d ution..#.....(c).see.if.the.comm
35460 61 6e 64 20 69 73 20 61 20 75 6e 69 71 75 65 20 61 62 62 72 65 76 69 61 74 69 6f 6e 20 66 6f 72 and.is.a.unique.abbreviation.for
35480 20 61 6e 6f 74 68 65 72 0a 23 09 09 63 6f 6d 6d 61 6e 64 2e 20 20 49 66 20 73 6f 2c 20 69 6e 76 .another.#..command...If.so,.inv
354a0 6f 6b 65 20 74 68 65 20 63 6f 6d 6d 61 6e 64 2e 0a 23 0a 23 20 41 72 67 75 6d 65 6e 74 73 3a 0a oke.the.command..#.#.Arguments:.
354c0 23 20 61 72 67 73 20 2d 09 41 20 6c 69 73 74 20 77 68 6f 73 65 20 65 6c 65 6d 65 6e 74 73 20 61 #.args.-.A.list.whose.elements.a
354e0 72 65 20 74 68 65 20 77 6f 72 64 73 20 6f 66 20 74 68 65 20 6f 72 69 67 69 6e 61 6c 0a 23 09 09 re.the.words.of.the.original.#..
35500 63 6f 6d 6d 61 6e 64 2c 20 69 6e 63 6c 75 64 69 6e 67 20 74 68 65 20 63 6f 6d 6d 61 6e 64 20 6e command,.including.the.command.n
35520 61 6d 65 2e 0a 0a 70 72 6f 63 20 75 6e 6b 6e 6f 77 6e 20 61 72 67 73 20 7b 0a 20 20 20 20 67 6c ame...proc.unknown.args.{.....gl
35540 6f 62 61 6c 20 61 75 74 6f 5f 6e 6f 65 78 65 63 20 61 75 74 6f 5f 6e 6f 6c 6f 61 64 20 65 6e 76 obal.auto_noexec.auto_noload.env
35560 20 75 6e 6b 6e 6f 77 6e 5f 70 65 6e 64 69 6e 67 20 74 63 6c 5f 69 6e 74 65 72 61 63 74 69 76 65 .unknown_pending.tcl_interactive
35580 0a 20 20 20 20 67 6c 6f 62 61 6c 20 65 72 72 6f 72 43 6f 64 65 20 65 72 72 6f 72 49 6e 66 6f 0a .....global.errorCode.errorInfo.
355a0 0a 20 20 20 20 23 20 49 66 20 74 68 65 20 63 6f 6d 6d 61 6e 64 20 77 6f 72 64 20 68 61 73 20 74 .....#.If.the.command.word.has.t
355c0 68 65 20 66 6f 72 6d 20 22 6e 61 6d 65 73 70 61 63 65 20 69 6e 73 63 6f 70 65 20 6e 73 20 63 6d he.form."namespace.inscope.ns.cm
355e0 64 22 0a 20 20 20 20 23 20 74 68 65 6e 20 63 6f 6e 63 61 74 65 6e 61 74 65 20 69 74 73 20 61 72 d".....#.then.concatenate.its.ar
35600 67 75 6d 65 6e 74 73 20 6f 6e 74 6f 20 74 68 65 20 65 6e 64 20 61 6e 64 20 65 76 61 6c 75 61 74 guments.onto.the.end.and.evaluat
35620 65 20 69 74 2e 0a 0a 20 20 20 20 73 65 74 20 63 6d 64 20 5b 6c 69 6e 64 65 78 20 24 61 72 67 73 e.it.......set.cmd.[lindex.$args
35640 20 30 5d 0a 20 20 20 20 69 66 20 7b 5b 72 65 67 65 78 70 20 22 5e 6e 61 6d 65 73 70 61 63 65 5c .0].....if.{[regexp."^namespace\
35660 5b 20 5c 74 5c 6e 5c 5d 2b 69 6e 73 63 6f 70 65 22 20 24 63 6d 64 5d 20 26 26 20 5b 6c 6c 65 6e [.\t\n\]+inscope".$cmd].&&.[llen
35680 67 74 68 20 24 63 6d 64 5d 20 3d 3d 20 34 7d 20 7b 0a 20 20 20 20 20 20 20 20 73 65 74 20 61 72 gth.$cmd].==.4}.{.........set.ar
356a0 67 6c 69 73 74 20 5b 6c 72 61 6e 67 65 20 24 61 72 67 73 20 31 20 65 6e 64 5d 0a 09 73 65 74 20 glist.[lrange.$args.1.end]..set.
356c0 72 65 74 20 5b 63 61 74 63 68 20 7b 75 70 6c 65 76 65 6c 20 24 63 6d 64 20 24 61 72 67 6c 69 73 ret.[catch.{uplevel.$cmd.$arglis
356e0 74 7d 20 72 65 73 75 6c 74 5d 0a 20 20 20 20 20 20 20 20 69 66 20 7b 24 72 65 74 20 3d 3d 20 30 t}.result].........if.{$ret.==.0
35700 7d 20 7b 0a 20 20 20 20 20 20 20 20 20 20 20 20 72 65 74 75 72 6e 20 24 72 65 73 75 6c 74 0a 20 }.{.............return.$result..
35720 20 20 20 20 20 20 20 7d 20 65 6c 73 65 20 7b 0a 09 20 20 20 20 72 65 74 75 72 6e 20 2d 63 6f 64 .......}.else.{......return.-cod
35740 65 20 24 72 65 74 20 2d 65 72 72 6f 72 63 6f 64 65 20 24 65 72 72 6f 72 43 6f 64 65 20 24 72 65 e.$ret.-errorcode.$errorCode.$re
35760 73 75 6c 74 0a 20 20 20 20 20 20 20 20 7d 0a 20 20 20 20 7d 0a 0a 20 20 20 20 23 20 53 61 76 65 sult.........}.....}......#.Save
35780 20 74 68 65 20 76 61 6c 75 65 73 20 6f 66 20 65 72 72 6f 72 43 6f 64 65 20 61 6e 64 20 65 72 72 .the.values.of.errorCode.and.err
357a0 6f 72 49 6e 66 6f 20 76 61 72 69 61 62 6c 65 73 2c 20 73 69 6e 63 65 20 74 68 65 79 0a 20 20 20 orInfo.variables,.since.they....
357c0 20 23 20 6d 61 79 20 67 65 74 20 6d 6f 64 69 66 69 65 64 20 69 66 20 63 61 75 67 68 74 20 65 72 .#.may.get.modified.if.caught.er
357e0 72 6f 72 73 20 6f 63 63 75 72 20 62 65 6c 6f 77 2e 20 20 54 68 65 20 76 61 72 69 61 62 6c 65 73 rors.occur.below...The.variables
35800 20 77 69 6c 6c 0a 20 20 20 20 23 20 62 65 20 72 65 73 74 6f 72 65 64 20 6a 75 73 74 20 62 65 66 .will.....#.be.restored.just.bef
35820 6f 72 65 20 72 65 2d 65 78 65 63 75 74 69 6e 67 20 74 68 65 20 6d 69 73 73 69 6e 67 20 63 6f 6d ore.re-executing.the.missing.com
35840 6d 61 6e 64 2e 0a 0a 20 20 20 20 73 65 74 20 73 61 76 65 64 45 72 72 6f 72 43 6f 64 65 20 24 65 mand.......set.savedErrorCode.$e
35860 72 72 6f 72 43 6f 64 65 0a 20 20 20 20 73 65 74 20 73 61 76 65 64 45 72 72 6f 72 49 6e 66 6f 20 rrorCode.....set.savedErrorInfo.
35880 24 65 72 72 6f 72 49 6e 66 6f 0a 20 20 20 20 73 65 74 20 6e 61 6d 65 20 5b 6c 69 6e 64 65 78 20 $errorInfo.....set.name.[lindex.
358a0 24 61 72 67 73 20 30 5d 0a 20 20 20 20 69 66 20 7b 21 5b 69 6e 66 6f 20 65 78 69 73 74 73 20 61 $args.0].....if.{![info.exists.a
358c0 75 74 6f 5f 6e 6f 6c 6f 61 64 5d 7d 20 7b 0a 09 23 0a 09 23 20 4d 61 6b 65 20 73 75 72 65 20 77 uto_noload]}.{..#..#.Make.sure.w
358e0 65 27 72 65 20 6e 6f 74 20 74 72 79 69 6e 67 20 74 6f 20 6c 6f 61 64 20 74 68 65 20 73 61 6d 65 e're.not.trying.to.load.the.same
35900 20 70 72 6f 63 20 74 77 69 63 65 2e 0a 09 23 0a 09 69 66 20 7b 5b 69 6e 66 6f 20 65 78 69 73 74 .proc.twice...#..if.{[info.exist
35920 73 20 75 6e 6b 6e 6f 77 6e 5f 70 65 6e 64 69 6e 67 28 24 6e 61 6d 65 29 5d 7d 20 7b 0a 09 20 20 s.unknown_pending($name)]}.{....
35940 20 20 72 65 74 75 72 6e 20 2d 63 6f 64 65 20 65 72 72 6f 72 20 22 73 65 6c 66 2d 72 65 66 65 72 ..return.-code.error."self-refer
35960 65 6e 74 69 61 6c 20 72 65 63 75 72 73 69 6f 6e 20 69 6e 20 5c 22 75 6e 6b 6e 6f 77 6e 5c 22 20 ential.recursion.in.\"unknown\".
35980 66 6f 72 20 63 6f 6d 6d 61 6e 64 20 5c 22 24 6e 61 6d 65 5c 22 22 3b 0a 09 7d 0a 09 73 65 74 20 for.command.\"$name\"";..}..set.
359a0 75 6e 6b 6e 6f 77 6e 5f 70 65 6e 64 69 6e 67 28 24 6e 61 6d 65 29 20 70 65 6e 64 69 6e 67 3b 0a unknown_pending($name).pending;.
359c0 09 73 65 74 20 72 65 74 20 5b 63 61 74 63 68 20 7b 61 75 74 6f 5f 6c 6f 61 64 20 24 6e 61 6d 65 .set.ret.[catch.{auto_load.$name
359e0 20 5b 75 70 6c 65 76 65 6c 20 31 20 7b 6e 61 6d 65 73 70 61 63 65 20 63 75 72 72 65 6e 74 7d 5d .[uplevel.1.{namespace.current}]
35a00 7d 20 6d 73 67 5d 0a 09 75 6e 73 65 74 20 75 6e 6b 6e 6f 77 6e 5f 70 65 6e 64 69 6e 67 28 24 6e }.msg]..unset.unknown_pending($n
35a20 61 6d 65 29 3b 0a 09 69 66 20 7b 24 72 65 74 20 21 3d 20 30 7d 20 7b 0a 09 20 20 20 20 61 70 70 ame);..if.{$ret.!=.0}.{......app
35a40 65 6e 64 20 65 72 72 6f 72 49 6e 66 6f 20 22 5c 6e 20 20 20 20 28 61 75 74 6f 6c 6f 61 64 69 6e end.errorInfo."\n....(autoloadin
35a60 67 20 5c 22 24 6e 61 6d 65 5c 22 29 22 0a 09 20 20 20 20 72 65 74 75 72 6e 20 2d 63 6f 64 65 20 g.\"$name\")"......return.-code.
35a80 24 72 65 74 20 2d 65 72 72 6f 72 63 6f 64 65 20 24 65 72 72 6f 72 43 6f 64 65 20 2d 65 72 72 6f $ret.-errorcode.$errorCode.-erro
35aa0 72 69 6e 66 6f 20 24 65 72 72 6f 72 49 6e 66 6f 20 24 6d 73 67 0a 09 7d 0a 09 69 66 20 7b 21 5b rinfo.$errorInfo.$msg..}..if.{![
35ac0 61 72 72 61 79 20 73 69 7a 65 20 75 6e 6b 6e 6f 77 6e 5f 70 65 6e 64 69 6e 67 5d 7d 20 7b 0a 09 array.size.unknown_pending]}.{..
35ae0 20 20 20 20 75 6e 73 65 74 20 75 6e 6b 6e 6f 77 6e 5f 70 65 6e 64 69 6e 67 0a 09 7d 0a 09 69 66 ....unset.unknown_pending..}..if
35b00 20 7b 24 6d 73 67 7d 20 7b 0a 09 20 20 20 20 73 65 74 20 65 72 72 6f 72 43 6f 64 65 20 24 73 61 .{$msg}.{......set.errorCode.$sa
35b20 76 65 64 45 72 72 6f 72 43 6f 64 65 0a 09 20 20 20 20 73 65 74 20 65 72 72 6f 72 49 6e 66 6f 20 vedErrorCode......set.errorInfo.
35b40 24 73 61 76 65 64 45 72 72 6f 72 49 6e 66 6f 0a 09 20 20 20 20 73 65 74 20 63 6f 64 65 20 5b 63 $savedErrorInfo......set.code.[c
35b60 61 74 63 68 20 7b 75 70 6c 65 76 65 6c 20 31 20 24 61 72 67 73 7d 20 6d 73 67 5d 0a 09 20 20 20 atch.{uplevel.1.$args}.msg].....
35b80 20 69 66 20 7b 24 63 6f 64 65 20 3d 3d 20 20 31 7d 20 7b 0a 09 09 23 0a 09 09 23 20 53 74 72 69 .if.{$code.==..1}.{...#...#.Stri
35ba0 70 20 74 68 65 20 6c 61 73 74 20 66 69 76 65 20 6c 69 6e 65 73 20 6f 66 66 20 74 68 65 20 65 72 p.the.last.five.lines.off.the.er
35bc0 72 6f 72 20 73 74 61 63 6b 20 28 74 68 65 79 27 72 65 0a 09 09 23 20 66 72 6f 6d 20 74 68 65 20 ror.stack.(they're...#.from.the.
35be0 22 75 70 6c 65 76 65 6c 22 20 63 6f 6d 6d 61 6e 64 29 2e 0a 09 09 23 0a 0a 09 09 73 65 74 20 6e "uplevel".command)....#....set.n
35c00 65 77 20 5b 73 70 6c 69 74 20 24 65 72 72 6f 72 49 6e 66 6f 20 5c 6e 5d 0a 09 09 73 65 74 20 6e ew.[split.$errorInfo.\n]...set.n
35c20 65 77 20 5b 6a 6f 69 6e 20 5b 6c 72 61 6e 67 65 20 24 6e 65 77 20 30 20 5b 65 78 70 72 20 7b 5b ew.[join.[lrange.$new.0.[expr.{[
35c40 6c 6c 65 6e 67 74 68 20 24 6e 65 77 5d 20 2d 20 36 7d 5d 5d 20 5c 6e 5d 0a 09 09 72 65 74 75 72 llength.$new].-.6}]].\n]...retur
35c60 6e 20 2d 63 6f 64 65 20 65 72 72 6f 72 20 2d 65 72 72 6f 72 63 6f 64 65 20 24 65 72 72 6f 72 43 n.-code.error.-errorcode.$errorC
35c80 6f 64 65 20 5c 0a 09 09 09 2d 65 72 72 6f 72 69 6e 66 6f 20 24 6e 65 77 20 24 6d 73 67 0a 09 20 ode.\....-errorinfo.$new.$msg...
35ca0 20 20 20 7d 20 65 6c 73 65 20 7b 0a 09 09 72 65 74 75 72 6e 20 2d 63 6f 64 65 20 24 63 6f 64 65 ...}.else.{...return.-code.$code
35cc0 20 24 6d 73 67 0a 09 20 20 20 20 7d 0a 09 7d 0a 20 20 20 20 7d 0a 0a 20 20 20 20 69 66 20 7b 28 .$msg......}..}.....}......if.{(
35ce0 5b 69 6e 66 6f 20 6c 65 76 65 6c 5d 20 3d 3d 20 31 29 20 26 26 20 5b 73 74 72 69 6e 67 20 65 71 [info.level].==.1).&&.[string.eq
35d00 75 61 6c 20 5b 69 6e 66 6f 20 73 63 72 69 70 74 5d 20 22 22 5d 20 5c 0a 09 20 20 20 20 26 26 20 ual.[info.script].""].\......&&.
35d20 5b 69 6e 66 6f 20 65 78 69 73 74 73 20 74 63 6c 5f 69 6e 74 65 72 61 63 74 69 76 65 5d 20 26 26 [info.exists.tcl_interactive].&&
35d40 20 24 74 63 6c 5f 69 6e 74 65 72 61 63 74 69 76 65 7d 20 7b 0a 09 69 66 20 7b 21 5b 69 6e 66 6f .$tcl_interactive}.{..if.{![info
35d60 20 65 78 69 73 74 73 20 61 75 74 6f 5f 6e 6f 65 78 65 63 5d 7d 20 7b 0a 09 20 20 20 20 73 65 74 .exists.auto_noexec]}.{......set
35d80 20 6e 65 77 20 5b 61 75 74 6f 5f 65 78 65 63 6f 6b 20 24 6e 61 6d 65 5d 0a 09 20 20 20 20 69 66 .new.[auto_execok.$name]......if
35da0 20 7b 5b 73 74 72 69 6e 67 20 63 6f 6d 70 61 72 65 20 7b 7d 20 24 6e 65 77 5d 7d 20 7b 0a 09 09 .{[string.compare.{}.$new]}.{...
35dc0 73 65 74 20 65 72 72 6f 72 43 6f 64 65 20 24 73 61 76 65 64 45 72 72 6f 72 43 6f 64 65 0a 09 09 set.errorCode.$savedErrorCode...
35de0 73 65 74 20 65 72 72 6f 72 49 6e 66 6f 20 24 73 61 76 65 64 45 72 72 6f 72 49 6e 66 6f 0a 09 09 set.errorInfo.$savedErrorInfo...
35e00 73 65 74 20 72 65 64 69 72 20 22 22 0a 09 09 69 66 20 7b 5b 73 74 72 69 6e 67 20 65 71 75 61 6c set.redir.""...if.{[string.equal
35e20 20 5b 69 6e 66 6f 20 63 6f 6d 6d 61 6e 64 73 20 63 6f 6e 73 6f 6c 65 5d 20 22 22 5d 7d 20 7b 0a .[info.commands.console].""]}.{.
35e40 09 09 20 20 20 20 73 65 74 20 72 65 64 69 72 20 22 3e 26 40 73 74 64 6f 75 74 20 3c 40 73 74 64 ......set.redir.">&@stdout.<@std
35e60 69 6e 22 0a 09 09 7d 0a 09 09 72 65 74 75 72 6e 20 5b 75 70 6c 65 76 65 6c 20 65 78 65 63 20 24 in"...}...return.[uplevel.exec.$
35e80 72 65 64 69 72 20 24 6e 65 77 20 5b 6c 72 61 6e 67 65 20 24 61 72 67 73 20 31 20 65 6e 64 5d 5d redir.$new.[lrange.$args.1.end]]
35ea0 0a 09 20 20 20 20 7d 0a 09 7d 0a 09 73 65 74 20 65 72 72 6f 72 43 6f 64 65 20 24 73 61 76 65 64 ......}..}..set.errorCode.$saved
35ec0 45 72 72 6f 72 43 6f 64 65 0a 09 73 65 74 20 65 72 72 6f 72 49 6e 66 6f 20 24 73 61 76 65 64 45 ErrorCode..set.errorInfo.$savedE
35ee0 72 72 6f 72 49 6e 66 6f 0a 09 69 66 20 7b 5b 73 74 72 69 6e 67 20 65 71 75 61 6c 20 24 6e 61 6d rrorInfo..if.{[string.equal.$nam
35f00 65 20 22 21 21 22 5d 7d 20 7b 0a 09 20 20 20 20 73 65 74 20 6e 65 77 63 6d 64 20 5b 68 69 73 74 e."!!"]}.{......set.newcmd.[hist
35f20 6f 72 79 20 65 76 65 6e 74 5d 0a 09 7d 20 65 6c 73 65 69 66 20 7b 5b 72 65 67 65 78 70 20 7b 5e ory.event]..}.elseif.{[regexp.{^
35f40 21 28 2e 2b 29 24 7d 20 24 6e 61 6d 65 20 64 75 6d 6d 79 20 65 76 65 6e 74 5d 7d 20 7b 0a 09 20 !(.+)$}.$name.dummy.event]}.{...
35f60 20 20 20 73 65 74 20 6e 65 77 63 6d 64 20 5b 68 69 73 74 6f 72 79 20 65 76 65 6e 74 20 24 65 76 ...set.newcmd.[history.event.$ev
35f80 65 6e 74 5d 0a 09 7d 20 65 6c 73 65 69 66 20 7b 5b 72 65 67 65 78 70 20 7b 5e 5c 5e 28 5b 5e 5e ent]..}.elseif.{[regexp.{^\^([^^
35fa0 5d 2a 29 5c 5e 28 5b 5e 5e 5d 2a 29 5c 5e 3f 24 7d 20 24 6e 61 6d 65 20 64 75 6d 6d 79 20 6f 6c ]*)\^([^^]*)\^?$}.$name.dummy.ol
35fc0 64 20 6e 65 77 5d 7d 20 7b 0a 09 20 20 20 20 73 65 74 20 6e 65 77 63 6d 64 20 5b 68 69 73 74 6f d.new]}.{......set.newcmd.[histo
35fe0 72 79 20 65 76 65 6e 74 20 2d 31 5d 0a 09 20 20 20 20 63 61 74 63 68 20 7b 72 65 67 73 75 62 20 ry.event.-1]......catch.{regsub.
36000 2d 61 6c 6c 20 2d 2d 20 24 6f 6c 64 20 24 6e 65 77 63 6d 64 20 24 6e 65 77 20 6e 65 77 63 6d 64 -all.--.$old.$newcmd.$new.newcmd
36020 7d 0a 09 7d 0a 09 69 66 20 7b 5b 69 6e 66 6f 20 65 78 69 73 74 73 20 6e 65 77 63 6d 64 5d 7d 20 }..}..if.{[info.exists.newcmd]}.
36040 7b 0a 09 20 20 20 20 74 63 6c 4c 6f 67 20 24 6e 65 77 63 6d 64 0a 09 20 20 20 20 68 69 73 74 6f {......tclLog.$newcmd......histo
36060 72 79 20 63 68 61 6e 67 65 20 24 6e 65 77 63 6d 64 20 30 0a 09 20 20 20 20 72 65 74 75 72 6e 20 ry.change.$newcmd.0......return.
36080 5b 75 70 6c 65 76 65 6c 20 24 6e 65 77 63 6d 64 5d 0a 09 7d 0a 0a 09 73 65 74 20 72 65 74 20 5b [uplevel.$newcmd]..}...set.ret.[
360a0 63 61 74 63 68 20 7b 73 65 74 20 63 6d 64 73 20 5b 69 6e 66 6f 20 63 6f 6d 6d 61 6e 64 73 20 24 catch.{set.cmds.[info.commands.$
360c0 6e 61 6d 65 2a 5d 7d 20 6d 73 67 5d 0a 09 69 66 20 7b 5b 73 74 72 69 6e 67 20 65 71 75 61 6c 20 name*]}.msg]..if.{[string.equal.
360e0 24 6e 61 6d 65 20 22 3a 3a 22 5d 7d 20 7b 0a 09 20 20 20 20 73 65 74 20 6e 61 6d 65 20 22 22 0a $name."::"]}.{......set.name."".
36100 09 7d 0a 09 69 66 20 7b 24 72 65 74 20 21 3d 20 30 7d 20 7b 0a 09 20 20 20 20 72 65 74 75 72 6e .}..if.{$ret.!=.0}.{......return
36120 20 2d 63 6f 64 65 20 24 72 65 74 20 2d 65 72 72 6f 72 63 6f 64 65 20 24 65 72 72 6f 72 43 6f 64 .-code.$ret.-errorcode.$errorCod
36140 65 20 5c 0a 09 09 22 65 72 72 6f 72 20 69 6e 20 75 6e 6b 6e 6f 77 6e 20 77 68 69 6c 65 20 63 68 e.\..."error.in.unknown.while.ch
36160 65 63 6b 69 6e 67 20 69 66 20 5c 22 24 6e 61 6d 65 5c 22 20 69 73 20 61 20 75 6e 69 71 75 65 20 ecking.if.\"$name\".is.a.unique.
36180 63 6f 6d 6d 61 6e 64 20 61 62 62 72 65 76 69 61 74 69 6f 6e 3a 20 24 6d 73 67 22 0a 09 7d 0a 09 command.abbreviation:.$msg"..}..
361a0 69 66 20 7b 5b 6c 6c 65 6e 67 74 68 20 24 63 6d 64 73 5d 20 3d 3d 20 31 7d 20 7b 0a 09 20 20 20 if.{[llength.$cmds].==.1}.{.....
361c0 20 72 65 74 75 72 6e 20 5b 75 70 6c 65 76 65 6c 20 5b 6c 72 65 70 6c 61 63 65 20 24 61 72 67 73 .return.[uplevel.[lreplace.$args
361e0 20 30 20 30 20 24 63 6d 64 73 5d 5d 0a 09 7d 0a 09 69 66 20 7b 5b 6c 6c 65 6e 67 74 68 20 24 63 .0.0.$cmds]]..}..if.{[llength.$c
36200 6d 64 73 5d 7d 20 7b 0a 09 20 20 20 20 69 66 20 7b 5b 73 74 72 69 6e 67 20 65 71 75 61 6c 20 24 mds]}.{......if.{[string.equal.$
36220 6e 61 6d 65 20 22 22 5d 7d 20 7b 0a 09 09 72 65 74 75 72 6e 20 2d 63 6f 64 65 20 65 72 72 6f 72 name.""]}.{...return.-code.error
36240 20 22 65 6d 70 74 79 20 63 6f 6d 6d 61 6e 64 20 6e 61 6d 65 20 5c 22 5c 22 22 0a 09 20 20 20 20 ."empty.command.name.\"\""......
36260 7d 20 65 6c 73 65 20 7b 0a 09 09 72 65 74 75 72 6e 20 2d 63 6f 64 65 20 65 72 72 6f 72 20 5c 0a }.else.{...return.-code.error.\.
36280 09 09 09 22 61 6d 62 69 67 75 6f 75 73 20 63 6f 6d 6d 61 6e 64 20 6e 61 6d 65 20 5c 22 24 6e 61 ..."ambiguous.command.name.\"$na
362a0 6d 65 5c 22 3a 20 5b 6c 73 6f 72 74 20 24 63 6d 64 73 5d 22 0a 09 20 20 20 20 7d 0a 09 7d 0a 20 me\":.[lsort.$cmds]"......}..}..
362c0 20 20 20 7d 0a 20 20 20 20 72 65 74 75 72 6e 20 2d 63 6f 64 65 20 65 72 72 6f 72 20 22 69 6e 76 ...}.....return.-code.error."inv
362e0 61 6c 69 64 20 63 6f 6d 6d 61 6e 64 20 6e 61 6d 65 20 5c 22 24 6e 61 6d 65 5c 22 22 0a 7d 0a 0a alid.command.name.\"$name\"".}..
36300 23 20 61 75 74 6f 5f 6c 6f 61 64 20 2d 2d 0a 23 20 43 68 65 63 6b 73 20 61 20 63 6f 6c 6c 65 63 #.auto_load.--.#.Checks.a.collec
36320 74 69 6f 6e 20 6f 66 20 6c 69 62 72 61 72 79 20 64 69 72 65 63 74 6f 72 69 65 73 20 74 6f 20 73 tion.of.library.directories.to.s
36340 65 65 20 69 66 20 61 20 70 72 6f 63 65 64 75 72 65 0a 23 20 69 73 20 64 65 66 69 6e 65 64 20 69 ee.if.a.procedure.#.is.defined.i
36360 6e 20 6f 6e 65 20 6f 66 20 74 68 65 6d 2e 20 20 49 66 20 73 6f 2c 20 69 74 20 73 6f 75 72 63 65 n.one.of.them...If.so,.it.source
36380 73 20 74 68 65 20 61 70 70 72 6f 70 72 69 61 74 65 0a 23 20 6c 69 62 72 61 72 79 20 66 69 6c 65 s.the.appropriate.#.library.file
363a0 20 74 6f 20 63 72 65 61 74 65 20 74 68 65 20 70 72 6f 63 65 64 75 72 65 2e 20 20 52 65 74 75 72 .to.create.the.procedure...Retur
363c0 6e 73 20 31 20 69 66 20 69 74 20 73 75 63 63 65 73 73 66 75 6c 6c 79 0a 23 20 6c 6f 61 64 65 64 ns.1.if.it.successfully.#.loaded
363e0 20 74 68 65 20 70 72 6f 63 65 64 75 72 65 2c 20 30 20 6f 74 68 65 72 77 69 73 65 2e 0a 23 0a 23 .the.procedure,.0.otherwise..#.#
36400 20 41 72 67 75 6d 65 6e 74 73 3a 20 0a 23 20 63 6d 64 20 2d 09 09 09 4e 61 6d 65 20 6f 66 20 74 .Arguments:..#.cmd.-...Name.of.t
36420 68 65 20 63 6f 6d 6d 61 6e 64 20 74 6f 20 66 69 6e 64 20 61 6e 64 20 6c 6f 61 64 2e 0a 23 20 6e he.command.to.find.and.load..#.n
36440 61 6d 65 73 70 61 63 65 20 28 6f 70 74 69 6f 6e 61 6c 29 20 20 54 68 65 20 6e 61 6d 65 73 70 61 amespace.(optional)..The.namespa
36460 63 65 20 77 68 65 72 65 20 74 68 65 20 63 6f 6d 6d 61 6e 64 20 69 73 20 62 65 69 6e 67 20 75 73 ce.where.the.command.is.being.us
36480 65 64 20 2d 20 6d 75 73 74 20 62 65 0a 23 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ed.-.must.be.#..................
364a0 20 20 20 20 20 61 20 63 61 6e 6f 6e 69 63 61 6c 20 6e 61 6d 65 73 70 61 63 65 20 61 73 20 72 65 .....a.canonical.namespace.as.re
364c0 74 75 72 6e 65 64 20 5b 6e 61 6d 65 73 70 61 63 65 20 63 75 72 72 65 6e 74 5d 0a 23 20 20 20 20 turned.[namespace.current].#....
364e0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 66 6f 72 20 69 6e 73 74 61 6e 63 65 2e ...................for.instance.
36500 20 49 66 20 6e 6f 74 20 67 69 76 65 6e 2c 20 6e 61 6d 65 73 70 61 63 65 20 63 75 72 72 65 6e 74 .If.not.given,.namespace.current
36520 20 69 73 20 75 73 65 64 2e 0a 0a 70 72 6f 63 20 61 75 74 6f 5f 6c 6f 61 64 20 7b 63 6d 64 20 7b .is.used...proc.auto_load.{cmd.{
36540 6e 61 6d 65 73 70 61 63 65 20 7b 7d 7d 7d 20 7b 0a 20 20 20 20 67 6c 6f 62 61 6c 20 61 75 74 6f namespace.{}}}.{.....global.auto
36560 5f 69 6e 64 65 78 20 61 75 74 6f 5f 6f 6c 64 70 61 74 68 20 61 75 74 6f 5f 70 61 74 68 0a 0a 20 _index.auto_oldpath.auto_path...
36580 20 20 20 69 66 20 7b 5b 73 74 72 69 6e 67 20 6c 65 6e 67 74 68 20 24 6e 61 6d 65 73 70 61 63 65 ...if.{[string.length.$namespace
365a0 5d 20 3d 3d 20 30 7d 20 7b 0a 09 73 65 74 20 6e 61 6d 65 73 70 61 63 65 20 5b 75 70 6c 65 76 65 ].==.0}.{..set.namespace.[upleve
365c0 6c 20 7b 6e 61 6d 65 73 70 61 63 65 20 63 75 72 72 65 6e 74 7d 5d 0a 20 20 20 20 7d 0a 20 20 20 l.{namespace.current}].....}....
365e0 20 73 65 74 20 6e 61 6d 65 4c 69 73 74 20 5b 61 75 74 6f 5f 71 75 61 6c 69 66 79 20 24 63 6d 64 .set.nameList.[auto_qualify.$cmd
36600 20 24 6e 61 6d 65 73 70 61 63 65 5d 0a 20 20 20 20 23 20 77 6f 72 6b 61 72 6f 75 6e 64 20 6e 6f .$namespace].....#.workaround.no
36620 6e 20 63 61 6e 6f 6e 69 63 61 6c 20 61 75 74 6f 5f 69 6e 64 65 78 20 65 6e 74 72 69 65 73 20 74 n.canonical.auto_index.entries.t
36640 68 61 74 20 6d 69 67 68 74 20 62 65 20 61 72 6f 75 6e 64 0a 20 20 20 20 23 20 66 72 6f 6d 20 6f hat.might.be.around.....#.from.o
36660 6c 64 65 72 20 61 75 74 6f 5f 6d 6b 69 6e 64 65 78 20 76 65 72 73 69 6f 6e 73 0a 20 20 20 20 6c lder.auto_mkindex.versions.....l
36680 61 70 70 65 6e 64 20 6e 61 6d 65 4c 69 73 74 20 24 63 6d 64 0a 20 20 20 20 66 6f 72 65 61 63 68 append.nameList.$cmd.....foreach
366a0 20 6e 61 6d 65 20 24 6e 61 6d 65 4c 69 73 74 20 7b 0a 09 69 66 20 7b 5b 69 6e 66 6f 20 65 78 69 .name.$nameList.{..if.{[info.exi
366c0 73 74 73 20 61 75 74 6f 5f 69 6e 64 65 78 28 24 6e 61 6d 65 29 5d 7d 20 7b 0a 09 20 20 20 20 75 sts.auto_index($name)]}.{......u
366e0 70 6c 65 76 65 6c 20 23 30 20 24 61 75 74 6f 5f 69 6e 64 65 78 28 24 6e 61 6d 65 29 0a 09 20 20 plevel.#0.$auto_index($name)....
36700 20 20 72 65 74 75 72 6e 20 5b 65 78 70 72 20 7b 5b 69 6e 66 6f 20 63 6f 6d 6d 61 6e 64 73 20 24 ..return.[expr.{[info.commands.$
36720 6e 61 6d 65 5d 20 21 3d 20 22 22 7d 5d 0a 09 7d 0a 20 20 20 20 7d 0a 20 20 20 20 69 66 20 7b 21 name].!=.""}]..}.....}.....if.{!
36740 5b 69 6e 66 6f 20 65 78 69 73 74 73 20 61 75 74 6f 5f 70 61 74 68 5d 7d 20 7b 0a 09 72 65 74 75 [info.exists.auto_path]}.{..retu
36760 72 6e 20 30 0a 20 20 20 20 7d 0a 0a 20 20 20 20 69 66 20 7b 21 5b 61 75 74 6f 5f 6c 6f 61 64 5f rn.0.....}......if.{![auto_load_
36780 69 6e 64 65 78 5d 7d 20 7b 0a 09 72 65 74 75 72 6e 20 30 0a 20 20 20 20 7d 0a 20 20 20 20 66 6f index]}.{..return.0.....}.....fo
367a0 72 65 61 63 68 20 6e 61 6d 65 20 24 6e 61 6d 65 4c 69 73 74 20 7b 0a 09 69 66 20 7b 5b 69 6e 66 reach.name.$nameList.{..if.{[inf
367c0 6f 20 65 78 69 73 74 73 20 61 75 74 6f 5f 69 6e 64 65 78 28 24 6e 61 6d 65 29 5d 7d 20 7b 0a 09 o.exists.auto_index($name)]}.{..
367e0 20 20 20 20 75 70 6c 65 76 65 6c 20 23 30 20 24 61 75 74 6f 5f 69 6e 64 65 78 28 24 6e 61 6d 65 ....uplevel.#0.$auto_index($name
36800 29 0a 09 20 20 20 20 23 20 54 68 65 72 65 27 73 20 61 20 63 6f 75 70 6c 65 20 6f 66 20 77 61 79 )......#.There's.a.couple.of.way
36820 73 20 74 6f 20 6c 6f 6f 6b 20 66 6f 72 20 61 20 63 6f 6d 6d 61 6e 64 20 6f 66 20 61 20 67 69 76 s.to.look.for.a.command.of.a.giv
36840 65 6e 0a 09 20 20 20 20 23 20 6e 61 6d 65 2e 20 20 4f 6e 65 20 69 73 20 74 6f 20 75 73 65 0a 09 en......#.name...One.is.to.use..
36860 20 20 20 20 23 20 20 20 20 69 6e 66 6f 20 63 6f 6d 6d 61 6e 64 73 20 24 6e 61 6d 65 0a 09 20 20 ....#....info.commands.$name....
36880 20 20 23 20 55 6e 66 6f 72 74 75 6e 61 74 65 6c 79 2c 20 69 66 20 74 68 65 20 6e 61 6d 65 20 68 ..#.Unfortunately,.if.the.name.h
368a0 61 73 20 67 6c 6f 62 2d 6d 61 67 69 63 20 63 68 61 72 73 20 69 6e 20 69 74 20 6c 69 6b 65 20 2a as.glob-magic.chars.in.it.like.*
368c0 0a 09 20 20 20 20 23 20 6f 72 20 5b 5d 2c 20 69 74 20 6d 61 79 20 6e 6f 74 20 6d 61 74 63 68 2e ......#.or.[],.it.may.not.match.
368e0 20 20 46 6f 72 20 6f 75 72 20 70 75 72 70 6f 73 65 73 20 68 65 72 65 2c 20 61 20 62 65 74 74 65 ..For.our.purposes.here,.a.bette
36900 72 0a 09 20 20 20 20 23 20 72 6f 75 74 65 20 69 73 20 74 6f 20 75 73 65 20 0a 09 20 20 20 20 23 r......#.route.is.to.use.......#
36920 20 20 20 20 6e 61 6d 65 73 70 61 63 65 20 77 68 69 63 68 20 2d 63 6f 6d 6d 61 6e 64 20 24 6e 61 ....namespace.which.-command.$na
36940 6d 65 0a 09 20 20 20 20 69 66 20 7b 20 21 5b 73 74 72 69 6e 67 20 65 71 75 61 6c 20 5b 6e 61 6d me......if.{.![string.equal.[nam
36960 65 73 70 61 63 65 20 77 68 69 63 68 20 2d 63 6f 6d 6d 61 6e 64 20 24 6e 61 6d 65 5d 20 22 22 5d espace.which.-command.$name].""]
36980 20 7d 20 7b 0a 09 09 72 65 74 75 72 6e 20 31 0a 09 20 20 20 20 7d 0a 09 7d 0a 20 20 20 20 7d 0a .}.{...return.1......}..}.....}.
369a0 20 20 20 20 72 65 74 75 72 6e 20 30 0a 7d 0a 0a 23 20 61 75 74 6f 5f 6c 6f 61 64 5f 69 6e 64 65 ....return.0.}..#.auto_load_inde
369c0 78 20 2d 2d 0a 23 20 4c 6f 61 64 73 20 74 68 65 20 63 6f 6e 74 65 6e 74 73 20 6f 66 20 74 63 6c x.--.#.Loads.the.contents.of.tcl
369e0 49 6e 64 65 78 20 66 69 6c 65 73 20 6f 6e 20 74 68 65 20 61 75 74 6f 5f 70 61 74 68 20 64 69 72 Index.files.on.the.auto_path.dir
36a00 65 63 74 6f 72 79 0a 23 20 6c 69 73 74 2e 20 20 54 68 69 73 20 69 73 20 75 73 75 61 6c 6c 79 20 ectory.#.list...This.is.usually.
36a20 69 6e 76 6f 6b 65 64 20 77 69 74 68 69 6e 20 61 75 74 6f 5f 6c 6f 61 64 20 74 6f 20 6c 6f 61 64 invoked.within.auto_load.to.load
36a40 20 74 68 65 20 69 6e 64 65 78 0a 23 20 6f 66 20 61 76 61 69 6c 61 62 6c 65 20 63 6f 6d 6d 61 6e .the.index.#.of.available.comman
36a60 64 73 2e 20 20 52 65 74 75 72 6e 73 20 31 20 69 66 20 74 68 65 20 69 6e 64 65 78 20 69 73 20 6c ds...Returns.1.if.the.index.is.l
36a80 6f 61 64 65 64 2c 20 61 6e 64 20 30 20 69 66 0a 23 20 74 68 65 20 69 6e 64 65 78 20 69 73 20 61 oaded,.and.0.if.#.the.index.is.a
36aa0 6c 72 65 61 64 79 20 6c 6f 61 64 65 64 20 61 6e 64 20 75 70 20 74 6f 20 64 61 74 65 2e 0a 23 0a lready.loaded.and.up.to.date..#.
36ac0 23 20 41 72 67 75 6d 65 6e 74 73 3a 20 0a 23 20 4e 6f 6e 65 2e 0a 0a 70 72 6f 63 20 61 75 74 6f #.Arguments:..#.None...proc.auto
36ae0 5f 6c 6f 61 64 5f 69 6e 64 65 78 20 7b 7d 20 7b 0a 20 20 20 20 67 6c 6f 62 61 6c 20 61 75 74 6f _load_index.{}.{.....global.auto
36b00 5f 69 6e 64 65 78 20 61 75 74 6f 5f 6f 6c 64 70 61 74 68 20 61 75 74 6f 5f 70 61 74 68 20 65 72 _index.auto_oldpath.auto_path.er
36b20 72 6f 72 49 6e 66 6f 20 65 72 72 6f 72 43 6f 64 65 0a 0a 20 20 20 20 69 66 20 7b 5b 69 6e 66 6f rorInfo.errorCode......if.{[info
36b40 20 65 78 69 73 74 73 20 61 75 74 6f 5f 6f 6c 64 70 61 74 68 5d 20 26 26 20 5c 0a 09 20 20 20 20 .exists.auto_oldpath].&&.\......
36b60 5b 73 74 72 69 6e 67 20 65 71 75 61 6c 20 24 61 75 74 6f 5f 6f 6c 64 70 61 74 68 20 24 61 75 74 [string.equal.$auto_oldpath.$aut
36b80 6f 5f 70 61 74 68 5d 7d 20 7b 0a 09 72 65 74 75 72 6e 20 30 0a 20 20 20 20 7d 0a 20 20 20 20 73 o_path]}.{..return.0.....}.....s
36ba0 65 74 20 61 75 74 6f 5f 6f 6c 64 70 61 74 68 20 24 61 75 74 6f 5f 70 61 74 68 0a 0a 20 20 20 20 et.auto_oldpath.$auto_path......
36bc0 23 20 43 68 65 63 6b 20 69 66 20 77 65 20 61 72 65 20 61 20 73 61 66 65 20 69 6e 74 65 72 70 72 #.Check.if.we.are.a.safe.interpr
36be0 65 74 65 72 2e 20 49 6e 20 74 68 61 74 20 63 61 73 65 2c 20 77 65 20 73 75 70 70 6f 72 74 20 6f eter..In.that.case,.we.support.o
36c00 6e 6c 79 0a 20 20 20 20 23 20 6e 65 77 65 72 20 66 6f 72 6d 61 74 20 74 63 6c 49 6e 64 65 78 20 nly.....#.newer.format.tclIndex.
36c20 66 69 6c 65 73 2e 0a 0a 20 20 20 20 73 65 74 20 69 73 73 61 66 65 20 5b 69 6e 74 65 72 70 20 69 files.......set.issafe.[interp.i
36c40 73 73 61 66 65 5d 0a 20 20 20 20 66 6f 72 20 7b 73 65 74 20 69 20 5b 65 78 70 72 20 7b 5b 6c 6c ssafe].....for.{set.i.[expr.{[ll
36c60 65 6e 67 74 68 20 24 61 75 74 6f 5f 70 61 74 68 5d 20 2d 20 31 7d 5d 7d 20 7b 24 69 20 3e 3d 20 ength.$auto_path].-.1}]}.{$i.>=.
36c80 30 7d 20 7b 69 6e 63 72 20 69 20 2d 31 7d 20 7b 0a 09 73 65 74 20 64 69 72 20 5b 6c 69 6e 64 65 0}.{incr.i.-1}.{..set.dir.[linde
36ca0 78 20 24 61 75 74 6f 5f 70 61 74 68 20 24 69 5d 0a 09 73 65 74 20 66 20 22 22 0a 09 69 66 20 7b x.$auto_path.$i]..set.f.""..if.{
36cc0 24 69 73 73 61 66 65 7d 20 7b 0a 09 20 20 20 20 63 61 74 63 68 20 7b 73 6f 75 72 63 65 20 5b 66 $issafe}.{......catch.{source.[f
36ce0 69 6c 65 20 6a 6f 69 6e 20 24 64 69 72 20 74 63 6c 49 6e 64 65 78 5d 7d 0a 09 7d 20 65 6c 73 65 ile.join.$dir.tclIndex]}..}.else
36d00 69 66 20 7b 5b 63 61 74 63 68 20 7b 73 65 74 20 66 20 5b 6f 70 65 6e 20 5b 66 69 6c 65 20 6a 6f if.{[catch.{set.f.[open.[file.jo
36d20 69 6e 20 24 64 69 72 20 74 63 6c 49 6e 64 65 78 5d 5d 7d 5d 7d 20 7b 0a 09 20 20 20 20 63 6f 6e in.$dir.tclIndex]]}]}.{......con
36d40 74 69 6e 75 65 0a 09 7d 20 65 6c 73 65 20 7b 0a 09 20 20 20 20 73 65 74 20 65 72 72 6f 72 20 5b tinue..}.else.{......set.error.[
36d60 63 61 74 63 68 20 7b 0a 09 09 73 65 74 20 69 64 20 5b 67 65 74 73 20 24 66 5d 0a 09 09 69 66 20 catch.{...set.id.[gets.$f]...if.
36d80 7b 5b 73 74 72 69 6e 67 20 65 71 75 61 6c 20 24 69 64 20 5c 0a 09 09 09 22 23 20 54 63 6c 20 61 {[string.equal.$id.\...."#.Tcl.a
36da0 75 74 6f 6c 6f 61 64 20 69 6e 64 65 78 20 66 69 6c 65 2c 20 76 65 72 73 69 6f 6e 20 32 2e 30 22 utoload.index.file,.version.2.0"
36dc0 5d 7d 20 7b 0a 09 09 20 20 20 20 65 76 61 6c 20 5b 72 65 61 64 20 24 66 5d 0a 09 09 7d 20 65 6c ]}.{.......eval.[read.$f]...}.el
36de0 73 65 69 66 20 7b 5b 73 74 72 69 6e 67 20 65 71 75 61 6c 20 24 69 64 20 22 23 20 54 63 6c 20 61 seif.{[string.equal.$id."#.Tcl.a
36e00 75 74 6f 6c 6f 61 64 20 69 6e 64 65 78 20 66 69 6c 65 3a 20 65 61 63 68 20 6c 69 6e 65 20 69 64 utoload.index.file:.each.line.id
36e20 65 6e 74 69 66 69 65 73 20 61 20 54 63 6c 22 5d 7d 20 7b 0a 09 09 20 20 20 20 77 68 69 6c 65 20 entifies.a.Tcl"]}.{.......while.
36e40 7b 5b 67 65 74 73 20 24 66 20 6c 69 6e 65 5d 20 3e 3d 20 30 7d 20 7b 0a 09 09 09 69 66 20 7b 5b {[gets.$f.line].>=.0}.{....if.{[
36e60 73 74 72 69 6e 67 20 65 71 75 61 6c 20 5b 73 74 72 69 6e 67 20 69 6e 64 65 78 20 24 6c 69 6e 65 string.equal.[string.index.$line
36e80 20 30 5d 20 22 23 22 5d 20 5c 0a 09 09 09 09 7c 7c 20 28 5b 6c 6c 65 6e 67 74 68 20 24 6c 69 6e .0]."#"].\.....||.([llength.$lin
36ea0 65 5d 20 21 3d 20 32 29 7d 20 7b 0a 09 09 09 20 20 20 20 63 6f 6e 74 69 6e 75 65 0a 09 09 09 7d e].!=.2)}.{........continue....}
36ec0 0a 09 09 09 73 65 74 20 6e 61 6d 65 20 5b 6c 69 6e 64 65 78 20 24 6c 69 6e 65 20 30 5d 0a 09 09 ....set.name.[lindex.$line.0]...
36ee0 09 73 65 74 20 61 75 74 6f 5f 69 6e 64 65 78 28 24 6e 61 6d 65 29 20 5c 0a 09 09 09 09 22 73 6f .set.auto_index($name).\....."so
36f00 75 72 63 65 20 5b 66 69 6c 65 20 6a 6f 69 6e 20 24 64 69 72 20 5b 6c 69 6e 64 65 78 20 24 6c 69 urce.[file.join.$dir.[lindex.$li
36f20 6e 65 20 31 5d 5d 22 0a 09 09 20 20 20 20 7d 0a 09 09 7d 20 65 6c 73 65 20 7b 0a 09 09 20 20 20 ne.1]]".......}...}.else.{......
36f40 20 65 72 72 6f 72 20 22 5b 66 69 6c 65 20 6a 6f 69 6e 20 24 64 69 72 20 74 63 6c 49 6e 64 65 78 .error."[file.join.$dir.tclIndex
36f60 5d 20 69 73 6e 27 74 20 61 20 70 72 6f 70 65 72 20 54 63 6c 20 69 6e 64 65 78 20 66 69 6c 65 22 ].isn't.a.proper.Tcl.index.file"
36f80 0a 09 09 7d 0a 09 20 20 20 20 7d 20 6d 73 67 5d 0a 09 20 20 20 20 69 66 20 7b 5b 73 74 72 69 6e ...}......}.msg]......if.{[strin
36fa0 67 20 63 6f 6d 70 61 72 65 20 24 66 20 22 22 5d 7d 20 7b 0a 09 09 63 6c 6f 73 65 20 24 66 0a 09 g.compare.$f.""]}.{...close.$f..
36fc0 20 20 20 20 7d 0a 09 20 20 20 20 69 66 20 7b 24 65 72 72 6f 72 7d 20 7b 0a 09 09 65 72 72 6f 72 ....}......if.{$error}.{...error
36fe0 20 24 6d 73 67 20 24 65 72 72 6f 72 49 6e 66 6f 20 24 65 72 72 6f 72 43 6f 64 65 0a 09 20 20 20 .$msg.$errorInfo.$errorCode.....
37000 20 7d 0a 09 7d 0a 20 20 20 20 7d 0a 20 20 20 20 72 65 74 75 72 6e 20 31 0a 7d 0a 0a 23 20 61 75 .}..}.....}.....return.1.}..#.au
37020 74 6f 5f 71 75 61 6c 69 66 79 20 2d 2d 0a 23 0a 23 20 43 6f 6d 70 75 74 65 20 61 20 66 75 6c 6c to_qualify.--.#.#.Compute.a.full
37040 79 20 71 75 61 6c 69 66 69 65 64 20 6e 61 6d 65 73 20 6c 69 73 74 20 66 6f 72 20 75 73 65 20 69 y.qualified.names.list.for.use.i
37060 6e 20 74 68 65 20 61 75 74 6f 5f 69 6e 64 65 78 20 61 72 72 61 79 2e 0a 23 20 46 6f 72 20 68 69 n.the.auto_index.array..#.For.hi
37080 73 74 6f 72 69 63 61 6c 20 72 65 61 73 6f 6e 73 2c 20 63 6f 6d 6d 61 6e 64 73 20 69 6e 20 74 68 storical.reasons,.commands.in.th
370a0 65 20 67 6c 6f 62 61 6c 20 6e 61 6d 65 73 70 61 63 65 20 64 6f 20 6e 6f 74 20 68 61 76 65 20 6c e.global.namespace.do.not.have.l
370c0 65 61 64 69 6e 67 0a 23 20 3a 3a 20 69 6e 20 74 68 65 20 69 6e 64 65 78 20 6b 65 79 2e 20 54 68 eading.#.::.in.the.index.key..Th
370e0 65 20 6c 69 73 74 20 68 61 73 20 74 77 6f 20 65 6c 65 6d 65 6e 74 73 20 77 68 65 6e 20 74 68 65 e.list.has.two.elements.when.the
37100 20 63 6f 6d 6d 61 6e 64 20 6e 61 6d 65 20 69 73 0a 23 20 72 65 6c 61 74 69 76 65 20 28 6e 6f 20 .command.name.is.#.relative.(no.
37120 6c 65 61 64 69 6e 67 20 3a 3a 29 20 61 6e 64 20 74 68 65 20 6e 61 6d 65 73 70 61 63 65 20 69 73 leading.::).and.the.namespace.is
37140 20 6e 6f 74 20 74 68 65 20 67 6c 6f 62 61 6c 20 6f 6e 65 2e 20 4f 74 68 65 72 77 69 73 65 0a 23 .not.the.global.one..Otherwise.#
37160 20 6f 6e 6c 79 20 6f 6e 65 20 6e 61 6d 65 20 69 73 20 72 65 74 75 72 6e 65 64 20 28 61 6e 64 20 .only.one.name.is.returned.(and.
37180 73 65 61 72 63 68 65 64 20 69 6e 20 74 68 65 20 61 75 74 6f 5f 69 6e 64 65 78 29 2e 0a 23 0a 23 searched.in.the.auto_index)..#.#
371a0 20 41 72 67 75 6d 65 6e 74 73 20 2d 0a 23 20 63 6d 64 09 09 54 68 65 20 63 6f 6d 6d 61 6e 64 20 .Arguments.-.#.cmd..The.command.
371c0 6e 61 6d 65 2e 20 43 61 6e 20 62 65 20 61 6e 79 20 6e 61 6d 65 20 61 63 63 65 70 74 65 64 20 66 name..Can.be.any.name.accepted.f
371e0 6f 72 20 63 6f 6d 6d 61 6e 64 0a 23 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 69 6e 76 6f 63 or.command.#...............invoc
37200 61 74 69 6f 6e 73 20 28 4c 69 6b 65 20 22 66 6f 6f 3a 3a 3a 3a 62 61 72 22 29 2e 0a 23 20 6e 61 ations.(Like."foo::::bar")..#.na
37220 6d 65 73 70 61 63 65 09 54 68 65 20 6e 61 6d 65 73 70 61 63 65 20 77 68 65 72 65 20 74 68 65 20 mespace.The.namespace.where.the.
37240 63 6f 6d 6d 61 6e 64 20 69 73 20 62 65 69 6e 67 20 75 73 65 64 20 2d 20 6d 75 73 74 20 62 65 0a command.is.being.used.-.must.be.
37260 23 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 61 20 63 61 6e 6f 6e 69 63 61 6c 20 6e 61 6d 65 #...............a.canonical.name
37280 73 70 61 63 65 20 61 73 20 72 65 74 75 72 6e 65 64 20 62 79 20 5b 6e 61 6d 65 73 70 61 63 65 20 space.as.returned.by.[namespace.
372a0 63 75 72 72 65 6e 74 5d 0a 23 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 66 6f 72 20 69 6e 73 current].#...............for.ins
372c0 74 61 6e 63 65 2e 0a 0a 70 72 6f 63 20 61 75 74 6f 5f 71 75 61 6c 69 66 79 20 7b 63 6d 64 20 6e tance...proc.auto_qualify.{cmd.n
372e0 61 6d 65 73 70 61 63 65 7d 20 7b 0a 0a 20 20 20 20 23 20 63 6f 75 6e 74 20 73 65 70 61 72 61 74 amespace}.{......#.count.separat
37300 6f 72 73 20 61 6e 64 20 63 6c 65 61 6e 20 74 68 65 6d 20 75 70 0a 20 20 20 20 23 20 28 6d 61 6b ors.and.clean.them.up.....#.(mak
37320 69 6e 67 20 73 75 72 65 20 74 68 61 74 20 66 6f 6f 3a 3a 3a 3a 3a 62 61 72 20 77 69 6c 6c 20 62 ing.sure.that.foo:::::bar.will.b
37340 65 20 74 72 65 61 74 65 64 20 61 73 20 66 6f 6f 3a 3a 62 61 72 29 0a 20 20 20 20 73 65 74 20 6e e.treated.as.foo::bar).....set.n
37360 20 5b 72 65 67 73 75 62 20 2d 61 6c 6c 20 7b 3a 3a 2b 7d 20 24 63 6d 64 20 3a 3a 20 63 6d 64 5d .[regsub.-all.{::+}.$cmd.::.cmd]
37380 0a 0a 20 20 20 20 23 20 49 67 6e 6f 72 65 20 6e 61 6d 65 73 70 61 63 65 20 69 66 20 74 68 65 20 ......#.Ignore.namespace.if.the.
373a0 6e 61 6d 65 20 73 74 61 72 74 73 20 77 69 74 68 20 3a 3a 0a 20 20 20 20 23 20 48 61 6e 64 6c 65 name.starts.with.::.....#.Handle
373c0 20 73 70 65 63 69 61 6c 20 63 61 73 65 20 6f 66 20 6f 6e 6c 79 20 6c 65 61 64 69 6e 67 20 3a 3a .special.case.of.only.leading.::
373e0 0a 0a 20 20 20 20 23 20 42 65 66 6f 72 65 20 65 61 63 68 20 72 65 74 75 72 6e 20 63 61 73 65 20 ......#.Before.each.return.case.
37400 77 65 20 67 69 76 65 20 61 6e 20 65 78 61 6d 70 6c 65 20 6f 66 20 77 68 69 63 68 20 63 61 74 65 we.give.an.example.of.which.cate
37420 67 6f 72 79 20 69 74 20 69 73 0a 20 20 20 20 23 20 77 69 74 68 20 74 68 65 20 66 6f 6c 6c 6f 77 gory.it.is.....#.with.the.follow
37440 69 6e 67 20 66 6f 72 6d 20 3a 0a 20 20 20 20 23 20 28 20 69 6e 70 75 74 43 6d 64 2c 20 69 6e 70 ing.form.:.....#.(.inputCmd,.inp
37460 75 74 4e 61 6d 65 53 70 61 63 65 29 20 2d 3e 20 6f 75 74 70 75 74 0a 0a 20 20 20 20 69 66 20 7b utNameSpace).->.output......if.{
37480 5b 72 65 67 65 78 70 20 7b 5e 3a 3a 28 2e 2a 29 24 7d 20 24 63 6d 64 20 78 20 74 61 69 6c 5d 7d [regexp.{^::(.*)$}.$cmd.x.tail]}
374a0 20 7b 0a 09 69 66 20 7b 24 6e 20 3e 20 31 7d 20 7b 0a 09 20 20 20 20 23 20 28 20 3a 3a 66 6f 6f .{..if.{$n.>.1}.{......#.(.::foo
374c0 3a 3a 62 61 72 20 2c 20 2a 20 29 20 2d 3e 20 3a 3a 66 6f 6f 3a 3a 62 61 72 0a 09 20 20 20 20 72 ::bar.,.*.).->.::foo::bar......r
374e0 65 74 75 72 6e 20 5b 6c 69 73 74 20 24 63 6d 64 5d 0a 09 7d 20 65 6c 73 65 20 7b 0a 09 20 20 20 eturn.[list.$cmd]..}.else.{.....
37500 20 23 20 28 20 3a 3a 67 6c 6f 62 61 6c 20 2c 20 2a 20 29 20 2d 3e 20 67 6c 6f 62 61 6c 0a 09 20 .#.(.::global.,.*.).->.global...
37520 20 20 20 72 65 74 75 72 6e 20 5b 6c 69 73 74 20 24 74 61 69 6c 5d 0a 09 7d 0a 20 20 20 20 7d 0a ...return.[list.$tail]..}.....}.
37540 20 20 20 20 0a 20 20 20 20 23 20 50 6f 74 65 6e 74 69 61 6c 6c 79 20 72 65 74 75 72 6e 69 6e 67 .........#.Potentially.returning
37560 20 32 20 65 6c 65 6d 65 6e 74 73 20 74 6f 20 74 72 79 20 20 3a 0a 20 20 20 20 23 20 28 69 66 20 .2.elements.to.try..:.....#.(if.
37580 74 68 65 20 63 75 72 72 65 6e 74 20 6e 61 6d 65 73 70 61 63 65 20 69 73 20 6e 6f 74 20 74 68 65 the.current.namespace.is.not.the
375a0 20 67 6c 6f 62 61 6c 20 6f 6e 65 29 0a 0a 20 20 20 20 69 66 20 7b 24 6e 20 3d 3d 20 30 7d 20 7b .global.one)......if.{$n.==.0}.{
375c0 0a 09 69 66 20 7b 5b 73 74 72 69 6e 67 20 65 71 75 61 6c 20 24 6e 61 6d 65 73 70 61 63 65 20 3a ..if.{[string.equal.$namespace.:
375e0 3a 5d 7d 20 7b 0a 09 20 20 20 20 23 20 28 20 6e 6f 63 6f 6c 6f 6e 73 20 2c 20 3a 3a 20 29 20 2d :]}.{......#.(.nocolons.,.::.).-
37600 3e 20 6e 6f 63 6f 6c 6f 6e 73 0a 09 20 20 20 20 72 65 74 75 72 6e 20 5b 6c 69 73 74 20 24 63 6d >.nocolons......return.[list.$cm
37620 64 5d 0a 09 7d 20 65 6c 73 65 20 7b 0a 09 20 20 20 20 23 20 28 20 6e 6f 63 6f 6c 6f 6e 73 20 2c d]..}.else.{......#.(.nocolons.,
37640 20 3a 3a 73 75 62 20 29 20 2d 3e 20 3a 3a 73 75 62 3a 3a 6e 6f 63 6f 6c 6f 6e 73 20 6e 6f 63 6f .::sub.).->.::sub::nocolons.noco
37660 6c 6f 6e 73 0a 09 20 20 20 20 72 65 74 75 72 6e 20 5b 6c 69 73 74 20 24 7b 6e 61 6d 65 73 70 61 lons......return.[list.${namespa
37680 63 65 7d 3a 3a 24 63 6d 64 20 24 63 6d 64 5d 0a 09 7d 0a 20 20 20 20 7d 20 65 6c 73 65 69 66 20 ce}::$cmd.$cmd]..}.....}.elseif.
376a0 7b 5b 73 74 72 69 6e 67 20 65 71 75 61 6c 20 24 6e 61 6d 65 73 70 61 63 65 20 3a 3a 5d 7d 20 7b {[string.equal.$namespace.::]}.{
376c0 0a 09 23 20 20 28 20 66 6f 6f 3a 3a 62 61 72 20 2c 20 3a 3a 20 29 20 2d 3e 20 3a 3a 66 6f 6f 3a ..#..(.foo::bar.,.::.).->.::foo:
376e0 3a 62 61 72 0a 09 72 65 74 75 72 6e 20 5b 6c 69 73 74 20 3a 3a 24 63 6d 64 5d 0a 20 20 20 20 7d :bar..return.[list.::$cmd].....}
37700 20 65 6c 73 65 20 7b 0a 09 23 20 28 20 66 6f 6f 3a 3a 62 61 72 20 2c 20 3a 3a 73 75 62 20 29 20 .else.{..#.(.foo::bar.,.::sub.).
37720 2d 3e 20 3a 3a 73 75 62 3a 3a 66 6f 6f 3a 3a 62 61 72 20 3a 3a 66 6f 6f 3a 3a 62 61 72 0a 09 72 ->.::sub::foo::bar.::foo::bar..r
37740 65 74 75 72 6e 20 5b 6c 69 73 74 20 24 7b 6e 61 6d 65 73 70 61 63 65 7d 3a 3a 24 63 6d 64 20 3a eturn.[list.${namespace}::$cmd.:
37760 3a 24 63 6d 64 5d 0a 20 20 20 20 7d 0a 7d 0a 0a 23 20 61 75 74 6f 5f 69 6d 70 6f 72 74 20 2d 2d :$cmd].....}.}..#.auto_import.--
37780 0a 23 0a 23 20 49 6e 76 6f 6b 65 64 20 64 75 72 69 6e 67 20 22 6e 61 6d 65 73 70 61 63 65 20 69 .#.#.Invoked.during."namespace.i
377a0 6d 70 6f 72 74 22 20 74 6f 20 6d 61 6b 65 20 73 65 65 20 69 66 20 74 68 65 20 69 6d 70 6f 72 74 mport".to.make.see.if.the.import
377c0 65 64 20 63 6f 6d 6d 61 6e 64 73 0a 23 20 72 65 73 69 64 65 20 69 6e 20 61 6e 20 61 75 74 6f 6c ed.commands.#.reside.in.an.autol
377e0 6f 61 64 65 64 20 6c 69 62 72 61 72 79 2e 20 20 49 66 20 73 6f 2c 20 74 68 65 20 63 6f 6d 6d 61 oaded.library...If.so,.the.comma
37800 6e 64 73 20 61 72 65 20 6c 6f 61 64 65 64 20 73 6f 0a 23 20 74 68 61 74 20 74 68 65 79 20 77 69 nds.are.loaded.so.#.that.they.wi
37820 6c 6c 20 62 65 20 61 76 61 69 6c 61 62 6c 65 20 66 6f 72 20 74 68 65 20 69 6d 70 6f 72 74 20 6c ll.be.available.for.the.import.l
37840 69 6e 6b 73 2e 20 20 49 66 20 6e 6f 74 2c 20 74 68 65 6e 20 74 68 69 73 0a 23 20 70 72 6f 63 65 inks...If.not,.then.this.#.proce
37860 64 75 72 65 20 64 6f 65 73 20 6e 6f 74 68 69 6e 67 2e 0a 23 0a 23 20 41 72 67 75 6d 65 6e 74 73 dure.does.nothing..#.#.Arguments
37880 20 2d 0a 23 20 70 61 74 74 65 72 6e 09 54 68 65 20 70 61 74 74 65 72 6e 20 6f 66 20 63 6f 6d 6d .-.#.pattern.The.pattern.of.comm
378a0 61 6e 64 73 20 62 65 69 6e 67 20 69 6d 70 6f 72 74 65 64 20 28 6c 69 6b 65 20 22 66 6f 6f 3a 3a ands.being.imported.(like."foo::
378c0 2a 22 29 0a 23 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 61 20 63 61 6e 6f 6e 69 63 61 6c 20 *").#...............a.canonical.
378e0 6e 61 6d 65 73 70 61 63 65 20 61 73 20 72 65 74 75 72 6e 65 64 20 62 79 20 5b 6e 61 6d 65 73 70 namespace.as.returned.by.[namesp
37900 61 63 65 20 63 75 72 72 65 6e 74 5d 0a 0a 70 72 6f 63 20 61 75 74 6f 5f 69 6d 70 6f 72 74 20 7b ace.current]..proc.auto_import.{
37920 70 61 74 74 65 72 6e 7d 20 7b 0a 20 20 20 20 67 6c 6f 62 61 6c 20 61 75 74 6f 5f 69 6e 64 65 78 pattern}.{.....global.auto_index
37940 0a 0a 20 20 20 20 73 65 74 20 6e 73 20 5b 75 70 6c 65 76 65 6c 20 6e 61 6d 65 73 70 61 63 65 20 ......set.ns.[uplevel.namespace.
37960 63 75 72 72 65 6e 74 5d 0a 20 20 20 20 73 65 74 20 70 61 74 74 65 72 6e 4c 69 73 74 20 5b 61 75 current].....set.patternList.[au
37980 74 6f 5f 71 75 61 6c 69 66 79 20 24 70 61 74 74 65 72 6e 20 24 6e 73 5d 0a 0a 20 20 20 20 61 75 to_qualify.$pattern.$ns]......au
379a0 74 6f 5f 6c 6f 61 64 5f 69 6e 64 65 78 0a 0a 20 20 20 20 66 6f 72 65 61 63 68 20 70 61 74 74 65 to_load_index......foreach.patte
379c0 72 6e 20 24 70 61 74 74 65 72 6e 4c 69 73 74 20 7b 0a 20 20 20 20 20 20 20 20 66 6f 72 65 61 63 rn.$patternList.{.........foreac
379e0 68 20 6e 61 6d 65 20 5b 61 72 72 61 79 20 6e 61 6d 65 73 20 61 75 74 6f 5f 69 6e 64 65 78 5d 20 h.name.[array.names.auto_index].
37a00 7b 0a 20 20 20 20 20 20 20 20 20 20 20 20 69 66 20 7b 5b 73 74 72 69 6e 67 20 6d 61 74 63 68 20 {.............if.{[string.match.
37a20 24 70 61 74 74 65 72 6e 20 24 6e 61 6d 65 5d 20 26 26 20 5c 0a 09 09 20 20 20 20 5b 73 74 72 69 $pattern.$name].&&.\.......[stri
37a40 6e 67 20 65 71 75 61 6c 20 22 22 20 5b 69 6e 66 6f 20 63 6f 6d 6d 61 6e 64 73 20 24 6e 61 6d 65 ng.equal."".[info.commands.$name
37a60 5d 5d 7d 20 7b 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 75 70 6c 65 76 65 6c 20 23 30 ]]}.{.................uplevel.#0
37a80 20 24 61 75 74 6f 5f 69 6e 64 65 78 28 24 6e 61 6d 65 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 .$auto_index($name).............
37aa0 7d 0a 20 20 20 20 20 20 20 20 7d 0a 20 20 20 20 7d 0a 7d 0a 0a 23 20 61 75 74 6f 5f 65 78 65 63 }.........}.....}.}..#.auto_exec
37ac0 6f 6b 20 2d 2d 0a 23 0a 23 20 52 65 74 75 72 6e 73 20 73 74 72 69 6e 67 20 74 68 61 74 20 69 6e ok.--.#.#.Returns.string.that.in
37ae0 64 69 63 61 74 65 73 20 6e 61 6d 65 20 6f 66 20 70 72 6f 67 72 61 6d 20 74 6f 20 65 78 65 63 75 dicates.name.of.program.to.execu
37b00 74 65 20 69 66 20 0a 23 20 6e 61 6d 65 20 63 6f 72 72 65 73 70 6f 6e 64 73 20 74 6f 20 61 20 73 te.if..#.name.corresponds.to.a.s
37b20 68 65 6c 6c 20 62 75 69 6c 74 69 6e 20 6f 72 20 61 6e 20 65 78 65 63 75 74 61 62 6c 65 20 69 6e hell.builtin.or.an.executable.in
37b40 20 74 68 65 0a 23 20 57 69 6e 64 6f 77 73 20 73 65 61 72 63 68 20 70 61 74 68 2c 20 6f 72 20 22 .the.#.Windows.search.path,.or."
37b60 22 20 6f 74 68 65 72 77 69 73 65 2e 20 20 42 75 69 6c 64 73 20 61 6e 20 61 73 73 6f 63 69 61 74 ".otherwise...Builds.an.associat
37b80 69 76 65 20 0a 23 20 61 72 72 61 79 20 61 75 74 6f 5f 65 78 65 63 73 20 74 68 61 74 20 63 61 63 ive..#.array.auto_execs.that.cac
37ba0 68 65 73 20 69 6e 66 6f 72 6d 61 74 69 6f 6e 20 61 62 6f 75 74 20 70 72 65 76 69 6f 75 73 20 63 hes.information.about.previous.c
37bc0 68 65 63 6b 73 2c 20 0a 23 20 66 6f 72 20 73 70 65 65 64 2e 0a 23 0a 23 20 41 72 67 75 6d 65 6e hecks,..#.for.speed..#.#.Argumen
37be0 74 73 3a 20 0a 23 20 6e 61 6d 65 20 2d 09 09 09 4e 61 6d 65 20 6f 66 20 61 20 63 6f 6d 6d 61 6e ts:..#.name.-...Name.of.a.comman
37c00 64 2e 0a 0a 69 66 20 7b 5b 73 74 72 69 6e 67 20 65 71 75 61 6c 20 77 69 6e 64 6f 77 73 20 24 74 d...if.{[string.equal.windows.$t
37c20 63 6c 5f 70 6c 61 74 66 6f 72 6d 28 70 6c 61 74 66 6f 72 6d 29 5d 7d 20 7b 0a 23 20 57 69 6e 64 cl_platform(platform)]}.{.#.Wind
37c40 6f 77 73 20 76 65 72 73 69 6f 6e 2e 0a 23 0a 23 20 4e 6f 74 65 20 74 68 61 74 20 69 6e 66 6f 20 ows.version..#.#.Note.that.info.
37c60 65 78 65 63 75 74 61 62 6c 65 20 64 6f 65 73 6e 27 74 20 77 6f 72 6b 20 75 6e 64 65 72 20 57 69 executable.doesn't.work.under.Wi
37c80 6e 64 6f 77 73 2c 20 73 6f 20 77 65 20 68 61 76 65 20 74 6f 0a 23 20 6c 6f 6f 6b 20 66 6f 72 20 ndows,.so.we.have.to.#.look.for.
37ca0 66 69 6c 65 73 20 77 69 74 68 20 2e 65 78 65 2c 20 2e 63 6f 6d 2c 20 6f 72 20 2e 62 61 74 20 65 files.with..exe,..com,.or..bat.e
37cc0 78 74 65 6e 73 69 6f 6e 73 2e 20 20 41 6c 73 6f 2c 20 74 68 65 20 70 61 74 68 0a 23 20 6d 61 79 xtensions...Also,.the.path.#.may
37ce0 20 62 65 20 69 6e 20 74 68 65 20 50 61 74 68 20 6f 72 20 50 41 54 48 20 65 6e 76 69 72 6f 6e 6d .be.in.the.Path.or.PATH.environm
37d00 65 6e 74 20 76 61 72 69 61 62 6c 65 73 2c 20 61 6e 64 20 70 61 74 68 0a 23 20 63 6f 6d 70 6f 6e ent.variables,.and.path.#.compon
37d20 65 6e 74 73 20 61 72 65 20 73 65 70 61 72 61 74 65 64 20 77 69 74 68 20 73 65 6d 69 63 6f 6c 6f ents.are.separated.with.semicolo
37d40 6e 73 2c 20 6e 6f 74 20 63 6f 6c 6f 6e 73 20 61 73 20 75 6e 64 65 72 20 55 6e 69 78 2e 0a 23 0a ns,.not.colons.as.under.Unix..#.
37d60 70 72 6f 63 20 61 75 74 6f 5f 65 78 65 63 6f 6b 20 6e 61 6d 65 20 7b 0a 20 20 20 20 67 6c 6f 62 proc.auto_execok.name.{.....glob
37d80 61 6c 20 61 75 74 6f 5f 65 78 65 63 73 20 65 6e 76 20 74 63 6c 5f 70 6c 61 74 66 6f 72 6d 0a 0a al.auto_execs.env.tcl_platform..
37da0 20 20 20 20 69 66 20 7b 5b 69 6e 66 6f 20 65 78 69 73 74 73 20 61 75 74 6f 5f 65 78 65 63 73 28 ....if.{[info.exists.auto_execs(
37dc0 24 6e 61 6d 65 29 5d 7d 20 7b 0a 09 72 65 74 75 72 6e 20 24 61 75 74 6f 5f 65 78 65 63 73 28 24 $name)]}.{..return.$auto_execs($
37de0 6e 61 6d 65 29 0a 20 20 20 20 7d 0a 20 20 20 20 73 65 74 20 61 75 74 6f 5f 65 78 65 63 73 28 24 name).....}.....set.auto_execs($
37e00 6e 61 6d 65 29 20 22 22 0a 0a 20 20 20 20 73 65 74 20 73 68 65 6c 6c 42 75 69 6c 74 69 6e 73 20 name).""......set.shellBuiltins.
37e20 5b 6c 69 73 74 20 63 6c 73 20 63 6f 70 79 20 64 61 74 65 20 64 65 6c 20 65 72 61 73 65 20 64 69 [list.cls.copy.date.del.erase.di
37e40 72 20 65 63 68 6f 20 6d 6b 64 69 72 20 5c 0a 09 20 20 20 20 6d 64 20 72 65 6e 61 6d 65 20 72 65 r.echo.mkdir.\......md.rename.re
37e60 6e 20 72 6d 64 69 72 20 72 64 20 74 69 6d 65 20 74 79 70 65 20 76 65 72 20 76 6f 6c 5d 0a 20 20 n.rmdir.rd.time.type.ver.vol]...
37e80 20 20 69 66 20 7b 5b 73 74 72 69 6e 67 20 65 71 75 61 6c 20 24 74 63 6c 5f 70 6c 61 74 66 6f 72 ..if.{[string.equal.$tcl_platfor
37ea0 6d 28 6f 73 29 20 22 57 69 6e 64 6f 77 73 20 4e 54 22 5d 7d 20 7b 0a 09 23 20 4e 54 20 69 6e 63 m(os)."Windows.NT"]}.{..#.NT.inc
37ec0 6c 75 64 65 73 20 74 68 65 20 27 73 74 61 72 74 27 20 62 75 69 6c 74 2d 69 6e 0a 09 6c 61 70 70 ludes.the.'start'.built-in..lapp
37ee0 65 6e 64 20 73 68 65 6c 6c 42 75 69 6c 74 69 6e 73 20 22 73 74 61 72 74 22 0a 20 20 20 20 7d 0a end.shellBuiltins."start".....}.
37f00 0a 20 20 20 20 69 66 20 7b 5b 6c 73 65 61 72 63 68 20 2d 65 78 61 63 74 20 24 73 68 65 6c 6c 42 .....if.{[lsearch.-exact.$shellB
37f20 75 69 6c 74 69 6e 73 20 24 6e 61 6d 65 5d 20 21 3d 20 2d 31 7d 20 7b 0a 09 72 65 74 75 72 6e 20 uiltins.$name].!=.-1}.{..return.
37f40 5b 73 65 74 20 61 75 74 6f 5f 65 78 65 63 73 28 24 6e 61 6d 65 29 20 5b 6c 69 73 74 20 24 65 6e [set.auto_execs($name).[list.$en
37f60 76 28 43 4f 4d 53 50 45 43 29 20 2f 63 20 24 6e 61 6d 65 5d 5d 0a 20 20 20 20 7d 0a 0a 20 20 20 v(COMSPEC)./c.$name]].....}.....
37f80 20 69 66 20 7b 5b 6c 6c 65 6e 67 74 68 20 5b 66 69 6c 65 20 73 70 6c 69 74 20 24 6e 61 6d 65 5d .if.{[llength.[file.split.$name]
37fa0 5d 20 21 3d 20 31 7d 20 7b 0a 09 66 6f 72 65 61 63 68 20 65 78 74 20 7b 7b 7d 20 2e 63 6f 6d 20 ].!=.1}.{..foreach.ext.{{}..com.
37fc0 2e 65 78 65 20 2e 62 61 74 7d 20 7b 0a 09 20 20 20 20 73 65 74 20 66 69 6c 65 20 24 7b 6e 61 6d .exe..bat}.{......set.file.${nam
37fe0 65 7d 24 7b 65 78 74 7d 0a 09 20 20 20 20 69 66 20 7b 5b 66 69 6c 65 20 65 78 69 73 74 73 20 24 e}${ext}......if.{[file.exists.$
38000 66 69 6c 65 5d 20 26 26 20 21 5b 66 69 6c 65 20 69 73 64 69 72 65 63 74 6f 72 79 20 24 66 69 6c file].&&.![file.isdirectory.$fil
38020 65 5d 7d 20 7b 0a 09 09 72 65 74 75 72 6e 20 5b 73 65 74 20 61 75 74 6f 5f 65 78 65 63 73 28 24 e]}.{...return.[set.auto_execs($
38040 6e 61 6d 65 29 20 5b 6c 69 73 74 20 24 66 69 6c 65 5d 5d 0a 09 20 20 20 20 7d 0a 09 7d 0a 09 72 name).[list.$file]]......}..}..r
38060 65 74 75 72 6e 20 22 22 0a 20 20 20 20 7d 0a 0a 20 20 20 20 73 65 74 20 70 61 74 68 20 22 5b 66 eturn."".....}......set.path."[f
38080 69 6c 65 20 64 69 72 6e 61 6d 65 20 5b 69 6e 66 6f 20 6e 61 6d 65 6f 66 5d 5d 3b 2e 3b 22 0a 20 ile.dirname.[info.nameof]];.;"..
380a0 20 20 20 69 66 20 7b 5b 69 6e 66 6f 20 65 78 69 73 74 73 20 65 6e 76 28 57 49 4e 44 49 52 29 5d ...if.{[info.exists.env(WINDIR)]
380c0 7d 20 7b 0a 09 73 65 74 20 77 69 6e 64 69 72 20 24 65 6e 76 28 57 49 4e 44 49 52 29 20 0a 20 20 }.{..set.windir.$env(WINDIR)....
380e0 20 20 7d 0a 20 20 20 20 69 66 20 7b 5b 69 6e 66 6f 20 65 78 69 73 74 73 20 77 69 6e 64 69 72 5d ..}.....if.{[info.exists.windir]
38100 7d 20 7b 0a 09 69 66 20 7b 5b 73 74 72 69 6e 67 20 65 71 75 61 6c 20 24 74 63 6c 5f 70 6c 61 74 }.{..if.{[string.equal.$tcl_plat
38120 66 6f 72 6d 28 6f 73 29 20 22 57 69 6e 64 6f 77 73 20 4e 54 22 5d 7d 20 7b 0a 09 20 20 20 20 61 form(os)."Windows.NT"]}.{......a
38140 70 70 65 6e 64 20 70 61 74 68 20 22 24 77 69 6e 64 69 72 2f 73 79 73 74 65 6d 33 32 3b 22 0a 09 ppend.path."$windir/system32;"..
38160 7d 0a 09 61 70 70 65 6e 64 20 70 61 74 68 20 22 24 77 69 6e 64 69 72 2f 73 79 73 74 65 6d 3b 24 }..append.path."$windir/system;$
38180 77 69 6e 64 69 72 3b 22 0a 20 20 20 20 7d 0a 0a 20 20 20 20 66 6f 72 65 61 63 68 20 76 61 72 20 windir;".....}......foreach.var.
381a0 7b 50 41 54 48 20 50 61 74 68 20 70 61 74 68 7d 20 7b 0a 09 69 66 20 7b 5b 69 6e 66 6f 20 65 78 {PATH.Path.path}.{..if.{[info.ex
381c0 69 73 74 73 20 65 6e 76 28 24 76 61 72 29 5d 7d 20 7b 0a 09 20 20 20 20 61 70 70 65 6e 64 20 70 ists.env($var)]}.{......append.p
381e0 61 74 68 20 22 3b 24 65 6e 76 28 24 76 61 72 29 22 0a 09 7d 0a 20 20 20 20 7d 0a 0a 20 20 20 20 ath.";$env($var)"..}.....}......
38200 66 6f 72 65 61 63 68 20 64 69 72 20 5b 73 70 6c 69 74 20 24 70 61 74 68 20 7b 3b 7d 5d 20 7b 0a foreach.dir.[split.$path.{;}].{.
38220 09 23 20 53 6b 69 70 20 61 6c 72 65 61 64 79 20 63 68 65 63 6b 65 64 20 64 69 72 65 63 74 6f 72 .#.Skip.already.checked.director
38240 69 65 73 0a 09 69 66 20 7b 5b 69 6e 66 6f 20 65 78 69 73 74 73 20 63 68 65 63 6b 65 64 28 24 64 ies..if.{[info.exists.checked($d
38260 69 72 29 5d 20 7c 7c 20 5b 73 74 72 69 6e 67 20 65 71 75 61 6c 20 7b 7d 20 24 64 69 72 5d 7d 20 ir)].||.[string.equal.{}.$dir]}.
38280 7b 20 63 6f 6e 74 69 6e 75 65 20 7d 0a 09 73 65 74 20 63 68 65 63 6b 65 64 28 24 64 69 72 29 20 {.continue.}..set.checked($dir).
382a0 7b 7d 0a 09 66 6f 72 65 61 63 68 20 65 78 74 20 7b 7b 7d 20 2e 63 6f 6d 20 2e 65 78 65 20 2e 62 {}..foreach.ext.{{}..com..exe..b
382c0 61 74 7d 20 7b 0a 09 20 20 20 20 73 65 74 20 66 69 6c 65 20 5b 66 69 6c 65 20 6a 6f 69 6e 20 24 at}.{......set.file.[file.join.$
382e0 64 69 72 20 24 7b 6e 61 6d 65 7d 24 7b 65 78 74 7d 5d 0a 09 20 20 20 20 69 66 20 7b 5b 66 69 6c dir.${name}${ext}]......if.{[fil
38300 65 20 65 78 69 73 74 73 20 24 66 69 6c 65 5d 20 26 26 20 21 5b 66 69 6c 65 20 69 73 64 69 72 65 e.exists.$file].&&.![file.isdire
38320 63 74 6f 72 79 20 24 66 69 6c 65 5d 7d 20 7b 0a 09 09 72 65 74 75 72 6e 20 5b 73 65 74 20 61 75 ctory.$file]}.{...return.[set.au
38340 74 6f 5f 65 78 65 63 73 28 24 6e 61 6d 65 29 20 5b 6c 69 73 74 20 24 66 69 6c 65 5d 5d 0a 09 20 to_execs($name).[list.$file]]...
38360 20 20 20 7d 0a 09 7d 0a 20 20 20 20 7d 0a 20 20 20 20 72 65 74 75 72 6e 20 22 22 0a 7d 0a 0a 7d ...}..}.....}.....return."".}..}
38380 20 65 6c 73 65 20 7b 0a 23 20 55 6e 69 78 20 76 65 72 73 69 6f 6e 2e 0a 23 0a 70 72 6f 63 20 61 .else.{.#.Unix.version..#.proc.a
383a0 75 74 6f 5f 65 78 65 63 6f 6b 20 6e 61 6d 65 20 7b 0a 20 20 20 20 67 6c 6f 62 61 6c 20 61 75 74 uto_execok.name.{.....global.aut
383c0 6f 5f 65 78 65 63 73 20 65 6e 76 0a 0a 20 20 20 20 69 66 20 7b 5b 69 6e 66 6f 20 65 78 69 73 74 o_execs.env......if.{[info.exist
383e0 73 20 61 75 74 6f 5f 65 78 65 63 73 28 24 6e 61 6d 65 29 5d 7d 20 7b 0a 09 72 65 74 75 72 6e 20 s.auto_execs($name)]}.{..return.
38400 24 61 75 74 6f 5f 65 78 65 63 73 28 24 6e 61 6d 65 29 0a 20 20 20 20 7d 0a 20 20 20 20 73 65 74 $auto_execs($name).....}.....set
38420 20 61 75 74 6f 5f 65 78 65 63 73 28 24 6e 61 6d 65 29 20 22 22 0a 20 20 20 20 69 66 20 7b 5b 6c .auto_execs($name)."".....if.{[l
38440 6c 65 6e 67 74 68 20 5b 66 69 6c 65 20 73 70 6c 69 74 20 24 6e 61 6d 65 5d 5d 20 21 3d 20 31 7d length.[file.split.$name]].!=.1}
38460 20 7b 0a 09 69 66 20 7b 5b 66 69 6c 65 20 65 78 65 63 75 74 61 62 6c 65 20 24 6e 61 6d 65 5d 20 .{..if.{[file.executable.$name].
38480 26 26 20 21 5b 66 69 6c 65 20 69 73 64 69 72 65 63 74 6f 72 79 20 24 6e 61 6d 65 5d 7d 20 7b 0a &&.![file.isdirectory.$name]}.{.
384a0 09 20 20 20 20 73 65 74 20 61 75 74 6f 5f 65 78 65 63 73 28 24 6e 61 6d 65 29 20 5b 6c 69 73 74 .....set.auto_execs($name).[list
384c0 20 24 6e 61 6d 65 5d 0a 09 7d 0a 09 72 65 74 75 72 6e 20 24 61 75 74 6f 5f 65 78 65 63 73 28 24 .$name]..}..return.$auto_execs($
384e0 6e 61 6d 65 29 0a 20 20 20 20 7d 0a 20 20 20 20 66 6f 72 65 61 63 68 20 64 69 72 20 5b 73 70 6c name).....}.....foreach.dir.[spl
38500 69 74 20 24 65 6e 76 28 50 41 54 48 29 20 3a 5d 20 7b 0a 09 69 66 20 7b 5b 73 74 72 69 6e 67 20 it.$env(PATH).:].{..if.{[string.
38520 65 71 75 61 6c 20 24 64 69 72 20 22 22 5d 7d 20 7b 0a 09 20 20 20 20 73 65 74 20 64 69 72 20 2e equal.$dir.""]}.{......set.dir..
38540 0a 09 7d 0a 09 73 65 74 20 66 69 6c 65 20 5b 66 69 6c 65 20 6a 6f 69 6e 20 24 64 69 72 20 24 6e ..}..set.file.[file.join.$dir.$n
38560 61 6d 65 5d 0a 09 69 66 20 7b 5b 66 69 6c 65 20 65 78 65 63 75 74 61 62 6c 65 20 24 66 69 6c 65 ame]..if.{[file.executable.$file
38580 5d 20 26 26 20 21 5b 66 69 6c 65 20 69 73 64 69 72 65 63 74 6f 72 79 20 24 66 69 6c 65 5d 7d 20 ].&&.![file.isdirectory.$file]}.
385a0 7b 0a 09 20 20 20 20 73 65 74 20 61 75 74 6f 5f 65 78 65 63 73 28 24 6e 61 6d 65 29 20 5b 6c 69 {......set.auto_execs($name).[li
385c0 73 74 20 24 66 69 6c 65 5d 0a 09 20 20 20 20 72 65 74 75 72 6e 20 24 61 75 74 6f 5f 65 78 65 63 st.$file]......return.$auto_exec
385e0 73 28 24 6e 61 6d 65 29 0a 09 7d 0a 20 20 20 20 7d 0a 20 20 20 20 72 65 74 75 72 6e 20 22 22 0a s($name)..}.....}.....return."".
38600 7d 0a 0a 7d 0a 00 00 4a e2 23 20 61 75 74 6f 2e 74 63 6c 20 2d 2d 0a 23 0a 23 20 75 74 69 6c 69 }..}...J.#.auto.tcl.--.#.#.utili
38620 74 79 20 70 72 6f 63 73 20 66 6f 72 6d 65 72 6c 79 20 69 6e 20 69 6e 69 74 2e 74 63 6c 20 64 65 ty.procs.formerly.in.init.tcl.de
38640 61 6c 69 6e 67 20 77 69 74 68 20 61 75 74 6f 20 65 78 65 63 75 74 69 6f 6e 0a 23 20 6f 66 20 63 aling.with.auto.execution.#.of.c
38660 6f 6d 6d 61 6e 64 73 20 61 6e 64 20 63 61 6e 20 62 65 20 61 75 74 6f 20 6c 6f 61 64 65 64 20 74 ommands.and.can.be.auto.loaded.t
38680 68 65 6d 73 65 6c 76 65 73 2e 0a 23 0a 23 20 52 43 53 3a 20 40 28 23 29 20 24 49 64 3a 20 61 75 hemselves..#.#.RCS:.@(#).$Id:.au
386a0 74 6f 2e 74 63 6c 2c 76 20 31 2e 37 20 32 30 30 30 2f 30 32 2f 30 38 20 31 30 3a 30 36 3a 31 32 to.tcl,v.1.7.2000/02/08.10:06:12
386c0 20 68 6f 62 62 73 20 45 78 70 20 24 0a 23 0a 23 20 43 6f 70 79 72 69 67 68 74 20 28 63 29 20 31 .hobbs.Exp.$.#.#.Copyright.(c).1
386e0 39 39 31 2d 31 39 39 33 20 54 68 65 20 52 65 67 65 6e 74 73 20 6f 66 20 74 68 65 20 55 6e 69 76 991-1993.The.Regents.of.the.Univ
38700 65 72 73 69 74 79 20 6f 66 20 43 61 6c 69 66 6f 72 6e 69 61 2e 0a 23 20 43 6f 70 79 72 69 67 68 ersity.of.California..#.Copyrigh
38720 74 20 28 63 29 20 31 39 39 34 2d 31 39 39 38 20 53 75 6e 20 4d 69 63 72 6f 73 79 73 74 65 6d 73 t.(c).1994-1998.Sun.Microsystems
38740 2c 20 49 6e 63 2e 0a 23 0a 23 20 53 65 65 20 74 68 65 20 66 69 6c 65 20 22 6c 69 63 65 6e 73 65 ,.Inc..#.#.See.the.file."license
38760 2e 74 65 72 6d 73 22 20 66 6f 72 20 69 6e 66 6f 72 6d 61 74 69 6f 6e 20 6f 6e 20 75 73 61 67 65 .terms".for.information.on.usage
38780 20 61 6e 64 20 72 65 64 69 73 74 72 69 62 75 74 69 6f 6e 0a 23 20 6f 66 20 74 68 69 73 20 66 69 .and.redistribution.#.of.this.fi
387a0 6c 65 2c 20 61 6e 64 20 66 6f 72 20 61 20 44 49 53 43 4c 41 49 4d 45 52 20 4f 46 20 41 4c 4c 20 le,.and.for.a.DISCLAIMER.OF.ALL.
387c0 57 41 52 52 41 4e 54 49 45 53 2e 0a 23 0a 0a 23 20 61 75 74 6f 5f 72 65 73 65 74 20 2d 2d 0a 23 WARRANTIES..#..#.auto_reset.--.#
387e0 0a 23 20 44 65 73 74 72 6f 79 20 61 6c 6c 20 63 61 63 68 65 64 20 69 6e 66 6f 72 6d 61 74 69 6f .#.Destroy.all.cached.informatio
38800 6e 20 66 6f 72 20 61 75 74 6f 2d 6c 6f 61 64 69 6e 67 20 61 6e 64 20 61 75 74 6f 2d 65 78 65 63 n.for.auto-loading.and.auto-exec
38820 75 74 69 6f 6e 2c 0a 23 20 73 6f 20 74 68 61 74 20 74 68 65 20 69 6e 66 6f 72 6d 61 74 69 6f 6e ution,.#.so.that.the.information
38840 20 67 65 74 73 20 72 65 63 6f 6d 70 75 74 65 64 20 74 68 65 20 6e 65 78 74 20 74 69 6d 65 20 69 .gets.recomputed.the.next.time.i
38860 74 27 73 20 6e 65 65 64 65 64 2e 0a 23 20 41 6c 73 6f 20 64 65 6c 65 74 65 20 61 6e 79 20 70 72 t's.needed..#.Also.delete.any.pr
38880 6f 63 65 64 75 72 65 73 20 74 68 61 74 20 61 72 65 20 6c 69 73 74 65 64 20 69 6e 20 74 68 65 20 ocedures.that.are.listed.in.the.
388a0 61 75 74 6f 2d 6c 6f 61 64 20 69 6e 64 65 78 0a 23 20 65 78 63 65 70 74 20 74 68 6f 73 65 20 64 auto-load.index.#.except.those.d
388c0 65 66 69 6e 65 64 20 69 6e 20 74 68 69 73 20 66 69 6c 65 2e 0a 23 0a 23 20 41 72 67 75 6d 65 6e efined.in.this.file..#.#.Argumen
388e0 74 73 3a 20 0a 23 20 4e 6f 6e 65 2e 0a 0a 70 72 6f 63 20 61 75 74 6f 5f 72 65 73 65 74 20 7b 7d ts:..#.None...proc.auto_reset.{}
38900 20 7b 0a 20 20 20 20 67 6c 6f 62 61 6c 20 61 75 74 6f 5f 65 78 65 63 73 20 61 75 74 6f 5f 69 6e .{.....global.auto_execs.auto_in
38920 64 65 78 20 61 75 74 6f 5f 6f 6c 64 70 61 74 68 0a 20 20 20 20 66 6f 72 65 61 63 68 20 70 20 5b dex.auto_oldpath.....foreach.p.[
38940 69 6e 66 6f 20 70 72 6f 63 73 5d 20 7b 0a 09 69 66 20 7b 5b 69 6e 66 6f 20 65 78 69 73 74 73 20 info.procs].{..if.{[info.exists.
38960 61 75 74 6f 5f 69 6e 64 65 78 28 24 70 29 5d 20 26 26 20 21 5b 73 74 72 69 6e 67 20 6d 61 74 63 auto_index($p)].&&.![string.matc
38980 68 20 61 75 74 6f 5f 2a 20 24 70 5d 0a 09 09 26 26 20 28 5b 6c 73 65 61 72 63 68 20 2d 65 78 61 h.auto_*.$p]...&&.([lsearch.-exa
389a0 63 74 20 7b 75 6e 6b 6e 6f 77 6e 20 70 6b 67 5f 6d 6b 49 6e 64 65 78 20 74 63 6c 50 6b 67 53 65 ct.{unknown.pkg_mkIndex.tclPkgSe
389c0 74 75 70 0a 09 09 09 74 63 6c 5f 66 69 6e 64 4c 69 62 72 61 72 79 20 70 6b 67 5f 63 6f 6d 70 61 tup....tcl_findLibrary.pkg_compa
389e0 72 65 45 78 74 65 6e 73 69 6f 6e 0a 09 09 09 74 63 6c 4d 61 63 50 6b 67 53 65 61 72 63 68 20 74 reExtension....tclMacPkgSearch.t
38a00 63 6c 50 6b 67 55 6e 6b 6e 6f 77 6e 7d 20 24 70 5d 20 3c 20 30 29 7d 20 7b 0a 09 20 20 20 20 72 clPkgUnknown}.$p].<.0)}.{......r
38a20 65 6e 61 6d 65 20 24 70 20 7b 7d 0a 09 7d 0a 20 20 20 20 7d 0a 20 20 20 20 63 61 74 63 68 20 7b ename.$p.{}..}.....}.....catch.{
38a40 75 6e 73 65 74 20 61 75 74 6f 5f 65 78 65 63 73 7d 0a 20 20 20 20 63 61 74 63 68 20 7b 75 6e 73 unset.auto_execs}.....catch.{uns
38a60 65 74 20 61 75 74 6f 5f 69 6e 64 65 78 7d 0a 20 20 20 20 63 61 74 63 68 20 7b 75 6e 73 65 74 20 et.auto_index}.....catch.{unset.
38a80 61 75 74 6f 5f 6f 6c 64 70 61 74 68 7d 0a 7d 0a 0a 23 20 74 63 6c 5f 66 69 6e 64 4c 69 62 72 61 auto_oldpath}.}..#.tcl_findLibra
38aa0 72 79 20 2d 2d 0a 23 0a 23 09 54 68 69 73 20 69 73 20 61 20 75 74 69 6c 69 74 79 20 66 6f 72 20 ry.--.#.#.This.is.a.utility.for.
38ac0 65 78 74 65 6e 73 69 6f 6e 73 20 74 68 61 74 20 73 65 61 72 63 68 65 73 20 66 6f 72 20 61 20 6c extensions.that.searches.for.a.l
38ae0 69 62 72 61 72 79 20 64 69 72 65 63 74 6f 72 79 0a 23 09 75 73 69 6e 67 20 61 20 63 61 6e 6f 6e ibrary.directory.#.using.a.canon
38b00 69 63 61 6c 20 73 65 61 72 63 68 69 6e 67 20 61 6c 67 6f 72 69 74 68 6d 2e 20 41 20 73 69 64 65 ical.searching.algorithm..A.side
38b20 20 65 66 66 65 63 74 20 69 73 20 74 6f 20 73 6f 75 72 63 65 0a 23 09 74 68 65 20 69 6e 69 74 69 .effect.is.to.source.#.the.initi
38b40 61 6c 69 7a 61 74 69 6f 6e 20 73 63 72 69 70 74 20 61 6e 64 20 73 65 74 20 61 20 67 6c 6f 62 61 alization.script.and.set.a.globa
38b60 6c 20 6c 69 62 72 61 72 79 20 76 61 72 69 61 62 6c 65 2e 0a 23 0a 23 20 41 72 67 75 6d 65 6e 74 l.library.variable..#.#.Argument
38b80 73 3a 0a 23 20 09 62 61 73 65 6e 61 6d 65 09 50 72 65 66 69 78 20 6f 66 20 74 68 65 20 64 69 72 s:.#..basename.Prefix.of.the.dir
38ba0 65 63 74 6f 72 79 20 6e 61 6d 65 2c 20 28 65 2e 67 2e 2c 20 22 74 6b 22 29 0a 23 09 76 65 72 73 ectory.name,.(e.g.,."tk").#.vers
38bc0 69 6f 6e 09 09 56 65 72 73 69 6f 6e 20 6e 75 6d 62 65 72 20 6f 66 20 74 68 65 20 70 61 63 6b 61 ion..Version.number.of.the.packa
38be0 67 65 2c 20 28 65 2e 67 2e 2c 20 22 38 2e 30 22 29 0a 23 09 70 61 74 63 68 09 09 50 61 74 63 68 ge,.(e.g.,."8.0").#.patch..Patch
38c00 6c 65 76 65 6c 20 6f 66 20 74 68 65 20 70 61 63 6b 61 67 65 2c 20 28 65 2e 67 2e 2c 20 22 38 2e level.of.the.package,.(e.g.,."8.
38c20 30 2e 33 22 29 0a 23 09 69 6e 69 74 53 63 72 69 70 74 09 49 6e 69 74 69 61 6c 69 7a 61 74 69 6f 0.3").#.initScript.Initializatio
38c40 6e 20 73 63 72 69 70 74 20 74 6f 20 73 6f 75 72 63 65 20 28 65 2e 67 2e 2c 20 74 6b 2e 74 63 6c n.script.to.source.(e.g.,.tk.tcl
38c60 29 0a 23 09 65 6e 56 61 72 4e 61 6d 65 09 65 6e 76 69 72 6f 6e 6d 65 6e 74 20 76 61 72 69 61 62 ).#.enVarName.environment.variab
38c80 6c 65 20 74 6f 20 68 6f 6e 6f 72 20 28 65 2e 67 2e 2c 20 54 4b 5f 4c 49 42 52 41 52 59 29 0a 23 le.to.honor.(e.g.,.TK_LIBRARY).#
38ca0 09 76 61 72 4e 61 6d 65 09 09 47 6c 6f 62 61 6c 20 76 61 72 69 61 62 6c 65 20 74 6f 20 73 65 74 .varName..Global.variable.to.set
38cc0 20 77 68 65 6e 20 64 6f 6e 65 20 28 65 2e 67 2e 2c 20 74 6b 5f 6c 69 62 72 61 72 79 29 0a 0a 70 .when.done.(e.g.,.tk_library)..p
38ce0 72 6f 63 20 74 63 6c 5f 66 69 6e 64 4c 69 62 72 61 72 79 20 7b 62 61 73 65 6e 61 6d 65 20 76 65 roc.tcl_findLibrary.{basename.ve
38d00 72 73 69 6f 6e 20 70 61 74 63 68 20 69 6e 69 74 53 63 72 69 70 74 20 65 6e 56 61 72 4e 61 6d 65 rsion.patch.initScript.enVarName
38d20 20 76 61 72 4e 61 6d 65 7d 20 7b 0a 20 20 20 20 75 70 76 61 72 20 23 30 20 24 76 61 72 4e 61 6d .varName}.{.....upvar.#0.$varNam
38d40 65 20 74 68 65 5f 6c 69 62 72 61 72 79 0a 20 20 20 20 67 6c 6f 62 61 6c 20 65 6e 76 20 65 72 72 e.the_library.....global.env.err
38d60 6f 72 49 6e 66 6f 0a 0a 20 20 20 20 73 65 74 20 64 69 72 73 20 7b 7d 0a 20 20 20 20 73 65 74 20 orInfo......set.dirs.{}.....set.
38d80 65 72 72 6f 72 73 20 7b 7d 0a 0a 20 20 20 20 23 20 54 68 65 20 43 20 61 70 70 6c 69 63 61 74 69 errors.{}......#.The.C.applicati
38da0 6f 6e 20 6d 61 79 20 68 61 76 65 20 68 61 72 64 77 69 72 65 64 20 61 20 70 61 74 68 2c 20 77 68 on.may.have.hardwired.a.path,.wh
38dc0 69 63 68 20 77 65 20 68 6f 6e 6f 72 0a 20 20 20 20 0a 20 20 20 20 69 66 20 7b 5b 69 6e 66 6f 20 ich.we.honor..........if.{[info.
38de0 65 78 69 73 74 20 74 68 65 5f 6c 69 62 72 61 72 79 5d 20 26 26 20 5b 73 74 72 69 6e 67 20 63 6f exist.the_library].&&.[string.co
38e00 6d 70 61 72 65 20 24 74 68 65 5f 6c 69 62 72 61 72 79 20 7b 7d 5d 7d 20 7b 0a 09 6c 61 70 70 65 mpare.$the_library.{}]}.{..lappe
38e20 6e 64 20 64 69 72 73 20 24 74 68 65 5f 6c 69 62 72 61 72 79 0a 20 20 20 20 7d 20 65 6c 73 65 20 nd.dirs.$the_library.....}.else.
38e40 7b 0a 0a 09 23 20 44 6f 20 74 68 65 20 63 61 6e 6f 6e 69 63 61 6c 20 73 65 61 72 63 68 0a 0a 09 {...#.Do.the.canonical.search...
38e60 23 20 31 2e 20 46 72 6f 6d 20 61 6e 20 65 6e 76 69 72 6f 6e 6d 65 6e 74 20 76 61 72 69 61 62 6c #.1..From.an.environment.variabl
38e80 65 2c 20 69 66 20 69 74 20 65 78 69 73 74 73 0a 0a 20 20 20 20 20 20 20 20 69 66 20 7b 5b 69 6e e,.if.it.exists..........if.{[in
38ea0 66 6f 20 65 78 69 73 74 73 20 65 6e 76 28 24 65 6e 56 61 72 4e 61 6d 65 29 5d 7d 20 7b 0a 20 20 fo.exists.env($enVarName)]}.{...
38ec0 20 20 20 20 20 20 20 20 20 20 6c 61 70 70 65 6e 64 20 64 69 72 73 20 24 65 6e 76 28 24 65 6e 56 ..........lappend.dirs.$env($enV
38ee0 61 72 4e 61 6d 65 29 0a 20 20 20 20 20 20 20 20 7d 0a 0a 09 23 20 32 2e 20 52 65 6c 61 74 69 76 arName).........}...#.2..Relativ
38f00 65 20 74 6f 20 74 68 65 20 54 63 6c 20 6c 69 62 72 61 72 79 0a 0a 20 20 20 20 20 20 20 20 6c 61 e.to.the.Tcl.library..........la
38f20 70 70 65 6e 64 20 64 69 72 73 20 5b 66 69 6c 65 20 6a 6f 69 6e 20 5b 66 69 6c 65 20 64 69 72 6e ppend.dirs.[file.join.[file.dirn
38f40 61 6d 65 20 5b 69 6e 66 6f 20 6c 69 62 72 61 72 79 5d 5d 20 5c 0a 09 09 24 62 61 73 65 6e 61 6d ame.[info.library]].\...$basenam
38f60 65 24 76 65 72 73 69 6f 6e 5d 0a 0a 09 23 20 33 2e 20 56 61 72 69 6f 75 73 20 6c 6f 63 61 74 69 e$version]...#.3..Various.locati
38f80 6f 6e 73 20 72 65 6c 61 74 69 76 65 20 74 6f 20 74 68 65 20 65 78 65 63 75 74 61 62 6c 65 0a 09 ons.relative.to.the.executable..
38fa0 23 20 2e 2e 2f 6c 69 62 2f 66 6f 6f 31 2e 30 09 09 28 46 72 6f 6d 20 62 69 6e 20 64 69 72 65 63 #.../lib/foo1.0..(From.bin.direc
38fc0 74 6f 72 79 20 69 6e 20 69 6e 73 74 61 6c 6c 20 68 69 65 72 61 72 63 68 79 29 0a 09 23 20 2e 2e tory.in.install.hierarchy)..#...
38fe0 2f 2e 2e 2f 6c 69 62 2f 66 6f 6f 31 2e 30 09 28 46 72 6f 6d 20 62 69 6e 2f 61 72 63 68 20 64 69 /../lib/foo1.0.(From.bin/arch.di
39000 72 65 63 74 6f 72 79 20 69 6e 20 69 6e 73 74 61 6c 6c 20 68 69 65 72 61 72 63 68 79 29 0a 09 23 rectory.in.install.hierarchy)..#
39020 20 2e 2e 2f 6c 69 62 72 61 72 79 09 09 28 46 72 6f 6d 20 75 6e 69 78 20 64 69 72 65 63 74 6f 72 .../library..(From.unix.director
39040 79 20 69 6e 20 62 75 69 6c 64 20 68 69 65 72 61 72 63 68 79 29 0a 09 23 20 2e 2e 2f 2e 2e 2f 6c y.in.build.hierarchy)..#.../../l
39060 69 62 72 61 72 79 09 09 28 46 72 6f 6d 20 75 6e 69 78 2f 61 72 63 68 20 64 69 72 65 63 74 6f 72 ibrary..(From.unix/arch.director
39080 79 20 69 6e 20 62 75 69 6c 64 20 68 69 65 72 61 72 63 68 79 29 0a 09 23 20 2e 2e 2f 2e 2e 2f 66 y.in.build.hierarchy)..#.../../f
390a0 6f 6f 31 2e 30 62 31 2f 6c 69 62 72 61 72 79 20 28 46 72 6f 6d 20 75 6e 69 78 20 64 69 72 65 63 oo1.0b1/library.(From.unix.direc
390c0 74 6f 72 79 20 69 6e 20 70 61 72 61 6c 6c 65 6c 20 62 75 69 6c 64 20 68 69 65 72 61 72 63 68 79 tory.in.parallel.build.hierarchy
390e0 29 0a 09 23 20 2e 2e 2f 2e 2e 2f 2e 2e 2f 66 6f 6f 31 2e 30 62 31 2f 6c 69 62 72 61 72 79 20 28 )..#.../../../foo1.0b1/library.(
39100 46 72 6f 6d 20 75 6e 69 78 2f 61 72 63 68 20 64 69 72 65 63 74 6f 72 79 20 69 6e 20 70 61 72 61 From.unix/arch.directory.in.para
39120 6c 6c 65 6c 20 62 75 69 6c 64 20 68 69 65 72 61 72 63 68 79 29 0a 0a 20 20 20 20 20 20 20 20 73 llel.build.hierarchy)..........s
39140 65 74 20 70 61 72 65 6e 74 44 69 72 20 5b 66 69 6c 65 20 64 69 72 6e 61 6d 65 20 5b 66 69 6c 65 et.parentDir.[file.dirname.[file
39160 20 64 69 72 6e 61 6d 65 20 5b 69 6e 66 6f 20 6e 61 6d 65 6f 66 65 78 65 63 75 74 61 62 6c 65 5d .dirname.[info.nameofexecutable]
39180 5d 5d 0a 20 20 20 20 20 20 20 20 73 65 74 20 67 72 61 6e 64 50 61 72 65 6e 74 44 69 72 20 5b 66 ]].........set.grandParentDir.[f
391a0 69 6c 65 20 64 69 72 6e 61 6d 65 20 24 70 61 72 65 6e 74 44 69 72 5d 0a 20 20 20 20 20 20 20 20 ile.dirname.$parentDir].........
391c0 6c 61 70 70 65 6e 64 20 64 69 72 73 20 5b 66 69 6c 65 20 6a 6f 69 6e 20 24 70 61 72 65 6e 74 44 lappend.dirs.[file.join.$parentD
391e0 69 72 20 6c 69 62 20 24 62 61 73 65 6e 61 6d 65 24 76 65 72 73 69 6f 6e 5d 0a 20 20 20 20 20 20 ir.lib.$basename$version].......
39200 20 20 6c 61 70 70 65 6e 64 20 64 69 72 73 20 5b 66 69 6c 65 20 6a 6f 69 6e 20 24 67 72 61 6e 64 ..lappend.dirs.[file.join.$grand
39220 50 61 72 65 6e 74 44 69 72 20 6c 69 62 20 24 62 61 73 65 6e 61 6d 65 24 76 65 72 73 69 6f 6e 5d ParentDir.lib.$basename$version]
39240 0a 20 20 20 20 20 20 20 20 6c 61 70 70 65 6e 64 20 64 69 72 73 20 5b 66 69 6c 65 20 6a 6f 69 6e .........lappend.dirs.[file.join
39260 20 24 70 61 72 65 6e 74 44 69 72 20 6c 69 62 72 61 72 79 5d 0a 20 20 20 20 20 20 20 20 6c 61 70 .$parentDir.library].........lap
39280 70 65 6e 64 20 64 69 72 73 20 5b 66 69 6c 65 20 6a 6f 69 6e 20 24 67 72 61 6e 64 50 61 72 65 6e pend.dirs.[file.join.$grandParen
392a0 74 44 69 72 20 6c 69 62 72 61 72 79 5d 0a 20 20 20 20 20 20 20 20 69 66 20 7b 21 5b 72 65 67 65 tDir.library].........if.{![rege
392c0 78 70 20 7b 2e 2a 5b 61 62 5d 5b 30 2d 39 5d 2a 7d 20 24 70 61 74 63 68 20 76 65 72 5d 7d 20 7b xp.{.*[ab][0-9]*}.$patch.ver]}.{
392e0 0a 20 20 20 20 20 20 20 20 20 20 20 20 73 65 74 20 76 65 72 20 24 76 65 72 73 69 6f 6e 0a 20 20 .............set.ver.$version...
39300 20 20 20 20 20 20 7d 0a 20 20 20 20 20 20 20 20 6c 61 70 70 65 6e 64 20 64 69 72 73 20 5b 66 69 ......}.........lappend.dirs.[fi
39320 6c 65 20 6a 6f 69 6e 20 24 67 72 61 6e 64 50 61 72 65 6e 74 44 69 72 20 24 62 61 73 65 6e 61 6d le.join.$grandParentDir.$basenam
39340 65 24 76 65 72 20 6c 69 62 72 61 72 79 5d 0a 20 20 20 20 20 20 20 20 6c 61 70 70 65 6e 64 20 64 e$ver.library].........lappend.d
39360 69 72 73 20 5b 66 69 6c 65 20 6a 6f 69 6e 20 5b 66 69 6c 65 20 64 69 72 6e 61 6d 65 20 24 67 72 irs.[file.join.[file.dirname.$gr
39380 61 6e 64 50 61 72 65 6e 74 44 69 72 5d 20 24 62 61 73 65 6e 61 6d 65 24 76 65 72 20 6c 69 62 72 andParentDir].$basename$ver.libr
393a0 61 72 79 5d 0a 20 20 20 20 7d 0a 20 20 20 20 66 6f 72 65 61 63 68 20 69 20 24 64 69 72 73 20 7b ary].....}.....foreach.i.$dirs.{
393c0 0a 20 20 20 20 20 20 20 20 73 65 74 20 74 68 65 5f 6c 69 62 72 61 72 79 20 24 69 0a 20 20 20 20 .........set.the_library.$i.....
393e0 20 20 20 20 73 65 74 20 66 69 6c 65 20 5b 66 69 6c 65 20 6a 6f 69 6e 20 24 69 20 24 69 6e 69 74 ....set.file.[file.join.$i.$init
39400 53 63 72 69 70 74 5d 0a 0a 09 23 20 73 6f 75 72 63 65 20 65 76 65 72 79 74 68 69 6e 67 20 77 68 Script]...#.source.everything.wh
39420 65 6e 20 69 6e 20 61 20 73 61 66 65 20 69 6e 74 65 72 70 72 65 74 65 72 20 62 65 63 61 75 73 65 en.in.a.safe.interpreter.because
39440 0a 09 23 20 77 65 20 68 61 76 65 20 61 20 73 6f 75 72 63 65 20 63 6f 6d 6d 61 6e 64 2c 20 62 75 ..#.we.have.a.source.command,.bu
39460 74 20 6e 6f 20 66 69 6c 65 20 65 78 69 73 74 73 20 63 6f 6d 6d 61 6e 64 0a 0a 20 20 20 20 20 20 t.no.file.exists.command........
39480 20 20 69 66 20 7b 5b 69 6e 74 65 72 70 20 69 73 73 61 66 65 5d 20 7c 7c 20 5b 66 69 6c 65 20 65 ..if.{[interp.issafe].||.[file.e
394a0 78 69 73 74 73 20 24 66 69 6c 65 5d 7d 20 7b 0a 20 20 20 20 20 20 20 20 20 20 20 20 69 66 20 7b xists.$file]}.{.............if.{
394c0 21 5b 63 61 74 63 68 20 7b 75 70 6c 65 76 65 6c 20 23 30 20 5b 6c 69 73 74 20 73 6f 75 72 63 65 ![catch.{uplevel.#0.[list.source
394e0 20 24 66 69 6c 65 5d 7d 20 6d 73 67 5d 7d 20 7b 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 .$file]}.msg]}.{................
39500 20 72 65 74 75 72 6e 0a 20 20 20 20 20 20 20 20 20 20 20 20 7d 20 65 6c 73 65 20 7b 0a 20 20 20 .return.............}.else.{....
39520 20 20 20 20 20 20 20 20 20 20 20 20 20 61 70 70 65 6e 64 20 65 72 72 6f 72 73 20 22 24 66 69 6c .............append.errors."$fil
39540 65 3a 20 24 6d 73 67 5c 6e 24 65 72 72 6f 72 49 6e 66 6f 5c 6e 22 0a 20 20 20 20 20 20 20 20 20 e:.$msg\n$errorInfo\n"..........
39560 20 20 20 7d 0a 20 20 20 20 20 20 20 20 7d 0a 20 20 20 20 7d 0a 20 20 20 20 73 65 74 20 6d 73 67 ...}.........}.....}.....set.msg
39580 20 22 43 61 6e 27 74 20 66 69 6e 64 20 61 20 75 73 61 62 6c 65 20 24 69 6e 69 74 53 63 72 69 70 ."Can't.find.a.usable.$initScrip
395a0 74 20 69 6e 20 74 68 65 20 66 6f 6c 6c 6f 77 69 6e 67 20 64 69 72 65 63 74 6f 72 69 65 73 3a 20 t.in.the.following.directories:.
395c0 5c 6e 22 0a 20 20 20 20 61 70 70 65 6e 64 20 6d 73 67 20 22 20 20 20 20 24 64 69 72 73 5c 6e 5c \n".....append.msg."....$dirs\n\
395e0 6e 22 0a 20 20 20 20 61 70 70 65 6e 64 20 6d 73 67 20 22 24 65 72 72 6f 72 73 5c 6e 5c 6e 22 0a n".....append.msg."$errors\n\n".
39600 20 20 20 20 61 70 70 65 6e 64 20 6d 73 67 20 22 54 68 69 73 20 70 72 6f 62 61 62 6c 79 20 6d 65 ....append.msg."This.probably.me
39620 61 6e 73 20 74 68 61 74 20 24 62 61 73 65 6e 61 6d 65 20 77 61 73 6e 27 74 20 69 6e 73 74 61 6c ans.that.$basename.wasn't.instal
39640 6c 65 64 20 70 72 6f 70 65 72 6c 79 2e 5c 6e 22 0a 20 20 20 20 65 72 72 6f 72 20 24 6d 73 67 0a led.properly.\n".....error.$msg.
39660 7d 0a 0a 0a 23 20 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d }...#.--------------------------
39680 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d --------------------------------
396a0 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 0a 23 20 61 75 74 6f 5f 6d 6b 69 6e 64 65 78 0a 23 20 2d 2d ------------.#.auto_mkindex.#.--
396c0 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d --------------------------------
396e0 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d --------------------------------
39700 2d 2d 2d 2d 0a 23 20 54 68 65 20 66 6f 6c 6c 6f 77 69 6e 67 20 70 72 6f 63 65 64 75 72 65 73 20 ----.#.The.following.procedures.
39720 61 72 65 20 75 73 65 64 20 74 6f 20 67 65 6e 65 72 61 74 65 20 74 68 65 20 74 63 6c 49 6e 64 65 are.used.to.generate.the.tclInde
39740 78 20 66 69 6c 65 0a 23 20 66 72 6f 6d 20 54 63 6c 20 73 6f 75 72 63 65 20 66 69 6c 65 73 2e 20 x.file.#.from.Tcl.source.files..
39760 20 54 68 65 79 20 75 73 65 20 61 20 73 70 65 63 69 61 6c 20 73 61 66 65 20 69 6e 74 65 72 70 72 .They.use.a.special.safe.interpr
39780 65 74 65 72 20 74 6f 0a 23 20 70 61 72 73 65 20 54 63 6c 20 73 6f 75 72 63 65 20 66 69 6c 65 73 eter.to.#.parse.Tcl.source.files
397a0 2c 20 77 72 69 74 69 6e 67 20 6f 75 74 20 69 6e 64 65 78 20 65 6e 74 72 69 65 73 20 61 73 20 22 ,.writing.out.index.entries.as."
397c0 70 72 6f 63 22 0a 23 20 63 6f 6d 6d 61 6e 64 73 20 61 72 65 20 65 6e 63 6f 75 6e 74 65 72 65 64 proc".#.commands.are.encountered
397e0 2e 20 20 54 68 69 73 20 69 6d 70 6c 65 6d 65 6e 74 61 74 69 6f 6e 20 77 6f 6e 27 74 20 77 6f 72 ...This.implementation.won't.wor
39800 6b 20 69 6e 20 61 0a 23 20 73 61 66 65 20 69 6e 74 65 72 70 72 65 74 65 72 2c 20 73 69 6e 63 65 k.in.a.#.safe.interpreter,.since
39820 20 61 20 73 61 66 65 20 69 6e 74 65 72 70 72 65 74 65 72 20 63 61 6e 27 74 20 63 72 65 61 74 65 .a.safe.interpreter.can't.create
39840 20 74 68 65 0a 23 20 73 70 65 63 69 61 6c 20 70 61 72 73 65 72 20 61 6e 64 20 6d 65 73 73 20 77 .the.#.special.parser.and.mess.w
39860 69 74 68 20 69 74 73 20 63 6f 6d 6d 61 6e 64 73 2e 20 20 0a 0a 69 66 20 7b 5b 69 6e 74 65 72 70 ith.its.commands.....if.{[interp
39880 20 69 73 73 61 66 65 5d 7d 20 7b 0a 20 20 20 20 72 65 74 75 72 6e 09 3b 23 20 53 74 6f 70 20 73 .issafe]}.{.....return.;#.Stop.s
398a0 6f 75 72 63 69 6e 67 20 74 68 65 20 66 69 6c 65 20 68 65 72 65 0a 7d 0a 0a 23 20 61 75 74 6f 5f ourcing.the.file.here.}..#.auto_
398c0 6d 6b 69 6e 64 65 78 20 2d 2d 0a 23 20 52 65 67 65 6e 65 72 61 74 65 20 61 20 74 63 6c 49 6e 64 mkindex.--.#.Regenerate.a.tclInd
398e0 65 78 20 66 69 6c 65 20 66 72 6f 6d 20 54 63 6c 20 73 6f 75 72 63 65 20 66 69 6c 65 73 2e 20 20 ex.file.from.Tcl.source.files...
39900 54 61 6b 65 73 20 61 73 20 61 72 67 75 6d 65 6e 74 0a 23 20 74 68 65 20 6e 61 6d 65 20 6f 66 20 Takes.as.argument.#.the.name.of.
39920 74 68 65 20 64 69 72 65 63 74 6f 72 79 20 69 6e 20 77 68 69 63 68 20 74 68 65 20 74 63 6c 49 6e the.directory.in.which.the.tclIn
39940 64 65 78 20 66 69 6c 65 20 69 73 20 74 6f 20 62 65 20 70 6c 61 63 65 64 2c 0a 23 20 66 6f 6c 6c dex.file.is.to.be.placed,.#.foll
39960 6f 77 65 64 20 62 79 20 61 6e 79 20 6e 75 6d 62 65 72 20 6f 66 20 67 6c 6f 62 20 70 61 74 74 65 owed.by.any.number.of.glob.patte
39980 72 6e 73 20 74 6f 20 75 73 65 20 69 6e 20 74 68 61 74 20 64 69 72 65 63 74 6f 72 79 20 74 6f 0a rns.to.use.in.that.directory.to.
399a0 23 20 6c 6f 63 61 74 65 20 61 6c 6c 20 6f 66 20 74 68 65 20 72 65 6c 65 76 61 6e 74 20 66 69 6c #.locate.all.of.the.relevant.fil
399c0 65 73 2e 0a 23 0a 23 20 41 72 67 75 6d 65 6e 74 73 3a 20 0a 23 20 64 69 72 20 2d 09 09 4e 61 6d es..#.#.Arguments:..#.dir.-..Nam
399e0 65 20 6f 66 20 74 68 65 20 64 69 72 65 63 74 6f 72 79 20 69 6e 20 77 68 69 63 68 20 74 6f 20 63 e.of.the.directory.in.which.to.c
39a00 72 65 61 74 65 20 61 6e 20 69 6e 64 65 78 2e 0a 23 20 61 72 67 73 20 2d 09 41 6e 79 20 6e 75 6d reate.an.index..#.args.-.Any.num
39a20 62 65 72 20 6f 66 20 61 64 64 69 74 69 6f 6e 61 6c 20 61 72 67 75 6d 65 6e 74 73 20 67 69 76 69 ber.of.additional.arguments.givi
39a40 6e 67 20 74 68 65 0a 23 09 09 6e 61 6d 65 73 20 6f 66 20 66 69 6c 65 73 20 77 69 74 68 69 6e 20 ng.the.#..names.of.files.within.
39a60 64 69 72 2e 20 20 49 66 20 6e 6f 20 61 64 64 69 74 69 6f 6e 61 6c 0a 23 09 09 61 72 65 20 67 69 dir...If.no.additional.#..are.gi
39a80 76 65 6e 20 61 75 74 6f 5f 6d 6b 69 6e 64 65 78 20 77 69 6c 6c 20 6c 6f 6f 6b 20 66 6f 72 20 2a ven.auto_mkindex.will.look.for.*
39aa0 2e 74 63 6c 2e 0a 0a 70 72 6f 63 20 61 75 74 6f 5f 6d 6b 69 6e 64 65 78 20 7b 64 69 72 20 61 72 .tcl...proc.auto_mkindex.{dir.ar
39ac0 67 73 7d 20 7b 0a 20 20 20 20 67 6c 6f 62 61 6c 20 65 72 72 6f 72 43 6f 64 65 20 65 72 72 6f 72 gs}.{.....global.errorCode.error
39ae0 49 6e 66 6f 0a 0a 20 20 20 20 69 66 20 7b 5b 69 6e 74 65 72 70 20 69 73 73 61 66 65 5d 7d 20 7b Info......if.{[interp.issafe]}.{
39b00 0a 20 20 20 20 20 20 20 20 65 72 72 6f 72 20 22 63 61 6e 27 74 20 67 65 6e 65 72 61 74 65 20 69 .........error."can't.generate.i
39b20 6e 64 65 78 20 77 69 74 68 69 6e 20 73 61 66 65 20 69 6e 74 65 72 70 72 65 74 65 72 22 0a 20 20 ndex.within.safe.interpreter"...
39b40 20 20 7d 0a 0a 20 20 20 20 73 65 74 20 6f 6c 64 44 69 72 20 5b 70 77 64 5d 0a 20 20 20 20 63 64 ..}......set.oldDir.[pwd].....cd
39b60 20 24 64 69 72 0a 20 20 20 20 73 65 74 20 64 69 72 20 5b 70 77 64 5d 0a 0a 20 20 20 20 61 70 70 .$dir.....set.dir.[pwd]......app
39b80 65 6e 64 20 69 6e 64 65 78 20 22 23 20 54 63 6c 20 61 75 74 6f 6c 6f 61 64 20 69 6e 64 65 78 20 end.index."#.Tcl.autoload.index.
39ba0 66 69 6c 65 2c 20 76 65 72 73 69 6f 6e 20 32 2e 30 5c 6e 22 0a 20 20 20 20 61 70 70 65 6e 64 20 file,.version.2.0\n".....append.
39bc0 69 6e 64 65 78 20 22 23 20 54 68 69 73 20 66 69 6c 65 20 69 73 20 67 65 6e 65 72 61 74 65 64 20 index."#.This.file.is.generated.
39be0 62 79 20 74 68 65 20 5c 22 61 75 74 6f 5f 6d 6b 69 6e 64 65 78 5c 22 20 63 6f 6d 6d 61 6e 64 5c by.the.\"auto_mkindex\".command\
39c00 6e 22 0a 20 20 20 20 61 70 70 65 6e 64 20 69 6e 64 65 78 20 22 23 20 61 6e 64 20 73 6f 75 72 63 n".....append.index."#.and.sourc
39c20 65 64 20 74 6f 20 73 65 74 20 75 70 20 69 6e 64 65 78 69 6e 67 20 69 6e 66 6f 72 6d 61 74 69 6f ed.to.set.up.indexing.informatio
39c40 6e 20 66 6f 72 20 6f 6e 65 20 6f 72 5c 6e 22 0a 20 20 20 20 61 70 70 65 6e 64 20 69 6e 64 65 78 n.for.one.or\n".....append.index
39c60 20 22 23 20 6d 6f 72 65 20 63 6f 6d 6d 61 6e 64 73 2e 20 20 54 79 70 69 63 61 6c 6c 79 20 65 61 ."#.more.commands...Typically.ea
39c80 63 68 20 6c 69 6e 65 20 69 73 20 61 20 63 6f 6d 6d 61 6e 64 20 74 68 61 74 5c 6e 22 0a 20 20 20 ch.line.is.a.command.that\n"....
39ca0 20 61 70 70 65 6e 64 20 69 6e 64 65 78 20 22 23 20 73 65 74 73 20 61 6e 20 65 6c 65 6d 65 6e 74 .append.index."#.sets.an.element
39cc0 20 69 6e 20 74 68 65 20 61 75 74 6f 5f 69 6e 64 65 78 20 61 72 72 61 79 2c 20 77 68 65 72 65 20 .in.the.auto_index.array,.where.
39ce0 74 68 65 5c 6e 22 0a 20 20 20 20 61 70 70 65 6e 64 20 69 6e 64 65 78 20 22 23 20 65 6c 65 6d 65 the\n".....append.index."#.eleme
39d00 6e 74 20 6e 61 6d 65 20 69 73 20 74 68 65 20 6e 61 6d 65 20 6f 66 20 61 20 63 6f 6d 6d 61 6e 64 nt.name.is.the.name.of.a.command
39d20 20 61 6e 64 20 74 68 65 20 76 61 6c 75 65 20 69 73 5c 6e 22 0a 20 20 20 20 61 70 70 65 6e 64 20 .and.the.value.is\n".....append.
39d40 69 6e 64 65 78 20 22 23 20 61 20 73 63 72 69 70 74 20 74 68 61 74 20 6c 6f 61 64 73 20 74 68 65 index."#.a.script.that.loads.the
39d60 20 63 6f 6d 6d 61 6e 64 2e 5c 6e 5c 6e 22 0a 20 20 20 20 69 66 20 7b 24 61 72 67 73 20 3d 3d 20 .command.\n\n".....if.{$args.==.
39d80 22 22 7d 20 7b 0a 09 73 65 74 20 61 72 67 73 20 2a 2e 74 63 6c 0a 20 20 20 20 7d 0a 0a 20 20 20 ""}.{..set.args.*.tcl.....}.....
39da0 20 61 75 74 6f 5f 6d 6b 69 6e 64 65 78 5f 70 61 72 73 65 72 3a 3a 69 6e 69 74 0a 20 20 20 20 66 .auto_mkindex_parser::init.....f
39dc0 6f 72 65 61 63 68 20 66 69 6c 65 20 5b 65 76 61 6c 20 67 6c 6f 62 20 24 61 72 67 73 5d 20 7b 0a oreach.file.[eval.glob.$args].{.
39de0 20 20 20 20 20 20 20 20 69 66 20 7b 5b 63 61 74 63 68 20 7b 61 75 74 6f 5f 6d 6b 69 6e 64 65 78 ........if.{[catch.{auto_mkindex
39e00 5f 70 61 72 73 65 72 3a 3a 6d 6b 69 6e 64 65 78 20 24 66 69 6c 65 7d 20 6d 73 67 5d 20 3d 3d 20 _parser::mkindex.$file}.msg].==.
39e20 30 7d 20 7b 0a 20 20 20 20 20 20 20 20 20 20 20 20 61 70 70 65 6e 64 20 69 6e 64 65 78 20 24 6d 0}.{.............append.index.$m
39e40 73 67 0a 20 20 20 20 20 20 20 20 7d 20 65 6c 73 65 20 7b 0a 20 20 20 20 20 20 20 20 20 20 20 20 sg.........}.else.{.............
39e60 73 65 74 20 63 6f 64 65 20 24 65 72 72 6f 72 43 6f 64 65 0a 20 20 20 20 20 20 20 20 20 20 20 20 set.code.$errorCode.............
39e80 73 65 74 20 69 6e 66 6f 20 24 65 72 72 6f 72 49 6e 66 6f 0a 20 20 20 20 20 20 20 20 20 20 20 20 set.info.$errorInfo.............
39ea0 63 64 20 24 6f 6c 64 44 69 72 0a 20 20 20 20 20 20 20 20 20 20 20 20 65 72 72 6f 72 20 24 6d 73 cd.$oldDir.............error.$ms
39ec0 67 20 24 69 6e 66 6f 20 24 63 6f 64 65 0a 20 20 20 20 20 20 20 20 7d 0a 20 20 20 20 7d 0a 20 20 g.$info.$code.........}.....}...
39ee0 20 20 61 75 74 6f 5f 6d 6b 69 6e 64 65 78 5f 70 61 72 73 65 72 3a 3a 63 6c 65 61 6e 75 70 0a 0a ..auto_mkindex_parser::cleanup..
39f00 20 20 20 20 73 65 74 20 66 69 64 20 5b 6f 70 65 6e 20 22 74 63 6c 49 6e 64 65 78 22 20 77 5d 0a ....set.fid.[open."tclIndex".w].
39f20 20 20 20 20 70 75 74 73 20 2d 6e 6f 6e 65 77 6c 69 6e 65 20 24 66 69 64 20 24 69 6e 64 65 78 0a ....puts.-nonewline.$fid.$index.
39f40 20 20 20 20 63 6c 6f 73 65 20 24 66 69 64 0a 20 20 20 20 63 64 20 24 6f 6c 64 44 69 72 0a 7d 0a ....close.$fid.....cd.$oldDir.}.
39f60 0a 23 20 4f 72 69 67 69 6e 61 6c 20 76 65 72 73 69 6f 6e 20 6f 66 20 61 75 74 6f 5f 6d 6b 69 6e .#.Original.version.of.auto_mkin
39f80 64 65 78 20 74 68 61 74 20 6a 75 73 74 20 73 65 61 72 63 68 65 73 20 74 68 65 20 73 6f 75 72 63 dex.that.just.searches.the.sourc
39fa0 65 0a 23 20 63 6f 64 65 20 66 6f 72 20 22 70 72 6f 63 22 20 61 74 20 74 68 65 20 62 65 67 69 6e e.#.code.for."proc".at.the.begin
39fc0 6e 69 6e 67 20 6f 66 20 74 68 65 20 6c 69 6e 65 2e 0a 0a 70 72 6f 63 20 61 75 74 6f 5f 6d 6b 69 ning.of.the.line...proc.auto_mki
39fe0 6e 64 65 78 5f 6f 6c 64 20 7b 64 69 72 20 61 72 67 73 7d 20 7b 0a 20 20 20 20 67 6c 6f 62 61 6c ndex_old.{dir.args}.{.....global
3a000 20 65 72 72 6f 72 43 6f 64 65 20 65 72 72 6f 72 49 6e 66 6f 0a 20 20 20 20 73 65 74 20 6f 6c 64 .errorCode.errorInfo.....set.old
3a020 44 69 72 20 5b 70 77 64 5d 0a 20 20 20 20 63 64 20 24 64 69 72 0a 20 20 20 20 73 65 74 20 64 69 Dir.[pwd].....cd.$dir.....set.di
3a040 72 20 5b 70 77 64 5d 0a 20 20 20 20 61 70 70 65 6e 64 20 69 6e 64 65 78 20 22 23 20 54 63 6c 20 r.[pwd].....append.index."#.Tcl.
3a060 61 75 74 6f 6c 6f 61 64 20 69 6e 64 65 78 20 66 69 6c 65 2c 20 76 65 72 73 69 6f 6e 20 32 2e 30 autoload.index.file,.version.2.0
3a080 5c 6e 22 0a 20 20 20 20 61 70 70 65 6e 64 20 69 6e 64 65 78 20 22 23 20 54 68 69 73 20 66 69 6c \n".....append.index."#.This.fil
3a0a0 65 20 69 73 20 67 65 6e 65 72 61 74 65 64 20 62 79 20 74 68 65 20 5c 22 61 75 74 6f 5f 6d 6b 69 e.is.generated.by.the.\"auto_mki
3a0c0 6e 64 65 78 5c 22 20 63 6f 6d 6d 61 6e 64 5c 6e 22 0a 20 20 20 20 61 70 70 65 6e 64 20 69 6e 64 ndex\".command\n".....append.ind
3a0e0 65 78 20 22 23 20 61 6e 64 20 73 6f 75 72 63 65 64 20 74 6f 20 73 65 74 20 75 70 20 69 6e 64 65 ex."#.and.sourced.to.set.up.inde
3a100 78 69 6e 67 20 69 6e 66 6f 72 6d 61 74 69 6f 6e 20 66 6f 72 20 6f 6e 65 20 6f 72 5c 6e 22 0a 20 xing.information.for.one.or\n"..
3a120 20 20 20 61 70 70 65 6e 64 20 69 6e 64 65 78 20 22 23 20 6d 6f 72 65 20 63 6f 6d 6d 61 6e 64 73 ...append.index."#.more.commands
3a140 2e 20 20 54 79 70 69 63 61 6c 6c 79 20 65 61 63 68 20 6c 69 6e 65 20 69 73 20 61 20 63 6f 6d 6d ...Typically.each.line.is.a.comm
3a160 61 6e 64 20 74 68 61 74 5c 6e 22 0a 20 20 20 20 61 70 70 65 6e 64 20 69 6e 64 65 78 20 22 23 20 and.that\n".....append.index."#.
3a180 73 65 74 73 20 61 6e 20 65 6c 65 6d 65 6e 74 20 69 6e 20 74 68 65 20 61 75 74 6f 5f 69 6e 64 65 sets.an.element.in.the.auto_inde
3a1a0 78 20 61 72 72 61 79 2c 20 77 68 65 72 65 20 74 68 65 5c 6e 22 0a 20 20 20 20 61 70 70 65 6e 64 x.array,.where.the\n".....append
3a1c0 20 69 6e 64 65 78 20 22 23 20 65 6c 65 6d 65 6e 74 20 6e 61 6d 65 20 69 73 20 74 68 65 20 6e 61 .index."#.element.name.is.the.na
3a1e0 6d 65 20 6f 66 20 61 20 63 6f 6d 6d 61 6e 64 20 61 6e 64 20 74 68 65 20 76 61 6c 75 65 20 69 73 me.of.a.command.and.the.value.is
3a200 5c 6e 22 0a 20 20 20 20 61 70 70 65 6e 64 20 69 6e 64 65 78 20 22 23 20 61 20 73 63 72 69 70 74 \n".....append.index."#.a.script
3a220 20 74 68 61 74 20 6c 6f 61 64 73 20 74 68 65 20 63 6f 6d 6d 61 6e 64 2e 5c 6e 5c 6e 22 0a 20 20 .that.loads.the.command.\n\n"...
3a240 20 20 69 66 20 7b 5b 73 74 72 69 6e 67 20 65 71 75 61 6c 20 24 61 72 67 73 20 22 22 5d 7d 20 7b ..if.{[string.equal.$args.""]}.{
3a260 0a 09 73 65 74 20 61 72 67 73 20 2a 2e 74 63 6c 0a 20 20 20 20 7d 0a 20 20 20 20 66 6f 72 65 61 ..set.args.*.tcl.....}.....forea
3a280 63 68 20 66 69 6c 65 20 5b 65 76 61 6c 20 67 6c 6f 62 20 24 61 72 67 73 5d 20 7b 0a 09 73 65 74 ch.file.[eval.glob.$args].{..set
3a2a0 20 66 20 22 22 0a 09 73 65 74 20 65 72 72 6f 72 20 5b 63 61 74 63 68 20 7b 0a 09 20 20 20 20 73 .f.""..set.error.[catch.{......s
3a2c0 65 74 20 66 20 5b 6f 70 65 6e 20 24 66 69 6c 65 5d 0a 09 20 20 20 20 77 68 69 6c 65 20 7b 5b 67 et.f.[open.$file]......while.{[g
3a2e0 65 74 73 20 24 66 20 6c 69 6e 65 5d 20 3e 3d 20 30 7d 20 7b 0a 09 09 69 66 20 7b 5b 72 65 67 65 ets.$f.line].>=.0}.{...if.{[rege
3a300 78 70 20 7b 5e 70 72 6f 63 5b 20 09 5d 2b 28 5b 5e 20 09 5d 2a 29 7d 20 24 6c 69 6e 65 20 6d 61 xp.{^proc[..]+([^..]*)}.$line.ma
3a320 74 63 68 20 70 72 6f 63 4e 61 6d 65 5d 7d 20 7b 0a 09 09 20 20 20 20 73 65 74 20 70 72 6f 63 4e tch.procName]}.{.......set.procN
3a340 61 6d 65 20 5b 6c 69 6e 64 65 78 20 5b 61 75 74 6f 5f 71 75 61 6c 69 66 79 20 24 70 72 6f 63 4e ame.[lindex.[auto_qualify.$procN
3a360 61 6d 65 20 22 3a 3a 22 5d 20 30 5d 0a 09 09 20 20 20 20 61 70 70 65 6e 64 20 69 6e 64 65 78 20 ame."::"].0].......append.index.
3a380 22 73 65 74 20 5b 6c 69 73 74 20 61 75 74 6f 5f 69 6e 64 65 78 28 24 70 72 6f 63 4e 61 6d 65 29 "set.[list.auto_index($procName)
3a3a0 5d 22 0a 09 09 20 20 20 20 61 70 70 65 6e 64 20 69 6e 64 65 78 20 22 20 5c 5b 6c 69 73 74 20 73 ]".......append.index.".\[list.s
3a3c0 6f 75 72 63 65 20 5c 5b 66 69 6c 65 20 6a 6f 69 6e 20 5c 24 64 69 72 20 5b 6c 69 73 74 20 24 66 ource.\[file.join.\$dir.[list.$f
3a3e0 69 6c 65 5d 5c 5d 5c 5d 5c 6e 22 0a 09 09 7d 0a 09 20 20 20 20 7d 0a 09 20 20 20 20 63 6c 6f 73 ile]\]\]\n"...}......}......clos
3a400 65 20 24 66 0a 09 7d 20 6d 73 67 5d 0a 09 69 66 20 7b 24 65 72 72 6f 72 7d 20 7b 0a 09 20 20 20 e.$f..}.msg]..if.{$error}.{.....
3a420 20 73 65 74 20 63 6f 64 65 20 24 65 72 72 6f 72 43 6f 64 65 0a 09 20 20 20 20 73 65 74 20 69 6e .set.code.$errorCode......set.in
3a440 66 6f 20 24 65 72 72 6f 72 49 6e 66 6f 0a 09 20 20 20 20 63 61 74 63 68 20 7b 63 6c 6f 73 65 20 fo.$errorInfo......catch.{close.
3a460 24 66 7d 0a 09 20 20 20 20 63 64 20 24 6f 6c 64 44 69 72 0a 09 20 20 20 20 65 72 72 6f 72 20 24 $f}......cd.$oldDir......error.$
3a480 6d 73 67 20 24 69 6e 66 6f 20 24 63 6f 64 65 0a 09 7d 0a 20 20 20 20 7d 0a 20 20 20 20 73 65 74 msg.$info.$code..}.....}.....set
3a4a0 20 66 20 22 22 0a 20 20 20 20 73 65 74 20 65 72 72 6f 72 20 5b 63 61 74 63 68 20 7b 0a 09 73 65 .f."".....set.error.[catch.{..se
3a4c0 74 20 66 20 5b 6f 70 65 6e 20 74 63 6c 49 6e 64 65 78 20 77 5d 0a 09 70 75 74 73 20 2d 6e 6f 6e t.f.[open.tclIndex.w]..puts.-non
3a4e0 65 77 6c 69 6e 65 20 24 66 20 24 69 6e 64 65 78 0a 09 63 6c 6f 73 65 20 24 66 0a 09 63 64 20 24 ewline.$f.$index..close.$f..cd.$
3a500 6f 6c 64 44 69 72 0a 20 20 20 20 7d 20 6d 73 67 5d 0a 20 20 20 20 69 66 20 7b 24 65 72 72 6f 72 oldDir.....}.msg].....if.{$error
3a520 7d 20 7b 0a 09 73 65 74 20 63 6f 64 65 20 24 65 72 72 6f 72 43 6f 64 65 0a 09 73 65 74 20 69 6e }.{..set.code.$errorCode..set.in
3a540 66 6f 20 24 65 72 72 6f 72 49 6e 66 6f 0a 09 63 61 74 63 68 20 7b 63 6c 6f 73 65 20 24 66 7d 0a fo.$errorInfo..catch.{close.$f}.
3a560 09 63 64 20 24 6f 6c 64 44 69 72 0a 09 65 72 72 6f 72 20 24 6d 73 67 20 24 69 6e 66 6f 20 24 63 .cd.$oldDir..error.$msg.$info.$c
3a580 6f 64 65 0a 20 20 20 20 7d 0a 7d 0a 0a 23 20 43 72 65 61 74 65 20 61 20 73 61 66 65 20 69 6e 74 ode.....}.}..#.Create.a.safe.int
3a5a0 65 72 70 72 65 74 65 72 20 74 68 61 74 20 63 61 6e 20 62 65 20 75 73 65 64 20 74 6f 20 70 61 72 erpreter.that.can.be.used.to.par
3a5c0 73 65 20 54 63 6c 20 73 6f 75 72 63 65 20 66 69 6c 65 73 0a 23 20 67 65 6e 65 72 61 74 65 20 61 se.Tcl.source.files.#.generate.a
3a5e0 20 74 63 6c 49 6e 64 65 78 20 66 69 6c 65 20 66 6f 72 20 61 75 74 6f 6c 6f 61 64 69 6e 67 2e 20 .tclIndex.file.for.autoloading..
3a600 20 54 68 69 73 20 69 6e 74 65 72 70 20 63 6f 6e 74 61 69 6e 73 0a 23 20 63 6f 6d 6d 61 6e 64 73 .This.interp.contains.#.commands
3a620 20 66 6f 72 20 74 68 69 6e 67 73 20 74 68 61 74 20 6e 65 65 64 20 69 6e 64 65 78 20 65 6e 74 72 .for.things.that.need.index.entr
3a640 69 65 73 2e 20 20 45 61 63 68 20 74 69 6d 65 20 61 20 63 6f 6d 6d 61 6e 64 0a 23 20 69 73 20 65 ies...Each.time.a.command.#.is.e
3a660 78 65 63 75 74 65 64 2c 20 69 74 20 77 72 69 74 65 73 20 61 6e 20 65 6e 74 72 79 20 6f 75 74 20 xecuted,.it.writes.an.entry.out.
3a680 74 6f 20 74 68 65 20 69 6e 64 65 78 20 66 69 6c 65 2e 0a 0a 6e 61 6d 65 73 70 61 63 65 20 65 76 to.the.index.file...namespace.ev
3a6a0 61 6c 20 61 75 74 6f 5f 6d 6b 69 6e 64 65 78 5f 70 61 72 73 65 72 20 7b 0a 20 20 20 20 76 61 72 al.auto_mkindex_parser.{.....var
3a6c0 69 61 62 6c 65 20 70 61 72 73 65 72 20 22 22 20 20 20 20 20 20 20 20 20 20 3b 23 20 70 61 72 73 iable.parser.""..........;#.pars
3a6e0 65 72 20 75 73 65 64 20 74 6f 20 62 75 69 6c 64 20 69 6e 64 65 78 0a 20 20 20 20 76 61 72 69 61 er.used.to.build.index.....varia
3a700 62 6c 65 20 69 6e 64 65 78 20 22 22 20 20 20 20 20 20 20 20 20 20 20 3b 23 20 6d 61 69 6e 74 61 ble.index.""...........;#.mainta
3a720 69 6e 73 20 69 6e 64 65 78 20 61 73 20 69 74 20 69 73 20 62 75 69 6c 74 0a 20 20 20 20 76 61 72 ins.index.as.it.is.built.....var
3a740 69 61 62 6c 65 20 73 63 72 69 70 74 46 69 6c 65 20 22 22 20 20 20 20 20 20 3b 23 20 6e 61 6d 65 iable.scriptFile.""......;#.name
3a760 20 6f 66 20 66 69 6c 65 20 62 65 69 6e 67 20 70 72 6f 63 65 73 73 65 64 0a 20 20 20 20 76 61 72 .of.file.being.processed.....var
3a780 69 61 62 6c 65 20 63 6f 6e 74 65 78 74 53 74 61 63 6b 20 22 22 20 20 20 20 3b 23 20 73 74 61 63 iable.contextStack.""....;#.stac
3a7a0 6b 20 6f 66 20 6e 61 6d 65 73 70 61 63 65 20 73 63 6f 70 65 73 0a 20 20 20 20 76 61 72 69 61 62 k.of.namespace.scopes.....variab
3a7c0 6c 65 20 69 6d 70 6f 72 74 73 20 22 22 20 20 20 20 20 20 20 20 20 3b 23 20 6b 65 65 70 73 20 74 le.imports."".........;#.keeps.t
3a7e0 72 61 63 6b 20 6f 66 20 61 6c 6c 20 69 6d 70 6f 72 74 65 64 20 63 6d 64 73 0a 20 20 20 20 76 61 rack.of.all.imported.cmds.....va
3a800 72 69 61 62 6c 65 20 69 6e 69 74 43 6f 6d 6d 61 6e 64 73 20 22 22 20 20 20 20 3b 23 20 6c 69 73 riable.initCommands.""....;#.lis
3a820 74 20 6f 66 20 63 6f 6d 6d 61 6e 64 73 20 74 68 61 74 20 63 72 65 61 74 65 20 61 6c 69 61 73 65 t.of.commands.that.create.aliase
3a840 73 0a 0a 20 20 20 20 70 72 6f 63 20 69 6e 69 74 20 7b 7d 20 7b 0a 09 76 61 72 69 61 62 6c 65 20 s......proc.init.{}.{..variable.
3a860 70 61 72 73 65 72 0a 09 76 61 72 69 61 62 6c 65 20 69 6e 69 74 43 6f 6d 6d 61 6e 64 73 0a 0a 09 parser..variable.initCommands...
3a880 69 66 20 7b 21 5b 69 6e 74 65 72 70 20 69 73 73 61 66 65 5d 7d 20 7b 0a 09 20 20 20 20 73 65 74 if.{![interp.issafe]}.{......set
3a8a0 20 70 61 72 73 65 72 20 5b 69 6e 74 65 72 70 20 63 72 65 61 74 65 20 2d 73 61 66 65 5d 0a 09 20 .parser.[interp.create.-safe]...
3a8c0 20 20 20 24 70 61 72 73 65 72 20 68 69 64 65 20 69 6e 66 6f 0a 09 20 20 20 20 24 70 61 72 73 65 ...$parser.hide.info......$parse
3a8e0 72 20 68 69 64 65 20 72 65 6e 61 6d 65 0a 09 20 20 20 20 24 70 61 72 73 65 72 20 68 69 64 65 20 r.hide.rename......$parser.hide.
3a900 70 72 6f 63 0a 09 20 20 20 20 24 70 61 72 73 65 72 20 68 69 64 65 20 6e 61 6d 65 73 70 61 63 65 proc......$parser.hide.namespace
3a920 0a 09 20 20 20 20 24 70 61 72 73 65 72 20 68 69 64 65 20 65 76 61 6c 0a 09 20 20 20 20 24 70 61 ......$parser.hide.eval......$pa
3a940 72 73 65 72 20 68 69 64 65 20 70 75 74 73 0a 09 20 20 20 20 24 70 61 72 73 65 72 20 69 6e 76 6f rser.hide.puts......$parser.invo
3a960 6b 65 68 69 64 64 65 6e 20 6e 61 6d 65 73 70 61 63 65 20 64 65 6c 65 74 65 20 3a 3a 0a 09 20 20 kehidden.namespace.delete.::....
3a980 20 20 24 70 61 72 73 65 72 20 69 6e 76 6f 6b 65 68 69 64 64 65 6e 20 70 72 6f 63 20 75 6e 6b 6e ..$parser.invokehidden.proc.unkn
3a9a0 6f 77 6e 20 7b 61 72 67 73 7d 20 7b 7d 0a 0a 09 20 20 20 20 23 20 57 65 27 6c 6c 20 6e 65 65 64 own.{args}.{}.......#.We'll.need
3a9c0 20 61 63 63 65 73 73 20 74 6f 20 74 68 65 20 22 6e 61 6d 65 73 70 61 63 65 22 20 63 6f 6d 6d 61 .access.to.the."namespace".comma
3a9e0 6e 64 20 77 69 74 68 69 6e 20 74 68 65 0a 09 20 20 20 20 23 20 69 6e 74 65 72 70 2e 20 20 50 75 nd.within.the......#.interp...Pu
3aa00 74 20 69 74 20 62 61 63 6b 2c 20 62 75 74 20 6d 6f 76 65 20 69 74 20 6f 75 74 20 6f 66 20 74 68 t.it.back,.but.move.it.out.of.th
3aa20 65 20 77 61 79 2e 0a 0a 09 20 20 20 20 24 70 61 72 73 65 72 20 65 78 70 6f 73 65 20 6e 61 6d 65 e.way........$parser.expose.name
3aa40 73 70 61 63 65 0a 09 20 20 20 20 24 70 61 72 73 65 72 20 69 6e 76 6f 6b 65 68 69 64 64 65 6e 20 space......$parser.invokehidden.
3aa60 72 65 6e 61 6d 65 20 6e 61 6d 65 73 70 61 63 65 20 5f 25 40 6e 61 6d 65 73 70 61 63 65 0a 09 20 rename.namespace._%@namespace...
3aa80 20 20 20 24 70 61 72 73 65 72 20 65 78 70 6f 73 65 20 65 76 61 6c 0a 09 20 20 20 20 24 70 61 72 ...$parser.expose.eval......$par
3aaa0 73 65 72 20 69 6e 76 6f 6b 65 68 69 64 64 65 6e 20 72 65 6e 61 6d 65 20 65 76 61 6c 20 5f 25 40 ser.invokehidden.rename.eval._%@
3aac0 65 76 61 6c 0a 0a 09 20 20 20 20 23 20 49 6e 73 74 61 6c 6c 20 61 6c 6c 20 74 68 65 20 72 65 67 eval.......#.Install.all.the.reg
3aae0 69 73 74 65 72 65 64 20 70 73 75 65 64 6f 2d 63 6f 6d 6d 61 6e 64 20 69 6d 70 6c 65 6d 65 6e 74 istered.psuedo-command.implement
3ab00 61 74 69 6f 6e 73 0a 0a 09 20 20 20 20 66 6f 72 65 61 63 68 20 63 6d 64 20 24 69 6e 69 74 43 6f ations.......foreach.cmd.$initCo
3ab20 6d 6d 61 6e 64 73 20 7b 0a 09 09 65 76 61 6c 20 24 63 6d 64 0a 09 20 20 20 20 7d 0a 09 7d 0a 20 mmands.{...eval.$cmd......}..}..
3ab40 20 20 20 7d 0a 20 20 20 20 70 72 6f 63 20 63 6c 65 61 6e 75 70 20 7b 7d 20 7b 0a 09 76 61 72 69 ...}.....proc.cleanup.{}.{..vari
3ab60 61 62 6c 65 20 70 61 72 73 65 72 0a 09 69 6e 74 65 72 70 20 64 65 6c 65 74 65 20 24 70 61 72 73 able.parser..interp.delete.$pars
3ab80 65 72 0a 09 75 6e 73 65 74 20 70 61 72 73 65 72 0a 20 20 20 20 7d 0a 7d 0a 0a 23 20 61 75 74 6f er..unset.parser.....}.}..#.auto
3aba0 5f 6d 6b 69 6e 64 65 78 5f 70 61 72 73 65 72 3a 3a 6d 6b 69 6e 64 65 78 20 2d 2d 0a 23 0a 23 20 _mkindex_parser::mkindex.--.#.#.
3abc0 55 73 65 64 20 62 79 20 74 68 65 20 22 61 75 74 6f 5f 6d 6b 69 6e 64 65 78 22 20 63 6f 6d 6d 61 Used.by.the."auto_mkindex".comma
3abe0 6e 64 20 74 6f 20 63 72 65 61 74 65 20 61 20 22 74 63 6c 49 6e 64 65 78 22 20 66 69 6c 65 20 66 nd.to.create.a."tclIndex".file.f
3ac00 6f 72 0a 23 20 74 68 65 20 67 69 76 65 6e 20 54 63 6c 20 73 6f 75 72 63 65 20 66 69 6c 65 2e 20 or.#.the.given.Tcl.source.file..
3ac20 20 45 78 65 63 75 74 65 73 20 74 68 65 20 63 6f 6d 6d 61 6e 64 73 20 69 6e 20 74 68 65 20 66 69 .Executes.the.commands.in.the.fi
3ac40 6c 65 2c 20 61 6e 64 0a 23 20 68 61 6e 64 6c 65 73 20 74 68 69 6e 67 73 20 6c 69 6b 65 20 74 68 le,.and.#.handles.things.like.th
3ac60 65 20 22 70 72 6f 63 22 20 63 6f 6d 6d 61 6e 64 20 62 79 20 61 64 64 69 6e 67 20 61 6e 20 65 6e e."proc".command.by.adding.an.en
3ac80 74 72 79 20 66 6f 72 20 74 68 65 0a 23 20 69 6e 64 65 78 20 66 69 6c 65 2e 20 20 52 65 74 75 72 try.for.the.#.index.file...Retur
3aca0 6e 73 20 61 20 73 74 72 69 6e 67 20 74 68 61 74 20 72 65 70 72 65 73 65 6e 74 73 20 74 68 65 20 ns.a.string.that.represents.the.
3acc0 69 6e 64 65 78 20 66 69 6c 65 2e 0a 23 0a 23 20 41 72 67 75 6d 65 6e 74 73 3a 20 0a 23 09 66 69 index.file..#.#.Arguments:..#.fi
3ace0 6c 65 09 4e 61 6d 65 20 6f 66 20 54 63 6c 20 73 6f 75 72 63 65 20 66 69 6c 65 20 74 6f 20 62 65 le.Name.of.Tcl.source.file.to.be
3ad00 20 69 6e 64 65 78 65 64 2e 0a 0a 70 72 6f 63 20 61 75 74 6f 5f 6d 6b 69 6e 64 65 78 5f 70 61 72 .indexed...proc.auto_mkindex_par
3ad20 73 65 72 3a 3a 6d 6b 69 6e 64 65 78 20 7b 66 69 6c 65 7d 20 7b 0a 20 20 20 20 76 61 72 69 61 62 ser::mkindex.{file}.{.....variab
3ad40 6c 65 20 70 61 72 73 65 72 0a 20 20 20 20 76 61 72 69 61 62 6c 65 20 69 6e 64 65 78 0a 20 20 20 le.parser.....variable.index....
3ad60 20 76 61 72 69 61 62 6c 65 20 73 63 72 69 70 74 46 69 6c 65 0a 20 20 20 20 76 61 72 69 61 62 6c .variable.scriptFile.....variabl
3ad80 65 20 63 6f 6e 74 65 78 74 53 74 61 63 6b 0a 20 20 20 20 76 61 72 69 61 62 6c 65 20 69 6d 70 6f e.contextStack.....variable.impo
3ada0 72 74 73 0a 0a 20 20 20 20 73 65 74 20 73 63 72 69 70 74 46 69 6c 65 20 24 66 69 6c 65 0a 0a 20 rts......set.scriptFile.$file...
3adc0 20 20 20 73 65 74 20 66 69 64 20 5b 6f 70 65 6e 20 24 66 69 6c 65 5d 0a 20 20 20 20 73 65 74 20 ...set.fid.[open.$file].....set.
3ade0 63 6f 6e 74 65 6e 74 73 20 5b 72 65 61 64 20 24 66 69 64 5d 0a 20 20 20 20 63 6c 6f 73 65 20 24 contents.[read.$fid].....close.$
3ae00 66 69 64 0a 0a 20 20 20 20 23 20 54 68 65 72 65 20 69 73 20 6f 6e 65 20 70 72 6f 62 6c 65 6d 20 fid......#.There.is.one.problem.
3ae20 77 69 74 68 20 73 6f 75 72 63 69 6e 67 20 66 69 6c 65 73 20 69 6e 74 6f 20 74 68 65 20 73 61 66 with.sourcing.files.into.the.saf
3ae40 65 0a 20 20 20 20 23 20 69 6e 74 65 72 70 72 65 74 65 72 3a 20 20 72 65 66 65 72 65 6e 63 65 73 e.....#.interpreter:..references
3ae60 20 6c 69 6b 65 20 22 24 78 22 20 77 69 6c 6c 20 66 61 69 6c 20 73 69 6e 63 65 20 63 6f 64 65 20 .like."$x".will.fail.since.code.
3ae80 69 73 20 6e 6f 74 0a 20 20 20 20 23 20 72 65 61 6c 6c 79 20 62 65 69 6e 67 20 65 78 65 63 75 74 is.not.....#.really.being.execut
3aea0 65 64 20 61 6e 64 20 76 61 72 69 61 62 6c 65 73 20 64 6f 20 6e 6f 74 20 72 65 61 6c 6c 79 20 65 ed.and.variables.do.not.really.e
3aec0 78 69 73 74 2e 0a 20 20 20 20 23 20 54 6f 20 61 76 6f 69 64 20 74 68 69 73 2c 20 77 65 20 72 65 xist......#.To.avoid.this,.we.re
3aee0 70 6c 61 63 65 20 61 6c 6c 20 24 20 77 69 74 68 20 5c 30 20 28 6c 69 74 65 72 61 6c 6c 79 2c 20 place.all.$.with.\0.(literally,.
3af00 74 68 65 20 6e 75 6c 6c 20 63 68 61 72 29 0a 20 20 20 20 23 20 6c 61 74 65 72 2c 20 77 68 65 6e the.null.char).....#.later,.when
3af20 20 67 65 74 74 69 6e 67 20 70 72 6f 63 20 6e 61 6d 65 73 20 77 65 20 77 69 6c 6c 20 68 61 76 65 .getting.proc.names.we.will.have
3af40 20 74 6f 20 72 65 76 65 72 73 65 20 74 68 69 73 20 72 65 70 6c 61 63 65 6d 65 6e 74 2c 0a 20 20 .to.reverse.this.replacement,...
3af60 20 20 23 20 69 6e 20 63 61 73 65 20 74 68 65 72 65 20 77 65 72 65 20 61 6e 79 20 24 20 69 6e 20 ..#.in.case.there.were.any.$.in.
3af80 74 68 65 20 70 72 6f 63 20 6e 61 6d 65 2e 20 20 54 68 69 73 20 77 69 6c 6c 20 63 61 75 73 65 20 the.proc.name...This.will.cause.
3afa0 61 20 70 72 6f 62 6c 65 6d 0a 20 20 20 20 23 20 69 66 20 73 6f 6d 65 62 6f 64 79 20 61 63 74 75 a.problem.....#.if.somebody.actu
3afc0 61 6c 6c 79 20 74 72 69 65 73 20 74 6f 20 68 61 76 65 20 61 20 5c 30 20 69 6e 20 74 68 65 69 72 ally.tries.to.have.a.\0.in.their
3afe0 20 70 72 6f 63 20 6e 61 6d 65 2e 20 20 54 6f 6f 20 62 61 64 0a 20 20 20 20 23 20 66 6f 72 20 74 .proc.name...Too.bad.....#.for.t
3b000 68 65 6d 2e 0a 20 20 20 20 72 65 67 73 75 62 20 2d 61 6c 6c 20 7b 5c 24 7d 20 24 63 6f 6e 74 65 hem......regsub.-all.{\$}.$conte
3b020 6e 74 73 20 22 5c 30 22 20 63 6f 6e 74 65 6e 74 73 0a 20 20 20 20 0a 20 20 20 20 73 65 74 20 69 nts."\0".contents..........set.i
3b040 6e 64 65 78 20 22 22 0a 20 20 20 20 73 65 74 20 63 6f 6e 74 65 78 74 53 74 61 63 6b 20 22 22 0a ndex."".....set.contextStack."".
3b060 20 20 20 20 73 65 74 20 69 6d 70 6f 72 74 73 20 22 22 0a 0a 20 20 20 20 24 70 61 72 73 65 72 20 ....set.imports.""......$parser.
3b080 65 76 61 6c 20 24 63 6f 6e 74 65 6e 74 73 0a 0a 20 20 20 20 66 6f 72 65 61 63 68 20 6e 61 6d 65 eval.$contents......foreach.name
3b0a0 20 24 69 6d 70 6f 72 74 73 20 7b 0a 20 20 20 20 20 20 20 20 63 61 74 63 68 20 7b 24 70 61 72 73 .$imports.{.........catch.{$pars
3b0c0 65 72 20 65 76 61 6c 20 5b 6c 69 73 74 20 5f 25 40 6e 61 6d 65 73 70 61 63 65 20 66 6f 72 67 65 er.eval.[list._%@namespace.forge
3b0e0 74 20 24 6e 61 6d 65 5d 7d 0a 20 20 20 20 7d 0a 20 20 20 20 72 65 74 75 72 6e 20 24 69 6e 64 65 t.$name]}.....}.....return.$inde
3b100 78 0a 7d 0a 0a 23 20 61 75 74 6f 5f 6d 6b 69 6e 64 65 78 5f 70 61 72 73 65 72 3a 3a 68 6f 6f 6b x.}..#.auto_mkindex_parser::hook
3b120 20 63 6f 6d 6d 61 6e 64 0a 23 0a 23 20 52 65 67 69 73 74 65 72 73 20 61 20 54 63 6c 20 63 6f 6d .command.#.#.Registers.a.Tcl.com
3b140 6d 61 6e 64 20 74 6f 20 65 76 61 6c 75 61 74 65 20 77 68 65 6e 20 69 6e 69 74 69 61 6c 69 7a 69 mand.to.evaluate.when.initializi
3b160 6e 67 20 74 68 65 0a 23 20 73 6c 61 76 65 20 69 6e 74 65 72 70 72 65 74 65 72 20 75 73 65 64 20 ng.the.#.slave.interpreter.used.
3b180 62 79 20 74 68 65 20 6d 6b 69 6e 64 65 78 20 70 61 72 73 65 72 2e 0a 23 20 54 68 65 20 63 6f 6d by.the.mkindex.parser..#.The.com
3b1a0 6d 61 6e 64 20 69 73 20 65 76 61 6c 75 61 74 65 64 20 69 6e 20 74 68 65 20 6d 61 73 74 65 72 20 mand.is.evaluated.in.the.master.
3b1c0 69 6e 74 65 72 70 72 65 74 65 72 2c 20 61 6e 64 20 63 61 6e 0a 23 20 75 73 65 20 74 68 65 20 76 interpreter,.and.can.#.use.the.v
3b1e0 61 72 69 61 62 6c 65 20 61 75 74 6f 5f 6d 6b 69 6e 64 65 78 5f 70 61 72 73 65 72 3a 3a 70 61 72 ariable.auto_mkindex_parser::par
3b200 73 65 72 20 74 6f 20 67 65 74 20 74 6f 20 74 68 65 20 73 6c 61 76 65 0a 0a 70 72 6f 63 20 61 75 ser.to.get.to.the.slave..proc.au
3b220 74 6f 5f 6d 6b 69 6e 64 65 78 5f 70 61 72 73 65 72 3a 3a 68 6f 6f 6b 20 7b 63 6d 64 7d 20 7b 0a to_mkindex_parser::hook.{cmd}.{.
3b240 20 20 20 20 76 61 72 69 61 62 6c 65 20 69 6e 69 74 43 6f 6d 6d 61 6e 64 73 0a 0a 20 20 20 20 6c ....variable.initCommands......l
3b260 61 70 70 65 6e 64 20 69 6e 69 74 43 6f 6d 6d 61 6e 64 73 20 24 63 6d 64 0a 7d 0a 0a 23 20 61 75 append.initCommands.$cmd.}..#.au
3b280 74 6f 5f 6d 6b 69 6e 64 65 78 5f 70 61 72 73 65 72 3a 3a 73 6c 61 76 65 68 6f 6f 6b 20 63 6f 6d to_mkindex_parser::slavehook.com
3b2a0 6d 61 6e 64 0a 23 0a 23 20 52 65 67 69 73 74 65 72 73 20 61 20 54 63 6c 20 63 6f 6d 6d 61 6e 64 mand.#.#.Registers.a.Tcl.command
3b2c0 20 74 6f 20 65 76 61 6c 75 61 74 65 20 77 68 65 6e 20 69 6e 69 74 69 61 6c 69 7a 69 6e 67 20 74 .to.evaluate.when.initializing.t
3b2e0 68 65 0a 23 20 73 6c 61 76 65 20 69 6e 74 65 72 70 72 65 74 65 72 20 75 73 65 64 20 62 79 20 74 he.#.slave.interpreter.used.by.t
3b300 68 65 20 6d 6b 69 6e 64 65 78 20 70 61 72 73 65 72 2e 0a 23 20 54 68 65 20 63 6f 6d 6d 61 6e 64 he.mkindex.parser..#.The.command
3b320 20 69 73 20 65 76 61 6c 75 61 74 65 64 20 69 6e 20 74 68 65 20 73 6c 61 76 65 20 69 6e 74 65 72 .is.evaluated.in.the.slave.inter
3b340 70 72 65 74 65 72 2e 0a 0a 70 72 6f 63 20 61 75 74 6f 5f 6d 6b 69 6e 64 65 78 5f 70 61 72 73 65 preter...proc.auto_mkindex_parse
3b360 72 3a 3a 73 6c 61 76 65 68 6f 6f 6b 20 7b 63 6d 64 7d 20 7b 0a 20 20 20 20 76 61 72 69 61 62 6c r::slavehook.{cmd}.{.....variabl
3b380 65 20 69 6e 69 74 43 6f 6d 6d 61 6e 64 73 0a 0a 20 20 20 20 23 20 54 68 65 20 24 70 61 72 73 65 e.initCommands......#.The.$parse
3b3a0 72 20 76 61 72 69 61 62 6c 65 20 69 73 20 64 65 66 69 6e 65 64 20 74 6f 20 62 65 20 74 68 65 20 r.variable.is.defined.to.be.the.
3b3c0 6e 61 6d 65 20 6f 66 20 74 68 65 0a 20 20 20 20 23 20 73 6c 61 76 65 20 69 6e 74 65 72 70 72 65 name.of.the.....#.slave.interpre
3b3e0 74 65 72 20 77 68 65 6e 20 74 68 69 73 20 63 6f 6d 6d 61 6e 64 20 69 73 20 75 73 65 64 20 6c 61 ter.when.this.command.is.used.la
3b400 74 65 72 2e 0a 0a 20 20 20 20 6c 61 70 70 65 6e 64 20 69 6e 69 74 43 6f 6d 6d 61 6e 64 73 20 22 ter.......lappend.initCommands."
3b420 5c 24 70 61 72 73 65 72 20 65 76 61 6c 20 5b 6c 69 73 74 20 24 63 6d 64 5d 22 0a 7d 0a 0a 23 20 \$parser.eval.[list.$cmd]".}..#.
3b440 61 75 74 6f 5f 6d 6b 69 6e 64 65 78 5f 70 61 72 73 65 72 3a 3a 63 6f 6d 6d 61 6e 64 20 2d 2d 0a auto_mkindex_parser::command.--.
3b460 23 0a 23 20 52 65 67 69 73 74 65 72 73 20 61 20 6e 65 77 20 63 6f 6d 6d 61 6e 64 20 77 69 74 68 #.#.Registers.a.new.command.with
3b480 20 74 68 65 20 22 61 75 74 6f 5f 6d 6b 69 6e 64 65 78 5f 70 61 72 73 65 72 22 20 69 6e 74 65 72 .the."auto_mkindex_parser".inter
3b4a0 70 72 65 74 65 72 0a 23 20 74 68 61 74 20 70 61 72 73 65 73 20 54 63 6c 20 66 69 6c 65 73 2e 20 preter.#.that.parses.Tcl.files..
3b4c0 20 54 68 65 73 65 20 63 6f 6d 6d 61 6e 64 73 20 61 72 65 20 66 61 6b 65 20 76 65 72 73 69 6f 6e .These.commands.are.fake.version
3b4e0 73 20 6f 66 20 74 68 69 6e 67 73 0a 23 20 6c 69 6b 65 20 74 68 65 20 22 70 72 6f 63 22 20 63 6f s.of.things.#.like.the."proc".co
3b500 6d 6d 61 6e 64 2e 20 20 57 68 65 6e 20 79 6f 75 20 65 78 65 63 75 74 65 20 74 68 65 6d 2c 20 74 mmand...When.you.execute.them,.t
3b520 68 65 79 20 73 69 6d 70 6c 79 20 77 72 69 74 65 0a 23 20 6f 75 74 20 61 6e 20 65 6e 74 72 79 20 hey.simply.write.#.out.an.entry.
3b540 74 6f 20 61 20 22 74 63 6c 49 6e 64 65 78 22 20 66 69 6c 65 20 66 6f 72 20 61 75 74 6f 2d 6c 6f to.a."tclIndex".file.for.auto-lo
3b560 61 64 69 6e 67 2e 0a 23 0a 23 20 54 68 69 73 20 70 72 6f 63 65 64 75 72 65 20 61 6c 6c 6f 77 73 ading..#.#.This.procedure.allows
3b580 20 65 78 74 65 6e 73 69 6f 6e 73 20 74 6f 20 72 65 67 69 73 74 65 72 20 74 68 65 69 72 20 6f 77 .extensions.to.register.their.ow
3b5a0 6e 20 63 6f 6d 6d 61 6e 64 73 0a 23 20 77 69 74 68 20 74 68 65 20 61 75 74 6f 5f 6d 6b 69 6e 64 n.commands.#.with.the.auto_mkind
3b5c0 65 78 20 66 61 63 69 6c 69 74 79 2e 20 20 46 6f 72 20 65 78 61 6d 70 6c 65 2c 20 61 20 70 61 63 ex.facility...For.example,.a.pac
3b5e0 6b 61 67 65 20 6c 69 6b 65 0a 23 20 5b 69 6e 63 72 20 54 63 6c 5d 20 6d 69 67 68 74 20 72 65 67 kage.like.#.[incr.Tcl].might.reg
3b600 69 73 74 65 72 20 61 20 22 63 6c 61 73 73 22 20 63 6f 6d 6d 61 6e 64 20 73 6f 20 74 68 61 74 20 ister.a."class".command.so.that.
3b620 63 6c 61 73 73 20 64 65 66 69 6e 69 74 69 6f 6e 73 0a 23 20 63 6f 75 6c 64 20 62 65 20 61 64 64 class.definitions.#.could.be.add
3b640 65 64 20 74 6f 20 61 20 22 74 63 6c 49 6e 64 65 78 22 20 66 69 6c 65 20 66 6f 72 20 61 75 74 6f ed.to.a."tclIndex".file.for.auto
3b660 2d 6c 6f 61 64 69 6e 67 2e 0a 23 0a 23 20 41 72 67 75 6d 65 6e 74 73 3a 0a 23 09 6e 61 6d 65 20 -loading..#.#.Arguments:.#.name.
3b680 09 4e 61 6d 65 20 6f 66 20 63 6f 6d 6d 61 6e 64 20 72 65 63 6f 67 6e 69 7a 65 64 20 69 6e 20 54 .Name.of.command.recognized.in.T
3b6a0 63 6c 20 66 69 6c 65 73 2e 0a 23 09 61 72 67 6c 69 73 74 09 41 72 67 75 6d 65 6e 74 20 6c 69 73 cl.files..#.arglist.Argument.lis
3b6c0 74 20 66 6f 72 20 63 6f 6d 6d 61 6e 64 2e 0a 23 09 62 6f 64 79 20 09 49 6d 70 6c 65 6d 65 6e 74 t.for.command..#.body..Implement
3b6e0 61 74 69 6f 6e 20 6f 66 20 63 6f 6d 6d 61 6e 64 20 74 6f 20 68 61 6e 64 6c 65 20 69 6e 64 65 78 ation.of.command.to.handle.index
3b700 69 6e 67 2e 0a 0a 70 72 6f 63 20 61 75 74 6f 5f 6d 6b 69 6e 64 65 78 5f 70 61 72 73 65 72 3a 3a ing...proc.auto_mkindex_parser::
3b720 63 6f 6d 6d 61 6e 64 20 7b 6e 61 6d 65 20 61 72 67 6c 69 73 74 20 62 6f 64 79 7d 20 7b 0a 20 20 command.{name.arglist.body}.{...
3b740 20 20 68 6f 6f 6b 20 5b 6c 69 73 74 20 61 75 74 6f 5f 6d 6b 69 6e 64 65 78 5f 70 61 72 73 65 72 ..hook.[list.auto_mkindex_parser
3b760 3a 3a 63 6f 6d 6d 61 6e 64 49 6e 69 74 20 24 6e 61 6d 65 20 24 61 72 67 6c 69 73 74 20 24 62 6f ::commandInit.$name.$arglist.$bo
3b780 64 79 5d 0a 7d 0a 0a 23 20 61 75 74 6f 5f 6d 6b 69 6e 64 65 78 5f 70 61 72 73 65 72 3a 3a 63 6f dy].}..#.auto_mkindex_parser::co
3b7a0 6d 6d 61 6e 64 49 6e 69 74 20 2d 2d 0a 23 0a 23 20 54 68 69 73 20 64 6f 65 73 20 74 68 65 20 61 mmandInit.--.#.#.This.does.the.a
3b7c0 63 74 75 61 6c 20 77 6f 72 6b 20 73 65 74 20 75 70 20 62 79 20 61 75 74 6f 5f 6d 6b 69 6e 64 65 ctual.work.set.up.by.auto_mkinde
3b7e0 78 5f 70 61 72 73 65 72 3a 3a 63 6f 6d 6d 61 6e 64 0a 23 20 54 68 69 73 20 69 73 20 63 61 6c 6c x_parser::command.#.This.is.call
3b800 65 64 20 77 68 65 6e 20 74 68 65 20 69 6e 74 65 72 70 72 65 74 65 72 20 75 73 65 64 20 62 79 20 ed.when.the.interpreter.used.by.
3b820 74 68 65 20 70 61 72 73 65 72 20 69 73 20 63 72 65 61 74 65 64 2e 0a 23 0a 23 20 41 72 67 75 6d the.parser.is.created..#.#.Argum
3b840 65 6e 74 73 3a 0a 23 09 6e 61 6d 65 20 09 4e 61 6d 65 20 6f 66 20 63 6f 6d 6d 61 6e 64 20 72 65 ents:.#.name..Name.of.command.re
3b860 63 6f 67 6e 69 7a 65 64 20 69 6e 20 54 63 6c 20 66 69 6c 65 73 2e 0a 23 09 61 72 67 6c 69 73 74 cognized.in.Tcl.files..#.arglist
3b880 09 41 72 67 75 6d 65 6e 74 20 6c 69 73 74 20 66 6f 72 20 63 6f 6d 6d 61 6e 64 2e 0a 23 09 62 6f .Argument.list.for.command..#.bo
3b8a0 64 79 20 09 49 6d 70 6c 65 6d 65 6e 74 61 74 69 6f 6e 20 6f 66 20 63 6f 6d 6d 61 6e 64 20 74 6f dy..Implementation.of.command.to
3b8c0 20 68 61 6e 64 6c 65 20 69 6e 64 65 78 69 6e 67 2e 0a 0a 70 72 6f 63 20 61 75 74 6f 5f 6d 6b 69 .handle.indexing...proc.auto_mki
3b8e0 6e 64 65 78 5f 70 61 72 73 65 72 3a 3a 63 6f 6d 6d 61 6e 64 49 6e 69 74 20 7b 6e 61 6d 65 20 61 ndex_parser::commandInit.{name.a
3b900 72 67 6c 69 73 74 20 62 6f 64 79 7d 20 7b 0a 20 20 20 20 76 61 72 69 61 62 6c 65 20 70 61 72 73 rglist.body}.{.....variable.pars
3b920 65 72 0a 0a 20 20 20 20 73 65 74 20 6e 73 20 5b 6e 61 6d 65 73 70 61 63 65 20 71 75 61 6c 69 66 er......set.ns.[namespace.qualif
3b940 69 65 72 73 20 24 6e 61 6d 65 5d 0a 20 20 20 20 73 65 74 20 74 61 69 6c 20 5b 6e 61 6d 65 73 70 iers.$name].....set.tail.[namesp
3b960 61 63 65 20 74 61 69 6c 20 24 6e 61 6d 65 5d 0a 20 20 20 20 69 66 20 7b 5b 73 74 72 69 6e 67 20 ace.tail.$name].....if.{[string.
3b980 65 71 75 61 6c 20 24 6e 73 20 22 22 5d 7d 20 7b 0a 20 20 20 20 20 20 20 20 73 65 74 20 66 61 6b equal.$ns.""]}.{.........set.fak
3b9a0 65 4e 61 6d 65 20 22 5b 6e 61 6d 65 73 70 61 63 65 20 63 75 72 72 65 6e 74 5d 3a 3a 5f 25 40 66 eName."[namespace.current]::_%@f
3b9c0 61 6b 65 5f 24 74 61 69 6c 22 0a 20 20 20 20 7d 20 65 6c 73 65 20 7b 0a 20 20 20 20 20 20 20 20 ake_$tail".....}.else.{.........
3b9e0 73 65 74 20 66 61 6b 65 4e 61 6d 65 20 22 5f 25 40 66 61 6b 65 5f 24 6e 61 6d 65 22 0a 20 20 20 set.fakeName."_%@fake_$name"....
3ba00 20 20 20 20 20 72 65 67 73 75 62 20 2d 61 6c 6c 20 7b 3a 3a 7d 20 24 66 61 6b 65 4e 61 6d 65 20 .....regsub.-all.{::}.$fakeName.
3ba20 22 5f 22 20 66 61 6b 65 4e 61 6d 65 0a 20 20 20 20 20 20 20 20 73 65 74 20 66 61 6b 65 4e 61 6d "_".fakeName.........set.fakeNam
3ba40 65 20 22 5b 6e 61 6d 65 73 70 61 63 65 20 63 75 72 72 65 6e 74 5d 3a 3a 24 66 61 6b 65 4e 61 6d e."[namespace.current]::$fakeNam
3ba60 65 22 0a 20 20 20 20 7d 0a 20 20 20 20 70 72 6f 63 20 24 66 61 6b 65 4e 61 6d 65 20 24 61 72 67 e".....}.....proc.$fakeName.$arg
3ba80 6c 69 73 74 20 24 62 6f 64 79 0a 0a 20 20 20 20 23 20 59 55 4b 21 20 20 54 63 6c 20 77 6f 6e 27 list.$body......#.YUK!..Tcl.won'
3baa0 74 20 6c 65 74 20 75 73 20 61 6c 69 61 73 20 66 75 6c 6c 79 20 71 75 61 6c 69 66 69 65 64 20 63 t.let.us.alias.fully.qualified.c
3bac0 6f 6d 6d 61 6e 64 20 6e 61 6d 65 73 2c 0a 20 20 20 20 23 20 73 6f 20 77 65 20 63 61 6e 27 74 20 ommand.names,.....#.so.we.can't.
3bae0 68 61 6e 64 6c 65 20 6e 61 6d 65 73 20 6c 69 6b 65 20 22 3a 3a 69 74 63 6c 3a 3a 63 6c 61 73 73 handle.names.like."::itcl::class
3bb00 22 2e 20 20 49 6e 73 74 65 61 64 2c 0a 20 20 20 20 23 20 77 65 20 68 61 76 65 20 74 6f 20 62 75 "...Instead,.....#.we.have.to.bu
3bb20 69 6c 64 20 70 72 6f 63 73 20 77 69 74 68 20 74 68 65 20 66 75 6c 6c 79 20 71 75 61 6c 69 66 69 ild.procs.with.the.fully.qualifi
3bb40 65 64 20 6e 61 6d 65 73 2c 20 61 6e 64 0a 20 20 20 20 23 20 68 61 76 65 20 74 68 65 20 70 72 6f ed.names,.and.....#.have.the.pro
3bb60 63 73 20 70 6f 69 6e 74 20 74 6f 20 74 68 65 20 61 6c 69 61 73 65 73 2e 0a 0a 20 20 20 20 69 66 cs.point.to.the.aliases.......if
3bb80 20 7b 5b 72 65 67 65 78 70 20 7b 3a 3a 7d 20 24 6e 61 6d 65 5d 7d 20 7b 0a 20 20 20 20 20 20 20 .{[regexp.{::}.$name]}.{........
3bba0 20 73 65 74 20 65 78 70 6f 72 74 43 6d 64 20 5b 6c 69 73 74 20 5f 25 40 6e 61 6d 65 73 70 61 63 .set.exportCmd.[list._%@namespac
3bbc0 65 20 65 78 70 6f 72 74 20 5b 6e 61 6d 65 73 70 61 63 65 20 74 61 69 6c 20 24 6e 61 6d 65 5d 5d e.export.[namespace.tail.$name]]
3bbe0 0a 20 20 20 20 20 20 20 20 24 70 61 72 73 65 72 20 65 76 61 6c 20 5b 6c 69 73 74 20 5f 25 40 6e .........$parser.eval.[list._%@n
3bc00 61 6d 65 73 70 61 63 65 20 65 76 61 6c 20 24 6e 73 20 24 65 78 70 6f 72 74 43 6d 64 5d 0a 20 0a amespace.eval.$ns.$exportCmd]...
3bc20 09 23 20 54 68 65 20 66 6f 6c 6c 6f 77 69 6e 67 20 70 72 6f 63 20 64 65 66 69 6e 69 74 69 6f 6e .#.The.following.proc.definition
3bc40 20 64 6f 65 73 20 6e 6f 74 20 77 6f 72 6b 20 69 66 20 79 6f 75 0a 09 23 20 77 61 6e 74 20 74 6f .does.not.work.if.you..#.want.to
3bc60 20 74 6f 6c 65 72 61 74 65 20 73 70 61 63 65 20 6f 72 20 73 6f 6d 65 74 68 69 6e 67 20 65 6c 73 .tolerate.space.or.something.els
3bc80 65 20 64 69 61 62 6f 6c 69 63 61 6c 0a 09 23 20 69 6e 20 74 68 65 20 70 72 6f 63 65 64 75 72 65 e.diabolical..#.in.the.procedure
3bca0 20 6e 61 6d 65 2c 20 28 69 2e 65 2e 2c 20 73 70 61 63 65 20 69 6e 20 24 61 6c 69 61 73 29 0a 09 .name,.(i.e.,.space.in.$alias)..
3bcc0 23 20 54 68 65 20 66 6f 6c 6c 6f 77 69 6e 67 20 64 6f 65 73 20 6e 6f 74 20 77 6f 72 6b 3a 0a 09 #.The.following.does.not.work:..
3bce0 23 20 20 20 22 5f 25 40 65 76 61 6c 20 7b 24 61 6c 69 61 73 7d 20 5c 24 61 72 67 73 22 0a 09 23 #..."_%@eval.{$alias}.\$args"..#
3bd00 20 62 65 63 61 75 73 65 20 24 61 6c 69 61 73 20 67 65 74 73 20 63 6f 6e 63 61 74 27 65 64 20 74 .because.$alias.gets.concat'ed.t
3bd20 6f 20 24 61 72 67 73 2e 0a 09 23 20 54 68 65 20 66 6f 6c 6c 6f 77 69 6e 67 20 64 6f 65 73 20 6e o.$args...#.The.following.does.n
3bd40 6f 74 20 77 6f 72 6b 20 62 65 63 61 75 73 65 20 24 63 6d 64 20 69 73 20 73 6f 6d 65 68 6f 77 20 ot.work.because.$cmd.is.somehow.
3bd60 75 6e 64 65 66 69 6e 65 64 0a 09 23 20 20 20 22 73 65 74 20 63 6d 64 20 7b 24 61 6c 69 61 73 7d undefined..#..."set.cmd.{$alias}
3bd80 20 5c 3b 20 5f 25 40 65 76 61 6c 20 7b 5c 24 63 6d 64 7d 20 5c 24 61 72 67 73 22 0a 09 23 20 41 .\;._%@eval.{\$cmd}.\$args"..#.A
3bda0 20 67 6f 6c 64 20 73 74 61 72 20 74 6f 20 73 6f 6d 65 6f 6e 65 20 74 68 61 74 20 63 61 6e 20 6d .gold.star.to.someone.that.can.m
3bdc0 61 6b 65 20 74 65 73 74 0a 09 23 20 61 75 74 6f 4d 6b 69 6e 64 65 78 2d 33 2e 33 20 77 6f 72 6b ake.test..#.autoMkindex-3.3.work
3bde0 20 70 72 6f 70 65 72 6c 79 0a 0a 20 20 20 20 20 20 20 20 73 65 74 20 61 6c 69 61 73 20 5b 6e 61 .properly..........set.alias.[na
3be00 6d 65 73 70 61 63 65 20 74 61 69 6c 20 24 66 61 6b 65 4e 61 6d 65 5d 0a 20 20 20 20 20 20 20 20 mespace.tail.$fakeName].........
3be20 24 70 61 72 73 65 72 20 69 6e 76 6f 6b 65 68 69 64 64 65 6e 20 70 72 6f 63 20 24 6e 61 6d 65 20 $parser.invokehidden.proc.$name.
3be40 7b 61 72 67 73 7d 20 22 5f 25 40 65 76 61 6c 20 7b 24 61 6c 69 61 73 7d 20 5c 24 61 72 67 73 22 {args}."_%@eval.{$alias}.\$args"
3be60 0a 20 20 20 20 20 20 20 20 24 70 61 72 73 65 72 20 61 6c 69 61 73 20 24 61 6c 69 61 73 20 24 66 .........$parser.alias.$alias.$f
3be80 61 6b 65 4e 61 6d 65 0a 20 20 20 20 7d 20 65 6c 73 65 20 7b 0a 20 20 20 20 20 20 20 20 24 70 61 akeName.....}.else.{.........$pa
3bea0 72 73 65 72 20 61 6c 69 61 73 20 24 6e 61 6d 65 20 24 66 61 6b 65 4e 61 6d 65 0a 20 20 20 20 7d rser.alias.$name.$fakeName.....}
3bec0 0a 20 20 20 20 72 65 74 75 72 6e 0a 7d 0a 0a 23 20 61 75 74 6f 5f 6d 6b 69 6e 64 65 78 5f 70 61 .....return.}..#.auto_mkindex_pa
3bee0 72 73 65 72 3a 3a 66 75 6c 6c 6e 61 6d 65 20 2d 2d 0a 23 20 55 73 65 64 20 62 79 20 63 6f 6d 6d rser::fullname.--.#.Used.by.comm
3bf00 61 6e 64 73 20 6c 69 6b 65 20 22 70 72 6f 63 22 20 77 69 74 68 69 6e 20 74 68 65 20 61 75 74 6f ands.like."proc".within.the.auto
3bf20 5f 6d 6b 69 6e 64 65 78 20 70 61 72 73 65 72 2e 0a 23 20 52 65 74 75 72 6e 73 20 74 68 65 20 71 _mkindex.parser..#.Returns.the.q
3bf40 75 61 6c 69 66 69 65 64 20 6e 61 6d 65 73 70 61 63 65 20 6e 61 6d 65 20 66 6f 72 20 74 68 65 20 ualified.namespace.name.for.the.
3bf60 22 6e 61 6d 65 22 20 61 72 67 75 6d 65 6e 74 2e 0a 23 20 49 66 20 74 68 65 20 22 6e 61 6d 65 22 "name".argument..#.If.the."name"
3bf80 20 64 6f 65 73 20 6e 6f 74 20 73 74 61 72 74 20 77 69 74 68 20 22 3a 3a 22 2c 20 65 6c 65 6d 65 .does.not.start.with."::",.eleme
3bfa0 6e 74 73 20 61 72 65 20 61 64 64 65 64 20 66 72 6f 6d 0a 23 20 74 68 65 20 63 75 72 72 65 6e 74 nts.are.added.from.#.the.current
3bfc0 20 6e 61 6d 65 73 70 61 63 65 20 73 74 61 63 6b 20 74 6f 20 70 72 6f 64 75 63 65 20 61 20 71 75 .namespace.stack.to.produce.a.qu
3bfe0 61 6c 69 66 69 65 64 20 6e 61 6d 65 2e 20 20 54 68 65 6e 2c 0a 23 20 74 68 65 20 6e 61 6d 65 20 alified.name...Then,.#.the.name.
3c000 69 73 20 65 78 61 6d 69 6e 65 64 20 74 6f 20 73 65 65 20 77 68 65 74 68 65 72 20 6f 72 20 6e 6f is.examined.to.see.whether.or.no
3c020 74 20 69 74 20 73 68 6f 75 6c 64 20 72 65 61 6c 6c 79 20 62 65 0a 23 20 71 75 61 6c 69 66 69 65 t.it.should.really.be.#.qualifie
3c040 64 2e 20 20 49 66 20 74 68 65 20 6e 61 6d 65 20 68 61 73 20 6d 6f 72 65 20 74 68 61 6e 20 74 68 d...If.the.name.has.more.than.th
3c060 65 20 6c 65 61 64 69 6e 67 20 22 3a 3a 22 2c 20 69 74 20 69 73 0a 23 20 72 65 74 75 72 6e 65 64 e.leading."::",.it.is.#.returned
3c080 20 61 73 20 61 20 66 75 6c 6c 79 20 71 75 61 6c 69 66 69 65 64 20 6e 61 6d 65 2e 20 20 4f 74 68 .as.a.fully.qualified.name...Oth
3c0a0 65 72 77 69 73 65 2c 20 69 74 20 69 73 20 72 65 74 75 72 6e 65 64 0a 23 20 61 73 20 61 20 73 69 erwise,.it.is.returned.#.as.a.si
3c0c0 6d 70 6c 65 20 6e 61 6d 65 2e 20 20 54 68 61 74 20 77 61 79 2c 20 74 68 65 20 54 63 6c 20 61 75 mple.name...That.way,.the.Tcl.au
3c0e0 74 6f 6c 6f 61 64 65 72 20 77 69 6c 6c 20 72 65 63 6f 67 6e 69 7a 65 0a 23 20 69 74 20 70 72 6f toloader.will.recognize.#.it.pro
3c100 70 65 72 6c 79 2e 0a 23 0a 23 20 41 72 67 75 6d 65 6e 74 73 3a 0a 23 20 6e 61 6d 65 20 2d 09 09 perly..#.#.Arguments:.#.name.-..
3c120 4e 61 6d 65 20 74 68 61 74 20 69 73 20 62 65 69 6e 67 20 61 64 64 65 64 20 74 6f 20 69 6e 64 65 Name.that.is.being.added.to.inde
3c140 78 2e 0a 0a 70 72 6f 63 20 61 75 74 6f 5f 6d 6b 69 6e 64 65 78 5f 70 61 72 73 65 72 3a 3a 66 75 x...proc.auto_mkindex_parser::fu
3c160 6c 6c 6e 61 6d 65 20 7b 6e 61 6d 65 7d 20 7b 0a 20 20 20 20 76 61 72 69 61 62 6c 65 20 63 6f 6e llname.{name}.{.....variable.con
3c180 74 65 78 74 53 74 61 63 6b 0a 0a 20 20 20 20 69 66 20 7b 21 5b 73 74 72 69 6e 67 20 6d 61 74 63 textStack......if.{![string.matc
3c1a0 68 20 3a 3a 2a 20 24 6e 61 6d 65 5d 7d 20 7b 0a 20 20 20 20 20 20 20 20 66 6f 72 65 61 63 68 20 h.::*.$name]}.{.........foreach.
3c1c0 6e 73 20 24 63 6f 6e 74 65 78 74 53 74 61 63 6b 20 7b 0a 20 20 20 20 20 20 20 20 20 20 20 20 73 ns.$contextStack.{.............s
3c1e0 65 74 20 6e 61 6d 65 20 22 24 7b 6e 73 7d 3a 3a 24 6e 61 6d 65 22 0a 20 20 20 20 20 20 20 20 20 et.name."${ns}::$name"..........
3c200 20 20 20 69 66 20 7b 5b 73 74 72 69 6e 67 20 6d 61 74 63 68 20 3a 3a 2a 20 24 6e 61 6d 65 5d 7d ...if.{[string.match.::*.$name]}
3c220 20 7b 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 62 72 65 61 6b 0a 20 20 20 20 20 20 20 .{.................break........
3c240 20 20 20 20 20 7d 0a 20 20 20 20 20 20 20 20 7d 0a 20 20 20 20 7d 0a 0a 20 20 20 20 69 66 20 7b .....}.........}.....}......if.{
3c260 5b 73 74 72 69 6e 67 20 65 71 75 61 6c 20 5b 6e 61 6d 65 73 70 61 63 65 20 71 75 61 6c 69 66 69 [string.equal.[namespace.qualifi
3c280 65 72 73 20 24 6e 61 6d 65 5d 20 22 22 5d 7d 20 7b 0a 20 20 20 20 20 20 20 20 73 65 74 20 6e 61 ers.$name].""]}.{.........set.na
3c2a0 6d 65 20 5b 6e 61 6d 65 73 70 61 63 65 20 74 61 69 6c 20 24 6e 61 6d 65 5d 0a 20 20 20 20 7d 20 me.[namespace.tail.$name].....}.
3c2c0 65 6c 73 65 69 66 20 7b 21 5b 73 74 72 69 6e 67 20 6d 61 74 63 68 20 3a 3a 2a 20 24 6e 61 6d 65 elseif.{![string.match.::*.$name
3c2e0 5d 7d 20 7b 0a 20 20 20 20 20 20 20 20 73 65 74 20 6e 61 6d 65 20 22 3a 3a 24 6e 61 6d 65 22 0a ]}.{.........set.name."::$name".
3c300 20 20 20 20 7d 0a 20 20 20 20 0a 20 20 20 20 23 20 45 61 72 6c 69 65 72 2c 20 6d 6b 69 6e 64 65 ....}..........#.Earlier,.mkinde
3c320 78 20 72 65 70 6c 61 63 65 64 20 61 6c 6c 20 24 27 73 20 77 69 74 68 20 5c 30 2e 20 20 4e 6f 77 x.replaced.all.$'s.with.\0...Now
3c340 2c 20 77 65 20 68 61 76 65 20 74 6f 20 72 65 76 65 72 73 65 0a 20 20 20 20 23 20 74 68 61 74 20 ,.we.have.to.reverse.....#.that.
3c360 72 65 70 6c 61 63 65 6d 65 6e 74 2e 0a 20 20 20 20 72 65 67 73 75 62 20 2d 61 6c 6c 20 22 5c 30 replacement......regsub.-all."\0
3c380 22 20 24 6e 61 6d 65 20 22 5c 24 22 20 6e 61 6d 65 0a 20 20 20 20 72 65 74 75 72 6e 20 24 6e 61 ".$name."\$".name.....return.$na
3c3a0 6d 65 0a 7d 0a 0a 23 20 52 65 67 69 73 74 65 72 20 61 6c 6c 20 6f 66 20 74 68 65 20 70 72 6f 63 me.}..#.Register.all.of.the.proc
3c3c0 65 64 75 72 65 73 20 66 6f 72 20 74 68 65 20 61 75 74 6f 5f 6d 6b 69 6e 64 65 78 20 70 61 72 73 edures.for.the.auto_mkindex.pars
3c3e0 65 72 20 74 68 61 74 0a 23 20 77 69 6c 6c 20 62 75 69 6c 64 20 74 68 65 20 22 74 63 6c 49 6e 64 er.that.#.will.build.the."tclInd
3c400 65 78 22 20 66 69 6c 65 2e 0a 0a 23 20 41 55 54 4f 20 4d 4b 49 4e 44 45 58 3a 20 20 70 72 6f 63 ex".file...#.AUTO.MKINDEX:..proc
3c420 20 6e 61 6d 65 20 61 72 67 6c 69 73 74 20 62 6f 64 79 0a 23 20 41 64 64 73 20 61 6e 20 65 6e 74 .name.arglist.body.#.Adds.an.ent
3c440 72 79 20 74 6f 20 74 68 65 20 61 75 74 6f 20 69 6e 64 65 78 20 6c 69 73 74 20 66 6f 72 20 74 68 ry.to.the.auto.index.list.for.th
3c460 65 20 67 69 76 65 6e 20 70 72 6f 63 65 64 75 72 65 20 6e 61 6d 65 2e 0a 0a 61 75 74 6f 5f 6d 6b e.given.procedure.name...auto_mk
3c480 69 6e 64 65 78 5f 70 61 72 73 65 72 3a 3a 63 6f 6d 6d 61 6e 64 20 70 72 6f 63 20 7b 6e 61 6d 65 index_parser::command.proc.{name
3c4a0 20 61 72 67 73 7d 20 7b 0a 20 20 20 20 76 61 72 69 61 62 6c 65 20 69 6e 64 65 78 0a 20 20 20 20 .args}.{.....variable.index.....
3c4c0 76 61 72 69 61 62 6c 65 20 73 63 72 69 70 74 46 69 6c 65 0a 20 20 20 20 23 20 44 6f 20 73 6f 6d variable.scriptFile.....#.Do.som
3c4e0 65 20 66 61 6e 63 79 20 72 65 66 6f 72 6d 61 74 74 69 6e 67 20 6f 6e 20 74 68 65 20 22 73 6f 75 e.fancy.reformatting.on.the."sou
3c500 72 63 65 22 20 63 61 6c 6c 20 74 6f 20 68 61 6e 64 6c 65 20 70 6c 61 74 66 6f 72 6d 0a 20 20 20 rce".call.to.handle.platform....
3c520 20 23 20 64 69 66 66 65 72 65 6e 63 65 73 20 77 69 74 68 20 72 65 73 70 65 63 74 20 74 6f 20 70 .#.differences.with.respect.to.p
3c540 61 74 68 6e 61 6d 65 73 2e 20 20 55 73 65 20 66 6f 72 6d 61 74 20 6a 75 73 74 20 73 6f 20 74 68 athnames...Use.format.just.so.th
3c560 61 74 20 74 68 65 0a 20 20 20 20 23 20 63 6f 6d 6d 61 6e 64 20 69 73 20 61 20 6c 69 74 74 6c 65 at.the.....#.command.is.a.little
3c580 20 65 61 73 69 65 72 20 74 6f 20 72 65 61 64 20 28 6f 74 68 65 72 77 69 73 65 20 69 74 27 64 20 .easier.to.read.(otherwise.it'd.
3c5a0 62 65 20 66 75 6c 6c 20 6f 66 20 0a 20 20 20 20 23 20 62 61 63 6b 73 6c 61 73 68 65 64 20 64 6f be.full.of......#.backslashed.do
3c5c0 6c 6c 61 72 20 73 69 67 6e 73 2c 20 65 74 63 2e 0a 20 20 20 20 61 70 70 65 6e 64 20 69 6e 64 65 llar.signs,.etc......append.inde
3c5e0 78 20 5b 6c 69 73 74 20 73 65 74 20 61 75 74 6f 5f 69 6e 64 65 78 28 5b 66 75 6c 6c 6e 61 6d 65 x.[list.set.auto_index([fullname
3c600 20 24 6e 61 6d 65 5d 29 5d 20 5c 0a 09 20 20 20 20 5b 66 6f 72 6d 61 74 20 7b 20 5b 6c 69 73 74 .$name])].\......[format.{.[list
3c620 20 73 6f 75 72 63 65 20 5b 66 69 6c 65 20 6a 6f 69 6e 20 24 64 69 72 20 25 73 5d 5d 7d 20 5c 0a .source.[file.join.$dir.%s]]}.\.
3c640 09 20 20 20 20 5b 66 69 6c 65 20 73 70 6c 69 74 20 24 73 63 72 69 70 74 46 69 6c 65 5d 5d 20 22 .....[file.split.$scriptFile]]."
3c660 5c 6e 22 0a 7d 0a 0a 23 20 43 6f 6e 64 69 74 69 6f 6e 61 6c 6c 79 20 61 64 64 20 73 75 70 70 6f \n".}..#.Conditionally.add.suppo
3c680 72 74 20 66 6f 72 20 54 63 6c 20 62 79 74 65 20 63 6f 64 65 20 66 69 6c 65 73 2e 20 20 54 68 65 rt.for.Tcl.byte.code.files...The
3c6a0 72 65 20 61 72 65 20 73 6f 6d 65 0a 23 20 74 72 69 63 6b 79 20 64 65 74 61 69 6c 73 20 68 65 72 re.are.some.#.tricky.details.her
3c6c0 65 2e 20 20 46 69 72 73 74 2c 20 77 65 20 6e 65 65 64 20 74 6f 20 67 65 74 20 74 68 65 20 74 62 e...First,.we.need.to.get.the.tb
3c6e0 63 6c 6f 61 64 20 6c 69 62 72 61 72 79 0a 23 20 69 6e 69 74 69 61 6c 69 7a 65 64 20 69 6e 20 74 cload.library.#.initialized.in.t
3c700 68 65 20 63 75 72 72 65 6e 74 20 69 6e 74 65 72 70 72 65 74 65 72 2e 20 20 57 65 20 63 61 6e 6e he.current.interpreter...We.cann
3c720 6f 74 20 6c 6f 61 64 20 74 62 63 6c 6f 61 64 20 69 6e 74 6f 20 74 68 65 0a 23 20 73 6c 61 76 65 ot.load.tbcload.into.the.#.slave
3c740 20 75 6e 74 69 6c 20 77 65 20 68 61 76 65 20 64 6f 6e 65 20 73 6f 20 62 65 63 61 75 73 65 20 69 .until.we.have.done.so.because.i
3c760 74 20 6e 65 65 64 73 20 61 63 63 65 73 73 20 74 6f 20 74 68 65 20 74 63 6c 5f 70 61 74 63 68 4c t.needs.access.to.the.tcl_patchL
3c780 65 76 65 6c 0a 23 20 76 61 72 69 61 62 6c 65 2e 20 20 53 65 63 6f 6e 64 2c 20 62 65 63 61 75 73 evel.#.variable...Second,.becaus
3c7a0 65 20 74 68 65 20 70 61 63 6b 61 67 65 20 69 6e 64 65 78 20 66 69 6c 65 20 6d 61 79 20 64 65 66 e.the.package.index.file.may.def
3c7c0 65 72 20 6c 6f 61 64 69 6e 67 20 74 68 65 0a 23 20 6c 69 62 72 61 72 79 20 75 6e 74 69 6c 20 77 er.loading.the.#.library.until.w
3c7e0 65 20 69 6e 76 6f 6b 65 20 61 20 63 6f 6d 6d 61 6e 64 2c 20 77 65 20 6e 65 65 64 20 74 6f 20 65 e.invoke.a.command,.we.need.to.e
3c800 78 70 6c 69 63 69 74 6c 79 20 69 6e 76 6f 6b 65 20 61 75 74 6f 5f 6c 6f 61 64 0a 23 20 74 6f 20 xplicitly.invoke.auto_load.#.to.
3c820 66 6f 72 63 65 20 69 74 20 74 6f 20 62 65 20 6c 6f 61 64 65 64 2e 20 20 54 68 69 73 20 73 68 6f force.it.to.be.loaded...This.sho
3c840 75 6c 64 20 62 65 20 61 20 6e 6f 6f 70 20 69 66 20 74 68 65 20 70 61 63 6b 61 67 65 20 68 61 73 uld.be.a.noop.if.the.package.has
3c860 0a 23 20 61 6c 72 65 61 64 79 20 62 65 65 6e 20 6c 6f 61 64 65 64 0a 0a 61 75 74 6f 5f 6d 6b 69 .#.already.been.loaded..auto_mki
3c880 6e 64 65 78 5f 70 61 72 73 65 72 3a 3a 68 6f 6f 6b 20 7b 0a 20 20 20 20 69 66 20 7b 21 5b 63 61 ndex_parser::hook.{.....if.{![ca
3c8a0 74 63 68 20 7b 70 61 63 6b 61 67 65 20 72 65 71 75 69 72 65 20 74 62 63 6c 6f 61 64 7d 5d 7d 20 tch.{package.require.tbcload}]}.
3c8c0 7b 0a 09 69 66 20 7b 5b 6c 6c 65 6e 67 74 68 20 5b 69 6e 66 6f 20 63 6f 6d 6d 61 6e 64 73 20 74 {..if.{[llength.[info.commands.t
3c8e0 62 63 6c 6f 61 64 3a 3a 62 63 70 72 6f 63 5d 5d 20 3d 3d 20 30 7d 20 7b 0a 09 20 20 20 20 61 75 bcload::bcproc]].==.0}.{......au
3c900 74 6f 5f 6c 6f 61 64 20 74 62 63 6c 6f 61 64 3a 3a 62 63 70 72 6f 63 0a 09 7d 0a 09 6c 6f 61 64 to_load.tbcload::bcproc..}..load
3c920 20 7b 7d 20 74 62 63 6c 6f 61 64 20 24 61 75 74 6f 5f 6d 6b 69 6e 64 65 78 5f 70 61 72 73 65 72 .{}.tbcload.$auto_mkindex_parser
3c940 3a 3a 70 61 72 73 65 72 0a 0a 09 23 20 41 55 54 4f 20 4d 4b 49 4e 44 45 58 3a 20 20 74 62 63 6c ::parser...#.AUTO.MKINDEX:..tbcl
3c960 6f 61 64 3a 3a 62 63 70 72 6f 63 20 6e 61 6d 65 20 61 72 67 6c 69 73 74 20 62 6f 64 79 0a 09 23 oad::bcproc.name.arglist.body..#
3c980 20 41 64 64 73 20 61 6e 20 65 6e 74 72 79 20 74 6f 20 74 68 65 20 61 75 74 6f 20 69 6e 64 65 78 .Adds.an.entry.to.the.auto.index
3c9a0 20 6c 69 73 74 20 66 6f 72 20 74 68 65 20 67 69 76 65 6e 20 70 72 65 2d 63 6f 6d 70 69 6c 65 64 .list.for.the.given.pre-compiled
3c9c0 0a 09 23 20 70 72 6f 63 65 64 75 72 65 20 6e 61 6d 65 2e 20 20 0a 0a 09 61 75 74 6f 5f 6d 6b 69 ..#.procedure.name......auto_mki
3c9e0 6e 64 65 78 5f 70 61 72 73 65 72 3a 3a 63 6f 6d 6d 61 6e 64 49 6e 69 74 20 74 62 63 6c 6f 61 64 ndex_parser::commandInit.tbcload
3ca00 3a 3a 62 63 70 72 6f 63 20 7b 6e 61 6d 65 20 61 72 67 73 7d 20 7b 0a 09 20 20 20 20 76 61 72 69 ::bcproc.{name.args}.{......vari
3ca20 61 62 6c 65 20 69 6e 64 65 78 0a 09 20 20 20 20 76 61 72 69 61 62 6c 65 20 73 63 72 69 70 74 46 able.index......variable.scriptF
3ca40 69 6c 65 0a 09 20 20 20 20 23 20 44 6f 20 73 6f 6d 65 20 6e 69 63 65 20 72 65 66 6f 72 6d 61 74 ile......#.Do.some.nice.reformat
3ca60 74 69 6e 67 20 6f 66 20 74 68 65 20 22 73 6f 75 72 63 65 22 20 63 61 6c 6c 2c 20 74 6f 20 67 65 ting.of.the."source".call,.to.ge
3ca80 74 20 61 72 6f 75 6e 64 0a 09 20 20 20 20 23 20 70 61 74 68 20 64 69 66 66 65 72 65 6e 63 65 73 t.around......#.path.differences
3caa0 20 6f 6e 20 64 69 66 66 65 72 65 6e 74 20 70 6c 61 74 66 6f 72 6d 73 2e 20 20 57 65 20 75 73 65 .on.different.platforms...We.use
3cac0 20 74 68 65 20 66 6f 72 6d 61 74 0a 09 20 20 20 20 23 20 63 6f 6d 6d 61 6e 64 20 6a 75 73 74 20 .the.format......#.command.just.
3cae0 73 6f 20 74 68 61 74 20 74 68 65 20 63 6f 64 65 20 69 73 20 61 20 6c 69 74 74 6c 65 20 65 61 73 so.that.the.code.is.a.little.eas
3cb00 69 65 72 20 74 6f 20 72 65 61 64 2e 0a 09 20 20 20 20 61 70 70 65 6e 64 20 69 6e 64 65 78 20 5b ier.to.read.......append.index.[
3cb20 6c 69 73 74 20 73 65 74 20 61 75 74 6f 5f 69 6e 64 65 78 28 5b 66 75 6c 6c 6e 61 6d 65 20 24 6e list.set.auto_index([fullname.$n
3cb40 61 6d 65 5d 29 5d 20 5c 0a 09 09 20 20 20 20 5b 66 6f 72 6d 61 74 20 7b 20 5b 6c 69 73 74 20 73 ame])].\.......[format.{.[list.s
3cb60 6f 75 72 63 65 20 5b 66 69 6c 65 20 6a 6f 69 6e 20 24 64 69 72 20 25 73 5d 5d 7d 20 5c 0a 09 09 ource.[file.join.$dir.%s]]}.\...
3cb80 20 20 20 20 5b 66 69 6c 65 20 73 70 6c 69 74 20 24 73 63 72 69 70 74 46 69 6c 65 5d 5d 20 22 5c ....[file.split.$scriptFile]]."\
3cba0 6e 22 0a 09 7d 0a 20 20 20 20 7d 0a 7d 0a 0a 23 20 41 55 54 4f 20 4d 4b 49 4e 44 45 58 3a 20 20 n"..}.....}.}..#.AUTO.MKINDEX:..
3cbc0 6e 61 6d 65 73 70 61 63 65 20 65 76 61 6c 20 6e 61 6d 65 20 63 6f 6d 6d 61 6e 64 20 3f 61 72 67 namespace.eval.name.command.?arg
3cbe0 20 61 72 67 2e 2e 2e 3f 0a 23 20 41 64 64 73 20 74 68 65 20 6e 61 6d 65 73 70 61 63 65 20 6e 61 .arg...?.#.Adds.the.namespace.na
3cc00 6d 65 20 6f 6e 74 6f 20 74 68 65 20 63 6f 6e 74 65 78 74 20 73 74 61 63 6b 20 61 6e 64 20 65 76 me.onto.the.context.stack.and.ev
3cc20 61 6c 75 61 74 65 73 20 74 68 65 0a 23 20 61 73 73 6f 63 69 61 74 65 64 20 62 6f 64 79 20 6f 66 aluates.the.#.associated.body.of
3cc40 20 63 6f 6d 6d 61 6e 64 73 2e 0a 23 0a 23 20 41 55 54 4f 20 4d 4b 49 4e 44 45 58 3a 20 20 6e 61 .commands..#.#.AUTO.MKINDEX:..na
3cc60 6d 65 73 70 61 63 65 20 69 6d 70 6f 72 74 20 3f 2d 66 6f 72 63 65 3f 20 70 61 74 74 65 72 6e 20 mespace.import.?-force?.pattern.
3cc80 3f 70 61 74 74 65 72 6e 2e 2e 2e 3f 0a 23 20 50 65 72 66 6f 72 6d 73 20 74 68 65 20 22 69 6d 70 ?pattern...?.#.Performs.the."imp
3cca0 6f 72 74 22 20 61 63 74 69 6f 6e 20 69 6e 20 74 68 65 20 70 61 72 73 65 72 20 69 6e 74 65 72 70 ort".action.in.the.parser.interp
3ccc0 72 65 74 65 72 2e 20 20 54 68 69 73 20 69 73 0a 23 20 69 6d 70 6f 72 74 61 6e 74 20 66 6f 72 20 reter...This.is.#.important.for.
3cce0 61 6e 79 20 63 6f 6d 6d 61 6e 64 73 20 63 6f 6e 74 61 69 6e 65 64 20 69 6e 20 61 20 6e 61 6d 65 any.commands.contained.in.a.name
3cd00 73 70 61 63 65 20 74 68 61 74 20 61 66 66 65 63 74 0a 23 20 74 68 65 20 69 6e 64 65 78 2e 20 20 space.that.affect.#.the.index...
3cd20 46 6f 72 20 65 78 61 6d 70 6c 65 2c 20 61 20 73 63 72 69 70 74 20 6d 61 79 20 73 61 79 20 22 69 For.example,.a.script.may.say."i
3cd40 74 63 6c 3a 3a 63 6c 61 73 73 20 2e 2e 2e 22 2c 0a 23 20 6f 72 20 69 74 20 6d 61 79 20 69 6d 70 tcl::class....",.#.or.it.may.imp
3cd60 6f 72 74 20 22 69 74 63 6c 3a 3a 2a 22 20 61 6e 64 20 74 68 65 6e 20 73 61 79 20 22 63 6c 61 73 ort."itcl::*".and.then.say."clas
3cd80 73 20 2e 2e 2e 22 2e 20 20 54 68 69 73 0a 23 20 70 72 6f 63 65 64 75 72 65 20 64 6f 65 73 20 74 s...."...This.#.procedure.does.t
3cda0 68 65 20 69 6d 70 6f 72 74 20 6f 70 65 72 61 74 69 6f 6e 2c 20 62 75 74 20 6b 65 65 70 73 20 74 he.import.operation,.but.keeps.t
3cdc0 72 61 63 6b 20 6f 66 20 69 6d 70 6f 72 74 65 64 0a 23 20 70 61 74 74 65 72 6e 73 20 73 6f 20 77 rack.of.imported.#.patterns.so.w
3cde0 65 20 63 61 6e 20 72 65 6d 6f 76 65 20 74 68 65 20 69 6d 70 6f 72 74 73 20 6c 61 74 65 72 2e 0a e.can.remove.the.imports.later..
3ce00 0a 61 75 74 6f 5f 6d 6b 69 6e 64 65 78 5f 70 61 72 73 65 72 3a 3a 63 6f 6d 6d 61 6e 64 20 6e 61 .auto_mkindex_parser::command.na
3ce20 6d 65 73 70 61 63 65 20 7b 6f 70 20 61 72 67 73 7d 20 7b 0a 20 20 20 20 73 77 69 74 63 68 20 2d mespace.{op.args}.{.....switch.-
3ce40 2d 20 24 6f 70 20 7b 0a 20 20 20 20 20 20 20 20 65 76 61 6c 20 7b 0a 20 20 20 20 20 20 20 20 20 -.$op.{.........eval.{..........
3ce60 20 20 20 76 61 72 69 61 62 6c 65 20 70 61 72 73 65 72 0a 20 20 20 20 20 20 20 20 20 20 20 20 76 ...variable.parser.............v
3ce80 61 72 69 61 62 6c 65 20 63 6f 6e 74 65 78 74 53 74 61 63 6b 0a 0a 20 20 20 20 20 20 20 20 20 20 ariable.contextStack............
3cea0 20 20 73 65 74 20 6e 61 6d 65 20 5b 6c 69 6e 64 65 78 20 24 61 72 67 73 20 30 5d 0a 20 20 20 20 ..set.name.[lindex.$args.0].....
3cec0 20 20 20 20 20 20 20 20 73 65 74 20 61 72 67 73 20 5b 6c 72 61 6e 67 65 20 24 61 72 67 73 20 31 ........set.args.[lrange.$args.1
3cee0 20 65 6e 64 5d 0a 0a 20 20 20 20 20 20 20 20 20 20 20 20 73 65 74 20 63 6f 6e 74 65 78 74 53 74 .end]..............set.contextSt
3cf00 61 63 6b 20 5b 6c 69 6e 73 65 72 74 20 24 63 6f 6e 74 65 78 74 53 74 61 63 6b 20 30 20 24 6e 61 ack.[linsert.$contextStack.0.$na
3cf20 6d 65 5d 0a 09 20 20 20 20 24 70 61 72 73 65 72 20 65 76 61 6c 20 5b 6c 69 73 74 20 5f 25 40 6e me]......$parser.eval.[list._%@n
3cf40 61 6d 65 73 70 61 63 65 20 65 76 61 6c 20 24 6e 61 6d 65 5d 20 24 61 72 67 73 0a 20 20 20 20 20 amespace.eval.$name].$args......
3cf60 20 20 20 20 20 20 20 73 65 74 20 63 6f 6e 74 65 78 74 53 74 61 63 6b 20 5b 6c 72 61 6e 67 65 20 .......set.contextStack.[lrange.
3cf80 24 63 6f 6e 74 65 78 74 53 74 61 63 6b 20 31 20 65 6e 64 5d 0a 20 20 20 20 20 20 20 20 7d 0a 20 $contextStack.1.end].........}..
3cfa0 20 20 20 20 20 20 20 69 6d 70 6f 72 74 20 7b 0a 20 20 20 20 20 20 20 20 20 20 20 20 76 61 72 69 .......import.{.............vari
3cfc0 61 62 6c 65 20 70 61 72 73 65 72 0a 20 20 20 20 20 20 20 20 20 20 20 20 76 61 72 69 61 62 6c 65 able.parser.............variable
3cfe0 20 69 6d 70 6f 72 74 73 0a 20 20 20 20 20 20 20 20 20 20 20 20 66 6f 72 65 61 63 68 20 70 61 74 .imports.............foreach.pat
3d000 74 65 72 6e 20 24 61 72 67 73 20 7b 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 69 66 20 tern.$args.{.................if.
3d020 7b 5b 73 74 72 69 6e 67 20 63 6f 6d 70 61 72 65 20 24 70 61 74 74 65 72 6e 20 22 2d 66 6f 72 63 {[string.compare.$pattern."-forc
3d040 65 22 5d 7d 20 7b 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 6c 61 70 70 65 e"]}.{.....................lappe
3d060 6e 64 20 69 6d 70 6f 72 74 73 20 24 70 61 74 74 65 72 6e 0a 20 20 20 20 20 20 20 20 20 20 20 20 nd.imports.$pattern.............
3d080 20 20 20 20 7d 0a 20 20 20 20 20 20 20 20 20 20 20 20 7d 0a 20 20 20 20 20 20 20 20 20 20 20 20 ....}.............}.............
3d0a0 63 61 74 63 68 20 7b 24 70 61 72 73 65 72 20 65 76 61 6c 20 22 5f 25 40 6e 61 6d 65 73 70 61 63 catch.{$parser.eval."_%@namespac
3d0c0 65 20 69 6d 70 6f 72 74 20 24 61 72 67 73 22 7d 0a 20 20 20 20 20 20 20 20 7d 0a 20 20 20 20 7d e.import.$args"}.........}.....}
3d0e0 0a 7d 0a 0a 72 65 74 75 72 6e 0a 00 00 48 3c 23 20 70 61 63 6b 61 67 65 2e 74 63 6c 20 2d 2d 0a .}..return...H<#.package.tcl.--.
3d100 23 0a 23 20 75 74 69 6c 69 74 79 20 70 72 6f 63 73 20 66 6f 72 6d 65 72 6c 79 20 69 6e 20 69 6e #.#.utility.procs.formerly.in.in
3d120 69 74 2e 74 63 6c 20 77 68 69 63 68 20 63 61 6e 20 62 65 20 6c 6f 61 64 65 64 20 6f 6e 20 64 65 it.tcl.which.can.be.loaded.on.de
3d140 6d 61 6e 64 0a 23 20 66 6f 72 20 70 61 63 6b 61 67 65 20 6d 61 6e 61 67 65 6d 65 6e 74 2e 0a 23 mand.#.for.package.management..#
3d160 0a 23 20 52 43 53 3a 20 40 28 23 29 20 24 49 64 3a 20 70 61 63 6b 61 67 65 2e 74 63 6c 2c 76 20 .#.RCS:.@(#).$Id:.package.tcl,v.
3d180 31 2e 31 31 20 32 30 30 30 2f 30 32 2f 30 37 20 32 32 3a 33 33 3a 31 37 20 65 72 69 63 6d 20 45 1.11.2000/02/07.22:33:17.ericm.E
3d1a0 78 70 20 24 0a 23 0a 23 20 43 6f 70 79 72 69 67 68 74 20 28 63 29 20 31 39 39 31 2d 31 39 39 33 xp.$.#.#.Copyright.(c).1991-1993
3d1c0 20 54 68 65 20 52 65 67 65 6e 74 73 20 6f 66 20 74 68 65 20 55 6e 69 76 65 72 73 69 74 79 20 6f .The.Regents.of.the.University.o
3d1e0 66 20 43 61 6c 69 66 6f 72 6e 69 61 2e 0a 23 20 43 6f 70 79 72 69 67 68 74 20 28 63 29 20 31 39 f.California..#.Copyright.(c).19
3d200 39 34 2d 31 39 39 38 20 53 75 6e 20 4d 69 63 72 6f 73 79 73 74 65 6d 73 2c 20 49 6e 63 2e 0a 23 94-1998.Sun.Microsystems,.Inc..#
3d220 0a 23 20 53 65 65 20 74 68 65 20 66 69 6c 65 20 22 6c 69 63 65 6e 73 65 2e 74 65 72 6d 73 22 20 .#.See.the.file."license.terms".
3d240 66 6f 72 20 69 6e 66 6f 72 6d 61 74 69 6f 6e 20 6f 6e 20 75 73 61 67 65 20 61 6e 64 20 72 65 64 for.information.on.usage.and.red
3d260 69 73 74 72 69 62 75 74 69 6f 6e 0a 23 20 6f 66 20 74 68 69 73 20 66 69 6c 65 2c 20 61 6e 64 20 istribution.#.of.this.file,.and.
3d280 66 6f 72 20 61 20 44 49 53 43 4c 41 49 4d 45 52 20 4f 46 20 41 4c 4c 20 57 41 52 52 41 4e 54 49 for.a.DISCLAIMER.OF.ALL.WARRANTI
3d2a0 45 53 2e 0a 23 0a 0a 23 20 43 72 65 61 74 65 20 74 68 65 20 70 61 63 6b 61 67 65 20 6e 61 6d 65 ES..#..#.Create.the.package.name
3d2c0 73 70 61 63 65 0a 6e 61 6d 65 73 70 61 63 65 20 65 76 61 6c 20 3a 3a 70 6b 67 20 7b 0a 7d 0a 0a space.namespace.eval.::pkg.{.}..
3d2e0 23 20 70 6b 67 5f 63 6f 6d 70 61 72 65 45 78 74 65 6e 73 69 6f 6e 20 2d 2d 0a 23 0a 23 20 20 55 #.pkg_compareExtension.--.#.#..U
3d300 73 65 64 20 69 6e 74 65 72 6e 61 6c 6c 79 20 62 79 20 70 6b 67 5f 6d 6b 49 6e 64 65 78 20 74 6f sed.internally.by.pkg_mkIndex.to
3d320 20 63 6f 6d 70 61 72 65 20 74 68 65 20 65 78 74 65 6e 73 69 6f 6e 20 6f 66 20 61 20 66 69 6c 65 .compare.the.extension.of.a.file
3d340 20 74 6f 0a 23 20 20 61 20 67 69 76 65 6e 20 65 78 74 65 6e 73 69 6f 6e 2e 20 4f 6e 20 57 69 6e .to.#..a.given.extension..On.Win
3d360 64 6f 77 73 2c 20 69 74 20 75 73 65 73 20 61 20 63 61 73 65 2d 69 6e 73 65 6e 73 69 74 69 76 65 dows,.it.uses.a.case-insensitive
3d380 20 63 6f 6d 70 61 72 69 73 6f 6e 0a 23 20 20 62 65 63 61 75 73 65 20 74 68 65 20 66 69 6c 65 20 .comparison.#..because.the.file.
3d3a0 73 79 73 74 65 6d 20 63 61 6e 20 62 65 20 66 69 6c 65 20 69 6e 73 65 6e 73 69 74 69 76 65 2e 0a system.can.be.file.insensitive..
3d3c0 23 0a 23 20 41 72 67 75 6d 65 6e 74 73 3a 0a 23 20 20 66 69 6c 65 4e 61 6d 65 09 6e 61 6d 65 20 #.#.Arguments:.#..fileName.name.
3d3e0 6f 66 20 61 20 66 69 6c 65 20 77 68 6f 73 65 20 65 78 74 65 6e 73 69 6f 6e 20 69 73 20 63 6f 6d of.a.file.whose.extension.is.com
3d400 70 61 72 65 64 0a 23 20 20 65 78 74 09 09 28 6f 70 74 69 6f 6e 61 6c 29 20 54 68 65 20 65 78 74 pared.#..ext..(optional).The.ext
3d420 65 6e 73 69 6f 6e 20 74 6f 20 63 6f 6d 70 61 72 65 20 61 67 61 69 6e 73 74 3b 20 79 6f 75 20 6d ension.to.compare.against;.you.m
3d440 75 73 74 0a 23 09 09 70 72 6f 76 69 64 65 20 74 68 65 20 73 74 61 72 74 69 6e 67 20 64 6f 74 2e ust.#..provide.the.starting.dot.
3d460 0a 23 09 09 44 65 66 61 75 6c 74 73 20 74 6f 20 5b 69 6e 66 6f 20 73 68 61 72 65 64 6c 69 62 65 .#..Defaults.to.[info.sharedlibe
3d480 78 74 65 6e 73 69 6f 6e 5d 0a 23 0a 23 20 52 65 73 75 6c 74 73 3a 0a 23 20 20 52 65 74 75 72 6e xtension].#.#.Results:.#..Return
3d4a0 73 20 31 20 69 66 20 74 68 65 20 65 78 74 65 6e 73 69 6f 6e 20 6d 61 74 63 68 65 73 2c 20 30 20 s.1.if.the.extension.matches,.0.
3d4c0 6f 74 68 65 72 77 69 73 65 0a 0a 70 72 6f 63 20 70 6b 67 5f 63 6f 6d 70 61 72 65 45 78 74 65 6e otherwise..proc.pkg_compareExten
3d4e0 73 69 6f 6e 20 7b 20 66 69 6c 65 4e 61 6d 65 20 7b 65 78 74 20 7b 7d 7d 20 7d 20 7b 0a 20 20 20 sion.{.fileName.{ext.{}}.}.{....
3d500 20 67 6c 6f 62 61 6c 20 74 63 6c 5f 70 6c 61 74 66 6f 72 6d 0a 20 20 20 20 69 66 20 7b 5b 73 74 .global.tcl_platform.....if.{[st
3d520 72 69 6e 67 20 6c 65 6e 67 74 68 20 24 65 78 74 5d 20 3d 3d 20 30 7d 20 7b 0a 09 73 65 74 20 65 ring.length.$ext].==.0}.{..set.e
3d540 78 74 20 5b 69 6e 66 6f 20 73 68 61 72 65 64 6c 69 62 65 78 74 65 6e 73 69 6f 6e 5d 0a 20 20 20 xt.[info.sharedlibextension]....
3d560 20 7d 0a 20 20 20 20 69 66 20 7b 5b 73 74 72 69 6e 67 20 65 71 75 61 6c 20 24 74 63 6c 5f 70 6c .}.....if.{[string.equal.$tcl_pl
3d580 61 74 66 6f 72 6d 28 70 6c 61 74 66 6f 72 6d 29 20 22 77 69 6e 64 6f 77 73 22 5d 7d 20 7b 0a 09 atform(platform)."windows"]}.{..
3d5a0 72 65 74 75 72 6e 20 5b 73 74 72 69 6e 67 20 65 71 75 61 6c 20 2d 6e 6f 63 61 73 65 20 5b 66 69 return.[string.equal.-nocase.[fi
3d5c0 6c 65 20 65 78 74 65 6e 73 69 6f 6e 20 24 66 69 6c 65 4e 61 6d 65 5d 20 24 65 78 74 5d 0a 20 20 le.extension.$fileName].$ext]...
3d5e0 20 20 7d 20 65 6c 73 65 20 7b 0a 09 72 65 74 75 72 6e 20 5b 73 74 72 69 6e 67 20 65 71 75 61 6c ..}.else.{..return.[string.equal
3d600 20 5b 66 69 6c 65 20 65 78 74 65 6e 73 69 6f 6e 20 24 66 69 6c 65 4e 61 6d 65 5d 20 24 65 78 74 .[file.extension.$fileName].$ext
3d620 5d 0a 20 20 20 20 7d 0a 7d 0a 0a 23 20 70 6b 67 5f 6d 6b 49 6e 64 65 78 20 2d 2d 0a 23 20 54 68 ].....}.}..#.pkg_mkIndex.--.#.Th
3d640 69 73 20 70 72 6f 63 65 64 75 72 65 20 63 72 65 61 74 65 73 20 61 20 70 61 63 6b 61 67 65 20 69 is.procedure.creates.a.package.i
3d660 6e 64 65 78 20 69 6e 20 61 20 67 69 76 65 6e 20 64 69 72 65 63 74 6f 72 79 2e 20 20 54 68 65 0a ndex.in.a.given.directory...The.
3d680 23 20 70 61 63 6b 61 67 65 20 69 6e 64 65 78 20 63 6f 6e 73 69 73 74 73 20 6f 66 20 61 20 22 70 #.package.index.consists.of.a."p
3d6a0 6b 67 49 6e 64 65 78 2e 74 63 6c 22 20 66 69 6c 65 20 77 68 6f 73 65 20 63 6f 6e 74 65 6e 74 73 kgIndex.tcl".file.whose.contents
3d6c0 20 61 72 65 0a 23 20 61 20 54 63 6c 20 73 63 72 69 70 74 20 74 68 61 74 20 73 65 74 73 20 75 70 .are.#.a.Tcl.script.that.sets.up
3d6e0 20 70 61 63 6b 61 67 65 20 69 6e 66 6f 72 6d 61 74 69 6f 6e 20 77 69 74 68 20 22 70 61 63 6b 61 .package.information.with."packa
3d700 67 65 20 72 65 71 75 69 72 65 22 0a 23 20 63 6f 6d 6d 61 6e 64 73 2e 20 20 54 68 65 20 63 6f 6d ge.require".#.commands...The.com
3d720 6d 61 6e 64 73 20 64 65 73 63 72 69 62 65 20 61 6c 6c 20 6f 66 20 74 68 65 20 70 61 63 6b 61 67 mands.describe.all.of.the.packag
3d740 65 73 20 64 65 66 69 6e 65 64 20 62 79 20 74 68 65 0a 23 20 66 69 6c 65 73 20 67 69 76 65 6e 20 es.defined.by.the.#.files.given.
3d760 61 73 20 61 72 67 75 6d 65 6e 74 73 2e 0a 23 0a 23 20 41 72 67 75 6d 65 6e 74 73 3a 0a 23 20 2d as.arguments..#.#.Arguments:.#.-
3d780 64 69 72 65 63 74 09 09 28 6f 70 74 69 6f 6e 61 6c 29 20 49 66 20 74 68 69 73 20 66 6c 61 67 20 direct..(optional).If.this.flag.
3d7a0 69 73 20 70 72 65 73 65 6e 74 2c 20 74 68 65 20 67 65 6e 65 72 61 74 65 64 0a 23 09 09 09 63 6f is.present,.the.generated.#...co
3d7c0 64 65 20 69 6e 20 70 6b 67 4d 6b 49 6e 64 65 78 2e 74 63 6c 20 77 69 6c 6c 20 63 61 75 73 65 20 de.in.pkgMkIndex.tcl.will.cause.
3d7e0 74 68 65 20 70 61 63 6b 61 67 65 20 74 6f 20 62 65 0a 23 09 09 09 6c 6f 61 64 65 64 20 77 68 65 the.package.to.be.#...loaded.whe
3d800 6e 20 22 70 61 63 6b 61 67 65 20 72 65 71 75 69 72 65 22 20 69 73 20 65 78 65 63 75 74 65 64 2c n."package.require".is.executed,
3d820 20 72 61 74 68 65 72 0a 23 09 09 09 74 68 61 6e 20 6c 61 7a 69 6c 79 20 77 68 65 6e 20 74 68 65 .rather.#...than.lazily.when.the
3d840 20 66 69 72 73 74 20 72 65 66 65 72 65 6e 63 65 20 74 6f 20 61 6e 20 65 78 70 6f 72 74 65 64 0a .first.reference.to.an.exported.
3d860 23 09 09 09 70 72 6f 63 65 64 75 72 65 20 69 6e 20 74 68 65 20 70 61 63 6b 61 67 65 20 69 73 20 #...procedure.in.the.package.is.
3d880 6d 61 64 65 2e 0a 23 20 2d 76 65 72 62 6f 73 65 09 09 28 6f 70 74 69 6f 6e 61 6c 29 20 56 65 72 made..#.-verbose..(optional).Ver
3d8a0 62 6f 73 65 20 6f 75 74 70 75 74 3b 20 74 68 65 20 6e 61 6d 65 20 6f 66 20 65 61 63 68 20 66 69 bose.output;.the.name.of.each.fi
3d8c0 6c 65 20 74 68 61 74 0a 23 09 09 09 77 61 73 20 73 75 63 63 65 73 73 66 75 6c 6c 79 20 72 6f 63 le.that.#...was.successfully.roc
3d8e0 65 73 73 65 64 20 69 73 20 70 72 69 6e 74 65 64 20 6f 75 74 2e 20 41 64 64 69 74 69 6f 6e 61 6c essed.is.printed.out..Additional
3d900 6c 79 2c 0a 23 09 09 09 69 66 20 70 72 6f 63 65 73 73 69 6e 67 20 6f 66 20 61 20 66 69 6c 65 20 ly,.#...if.processing.of.a.file.
3d920 66 61 69 6c 65 64 20 61 20 6d 65 73 73 61 67 65 20 69 73 20 70 72 69 6e 74 65 64 2e 0a 23 20 2d failed.a.message.is.printed..#.-
3d940 6c 6f 61 64 20 70 61 74 09 09 28 6f 70 74 69 6f 6e 61 6c 29 20 50 72 65 6c 6f 61 64 20 61 6e 79 load.pat..(optional).Preload.any
3d960 20 70 61 63 6b 61 67 65 73 20 77 68 6f 73 65 20 6e 61 6d 65 73 20 6d 61 74 63 68 0a 23 09 09 09 .packages.whose.names.match.#...
3d980 74 68 65 20 70 61 74 74 65 72 6e 2e 20 20 55 73 65 64 20 74 6f 20 68 61 6e 64 6c 65 20 44 4c 4c the.pattern...Used.to.handle.DLL
3d9a0 73 20 74 68 61 74 20 64 65 70 65 6e 64 20 6f 6e 0a 23 09 09 09 6f 74 68 65 72 20 70 61 63 6b 61 s.that.depend.on.#...other.packa
3d9c0 67 65 73 20 64 75 72 69 6e 67 20 74 68 65 69 72 20 49 6e 69 74 20 70 72 6f 63 65 64 75 72 65 2e ges.during.their.Init.procedure.
3d9e0 0a 23 20 64 69 72 20 2d 09 09 09 4e 61 6d 65 20 6f 66 20 74 68 65 20 64 69 72 65 63 74 6f 72 79 .#.dir.-...Name.of.the.directory
3da00 20 69 6e 20 77 68 69 63 68 20 74 6f 20 63 72 65 61 74 65 20 74 68 65 20 69 6e 64 65 78 2e 0a 23 .in.which.to.create.the.index..#
3da20 20 61 72 67 73 20 2d 09 09 41 6e 79 20 6e 75 6d 62 65 72 20 6f 66 20 61 64 64 69 74 69 6f 6e 61 .args.-..Any.number.of.additiona
3da40 6c 20 61 72 67 75 6d 65 6e 74 73 2c 20 65 61 63 68 20 67 69 76 69 6e 67 0a 23 09 09 09 61 20 67 l.arguments,.each.giving.#...a.g
3da60 6c 6f 62 20 70 61 74 74 65 72 6e 20 74 68 61 74 20 6d 61 74 63 68 65 73 20 74 68 65 20 6e 61 6d lob.pattern.that.matches.the.nam
3da80 65 73 20 6f 66 20 6f 6e 65 20 6f 72 0a 23 09 09 09 6d 6f 72 65 20 73 68 61 72 65 64 20 6c 69 62 es.of.one.or.#...more.shared.lib
3daa0 72 61 72 69 65 73 20 6f 72 20 54 63 6c 20 73 63 72 69 70 74 20 66 69 6c 65 73 20 69 6e 0a 23 09 raries.or.Tcl.script.files.in.#.
3dac0 09 09 64 69 72 2e 0a 0a 70 72 6f 63 20 70 6b 67 5f 6d 6b 49 6e 64 65 78 20 7b 61 72 67 73 7d 20 ..dir...proc.pkg_mkIndex.{args}.
3dae0 7b 0a 20 20 20 20 67 6c 6f 62 61 6c 20 65 72 72 6f 72 43 6f 64 65 20 65 72 72 6f 72 49 6e 66 6f {.....global.errorCode.errorInfo
3db00 0a 20 20 20 20 73 65 74 20 75 73 61 67 65 20 7b 22 70 6b 67 5f 6d 6b 49 6e 64 65 78 20 3f 2d 64 .....set.usage.{"pkg_mkIndex.?-d
3db20 69 72 65 63 74 3f 20 3f 2d 76 65 72 62 6f 73 65 3f 20 3f 2d 6c 6f 61 64 20 70 61 74 74 65 72 6e irect?.?-verbose?.?-load.pattern
3db40 3f 20 3f 2d 2d 3f 20 64 69 72 20 3f 70 61 74 74 65 72 6e 20 2e 2e 2e 3f 22 7d 3b 0a 0a 20 20 20 ?.?--?.dir.?pattern....?"};.....
3db60 20 73 65 74 20 61 72 67 43 6f 75 6e 74 20 5b 6c 6c 65 6e 67 74 68 20 24 61 72 67 73 5d 0a 20 20 .set.argCount.[llength.$args]...
3db80 20 20 69 66 20 7b 24 61 72 67 43 6f 75 6e 74 20 3c 20 31 7d 20 7b 0a 09 72 65 74 75 72 6e 20 2d ..if.{$argCount.<.1}.{..return.-
3dba0 63 6f 64 65 20 65 72 72 6f 72 20 22 77 72 6f 6e 67 20 23 20 61 72 67 73 3a 20 73 68 6f 75 6c 64 code.error."wrong.#.args:.should
3dbc0 20 62 65 5c 6e 24 75 73 61 67 65 22 0a 20 20 20 20 7d 0a 0a 20 20 20 20 73 65 74 20 6d 6f 72 65 .be\n$usage".....}......set.more
3dbe0 20 22 22 0a 20 20 20 20 73 65 74 20 64 69 72 65 63 74 20 31 0a 20 20 20 20 73 65 74 20 64 6f 56 ."".....set.direct.1.....set.doV
3dc00 65 72 62 6f 73 65 20 30 0a 20 20 20 20 73 65 74 20 6c 6f 61 64 50 61 74 20 22 22 0a 20 20 20 20 erbose.0.....set.loadPat."".....
3dc20 66 6f 72 20 7b 73 65 74 20 69 64 78 20 30 7d 20 7b 24 69 64 78 20 3c 20 24 61 72 67 43 6f 75 6e for.{set.idx.0}.{$idx.<.$argCoun
3dc40 74 7d 20 7b 69 6e 63 72 20 69 64 78 7d 20 7b 0a 09 73 65 74 20 66 6c 61 67 20 5b 6c 69 6e 64 65 t}.{incr.idx}.{..set.flag.[linde
3dc60 78 20 24 61 72 67 73 20 24 69 64 78 5d 0a 09 73 77 69 74 63 68 20 2d 67 6c 6f 62 20 2d 2d 20 24 x.$args.$idx]..switch.-glob.--.$
3dc80 66 6c 61 67 20 7b 0a 09 20 20 20 20 2d 2d 20 7b 0a 09 09 23 20 64 6f 6e 65 20 77 69 74 68 20 74 flag.{......--.{...#.done.with.t
3dca0 68 65 20 66 6c 61 67 73 0a 09 09 69 6e 63 72 20 69 64 78 0a 09 09 62 72 65 61 6b 0a 09 20 20 20 he.flags...incr.idx...break.....
3dcc0 20 7d 0a 09 20 20 20 20 2d 76 65 72 62 6f 73 65 20 7b 0a 09 09 73 65 74 20 64 6f 56 65 72 62 6f .}......-verbose.{...set.doVerbo
3dce0 73 65 20 31 0a 09 20 20 20 20 7d 0a 09 20 20 20 20 2d 6c 61 7a 79 20 7b 0a 09 09 73 65 74 20 64 se.1......}......-lazy.{...set.d
3dd00 69 72 65 63 74 20 30 0a 09 09 61 70 70 65 6e 64 20 6d 6f 72 65 20 22 20 2d 6c 61 7a 79 22 0a 09 irect.0...append.more.".-lazy"..
3dd20 20 20 20 20 7d 0a 09 20 20 20 20 2d 64 69 72 65 63 74 20 7b 0a 09 09 61 70 70 65 6e 64 20 6d 6f ....}......-direct.{...append.mo
3dd40 72 65 20 22 20 2d 64 69 72 65 63 74 22 0a 09 20 20 20 20 7d 0a 09 20 20 20 20 2d 6c 6f 61 64 20 re.".-direct"......}......-load.
3dd60 7b 0a 09 09 69 6e 63 72 20 69 64 78 0a 09 09 73 65 74 20 6c 6f 61 64 50 61 74 20 5b 6c 69 6e 64 {...incr.idx...set.loadPat.[lind
3dd80 65 78 20 24 61 72 67 73 20 24 69 64 78 5d 0a 09 09 61 70 70 65 6e 64 20 6d 6f 72 65 20 22 20 2d ex.$args.$idx]...append.more.".-
3dda0 6c 6f 61 64 20 24 6c 6f 61 64 50 61 74 22 0a 09 20 20 20 20 7d 0a 09 20 20 20 20 2d 2a 20 7b 0a load.$loadPat"......}......-*.{.
3ddc0 09 09 72 65 74 75 72 6e 20 2d 63 6f 64 65 20 65 72 72 6f 72 20 22 75 6e 6b 6e 6f 77 6e 20 66 6c ..return.-code.error."unknown.fl
3dde0 61 67 20 24 66 6c 61 67 3a 20 73 68 6f 75 6c 64 20 62 65 5c 6e 24 75 73 61 67 65 22 0a 09 20 20 ag.$flag:.should.be\n$usage"....
3de00 20 20 7d 0a 09 20 20 20 20 64 65 66 61 75 6c 74 20 7b 0a 09 09 23 20 64 6f 6e 65 20 77 69 74 68 ..}......default.{...#.done.with
3de20 20 74 68 65 20 66 6c 61 67 73 0a 09 09 62 72 65 61 6b 0a 09 20 20 20 20 7d 0a 09 7d 0a 20 20 20 .the.flags...break......}..}....
3de40 20 7d 0a 0a 20 20 20 20 73 65 74 20 64 69 72 20 5b 6c 69 6e 64 65 78 20 24 61 72 67 73 20 24 69 .}......set.dir.[lindex.$args.$i
3de60 64 78 5d 0a 20 20 20 20 73 65 74 20 70 61 74 74 65 72 6e 4c 69 73 74 20 5b 6c 72 61 6e 67 65 20 dx].....set.patternList.[lrange.
3de80 24 61 72 67 73 20 5b 65 78 70 72 20 7b 24 69 64 78 20 2b 20 31 7d 5d 20 65 6e 64 5d 0a 20 20 20 $args.[expr.{$idx.+.1}].end]....
3dea0 20 69 66 20 7b 5b 6c 6c 65 6e 67 74 68 20 24 70 61 74 74 65 72 6e 4c 69 73 74 5d 20 3d 3d 20 30 .if.{[llength.$patternList].==.0
3dec0 7d 20 7b 0a 09 73 65 74 20 70 61 74 74 65 72 6e 4c 69 73 74 20 5b 6c 69 73 74 20 22 2a 2e 74 63 }.{..set.patternList.[list."*.tc
3dee0 6c 22 20 22 2a 5b 69 6e 66 6f 20 73 68 61 72 65 64 6c 69 62 65 78 74 65 6e 73 69 6f 6e 5d 22 5d l"."*[info.sharedlibextension]"]
3df00 0a 20 20 20 20 7d 0a 0a 20 20 20 20 73 65 74 20 6f 6c 64 44 69 72 20 5b 70 77 64 5d 0a 20 20 20 .....}......set.oldDir.[pwd]....
3df20 20 63 64 20 24 64 69 72 0a 0a 20 20 20 20 69 66 20 7b 5b 63 61 74 63 68 20 7b 65 76 61 6c 20 67 .cd.$dir......if.{[catch.{eval.g
3df40 6c 6f 62 20 24 70 61 74 74 65 72 6e 4c 69 73 74 7d 20 66 69 6c 65 4c 69 73 74 5d 7d 20 7b 0a 09 lob.$patternList}.fileList]}.{..
3df60 67 6c 6f 62 61 6c 20 65 72 72 6f 72 43 6f 64 65 20 65 72 72 6f 72 49 6e 66 6f 0a 09 63 64 20 24 global.errorCode.errorInfo..cd.$
3df80 6f 6c 64 44 69 72 0a 09 72 65 74 75 72 6e 20 2d 63 6f 64 65 20 65 72 72 6f 72 20 2d 65 72 72 6f oldDir..return.-code.error.-erro
3dfa0 72 63 6f 64 65 20 24 65 72 72 6f 72 43 6f 64 65 20 2d 65 72 72 6f 72 69 6e 66 6f 20 24 65 72 72 rcode.$errorCode.-errorinfo.$err
3dfc0 6f 72 49 6e 66 6f 20 24 66 69 6c 65 4c 69 73 74 0a 20 20 20 20 7d 0a 20 20 20 20 66 6f 72 65 61 orInfo.$fileList.....}.....forea
3dfe0 63 68 20 66 69 6c 65 20 24 66 69 6c 65 4c 69 73 74 20 7b 0a 09 23 20 46 6f 72 20 65 61 63 68 20 ch.file.$fileList.{..#.For.each.
3e000 66 69 6c 65 2c 20 66 69 67 75 72 65 20 6f 75 74 20 77 68 61 74 20 63 6f 6d 6d 61 6e 64 73 20 61 file,.figure.out.what.commands.a
3e020 6e 64 20 70 61 63 6b 61 67 65 73 20 69 74 20 70 72 6f 76 69 64 65 73 2e 0a 09 23 20 54 6f 20 64 nd.packages.it.provides...#.To.d
3e040 6f 20 74 68 69 73 2c 20 63 72 65 61 74 65 20 61 20 63 68 69 6c 64 20 69 6e 74 65 72 70 72 65 74 o.this,.create.a.child.interpret
3e060 65 72 2c 20 6c 6f 61 64 20 74 68 65 20 66 69 6c 65 20 69 6e 74 6f 20 74 68 65 0a 09 23 20 69 6e er,.load.the.file.into.the..#.in
3e080 74 65 72 70 72 65 74 65 72 2c 20 61 6e 64 20 67 65 74 20 61 20 6c 69 73 74 20 6f 66 20 74 68 65 terpreter,.and.get.a.list.of.the
3e0a0 20 6e 65 77 20 63 6f 6d 6d 61 6e 64 73 20 61 6e 64 20 70 61 63 6b 61 67 65 73 0a 09 23 20 74 68 .new.commands.and.packages..#.th
3e0c0 61 74 20 61 72 65 20 64 65 66 69 6e 65 64 2e 0a 0a 09 69 66 20 7b 5b 73 74 72 69 6e 67 20 65 71 at.are.defined....if.{[string.eq
3e0e0 75 61 6c 20 24 66 69 6c 65 20 22 70 6b 67 49 6e 64 65 78 2e 74 63 6c 22 5d 7d 20 7b 0a 09 20 20 ual.$file."pkgIndex.tcl"]}.{....
3e100 20 20 63 6f 6e 74 69 6e 75 65 0a 09 7d 0a 0a 09 23 20 43 68 61 6e 67 65 64 20 62 61 63 6b 20 74 ..continue..}...#.Changed.back.t
3e120 6f 20 74 68 65 20 6f 72 69 67 69 6e 61 6c 20 64 69 72 65 63 74 6f 72 79 20 62 65 66 6f 72 65 20 o.the.original.directory.before.
3e140 69 6e 69 74 69 61 6c 69 7a 69 6e 67 20 74 68 65 0a 09 23 20 73 6c 61 76 65 20 69 6e 20 63 61 73 initializing.the..#.slave.in.cas
3e160 65 20 54 43 4c 5f 4c 49 42 52 41 52 59 20 69 73 20 61 20 72 65 6c 61 74 69 76 65 20 70 61 74 68 e.TCL_LIBRARY.is.a.relative.path
3e180 20 28 65 2e 67 2e 20 69 6e 20 74 68 65 20 74 65 73 74 0a 09 23 20 73 75 69 74 65 29 2e 20 0a 0a .(e.g..in.the.test..#.suite)....
3e1a0 09 63 64 20 24 6f 6c 64 44 69 72 0a 09 73 65 74 20 63 20 5b 69 6e 74 65 72 70 20 63 72 65 61 74 .cd.$oldDir..set.c.[interp.creat
3e1c0 65 5d 0a 0a 09 23 20 4c 6f 61 64 20 69 6e 74 6f 20 74 68 65 20 63 68 69 6c 64 20 61 6e 79 20 70 e]...#.Load.into.the.child.any.p
3e1e0 61 63 6b 61 67 65 73 20 63 75 72 72 65 6e 74 6c 79 20 6c 6f 61 64 65 64 20 69 6e 20 74 68 65 20 ackages.currently.loaded.in.the.
3e200 70 61 72 65 6e 74 0a 09 23 20 69 6e 74 65 72 70 72 65 74 65 72 20 74 68 61 74 20 6d 61 74 63 68 parent..#.interpreter.that.match
3e220 20 74 68 65 20 2d 6c 6f 61 64 20 70 61 74 74 65 72 6e 2e 0a 0a 09 66 6f 72 65 61 63 68 20 70 6b .the.-load.pattern....foreach.pk
3e240 67 20 5b 69 6e 66 6f 20 6c 6f 61 64 65 64 5d 20 7b 0a 09 20 20 20 20 69 66 20 7b 21 20 5b 73 74 g.[info.loaded].{......if.{!.[st
3e260 72 69 6e 67 20 6d 61 74 63 68 20 24 6c 6f 61 64 50 61 74 20 5b 6c 69 6e 64 65 78 20 24 70 6b 67 ring.match.$loadPat.[lindex.$pkg
3e280 20 31 5d 5d 7d 20 7b 0a 09 09 63 6f 6e 74 69 6e 75 65 0a 09 20 20 20 20 7d 0a 09 20 20 20 20 69 .1]]}.{...continue......}......i
3e2a0 66 20 7b 5b 73 74 72 69 6e 67 20 65 71 75 61 6c 20 5b 6c 69 6e 64 65 78 20 24 70 6b 67 20 31 5d f.{[string.equal.[lindex.$pkg.1]
3e2c0 20 22 54 6b 22 5d 7d 20 7b 0a 09 09 24 63 20 65 76 61 6c 20 7b 73 65 74 20 61 72 67 76 20 7b 2d ."Tk"]}.{...$c.eval.{set.argv.{-
3e2e0 67 65 6f 6d 65 74 72 79 20 2b 30 2b 30 7d 7d 0a 09 20 20 20 20 7d 0a 09 20 20 20 20 69 66 20 7b geometry.+0+0}}......}......if.{
3e300 5b 63 61 74 63 68 20 7b 0a 09 09 6c 6f 61 64 20 5b 6c 69 6e 64 65 78 20 24 70 6b 67 20 30 5d 20 [catch.{...load.[lindex.$pkg.0].
3e320 5b 6c 69 6e 64 65 78 20 24 70 6b 67 20 31 5d 20 24 63 0a 09 20 20 20 20 7d 20 65 72 72 5d 7d 20 [lindex.$pkg.1].$c......}.err]}.
3e340 7b 0a 09 09 69 66 20 7b 24 64 6f 56 65 72 62 6f 73 65 7d 20 7b 0a 09 09 20 20 20 20 74 63 6c 4c {...if.{$doVerbose}.{.......tclL
3e360 6f 67 20 22 77 61 72 6e 69 6e 67 3a 20 6c 6f 61 64 20 5b 6c 69 6e 64 65 78 20 24 70 6b 67 20 30 og."warning:.load.[lindex.$pkg.0
3e380 5d 20 5b 6c 69 6e 64 65 78 20 24 70 6b 67 20 31 5d 5c 6e 66 61 69 6c 65 64 20 77 69 74 68 3a 20 ].[lindex.$pkg.1]\nfailed.with:.
3e3a0 24 65 72 72 22 0a 09 09 7d 0a 09 20 20 20 20 7d 20 65 6c 73 65 69 66 20 7b 24 64 6f 56 65 72 62 $err"...}......}.elseif.{$doVerb
3e3c0 6f 73 65 7d 20 7b 0a 09 09 74 63 6c 4c 6f 67 20 22 6c 6f 61 64 65 64 20 5b 6c 69 6e 64 65 78 20 ose}.{...tclLog."loaded.[lindex.
3e3e0 24 70 6b 67 20 30 5d 20 5b 6c 69 6e 64 65 78 20 24 70 6b 67 20 31 5d 22 0a 09 20 20 20 20 7d 0a $pkg.0].[lindex.$pkg.1]"......}.
3e400 09 7d 0a 09 63 64 20 24 64 69 72 0a 0a 09 24 63 20 65 76 61 6c 20 7b 0a 09 20 20 20 20 23 20 53 .}..cd.$dir...$c.eval.{......#.S
3e420 74 75 62 20 6f 75 74 20 74 68 65 20 70 61 63 6b 61 67 65 20 63 6f 6d 6d 61 6e 64 20 73 6f 20 70 tub.out.the.package.command.so.p
3e440 61 63 6b 61 67 65 73 20 63 61 6e 0a 09 20 20 20 20 23 20 72 65 71 75 69 72 65 20 6f 74 68 65 72 ackages.can......#.require.other
3e460 20 70 61 63 6b 61 67 65 73 2e 0a 0a 09 20 20 20 20 72 65 6e 61 6d 65 20 70 61 63 6b 61 67 65 20 .packages........rename.package.
3e480 5f 5f 70 61 63 6b 61 67 65 5f 6f 72 69 67 0a 09 20 20 20 20 70 72 6f 63 20 70 61 63 6b 61 67 65 __package_orig......proc.package
3e4a0 20 7b 77 68 61 74 20 61 72 67 73 7d 20 7b 0a 09 09 73 77 69 74 63 68 20 2d 2d 20 24 77 68 61 74 .{what.args}.{...switch.--.$what
3e4c0 20 7b 0a 09 09 20 20 20 20 72 65 71 75 69 72 65 20 7b 20 72 65 74 75 72 6e 20 3b 20 23 20 69 67 .{.......require.{.return.;.#.ig
3e4e0 6e 6f 72 65 20 74 72 61 6e 73 69 74 69 76 65 20 72 65 71 75 69 72 65 73 20 7d 0a 09 09 20 20 20 nore.transitive.requires.}......
3e500 20 64 65 66 61 75 6c 74 20 7b 20 65 76 61 6c 20 5f 5f 70 61 63 6b 61 67 65 5f 6f 72 69 67 20 7b .default.{.eval.__package_orig.{
3e520 24 77 68 61 74 7d 20 24 61 72 67 73 20 7d 0a 09 09 7d 0a 09 20 20 20 20 7d 0a 09 20 20 20 20 70 $what}.$args.}...}......}......p
3e540 72 6f 63 20 74 63 6c 50 6b 67 55 6e 6b 6e 6f 77 6e 20 61 72 67 73 20 7b 7d 0a 09 20 20 20 20 70 roc.tclPkgUnknown.args.{}......p
3e560 61 63 6b 61 67 65 20 75 6e 6b 6e 6f 77 6e 20 74 63 6c 50 6b 67 55 6e 6b 6e 6f 77 6e 0a 0a 09 20 ackage.unknown.tclPkgUnknown....
3e580 20 20 20 23 20 53 74 75 62 20 6f 75 74 20 74 68 65 20 75 6e 6b 6e 6f 77 6e 20 63 6f 6d 6d 61 6e ...#.Stub.out.the.unknown.comman
3e5a0 64 20 73 6f 20 70 61 63 6b 61 67 65 20 63 61 6e 20 63 61 6c 6c 0a 09 20 20 20 20 23 20 69 6e 74 d.so.package.can.call......#.int
3e5c0 6f 20 65 61 63 68 20 6f 74 68 65 72 20 64 75 72 69 6e 67 20 74 68 65 69 72 20 69 6e 69 74 69 61 o.each.other.during.their.initia
3e5e0 6c 69 6c 7a 61 74 69 6f 6e 2e 0a 0a 09 20 20 20 20 70 72 6f 63 20 75 6e 6b 6e 6f 77 6e 20 7b 61 lilzation........proc.unknown.{a
3e600 72 67 73 7d 20 7b 7d 0a 0a 09 20 20 20 20 23 20 53 74 75 62 20 6f 75 74 20 74 68 65 20 61 75 74 rgs}.{}.......#.Stub.out.the.aut
3e620 6f 5f 69 6d 70 6f 72 74 20 6d 65 63 68 61 6e 69 73 6d 0a 0a 09 20 20 20 20 70 72 6f 63 20 61 75 o_import.mechanism.......proc.au
3e640 74 6f 5f 69 6d 70 6f 72 74 20 7b 61 72 67 73 7d 20 7b 7d 0a 0a 09 20 20 20 20 23 20 72 65 73 65 to_import.{args}.{}.......#.rese
3e660 72 76 65 20 74 68 65 20 3a 3a 74 63 6c 20 6e 61 6d 65 73 70 61 63 65 20 66 6f 72 20 73 75 70 70 rve.the.::tcl.namespace.for.supp
3e680 6f 72 74 20 70 72 6f 63 73 0a 09 20 20 20 20 23 20 61 6e 64 20 74 65 6d 70 6f 72 61 72 79 20 76 ort.procs......#.and.temporary.v
3e6a0 61 72 69 61 62 6c 65 73 2e 20 20 54 68 69 73 20 6d 69 67 68 74 20 6d 61 6b 65 20 69 74 20 61 77 ariables...This.might.make.it.aw
3e6c0 6b 77 61 72 64 0a 09 20 20 20 20 23 20 74 6f 20 67 65 6e 65 72 61 74 65 20 61 20 70 6b 67 49 6e kward......#.to.generate.a.pkgIn
3e6e0 64 65 78 2e 74 63 6c 20 66 69 6c 65 20 66 6f 72 20 74 68 65 20 3a 3a 74 63 6c 20 6e 61 6d 65 73 dex.tcl.file.for.the.::tcl.names
3e700 70 61 63 65 2e 0a 0a 09 20 20 20 20 6e 61 6d 65 73 70 61 63 65 20 65 76 61 6c 20 3a 3a 74 63 6c pace........namespace.eval.::tcl
3e720 20 7b 0a 09 09 76 61 72 69 61 62 6c 65 20 66 69 6c 65 09 09 3b 23 20 43 75 72 72 65 6e 74 20 66 .{...variable.file..;#.Current.f
3e740 69 6c 65 20 62 65 69 6e 67 20 70 72 6f 63 65 73 73 65 64 0a 09 09 76 61 72 69 61 62 6c 65 20 64 ile.being.processed...variable.d
3e760 69 72 65 63 74 09 09 3b 23 20 2d 64 69 72 65 63 74 20 66 6c 61 67 20 76 61 6c 75 65 0a 09 09 76 irect..;#.-direct.flag.value...v
3e780 61 72 69 61 62 6c 65 20 78 09 09 3b 23 20 4c 6f 6f 70 20 76 61 72 69 61 62 6c 65 0a 09 09 76 61 ariable.x..;#.Loop.variable...va
3e7a0 72 69 61 62 6c 65 20 64 65 62 75 67 09 09 3b 23 20 46 6f 72 20 64 65 62 75 67 67 69 6e 67 0a 09 riable.debug..;#.For.debugging..
3e7c0 09 76 61 72 69 61 62 6c 65 20 74 79 70 65 09 09 3b 23 20 22 6c 6f 61 64 22 20 6f 72 20 22 73 6f .variable.type..;#."load".or."so
3e7e0 75 72 63 65 22 2c 20 66 6f 72 20 2d 64 69 72 65 63 74 0a 09 09 76 61 72 69 61 62 6c 65 20 6e 61 urce",.for.-direct...variable.na
3e800 6d 65 73 70 61 63 65 73 09 3b 23 20 45 78 69 73 74 69 6e 67 20 6e 61 6d 65 73 70 61 63 65 73 20 mespaces.;#.Existing.namespaces.
3e820 28 65 2e 67 2e 2c 20 3a 3a 74 63 6c 29 0a 09 09 76 61 72 69 61 62 6c 65 20 70 61 63 6b 61 67 65 (e.g.,.::tcl)...variable.package
3e840 73 09 3b 23 20 45 78 69 73 74 69 6e 67 20 70 61 63 6b 61 67 65 73 20 28 65 2e 67 2e 2c 20 54 63 s.;#.Existing.packages.(e.g.,.Tc
3e860 6c 29 0a 09 09 76 61 72 69 61 62 6c 65 20 6f 72 69 67 43 6d 64 73 09 3b 23 20 45 78 69 73 74 69 l)...variable.origCmds.;#.Existi
3e880 6e 67 20 63 6f 6d 6d 61 6e 64 73 0a 09 09 76 61 72 69 61 62 6c 65 20 6e 65 77 43 6d 64 73 09 3b ng.commands...variable.newCmds.;
3e8a0 23 20 4e 65 77 6c 79 20 63 72 65 61 74 65 64 20 63 6f 6d 6d 61 6e 64 73 0a 09 09 76 61 72 69 61 #.Newly.created.commands...varia
3e8c0 62 6c 65 20 6e 65 77 50 6b 67 73 20 7b 7d 09 3b 23 20 4e 65 77 6c 79 20 63 72 65 61 74 65 64 20 ble.newPkgs.{}.;#.Newly.created.
3e8e0 70 61 63 6b 61 67 65 73 0a 09 20 20 20 20 7d 0a 09 7d 0a 0a 09 24 63 20 65 76 61 6c 20 5b 6c 69 packages......}..}...$c.eval.[li
3e900 73 74 20 73 65 74 20 3a 3a 74 63 6c 3a 3a 66 69 6c 65 20 24 66 69 6c 65 5d 0a 09 24 63 20 65 76 st.set.::tcl::file.$file]..$c.ev
3e920 61 6c 20 5b 6c 69 73 74 20 73 65 74 20 3a 3a 74 63 6c 3a 3a 64 69 72 65 63 74 20 24 64 69 72 65 al.[list.set.::tcl::direct.$dire
3e940 63 74 5d 0a 0a 09 23 20 44 6f 77 6e 6c 6f 61 64 20 6e 65 65 64 65 64 20 70 72 6f 63 65 64 75 72 ct]...#.Download.needed.procedur
3e960 65 73 20 69 6e 74 6f 20 74 68 65 20 73 6c 61 76 65 20 62 65 63 61 75 73 65 20 77 65 27 76 65 0a es.into.the.slave.because.we've.
3e980 09 23 20 6a 75 73 74 20 64 65 6c 65 74 65 64 20 74 68 65 20 75 6e 6b 6e 6f 77 6e 20 70 72 6f 63 .#.just.deleted.the.unknown.proc
3e9a0 65 64 75 72 65 2e 20 20 54 68 69 73 20 64 6f 65 73 6e 27 74 20 68 61 6e 64 6c 65 0a 09 23 20 70 edure...This.doesn't.handle..#.p
3e9c0 72 6f 63 65 64 75 72 65 73 20 77 69 74 68 20 64 65 66 61 75 6c 74 20 61 72 67 75 6d 65 6e 74 73 rocedures.with.default.arguments
3e9e0 2e 0a 0a 09 66 6f 72 65 61 63 68 20 70 20 7b 70 6b 67 5f 63 6f 6d 70 61 72 65 45 78 74 65 6e 73 ....foreach.p.{pkg_compareExtens
3ea00 69 6f 6e 7d 20 7b 0a 09 20 20 20 20 24 63 20 65 76 61 6c 20 5b 6c 69 73 74 20 70 72 6f 63 20 24 ion}.{......$c.eval.[list.proc.$
3ea20 70 20 5b 69 6e 66 6f 20 61 72 67 73 20 24 70 5d 20 5b 69 6e 66 6f 20 62 6f 64 79 20 24 70 5d 5d p.[info.args.$p].[info.body.$p]]
3ea40 0a 09 7d 0a 0a 09 69 66 20 7b 5b 63 61 74 63 68 20 7b 0a 09 20 20 20 20 24 63 20 65 76 61 6c 20 ..}...if.{[catch.{......$c.eval.
3ea60 7b 0a 09 09 73 65 74 20 3a 3a 74 63 6c 3a 3a 64 65 62 75 67 20 22 6c 6f 61 64 69 6e 67 20 6f 72 {...set.::tcl::debug."loading.or
3ea80 20 73 6f 75 72 63 69 6e 67 22 0a 0a 09 09 23 20 77 65 20 6e 65 65 64 20 74 6f 20 74 72 61 63 6b .sourcing"....#.we.need.to.track
3eaa0 20 63 6f 6d 6d 61 6e 64 20 64 65 66 69 6e 65 64 20 62 79 20 65 61 63 68 20 70 61 63 6b 61 67 65 .command.defined.by.each.package
3eac0 20 65 76 65 6e 20 69 6e 0a 09 09 23 20 74 68 65 20 2d 64 69 72 65 63 74 20 63 61 73 65 2c 20 62 .even.in...#.the.-direct.case,.b
3eae0 65 63 61 75 73 65 20 74 68 65 79 20 61 72 65 20 6e 65 65 64 65 64 20 69 6e 74 65 72 6e 61 6c 6c ecause.they.are.needed.internall
3eb00 79 20 62 79 0a 09 09 23 20 74 68 65 20 22 70 61 72 74 69 61 6c 20 70 6b 67 49 6e 64 65 78 2e 74 y.by...#.the."partial.pkgIndex.t
3eb20 63 6c 22 20 73 74 65 70 20 61 62 6f 76 65 2e 0a 0a 09 09 70 72 6f 63 20 3a 3a 74 63 6c 3a 3a 47 cl".step.above.....proc.::tcl::G
3eb40 65 74 41 6c 6c 4e 61 6d 65 73 70 61 63 65 73 20 7b 7b 72 6f 6f 74 20 3a 3a 7d 7d 20 7b 0a 09 09 etAllNamespaces.{{root.::}}.{...
3eb60 20 20 20 20 73 65 74 20 6c 69 73 74 20 24 72 6f 6f 74 0a 09 09 20 20 20 20 66 6f 72 65 61 63 68 ....set.list.$root.......foreach
3eb80 20 6e 73 20 5b 6e 61 6d 65 73 70 61 63 65 20 63 68 69 6c 64 72 65 6e 20 24 72 6f 6f 74 5d 20 7b .ns.[namespace.children.$root].{
3eba0 0a 09 09 09 65 76 61 6c 20 6c 61 70 70 65 6e 64 20 6c 69 73 74 20 5b 3a 3a 74 63 6c 3a 3a 47 65 ....eval.lappend.list.[::tcl::Ge
3ebc0 74 41 6c 6c 4e 61 6d 65 73 70 61 63 65 73 20 24 6e 73 5d 0a 09 09 20 20 20 20 7d 0a 09 09 20 20 tAllNamespaces.$ns].......}.....
3ebe0 20 20 72 65 74 75 72 6e 20 24 6c 69 73 74 0a 09 09 7d 0a 0a 09 09 23 20 69 6e 69 74 20 74 68 65 ..return.$list...}....#.init.the
3ec00 20 6c 69 73 74 20 6f 66 20 65 78 69 73 74 69 6e 67 20 6e 61 6d 65 73 70 61 63 65 73 2c 20 70 61 .list.of.existing.namespaces,.pa
3ec20 63 6b 61 67 65 73 2c 20 63 6f 6d 6d 61 6e 64 73 0a 0a 09 09 66 6f 72 65 61 63 68 20 3a 3a 74 63 ckages,.commands....foreach.::tc
3ec40 6c 3a 3a 78 20 5b 3a 3a 74 63 6c 3a 3a 47 65 74 41 6c 6c 4e 61 6d 65 73 70 61 63 65 73 5d 20 7b l::x.[::tcl::GetAllNamespaces].{
3ec60 0a 09 09 20 20 20 20 73 65 74 20 3a 3a 74 63 6c 3a 3a 6e 61 6d 65 73 70 61 63 65 73 28 24 3a 3a .......set.::tcl::namespaces($::
3ec80 74 63 6c 3a 3a 78 29 20 31 0a 09 09 7d 0a 09 09 66 6f 72 65 61 63 68 20 3a 3a 74 63 6c 3a 3a 78 tcl::x).1...}...foreach.::tcl::x
3eca0 20 5b 70 61 63 6b 61 67 65 20 6e 61 6d 65 73 5d 20 7b 0a 09 09 20 20 20 20 73 65 74 20 3a 3a 74 .[package.names].{.......set.::t
3ecc0 63 6c 3a 3a 70 61 63 6b 61 67 65 73 28 24 3a 3a 74 63 6c 3a 3a 78 29 20 31 0a 09 09 7d 0a 09 09 cl::packages($::tcl::x).1...}...
3ece0 73 65 74 20 3a 3a 74 63 6c 3a 3a 6f 72 69 67 43 6d 64 73 20 5b 69 6e 66 6f 20 63 6f 6d 6d 61 6e set.::tcl::origCmds.[info.comman
3ed00 64 73 5d 0a 0a 09 09 23 20 54 72 79 20 74 6f 20 6c 6f 61 64 20 74 68 65 20 66 69 6c 65 20 69 66 ds]....#.Try.to.load.the.file.if
3ed20 20 69 74 20 68 61 73 20 74 68 65 20 73 68 61 72 65 64 20 6c 69 62 72 61 72 79 0a 09 09 23 20 65 .it.has.the.shared.library...#.e
3ed40 78 74 65 6e 73 69 6f 6e 2c 20 6f 74 68 65 72 77 69 73 65 20 73 6f 75 72 63 65 20 69 74 2e 20 20 xtension,.otherwise.source.it...
3ed60 49 74 27 73 20 69 6d 70 6f 72 74 61 6e 74 20 6e 6f 74 20 74 6f 0a 09 09 23 20 74 72 79 20 74 6f It's.important.not.to...#.try.to
3ed80 20 6c 6f 61 64 20 66 69 6c 65 73 20 74 68 61 74 20 61 72 65 6e 27 74 20 73 68 61 72 65 64 20 6c .load.files.that.aren't.shared.l
3eda0 69 62 72 61 72 69 65 73 2c 20 62 65 63 61 75 73 65 0a 09 09 23 20 6f 6e 20 73 6f 6d 65 20 73 79 ibraries,.because...#.on.some.sy
3edc0 73 74 65 6d 73 20 28 6c 69 6b 65 20 53 75 6e 4f 53 29 20 74 68 65 20 6c 6f 61 64 65 72 20 77 69 stems.(like.SunOS).the.loader.wi
3ede0 6c 6c 20 61 62 6f 72 74 20 74 68 65 0a 09 09 23 20 77 68 6f 6c 65 20 61 70 70 6c 69 63 61 74 69 ll.abort.the...#.whole.applicati
3ee00 6f 6e 20 77 68 65 6e 20 69 74 20 67 65 74 73 20 61 6e 20 65 72 72 6f 72 2e 0a 0a 09 09 69 66 20 on.when.it.gets.an.error.....if.
3ee20 7b 5b 70 6b 67 5f 63 6f 6d 70 61 72 65 45 78 74 65 6e 73 69 6f 6e 20 24 3a 3a 74 63 6c 3a 3a 66 {[pkg_compareExtension.$::tcl::f
3ee40 69 6c 65 20 5b 69 6e 66 6f 20 73 68 61 72 65 64 6c 69 62 65 78 74 65 6e 73 69 6f 6e 5d 5d 7d 20 ile.[info.sharedlibextension]]}.
3ee60 7b 0a 09 09 20 20 20 20 23 20 54 68 65 20 22 66 69 6c 65 20 6a 6f 69 6e 20 2e 22 20 63 6f 6d 6d {.......#.The."file.join..".comm
3ee80 61 6e 64 20 62 65 6c 6f 77 20 69 73 20 6e 65 63 65 73 73 61 72 79 2e 0a 09 09 20 20 20 20 23 20 and.below.is.necessary........#.
3eea0 57 69 74 68 6f 75 74 20 69 74 2c 20 69 66 20 74 68 65 20 66 69 6c 65 20 6e 61 6d 65 20 68 61 73 Without.it,.if.the.file.name.has
3eec0 20 6e 6f 20 5c 27 73 20 61 6e 64 20 77 65 27 72 65 0a 09 09 20 20 20 20 23 20 6f 6e 20 55 4e 49 .no.\'s.and.we're.......#.on.UNI
3eee0 58 2c 20 74 68 65 20 6c 6f 61 64 20 63 6f 6d 6d 61 6e 64 20 77 69 6c 6c 20 69 6e 76 6f 6b 65 20 X,.the.load.command.will.invoke.
3ef00 74 68 65 0a 09 09 20 20 20 20 23 20 4c 44 5f 4c 49 42 52 41 52 59 5f 50 41 54 48 20 73 65 61 72 the.......#.LD_LIBRARY_PATH.sear
3ef20 63 68 20 6d 65 63 68 61 6e 69 73 6d 2c 20 77 68 69 63 68 20 63 6f 75 6c 64 20 63 61 75 73 65 0a ch.mechanism,.which.could.cause.
3ef40 09 09 20 20 20 20 23 20 74 68 65 20 77 72 6f 6e 67 20 66 69 6c 65 20 74 6f 20 62 65 20 75 73 65 ......#.the.wrong.file.to.be.use
3ef60 64 2e 0a 0a 09 09 20 20 20 20 73 65 74 20 3a 3a 74 63 6c 3a 3a 64 65 62 75 67 20 6c 6f 61 64 69 d.........set.::tcl::debug.loadi
3ef80 6e 67 0a 09 09 20 20 20 20 6c 6f 61 64 20 5b 66 69 6c 65 20 6a 6f 69 6e 20 2e 20 24 3a 3a 74 63 ng.......load.[file.join...$::tc
3efa0 6c 3a 3a 66 69 6c 65 5d 0a 09 09 20 20 20 20 73 65 74 20 3a 3a 74 63 6c 3a 3a 74 79 70 65 20 6c l::file].......set.::tcl::type.l
3efc0 6f 61 64 0a 09 09 7d 20 65 6c 73 65 20 7b 0a 09 09 20 20 20 20 73 65 74 20 3a 3a 74 63 6c 3a 3a oad...}.else.{.......set.::tcl::
3efe0 64 65 62 75 67 20 73 6f 75 72 63 69 6e 67 0a 09 09 20 20 20 20 73 6f 75 72 63 65 20 24 3a 3a 74 debug.sourcing.......source.$::t
3f000 63 6c 3a 3a 66 69 6c 65 0a 09 09 20 20 20 20 73 65 74 20 3a 3a 74 63 6c 3a 3a 74 79 70 65 20 73 cl::file.......set.::tcl::type.s
3f020 6f 75 72 63 65 0a 09 09 7d 0a 0a 09 09 23 20 41 73 20 61 20 70 65 72 66 6f 72 6d 61 6e 63 65 20 ource...}....#.As.a.performance.
3f040 6f 70 74 69 6d 69 7a 61 74 69 6f 6e 2c 20 69 66 20 77 65 20 61 72 65 20 63 72 65 61 74 69 6e 67 optimization,.if.we.are.creating
3f060 20 0a 09 09 23 20 64 69 72 65 63 74 20 6c 6f 61 64 20 70 61 63 6b 61 67 65 73 2c 20 64 6f 6e 27 ....#.direct.load.packages,.don'
3f080 74 20 62 6f 74 68 65 72 20 66 69 67 75 72 69 6e 67 20 6f 75 74 20 74 68 65 20 0a 09 09 23 20 73 t.bother.figuring.out.the....#.s
3f0a0 65 74 20 6f 66 20 63 6f 6d 6d 61 6e 64 73 20 63 72 65 61 74 65 64 20 62 79 20 74 68 65 20 6e 65 et.of.commands.created.by.the.ne
3f0c0 77 20 70 61 63 6b 61 67 65 73 2e 20 20 57 65 20 0a 09 09 23 20 6f 6e 6c 79 20 6e 65 65 64 20 74 w.packages...We....#.only.need.t
3f0e0 68 61 74 20 6c 69 73 74 20 66 6f 72 20 73 65 74 74 69 6e 67 20 75 70 20 74 68 65 20 61 75 74 6f hat.list.for.setting.up.the.auto
3f100 6c 6f 61 64 69 6e 67 20 0a 09 09 23 20 75 73 65 64 20 69 6e 20 74 68 65 20 6e 6f 6e 2d 64 69 72 loading....#.used.in.the.non-dir
3f120 65 63 74 20 63 61 73 65 2e 0a 09 09 69 66 20 7b 20 21 24 3a 3a 74 63 6c 3a 3a 64 69 72 65 63 74 ect.case....if.{.!$::tcl::direct
3f140 20 7d 20 7b 0a 09 09 20 20 20 20 23 20 53 65 65 20 77 68 61 74 20 6e 65 77 20 6e 61 6d 65 73 70 .}.{.......#.See.what.new.namesp
3f160 61 63 65 73 20 61 70 70 65 61 72 65 64 2c 20 61 6e 64 20 69 6d 70 6f 72 74 20 63 6f 6d 6d 61 6e aces.appeared,.and.import.comman
3f180 64 73 0a 09 09 20 20 20 20 23 20 66 72 6f 6d 20 74 68 65 6d 2e 20 20 4f 6e 6c 79 20 65 78 70 6f ds.......#.from.them...Only.expo
3f1a0 72 74 65 64 20 63 6f 6d 6d 61 6e 64 73 20 67 6f 20 69 6e 74 6f 20 74 68 65 20 69 6e 64 65 78 2e rted.commands.go.into.the.index.
3f1c0 0a 09 09 20 20 20 20 0a 09 09 20 20 20 20 66 6f 72 65 61 63 68 20 3a 3a 74 63 6c 3a 3a 78 20 5b ..............foreach.::tcl::x.[
3f1e0 3a 3a 74 63 6c 3a 3a 47 65 74 41 6c 6c 4e 61 6d 65 73 70 61 63 65 73 5d 20 7b 0a 09 09 09 69 66 ::tcl::GetAllNamespaces].{....if
3f200 20 7b 21 20 5b 69 6e 66 6f 20 65 78 69 73 74 73 20 3a 3a 74 63 6c 3a 3a 6e 61 6d 65 73 70 61 63 .{!.[info.exists.::tcl::namespac
3f220 65 73 28 24 3a 3a 74 63 6c 3a 3a 78 29 5d 7d 20 7b 0a 09 09 09 20 20 20 20 6e 61 6d 65 73 70 61 es($::tcl::x)]}.{........namespa
3f240 63 65 20 69 6d 70 6f 72 74 20 2d 66 6f 72 63 65 20 24 7b 3a 3a 74 63 6c 3a 3a 78 7d 3a 3a 2a 0a ce.import.-force.${::tcl::x}::*.
3f260 09 09 09 7d 0a 0a 09 09 09 23 20 46 69 67 75 72 65 20 6f 75 74 20 77 68 61 74 20 63 6f 6d 6d 61 ...}.....#.Figure.out.what.comma
3f280 6e 64 73 20 61 70 70 65 61 72 65 64 0a 09 09 09 0a 09 09 09 66 6f 72 65 61 63 68 20 3a 3a 74 63 nds.appeared........foreach.::tc
3f2a0 6c 3a 3a 78 20 5b 69 6e 66 6f 20 63 6f 6d 6d 61 6e 64 73 5d 20 7b 0a 09 09 09 20 20 20 20 73 65 l::x.[info.commands].{........se
3f2c0 74 20 3a 3a 74 63 6c 3a 3a 6e 65 77 43 6d 64 73 28 24 3a 3a 74 63 6c 3a 3a 78 29 20 31 0a 09 09 t.::tcl::newCmds($::tcl::x).1...
3f2e0 09 7d 0a 09 09 09 66 6f 72 65 61 63 68 20 3a 3a 74 63 6c 3a 3a 78 20 24 3a 3a 74 63 6c 3a 3a 6f .}....foreach.::tcl::x.$::tcl::o
3f300 72 69 67 43 6d 64 73 20 7b 0a 09 09 09 20 20 20 20 63 61 74 63 68 20 7b 75 6e 73 65 74 20 3a 3a rigCmds.{........catch.{unset.::
3f320 74 63 6c 3a 3a 6e 65 77 43 6d 64 73 28 24 3a 3a 74 63 6c 3a 3a 78 29 7d 0a 09 09 09 7d 0a 09 09 tcl::newCmds($::tcl::x)}....}...
3f340 09 66 6f 72 65 61 63 68 20 3a 3a 74 63 6c 3a 3a 78 20 5b 61 72 72 61 79 20 6e 61 6d 65 73 20 3a .foreach.::tcl::x.[array.names.:
3f360 3a 74 63 6c 3a 3a 6e 65 77 43 6d 64 73 5d 20 7b 0a 09 09 09 20 20 20 20 23 20 64 65 74 65 72 6d :tcl::newCmds].{........#.determ
3f380 69 6e 65 20 77 68 69 63 68 20 6e 61 6d 65 73 70 61 63 65 20 61 20 63 6f 6d 6d 61 6e 64 20 63 6f ine.which.namespace.a.command.co
3f3a0 6d 65 73 20 66 72 6f 6d 0a 09 09 09 20 20 20 20 0a 09 09 09 20 20 20 20 73 65 74 20 3a 3a 74 63 mes.from................set.::tc
3f3c0 6c 3a 3a 61 62 73 20 5b 6e 61 6d 65 73 70 61 63 65 20 6f 72 69 67 69 6e 20 24 3a 3a 74 63 6c 3a l::abs.[namespace.origin.$::tcl:
3f3e0 3a 78 5d 0a 09 09 09 20 20 20 20 0a 09 09 09 20 20 20 20 23 20 73 70 65 63 69 61 6c 20 63 61 73 :x]................#.special.cas
3f400 65 20 73 6f 20 74 68 61 74 20 67 6c 6f 62 61 6c 20 6e 61 6d 65 73 20 68 61 76 65 20 6e 6f 20 6c e.so.that.global.names.have.no.l
3f420 65 61 64 69 6e 67 0a 09 09 09 20 20 20 20 23 20 3a 3a 2c 20 74 68 69 73 20 69 73 20 72 65 71 75 eading........#.::,.this.is.requ
3f440 69 72 65 64 20 62 79 20 74 68 65 20 75 6e 6b 6e 6f 77 6e 20 63 6f 6d 6d 61 6e 64 0a 09 09 09 20 ired.by.the.unknown.command.....
3f460 20 20 20 0a 09 09 09 20 20 20 20 73 65 74 20 3a 3a 74 63 6c 3a 3a 61 62 73 20 5c 0a 09 09 09 09 ...........set.::tcl::abs.\.....
3f480 20 20 20 20 5b 6c 69 6e 64 65 78 20 5b 61 75 74 6f 5f 71 75 61 6c 69 66 79 20 24 3a 3a 74 63 6c ....[lindex.[auto_qualify.$::tcl
3f4a0 3a 3a 61 62 73 20 3a 3a 5d 20 30 5d 0a 09 09 09 20 20 20 20 0a 09 09 09 20 20 20 20 69 66 20 7b ::abs.::].0]................if.{
3f4c0 5b 73 74 72 69 6e 67 20 63 6f 6d 70 61 72 65 20 24 3a 3a 74 63 6c 3a 3a 78 20 24 3a 3a 74 63 6c [string.compare.$::tcl::x.$::tcl
3f4e0 3a 3a 61 62 73 5d 7d 20 7b 0a 09 09 09 09 23 20 4e 61 6d 65 20 63 68 61 6e 67 65 64 20 64 75 72 ::abs]}.{.....#.Name.changed.dur
3f500 69 6e 67 20 71 75 61 6c 69 66 69 63 61 74 69 6f 6e 0a 09 09 09 09 0a 09 09 09 09 73 65 74 20 3a ing.qualification..........set.:
3f520 3a 74 63 6c 3a 3a 6e 65 77 43 6d 64 73 28 24 3a 3a 74 63 6c 3a 3a 61 62 73 29 20 31 0a 09 09 09 :tcl::newCmds($::tcl::abs).1....
3f540 09 75 6e 73 65 74 20 3a 3a 74 63 6c 3a 3a 6e 65 77 43 6d 64 73 28 24 3a 3a 74 63 6c 3a 3a 78 29 .unset.::tcl::newCmds($::tcl::x)
3f560 0a 09 09 09 20 20 20 20 7d 0a 09 09 09 7d 0a 09 09 20 20 20 20 7d 0a 09 09 7d 0a 0a 09 09 23 20 ........}....}.......}...}....#.
3f580 4c 6f 6f 6b 20 74 68 72 6f 75 67 68 20 74 68 65 20 70 61 63 6b 61 67 65 73 20 74 68 61 74 20 61 Look.through.the.packages.that.a
3f5a0 70 70 65 61 72 65 64 2c 20 61 6e 64 20 69 66 20 74 68 65 72 65 20 69 73 0a 09 09 23 20 61 20 76 ppeared,.and.if.there.is...#.a.v
3f5c0 65 72 73 69 6f 6e 20 70 72 6f 76 69 64 65 64 2c 20 74 68 65 6e 20 72 65 63 6f 72 64 20 69 74 0a ersion.provided,.then.record.it.
3f5e0 0a 09 09 66 6f 72 65 61 63 68 20 3a 3a 74 63 6c 3a 3a 78 20 5b 70 61 63 6b 61 67 65 20 6e 61 6d ...foreach.::tcl::x.[package.nam
3f600 65 73 5d 20 7b 0a 09 09 20 20 20 20 69 66 20 7b 5b 73 74 72 69 6e 67 20 63 6f 6d 70 61 72 65 20 es].{.......if.{[string.compare.
3f620 5b 70 61 63 6b 61 67 65 20 70 72 6f 76 69 64 65 20 24 3a 3a 74 63 6c 3a 3a 78 5d 20 22 22 5d 20 [package.provide.$::tcl::x].""].
3f640 5c 0a 09 09 09 20 20 20 20 26 26 20 21 5b 69 6e 66 6f 20 65 78 69 73 74 73 20 3a 3a 74 63 6c 3a \........&&.![info.exists.::tcl:
3f660 3a 70 61 63 6b 61 67 65 73 28 24 3a 3a 74 63 6c 3a 3a 78 29 5d 7d 20 7b 0a 09 09 09 6c 61 70 70 :packages($::tcl::x)]}.{....lapp
3f680 65 6e 64 20 3a 3a 74 63 6c 3a 3a 6e 65 77 50 6b 67 73 20 5c 0a 09 09 09 20 20 20 20 5b 6c 69 73 end.::tcl::newPkgs.\........[lis
3f6a0 74 20 24 3a 3a 74 63 6c 3a 3a 78 20 5b 70 61 63 6b 61 67 65 20 70 72 6f 76 69 64 65 20 24 3a 3a t.$::tcl::x.[package.provide.$::
3f6c0 74 63 6c 3a 3a 78 5d 5d 0a 09 09 20 20 20 20 7d 0a 09 09 7d 0a 09 20 20 20 20 7d 0a 09 7d 20 6d tcl::x]].......}...}......}..}.m
3f6e0 73 67 5d 20 3d 3d 20 31 7d 20 7b 0a 09 20 20 20 20 73 65 74 20 77 68 61 74 20 5b 24 63 20 65 76 sg].==.1}.{......set.what.[$c.ev
3f700 61 6c 20 73 65 74 20 3a 3a 74 63 6c 3a 3a 64 65 62 75 67 5d 0a 09 20 20 20 20 69 66 20 7b 24 64 al.set.::tcl::debug]......if.{$d
3f720 6f 56 65 72 62 6f 73 65 7d 20 7b 0a 09 09 74 63 6c 4c 6f 67 20 22 77 61 72 6e 69 6e 67 3a 20 65 oVerbose}.{...tclLog."warning:.e
3f740 72 72 6f 72 20 77 68 69 6c 65 20 24 77 68 61 74 20 24 66 69 6c 65 3a 20 24 6d 73 67 22 0a 09 20 rror.while.$what.$file:.$msg"...
3f760 20 20 20 7d 0a 09 7d 20 65 6c 73 65 20 7b 0a 09 20 20 20 20 73 65 74 20 74 79 70 65 20 5b 24 63 ...}..}.else.{......set.type.[$c
3f780 20 65 76 61 6c 20 73 65 74 20 3a 3a 74 63 6c 3a 3a 74 79 70 65 5d 0a 09 20 20 20 20 73 65 74 20 .eval.set.::tcl::type]......set.
3f7a0 63 6d 64 73 20 5b 6c 73 6f 72 74 20 5b 24 63 20 65 76 61 6c 20 61 72 72 61 79 20 6e 61 6d 65 73 cmds.[lsort.[$c.eval.array.names
3f7c0 20 3a 3a 74 63 6c 3a 3a 6e 65 77 43 6d 64 73 5d 5d 0a 09 20 20 20 20 73 65 74 20 70 6b 67 73 20 .::tcl::newCmds]]......set.pkgs.
3f7e0 5b 24 63 20 65 76 61 6c 20 73 65 74 20 3a 3a 74 63 6c 3a 3a 6e 65 77 50 6b 67 73 5d 0a 09 20 20 [$c.eval.set.::tcl::newPkgs]....
3f800 20 20 69 66 20 7b 5b 6c 6c 65 6e 67 74 68 20 24 70 6b 67 73 5d 20 3e 20 31 7d 20 7b 0a 09 09 74 ..if.{[llength.$pkgs].>.1}.{...t
3f820 63 6c 4c 6f 67 20 22 77 61 72 6e 69 6e 67 3a 20 5c 22 24 66 69 6c 65 5c 22 20 70 72 6f 76 69 64 clLog."warning:.\"$file\".provid
3f840 65 73 20 6d 6f 72 65 20 74 68 61 6e 20 6f 6e 65 20 70 61 63 6b 61 67 65 20 28 24 70 6b 67 73 29 es.more.than.one.package.($pkgs)
3f860 22 0a 09 20 20 20 20 7d 0a 09 20 20 20 20 66 6f 72 65 61 63 68 20 70 6b 67 20 24 70 6b 67 73 20 "......}......foreach.pkg.$pkgs.
3f880 7b 0a 09 09 23 20 63 6d 64 73 20 69 73 20 65 6d 70 74 79 2f 6e 6f 74 20 75 73 65 64 20 69 6e 20 {...#.cmds.is.empty/not.used.in.
3f8a0 74 68 65 20 64 69 72 65 63 74 20 63 61 73 65 0a 09 09 6c 61 70 70 65 6e 64 20 66 69 6c 65 73 28 the.direct.case...lappend.files(
3f8c0 24 70 6b 67 29 20 5b 6c 69 73 74 20 24 66 69 6c 65 20 24 74 79 70 65 20 24 63 6d 64 73 5d 0a 09 $pkg).[list.$file.$type.$cmds]..
3f8e0 20 20 20 20 7d 0a 0a 09 20 20 20 20 69 66 20 7b 24 64 6f 56 65 72 62 6f 73 65 7d 20 7b 0a 09 09 ....}.......if.{$doVerbose}.{...
3f900 74 63 6c 4c 6f 67 20 22 70 72 6f 63 65 73 73 65 64 20 24 66 69 6c 65 22 0a 09 20 20 20 20 7d 0a tclLog."processed.$file"......}.
3f920 09 20 20 20 20 69 6e 74 65 72 70 20 64 65 6c 65 74 65 20 24 63 0a 09 7d 0a 20 20 20 20 7d 0a 0a .....interp.delete.$c..}.....}..
3f940 20 20 20 20 61 70 70 65 6e 64 20 69 6e 64 65 78 20 22 23 20 54 63 6c 20 70 61 63 6b 61 67 65 20 ....append.index."#.Tcl.package.
3f960 69 6e 64 65 78 20 66 69 6c 65 2c 20 76 65 72 73 69 6f 6e 20 31 2e 31 5c 6e 22 0a 20 20 20 20 61 index.file,.version.1.1\n".....a
3f980 70 70 65 6e 64 20 69 6e 64 65 78 20 22 23 20 54 68 69 73 20 66 69 6c 65 20 69 73 20 67 65 6e 65 ppend.index."#.This.file.is.gene
3f9a0 72 61 74 65 64 20 62 79 20 74 68 65 20 5c 22 70 6b 67 5f 6d 6b 49 6e 64 65 78 24 6d 6f 72 65 5c rated.by.the.\"pkg_mkIndex$more\
3f9c0 22 20 63 6f 6d 6d 61 6e 64 5c 6e 22 0a 20 20 20 20 61 70 70 65 6e 64 20 69 6e 64 65 78 20 22 23 ".command\n".....append.index."#
3f9e0 20 61 6e 64 20 73 6f 75 72 63 65 64 20 65 69 74 68 65 72 20 77 68 65 6e 20 61 6e 20 61 70 70 6c .and.sourced.either.when.an.appl
3fa00 69 63 61 74 69 6f 6e 20 73 74 61 72 74 73 20 75 70 20 6f 72 5c 6e 22 0a 20 20 20 20 61 70 70 65 ication.starts.up.or\n".....appe
3fa20 6e 64 20 69 6e 64 65 78 20 22 23 20 62 79 20 61 20 5c 22 70 61 63 6b 61 67 65 20 75 6e 6b 6e 6f nd.index."#.by.a.\"package.unkno
3fa40 77 6e 5c 22 20 73 63 72 69 70 74 2e 20 20 49 74 20 69 6e 76 6f 6b 65 73 20 74 68 65 5c 6e 22 0a wn\".script...It.invokes.the\n".
3fa60 20 20 20 20 61 70 70 65 6e 64 20 69 6e 64 65 78 20 22 23 20 5c 22 70 61 63 6b 61 67 65 20 69 66 ....append.index."#.\"package.if
3fa80 6e 65 65 64 65 64 5c 22 20 63 6f 6d 6d 61 6e 64 20 74 6f 20 73 65 74 20 75 70 20 70 61 63 6b 61 needed\".command.to.set.up.packa
3faa0 67 65 2d 72 65 6c 61 74 65 64 5c 6e 22 0a 20 20 20 20 61 70 70 65 6e 64 20 69 6e 64 65 78 20 22 ge-related\n".....append.index."
3fac0 23 20 69 6e 66 6f 72 6d 61 74 69 6f 6e 20 73 6f 20 74 68 61 74 20 70 61 63 6b 61 67 65 73 20 77 #.information.so.that.packages.w
3fae0 69 6c 6c 20 62 65 20 6c 6f 61 64 65 64 20 61 75 74 6f 6d 61 74 69 63 61 6c 6c 79 5c 6e 22 0a 20 ill.be.loaded.automatically\n"..
3fb00 20 20 20 61 70 70 65 6e 64 20 69 6e 64 65 78 20 22 23 20 69 6e 20 72 65 73 70 6f 6e 73 65 20 74 ...append.index."#.in.response.t
3fb20 6f 20 5c 22 70 61 63 6b 61 67 65 20 72 65 71 75 69 72 65 5c 22 20 63 6f 6d 6d 61 6e 64 73 2e 20 o.\"package.require\".commands..
3fb40 20 57 68 65 6e 20 74 68 69 73 5c 6e 22 0a 20 20 20 20 61 70 70 65 6e 64 20 69 6e 64 65 78 20 22 .When.this\n".....append.index."
3fb60 23 20 73 63 72 69 70 74 20 69 73 20 73 6f 75 72 63 65 64 2c 20 74 68 65 20 76 61 72 69 61 62 6c #.script.is.sourced,.the.variabl
3fb80 65 20 5c 24 64 69 72 20 6d 75 73 74 20 63 6f 6e 74 61 69 6e 20 74 68 65 5c 6e 22 0a 20 20 20 20 e.\$dir.must.contain.the\n".....
3fba0 61 70 70 65 6e 64 20 69 6e 64 65 78 20 22 23 20 66 75 6c 6c 20 70 61 74 68 20 6e 61 6d 65 20 6f append.index."#.full.path.name.o
3fbc0 66 20 74 68 69 73 20 66 69 6c 65 27 73 20 64 69 72 65 63 74 6f 72 79 2e 5c 6e 22 0a 0a 20 20 20 f.this.file's.directory.\n".....
3fbe0 20 66 6f 72 65 61 63 68 20 70 6b 67 20 5b 6c 73 6f 72 74 20 5b 61 72 72 61 79 20 6e 61 6d 65 73 .foreach.pkg.[lsort.[array.names
3fc00 20 66 69 6c 65 73 5d 5d 20 7b 0a 09 73 65 74 20 63 6d 64 20 7b 7d 0a 09 66 6f 72 65 61 63 68 20 .files]].{..set.cmd.{}..foreach.
3fc20 7b 6e 61 6d 65 20 76 65 72 73 69 6f 6e 7d 20 24 70 6b 67 20 7b 0a 09 20 20 20 20 62 72 65 61 6b {name.version}.$pkg.{......break
3fc40 0a 09 7d 0a 09 6c 61 70 70 65 6e 64 20 63 6d 64 20 3a 3a 70 6b 67 3a 3a 63 72 65 61 74 65 20 2d ..}..lappend.cmd.::pkg::create.-
3fc60 6e 61 6d 65 20 24 6e 61 6d 65 20 2d 76 65 72 73 69 6f 6e 20 24 76 65 72 73 69 6f 6e 0a 09 66 6f name.$name.-version.$version..fo
3fc80 72 65 61 63 68 20 73 70 65 63 20 24 66 69 6c 65 73 28 24 70 6b 67 29 20 7b 0a 09 20 20 20 20 66 reach.spec.$files($pkg).{......f
3fca0 6f 72 65 61 63 68 20 7b 66 69 6c 65 20 74 79 70 65 20 70 72 6f 63 73 7d 20 24 73 70 65 63 20 7b oreach.{file.type.procs}.$spec.{
3fcc0 0a 09 09 69 66 20 7b 20 24 64 69 72 65 63 74 20 7d 20 7b 0a 09 09 20 20 20 20 73 65 74 20 70 72 ...if.{.$direct.}.{.......set.pr
3fce0 6f 63 73 20 7b 7d 0a 09 09 7d 0a 09 09 6c 61 70 70 65 6e 64 20 63 6d 64 20 22 2d 24 74 79 70 65 ocs.{}...}...lappend.cmd."-$type
3fd00 22 20 5b 6c 69 73 74 20 24 66 69 6c 65 20 24 70 72 6f 63 73 5d 0a 09 20 20 20 20 7d 0a 09 7d 0a ".[list.$file.$procs]......}..}.
3fd20 09 61 70 70 65 6e 64 20 69 6e 64 65 78 20 22 5c 6e 5b 65 76 61 6c 20 24 63 6d 64 5d 22 0a 20 20 .append.index."\n[eval.$cmd]"...
3fd40 20 20 7d 0a 0a 20 20 20 20 73 65 74 20 66 20 5b 6f 70 65 6e 20 70 6b 67 49 6e 64 65 78 2e 74 63 ..}......set.f.[open.pkgIndex.tc
3fd60 6c 20 77 5d 0a 20 20 20 20 70 75 74 73 20 24 66 20 24 69 6e 64 65 78 0a 20 20 20 20 63 6c 6f 73 l.w].....puts.$f.$index.....clos
3fd80 65 20 24 66 0a 20 20 20 20 63 64 20 24 6f 6c 64 44 69 72 0a 7d 0a 0a 23 20 74 63 6c 50 6b 67 53 e.$f.....cd.$oldDir.}..#.tclPkgS
3fda0 65 74 75 70 20 2d 2d 0a 23 20 54 68 69 73 20 69 73 20 61 20 75 74 69 6c 69 74 79 20 70 72 6f 63 etup.--.#.This.is.a.utility.proc
3fdc0 65 64 75 72 65 20 75 73 65 20 62 79 20 70 6b 67 49 6e 64 65 78 2e 74 63 6c 20 66 69 6c 65 73 2e edure.use.by.pkgIndex.tcl.files.
3fde0 20 20 49 74 20 69 73 20 69 6e 76 6f 6b 65 64 0a 23 20 61 73 20 70 61 72 74 20 6f 66 20 61 20 22 ..It.is.invoked.#.as.part.of.a."
3fe00 70 61 63 6b 61 67 65 20 69 66 6e 65 65 64 65 64 22 20 73 63 72 69 70 74 2e 20 20 49 74 20 63 61 package.ifneeded".script...It.ca
3fe20 6c 6c 73 20 22 70 61 63 6b 61 67 65 20 70 72 6f 76 69 64 65 22 0a 23 20 74 6f 20 69 6e 64 69 63 lls."package.provide".#.to.indic
3fe40 61 74 65 20 74 68 61 74 20 61 20 70 61 63 6b 61 67 65 20 69 73 20 61 76 61 69 6c 61 62 6c 65 2c ate.that.a.package.is.available,
3fe60 20 74 68 65 6e 20 73 65 74 73 20 65 6e 74 72 69 65 73 20 69 6e 20 74 68 65 0a 23 20 61 75 74 6f .then.sets.entries.in.the.#.auto
3fe80 5f 69 6e 64 65 78 20 61 72 72 61 79 20 73 6f 20 74 68 61 74 20 74 68 65 20 70 61 63 6b 61 67 65 _index.array.so.that.the.package
3fea0 27 73 20 66 69 6c 65 73 20 77 69 6c 6c 20 62 65 20 61 75 74 6f 2d 6c 6f 61 64 65 64 20 77 68 65 's.files.will.be.auto-loaded.whe
3fec0 6e 0a 23 20 74 68 65 20 63 6f 6d 6d 61 6e 64 73 20 61 72 65 20 75 73 65 64 2e 0a 23 0a 23 20 41 n.#.the.commands.are.used..#.#.A
3fee0 72 67 75 6d 65 6e 74 73 3a 0a 23 20 64 69 72 20 2d 09 09 09 44 69 72 65 63 74 6f 72 79 20 63 6f rguments:.#.dir.-...Directory.co
3ff00 6e 74 61 69 6e 69 6e 67 20 61 6c 6c 20 74 68 65 20 66 69 6c 65 73 20 66 6f 72 20 74 68 69 73 20 ntaining.all.the.files.for.this.
3ff20 70 61 63 6b 61 67 65 2e 0a 23 20 70 6b 67 20 2d 09 09 09 4e 61 6d 65 20 6f 66 20 74 68 65 20 70 package..#.pkg.-...Name.of.the.p
3ff40 61 63 6b 61 67 65 20 28 6e 6f 20 76 65 72 73 69 6f 6e 20 6e 75 6d 62 65 72 29 2e 0a 23 20 76 65 ackage.(no.version.number)..#.ve
3ff60 72 73 69 6f 6e 20 2d 09 09 56 65 72 73 69 6f 6e 20 6e 75 6d 62 65 72 20 66 6f 72 20 74 68 65 20 rsion.-..Version.number.for.the.
3ff80 70 61 63 6b 61 67 65 2c 20 73 75 63 68 20 61 73 20 32 2e 31 2e 33 2e 0a 23 20 66 69 6c 65 73 20 package,.such.as.2.1.3..#.files.
3ffa0 2d 09 09 4c 69 73 74 20 6f 66 20 66 69 6c 65 73 20 74 68 61 74 20 63 6f 6e 73 74 69 74 75 74 65 -..List.of.files.that.constitute
3ffc0 20 74 68 65 20 70 61 63 6b 61 67 65 2e 20 20 45 61 63 68 0a 23 09 09 09 65 6c 65 6d 65 6e 74 20 .the.package...Each.#...element.
3ffe0 69 73 20 61 20 73 75 62 2d 6c 69 73 74 20 77 69 74 68 20 74 68 72 65 65 20 65 6c 65 6d 65 6e 74 is.a.sub-list.with.three.element
40000 73 2e 20 20 54 68 65 20 66 69 72 73 74 0a 23 09 09 09 69 73 20 74 68 65 20 6e 61 6d 65 20 6f 66 s...The.first.#...is.the.name.of
40020 20 61 20 66 69 6c 65 20 72 65 6c 61 74 69 76 65 20 74 6f 20 24 64 69 72 2c 20 74 68 65 20 73 65 .a.file.relative.to.$dir,.the.se
40040 63 6f 6e 64 20 69 73 0a 23 09 09 09 22 6c 6f 61 64 22 20 6f 72 20 22 73 6f 75 72 63 65 22 2c 20 cond.is.#..."load".or."source",.
40060 69 6e 64 69 63 61 74 69 6e 67 20 77 68 65 74 68 65 72 20 74 68 65 20 66 69 6c 65 20 69 73 20 61 indicating.whether.the.file.is.a
40080 0a 23 09 09 09 6c 6f 61 64 61 62 6c 65 20 62 69 6e 61 72 79 20 6f 72 20 61 20 73 63 72 69 70 74 .#...loadable.binary.or.a.script
400a0 20 74 6f 20 73 6f 75 72 63 65 2c 20 61 6e 64 20 74 68 65 20 74 68 69 72 64 0a 23 09 09 09 69 73 .to.source,.and.the.third.#...is
400c0 20 61 20 6c 69 73 74 20 6f 66 20 63 6f 6d 6d 61 6e 64 73 20 64 65 66 69 6e 65 64 20 62 79 20 74 .a.list.of.commands.defined.by.t
400e0 68 69 73 20 66 69 6c 65 2e 0a 0a 70 72 6f 63 20 74 63 6c 50 6b 67 53 65 74 75 70 20 7b 64 69 72 his.file...proc.tclPkgSetup.{dir
40100 20 70 6b 67 20 76 65 72 73 69 6f 6e 20 66 69 6c 65 73 7d 20 7b 0a 20 20 20 20 67 6c 6f 62 61 6c .pkg.version.files}.{.....global
40120 20 61 75 74 6f 5f 69 6e 64 65 78 0a 0a 20 20 20 20 70 61 63 6b 61 67 65 20 70 72 6f 76 69 64 65 .auto_index......package.provide
40140 20 24 70 6b 67 20 24 76 65 72 73 69 6f 6e 0a 20 20 20 20 66 6f 72 65 61 63 68 20 66 69 6c 65 49 .$pkg.$version.....foreach.fileI
40160 6e 66 6f 20 24 66 69 6c 65 73 20 7b 0a 09 73 65 74 20 66 20 5b 6c 69 6e 64 65 78 20 24 66 69 6c nfo.$files.{..set.f.[lindex.$fil
40180 65 49 6e 66 6f 20 30 5d 0a 09 73 65 74 20 74 79 70 65 20 5b 6c 69 6e 64 65 78 20 24 66 69 6c 65 eInfo.0]..set.type.[lindex.$file
401a0 49 6e 66 6f 20 31 5d 0a 09 66 6f 72 65 61 63 68 20 63 6d 64 20 5b 6c 69 6e 64 65 78 20 24 66 69 Info.1]..foreach.cmd.[lindex.$fi
401c0 6c 65 49 6e 66 6f 20 32 5d 20 7b 0a 09 20 20 20 20 69 66 20 7b 5b 73 74 72 69 6e 67 20 65 71 75 leInfo.2].{......if.{[string.equ
401e0 61 6c 20 24 74 79 70 65 20 22 6c 6f 61 64 22 5d 7d 20 7b 0a 09 09 73 65 74 20 61 75 74 6f 5f 69 al.$type."load"]}.{...set.auto_i
40200 6e 64 65 78 28 24 63 6d 64 29 20 5b 6c 69 73 74 20 6c 6f 61 64 20 5b 66 69 6c 65 20 6a 6f 69 6e ndex($cmd).[list.load.[file.join
40220 20 24 64 69 72 20 24 66 5d 20 24 70 6b 67 5d 0a 09 20 20 20 20 7d 20 65 6c 73 65 20 7b 0a 09 09 .$dir.$f].$pkg]......}.else.{...
40240 73 65 74 20 61 75 74 6f 5f 69 6e 64 65 78 28 24 63 6d 64 29 20 5b 6c 69 73 74 20 73 6f 75 72 63 set.auto_index($cmd).[list.sourc
40260 65 20 5b 66 69 6c 65 20 6a 6f 69 6e 20 24 64 69 72 20 24 66 5d 5d 0a 09 20 20 20 20 7d 20 0a 09 e.[file.join.$dir.$f]]......}...
40280 7d 0a 20 20 20 20 7d 0a 7d 0a 0a 23 20 74 63 6c 4d 61 63 50 6b 67 53 65 61 72 63 68 20 2d 2d 0a }.....}.}..#.tclMacPkgSearch.--.
402a0 23 20 54 68 65 20 70 72 6f 63 65 64 75 72 65 20 69 73 20 75 73 65 64 20 6f 6e 20 74 68 65 20 4d #.The.procedure.is.used.on.the.M
402c0 61 63 69 6e 74 6f 73 68 20 74 6f 20 73 65 61 72 63 68 20 61 20 67 69 76 65 6e 20 64 69 72 65 63 acintosh.to.search.a.given.direc
402e0 74 6f 72 79 20 66 6f 72 20 66 69 6c 65 73 0a 23 20 77 69 74 68 20 61 20 54 45 58 54 20 72 65 73 tory.for.files.#.with.a.TEXT.res
40300 6f 75 72 63 65 20 6e 61 6d 65 64 20 22 70 6b 67 49 6e 64 65 78 22 2e 20 20 49 66 20 69 74 20 65 ource.named."pkgIndex"...If.it.e
40320 78 69 73 74 73 20 69 74 20 69 73 20 73 6f 75 72 63 65 64 20 69 6e 20 74 6f 20 74 68 65 0a 23 20 xists.it.is.sourced.in.to.the.#.
40340 69 6e 74 65 72 70 72 65 74 65 72 20 74 6f 20 73 65 74 75 70 20 74 68 65 20 70 61 63 6b 61 67 65 interpreter.to.setup.the.package
40360 20 64 61 74 61 62 61 73 65 2e 0a 0a 70 72 6f 63 20 74 63 6c 4d 61 63 50 6b 67 53 65 61 72 63 68 .database...proc.tclMacPkgSearch
40380 20 7b 64 69 72 7d 20 7b 0a 20 20 20 20 66 6f 72 65 61 63 68 20 78 20 5b 67 6c 6f 62 20 2d 6e 6f .{dir}.{.....foreach.x.[glob.-no
403a0 63 6f 6d 70 6c 61 69 6e 20 5b 66 69 6c 65 20 6a 6f 69 6e 20 24 64 69 72 20 2a 2e 73 68 6c 62 5d complain.[file.join.$dir.*.shlb]
403c0 5d 20 7b 0a 09 69 66 20 7b 5b 66 69 6c 65 20 69 73 66 69 6c 65 20 24 78 5d 7d 20 7b 0a 09 20 20 ].{..if.{[file.isfile.$x]}.{....
403e0 20 20 73 65 74 20 72 65 73 20 5b 72 65 73 6f 75 72 63 65 20 6f 70 65 6e 20 24 78 5d 0a 09 20 20 ..set.res.[resource.open.$x]....
40400 20 20 66 6f 72 65 61 63 68 20 79 20 5b 72 65 73 6f 75 72 63 65 20 6c 69 73 74 20 54 45 58 54 20 ..foreach.y.[resource.list.TEXT.
40420 24 72 65 73 5d 20 7b 0a 09 09 69 66 20 7b 5b 73 74 72 69 6e 67 20 65 71 75 61 6c 20 24 79 20 22 $res].{...if.{[string.equal.$y."
40440 70 6b 67 49 6e 64 65 78 22 5d 7d 20 7b 73 6f 75 72 63 65 20 2d 72 73 72 63 20 70 6b 67 49 6e 64 pkgIndex"]}.{source.-rsrc.pkgInd
40460 65 78 7d 0a 09 20 20 20 20 7d 0a 09 20 20 20 20 63 61 74 63 68 20 7b 72 65 73 6f 75 72 63 65 20 ex}......}......catch.{resource.
40480 63 6c 6f 73 65 20 24 72 65 73 7d 0a 09 7d 0a 20 20 20 20 7d 0a 7d 0a 0a 23 20 74 63 6c 50 6b 67 close.$res}..}.....}.}..#.tclPkg
404a0 55 6e 6b 6e 6f 77 6e 20 2d 2d 0a 23 20 54 68 69 73 20 70 72 6f 63 65 64 75 72 65 20 70 72 6f 76 Unknown.--.#.This.procedure.prov
404c0 69 64 65 73 20 74 68 65 20 64 65 66 61 75 6c 74 20 66 6f 72 20 74 68 65 20 22 70 61 63 6b 61 67 ides.the.default.for.the."packag
404e0 65 20 75 6e 6b 6e 6f 77 6e 22 20 66 75 6e 63 74 69 6f 6e 2e 0a 23 20 49 74 20 69 73 20 69 6e 76 e.unknown".function..#.It.is.inv
40500 6f 6b 65 64 20 77 68 65 6e 20 61 20 70 61 63 6b 61 67 65 20 74 68 61 74 27 73 20 6e 65 65 64 65 oked.when.a.package.that's.neede
40520 64 20 63 61 6e 27 74 20 62 65 20 66 6f 75 6e 64 2e 20 20 49 74 20 73 63 61 6e 73 0a 23 20 74 68 d.can't.be.found...It.scans.#.th
40540 65 20 61 75 74 6f 5f 70 61 74 68 20 64 69 72 65 63 74 6f 72 69 65 73 20 61 6e 64 20 74 68 65 69 e.auto_path.directories.and.thei
40560 72 20 69 6d 6d 65 64 69 61 74 65 20 63 68 69 6c 64 72 65 6e 20 6c 6f 6f 6b 69 6e 67 20 66 6f 72 r.immediate.children.looking.for
40580 0a 23 20 70 6b 67 49 6e 64 65 78 2e 74 63 6c 20 66 69 6c 65 73 20 61 6e 64 20 73 6f 75 72 63 65 .#.pkgIndex.tcl.files.and.source
405a0 73 20 61 6e 79 20 73 75 63 68 20 66 69 6c 65 73 20 74 68 61 74 20 61 72 65 20 66 6f 75 6e 64 20 s.any.such.files.that.are.found.
405c0 74 6f 20 73 65 74 75 70 0a 23 20 74 68 65 20 70 61 63 6b 61 67 65 20 64 61 74 61 62 61 73 65 2e to.setup.#.the.package.database.
405e0 20 20 28 4f 6e 20 74 68 65 20 4d 61 63 69 6e 74 6f 73 68 20 77 65 20 61 6c 73 6f 20 73 65 61 72 ..(On.the.Macintosh.we.also.sear
40600 63 68 20 66 6f 72 20 70 6b 67 49 6e 64 65 78 0a 23 20 54 45 58 54 20 72 65 73 6f 75 72 63 65 73 ch.for.pkgIndex.#.TEXT.resources
40620 20 69 6e 20 61 6c 6c 20 66 69 6c 65 73 2e 29 0a 23 0a 23 20 41 72 67 75 6d 65 6e 74 73 3a 0a 23 .in.all.files.).#.#.Arguments:.#
40640 20 6e 61 6d 65 20 2d 09 09 4e 61 6d 65 20 6f 66 20 64 65 73 69 72 65 64 20 70 61 63 6b 61 67 65 .name.-..Name.of.desired.package
40660 2e 20 20 4e 6f 74 20 75 73 65 64 2e 0a 23 20 76 65 72 73 69 6f 6e 20 2d 09 09 56 65 72 73 69 6f ...Not.used..#.version.-..Versio
40680 6e 20 6f 66 20 64 65 73 69 72 65 64 20 70 61 63 6b 61 67 65 2e 20 20 4e 6f 74 20 75 73 65 64 2e n.of.desired.package...Not.used.
406a0 0a 23 20 65 78 61 63 74 20 2d 09 09 45 69 74 68 65 72 20 22 2d 65 78 61 63 74 22 20 6f 72 20 6f .#.exact.-..Either."-exact".or.o
406c0 6d 69 74 74 65 64 2e 20 20 4e 6f 74 20 75 73 65 64 2e 0a 0a 70 72 6f 63 20 74 63 6c 50 6b 67 55 mitted...Not.used...proc.tclPkgU
406e0 6e 6b 6e 6f 77 6e 20 7b 6e 61 6d 65 20 76 65 72 73 69 6f 6e 20 7b 65 78 61 63 74 20 7b 7d 7d 7d nknown.{name.version.{exact.{}}}
40700 20 7b 0a 20 20 20 20 67 6c 6f 62 61 6c 20 61 75 74 6f 5f 70 61 74 68 20 74 63 6c 5f 70 6c 61 74 .{.....global.auto_path.tcl_plat
40720 66 6f 72 6d 20 65 6e 76 0a 0a 20 20 20 20 69 66 20 7b 21 5b 69 6e 66 6f 20 65 78 69 73 74 73 20 form.env......if.{![info.exists.
40740 61 75 74 6f 5f 70 61 74 68 5d 7d 20 7b 0a 09 72 65 74 75 72 6e 0a 20 20 20 20 7d 0a 20 20 20 20 auto_path]}.{..return.....}.....
40760 66 6f 72 20 7b 73 65 74 20 69 20 5b 65 78 70 72 20 7b 5b 6c 6c 65 6e 67 74 68 20 24 61 75 74 6f for.{set.i.[expr.{[llength.$auto
40780 5f 70 61 74 68 5d 20 2d 20 31 7d 5d 7d 20 7b 24 69 20 3e 3d 20 30 7d 20 7b 69 6e 63 72 20 69 20 _path].-.1}]}.{$i.>=.0}.{incr.i.
407a0 2d 31 7d 20 7b 0a 09 23 20 77 65 20 63 61 6e 27 74 20 75 73 65 20 67 6c 6f 62 20 69 6e 20 73 61 -1}.{..#.we.can't.use.glob.in.sa
407c0 66 65 20 69 6e 74 65 72 70 73 2c 20 73 6f 20 65 6e 63 6c 6f 73 65 20 74 68 65 20 66 6f 6c 6c 6f fe.interps,.so.enclose.the.follo
407e0 77 69 6e 67 0a 09 23 20 69 6e 20 61 20 63 61 74 63 68 20 73 74 61 74 65 6d 65 6e 74 0a 09 63 61 wing..#.in.a.catch.statement..ca
40800 74 63 68 20 7b 0a 09 20 20 20 20 66 6f 72 65 61 63 68 20 66 69 6c 65 20 5b 67 6c 6f 62 20 2d 6e tch.{......foreach.file.[glob.-n
40820 6f 63 6f 6d 70 6c 61 69 6e 20 5b 66 69 6c 65 20 6a 6f 69 6e 20 5b 6c 69 6e 64 65 78 20 24 61 75 ocomplain.[file.join.[lindex.$au
40840 74 6f 5f 70 61 74 68 20 24 69 5d 20 5c 0a 09 09 20 20 20 20 2a 20 70 6b 67 49 6e 64 65 78 2e 74 to_path.$i].\.......*.pkgIndex.t
40860 63 6c 5d 5d 20 7b 0a 09 09 73 65 74 20 64 69 72 20 5b 66 69 6c 65 20 64 69 72 6e 61 6d 65 20 24 cl]].{...set.dir.[file.dirname.$
40880 66 69 6c 65 5d 0a 09 09 69 66 20 7b 5b 66 69 6c 65 20 72 65 61 64 61 62 6c 65 20 24 66 69 6c 65 file]...if.{[file.readable.$file
408a0 5d 7d 20 7b 0a 09 09 20 20 20 20 69 66 20 7b 5b 63 61 74 63 68 20 7b 73 6f 75 72 63 65 20 24 66 ]}.{.......if.{[catch.{source.$f
408c0 69 6c 65 7d 20 6d 73 67 5d 7d 20 7b 0a 09 09 09 74 63 6c 4c 6f 67 20 22 65 72 72 6f 72 20 72 65 ile}.msg]}.{....tclLog."error.re
408e0 61 64 69 6e 67 20 70 61 63 6b 61 67 65 20 69 6e 64 65 78 20 66 69 6c 65 20 24 66 69 6c 65 3a 20 ading.package.index.file.$file:.
40900 24 6d 73 67 22 0a 09 09 20 20 20 20 7d 0a 09 09 7d 0a 09 20 20 20 20 7d 0a 09 7d 0a 09 73 65 74 $msg".......}...}......}..}..set
40920 20 64 69 72 20 5b 6c 69 6e 64 65 78 20 24 61 75 74 6f 5f 70 61 74 68 20 24 69 5d 0a 09 73 65 74 .dir.[lindex.$auto_path.$i]..set
40940 20 66 69 6c 65 20 5b 66 69 6c 65 20 6a 6f 69 6e 20 24 64 69 72 20 70 6b 67 49 6e 64 65 78 2e 74 .file.[file.join.$dir.pkgIndex.t
40960 63 6c 5d 0a 09 23 20 73 61 66 65 20 69 6e 74 65 72 70 73 20 75 73 75 61 6c 6c 79 20 64 6f 6e 27 cl]..#.safe.interps.usually.don'
40980 74 20 68 61 76 65 20 22 66 69 6c 65 20 72 65 61 64 61 62 6c 65 22 2c 20 6e 6f 72 20 73 74 64 65 t.have."file.readable",.nor.stde
409a0 72 72 20 63 68 61 6e 6e 65 6c 0a 09 69 66 20 7b 5b 69 6e 74 65 72 70 20 69 73 73 61 66 65 5d 20 rr.channel..if.{[interp.issafe].
409c0 7c 7c 20 5b 66 69 6c 65 20 72 65 61 64 61 62 6c 65 20 24 66 69 6c 65 5d 7d 20 7b 0a 09 20 20 20 ||.[file.readable.$file]}.{.....
409e0 20 69 66 20 7b 5b 63 61 74 63 68 20 7b 73 6f 75 72 63 65 20 24 66 69 6c 65 7d 20 6d 73 67 5d 20 .if.{[catch.{source.$file}.msg].
40a00 26 26 20 21 5b 69 6e 74 65 72 70 20 69 73 73 61 66 65 5d 7d 20 20 7b 0a 09 09 74 63 6c 4c 6f 67 &&.![interp.issafe]}..{...tclLog
40a20 20 22 65 72 72 6f 72 20 72 65 61 64 69 6e 67 20 70 61 63 6b 61 67 65 20 69 6e 64 65 78 20 66 69 ."error.reading.package.index.fi
40a40 6c 65 20 24 66 69 6c 65 3a 20 24 6d 73 67 22 0a 09 20 20 20 20 7d 0a 09 7d 0a 09 23 20 4f 6e 20 le.$file:.$msg"......}..}..#.On.
40a60 74 68 65 20 4d 61 63 69 6e 74 6f 73 68 20 77 65 20 61 6c 73 6f 20 6c 6f 6f 6b 20 69 6e 20 74 68 the.Macintosh.we.also.look.in.th
40a80 65 20 72 65 73 6f 75 72 63 65 20 66 6f 72 6b 20 0a 09 23 20 6f 66 20 73 68 61 72 65 64 20 6c 69 e.resource.fork...#.of.shared.li
40aa0 62 72 61 72 69 65 73 0a 09 23 20 57 65 20 63 61 6e 27 74 20 75 73 65 20 74 63 6c 4d 61 63 50 6b braries..#.We.can't.use.tclMacPk
40ac0 67 53 65 61 72 63 68 20 69 6e 20 73 61 66 65 20 69 6e 74 65 72 70 73 20 62 65 63 61 75 73 65 20 gSearch.in.safe.interps.because.
40ae0 69 74 20 75 73 65 73 20 67 6c 6f 62 0a 09 69 66 20 7b 28 21 5b 69 6e 74 65 72 70 20 69 73 73 61 it.uses.glob..if.{(![interp.issa
40b00 66 65 5d 29 20 26 26 20 5c 0a 09 09 5b 73 74 72 69 6e 67 20 65 71 75 61 6c 20 24 74 63 6c 5f 70 fe]).&&.\...[string.equal.$tcl_p
40b20 6c 61 74 66 6f 72 6d 28 70 6c 61 74 66 6f 72 6d 29 20 22 6d 61 63 69 6e 74 6f 73 68 22 5d 7d 20 latform(platform)."macintosh"]}.
40b40 7b 0a 09 20 20 20 20 73 65 74 20 64 69 72 20 5b 6c 69 6e 64 65 78 20 24 61 75 74 6f 5f 70 61 74 {......set.dir.[lindex.$auto_pat
40b60 68 20 24 69 5d 0a 09 20 20 20 20 74 63 6c 4d 61 63 50 6b 67 53 65 61 72 63 68 20 24 64 69 72 0a h.$i]......tclMacPkgSearch.$dir.
40b80 09 20 20 20 20 66 6f 72 65 61 63 68 20 78 20 5b 67 6c 6f 62 20 2d 6e 6f 63 6f 6d 70 6c 61 69 6e .....foreach.x.[glob.-nocomplain
40ba0 20 5b 66 69 6c 65 20 6a 6f 69 6e 20 24 64 69 72 20 2a 5d 5d 20 7b 0a 09 09 69 66 20 7b 5b 66 69 .[file.join.$dir.*]].{...if.{[fi
40bc0 6c 65 20 69 73 64 69 72 65 63 74 6f 72 79 20 24 78 5d 7d 20 7b 0a 09 09 20 20 20 20 73 65 74 20 le.isdirectory.$x]}.{.......set.
40be0 64 69 72 20 24 78 0a 09 09 20 20 20 20 74 63 6c 4d 61 63 50 6b 67 53 65 61 72 63 68 20 24 64 69 dir.$x.......tclMacPkgSearch.$di
40c00 72 0a 09 09 7d 0a 09 20 20 20 20 7d 0a 09 7d 0a 20 20 20 20 7d 0a 7d 0a 0a 23 20 3a 3a 70 6b 67 r...}......}..}.....}.}..#.::pkg
40c20 3a 3a 63 72 65 61 74 65 20 2d 2d 0a 23 0a 23 09 47 69 76 65 6e 20 61 20 70 61 63 6b 61 67 65 20 ::create.--.#.#.Given.a.package.
40c40 73 70 65 63 69 66 69 63 61 74 69 6f 6e 20 67 65 6e 65 72 61 74 65 20 61 20 22 70 61 63 6b 61 67 specification.generate.a."packag
40c60 65 20 69 66 6e 65 65 64 65 64 22 20 73 74 61 74 65 6d 65 6e 74 0a 23 09 66 6f 72 20 74 68 65 20 e.ifneeded".statement.#.for.the.
40c80 70 61 63 6b 61 67 65 2c 20 73 75 69 74 61 62 6c 65 20 66 6f 72 20 69 6e 63 6c 75 73 69 6f 6e 20 package,.suitable.for.inclusion.
40ca0 69 6e 20 61 20 70 6b 67 49 6e 64 65 78 2e 74 63 6c 20 66 69 6c 65 2e 0a 23 0a 23 20 41 72 67 75 in.a.pkgIndex.tcl.file..#.#.Argu
40cc0 6d 65 6e 74 73 3a 0a 23 09 61 72 67 73 09 09 61 72 67 75 6d 65 6e 74 73 20 75 73 65 64 20 62 79 ments:.#.args..arguments.used.by
40ce0 20 74 68 65 20 63 72 65 61 74 65 20 66 75 6e 63 74 69 6f 6e 3a 0a 23 09 09 09 2d 6e 61 6d 65 09 .the.create.function:.#...-name.
40d00 09 70 61 63 6b 61 67 65 4e 61 6d 65 0a 23 09 09 09 2d 76 65 72 73 69 6f 6e 09 70 61 63 6b 61 67 .packageName.#...-version.packag
40d20 65 56 65 72 73 69 6f 6e 0a 23 09 09 09 2d 6c 6f 61 64 09 09 7b 66 69 6c 65 6e 61 6d 65 20 3f 7b eVersion.#...-load..{filename.?{
40d40 70 72 6f 63 73 7d 3f 7d 0a 23 09 09 09 2e 2e 2e 0a 23 09 09 09 2d 73 6f 75 72 63 65 09 09 7b 66 procs}?}.#.......#...-source..{f
40d60 69 6c 65 6e 61 6d 65 20 3f 7b 70 72 6f 63 73 7d 3f 7d 0a 23 09 09 09 2e 2e 2e 0a 23 0a 23 09 09 ilename.?{procs}?}.#.......#.#..
40d80 09 41 6e 79 20 6e 75 6d 62 65 72 20 6f 66 20 2d 6c 6f 61 64 20 61 6e 64 20 2d 73 6f 75 72 63 65 .Any.number.of.-load.and.-source
40da0 20 70 61 72 61 6d 65 74 65 72 73 20 6d 61 79 20 62 65 0a 23 09 09 09 73 70 65 63 69 66 69 65 64 .parameters.may.be.#...specified
40dc0 2c 20 73 6f 20 6c 6f 6e 67 20 61 73 20 74 68 65 72 65 20 69 73 20 61 74 20 6c 65 61 73 74 20 6f ,.so.long.as.there.is.at.least.o
40de0 6e 65 20 2d 6c 6f 61 64 20 6f 72 0a 23 09 09 09 2d 73 6f 75 72 63 65 20 70 61 72 61 6d 65 74 65 ne.-load.or.#...-source.paramete
40e00 72 2e 20 20 49 66 20 74 68 65 20 70 72 6f 63 73 20 63 6f 6d 70 6f 6e 65 6e 74 20 6f 66 20 61 20 r...If.the.procs.component.of.a.
40e20 0a 23 09 09 09 6d 6f 64 75 6c 65 20 73 70 65 63 69 66 69 65 72 20 69 73 20 6c 65 66 74 20 6f 66 .#...module.specifier.is.left.of
40e40 66 2c 20 74 68 61 74 20 6d 6f 64 75 6c 65 20 77 69 6c 6c 20 62 65 0a 23 09 09 09 73 65 74 20 75 f,.that.module.will.be.#...set.u
40e60 70 20 66 6f 72 20 64 69 72 65 63 74 20 6c 6f 61 64 69 6e 67 3b 20 6f 74 68 65 72 77 69 73 65 2c p.for.direct.loading;.otherwise,
40e80 20 69 74 20 77 69 6c 6c 20 62 65 0a 23 09 09 09 73 65 74 20 75 70 20 66 6f 72 20 6c 61 7a 79 20 .it.will.be.#...set.up.for.lazy.
40ea0 6c 6f 61 64 69 6e 67 2e 20 20 49 66 20 62 6f 74 68 20 2d 73 6f 75 72 63 65 20 61 6e 64 20 2d 6c loading...If.both.-source.and.-l
40ec0 6f 61 64 0a 23 09 09 09 61 72 65 20 73 70 65 63 69 66 69 65 64 2c 20 74 68 65 20 2d 6c 6f 61 64 oad.#...are.specified,.the.-load
40ee0 27 65 64 20 66 69 6c 65 73 20 77 69 6c 6c 20 62 65 20 6c 6f 61 64 65 64 20 0a 23 09 09 09 66 69 'ed.files.will.be.loaded..#...fi
40f00 72 73 74 2c 20 66 6f 6c 6c 6f 77 65 64 20 62 79 20 74 68 65 20 2d 73 6f 75 72 63 65 27 64 20 66 rst,.followed.by.the.-source'd.f
40f20 69 6c 65 73 2e 0a 23 0a 23 20 52 65 73 75 6c 74 73 3a 0a 23 09 41 6e 20 61 70 70 72 6f 70 72 69 iles..#.#.Results:.#.An.appropri
40f40 61 74 65 20 22 70 61 63 6b 61 67 65 20 69 66 6e 65 65 64 65 64 22 20 73 74 61 74 65 6d 65 6e 74 ate."package.ifneeded".statement
40f60 20 66 6f 72 20 74 68 65 20 70 61 63 6b 61 67 65 2e 0a 0a 70 72 6f 63 20 3a 3a 70 6b 67 3a 3a 63 .for.the.package...proc.::pkg::c
40f80 72 65 61 74 65 20 7b 61 72 67 73 7d 20 7b 0a 20 20 20 20 61 70 70 65 6e 64 20 65 72 72 28 75 73 reate.{args}.{.....append.err(us
40fa0 61 67 65 29 20 22 5b 6c 69 6e 64 65 78 20 5b 69 6e 66 6f 20 6c 65 76 65 6c 20 30 5d 20 30 5d 20 age)."[lindex.[info.level.0].0].
40fc0 22 0a 20 20 20 20 61 70 70 65 6e 64 20 65 72 72 28 75 73 61 67 65 29 20 22 2d 6e 61 6d 65 20 70 ".....append.err(usage)."-name.p
40fe0 61 63 6b 61 67 65 4e 61 6d 65 20 2d 76 65 72 73 69 6f 6e 20 70 61 63 6b 61 67 65 56 65 72 73 69 ackageName.-version.packageVersi
41000 6f 6e 22 0a 20 20 20 20 61 70 70 65 6e 64 20 65 72 72 28 75 73 61 67 65 29 20 22 3f 2d 6c 6f 61 on".....append.err(usage)."?-loa
41020 64 20 7b 66 69 6c 65 6e 61 6d 65 20 3f 7b 70 72 6f 63 73 7d 3f 7d 3f 20 2e 2e 2e 20 22 0a 20 20 d.{filename.?{procs}?}?....."...
41040 20 20 61 70 70 65 6e 64 20 65 72 72 28 75 73 61 67 65 29 20 22 3f 2d 73 6f 75 72 63 65 20 7b 66 ..append.err(usage)."?-source.{f
41060 69 6c 65 6e 61 6d 65 20 3f 7b 70 72 6f 63 73 7d 3f 7d 3f 20 2e 2e 2e 22 0a 0a 20 20 20 20 73 65 ilename.?{procs}?}?...."......se
41080 74 20 65 72 72 28 77 72 6f 6e 67 4e 75 6d 41 72 67 73 29 20 22 77 72 6f 6e 67 20 23 20 61 72 67 t.err(wrongNumArgs)."wrong.#.arg
410a0 73 3a 20 73 68 6f 75 6c 64 20 62 65 20 5c 22 24 65 72 72 28 75 73 61 67 65 29 5c 22 22 0a 20 20 s:.should.be.\"$err(usage)\""...
410c0 20 20 73 65 74 20 65 72 72 28 76 61 6c 75 65 4d 69 73 73 69 6e 67 29 20 22 76 61 6c 75 65 20 66 ..set.err(valueMissing)."value.f
410e0 6f 72 20 5c 22 25 73 5c 22 20 6d 69 73 73 69 6e 67 3a 20 73 68 6f 75 6c 64 20 62 65 20 5c 22 24 or.\"%s\".missing:.should.be.\"$
41100 65 72 72 28 75 73 61 67 65 29 5c 22 22 0a 20 20 20 20 73 65 74 20 65 72 72 28 75 6e 6b 6e 6f 77 err(usage)\"".....set.err(unknow
41120 6e 4f 70 74 29 20 20 20 22 75 6e 6b 6e 6f 77 6e 20 6f 70 74 69 6f 6e 20 5c 22 25 73 5c 22 3a 20 nOpt)..."unknown.option.\"%s\":.
41140 73 68 6f 75 6c 64 20 62 65 20 5c 22 24 65 72 72 28 75 73 61 67 65 29 5c 22 22 0a 20 20 20 20 73 should.be.\"$err(usage)\"".....s
41160 65 74 20 65 72 72 28 6e 6f 4c 6f 61 64 4f 72 53 6f 75 72 63 65 29 20 22 61 74 20 6c 65 61 73 74 et.err(noLoadOrSource)."at.least
41180 20 6f 6e 65 20 6f 66 20 2d 6c 6f 61 64 20 61 6e 64 20 2d 73 6f 75 72 63 65 20 6d 75 73 74 20 62 .one.of.-load.and.-source.must.b
411a0 65 20 67 69 76 65 6e 22 0a 0a 20 20 20 20 23 20 70 72 6f 63 65 73 73 20 61 72 67 75 6d 65 6e 74 e.given"......#.process.argument
411c0 73 0a 20 20 20 20 73 65 74 20 6c 65 6e 20 5b 6c 6c 65 6e 67 74 68 20 24 61 72 67 73 5d 0a 20 20 s.....set.len.[llength.$args]...
411e0 20 20 69 66 20 7b 20 24 6c 65 6e 20 3c 20 36 20 7d 20 7b 0a 09 65 72 72 6f 72 20 24 65 72 72 28 ..if.{.$len.<.6.}.{..error.$err(
41200 77 72 6f 6e 67 4e 75 6d 41 72 67 73 29 0a 20 20 20 20 7d 0a 20 20 20 20 0a 20 20 20 20 23 20 49 wrongNumArgs).....}..........#.I
41220 6e 69 74 69 61 6c 69 7a 65 20 70 61 72 61 6d 65 74 65 72 73 0a 20 20 20 20 73 65 74 20 6f 70 74 nitialize.parameters.....set.opt
41240 73 28 2d 6e 61 6d 65 29 09 09 7b 7d 0a 20 20 20 20 73 65 74 20 6f 70 74 73 28 2d 76 65 72 73 69 s(-name)..{}.....set.opts(-versi
41260 6f 6e 29 09 09 7b 7d 0a 20 20 20 20 73 65 74 20 6f 70 74 73 28 2d 73 6f 75 72 63 65 29 09 09 7b on)..{}.....set.opts(-source)..{
41280 7d 0a 20 20 20 20 73 65 74 20 6f 70 74 73 28 2d 6c 6f 61 64 29 09 09 7b 7d 0a 0a 20 20 20 20 23 }.....set.opts(-load)..{}......#
412a0 20 70 72 6f 63 65 73 73 20 70 61 72 61 6d 65 74 65 72 73 0a 20 20 20 20 66 6f 72 20 7b 73 65 74 .process.parameters.....for.{set
412c0 20 69 20 30 7d 20 7b 24 69 20 3c 20 24 6c 65 6e 7d 20 7b 69 6e 63 72 20 69 7d 20 7b 0a 09 73 65 .i.0}.{$i.<.$len}.{incr.i}.{..se
412e0 74 20 66 6c 61 67 20 5b 6c 69 6e 64 65 78 20 24 61 72 67 73 20 24 69 5d 0a 09 69 6e 63 72 20 69 t.flag.[lindex.$args.$i]..incr.i
41300 0a 09 73 77 69 74 63 68 20 2d 67 6c 6f 62 20 2d 2d 20 24 66 6c 61 67 20 7b 0a 09 20 20 20 20 22 ..switch.-glob.--.$flag.{......"
41320 2d 6e 61 6d 65 22 09 09 2d 0a 09 20 20 20 20 22 2d 76 65 72 73 69 6f 6e 22 09 09 7b 0a 09 09 69 -name"..-......"-version"..{...i
41340 66 20 7b 20 24 69 20 3e 3d 20 24 6c 65 6e 20 7d 20 7b 0a 09 09 20 20 20 20 65 72 72 6f 72 20 5b f.{.$i.>=.$len.}.{.......error.[
41360 66 6f 72 6d 61 74 20 24 65 72 72 28 76 61 6c 75 65 4d 69 73 73 69 6e 67 29 20 24 66 6c 61 67 5d format.$err(valueMissing).$flag]
41380 0a 09 09 7d 0a 09 09 73 65 74 20 6f 70 74 73 28 24 66 6c 61 67 29 20 5b 6c 69 6e 64 65 78 20 24 ...}...set.opts($flag).[lindex.$
413a0 61 72 67 73 20 24 69 5d 0a 09 20 20 20 20 7d 0a 09 20 20 20 20 22 2d 73 6f 75 72 63 65 22 09 09 args.$i]......}......"-source"..
413c0 2d 0a 09 20 20 20 20 22 2d 6c 6f 61 64 22 09 09 7b 0a 09 09 69 66 20 7b 20 24 69 20 3e 3d 20 24 -......"-load"..{...if.{.$i.>=.$
413e0 6c 65 6e 20 7d 20 7b 0a 09 09 20 20 20 20 65 72 72 6f 72 20 5b 66 6f 72 6d 61 74 20 24 65 72 72 len.}.{.......error.[format.$err
41400 28 76 61 6c 75 65 4d 69 73 73 69 6e 67 29 20 24 66 6c 61 67 5d 0a 09 09 7d 0a 09 09 6c 61 70 70 (valueMissing).$flag]...}...lapp
41420 65 6e 64 20 6f 70 74 73 28 24 66 6c 61 67 29 20 5b 6c 69 6e 64 65 78 20 24 61 72 67 73 20 24 69 end.opts($flag).[lindex.$args.$i
41440 5d 0a 09 20 20 20 20 7d 0a 09 20 20 20 20 64 65 66 61 75 6c 74 20 7b 0a 09 09 65 72 72 6f 72 20 ]......}......default.{...error.
41460 5b 66 6f 72 6d 61 74 20 24 65 72 72 28 75 6e 6b 6e 6f 77 6e 4f 70 74 29 20 5b 6c 69 6e 64 65 78 [format.$err(unknownOpt).[lindex
41480 20 24 61 72 67 73 20 24 69 5d 5d 0a 09 20 20 20 20 7d 0a 09 7d 0a 20 20 20 20 7d 0a 0a 20 20 20 .$args.$i]]......}..}.....}.....
414a0 20 23 20 56 61 6c 69 64 61 74 65 20 74 68 65 20 70 61 72 61 6d 65 74 65 72 73 0a 20 20 20 20 69 .#.Validate.the.parameters.....i
414c0 66 20 7b 20 5b 6c 6c 65 6e 67 74 68 20 24 6f 70 74 73 28 2d 6e 61 6d 65 29 5d 20 3d 3d 20 30 20 f.{.[llength.$opts(-name)].==.0.
414e0 7d 20 7b 0a 09 65 72 72 6f 72 20 5b 66 6f 72 6d 61 74 20 24 65 72 72 28 76 61 6c 75 65 4d 69 73 }.{..error.[format.$err(valueMis
41500 73 69 6e 67 29 20 22 2d 6e 61 6d 65 22 5d 0a 20 20 20 20 7d 0a 20 20 20 20 69 66 20 7b 20 5b 6c sing)."-name"].....}.....if.{.[l
41520 6c 65 6e 67 74 68 20 24 6f 70 74 73 28 2d 76 65 72 73 69 6f 6e 29 5d 20 3d 3d 20 30 20 7d 20 7b length.$opts(-version)].==.0.}.{
41540 0a 09 65 72 72 6f 72 20 5b 66 6f 72 6d 61 74 20 24 65 72 72 28 76 61 6c 75 65 4d 69 73 73 69 6e ..error.[format.$err(valueMissin
41560 67 29 20 22 2d 76 65 72 73 69 6f 6e 22 5d 0a 20 20 20 20 7d 0a 20 20 20 20 0a 20 20 20 20 69 66 g)."-version"].....}..........if
41580 20 7b 20 5b 6c 6c 65 6e 67 74 68 20 24 6f 70 74 73 28 2d 73 6f 75 72 63 65 29 5d 20 3d 3d 20 30 .{.[llength.$opts(-source)].==.0
415a0 20 26 26 20 5b 6c 6c 65 6e 67 74 68 20 24 6f 70 74 73 28 2d 6c 6f 61 64 29 5d 20 3d 3d 20 30 20 .&&.[llength.$opts(-load)].==.0.
415c0 7d 20 7b 0a 09 65 72 72 6f 72 20 24 65 72 72 28 6e 6f 4c 6f 61 64 4f 72 53 6f 75 72 63 65 29 0a }.{..error.$err(noLoadOrSource).
415e0 20 20 20 20 7d 0a 0a 20 20 20 20 23 20 4f 4b 2c 20 6e 6f 77 20 65 76 65 72 79 74 68 69 6e 67 20 ....}......#.OK,.now.everything.
41600 69 73 20 67 6f 6f 64 2e 20 20 47 65 6e 65 72 61 74 65 20 74 68 65 20 70 61 63 6b 61 67 65 20 69 is.good...Generate.the.package.i
41620 66 6e 65 65 64 65 64 20 73 74 61 74 6d 65 6e 74 2e 0a 20 20 20 20 73 65 74 20 63 6d 64 6c 69 6e fneeded.statment......set.cmdlin
41640 65 20 22 70 61 63 6b 61 67 65 20 69 66 6e 65 65 64 65 64 20 24 6f 70 74 73 28 2d 6e 61 6d 65 29 e."package.ifneeded.$opts(-name)
41660 20 24 6f 70 74 73 28 2d 76 65 72 73 69 6f 6e 29 20 22 0a 20 20 20 20 0a 20 20 20 20 73 65 74 20 .$opts(-version)."..........set.
41680 63 6d 64 4c 69 73 74 20 7b 7d 0a 20 20 20 20 73 65 74 20 6c 61 7a 79 46 69 6c 65 4c 69 73 74 20 cmdList.{}.....set.lazyFileList.
416a0 7b 7d 0a 0a 20 20 20 20 23 20 48 61 6e 64 6c 65 20 2d 6c 6f 61 64 20 61 6e 64 20 2d 73 6f 75 72 {}......#.Handle.-load.and.-sour
416c0 63 65 20 73 70 65 63 73 0a 20 20 20 20 66 6f 72 65 61 63 68 20 6b 65 79 20 7b 6c 6f 61 64 20 73 ce.specs.....foreach.key.{load.s
416e0 6f 75 72 63 65 7d 20 7b 0a 09 66 6f 72 65 61 63 68 20 66 69 6c 65 73 70 65 63 20 24 6f 70 74 73 ource}.{..foreach.filespec.$opts
41700 28 2d 24 6b 65 79 29 20 7b 0a 09 20 20 20 20 66 6f 72 65 61 63 68 20 7b 66 69 6c 65 6e 61 6d 65 (-$key).{......foreach.{filename
41720 20 70 72 6f 63 6c 69 73 74 7d 20 7b 7b 7d 20 7b 7d 7d 20 7b 0a 09 09 62 72 65 61 6b 0a 09 20 20 .proclist}.{{}.{}}.{...break....
41740 20 20 7d 0a 09 20 20 20 20 66 6f 72 65 61 63 68 20 7b 66 69 6c 65 6e 61 6d 65 20 70 72 6f 63 6c ..}......foreach.{filename.procl
41760 69 73 74 7d 20 24 66 69 6c 65 73 70 65 63 20 7b 0a 09 09 62 72 65 61 6b 0a 09 20 20 20 20 7d 0a ist}.$filespec.{...break......}.
41780 09 20 20 20 20 0a 09 20 20 20 20 69 66 20 7b 20 5b 6c 6c 65 6e 67 74 68 20 24 70 72 6f 63 6c 69 ...........if.{.[llength.$procli
417a0 73 74 5d 20 3d 3d 20 30 20 7d 20 7b 0a 09 09 73 65 74 20 63 6d 64 20 22 5c 5b 6c 69 73 74 20 24 st].==.0.}.{...set.cmd."\[list.$
417c0 6b 65 79 20 5c 5b 66 69 6c 65 20 6a 6f 69 6e 20 5c 24 64 69 72 20 5b 6c 69 73 74 20 24 66 69 6c key.\[file.join.\$dir.[list.$fil
417e0 65 6e 61 6d 65 5d 5c 5d 5c 5d 22 0a 09 09 6c 61 70 70 65 6e 64 20 63 6d 64 4c 69 73 74 20 24 63 ename]\]\]"...lappend.cmdList.$c
41800 6d 64 0a 09 20 20 20 20 7d 20 65 6c 73 65 20 7b 0a 09 09 6c 61 70 70 65 6e 64 20 6c 61 7a 79 46 md......}.else.{...lappend.lazyF
41820 69 6c 65 4c 69 73 74 20 5b 6c 69 73 74 20 24 66 69 6c 65 6e 61 6d 65 20 24 6b 65 79 20 24 70 72 ileList.[list.$filename.$key.$pr
41840 6f 63 6c 69 73 74 5d 0a 09 20 20 20 20 7d 0a 09 7d 0a 20 20 20 20 7d 0a 0a 20 20 20 20 69 66 20 oclist]......}..}.....}......if.
41860 7b 20 5b 6c 6c 65 6e 67 74 68 20 24 6c 61 7a 79 46 69 6c 65 4c 69 73 74 5d 20 3e 20 30 20 7d 20 {.[llength.$lazyFileList].>.0.}.
41880 7b 0a 09 6c 61 70 70 65 6e 64 20 63 6d 64 4c 69 73 74 20 22 5c 5b 6c 69 73 74 20 74 63 6c 50 6b {..lappend.cmdList."\[list.tclPk
418a0 67 53 65 74 75 70 20 5c 24 64 69 72 20 24 6f 70 74 73 28 2d 6e 61 6d 65 29 5c 0a 09 09 24 6f 70 gSetup.\$dir.$opts(-name)\...$op
418c0 74 73 28 2d 76 65 72 73 69 6f 6e 29 20 5b 6c 69 73 74 20 24 6c 61 7a 79 46 69 6c 65 4c 69 73 74 ts(-version).[list.$lazyFileList
418e0 5d 5c 5d 22 0a 20 20 20 20 7d 0a 20 20 20 20 61 70 70 65 6e 64 20 63 6d 64 6c 69 6e 65 20 5b 6a ]\]".....}.....append.cmdline.[j
41900 6f 69 6e 20 24 63 6d 64 4c 69 73 74 20 22 5c 5c 6e 22 5d 0a 20 20 20 20 72 65 74 75 72 6e 20 24 oin.$cmdList."\\n"].....return.$
41920 63 6d 64 6c 69 6e 65 0a 7d 0a 0a 00 00 23 1d 23 20 68 69 73 74 6f 72 79 2e 74 63 6c 20 2d 2d 0a cmdline.}....#.#.history.tcl.--.
41940 23 0a 23 20 49 6d 70 6c 65 6d 65 6e 74 61 74 69 6f 6e 20 6f 66 20 74 68 65 20 68 69 73 74 6f 72 #.#.Implementation.of.the.histor
41960 79 20 63 6f 6d 6d 61 6e 64 2e 0a 23 0a 23 20 52 43 53 3a 20 40 28 23 29 20 24 49 64 3a 20 68 69 y.command..#.#.RCS:.@(#).$Id:.hi
41980 73 74 6f 72 79 2e 74 63 6c 2c 76 20 31 2e 33 20 31 39 39 38 2f 30 39 2f 31 34 20 31 38 3a 34 30 story.tcl,v.1.3.1998/09/14.18:40
419a0 3a 30 33 20 73 74 61 6e 74 6f 6e 20 45 78 70 20 24 0a 23 0a 23 20 43 6f 70 79 72 69 67 68 74 20 :03.stanton.Exp.$.#.#.Copyright.
419c0 28 63 29 20 31 39 39 37 20 53 75 6e 20 4d 69 63 72 6f 73 79 73 74 65 6d 73 2c 20 49 6e 63 2e 0a (c).1997.Sun.Microsystems,.Inc..
419e0 23 0a 23 20 53 65 65 20 74 68 65 20 66 69 6c 65 20 22 6c 69 63 65 6e 73 65 2e 74 65 72 6d 73 22 #.#.See.the.file."license.terms"
41a00 20 66 6f 72 20 69 6e 66 6f 72 6d 61 74 69 6f 6e 20 6f 6e 20 75 73 61 67 65 20 61 6e 64 20 72 65 .for.information.on.usage.and.re
41a20 64 69 73 74 72 69 62 75 74 69 6f 6e 0a 23 20 6f 66 20 74 68 69 73 20 66 69 6c 65 2c 20 61 6e 64 distribution.#.of.this.file,.and
41a40 20 66 6f 72 20 61 20 44 49 53 43 4c 41 49 4d 45 52 20 4f 46 20 41 4c 4c 20 57 41 52 52 41 4e 54 .for.a.DISCLAIMER.OF.ALL.WARRANT
41a60 49 45 53 2e 0a 23 0a 0a 23 20 54 68 65 20 74 63 6c 3a 3a 68 69 73 74 6f 72 79 20 61 72 72 61 79 IES..#..#.The.tcl::history.array
41a80 20 68 6f 6c 64 73 20 74 68 65 20 68 69 73 74 6f 72 79 20 6c 69 73 74 20 61 6e 64 0a 23 20 73 6f .holds.the.history.list.and.#.so
41aa0 6d 65 20 61 64 64 69 74 69 6f 6e 61 6c 20 62 6f 6f 6b 6b 65 65 70 69 6e 67 20 76 61 72 69 61 62 me.additional.bookkeeping.variab
41ac0 6c 65 73 2e 0a 23 0a 23 20 6e 65 78 74 69 64 09 74 68 65 20 69 6e 64 65 78 20 75 73 65 64 20 66 les..#.#.nextid.the.index.used.f
41ae0 6f 72 20 74 68 65 20 6e 65 78 74 20 68 69 73 74 6f 72 79 20 6c 69 73 74 20 69 74 65 6d 2e 0a 23 or.the.next.history.list.item..#
41b00 20 6b 65 65 70 09 09 74 68 65 20 6d 61 78 20 73 69 7a 65 20 6f 66 20 74 68 65 20 68 69 73 74 6f .keep..the.max.size.of.the.histo
41b20 72 79 20 6c 69 73 74 0a 23 20 6f 6c 64 65 73 74 09 74 68 65 20 69 6e 64 65 78 20 6f 66 20 74 68 ry.list.#.oldest.the.index.of.th
41b40 65 20 6f 6c 64 65 73 74 20 69 74 65 6d 20 69 6e 20 74 68 65 20 68 69 73 74 6f 72 79 2e 0a 0a 6e e.oldest.item.in.the.history...n
41b60 61 6d 65 73 70 61 63 65 20 65 76 61 6c 20 74 63 6c 20 7b 0a 20 20 20 20 76 61 72 69 61 62 6c 65 amespace.eval.tcl.{.....variable
41b80 20 68 69 73 74 6f 72 79 0a 20 20 20 20 69 66 20 7b 21 5b 69 6e 66 6f 20 65 78 69 73 74 73 20 68 .history.....if.{![info.exists.h
41ba0 69 73 74 6f 72 79 5d 7d 20 7b 0a 09 61 72 72 61 79 20 73 65 74 20 68 69 73 74 6f 72 79 20 7b 0a istory]}.{..array.set.history.{.
41bc0 09 20 20 20 20 6e 65 78 74 69 64 09 30 0a 09 20 20 20 20 6b 65 65 70 09 32 30 0a 09 20 20 20 20 .....nextid.0......keep.20......
41be0 6f 6c 64 65 73 74 09 2d 32 30 0a 09 7d 0a 20 20 20 20 7d 0a 7d 0a 0a 23 20 68 69 73 74 6f 72 79 oldest.-20..}.....}.}..#.history
41c00 20 2d 2d 0a 23 0a 23 09 54 68 69 73 20 69 73 20 74 68 65 20 6d 61 69 6e 20 68 69 73 74 6f 72 79 .--.#.#.This.is.the.main.history
41c20 20 63 6f 6d 6d 61 6e 64 2e 20 20 53 65 65 20 74 68 65 20 6d 61 6e 20 70 61 67 65 20 66 6f 72 20 .command...See.the.man.page.for.
41c40 69 74 73 20 69 6e 74 65 72 66 61 63 65 2e 0a 23 09 54 68 69 73 20 64 6f 65 73 20 61 72 67 75 6d its.interface..#.This.does.argum
41c60 65 6e 74 20 63 68 65 63 6b 69 6e 67 20 61 6e 64 20 63 61 6c 6c 73 20 68 65 6c 70 65 72 20 70 72 ent.checking.and.calls.helper.pr
41c80 6f 63 65 64 75 72 65 73 20 69 6e 20 74 68 65 0a 23 09 68 69 73 74 6f 72 79 20 6e 61 6d 65 73 70 ocedures.in.the.#.history.namesp
41ca0 61 63 65 2e 0a 0a 70 72 6f 63 20 68 69 73 74 6f 72 79 20 7b 61 72 67 73 7d 20 7b 0a 20 20 20 20 ace...proc.history.{args}.{.....
41cc0 73 65 74 20 6c 65 6e 20 5b 6c 6c 65 6e 67 74 68 20 24 61 72 67 73 5d 0a 20 20 20 20 69 66 20 7b set.len.[llength.$args].....if.{
41ce0 24 6c 65 6e 20 3d 3d 20 30 7d 20 7b 0a 09 72 65 74 75 72 6e 20 5b 74 63 6c 3a 3a 48 69 73 74 49 $len.==.0}.{..return.[tcl::HistI
41d00 6e 66 6f 5d 0a 20 20 20 20 7d 0a 20 20 20 20 73 65 74 20 6b 65 79 20 5b 6c 69 6e 64 65 78 20 24 nfo].....}.....set.key.[lindex.$
41d20 61 72 67 73 20 30 5d 0a 20 20 20 20 73 65 74 20 6f 70 74 69 6f 6e 73 20 22 61 64 64 2c 20 63 68 args.0].....set.options."add,.ch
41d40 61 6e 67 65 2c 20 63 6c 65 61 72 2c 20 65 76 65 6e 74 2c 20 69 6e 66 6f 2c 20 6b 65 65 70 2c 20 ange,.clear,.event,.info,.keep,.
41d60 6e 65 78 74 69 64 2c 20 6f 72 20 72 65 64 6f 22 0a 20 20 20 20 73 77 69 74 63 68 20 2d 67 6c 6f nextid,.or.redo".....switch.-glo
41d80 62 20 2d 2d 20 24 6b 65 79 20 7b 0a 09 61 2a 20 7b 20 23 20 68 69 73 74 6f 72 79 20 61 64 64 0a b.--.$key.{..a*.{.#.history.add.
41da0 0a 09 20 20 20 20 69 66 20 7b 24 6c 65 6e 20 3e 20 33 7d 20 7b 0a 09 09 72 65 74 75 72 6e 20 2d ......if.{$len.>.3}.{...return.-
41dc0 63 6f 64 65 20 65 72 72 6f 72 20 22 77 72 6f 6e 67 20 23 20 61 72 67 73 3a 20 73 68 6f 75 6c 64 code.error."wrong.#.args:.should
41de0 20 62 65 20 5c 22 68 69 73 74 6f 72 79 20 61 64 64 20 65 76 65 6e 74 20 3f 65 78 65 63 3f 5c 22 .be.\"history.add.event.?exec?\"
41e00 22 0a 09 20 20 20 20 7d 0a 09 20 20 20 20 69 66 20 7b 21 5b 73 74 72 69 6e 67 20 6d 61 74 63 68 "......}......if.{![string.match
41e20 20 24 6b 65 79 2a 20 61 64 64 5d 7d 20 7b 0a 09 09 72 65 74 75 72 6e 20 2d 63 6f 64 65 20 65 72 .$key*.add]}.{...return.-code.er
41e40 72 6f 72 20 22 62 61 64 20 6f 70 74 69 6f 6e 20 5c 22 24 6b 65 79 5c 22 3a 20 6d 75 73 74 20 62 ror."bad.option.\"$key\":.must.b
41e60 65 20 24 6f 70 74 69 6f 6e 73 22 0a 09 20 20 20 20 7d 0a 09 20 20 20 20 69 66 20 7b 24 6c 65 6e e.$options"......}......if.{$len
41e80 20 3d 3d 20 33 7d 20 7b 0a 09 09 73 65 74 20 61 72 67 20 5b 6c 69 6e 64 65 78 20 24 61 72 67 73 .==.3}.{...set.arg.[lindex.$args
41ea0 20 32 5d 0a 09 09 69 66 20 7b 21 20 28 5b 73 74 72 69 6e 67 20 6d 61 74 63 68 20 65 2a 20 24 61 .2]...if.{!.([string.match.e*.$a
41ec0 72 67 5d 20 26 26 20 5b 73 74 72 69 6e 67 20 6d 61 74 63 68 20 24 61 72 67 2a 20 65 78 65 63 5d rg].&&.[string.match.$arg*.exec]
41ee0 29 7d 20 7b 0a 09 09 20 20 20 20 72 65 74 75 72 6e 20 2d 63 6f 64 65 20 65 72 72 6f 72 20 22 62 )}.{.......return.-code.error."b
41f00 61 64 20 61 72 67 75 6d 65 6e 74 20 5c 22 24 61 72 67 5c 22 3a 20 73 68 6f 75 6c 64 20 62 65 20 ad.argument.\"$arg\":.should.be.
41f20 5c 22 65 78 65 63 5c 22 22 0a 09 09 7d 0a 09 20 20 20 20 7d 0a 09 20 20 20 20 72 65 74 75 72 6e \"exec\""...}......}......return
41f40 20 5b 74 63 6c 3a 3a 48 69 73 74 41 64 64 20 5b 6c 69 6e 64 65 78 20 24 61 72 67 73 20 31 5d 20 .[tcl::HistAdd.[lindex.$args.1].
41f60 5b 6c 69 6e 64 65 78 20 24 61 72 67 73 20 32 5d 5d 0a 09 7d 0a 09 63 68 2a 20 7b 20 23 20 68 69 [lindex.$args.2]]..}..ch*.{.#.hi
41f80 73 74 6f 72 79 20 63 68 61 6e 67 65 0a 0a 09 20 20 20 20 69 66 20 7b 28 24 6c 65 6e 20 3e 20 33 story.change.......if.{($len.>.3
41fa0 29 20 7c 7c 20 28 24 6c 65 6e 20 3c 20 32 29 7d 20 7b 0a 09 09 72 65 74 75 72 6e 20 2d 63 6f 64 ).||.($len.<.2)}.{...return.-cod
41fc0 65 20 65 72 72 6f 72 20 22 77 72 6f 6e 67 20 23 20 61 72 67 73 3a 20 73 68 6f 75 6c 64 20 62 65 e.error."wrong.#.args:.should.be
41fe0 20 5c 22 68 69 73 74 6f 72 79 20 63 68 61 6e 67 65 20 6e 65 77 56 61 6c 75 65 20 3f 65 76 65 6e .\"history.change.newValue.?even
42000 74 3f 5c 22 22 0a 09 20 20 20 20 7d 0a 09 20 20 20 20 69 66 20 7b 21 5b 73 74 72 69 6e 67 20 6d t?\""......}......if.{![string.m
42020 61 74 63 68 20 24 6b 65 79 2a 20 63 68 61 6e 67 65 5d 7d 20 7b 0a 09 09 72 65 74 75 72 6e 20 2d atch.$key*.change]}.{...return.-
42040 63 6f 64 65 20 65 72 72 6f 72 20 22 62 61 64 20 6f 70 74 69 6f 6e 20 5c 22 24 6b 65 79 5c 22 3a code.error."bad.option.\"$key\":
42060 20 6d 75 73 74 20 62 65 20 24 6f 70 74 69 6f 6e 73 22 0a 09 20 20 20 20 7d 0a 09 20 20 20 20 69 .must.be.$options"......}......i
42080 66 20 7b 24 6c 65 6e 20 3d 3d 20 32 7d 20 7b 0a 09 09 73 65 74 20 65 76 65 6e 74 20 30 0a 09 20 f.{$len.==.2}.{...set.event.0...
420a0 20 20 20 7d 20 65 6c 73 65 20 7b 0a 09 09 73 65 74 20 65 76 65 6e 74 20 5b 6c 69 6e 64 65 78 20 ...}.else.{...set.event.[lindex.
420c0 24 61 72 67 73 20 32 5d 0a 09 20 20 20 20 7d 0a 0a 09 20 20 20 20 72 65 74 75 72 6e 20 5b 74 63 $args.2]......}.......return.[tc
420e0 6c 3a 3a 48 69 73 74 43 68 61 6e 67 65 20 5b 6c 69 6e 64 65 78 20 24 61 72 67 73 20 31 5d 20 24 l::HistChange.[lindex.$args.1].$
42100 65 76 65 6e 74 5d 0a 09 7d 0a 09 63 6c 2a 20 7b 20 23 20 68 69 73 74 6f 72 79 20 63 6c 65 61 72 event]..}..cl*.{.#.history.clear
42120 0a 0a 09 20 20 20 20 69 66 20 7b 28 24 6c 65 6e 20 3e 20 31 29 7d 20 7b 0a 09 09 72 65 74 75 72 .......if.{($len.>.1)}.{...retur
42140 6e 20 2d 63 6f 64 65 20 65 72 72 6f 72 20 22 77 72 6f 6e 67 20 23 20 61 72 67 73 3a 20 73 68 6f n.-code.error."wrong.#.args:.sho
42160 75 6c 64 20 62 65 20 5c 22 68 69 73 74 6f 72 79 20 63 6c 65 61 72 5c 22 22 0a 09 20 20 20 20 7d uld.be.\"history.clear\""......}
42180 0a 09 20 20 20 20 69 66 20 7b 21 5b 73 74 72 69 6e 67 20 6d 61 74 63 68 20 24 6b 65 79 2a 20 63 ......if.{![string.match.$key*.c
421a0 6c 65 61 72 5d 7d 20 7b 0a 09 09 72 65 74 75 72 6e 20 2d 63 6f 64 65 20 65 72 72 6f 72 20 22 62 lear]}.{...return.-code.error."b
421c0 61 64 20 6f 70 74 69 6f 6e 20 5c 22 24 6b 65 79 5c 22 3a 20 6d 75 73 74 20 62 65 20 24 6f 70 74 ad.option.\"$key\":.must.be.$opt
421e0 69 6f 6e 73 22 0a 09 20 20 20 20 7d 0a 09 20 20 20 20 72 65 74 75 72 6e 20 5b 74 63 6c 3a 3a 48 ions"......}......return.[tcl::H
42200 69 73 74 43 6c 65 61 72 5d 0a 09 7d 0a 09 65 2a 20 7b 20 23 20 68 69 73 74 6f 72 79 20 65 76 65 istClear]..}..e*.{.#.history.eve
42220 6e 74 0a 0a 09 20 20 20 20 69 66 20 7b 24 6c 65 6e 20 3e 20 32 7d 20 7b 0a 09 09 72 65 74 75 72 nt.......if.{$len.>.2}.{...retur
42240 6e 20 2d 63 6f 64 65 20 65 72 72 6f 72 20 22 77 72 6f 6e 67 20 23 20 61 72 67 73 3a 20 73 68 6f n.-code.error."wrong.#.args:.sho
42260 75 6c 64 20 62 65 20 5c 22 68 69 73 74 6f 72 79 20 65 76 65 6e 74 20 3f 65 76 65 6e 74 3f 5c 22 uld.be.\"history.event.?event?\"
42280 22 0a 09 20 20 20 20 7d 0a 09 20 20 20 20 69 66 20 7b 21 5b 73 74 72 69 6e 67 20 6d 61 74 63 68 "......}......if.{![string.match
422a0 20 24 6b 65 79 2a 20 65 76 65 6e 74 5d 7d 20 7b 0a 09 09 72 65 74 75 72 6e 20 2d 63 6f 64 65 20 .$key*.event]}.{...return.-code.
422c0 65 72 72 6f 72 20 22 62 61 64 20 6f 70 74 69 6f 6e 20 5c 22 24 6b 65 79 5c 22 3a 20 6d 75 73 74 error."bad.option.\"$key\":.must
422e0 20 62 65 20 24 6f 70 74 69 6f 6e 73 22 0a 09 20 20 20 20 7d 0a 09 20 20 20 20 69 66 20 7b 24 6c .be.$options"......}......if.{$l
42300 65 6e 20 3d 3d 20 31 7d 20 7b 0a 09 09 73 65 74 20 65 76 65 6e 74 20 2d 31 0a 09 20 20 20 20 7d en.==.1}.{...set.event.-1......}
42320 20 65 6c 73 65 20 7b 0a 09 09 73 65 74 20 65 76 65 6e 74 20 5b 6c 69 6e 64 65 78 20 24 61 72 67 .else.{...set.event.[lindex.$arg
42340 73 20 31 5d 0a 09 20 20 20 20 7d 0a 09 20 20 20 20 72 65 74 75 72 6e 20 5b 74 63 6c 3a 3a 48 69 s.1]......}......return.[tcl::Hi
42360 73 74 45 76 65 6e 74 20 24 65 76 65 6e 74 5d 0a 09 7d 0a 09 69 2a 20 7b 20 23 20 68 69 73 74 6f stEvent.$event]..}..i*.{.#.histo
42380 72 79 20 69 6e 66 6f 0a 0a 09 20 20 20 20 69 66 20 7b 24 6c 65 6e 20 3e 20 32 7d 20 7b 0a 09 09 ry.info.......if.{$len.>.2}.{...
423a0 72 65 74 75 72 6e 20 2d 63 6f 64 65 20 65 72 72 6f 72 20 22 77 72 6f 6e 67 20 23 20 61 72 67 73 return.-code.error."wrong.#.args
423c0 3a 20 73 68 6f 75 6c 64 20 62 65 20 5c 22 68 69 73 74 6f 72 79 20 69 6e 66 6f 20 3f 63 6f 75 6e :.should.be.\"history.info.?coun
423e0 74 3f 5c 22 22 0a 09 20 20 20 20 7d 0a 09 20 20 20 20 69 66 20 7b 21 5b 73 74 72 69 6e 67 20 6d t?\""......}......if.{![string.m
42400 61 74 63 68 20 24 6b 65 79 2a 20 69 6e 66 6f 5d 7d 20 7b 0a 09 09 72 65 74 75 72 6e 20 2d 63 6f atch.$key*.info]}.{...return.-co
42420 64 65 20 65 72 72 6f 72 20 22 62 61 64 20 6f 70 74 69 6f 6e 20 5c 22 24 6b 65 79 5c 22 3a 20 6d de.error."bad.option.\"$key\":.m
42440 75 73 74 20 62 65 20 24 6f 70 74 69 6f 6e 73 22 0a 09 20 20 20 20 7d 0a 09 20 20 20 20 72 65 74 ust.be.$options"......}......ret
42460 75 72 6e 20 5b 74 63 6c 3a 3a 48 69 73 74 49 6e 66 6f 20 5b 6c 69 6e 64 65 78 20 24 61 72 67 73 urn.[tcl::HistInfo.[lindex.$args
42480 20 31 5d 5d 0a 09 7d 0a 09 6b 2a 20 7b 20 23 20 68 69 73 74 6f 72 79 20 6b 65 65 70 0a 0a 09 20 .1]]..}..k*.{.#.history.keep....
424a0 20 20 20 69 66 20 7b 24 6c 65 6e 20 3e 20 32 7d 20 7b 0a 09 09 72 65 74 75 72 6e 20 2d 63 6f 64 ...if.{$len.>.2}.{...return.-cod
424c0 65 20 65 72 72 6f 72 20 22 77 72 6f 6e 67 20 23 20 61 72 67 73 3a 20 73 68 6f 75 6c 64 20 62 65 e.error."wrong.#.args:.should.be
424e0 20 5c 22 68 69 73 74 6f 72 79 20 6b 65 65 70 20 3f 63 6f 75 6e 74 3f 5c 22 22 0a 09 20 20 20 20 .\"history.keep.?count?\""......
42500 7d 0a 09 20 20 20 20 69 66 20 7b 24 6c 65 6e 20 3d 3d 20 31 7d 20 7b 0a 09 09 72 65 74 75 72 6e }......if.{$len.==.1}.{...return
42520 20 5b 74 63 6c 3a 3a 48 69 73 74 4b 65 65 70 5d 0a 09 20 20 20 20 7d 20 65 6c 73 65 20 7b 0a 09 .[tcl::HistKeep]......}.else.{..
42540 09 73 65 74 20 6c 69 6d 69 74 20 5b 6c 69 6e 64 65 78 20 24 61 72 67 73 20 31 5d 0a 09 09 69 66 .set.limit.[lindex.$args.1]...if
42560 20 7b 5b 63 61 74 63 68 20 7b 65 78 70 72 20 7b 7e 24 6c 69 6d 69 74 7d 7d 5d 20 7c 7c 20 28 24 .{[catch.{expr.{~$limit}}].||.($
42580 6c 69 6d 69 74 20 3c 20 30 29 7d 20 7b 0a 09 09 20 20 20 20 72 65 74 75 72 6e 20 2d 63 6f 64 65 limit.<.0)}.{.......return.-code
425a0 20 65 72 72 6f 72 20 22 69 6c 6c 65 67 61 6c 20 6b 65 65 70 20 63 6f 75 6e 74 20 5c 22 24 6c 69 .error."illegal.keep.count.\"$li
425c0 6d 69 74 5c 22 22 0a 09 09 7d 0a 09 09 72 65 74 75 72 6e 20 5b 74 63 6c 3a 3a 48 69 73 74 4b 65 mit\""...}...return.[tcl::HistKe
425e0 65 70 20 24 6c 69 6d 69 74 5d 0a 09 20 20 20 20 7d 0a 09 7d 0a 09 6e 2a 20 7b 20 23 20 68 69 73 ep.$limit]......}..}..n*.{.#.his
42600 74 6f 72 79 20 6e 65 78 74 69 64 0a 0a 09 20 20 20 20 69 66 20 7b 24 6c 65 6e 20 3e 20 31 7d 20 tory.nextid.......if.{$len.>.1}.
42620 7b 0a 09 09 72 65 74 75 72 6e 20 2d 63 6f 64 65 20 65 72 72 6f 72 20 22 77 72 6f 6e 67 20 23 20 {...return.-code.error."wrong.#.
42640 61 72 67 73 3a 20 73 68 6f 75 6c 64 20 62 65 20 5c 22 68 69 73 74 6f 72 79 20 6e 65 78 74 69 64 args:.should.be.\"history.nextid
42660 5c 22 22 0a 09 20 20 20 20 7d 0a 09 20 20 20 20 69 66 20 7b 21 5b 73 74 72 69 6e 67 20 6d 61 74 \""......}......if.{![string.mat
42680 63 68 20 24 6b 65 79 2a 20 6e 65 78 74 69 64 5d 7d 20 7b 0a 09 09 72 65 74 75 72 6e 20 2d 63 6f ch.$key*.nextid]}.{...return.-co
426a0 64 65 20 65 72 72 6f 72 20 22 62 61 64 20 6f 70 74 69 6f 6e 20 5c 22 24 6b 65 79 5c 22 3a 20 6d de.error."bad.option.\"$key\":.m
426c0 75 73 74 20 62 65 20 24 6f 70 74 69 6f 6e 73 22 0a 09 20 20 20 20 7d 0a 09 20 20 20 20 72 65 74 ust.be.$options"......}......ret
426e0 75 72 6e 20 5b 65 78 70 72 20 7b 24 74 63 6c 3a 3a 68 69 73 74 6f 72 79 28 6e 65 78 74 69 64 29 urn.[expr.{$tcl::history(nextid)
42700 20 2b 20 31 7d 5d 0a 09 7d 0a 09 72 2a 20 7b 20 23 20 68 69 73 74 6f 72 79 20 72 65 64 6f 0a 0a .+.1}]..}..r*.{.#.history.redo..
42720 09 20 20 20 20 69 66 20 7b 24 6c 65 6e 20 3e 20 32 7d 20 7b 0a 09 09 72 65 74 75 72 6e 20 2d 63 .....if.{$len.>.2}.{...return.-c
42740 6f 64 65 20 65 72 72 6f 72 20 22 77 72 6f 6e 67 20 23 20 61 72 67 73 3a 20 73 68 6f 75 6c 64 20 ode.error."wrong.#.args:.should.
42760 62 65 20 5c 22 68 69 73 74 6f 72 79 20 72 65 64 6f 20 3f 65 76 65 6e 74 3f 5c 22 22 0a 09 20 20 be.\"history.redo.?event?\""....
42780 20 20 7d 0a 09 20 20 20 20 69 66 20 7b 21 5b 73 74 72 69 6e 67 20 6d 61 74 63 68 20 24 6b 65 79 ..}......if.{![string.match.$key
427a0 2a 20 72 65 64 6f 5d 7d 20 7b 0a 09 09 72 65 74 75 72 6e 20 2d 63 6f 64 65 20 65 72 72 6f 72 20 *.redo]}.{...return.-code.error.
427c0 22 62 61 64 20 6f 70 74 69 6f 6e 20 5c 22 24 6b 65 79 5c 22 3a 20 6d 75 73 74 20 62 65 20 24 6f "bad.option.\"$key\":.must.be.$o
427e0 70 74 69 6f 6e 73 22 0a 09 20 20 20 20 7d 0a 09 20 20 20 20 72 65 74 75 72 6e 20 5b 74 63 6c 3a ptions"......}......return.[tcl:
42800 3a 48 69 73 74 52 65 64 6f 20 5b 6c 69 6e 64 65 78 20 24 61 72 67 73 20 31 5d 5d 0a 09 7d 0a 09 :HistRedo.[lindex.$args.1]]..}..
42820 64 65 66 61 75 6c 74 20 7b 0a 09 20 20 20 20 72 65 74 75 72 6e 20 2d 63 6f 64 65 20 65 72 72 6f default.{......return.-code.erro
42840 72 20 22 62 61 64 20 6f 70 74 69 6f 6e 20 5c 22 24 6b 65 79 5c 22 3a 20 6d 75 73 74 20 62 65 20 r."bad.option.\"$key\":.must.be.
42860 24 6f 70 74 69 6f 6e 73 22 0a 09 7d 0a 20 20 20 20 7d 0a 7d 0a 0a 23 20 74 63 6c 3a 3a 48 69 73 $options"..}.....}.}..#.tcl::His
42880 74 41 64 64 20 2d 2d 0a 23 0a 23 09 41 64 64 20 61 6e 20 69 74 65 6d 20 74 6f 20 74 68 65 20 68 tAdd.--.#.#.Add.an.item.to.the.h
428a0 69 73 74 6f 72 79 2c 20 61 6e 64 20 6f 70 74 69 6f 6e 61 6c 6c 79 20 65 76 61 6c 20 69 74 20 61 istory,.and.optionally.eval.it.a
428c0 74 20 74 68 65 20 67 6c 6f 62 61 6c 20 73 63 6f 70 65 0a 23 0a 23 20 50 61 72 61 6d 65 74 65 72 t.the.global.scope.#.#.Parameter
428e0 73 3a 0a 23 09 63 6f 6d 6d 61 6e 64 09 09 74 68 65 20 63 6f 6d 6d 61 6e 64 20 74 6f 20 61 64 64 s:.#.command..the.command.to.add
42900 0a 23 09 65 78 65 63 09 09 28 6f 70 74 69 6f 6e 61 6c 29 20 61 20 73 75 62 73 74 72 69 6e 67 20 .#.exec..(optional).a.substring.
42920 6f 66 20 22 65 78 65 63 22 20 63 61 75 73 65 73 20 74 68 65 0a 23 09 09 09 63 6f 6d 6d 61 6e 64 of."exec".causes.the.#...command
42940 20 74 6f 20 62 65 20 65 76 61 6c 65 64 2e 0a 23 20 52 65 73 75 6c 74 73 3a 0a 23 20 09 49 66 20 .to.be.evaled..#.Results:.#..If.
42960 65 78 65 63 75 74 69 6e 67 2c 20 74 68 65 6e 20 74 68 65 20 72 65 73 75 6c 74 73 20 6f 66 20 74 executing,.then.the.results.of.t
42980 68 65 20 63 6f 6d 6d 61 6e 64 20 61 72 65 20 72 65 74 75 72 6e 65 64 0a 23 0a 23 20 53 69 64 65 he.command.are.returned.#.#.Side
429a0 20 45 66 66 65 63 74 73 3a 0a 23 09 41 64 64 73 20 74 6f 20 74 68 65 20 68 69 73 74 6f 72 79 20 .Effects:.#.Adds.to.the.history.
429c0 6c 69 73 74 0a 0a 20 70 72 6f 63 20 74 63 6c 3a 3a 48 69 73 74 41 64 64 20 7b 63 6f 6d 6d 61 6e list...proc.tcl::HistAdd.{comman
429e0 64 20 7b 65 78 65 63 20 7b 7d 7d 7d 20 7b 0a 20 20 20 20 76 61 72 69 61 62 6c 65 20 68 69 73 74 d.{exec.{}}}.{.....variable.hist
42a00 6f 72 79 0a 20 20 20 20 73 65 74 20 69 20 5b 69 6e 63 72 20 68 69 73 74 6f 72 79 28 6e 65 78 74 ory.....set.i.[incr.history(next
42a20 69 64 29 5d 0a 20 20 20 20 73 65 74 20 68 69 73 74 6f 72 79 28 24 69 29 20 24 63 6f 6d 6d 61 6e id)].....set.history($i).$comman
42a40 64 0a 20 20 20 20 73 65 74 20 6a 20 5b 69 6e 63 72 20 68 69 73 74 6f 72 79 28 6f 6c 64 65 73 74 d.....set.j.[incr.history(oldest
42a60 29 5d 0a 20 20 20 20 69 66 20 7b 5b 69 6e 66 6f 20 65 78 69 73 74 73 20 68 69 73 74 6f 72 79 28 )].....if.{[info.exists.history(
42a80 24 6a 29 5d 7d 20 7b 75 6e 73 65 74 20 68 69 73 74 6f 72 79 28 24 6a 29 7d 0a 20 20 20 20 69 66 $j)]}.{unset.history($j)}.....if
42aa0 20 7b 5b 73 74 72 69 6e 67 20 6d 61 74 63 68 20 65 2a 20 24 65 78 65 63 5d 7d 20 7b 0a 09 72 65 .{[string.match.e*.$exec]}.{..re
42ac0 74 75 72 6e 20 5b 75 70 6c 65 76 65 6c 20 23 30 20 24 63 6f 6d 6d 61 6e 64 5d 0a 20 20 20 20 7d turn.[uplevel.#0.$command].....}
42ae0 20 65 6c 73 65 20 7b 0a 09 72 65 74 75 72 6e 20 7b 7d 0a 20 20 20 20 7d 0a 7d 0a 0a 23 20 74 63 .else.{..return.{}.....}.}..#.tc
42b00 6c 3a 3a 48 69 73 74 4b 65 65 70 20 2d 2d 0a 23 0a 23 09 53 65 74 20 6f 72 20 71 75 65 72 79 20 l::HistKeep.--.#.#.Set.or.query.
42b20 74 68 65 20 6c 69 6d 69 74 20 6f 6e 20 74 68 65 20 6c 65 6e 67 74 68 20 6f 66 20 74 68 65 20 68 the.limit.on.the.length.of.the.h
42b40 69 73 74 6f 72 79 20 6c 69 73 74 0a 23 0a 23 20 50 61 72 61 6d 65 74 65 72 73 3a 0a 23 09 6c 69 istory.list.#.#.Parameters:.#.li
42b60 6d 69 74 09 28 6f 70 74 69 6f 6e 61 6c 29 20 74 68 65 20 6c 65 6e 67 74 68 20 6f 66 20 74 68 65 mit.(optional).the.length.of.the
42b80 20 68 69 73 74 6f 72 79 20 6c 69 73 74 0a 23 0a 23 20 52 65 73 75 6c 74 73 3a 0a 23 09 49 66 20 .history.list.#.#.Results:.#.If.
42ba0 6e 6f 20 6c 69 6d 69 74 20 69 73 20 73 70 65 63 69 66 69 65 64 2c 20 74 68 65 20 63 75 72 72 65 no.limit.is.specified,.the.curre
42bc0 6e 74 20 6c 69 6d 69 74 20 69 73 20 72 65 74 75 72 6e 65 64 0a 23 0a 23 20 53 69 64 65 20 45 66 nt.limit.is.returned.#.#.Side.Ef
42be0 66 65 63 74 73 3a 0a 23 09 55 70 64 61 74 65 73 20 68 69 73 74 6f 72 79 28 6b 65 65 70 29 20 69 fects:.#.Updates.history(keep).i
42c00 66 20 61 20 6c 69 6d 69 74 20 69 73 20 73 70 65 63 69 66 69 65 64 0a 0a 20 70 72 6f 63 20 74 63 f.a.limit.is.specified...proc.tc
42c20 6c 3a 3a 48 69 73 74 4b 65 65 70 20 7b 7b 6c 69 6d 69 74 20 7b 7d 7d 7d 20 7b 0a 20 20 20 20 76 l::HistKeep.{{limit.{}}}.{.....v
42c40 61 72 69 61 62 6c 65 20 68 69 73 74 6f 72 79 0a 20 20 20 20 69 66 20 7b 5b 73 74 72 69 6e 67 20 ariable.history.....if.{[string.
42c60 6c 65 6e 67 74 68 20 24 6c 69 6d 69 74 5d 20 3d 3d 20 30 7d 20 7b 0a 09 72 65 74 75 72 6e 20 24 length.$limit].==.0}.{..return.$
42c80 68 69 73 74 6f 72 79 28 6b 65 65 70 29 0a 20 20 20 20 7d 20 65 6c 73 65 20 7b 0a 09 73 65 74 20 history(keep).....}.else.{..set.
42ca0 6f 6c 64 6f 6c 64 20 24 68 69 73 74 6f 72 79 28 6f 6c 64 65 73 74 29 0a 09 73 65 74 20 68 69 73 oldold.$history(oldest)..set.his
42cc0 74 6f 72 79 28 6f 6c 64 65 73 74 29 20 5b 65 78 70 72 20 7b 24 68 69 73 74 6f 72 79 28 6e 65 78 tory(oldest).[expr.{$history(nex
42ce0 74 69 64 29 20 2d 20 24 6c 69 6d 69 74 7d 5d 0a 09 66 6f 72 20 7b 7d 20 7b 24 6f 6c 64 6f 6c 64 tid).-.$limit}]..for.{}.{$oldold
42d00 20 3c 3d 20 24 68 69 73 74 6f 72 79 28 6f 6c 64 65 73 74 29 7d 20 7b 69 6e 63 72 20 6f 6c 64 6f .<=.$history(oldest)}.{incr.oldo
42d20 6c 64 7d 20 7b 0a 09 20 20 20 20 69 66 20 7b 5b 69 6e 66 6f 20 65 78 69 73 74 73 20 68 69 73 74 ld}.{......if.{[info.exists.hist
42d40 6f 72 79 28 24 6f 6c 64 6f 6c 64 29 5d 7d 20 7b 75 6e 73 65 74 20 68 69 73 74 6f 72 79 28 24 6f ory($oldold)]}.{unset.history($o
42d60 6c 64 6f 6c 64 29 7d 0a 09 7d 0a 09 73 65 74 20 68 69 73 74 6f 72 79 28 6b 65 65 70 29 20 24 6c ldold)}..}..set.history(keep).$l
42d80 69 6d 69 74 0a 20 20 20 20 7d 0a 7d 0a 0a 23 20 74 63 6c 3a 3a 48 69 73 74 43 6c 65 61 72 20 2d imit.....}.}..#.tcl::HistClear.-
42da0 2d 0a 23 0a 23 09 45 72 61 73 65 20 74 68 65 20 68 69 73 74 6f 72 79 20 6c 69 73 74 0a 23 0a 23 -.#.#.Erase.the.history.list.#.#
42dc0 20 50 61 72 61 6d 65 74 65 72 73 3a 0a 23 09 6e 6f 6e 65 0a 23 0a 23 20 52 65 73 75 6c 74 73 3a .Parameters:.#.none.#.#.Results:
42de0 0a 23 09 6e 6f 6e 65 0a 23 0a 23 20 53 69 64 65 20 45 66 66 65 63 74 73 3a 0a 23 09 52 65 73 65 .#.none.#.#.Side.Effects:.#.Rese
42e00 74 73 20 74 68 65 20 68 69 73 74 6f 72 79 20 61 72 72 61 79 2c 20 65 78 63 65 70 74 20 66 6f 72 ts.the.history.array,.except.for
42e20 20 74 68 65 20 6b 65 65 70 20 6c 69 6d 69 74 0a 0a 20 70 72 6f 63 20 74 63 6c 3a 3a 48 69 73 74 .the.keep.limit...proc.tcl::Hist
42e40 43 6c 65 61 72 20 7b 7d 20 7b 0a 20 20 20 20 76 61 72 69 61 62 6c 65 20 68 69 73 74 6f 72 79 0a Clear.{}.{.....variable.history.
42e60 20 20 20 20 73 65 74 20 6b 65 65 70 20 24 68 69 73 74 6f 72 79 28 6b 65 65 70 29 0a 20 20 20 20 ....set.keep.$history(keep).....
42e80 75 6e 73 65 74 20 68 69 73 74 6f 72 79 0a 20 20 20 20 61 72 72 61 79 20 73 65 74 20 68 69 73 74 unset.history.....array.set.hist
42ea0 6f 72 79 20 5b 6c 69 73 74 20 5c 0a 09 6e 65 78 74 69 64 09 30 09 5c 0a 09 6b 65 65 70 09 24 6b ory.[list.\..nextid.0.\..keep.$k
42ec0 65 65 70 09 5c 0a 09 6f 6c 64 65 73 74 09 2d 24 6b 65 65 70 09 5c 0a 20 20 20 20 5d 0a 7d 0a 0a eep.\..oldest.-$keep.\.....].}..
42ee0 23 20 74 63 6c 3a 3a 48 69 73 74 49 6e 66 6f 20 2d 2d 0a 23 0a 23 09 52 65 74 75 72 6e 20 61 20 #.tcl::HistInfo.--.#.#.Return.a.
42f00 70 72 65 74 74 79 2d 70 72 69 6e 74 65 64 20 76 65 72 73 69 6f 6e 20 6f 66 20 74 68 65 20 68 69 pretty-printed.version.of.the.hi
42f20 73 74 6f 72 79 20 6c 69 73 74 0a 23 0a 23 20 50 61 72 61 6d 65 74 65 72 73 3a 0a 23 09 6e 75 6d story.list.#.#.Parameters:.#.num
42f40 09 28 6f 70 74 69 6f 6e 61 6c 29 20 74 68 65 20 6c 65 6e 67 74 68 20 6f 66 20 74 68 65 20 68 69 .(optional).the.length.of.the.hi
42f60 73 74 6f 72 79 20 6c 69 73 74 20 74 6f 20 72 65 74 75 72 6e 0a 23 0a 23 20 52 65 73 75 6c 74 73 story.list.to.return.#.#.Results
42f80 3a 0a 23 09 41 20 66 6f 72 6d 61 74 74 65 64 20 68 69 73 74 6f 72 79 20 6c 69 73 74 0a 0a 20 70 :.#.A.formatted.history.list...p
42fa0 72 6f 63 20 74 63 6c 3a 3a 48 69 73 74 49 6e 66 6f 20 7b 7b 6e 75 6d 20 7b 7d 7d 7d 20 7b 0a 20 roc.tcl::HistInfo.{{num.{}}}.{..
42fc0 20 20 20 76 61 72 69 61 62 6c 65 20 68 69 73 74 6f 72 79 0a 20 20 20 20 69 66 20 7b 24 6e 75 6d ...variable.history.....if.{$num
42fe0 20 3d 3d 20 7b 7d 7d 20 7b 0a 09 73 65 74 20 6e 75 6d 20 5b 65 78 70 72 20 7b 24 68 69 73 74 6f .==.{}}.{..set.num.[expr.{$histo
43000 72 79 28 6b 65 65 70 29 20 2b 20 31 7d 5d 0a 20 20 20 20 7d 0a 20 20 20 20 73 65 74 20 72 65 73 ry(keep).+.1}].....}.....set.res
43020 75 6c 74 20 7b 7d 0a 20 20 20 20 73 65 74 20 6e 65 77 6c 69 6e 65 20 22 22 0a 20 20 20 20 66 6f ult.{}.....set.newline."".....fo
43040 72 20 7b 73 65 74 20 69 20 5b 65 78 70 72 20 7b 24 68 69 73 74 6f 72 79 28 6e 65 78 74 69 64 29 r.{set.i.[expr.{$history(nextid)
43060 20 2d 20 24 6e 75 6d 20 2b 20 31 7d 5d 7d 20 5c 0a 09 20 20 20 20 7b 24 69 20 3c 3d 20 24 68 69 .-.$num.+.1}]}.\......{$i.<=.$hi
43080 73 74 6f 72 79 28 6e 65 78 74 69 64 29 7d 20 7b 69 6e 63 72 20 69 7d 20 7b 0a 09 69 66 20 7b 21 story(nextid)}.{incr.i}.{..if.{!
430a0 5b 69 6e 66 6f 20 65 78 69 73 74 73 20 68 69 73 74 6f 72 79 28 24 69 29 5d 7d 20 7b 0a 09 20 20 [info.exists.history($i)]}.{....
430c0 20 20 63 6f 6e 74 69 6e 75 65 0a 09 7d 0a 09 73 65 74 20 63 6d 64 20 5b 73 74 72 69 6e 67 20 74 ..continue..}..set.cmd.[string.t
430e0 72 69 6d 72 69 67 68 74 20 24 68 69 73 74 6f 72 79 28 24 69 29 20 5c 20 5c 6e 5d 0a 09 72 65 67 rimright.$history($i).\.\n]..reg
43100 73 75 62 20 2d 61 6c 6c 20 5c 6e 20 24 63 6d 64 20 22 5c 6e 5c 74 22 20 63 6d 64 0a 09 61 70 70 sub.-all.\n.$cmd."\n\t".cmd..app
43120 65 6e 64 20 72 65 73 75 6c 74 20 24 6e 65 77 6c 69 6e 65 5b 66 6f 72 6d 61 74 20 22 25 36 64 20 end.result.$newline[format."%6d.
43140 20 25 73 22 20 24 69 20 24 63 6d 64 5d 0a 09 73 65 74 20 6e 65 77 6c 69 6e 65 20 5c 6e 0a 20 20 .%s".$i.$cmd]..set.newline.\n...
43160 20 20 7d 0a 20 20 20 20 72 65 74 75 72 6e 20 24 72 65 73 75 6c 74 0a 7d 0a 0a 23 20 74 63 6c 3a ..}.....return.$result.}..#.tcl:
43180 3a 48 69 73 74 52 65 64 6f 20 2d 2d 0a 23 0a 23 09 46 65 74 63 68 20 74 68 65 20 70 72 65 76 69 :HistRedo.--.#.#.Fetch.the.previ
431a0 6f 75 73 20 6f 72 20 73 70 65 63 69 66 69 65 64 20 65 76 65 6e 74 2c 20 65 78 65 63 75 74 65 20 ous.or.specified.event,.execute.
431c0 69 74 2c 20 61 6e 64 20 74 68 65 6e 0a 23 09 72 65 70 6c 61 63 65 20 74 68 65 20 63 75 72 72 65 it,.and.then.#.replace.the.curre
431e0 6e 74 20 68 69 73 74 6f 72 79 20 69 74 65 6d 20 77 69 74 68 20 74 68 61 74 20 65 76 65 6e 74 2e nt.history.item.with.that.event.
43200 0a 23 0a 23 20 50 61 72 61 6d 65 74 65 72 73 3a 0a 23 09 65 76 65 6e 74 09 28 6f 70 74 69 6f 6e .#.#.Parameters:.#.event.(option
43220 61 6c 29 20 69 6e 64 65 78 20 6f 66 20 68 69 73 74 6f 72 79 20 69 74 65 6d 20 74 6f 20 72 65 64 al).index.of.history.item.to.red
43240 6f 2e 20 20 44 65 66 61 75 6c 74 73 20 74 6f 20 2d 31 2c 0a 23 09 09 77 68 69 63 68 20 6d 65 61 o...Defaults.to.-1,.#..which.mea
43260 6e 73 20 74 68 65 20 70 72 65 76 69 6f 75 73 20 65 76 65 6e 74 2e 0a 23 0a 23 20 52 65 73 75 6c ns.the.previous.event..#.#.Resul
43280 74 73 3a 0a 23 09 54 68 6f 73 65 20 6f 66 20 74 68 65 20 63 6f 6d 6d 61 6e 64 20 62 65 69 6e 67 ts:.#.Those.of.the.command.being
432a0 20 72 65 64 6f 6e 65 2e 0a 23 0a 23 20 53 69 64 65 20 45 66 66 65 63 74 73 3a 0a 23 09 52 65 70 .redone..#.#.Side.Effects:.#.Rep
432c0 6c 61 63 65 73 20 74 68 65 20 63 75 72 72 65 6e 74 20 68 69 73 74 6f 72 79 20 6c 69 73 74 20 69 laces.the.current.history.list.i
432e0 74 65 6d 20 77 69 74 68 20 74 68 65 20 6f 6e 65 20 62 65 69 6e 67 20 72 65 64 6f 6e 65 2e 0a 0a tem.with.the.one.being.redone...
43300 20 70 72 6f 63 20 74 63 6c 3a 3a 48 69 73 74 52 65 64 6f 20 7b 7b 65 76 65 6e 74 20 2d 31 7d 7d .proc.tcl::HistRedo.{{event.-1}}
43320 20 7b 0a 20 20 20 20 76 61 72 69 61 62 6c 65 20 68 69 73 74 6f 72 79 0a 20 20 20 20 69 66 20 7b .{.....variable.history.....if.{
43340 5b 73 74 72 69 6e 67 20 6c 65 6e 67 74 68 20 24 65 76 65 6e 74 5d 20 3d 3d 20 30 7d 20 7b 0a 09 [string.length.$event].==.0}.{..
43360 73 65 74 20 65 76 65 6e 74 20 2d 31 0a 20 20 20 20 7d 0a 20 20 20 20 73 65 74 20 69 20 5b 48 69 set.event.-1.....}.....set.i.[Hi
43380 73 74 49 6e 64 65 78 20 24 65 76 65 6e 74 5d 0a 20 20 20 20 69 66 20 7b 24 69 20 3d 3d 20 24 68 stIndex.$event].....if.{$i.==.$h
433a0 69 73 74 6f 72 79 28 6e 65 78 74 69 64 29 7d 20 7b 0a 09 72 65 74 75 72 6e 20 2d 63 6f 64 65 20 istory(nextid)}.{..return.-code.
433c0 65 72 72 6f 72 20 22 63 61 6e 6e 6f 74 20 72 65 64 6f 20 74 68 65 20 63 75 72 72 65 6e 74 20 65 error."cannot.redo.the.current.e
433e0 76 65 6e 74 22 0a 20 20 20 20 7d 0a 20 20 20 20 73 65 74 20 63 6d 64 20 24 68 69 73 74 6f 72 79 vent".....}.....set.cmd.$history
43400 28 24 69 29 0a 20 20 20 20 48 69 73 74 43 68 61 6e 67 65 20 24 63 6d 64 20 30 0a 20 20 20 20 75 ($i).....HistChange.$cmd.0.....u
43420 70 6c 65 76 65 6c 20 23 30 20 24 63 6d 64 0a 7d 0a 0a 23 20 74 63 6c 3a 3a 48 69 73 74 49 6e 64 plevel.#0.$cmd.}..#.tcl::HistInd
43440 65 78 20 2d 2d 0a 23 0a 23 09 4d 61 70 20 66 72 6f 6d 20 61 6e 20 65 76 65 6e 74 20 73 70 65 63 ex.--.#.#.Map.from.an.event.spec
43460 69 66 69 65 72 20 74 6f 20 61 6e 20 69 6e 64 65 78 20 69 6e 20 74 68 65 20 68 69 73 74 6f 72 79 ifier.to.an.index.in.the.history
43480 20 6c 69 73 74 2e 0a 23 0a 23 20 50 61 72 61 6d 65 74 65 72 73 3a 0a 23 09 65 76 65 6e 74 09 69 .list..#.#.Parameters:.#.event.i
434a0 6e 64 65 78 20 6f 66 20 68 69 73 74 6f 72 79 20 69 74 65 6d 20 74 6f 20 72 65 64 6f 2e 0a 23 09 ndex.of.history.item.to.redo..#.
434c0 09 49 66 20 74 68 69 73 20 69 73 20 61 20 70 6f 73 69 74 69 76 65 20 6e 75 6d 62 65 72 2c 20 69 .If.this.is.a.positive.number,.i
434e0 74 20 69 73 20 75 73 65 64 20 64 69 72 65 63 74 6c 79 2e 0a 23 09 09 49 66 20 69 74 20 69 73 20 t.is.used.directly..#..If.it.is.
43500 61 20 6e 65 67 61 74 69 76 65 20 6e 75 6d 62 65 72 2c 20 74 68 65 6e 20 69 74 20 63 6f 75 6e 74 a.negative.number,.then.it.count
43520 73 20 62 61 63 6b 20 74 6f 20 61 20 70 72 65 76 69 6f 75 73 0a 23 09 09 65 76 65 6e 74 2c 20 77 s.back.to.a.previous.#..event,.w
43540 68 65 72 65 20 2d 31 20 69 73 20 74 68 65 20 6d 6f 73 74 20 72 65 63 65 6e 74 20 65 76 65 6e 74 here.-1.is.the.most.recent.event
43560 2e 0a 23 09 09 41 20 73 74 72 69 6e 67 20 63 61 6e 20 62 65 20 6d 61 74 63 68 65 64 2c 20 65 69 ..#..A.string.can.be.matched,.ei
43580 74 68 65 72 20 62 79 20 62 65 69 6e 67 20 74 68 65 20 70 72 65 66 69 78 20 6f 66 0a 23 09 09 61 ther.by.being.the.prefix.of.#..a
435a0 20 63 6f 6d 6d 61 6e 64 20 6f 72 20 62 79 20 6d 61 74 63 68 69 6e 67 20 61 20 63 6f 6d 6d 61 6e .command.or.by.matching.a.comman
435c0 64 20 77 69 74 68 20 73 74 72 69 6e 67 20 6d 61 74 63 68 2e 0a 23 0a 23 20 52 65 73 75 6c 74 73 d.with.string.match..#.#.Results
435e0 3a 0a 23 09 54 68 65 20 69 6e 64 65 78 20 69 6e 74 6f 20 68 69 73 74 6f 72 79 2c 20 6f 72 20 61 :.#.The.index.into.history,.or.a
43600 6e 20 65 72 72 6f 72 20 69 66 20 74 68 65 20 69 6e 64 65 78 20 64 69 64 6e 27 74 20 6d 61 74 63 n.error.if.the.index.didn't.matc
43620 68 2e 0a 0a 20 70 72 6f 63 20 74 63 6c 3a 3a 48 69 73 74 49 6e 64 65 78 20 7b 65 76 65 6e 74 7d h....proc.tcl::HistIndex.{event}
43640 20 7b 0a 20 20 20 20 76 61 72 69 61 62 6c 65 20 68 69 73 74 6f 72 79 0a 20 20 20 20 69 66 20 7b .{.....variable.history.....if.{
43660 5b 63 61 74 63 68 20 7b 65 78 70 72 20 7b 7e 24 65 76 65 6e 74 7d 7d 5d 7d 20 7b 0a 09 66 6f 72 [catch.{expr.{~$event}}]}.{..for
43680 20 7b 73 65 74 20 69 20 24 68 69 73 74 6f 72 79 28 6e 65 78 74 69 64 29 7d 20 7b 5b 69 6e 66 6f .{set.i.$history(nextid)}.{[info
436a0 20 65 78 69 73 74 73 20 68 69 73 74 6f 72 79 28 24 69 29 5d 7d 20 7b 69 6e 63 72 20 69 20 2d 31 .exists.history($i)]}.{incr.i.-1
436c0 7d 20 7b 0a 09 20 20 20 20 69 66 20 7b 5b 73 74 72 69 6e 67 20 6d 61 74 63 68 20 24 65 76 65 6e }.{......if.{[string.match.$even
436e0 74 2a 20 24 68 69 73 74 6f 72 79 28 24 69 29 5d 7d 20 7b 0a 09 09 72 65 74 75 72 6e 20 24 69 3b t*.$history($i)]}.{...return.$i;
43700 0a 09 20 20 20 20 7d 0a 09 20 20 20 20 69 66 20 7b 5b 73 74 72 69 6e 67 20 6d 61 74 63 68 20 24 ......}......if.{[string.match.$
43720 65 76 65 6e 74 20 24 68 69 73 74 6f 72 79 28 24 69 29 5d 7d 20 7b 0a 09 09 72 65 74 75 72 6e 20 event.$history($i)]}.{...return.
43740 24 69 3b 0a 09 20 20 20 20 7d 0a 09 7d 0a 09 72 65 74 75 72 6e 20 2d 63 6f 64 65 20 65 72 72 6f $i;......}..}..return.-code.erro
43760 72 20 22 6e 6f 20 65 76 65 6e 74 20 6d 61 74 63 68 65 73 20 5c 22 24 65 76 65 6e 74 5c 22 22 0a r."no.event.matches.\"$event\"".
43780 20 20 20 20 7d 20 65 6c 73 65 69 66 20 7b 24 65 76 65 6e 74 20 3c 3d 20 30 7d 20 7b 0a 09 73 65 ....}.elseif.{$event.<=.0}.{..se
437a0 74 20 69 20 5b 65 78 70 72 20 7b 24 68 69 73 74 6f 72 79 28 6e 65 78 74 69 64 29 20 2b 20 24 65 t.i.[expr.{$history(nextid).+.$e
437c0 76 65 6e 74 7d 5d 0a 20 20 20 20 7d 20 65 6c 73 65 20 7b 0a 09 73 65 74 20 69 20 24 65 76 65 6e vent}].....}.else.{..set.i.$even
437e0 74 0a 20 20 20 20 7d 0a 20 20 20 20 69 66 20 7b 24 69 20 3c 3d 20 24 68 69 73 74 6f 72 79 28 6f t.....}.....if.{$i.<=.$history(o
43800 6c 64 65 73 74 29 7d 20 7b 0a 09 72 65 74 75 72 6e 20 2d 63 6f 64 65 20 65 72 72 6f 72 20 22 65 ldest)}.{..return.-code.error."e
43820 76 65 6e 74 20 5c 22 24 65 76 65 6e 74 5c 22 20 69 73 20 74 6f 6f 20 66 61 72 20 69 6e 20 74 68 vent.\"$event\".is.too.far.in.th
43840 65 20 70 61 73 74 22 0a 20 20 20 20 7d 0a 20 20 20 20 69 66 20 7b 24 69 20 3e 20 24 68 69 73 74 e.past".....}.....if.{$i.>.$hist
43860 6f 72 79 28 6e 65 78 74 69 64 29 7d 20 7b 0a 09 72 65 74 75 72 6e 20 2d 63 6f 64 65 20 65 72 72 ory(nextid)}.{..return.-code.err
43880 6f 72 20 22 65 76 65 6e 74 20 5c 22 24 65 76 65 6e 74 5c 22 20 68 61 73 6e 27 74 20 6f 63 63 75 or."event.\"$event\".hasn't.occu
438a0 72 65 64 20 79 65 74 22 0a 20 20 20 20 7d 0a 20 20 20 20 72 65 74 75 72 6e 20 24 69 0a 7d 0a 0a red.yet".....}.....return.$i.}..
438c0 23 20 74 63 6c 3a 3a 48 69 73 74 45 76 65 6e 74 20 2d 2d 0a 23 0a 23 09 4d 61 70 20 66 72 6f 6d #.tcl::HistEvent.--.#.#.Map.from
438e0 20 61 6e 20 65 76 65 6e 74 20 73 70 65 63 69 66 69 65 72 20 74 6f 20 74 68 65 20 76 61 6c 75 65 .an.event.specifier.to.the.value
43900 20 69 6e 20 74 68 65 20 68 69 73 74 6f 72 79 20 6c 69 73 74 2e 0a 23 0a 23 20 50 61 72 61 6d 65 .in.the.history.list..#.#.Parame
43920 74 65 72 73 3a 0a 23 09 65 76 65 6e 74 09 69 6e 64 65 78 20 6f 66 20 68 69 73 74 6f 72 79 20 69 ters:.#.event.index.of.history.i
43940 74 65 6d 20 74 6f 20 72 65 64 6f 2e 20 20 53 65 65 20 69 6e 64 65 78 20 66 6f 72 20 61 0a 23 09 tem.to.redo...See.index.for.a.#.
43960 09 64 65 73 63 72 69 70 74 69 6f 6e 20 6f 66 20 70 6f 73 73 69 62 6c 65 20 65 76 65 6e 74 20 70 .description.of.possible.event.p
43980 61 74 74 65 72 6e 73 2e 0a 23 0a 23 20 52 65 73 75 6c 74 73 3a 0a 23 09 54 68 65 20 76 61 6c 75 atterns..#.#.Results:.#.The.valu
439a0 65 20 66 72 6f 6d 20 74 68 65 20 68 69 73 74 6f 72 79 20 6c 69 73 74 2e 0a 0a 20 70 72 6f 63 20 e.from.the.history.list....proc.
439c0 74 63 6c 3a 3a 48 69 73 74 45 76 65 6e 74 20 7b 65 76 65 6e 74 7d 20 7b 0a 20 20 20 20 76 61 72 tcl::HistEvent.{event}.{.....var
439e0 69 61 62 6c 65 20 68 69 73 74 6f 72 79 0a 20 20 20 20 73 65 74 20 69 20 5b 48 69 73 74 49 6e 64 iable.history.....set.i.[HistInd
43a00 65 78 20 24 65 76 65 6e 74 5d 0a 20 20 20 20 69 66 20 7b 5b 69 6e 66 6f 20 65 78 69 73 74 73 20 ex.$event].....if.{[info.exists.
43a20 68 69 73 74 6f 72 79 28 24 69 29 5d 7d 20 7b 0a 09 72 65 74 75 72 6e 20 5b 73 74 72 69 6e 67 20 history($i)]}.{..return.[string.
43a40 74 72 69 6d 72 69 67 68 74 20 24 68 69 73 74 6f 72 79 28 24 69 29 20 5c 20 5c 6e 5d 0a 20 20 20 trimright.$history($i).\.\n]....
43a60 20 7d 20 65 6c 73 65 20 7b 0a 09 72 65 74 75 72 6e 20 22 22 3b 0a 20 20 20 20 7d 0a 7d 0a 0a 23 .}.else.{..return."";.....}.}..#
43a80 20 74 63 6c 3a 3a 48 69 73 74 43 68 61 6e 67 65 20 2d 2d 0a 23 0a 23 09 52 65 70 6c 61 63 65 20 .tcl::HistChange.--.#.#.Replace.
43aa0 61 20 76 61 6c 75 65 20 69 6e 20 74 68 65 20 68 69 73 74 6f 72 79 20 6c 69 73 74 2e 0a 23 0a 23 a.value.in.the.history.list..#.#
43ac0 20 50 61 72 61 6d 65 74 65 72 73 3a 0a 23 09 63 6d 64 09 54 68 65 20 6e 65 77 20 76 61 6c 75 65 .Parameters:.#.cmd.The.new.value
43ae0 20 74 6f 20 70 75 74 20 69 6e 74 6f 20 74 68 65 20 68 69 73 74 6f 72 79 20 6c 69 73 74 2e 0a 23 .to.put.into.the.history.list..#
43b00 09 65 76 65 6e 74 09 28 6f 70 74 69 6f 6e 61 6c 29 20 69 6e 64 65 78 20 6f 66 20 68 69 73 74 6f .event.(optional).index.of.histo
43b20 72 79 20 69 74 65 6d 20 74 6f 20 72 65 64 6f 2e 20 20 53 65 65 20 69 6e 64 65 78 20 66 6f 72 20 ry.item.to.redo...See.index.for.
43b40 61 0a 23 09 09 64 65 73 63 72 69 70 74 69 6f 6e 20 6f 66 20 70 6f 73 73 69 62 6c 65 20 65 76 65 a.#..description.of.possible.eve
43b60 6e 74 20 70 61 74 74 65 72 6e 73 2e 20 20 54 68 69 73 20 64 65 66 61 75 6c 74 73 0a 23 09 09 74 nt.patterns...This.defaults.#..t
43b80 6f 20 30 2c 20 77 68 69 63 68 20 73 70 65 63 69 66 69 65 73 20 74 68 65 20 63 75 72 72 65 6e 74 o.0,.which.specifies.the.current
43ba0 20 65 76 65 6e 74 2e 0a 23 0a 23 20 53 69 64 65 20 45 66 66 65 63 74 73 3a 0a 23 09 43 68 61 6e .event..#.#.Side.Effects:.#.Chan
43bc0 67 65 73 20 74 68 65 20 68 69 73 74 6f 72 79 20 6c 69 73 74 2e 0a 0a 20 70 72 6f 63 20 74 63 6c ges.the.history.list....proc.tcl
43be0 3a 3a 48 69 73 74 43 68 61 6e 67 65 20 7b 63 6d 64 20 7b 65 76 65 6e 74 20 30 7d 7d 20 7b 0a 20 ::HistChange.{cmd.{event.0}}.{..
43c00 20 20 20 76 61 72 69 61 62 6c 65 20 68 69 73 74 6f 72 79 0a 20 20 20 20 73 65 74 20 69 20 5b 48 ...variable.history.....set.i.[H
43c20 69 73 74 49 6e 64 65 78 20 24 65 76 65 6e 74 5d 0a 20 20 20 20 73 65 74 20 68 69 73 74 6f 72 79 istIndex.$event].....set.history
43c40 28 24 69 29 20 24 63 6d 64 0a 7d 0a 00 00 11 0b 23 20 77 6f 72 64 2e 74 63 6c 20 2d 2d 0a 23 0a ($i).$cmd.}.....#.word.tcl.--.#.
43c60 23 20 54 68 69 73 20 66 69 6c 65 20 64 65 66 69 6e 65 73 20 76 61 72 69 6f 75 73 20 70 72 6f 63 #.This.file.defines.various.proc
43c80 65 64 75 72 65 73 20 66 6f 72 20 63 6f 6d 70 75 74 69 6e 67 20 77 6f 72 64 20 62 6f 75 6e 64 61 edures.for.computing.word.bounda
43ca0 72 69 65 73 0a 23 20 69 6e 20 73 74 72 69 6e 67 73 2e 20 20 54 68 69 73 20 66 69 6c 65 20 69 73 ries.#.in.strings...This.file.is
43cc0 20 70 72 69 6d 61 72 69 6c 79 20 6e 65 65 64 65 64 20 73 6f 20 54 6b 20 74 65 78 74 20 61 6e 64 .primarily.needed.so.Tk.text.and
43ce0 20 65 6e 74 72 79 0a 23 20 77 69 64 67 65 74 73 20 62 65 68 61 76 65 20 70 72 6f 70 65 72 6c 79 .entry.#.widgets.behave.properly
43d00 20 66 6f 72 20 64 69 66 66 65 72 65 6e 74 20 70 6c 61 74 66 6f 72 6d 73 2e 0a 23 0a 23 20 43 6f .for.different.platforms..#.#.Co
43d20 70 79 72 69 67 68 74 20 28 63 29 20 31 39 39 36 20 62 79 20 53 75 6e 20 4d 69 63 72 6f 73 79 73 pyright.(c).1996.by.Sun.Microsys
43d40 74 65 6d 73 2c 20 49 6e 63 2e 0a 23 20 43 6f 70 79 72 69 67 68 74 20 28 63 29 20 31 39 39 38 20 tems,.Inc..#.Copyright.(c).1998.
43d60 62 79 20 53 63 72 69 74 70 69 63 73 20 43 6f 72 70 6f 72 61 74 69 6f 6e 2e 0a 23 0a 23 20 53 65 by.Scritpics.Corporation..#.#.Se
43d80 65 20 74 68 65 20 66 69 6c 65 20 22 6c 69 63 65 6e 73 65 2e 74 65 72 6d 73 22 20 66 6f 72 20 69 e.the.file."license.terms".for.i
43da0 6e 66 6f 72 6d 61 74 69 6f 6e 20 6f 6e 20 75 73 61 67 65 20 61 6e 64 20 72 65 64 69 73 74 72 69 nformation.on.usage.and.redistri
43dc0 62 75 74 69 6f 6e 0a 23 20 6f 66 20 74 68 69 73 20 66 69 6c 65 2c 20 61 6e 64 20 66 6f 72 20 61 bution.#.of.this.file,.and.for.a
43de0 20 44 49 53 43 4c 41 49 4d 45 52 20 4f 46 20 41 4c 4c 20 57 41 52 52 41 4e 54 49 45 53 2e 0a 23 .DISCLAIMER.OF.ALL.WARRANTIES..#
43e00 20 0a 23 20 52 43 53 3a 20 40 28 23 29 20 24 49 64 3a 20 77 6f 72 64 2e 74 63 6c 2c 76 20 31 2e ..#.RCS:.@(#).$Id:.word.tcl,v.1.
43e20 36 20 32 30 30 30 2f 30 31 2f 32 31 20 30 32 3a 32 35 3a 33 38 20 68 6f 62 62 73 20 45 78 70 20 6.2000/01/21.02:25:38.hobbs.Exp.
43e40 24 0a 0a 23 20 54 68 65 20 66 6f 6c 6c 6f 77 69 6e 67 20 76 61 72 69 61 62 6c 65 73 20 61 72 65 $..#.The.following.variables.are
43e60 20 75 73 65 64 20 74 6f 20 64 65 74 65 72 6d 69 6e 65 20 77 68 69 63 68 20 63 68 61 72 61 63 74 .used.to.determine.which.charact
43e80 65 72 73 20 61 72 65 0a 23 20 69 6e 74 65 72 70 72 65 74 65 64 20 61 73 20 77 68 69 74 65 20 73 ers.are.#.interpreted.as.white.s
43ea0 70 61 63 65 2e 20 20 0a 0a 69 66 20 7b 5b 73 74 72 69 6e 67 20 65 71 75 61 6c 20 24 74 63 6c 5f pace.....if.{[string.equal.$tcl_
43ec0 70 6c 61 74 66 6f 72 6d 28 70 6c 61 74 66 6f 72 6d 29 20 22 77 69 6e 64 6f 77 73 22 5d 7d 20 7b platform(platform)."windows"]}.{
43ee0 0a 20 20 20 20 23 20 57 69 6e 64 6f 77 73 20 73 74 79 6c 65 20 2d 20 61 6e 79 20 62 75 74 20 61 .....#.Windows.style.-.any.but.a
43f00 20 75 6e 69 63 6f 64 65 20 73 70 61 63 65 20 63 68 61 72 0a 20 20 20 20 73 65 74 20 74 63 6c 5f .unicode.space.char.....set.tcl_
43f20 77 6f 72 64 63 68 61 72 73 20 22 5c 5c 53 22 0a 20 20 20 20 73 65 74 20 74 63 6c 5f 6e 6f 6e 77 wordchars."\\S".....set.tcl_nonw
43f40 6f 72 64 63 68 61 72 73 20 22 5c 5c 73 22 0a 7d 20 65 6c 73 65 20 7b 0a 20 20 20 20 23 20 4d 6f ordchars."\\s".}.else.{.....#.Mo
43f60 74 69 66 20 73 74 79 6c 65 20 2d 20 61 6e 79 20 75 6e 69 63 6f 64 65 20 77 6f 72 64 20 63 68 61 tif.style.-.any.unicode.word.cha
43f80 72 20 28 6e 75 6d 62 65 72 2c 20 6c 65 74 74 65 72 2c 20 6f 72 20 75 6e 64 65 72 73 63 6f 72 65 r.(number,.letter,.or.underscore
43fa0 29 0a 20 20 20 20 73 65 74 20 74 63 6c 5f 77 6f 72 64 63 68 61 72 73 20 22 5c 5c 77 22 0a 20 20 ).....set.tcl_wordchars."\\w"...
43fc0 20 20 73 65 74 20 74 63 6c 5f 6e 6f 6e 77 6f 72 64 63 68 61 72 73 20 22 5c 5c 57 22 0a 7d 0a 0a ..set.tcl_nonwordchars."\\W".}..
43fe0 23 20 74 63 6c 5f 77 6f 72 64 42 72 65 61 6b 41 66 74 65 72 20 2d 2d 0a 23 0a 23 20 54 68 69 73 #.tcl_wordBreakAfter.--.#.#.This
44000 20 70 72 6f 63 65 64 75 72 65 20 72 65 74 75 72 6e 73 20 74 68 65 20 69 6e 64 65 78 20 6f 66 20 .procedure.returns.the.index.of.
44020 74 68 65 20 66 69 72 73 74 20 77 6f 72 64 20 62 6f 75 6e 64 61 72 79 0a 23 20 61 66 74 65 72 20 the.first.word.boundary.#.after.
44040 74 68 65 20 73 74 61 72 74 69 6e 67 20 70 6f 69 6e 74 20 69 6e 20 74 68 65 20 67 69 76 65 6e 20 the.starting.point.in.the.given.
44060 73 74 72 69 6e 67 2c 20 6f 72 20 2d 31 20 69 66 20 74 68 65 72 65 0a 23 20 61 72 65 20 6e 6f 20 string,.or.-1.if.there.#.are.no.
44080 6d 6f 72 65 20 62 6f 75 6e 64 61 72 69 65 73 20 69 6e 20 74 68 65 20 67 69 76 65 6e 20 73 74 72 more.boundaries.in.the.given.str
440a0 69 6e 67 2e 20 20 54 68 65 20 69 6e 64 65 78 20 72 65 74 75 72 6e 65 64 20 72 65 66 65 72 73 0a ing...The.index.returned.refers.
440c0 23 20 74 6f 20 74 68 65 20 66 69 72 73 74 20 63 68 61 72 61 63 74 65 72 20 6f 66 20 74 68 65 20 #.to.the.first.character.of.the.
440e0 70 61 69 72 20 74 68 61 74 20 63 6f 6d 70 72 69 73 65 73 20 61 20 62 6f 75 6e 64 61 72 79 2e 0a pair.that.comprises.a.boundary..
44100 23 0a 23 20 41 72 67 75 6d 65 6e 74 73 3a 0a 23 20 73 74 72 20 2d 09 09 53 74 72 69 6e 67 20 74 #.#.Arguments:.#.str.-..String.t
44120 6f 20 73 65 61 72 63 68 2e 0a 23 20 73 74 61 72 74 20 2d 09 49 6e 64 65 78 20 69 6e 74 6f 20 73 o.search..#.start.-.Index.into.s
44140 74 72 69 6e 67 20 73 70 65 63 69 66 79 69 6e 67 20 73 74 61 72 74 69 6e 67 20 70 6f 69 6e 74 2e tring.specifying.starting.point.
44160 0a 0a 70 72 6f 63 20 74 63 6c 5f 77 6f 72 64 42 72 65 61 6b 41 66 74 65 72 20 7b 73 74 72 20 73 ..proc.tcl_wordBreakAfter.{str.s
44180 74 61 72 74 7d 20 7b 0a 20 20 20 20 67 6c 6f 62 61 6c 20 74 63 6c 5f 6e 6f 6e 77 6f 72 64 63 68 tart}.{.....global.tcl_nonwordch
441a0 61 72 73 20 74 63 6c 5f 77 6f 72 64 63 68 61 72 73 0a 20 20 20 20 73 65 74 20 73 74 72 20 5b 73 ars.tcl_wordchars.....set.str.[s
441c0 74 72 69 6e 67 20 72 61 6e 67 65 20 24 73 74 72 20 24 73 74 61 72 74 20 65 6e 64 5d 0a 20 20 20 tring.range.$str.$start.end]....
441e0 20 69 66 20 7b 5b 72 65 67 65 78 70 20 2d 69 6e 64 69 63 65 73 20 22 24 74 63 6c 5f 77 6f 72 64 .if.{[regexp.-indices."$tcl_word
44200 63 68 61 72 73 24 74 63 6c 5f 6e 6f 6e 77 6f 72 64 63 68 61 72 73 7c 24 74 63 6c 5f 6e 6f 6e 77 chars$tcl_nonwordchars|$tcl_nonw
44220 6f 72 64 63 68 61 72 73 24 74 63 6c 5f 77 6f 72 64 63 68 61 72 73 22 20 24 73 74 72 20 72 65 73 ordchars$tcl_wordchars".$str.res
44240 75 6c 74 5d 7d 20 7b 0a 09 72 65 74 75 72 6e 20 5b 65 78 70 72 20 7b 5b 6c 69 6e 64 65 78 20 24 ult]}.{..return.[expr.{[lindex.$
44260 72 65 73 75 6c 74 20 31 5d 20 2b 20 24 73 74 61 72 74 7d 5d 0a 20 20 20 20 7d 0a 20 20 20 20 72 result.1].+.$start}].....}.....r
44280 65 74 75 72 6e 20 2d 31 0a 7d 0a 0a 23 20 74 63 6c 5f 77 6f 72 64 42 72 65 61 6b 42 65 66 6f 72 eturn.-1.}..#.tcl_wordBreakBefor
442a0 65 20 2d 2d 0a 23 0a 23 20 54 68 69 73 20 70 72 6f 63 65 64 75 72 65 20 72 65 74 75 72 6e 73 20 e.--.#.#.This.procedure.returns.
442c0 74 68 65 20 69 6e 64 65 78 20 6f 66 20 74 68 65 20 66 69 72 73 74 20 77 6f 72 64 20 62 6f 75 6e the.index.of.the.first.word.boun
442e0 64 61 72 79 0a 23 20 62 65 66 6f 72 65 20 74 68 65 20 73 74 61 72 74 69 6e 67 20 70 6f 69 6e 74 dary.#.before.the.starting.point
44300 20 69 6e 20 74 68 65 20 67 69 76 65 6e 20 73 74 72 69 6e 67 2c 20 6f 72 20 2d 31 20 69 66 20 74 .in.the.given.string,.or.-1.if.t
44320 68 65 72 65 0a 23 20 61 72 65 20 6e 6f 20 6d 6f 72 65 20 62 6f 75 6e 64 61 72 69 65 73 20 69 6e here.#.are.no.more.boundaries.in
44340 20 74 68 65 20 67 69 76 65 6e 20 73 74 72 69 6e 67 2e 20 20 54 68 65 20 69 6e 64 65 78 20 72 65 .the.given.string...The.index.re
44360 74 75 72 6e 65 64 0a 23 20 72 65 66 65 72 73 20 74 6f 20 74 68 65 20 73 65 63 6f 6e 64 20 63 68 turned.#.refers.to.the.second.ch
44380 61 72 61 63 74 65 72 20 6f 66 20 74 68 65 20 70 61 69 72 20 74 68 61 74 20 63 6f 6d 70 72 69 73 aracter.of.the.pair.that.compris
443a0 65 73 20 61 20 62 6f 75 6e 64 61 72 79 2e 0a 23 0a 23 20 41 72 67 75 6d 65 6e 74 73 3a 0a 23 20 es.a.boundary..#.#.Arguments:.#.
443c0 73 74 72 20 2d 09 09 53 74 72 69 6e 67 20 74 6f 20 73 65 61 72 63 68 2e 0a 23 20 73 74 61 72 74 str.-..String.to.search..#.start
443e0 20 2d 09 49 6e 64 65 78 20 69 6e 74 6f 20 73 74 72 69 6e 67 20 73 70 65 63 69 66 79 69 6e 67 20 .-.Index.into.string.specifying.
44400 73 74 61 72 74 69 6e 67 20 70 6f 69 6e 74 2e 0a 0a 70 72 6f 63 20 74 63 6c 5f 77 6f 72 64 42 72 starting.point...proc.tcl_wordBr
44420 65 61 6b 42 65 66 6f 72 65 20 7b 73 74 72 20 73 74 61 72 74 7d 20 7b 0a 20 20 20 20 67 6c 6f 62 eakBefore.{str.start}.{.....glob
44440 61 6c 20 74 63 6c 5f 6e 6f 6e 77 6f 72 64 63 68 61 72 73 20 74 63 6c 5f 77 6f 72 64 63 68 61 72 al.tcl_nonwordchars.tcl_wordchar
44460 73 0a 20 20 20 20 69 66 20 7b 5b 73 74 72 69 6e 67 20 65 71 75 61 6c 20 24 73 74 61 72 74 20 65 s.....if.{[string.equal.$start.e
44480 6e 64 5d 7d 20 7b 0a 09 73 65 74 20 73 74 61 72 74 20 5b 73 74 72 69 6e 67 20 6c 65 6e 67 74 68 nd]}.{..set.start.[string.length
444a0 20 24 73 74 72 5d 0a 20 20 20 20 7d 0a 20 20 20 20 69 66 20 7b 5b 72 65 67 65 78 70 20 2d 69 6e .$str].....}.....if.{[regexp.-in
444c0 64 69 63 65 73 20 22 5e 2e 2a 28 24 74 63 6c 5f 77 6f 72 64 63 68 61 72 73 24 74 63 6c 5f 6e 6f dices."^.*($tcl_wordchars$tcl_no
444e0 6e 77 6f 72 64 63 68 61 72 73 7c 24 74 63 6c 5f 6e 6f 6e 77 6f 72 64 63 68 61 72 73 24 74 63 6c nwordchars|$tcl_nonwordchars$tcl
44500 5f 77 6f 72 64 63 68 61 72 73 29 22 20 5b 73 74 72 69 6e 67 20 72 61 6e 67 65 20 24 73 74 72 20 _wordchars)".[string.range.$str.
44520 30 20 24 73 74 61 72 74 5d 20 72 65 73 75 6c 74 5d 7d 20 7b 0a 09 72 65 74 75 72 6e 20 5b 6c 69 0.$start].result]}.{..return.[li
44540 6e 64 65 78 20 24 72 65 73 75 6c 74 20 31 5d 0a 20 20 20 20 7d 0a 20 20 20 20 72 65 74 75 72 6e ndex.$result.1].....}.....return
44560 20 2d 31 0a 7d 0a 0a 23 20 74 63 6c 5f 65 6e 64 4f 66 57 6f 72 64 20 2d 2d 0a 23 0a 23 20 54 68 .-1.}..#.tcl_endOfWord.--.#.#.Th
44580 69 73 20 70 72 6f 63 65 64 75 72 65 20 72 65 74 75 72 6e 73 20 74 68 65 20 69 6e 64 65 78 20 6f is.procedure.returns.the.index.o
445a0 66 20 74 68 65 20 66 69 72 73 74 20 65 6e 64 2d 6f 66 2d 77 6f 72 64 20 6c 6f 63 61 74 69 6f 6e f.the.first.end-of-word.location
445c0 0a 23 20 61 66 74 65 72 20 61 20 73 74 61 72 74 69 6e 67 20 69 6e 64 65 78 20 69 6e 20 74 68 65 .#.after.a.starting.index.in.the
445e0 20 67 69 76 65 6e 20 73 74 72 69 6e 67 2e 20 20 41 6e 20 65 6e 64 2d 6f 66 2d 77 6f 72 64 20 6c .given.string...An.end-of-word.l
44600 6f 63 61 74 69 6f 6e 0a 23 20 69 73 20 64 65 66 69 6e 65 64 20 74 6f 20 62 65 20 74 68 65 20 66 ocation.#.is.defined.to.be.the.f
44620 69 72 73 74 20 77 68 69 74 65 73 70 61 63 65 20 63 68 61 72 61 63 74 65 72 20 66 6f 6c 6c 6f 77 irst.whitespace.character.follow
44640 69 6e 67 20 74 68 65 20 66 69 72 73 74 0a 23 20 6e 6f 6e 2d 77 68 69 74 65 73 70 61 63 65 20 63 ing.the.first.#.non-whitespace.c
44660 68 61 72 61 63 74 65 72 20 61 66 74 65 72 20 74 68 65 20 73 74 61 72 74 69 6e 67 20 70 6f 69 6e haracter.after.the.starting.poin
44680 74 2e 20 20 52 65 74 75 72 6e 73 20 2d 31 20 69 66 0a 23 20 74 68 65 72 65 20 61 72 65 20 6e 6f t...Returns.-1.if.#.there.are.no
446a0 20 6d 6f 72 65 20 77 6f 72 64 73 20 61 66 74 65 72 20 74 68 65 20 73 74 61 72 74 69 6e 67 20 70 .more.words.after.the.starting.p
446c0 6f 69 6e 74 2e 0a 23 0a 23 20 41 72 67 75 6d 65 6e 74 73 3a 0a 23 20 73 74 72 20 2d 09 09 53 74 oint..#.#.Arguments:.#.str.-..St
446e0 72 69 6e 67 20 74 6f 20 73 65 61 72 63 68 2e 0a 23 20 73 74 61 72 74 20 2d 09 49 6e 64 65 78 20 ring.to.search..#.start.-.Index.
44700 69 6e 74 6f 20 73 74 72 69 6e 67 20 73 70 65 63 69 66 79 69 6e 67 20 73 74 61 72 74 69 6e 67 20 into.string.specifying.starting.
44720 70 6f 69 6e 74 2e 0a 0a 70 72 6f 63 20 74 63 6c 5f 65 6e 64 4f 66 57 6f 72 64 20 7b 73 74 72 20 point...proc.tcl_endOfWord.{str.
44740 73 74 61 72 74 7d 20 7b 0a 20 20 20 20 67 6c 6f 62 61 6c 20 74 63 6c 5f 6e 6f 6e 77 6f 72 64 63 start}.{.....global.tcl_nonwordc
44760 68 61 72 73 20 74 63 6c 5f 77 6f 72 64 63 68 61 72 73 0a 20 20 20 20 69 66 20 7b 5b 72 65 67 65 hars.tcl_wordchars.....if.{[rege
44780 78 70 20 2d 69 6e 64 69 63 65 73 20 22 24 74 63 6c 5f 6e 6f 6e 77 6f 72 64 63 68 61 72 73 2a 24 xp.-indices."$tcl_nonwordchars*$
447a0 74 63 6c 5f 77 6f 72 64 63 68 61 72 73 2b 24 74 63 6c 5f 6e 6f 6e 77 6f 72 64 63 68 61 72 73 22 tcl_wordchars+$tcl_nonwordchars"
447c0 20 5c 0a 09 20 20 20 20 5b 73 74 72 69 6e 67 20 72 61 6e 67 65 20 24 73 74 72 20 24 73 74 61 72 .\......[string.range.$str.$star
447e0 74 20 65 6e 64 5d 20 72 65 73 75 6c 74 5d 7d 20 7b 0a 09 72 65 74 75 72 6e 20 5b 65 78 70 72 20 t.end].result]}.{..return.[expr.
44800 7b 5b 6c 69 6e 64 65 78 20 24 72 65 73 75 6c 74 20 31 5d 20 2b 20 24 73 74 61 72 74 7d 5d 0a 20 {[lindex.$result.1].+.$start}]..
44820 20 20 20 7d 0a 20 20 20 20 72 65 74 75 72 6e 20 2d 31 0a 7d 0a 0a 23 20 74 63 6c 5f 73 74 61 72 ...}.....return.-1.}..#.tcl_star
44840 74 4f 66 4e 65 78 74 57 6f 72 64 20 2d 2d 0a 23 0a 23 20 54 68 69 73 20 70 72 6f 63 65 64 75 72 tOfNextWord.--.#.#.This.procedur
44860 65 20 72 65 74 75 72 6e 73 20 74 68 65 20 69 6e 64 65 78 20 6f 66 20 74 68 65 20 66 69 72 73 74 e.returns.the.index.of.the.first
44880 20 73 74 61 72 74 2d 6f 66 2d 77 6f 72 64 20 6c 6f 63 61 74 69 6f 6e 0a 23 20 61 66 74 65 72 20 .start-of-word.location.#.after.
448a0 61 20 73 74 61 72 74 69 6e 67 20 69 6e 64 65 78 20 69 6e 20 74 68 65 20 67 69 76 65 6e 20 73 74 a.starting.index.in.the.given.st
448c0 72 69 6e 67 2e 20 20 41 20 73 74 61 72 74 2d 6f 66 2d 77 6f 72 64 0a 23 20 6c 6f 63 61 74 69 6f ring...A.start-of-word.#.locatio
448e0 6e 20 69 73 20 64 65 66 69 6e 65 64 20 74 6f 20 62 65 20 61 20 6e 6f 6e 2d 77 68 69 74 65 73 70 n.is.defined.to.be.a.non-whitesp
44900 61 63 65 20 63 68 61 72 61 63 74 65 72 20 66 6f 6c 6c 6f 77 69 6e 67 20 61 0a 23 20 77 68 69 74 ace.character.following.a.#.whit
44920 65 73 70 61 63 65 20 63 68 61 72 61 63 74 65 72 2e 20 20 52 65 74 75 72 6e 73 20 2d 31 20 69 66 espace.character...Returns.-1.if
44940 20 74 68 65 72 65 20 61 72 65 20 6e 6f 20 6d 6f 72 65 20 73 74 61 72 74 2d 6f 66 2d 77 6f 72 64 .there.are.no.more.start-of-word
44960 0a 23 20 6c 6f 63 61 74 69 6f 6e 73 20 61 66 74 65 72 20 74 68 65 20 73 74 61 72 74 69 6e 67 20 .#.locations.after.the.starting.
44980 70 6f 69 6e 74 2e 0a 23 0a 23 20 41 72 67 75 6d 65 6e 74 73 3a 0a 23 20 73 74 72 20 2d 09 09 53 point..#.#.Arguments:.#.str.-..S
449a0 74 72 69 6e 67 20 74 6f 20 73 65 61 72 63 68 2e 0a 23 20 73 74 61 72 74 20 2d 09 49 6e 64 65 78 tring.to.search..#.start.-.Index
449c0 20 69 6e 74 6f 20 73 74 72 69 6e 67 20 73 70 65 63 69 66 79 69 6e 67 20 73 74 61 72 74 69 6e 67 .into.string.specifying.starting
449e0 20 70 6f 69 6e 74 2e 0a 0a 70 72 6f 63 20 74 63 6c 5f 73 74 61 72 74 4f 66 4e 65 78 74 57 6f 72 .point...proc.tcl_startOfNextWor
44a00 64 20 7b 73 74 72 20 73 74 61 72 74 7d 20 7b 0a 20 20 20 20 67 6c 6f 62 61 6c 20 74 63 6c 5f 6e d.{str.start}.{.....global.tcl_n
44a20 6f 6e 77 6f 72 64 63 68 61 72 73 20 74 63 6c 5f 77 6f 72 64 63 68 61 72 73 0a 20 20 20 20 69 66 onwordchars.tcl_wordchars.....if
44a40 20 7b 5b 72 65 67 65 78 70 20 2d 69 6e 64 69 63 65 73 20 22 24 74 63 6c 5f 77 6f 72 64 63 68 61 .{[regexp.-indices."$tcl_wordcha
44a60 72 73 2a 24 74 63 6c 5f 6e 6f 6e 77 6f 72 64 63 68 61 72 73 2b 24 74 63 6c 5f 77 6f 72 64 63 68 rs*$tcl_nonwordchars+$tcl_wordch
44a80 61 72 73 22 20 5c 0a 09 20 20 20 20 5b 73 74 72 69 6e 67 20 72 61 6e 67 65 20 24 73 74 72 20 24 ars".\......[string.range.$str.$
44aa0 73 74 61 72 74 20 65 6e 64 5d 20 72 65 73 75 6c 74 5d 7d 20 7b 0a 09 72 65 74 75 72 6e 20 5b 65 start.end].result]}.{..return.[e
44ac0 78 70 72 20 7b 5b 6c 69 6e 64 65 78 20 24 72 65 73 75 6c 74 20 31 5d 20 2b 20 24 73 74 61 72 74 xpr.{[lindex.$result.1].+.$start
44ae0 7d 5d 0a 20 20 20 20 7d 0a 20 20 20 20 72 65 74 75 72 6e 20 2d 31 0a 7d 0a 0a 23 20 74 63 6c 5f }].....}.....return.-1.}..#.tcl_
44b00 73 74 61 72 74 4f 66 50 72 65 76 69 6f 75 73 57 6f 72 64 20 2d 2d 0a 23 0a 23 20 54 68 69 73 20 startOfPreviousWord.--.#.#.This.
44b20 70 72 6f 63 65 64 75 72 65 20 72 65 74 75 72 6e 73 20 74 68 65 20 69 6e 64 65 78 20 6f 66 20 74 procedure.returns.the.index.of.t
44b40 68 65 20 66 69 72 73 74 20 73 74 61 72 74 2d 6f 66 2d 77 6f 72 64 20 6c 6f 63 61 74 69 6f 6e 0a he.first.start-of-word.location.
44b60 23 20 62 65 66 6f 72 65 20 61 20 73 74 61 72 74 69 6e 67 20 69 6e 64 65 78 20 69 6e 20 74 68 65 #.before.a.starting.index.in.the
44b80 20 67 69 76 65 6e 20 73 74 72 69 6e 67 2e 0a 23 0a 23 20 41 72 67 75 6d 65 6e 74 73 3a 0a 23 20 .given.string..#.#.Arguments:.#.
44ba0 73 74 72 20 2d 09 09 53 74 72 69 6e 67 20 74 6f 20 73 65 61 72 63 68 2e 0a 23 20 73 74 61 72 74 str.-..String.to.search..#.start
44bc0 20 2d 09 49 6e 64 65 78 20 69 6e 74 6f 20 73 74 72 69 6e 67 20 73 70 65 63 69 66 79 69 6e 67 20 .-.Index.into.string.specifying.
44be0 73 74 61 72 74 69 6e 67 20 70 6f 69 6e 74 2e 0a 0a 70 72 6f 63 20 74 63 6c 5f 73 74 61 72 74 4f starting.point...proc.tcl_startO
44c00 66 50 72 65 76 69 6f 75 73 57 6f 72 64 20 7b 73 74 72 20 73 74 61 72 74 7d 20 7b 0a 20 20 20 20 fPreviousWord.{str.start}.{.....
44c20 67 6c 6f 62 61 6c 20 74 63 6c 5f 6e 6f 6e 77 6f 72 64 63 68 61 72 73 20 74 63 6c 5f 77 6f 72 64 global.tcl_nonwordchars.tcl_word
44c40 63 68 61 72 73 0a 20 20 20 20 69 66 20 7b 5b 73 74 72 69 6e 67 20 65 71 75 61 6c 20 24 73 74 61 chars.....if.{[string.equal.$sta
44c60 72 74 20 65 6e 64 5d 7d 20 7b 0a 09 73 65 74 20 73 74 61 72 74 20 5b 73 74 72 69 6e 67 20 6c 65 rt.end]}.{..set.start.[string.le
44c80 6e 67 74 68 20 24 73 74 72 5d 0a 20 20 20 20 7d 0a 20 20 20 20 69 66 20 7b 5b 72 65 67 65 78 70 ngth.$str].....}.....if.{[regexp
44ca0 20 2d 69 6e 64 69 63 65 73 20 5c 0a 09 20 20 20 20 22 24 74 63 6c 5f 6e 6f 6e 77 6f 72 64 63 68 .-indices.\......"$tcl_nonwordch
44cc0 61 72 73 2a 28 24 74 63 6c 5f 77 6f 72 64 63 68 61 72 73 2b 29 24 74 63 6c 5f 6e 6f 6e 77 6f 72 ars*($tcl_wordchars+)$tcl_nonwor
44ce0 64 63 68 61 72 73 2a 5c 24 22 20 5c 0a 09 20 20 20 20 5b 73 74 72 69 6e 67 20 72 61 6e 67 65 20 dchars*\$".\......[string.range.
44d00 24 73 74 72 20 30 20 5b 65 78 70 72 20 7b 24 73 74 61 72 74 20 2d 20 31 7d 5d 5d 20 72 65 73 75 $str.0.[expr.{$start.-.1}]].resu
44d20 6c 74 20 77 6f 72 64 5d 7d 20 7b 0a 09 72 65 74 75 72 6e 20 5b 6c 69 6e 64 65 78 20 24 77 6f 72 lt.word]}.{..return.[lindex.$wor
44d40 64 20 30 5d 0a 20 20 20 20 7d 0a 20 20 20 20 72 65 74 75 72 6e 20 2d 31 0a 7d 0a 00 00 03 72 23 d.0].....}.....return.-1.}....r#
44d60 20 70 61 72 72 61 79 3a 0a 23 20 50 72 69 6e 74 20 74 68 65 20 63 6f 6e 74 65 6e 74 73 20 6f 66 .parray:.#.Print.the.contents.of
44d80 20 61 20 67 6c 6f 62 61 6c 20 61 72 72 61 79 20 6f 6e 20 73 74 64 6f 75 74 2e 0a 23 0a 23 20 52 .a.global.array.on.stdout..#.#.R
44da0 43 53 3a 20 40 28 23 29 20 24 49 64 3a 20 70 61 72 72 61 79 2e 74 63 6c 2c 76 20 31 2e 33 20 31 CS:.@(#).$Id:.parray.tcl,v.1.3.1
44dc0 39 39 38 2f 30 39 2f 31 34 20 31 38 3a 34 30 3a 30 33 20 73 74 61 6e 74 6f 6e 20 45 78 70 20 24 998/09/14.18:40:03.stanton.Exp.$
44de0 0a 23 0a 23 20 43 6f 70 79 72 69 67 68 74 20 28 63 29 20 31 39 39 31 2d 31 39 39 33 20 54 68 65 .#.#.Copyright.(c).1991-1993.The
44e00 20 52 65 67 65 6e 74 73 20 6f 66 20 74 68 65 20 55 6e 69 76 65 72 73 69 74 79 20 6f 66 20 43 61 .Regents.of.the.University.of.Ca
44e20 6c 69 66 6f 72 6e 69 61 2e 0a 23 20 43 6f 70 79 72 69 67 68 74 20 28 63 29 20 31 39 39 34 20 53 lifornia..#.Copyright.(c).1994.S
44e40 75 6e 20 4d 69 63 72 6f 73 79 73 74 65 6d 73 2c 20 49 6e 63 2e 0a 23 0a 23 20 53 65 65 20 74 68 un.Microsystems,.Inc..#.#.See.th
44e60 65 20 66 69 6c 65 20 22 6c 69 63 65 6e 73 65 2e 74 65 72 6d 73 22 20 66 6f 72 20 69 6e 66 6f 72 e.file."license.terms".for.infor
44e80 6d 61 74 69 6f 6e 20 6f 6e 20 75 73 61 67 65 20 61 6e 64 20 72 65 64 69 73 74 72 69 62 75 74 69 mation.on.usage.and.redistributi
44ea0 6f 6e 0a 23 20 6f 66 20 74 68 69 73 20 66 69 6c 65 2c 20 61 6e 64 20 66 6f 72 20 61 20 44 49 53 on.#.of.this.file,.and.for.a.DIS
44ec0 43 4c 41 49 4d 45 52 20 4f 46 20 41 4c 4c 20 57 41 52 52 41 4e 54 49 45 53 2e 0a 23 0a 0a 70 72 CLAIMER.OF.ALL.WARRANTIES..#..pr
44ee0 6f 63 20 70 61 72 72 61 79 20 7b 61 20 7b 70 61 74 74 65 72 6e 20 2a 7d 7d 20 7b 0a 20 20 20 20 oc.parray.{a.{pattern.*}}.{.....
44f00 75 70 76 61 72 20 31 20 24 61 20 61 72 72 61 79 0a 20 20 20 20 69 66 20 7b 21 5b 61 72 72 61 79 upvar.1.$a.array.....if.{![array
44f20 20 65 78 69 73 74 73 20 61 72 72 61 79 5d 7d 20 7b 0a 09 65 72 72 6f 72 20 22 5c 22 24 61 5c 22 .exists.array]}.{..error."\"$a\"
44f40 20 69 73 6e 27 74 20 61 6e 20 61 72 72 61 79 22 0a 20 20 20 20 7d 0a 20 20 20 20 73 65 74 20 6d .isn't.an.array".....}.....set.m
44f60 61 78 6c 20 30 0a 20 20 20 20 66 6f 72 65 61 63 68 20 6e 61 6d 65 20 5b 6c 73 6f 72 74 20 5b 61 axl.0.....foreach.name.[lsort.[a
44f80 72 72 61 79 20 6e 61 6d 65 73 20 61 72 72 61 79 20 24 70 61 74 74 65 72 6e 5d 5d 20 7b 0a 09 69 rray.names.array.$pattern]].{..i
44fa0 66 20 7b 5b 73 74 72 69 6e 67 20 6c 65 6e 67 74 68 20 24 6e 61 6d 65 5d 20 3e 20 24 6d 61 78 6c f.{[string.length.$name].>.$maxl
44fc0 7d 20 7b 0a 09 20 20 20 20 73 65 74 20 6d 61 78 6c 20 5b 73 74 72 69 6e 67 20 6c 65 6e 67 74 68 }.{......set.maxl.[string.length
44fe0 20 24 6e 61 6d 65 5d 0a 09 7d 0a 20 20 20 20 7d 0a 20 20 20 20 73 65 74 20 6d 61 78 6c 20 5b 65 .$name]..}.....}.....set.maxl.[e
45000 78 70 72 20 7b 24 6d 61 78 6c 20 2b 20 5b 73 74 72 69 6e 67 20 6c 65 6e 67 74 68 20 24 61 5d 20 xpr.{$maxl.+.[string.length.$a].
45020 2b 20 32 7d 5d 0a 20 20 20 20 66 6f 72 65 61 63 68 20 6e 61 6d 65 20 5b 6c 73 6f 72 74 20 5b 61 +.2}].....foreach.name.[lsort.[a
45040 72 72 61 79 20 6e 61 6d 65 73 20 61 72 72 61 79 20 24 70 61 74 74 65 72 6e 5d 5d 20 7b 0a 09 73 rray.names.array.$pattern]].{..s
45060 65 74 20 6e 61 6d 65 53 74 72 69 6e 67 20 5b 66 6f 72 6d 61 74 20 25 73 28 25 73 29 20 24 61 20 et.nameString.[format.%s(%s).$a.
45080 24 6e 61 6d 65 5d 0a 09 70 75 74 73 20 73 74 64 6f 75 74 20 5b 66 6f 72 6d 61 74 20 22 25 2d 2a $name]..puts.stdout.[format."%-*
450a0 73 20 3d 20 25 73 22 20 24 6d 61 78 6c 20 24 6e 61 6d 65 53 74 72 69 6e 67 20 24 61 72 72 61 79 s.=.%s".$maxl.$nameString.$array
450c0 28 24 6e 61 6d 65 29 5d 0a 20 20 20 20 7d 0a 7d 0a 00 00 01 00 00 04 50 6f 00 04 4f 6f 00 00 0b ($name)].....}.}.......Po..Oo...
450e0 52 06 c8 fe dc 04 a2 00 00 00 1c 06 c6 00 0b 43 4e 54 4c 00 00 00 62 63 72 73 72 00 0e 00 6e 43 R..............CNTL...bcrsr...nC
45100 55 52 53 00 54 01 22 44 49 54 4c 00 01 05 1e 44 4c 4f 47 00 01 05 36 4d 44 45 46 00 00 05 4e 4d URS.T."DITL....DLOG...6MDEF...NM
45120 45 4e 55 00 00 05 5a 50 49 43 54 00 00 05 66 53 49 43 4e 00 00 05 72 53 49 5a 45 00 00 05 7e 53 ENU...ZPICT...fSICN...rSIZE...~S
45140 54 52 23 00 00 05 8a 54 45 58 54 00 16 05 96 00 83 00 00 20 00 00 00 00 00 00 00 03 e8 00 10 00 TR#....TEXT.....................
45160 00 00 25 00 00 00 00 03 e9 00 15 00 00 01 1b 00 00 00 00 0b bc 00 1a 20 00 02 11 00 00 00 00 0b ..%.............................
45180 c5 00 1f 00 00 03 6f 00 00 00 00 0b c6 00 25 00 00 04 cd 00 00 00 00 0b d3 00 30 00 00 06 23 00 ......o.......%...........0...#.
451a0 00 00 00 0b d4 00 38 00 00 07 79 00 00 00 00 0b d7 00 3e 00 00 08 c7 00 00 00 00 0b e2 00 44 20 ......8...y.......>...........D.
451c0 00 09 c5 00 00 00 00 0b e3 00 4a 20 00 0b 43 00 00 00 00 0b f3 00 51 00 00 0c 99 00 00 00 00 0b ..........J...C.......Q.........
451e0 f6 00 59 00 00 0d ef 00 00 00 00 0b f7 00 62 00 00 0f 6d 00 00 00 00 0b ff 00 67 00 00 10 63 00 ..Y...........b...m.......g...c.
45200 00 00 00 0c 03 00 6c 20 00 11 b9 00 00 00 00 03 e8 00 72 00 00 12 ff 00 00 00 00 03 ea 00 77 00 ......l...........r...........w.
45220 00 13 47 00 00 00 00 03 eb 00 7e 00 00 13 8f 00 00 00 00 03 ec 00 85 00 00 13 d7 00 00 00 00 03 ..G.......~.....................
45240 ed 00 8c 00 00 14 1f 00 00 00 00 03 ee 00 94 00 00 14 67 00 00 00 00 03 ef 00 a1 00 00 14 af 00 ..................g.............
45260 00 00 00 03 f0 00 a9 00 00 14 f7 00 00 00 00 0b b8 00 b2 00 00 15 3f 00 00 00 00 0b b9 00 bb 00 ......................?.........
45280 00 15 87 00 00 00 00 0b ba 00 c1 00 00 15 cf 00 00 00 00 0b bb 00 d2 00 00 16 17 00 00 00 00 0b ................................
452a0 bc 00 e1 00 00 16 5f 00 00 00 00 0b bd 00 e6 00 00 16 a7 00 00 00 00 0b be 00 ef 00 00 16 ef 00 ......_.........................
452c0 00 00 00 0b bf 01 02 00 00 17 37 00 00 00 00 0b c0 01 16 00 00 17 7f 00 00 00 00 0b c1 01 22 00 ..........7...................".
452e0 00 17 c7 00 00 00 00 0b c2 01 2d 00 00 18 0f 00 00 00 00 0b c3 01 38 00 00 18 57 00 00 00 00 0b ..........-...........8...W.....
45300 c4 01 43 00 00 18 9f 00 00 00 00 0b c5 01 4a 00 00 18 e7 00 00 00 00 0b c6 01 50 00 00 19 2f 00 ..C...........J...........P.../.
45320 00 00 00 0b c7 01 5b 00 00 19 77 00 00 00 00 0b c8 01 61 00 00 19 bf 00 00 00 00 0b c9 01 6f 00 ......[...w.......a...........o.
45340 00 1a 07 00 00 00 00 0b ca 01 79 00 00 1a 4f 00 00 00 00 0b cb 01 87 00 00 1a 97 00 00 00 00 0b ..........y...O.................
45360 cc 01 8b 00 00 1a df 00 00 00 00 0b cd 01 92 00 00 1b 27 00 00 00 00 0b ce 01 9f 00 00 1b 6f 00 ..................'...........o.
45380 00 00 00 0b cf 01 ab 00 00 1b b7 00 00 00 00 0b d0 01 b7 00 00 1b ff 00 00 00 00 0b d1 01 c2 00 ................................
453a0 00 1c 47 00 00 00 00 0b d2 01 cb 00 00 1c 8f 00 00 00 00 0b d3 01 d1 00 00 1c d7 00 00 00 00 0b ..G.............................
453c0 d4 01 d9 00 00 1d 1f 00 00 00 00 0b d5 01 df 00 00 1d 67 00 00 00 00 0b d6 01 e5 00 00 1d af 00 ..................g.............
453e0 00 00 00 0b d7 01 eb 00 00 1d f7 00 00 00 00 0b d8 01 f1 00 00 1e 3f 00 00 00 00 0b d9 01 f6 00 ......................?.........
45400 00 1e 87 00 00 00 00 0b da 02 01 00 00 1e cf 00 00 00 00 0b db 02 0a 00 00 1f 17 00 00 00 00 0b ................................
45420 dc 02 14 00 00 1f 5f 00 00 00 00 0b dd 02 1d 00 00 1f a7 00 00 00 00 0b de 02 28 00 00 1f ef 00 ......_...................(.....
45440 00 00 00 0b df 02 31 00 00 20 37 00 00 00 00 0b e0 02 3a 00 00 20 7f 00 00 00 00 0b e1 02 3e 00 ......1...7.......:...........>.
45460 00 20 c7 00 00 00 00 0b e2 02 4b 00 00 21 0f 00 00 00 00 0b e3 02 51 00 00 21 57 00 00 00 00 0b ..........K..!........Q..!W.....
45480 e4 02 58 00 00 21 9f 00 00 00 00 0b e5 02 5f 00 00 21 e7 00 00 00 00 0b e6 02 64 00 00 22 2f 00 ..X..!........_..!........d.."/.
454a0 00 00 00 0b e7 02 73 00 00 22 77 00 00 00 00 0b e8 02 7d 00 00 22 bf 00 00 00 00 0b e9 02 88 00 ......s.."w.......}.."..........
454c0 00 23 07 00 00 00 00 0b ea 02 92 00 00 23 4f 00 00 00 00 0b eb 02 9e 00 00 23 97 00 00 00 00 0b .#...........#O..........#......
454e0 ec 02 a7 00 00 23 df 00 00 00 00 0b ed 02 b0 00 00 24 27 00 00 00 00 0b ee 02 be 00 00 24 6f 00 .....#...........$'..........$o.
45500 00 00 00 0b ef 02 d0 00 00 24 b7 00 00 00 00 0b f0 02 de 00 00 24 ff 00 00 00 00 0b f1 02 ed 00 .........$...........$..........
45520 00 25 47 00 00 00 00 0b f2 02 f9 00 00 25 8f 00 00 00 00 0b f3 03 0b 00 00 25 d7 00 00 00 00 0b .%G..........%...........%......
45540 f4 03 13 00 00 26 1f 00 00 00 00 0b f5 03 1a 00 00 26 67 00 00 00 00 0b f6 03 21 00 00 26 af 00 .....&...........&g.......!..&..
45560 00 00 00 0b f7 03 2a 00 00 26 f7 00 00 00 00 0b f8 03 2f 00 00 27 3f 00 00 00 00 0b f9 03 36 00 ......*..&......../..'?.......6.
45580 00 27 87 00 00 00 00 0b fa 03 3d 00 00 27 cf 00 00 00 00 0b fb 03 4c 00 00 28 17 00 00 00 00 0b .'........=..'........L..(......
455a0 fc 03 5c 00 00 28 5f 00 00 00 00 0b fd 03 6d 00 00 28 a7 00 00 00 00 0b fe 03 76 00 00 28 ef 00 ..\..(_.......m..(........v..(..
455c0 00 00 00 0b ff 03 7e 00 00 29 37 00 00 00 00 0c 00 03 83 00 00 29 7f 00 00 00 00 0c 01 03 8c 00 ......~..)7..........)..........
455e0 00 29 c7 00 00 00 00 0c 02 03 95 00 00 2a 0f 00 00 00 00 0c 03 03 9e 00 00 2a 57 00 00 00 00 0c .)...........*...........*W.....
45600 04 03 a4 00 00 2a 9f 00 00 00 00 00 80 03 aa 20 00 2a e7 00 00 00 00 00 82 03 b4 20 00 2b 8f 00 .....*...........*...........+..
45620 00 00 00 00 80 03 c2 20 00 2c 41 00 00 00 00 00 82 ff ff 20 00 2c 5d 00 00 00 00 02 4f ff ff 04 .........,A..........,].....O...
45640 00 2c 79 00 00 00 00 00 84 ff ff 04 00 2d 4b 00 00 00 00 00 80 ff ff 00 00 2d 5f 00 00 00 00 00 .,y..........-K..........-_.....
45660 80 ff ff 14 00 41 07 00 00 00 00 ff ff ff ff 00 00 41 eb 00 00 00 00 00 80 03 d4 00 00 41 f9 00 .....A...........A...........A..
45680 00 00 00 00 0a 03 ee 24 00 42 60 00 00 00 00 00 0b 03 f1 24 00 6a b6 00 00 00 00 00 0c 03 f8 24 .......$.B`........$.j.........$
456a0 00 97 b9 00 00 00 00 00 0d 03 ff 24 00 af 30 00 00 00 00 00 0e 04 05 24 00 ed 2e 00 00 00 00 00 ...........$..0........$........
456c0 0f 04 0b 24 01 00 f7 00 00 00 00 00 10 04 13 24 01 35 5d 00 00 00 00 00 11 04 18 24 01 c1 7f 00 ...$...........$.5]........$....
456e0 00 00 00 00 12 04 23 24 01 c7 fe 00 00 00 00 00 13 04 2b 24 01 e4 e6 00 00 00 00 00 14 04 31 24 ......#$..........+$..........1$
45700 02 00 25 00 00 00 00 00 15 04 3b 24 02 2e 08 00 00 00 00 00 16 04 43 24 02 40 3d 00 00 00 00 00 ..%.......;$..........C$.@=.....
45720 17 04 48 24 02 ad e3 00 00 00 00 00 18 04 50 24 02 bb a0 00 00 00 00 00 19 04 58 24 02 eb d6 00 ..H$..........P$..........X$....
45740 00 00 00 00 1a 04 5f 24 03 25 9d 00 00 00 00 07 d0 04 66 20 03 41 a2 00 00 00 00 07 d1 04 6b 20 ......_$.%........f..A........k.
45760 03 84 a3 00 00 00 00 07 d2 04 70 24 03 cf 89 00 00 00 00 07 d3 04 78 20 04 17 c9 00 00 00 00 07 ..........p$..........x.........
45780 d4 04 80 24 04 3a ea 00 00 00 00 07 d5 04 85 24 04 4b f9 00 00 00 00 0f 46 69 6c 65 20 54 79 70 ...$.:.........$.K......File.Typ
457a0 65 73 20 6d 65 6e 75 04 68 61 6e 64 04 66 69 73 74 04 62 6f 61 74 05 63 6c 6f 63 6b 0a 63 6f 66 es.menu.hand.fist.boat.clock.cof
457c0 66 65 65 5f 6d 75 67 07 67 6f 62 62 6c 65 72 05 67 75 6d 62 79 05 68 65 61 72 74 05 6d 6f 75 73 fee_mug.gobbler.gumby.heart.mous
457e0 65 06 70 65 6e 63 69 6c 07 73 68 75 74 74 6c 65 08 73 70 72 61 79 63 61 6e 04 73 74 61 72 04 74 e.pencil.shuttle.spraycan.star.t
45800 72 65 6b 05 77 61 74 63 68 04 68 61 6e 64 06 62 75 63 6b 65 74 06 63 61 6e 63 65 6c 06 52 65 73 rek.watch.hand.bucket.cancel.Res
45820 69 7a 65 07 65 79 65 64 72 6f 70 0c 65 79 65 64 72 6f 70 2d 66 75 6c 6c 07 7a 6f 6f 6d 2d 69 6e ize.eyedrop.eyedrop-full.zoom-in
45840 08 7a 6f 6f 6d 2d 6f 75 74 08 58 5f 63 75 72 73 6f 72 05 61 72 72 6f 77 10 62 61 73 65 64 5f 61 .zoom-out.X_cursor.arrow.based_a
45860 72 72 6f 77 5f 64 6f 77 6e 0e 62 61 73 65 64 5f 61 72 72 6f 77 5f 75 70 04 62 6f 61 74 08 62 6f rrow_down.based_arrow_up.boat.bo
45880 67 6f 73 69 74 79 12 62 6f 74 74 6f 6d 5f 6c 65 66 74 5f 63 6f 72 6e 65 72 13 62 6f 74 74 6f 6d gosity.bottom_left_corner.bottom
458a0 5f 72 69 67 68 74 5f 63 6f 72 6e 65 72 0b 62 6f 74 74 6f 6d 5f 73 69 64 65 0a 62 6f 74 74 6f 6d _right_corner.bottom_side.bottom
458c0 5f 74 65 65 0a 62 6f 78 5f 73 70 69 72 61 6c 0a 63 65 6e 74 65 72 5f 70 74 72 06 63 69 72 63 6c _tee.box_spiral.center_ptr.circl
458e0 65 05 63 6c 6f 63 6b 0a 63 6f 66 66 65 65 5f 6d 75 67 05 63 72 6f 73 73 0d 63 72 6f 73 73 5f 72 e.clock.coffee_mug.cross.cross_r
45900 65 76 65 72 73 65 09 63 72 6f 73 73 68 61 69 72 0d 64 69 61 6d 6f 6e 64 5f 63 72 6f 73 73 03 64 everse.crosshair.diamond_cross.d
45920 6f 74 06 64 6f 74 62 6f 78 0c 64 6f 75 62 6c 65 5f 61 72 72 6f 77 0b 64 72 61 66 74 5f 6c 61 72 ot.dotbox.double_arrow.draft_lar
45940 67 65 0b 64 72 61 66 74 5f 73 6d 61 6c 6c 0a 64 72 61 70 65 64 5f 62 6f 78 08 65 78 63 68 61 6e ge.draft_small.draped_box.exchan
45960 67 65 05 66 6c 65 75 72 07 67 6f 62 62 6c 65 72 05 67 75 6d 62 79 05 68 61 6e 64 31 05 68 61 6e ge.fleur.gobbler.gumby.hand1.han
45980 64 32 05 68 65 61 72 74 04 69 63 6f 6e 0a 69 72 6f 6e 5f 63 72 6f 73 73 08 6c 65 66 74 5f 70 74 d2.heart.icon.iron_cross.left_pt
459a0 72 09 6c 65 66 74 5f 73 69 64 65 08 6c 65 66 74 5f 74 65 65 0a 6c 65 66 74 62 75 74 74 6f 6e 08 r.left_side.left_tee.leftbutton.
459c0 6c 6c 5f 61 6e 67 6c 65 08 6c 72 5f 61 6e 67 6c 65 03 6d 61 6e 0c 6d 69 64 64 6c 65 62 75 74 74 ll_angle.lr_angle.man.middlebutt
459e0 6f 6e 05 6d 6f 75 73 65 06 70 65 6e 63 69 6c 06 70 69 72 61 74 65 04 70 6c 75 73 0e 71 75 65 73 on.mouse.pencil.pirate.plus.ques
45a00 74 69 6f 6e 5f 61 72 72 6f 77 09 72 69 67 68 74 5f 70 74 72 0a 72 69 67 68 74 5f 73 69 64 65 09 tion_arrow.right_ptr.right_side.
45a20 72 69 67 68 74 5f 74 65 65 0b 72 69 67 68 74 62 75 74 74 6f 6e 08 72 74 6c 5f 6c 6f 67 6f 08 73 right_tee.rightbutton.rtl_logo.s
45a40 61 69 6c 62 6f 61 74 0d 73 62 5f 64 6f 77 6e 5f 61 72 72 6f 77 11 73 62 5f 68 5f 64 6f 75 62 6c ailboat.sb_down_arrow.sb_h_doubl
45a60 65 5f 61 72 72 6f 77 0d 73 62 5f 6c 65 66 74 5f 61 72 72 6f 77 0e 73 62 5f 72 69 67 68 74 5f 61 e_arrow.sb_left_arrow.sb_right_a
45a80 72 72 6f 77 0b 73 62 5f 75 70 5f 61 72 72 6f 77 11 73 62 5f 76 5f 64 6f 75 62 6c 65 5f 61 72 72 rrow.sb_up_arrow.sb_v_double_arr
45aa0 6f 77 07 73 68 75 74 74 6c 65 06 73 69 7a 69 6e 67 06 73 70 69 64 65 72 08 73 70 72 61 79 63 61 ow.shuttle.sizing.spider.sprayca
45ac0 6e 04 73 74 61 72 06 74 61 72 67 65 74 06 74 63 72 6f 73 73 0e 74 6f 70 5f 6c 65 66 74 5f 61 72 n.star.target.tcross.top_left_ar
45ae0 72 6f 77 0f 74 6f 70 5f 6c 65 66 74 5f 63 6f 72 6e 65 72 10 74 6f 70 5f 72 69 67 68 74 5f 63 6f row.top_left_corner.top_right_co
45b00 72 6e 65 72 08 74 6f 70 5f 73 69 64 65 07 74 6f 70 5f 74 65 65 04 74 72 65 6b 08 75 6c 5f 61 6e rner.top_side.top_tee.trek.ul_an
45b20 67 6c 65 08 75 6d 62 72 65 6c 6c 61 08 75 72 5f 61 6e 67 6c 65 05 77 61 74 63 68 05 78 74 65 72 gle.umbrella.ur_angle.watch.xter
45b40 6d 09 41 62 6f 75 74 20 42 6f 78 0d 46 69 6c 65 20 4f 70 65 6e 20 42 6f 78 11 44 65 66 61 75 6c m.About.Box.File.Open.Box.Defaul
45b60 74 20 41 62 6f 75 74 20 42 6f 78 19 54 63 6c 20 45 6e 76 69 72 6f 6e 6d 65 6e 74 20 56 61 72 69 t.About.Box.Tcl.Environment.Vari
45b80 61 62 6c 65 73 02 74 6b 06 62 75 74 74 6f 6e 06 64 69 61 6c 6f 67 05 65 6e 74 72 79 05 66 6f 63 ables.tk.button.dialog.entry.foc
45ba0 75 73 07 6c 69 73 74 62 6f 78 04 6d 65 6e 75 0a 6f 70 74 69 6f 6e 4d 65 6e 75 07 70 61 6c 65 74 us.listbox.menu.optionMenu.palet
45bc0 74 65 05 73 63 61 6c 65 09 73 63 72 6f 6c 6c 62 61 72 07 74 65 61 72 6f 66 66 04 74 65 78 74 07 te.scale.scrollbar.tearoff.text.
45be0 74 6b 65 72 72 6f 72 07 43 6f 6e 73 6f 6c 65 06 6d 73 67 62 6f 78 06 63 6f 6d 64 6c 67 04 49 6e tkerror.Console.msgbox.comdlg.In
45c00 69 74 04 41 75 74 6f 07 50 61 63 6b 61 67 65 07 48 69 73 74 6f 72 79 04 57 6f 72 64 06 50 61 72 it.Auto.Package.History.Word.Par
45c20 72 61 79 ray