Hex Artifact Content
Not logged in

Artifact 2f89485eaaa5fbdd0bb9736533e65e1e446fb331:


0000: 2e 54 48 20 74 63 6c 72 65 61 64 6c 69 6e 65 20  .TH tclreadline 
0010: 6e 20 22 40 54 43 4c 52 45 41 44 4c 49 4e 45 5f  n "@TCLREADLINE_
0020: 56 45 52 53 49 4f 4e 40 2e 40 54 43 4c 52 45 41  VERSION@.@TCLREA
0030: 44 4c 49 4e 45 5f 50 41 54 43 48 4c 45 56 45 4c  DLINE_PATCHLEVEL
0040: 40 22 20 22 4a 6f 68 61 6e 6e 65 73 20 5a 65 6c  @" "Johannes Zel
0050: 6c 6e 65 72 22 0a 0a 2e 5c 22 20 28 43 29 20 31  lner"...\" (C) 1
0060: 39 39 39 20 62 79 20 4a 6f 68 61 6e 6e 65 73 20  999 by Johannes 
0070: 5a 65 6c 6c 6e 65 72 0a 2e 5c 22 20 46 49 4c 45  Zellner..\" FILE
0080: 3a 20 22 2f 68 6f 6d 65 2f 6a 6f 7a 65 2f 73 72  : "/home/joze/sr
0090: 63 2f 74 63 6c 72 65 61 64 6c 69 6e 65 2f 74 63  c/tclreadline/tc
00a0: 6c 72 65 61 64 6c 69 6e 65 2e 6e 2e 69 6e 22 0a  lreadline.n.in".
00b0: 2e 5c 22 20 4c 41 53 54 20 4d 4f 44 49 46 49 43  .\" LAST MODIFIC
00c0: 41 54 49 4f 4e 3a 20 22 54 75 65 20 53 65 70 20  ATION: "Tue Sep 
00d0: 32 31 20 32 31 3a 31 38 3a 33 31 20 31 39 39 39  21 21:18:31 1999
00e0: 20 28 6a 6f 7a 65 29 22 0a 2e 5c 22 20 28 43 29   (joze)"..\" (C)
00f0: 20 31 39 39 38 2c 20 31 39 39 39 20 62 79 20 4a   1998, 1999 by J
0100: 6f 68 61 6e 6e 65 73 20 5a 65 6c 6c 6e 65 72 2c  ohannes Zellner,
0110: 20 3c 6a 6f 68 61 6e 6e 65 73 40 7a 65 6c 6c 6e   <johannes@zelln
0120: 65 72 2e 6f 72 67 3e 0a 2e 5c 22 20 24 49 64 24  er.org>..\" $Id$
0130: 0a 2e 5c 22 20 2d 2d 2d 0a 2e 5c 22 0a 2e 5c 22  ..\" ---..\"..\"
0140: 20 74 63 6c 72 65 61 64 6c 69 6e 65 20 2d 2d 20   tclreadline -- 
0150: 67 6e 75 20 72 65 61 64 6c 69 6e 65 20 66 6f 72  gnu readline for
0160: 20 74 68 65 20 74 63 6c 20 73 63 72 69 70 74 69   the tcl scripti
0170: 6e 67 20 6c 61 6e 67 75 61 67 65 0a 2e 5c 22 20  ng language..\" 
0180: 43 6f 70 79 72 69 67 68 74 20 28 43 29 20 31 39  Copyright (C) 19
0190: 39 39 20 20 4a 6f 68 61 6e 6e 65 73 20 5a 65 6c  99  Johannes Zel
01a0: 6c 6e 65 72 0a 2e 5c 22 0a 2e 5c 22 20 54 68 69  lner..\"..\" Thi
01b0: 73 20 70 72 6f 67 72 61 6d 20 69 73 20 66 72 65  s program is fre
01c0: 65 20 73 6f 66 74 77 61 72 65 3b 20 79 6f 75 20  e software; you 
01d0: 63 61 6e 20 72 65 64 69 73 74 72 69 62 75 74 65  can redistribute
01e0: 20 69 74 20 61 6e 64 2f 6f 72 0a 2e 5c 22 20 6d   it and/or..\" m
01f0: 6f 64 69 66 79 20 69 74 20 75 6e 64 65 72 20 74  odify it under t
0200: 68 65 20 74 65 72 6d 73 20 6f 66 20 74 68 65 20  he terms of the 
0210: 47 4e 55 20 47 65 6e 65 72 61 6c 20 50 75 62 6c  GNU General Publ
0220: 69 63 20 4c 69 63 65 6e 73 65 0a 2e 5c 22 20 61  ic License..\" a
0230: 73 20 70 75 62 6c 69 73 68 65 64 20 62 79 20 74  s published by t
0240: 68 65 20 46 72 65 65 20 53 6f 66 74 77 61 72 65  he Free Software
0250: 20 46 6f 75 6e 64 61 74 69 6f 6e 3b 20 65 69 74   Foundation; eit
0260: 68 65 72 20 76 65 72 73 69 6f 6e 20 32 0a 2e 5c  her version 2..\
0270: 22 20 6f 66 20 74 68 65 20 4c 69 63 65 6e 73 65  " of the License
0280: 2c 20 6f 72 20 28 61 74 20 79 6f 75 72 20 6f 70  , or (at your op
0290: 74 69 6f 6e 29 20 61 6e 79 20 6c 61 74 65 72 20  tion) any later 
02a0: 76 65 72 73 69 6f 6e 2e 0a 2e 5c 22 0a 2e 5c 22  version...\"..\"
02b0: 20 54 68 69 73 20 70 72 6f 67 72 61 6d 20 69 73   This program is
02c0: 20 64 69 73 74 72 69 62 75 74 65 64 20 69 6e 20   distributed in 
02d0: 74 68 65 20 68 6f 70 65 20 74 68 61 74 20 69 74  the hope that it
02e0: 20 77 69 6c 6c 20 62 65 20 75 73 65 66 75 6c 2c   will be useful,
02f0: 0a 2e 5c 22 20 62 75 74 20 57 49 54 48 4f 55 54  ..\" but WITHOUT
0300: 20 41 4e 59 20 57 41 52 52 41 4e 54 59 3b 20 77   ANY WARRANTY; w
0310: 69 74 68 6f 75 74 20 65 76 65 6e 20 74 68 65 20  ithout even the 
0320: 69 6d 70 6c 69 65 64 20 77 61 72 72 61 6e 74 79  implied warranty
0330: 20 6f 66 0a 2e 5c 22 20 4d 45 52 43 48 41 4e 54   of..\" MERCHANT
0340: 41 42 49 4c 49 54 59 20 6f 72 20 46 49 54 4e 45  ABILITY or FITNE
0350: 53 53 20 46 4f 52 20 41 20 50 41 52 54 49 43 55  SS FOR A PARTICU
0360: 4c 41 52 20 50 55 52 50 4f 53 45 2e 20 20 53 65  LAR PURPOSE.  Se
0370: 65 20 74 68 65 0a 2e 5c 22 20 47 4e 55 20 47 65  e the..\" GNU Ge
0380: 6e 65 72 61 6c 20 50 75 62 6c 69 63 20 4c 69 63  neral Public Lic
0390: 65 6e 73 65 20 66 6f 72 20 6d 6f 72 65 20 64 65  ense for more de
03a0: 74 61 69 6c 73 2e 0a 2e 5c 22 0a 2e 5c 22 20 59  tails...\"..\" Y
03b0: 6f 75 20 73 68 6f 75 6c 64 20 68 61 76 65 20 72  ou should have r
03c0: 65 63 65 69 76 65 64 20 61 20 63 6f 70 79 20 6f  eceived a copy o
03d0: 66 20 74 68 65 20 47 4e 55 20 47 65 6e 65 72 61  f the GNU Genera
03e0: 6c 20 50 75 62 6c 69 63 20 4c 69 63 65 6e 73 65  l Public License
03f0: 0a 2e 5c 22 20 61 6c 6f 6e 67 20 77 69 74 68 20  ..\" along with 
0400: 74 68 69 73 20 70 72 6f 67 72 61 6d 3b 20 69 66  this program; if
0410: 20 6e 6f 74 2c 20 77 72 69 74 65 20 74 6f 20 74   not, write to t
0420: 68 65 20 46 72 65 65 20 53 6f 66 74 77 61 72 65  he Free Software
0430: 0a 2e 5c 22 20 46 6f 75 6e 64 61 74 69 6f 6e 2c  ..\" Foundation,
0440: 20 49 6e 63 2e 2c 20 35 39 20 54 65 6d 70 6c 65   Inc., 59 Temple
0450: 20 50 6c 61 63 65 20 2d 20 53 75 69 74 65 20 33   Place - Suite 3
0460: 33 30 2c 20 42 6f 73 74 6f 6e 2c 20 4d 41 20 20  30, Boston, MA  
0470: 30 32 31 31 31 2d 31 33 30 37 2c 20 55 53 41 2e  02111-1307, USA.
0480: 0a 2e 5c 22 0a 2e 5c 22 20 3c 6a 6f 68 61 6e 6e  ..\"..\" <johann
0490: 65 73 40 7a 65 6c 6c 6e 65 72 2e 6f 72 67 3e 2c  es@zellner.org>,
04a0: 20 68 74 74 70 3a 2f 2f 77 77 77 2e 7a 65 6c 6c   http://www.zell
04b0: 6e 65 72 2e 6f 72 67 2f 74 63 6c 72 65 61 64 6c  ner.org/tclreadl
04c0: 69 6e 65 2f 0a 0a 0a 2e 5c 22 09 23 20 43 53 20  ine/....\".# CS 
04d0: 2d 20 62 65 67 69 6e 20 63 6f 64 65 20 65 78 63  - begin code exc
04e0: 65 72 70 74 0a 2e 64 65 20 43 53 0a 2e 52 53 0a  erpt..de CS..RS.
04f0: 2e 6e 66 0a 2e 74 61 20 2e 32 35 69 20 2e 35 69  .nf..ta .25i .5i
0500: 20 2e 37 35 69 20 31 69 0a 2e 2e 0a 2e 5c 22 09   .75i 1i.....\".
0510: 23 20 43 45 20 2d 20 65 6e 64 20 63 6f 64 65 20  # CE - end code 
0520: 65 78 63 65 72 70 74 0a 2e 64 65 20 43 45 0a 2e  excerpt..de CE..
0530: 66 69 0a 2e 52 45 0a 2e 2e 0a 0a 2e 53 48 20 22  fi..RE......SH "
0540: 4e 41 4d 45 22 0a 74 63 6c 72 65 61 64 6c 69 6e  NAME".tclreadlin
0550: 65 20 5c 2d 20 67 6e 75 20 72 65 61 64 6c 69 6e  e \- gnu readlin
0560: 65 20 66 6f 72 20 74 68 65 20 74 63 6c 20 73 63  e for the tcl sc
0570: 72 69 70 74 69 6e 67 20 6c 61 6e 67 75 61 67 65  ripting language
0580: 0a 0a 2e 53 48 20 22 53 59 4e 4f 50 53 49 53 22  ...SH "SYNOPSIS"
0590: 0a 2e 54 50 20 36 0a 5c 66 42 3a 3a 74 63 6c 72  ..TP 6.\fB::tclr
05a0: 65 61 64 6c 69 6e 65 3a 3a 72 65 61 64 6c 69 6e  eadline::readlin
05b0: 65 5c 66 50 20 5c 66 49 63 6f 6d 6d 61 6e 64 5c  e\fP \fIcommand\
05c0: 66 50 20 5b 5c 66 49 6f 70 74 69 6f 6e 73 5c 66  fP [\fIoptions\f
05d0: 50 5d 0a 0a 0a 2e 53 48 20 22 44 45 53 43 52 49  P]....SH "DESCRI
05e0: 50 54 49 4f 4e 22 0a 0a 54 68 65 20 5c 66 42 74  PTION"..The \fBt
05f0: 63 6c 72 65 61 64 6c 69 6e 65 5c 66 50 20 70 61  clreadline\fP pa
0600: 63 6b 61 67 65 20 6d 61 6b 65 73 20 74 68 65 20  ckage makes the 
0610: 67 6e 75 20 72 65 61 64 6c 69 6e 65 20 61 76 61  gnu readline ava
0620: 69 6c 61 62 6c 65 0a 74 6f 20 74 68 65 20 73 63  ilable.to the sc
0630: 72 69 70 74 69 6e 67 20 6c 61 6e 67 75 61 67 65  ripting language
0640: 20 74 63 6c 2e 20 54 68 65 20 70 72 69 6d 61 72   tcl. The primar
0650: 79 20 70 75 72 70 6f 73 65 20 6f 66 20 74 68 65  y purpose of the
0660: 20 70 61 63 6b 61 67 65 0a 69 73 20 74 6f 20 66   package.is to f
0670: 61 63 69 6c 69 74 61 74 65 20 74 68 65 20 69 6e  acilitate the in
0680: 74 65 72 61 63 74 69 76 65 20 73 63 72 69 70 74  teractive script
0690: 20 64 65 76 65 6c 6f 70 6d 65 6e 74 20 62 79 20   development by 
06a0: 74 68 65 20 6d 65 61 6e 73 0a 6f 66 20 77 6f 72  the means.of wor
06b0: 64 20 61 6e 64 20 66 69 6c 65 20 6e 61 6d 65 20  d and file name 
06c0: 63 6f 6d 70 6c 65 74 69 6f 6e 20 61 73 20 77 65  completion as we
06d0: 6c 6c 20 61 73 20 68 69 73 74 6f 72 79 20 65 78  ll as history ex
06e0: 70 61 6e 73 69 6f 6e 0a 28 77 65 6c 6c 20 6b 6e  pansion.(well kn
06f0: 6f 77 6e 20 66 72 6f 6d 20 73 68 65 6c 6c 73 20  own from shells 
0700: 6c 69 6b 65 20 62 61 73 68 29 2e 0a 0a 41 64 64  like bash)...Add
0710: 69 74 69 6f 6e 61 6c 6c 79 20 74 63 6c 72 65 61  itionally tclrea
0720: 64 6c 69 6e 65 20 63 61 6e 20 61 6c 73 6f 20 62  dline can also b
0730: 65 20 75 73 65 64 20 66 6f 72 20 74 63 6c 20 73  e used for tcl s
0740: 63 72 69 70 74 73 0a 77 68 69 63 68 20 77 61 6e  cripts.which wan
0750: 74 20 74 6f 20 75 73 65 20 61 20 73 68 65 6c 6c  t to use a shell
0760: 20 6c 69 6b 65 20 69 6e 70 75 74 20 69 6e 74 65   like input inte
0770: 72 66 61 63 65 2e 20 49 6e 20 74 68 69 73 20 63  rface. In this c
0780: 61 73 65 20 74 68 65 0a 5c 66 42 3a 3a 74 63 6c  ase the.\fB::tcl
0790: 72 65 61 64 6c 69 6e 65 3a 3a 72 65 61 64 6c 69  readline::readli
07a0: 6e 65 20 72 65 61 64 5c 66 50 20 63 6f 6d 6d 61  ne read\fP comma
07b0: 6e 64 20 68 61 73 20 74 6f 20 62 65 20 63 61 6c  nd has to be cal
07c0: 6c 65 64 20 65 78 70 6c 69 63 69 74 6c 79 2e 0a  led explicitly..
07d0: 0a 2e 50 50 0a 0a 54 68 65 20 61 64 76 61 6e 74  ..PP..The advant
07e0: 61 67 65 20 6f 66 20 5c 66 42 74 63 6c 72 65 61  age of \fBtclrea
07f0: 64 6c 69 6e 65 5c 66 50 20 69 73 20 74 68 61 74  dline\fP is that
0800: 20 69 74 20 75 73 65 73 20 74 68 65 20 63 61 6c   it uses the cal
0810: 6c 62 61 63 6b 0a 68 61 6e 64 6c 65 72 20 6d 65  lback.handler me
0820: 63 68 61 6e 69 73 6d 20 6f 66 20 74 68 65 20 67  chanism of the g
0830: 6e 75 20 72 65 61 64 6c 69 6e 65 20 77 68 69 6c  nu readline whil
0840: 65 20 69 74 20 70 72 6f 63 65 73 73 65 73 20 74  e it processes t
0850: 63 6c 0a 65 76 65 6e 74 73 2e 20 54 68 69 73 20  cl.events. This 
0860: 77 61 79 20 58 20 65 76 65 6e 74 73 20 66 72 6f  way X events fro
0870: 6d 20 61 20 77 69 73 68 20 67 75 69 20 77 69 6c  m a wish gui wil
0880: 6c 20 70 72 6f 63 65 73 73 65 64 20 61 73 0a 77  l processed as.w
0890: 65 6c 6c 20 61 73 20 65 76 65 6e 74 73 20 66 72  ell as events fr
08a0: 6f 6d 20 74 68 65 20 5c 66 50 74 63 6c 72 65 61  om the \fPtclrea
08b0: 64 6c 69 6e 65 5c 66 50 20 6c 69 6e 65 20 69 6e  dline\fP line in
08c0: 74 65 72 66 61 63 65 2e 0a 0a 2e 50 50 0a 0a 5c  terface....PP..\
08d0: 66 42 74 63 6c 72 65 61 64 6c 69 6e 65 5c 66 50  fBtclreadline\fP
08e0: 20 69 73 20 62 61 73 69 63 61 6c 6c 79 20 61 20   is basically a 
08f0: 73 68 61 72 65 64 20 6c 69 62 72 61 72 79 20 61  shared library a
0900: 6e 64 20 61 20 66 65 77 20 74 63 6c 20 73 63 72  nd a few tcl scr
0910: 69 70 74 73 0a 77 68 69 63 68 20 61 72 65 20 61  ipts.which are a
0920: 63 63 65 73 73 65 64 20 77 69 74 68 20 74 68 65  ccessed with the
0930: 20 74 63 6c 20 70 61 63 6b 61 67 65 20 72 65 71   tcl package req
0940: 75 69 72 65 20 63 6f 6d 6d 61 6e 64 2e 20 54 68  uire command. Th
0950: 65 72 65 66 6f 72 65 0a 5c 66 42 74 63 6c 72 65  erefore.\fBtclre
0960: 61 64 6c 69 6e 65 5c 66 50 20 73 68 6f 75 6c 64  adline\fP should
0970: 20 77 6f 72 6b 20 77 69 74 68 20 61 6c 6c 20 63   work with all c
0980: 6f 6d 6d 6f 6e 20 65 78 74 65 6e 73 69 6f 6e 73  ommon extensions
0990: 20 6c 69 6b 65 0a 5c 66 42 62 6c 74 2c 20 69 74   like.\fBblt, it
09a0: 63 6c 2c 20 69 74 6b 2c 20 74 69 78 20 2e 2e 2e  cl, itk, tix ...
09b0: 5c 66 50 2e 0a 0a 0a 2e 5c 22 20 2e 53 48 20 53  \fP.....\" .SH S
09c0: 4f 55 52 43 45 20 46 49 4c 45 53 0a 0a 0a 2e 53  OURCE FILES....S
09d0: 48 20 22 43 4f 4d 4d 41 4e 44 53 22 0a 0a 49 66  H "COMMANDS"..If
09e0: 20 79 6f 75 20 77 61 6e 74 20 74 6f 20 75 73 65   you want to use
09f0: 20 5c 66 42 74 63 6c 72 65 61 64 6c 69 6e 65 5c   \fBtclreadline\
0a00: 66 50 20 61 73 20 61 20 6c 69 6e 65 20 69 6e 74  fP as a line int
0a10: 65 72 66 61 63 65 0a 66 6f 72 20 64 65 76 65 6c  erface.for devel
0a20: 6f 70 69 6e 67 20 74 63 6c 20 73 63 72 69 70 74  oping tcl script
0a30: 73 2c 20 79 6f 75 20 70 72 6f 62 61 62 6c 79 20  s, you probably 
0a40: 64 6f 6e 27 74 20 68 61 76 65 20 74 6f 20 72 65  don't have to re
0a50: 61 64 0a 74 68 69 73 20 73 65 63 74 69 6f 6e 2e  ad.this section.
0a60: 20 49 6e 20 74 68 69 73 20 63 61 73 65 20 74 68   In this case th
0a70: 65 20 6f 6e 6c 79 20 74 68 69 6e 67 20 79 6f 75  e only thing you
0a80: 20 73 68 6f 75 6c 64 20 64 6f 20 69 73 0a 74 6f   should do is.to
0a90: 20 6d 6f 64 69 66 79 20 79 6f 75 72 20 2e 74 63   modify your .tc
0aa0: 6c 73 68 72 63 20 61 63 63 6f 72 64 69 6e 67 20  lshrc according 
0ab0: 74 6f 20 74 68 65 20 73 65 63 74 69 6f 6e 20 5c  to the section \
0ac0: 66 42 46 49 4c 45 53 5c 66 50 2e 0a 0a 46 6f 72  fBFILES\fP...For
0ad0: 20 74 68 65 20 66 75 6e 63 74 69 6f 6e 61 6c 69   the functionali
0ae0: 74 79 20 6f 66 20 74 68 65 20 47 4e 55 20 72 65  ty of the GNU re
0af0: 61 64 6c 69 6e 65 20 79 6f 75 20 73 68 6f 75 6c  adline you shoul
0b00: 64 20 72 65 66 65 72 20 74 6f 0a 74 68 65 20 72  d refer to.the r
0b10: 65 61 64 6c 69 6e 65 27 73 20 64 6f 63 75 6d 65  eadline's docume
0b20: 6e 74 61 74 69 6f 6e 2e 0a 0a 2e 50 50 0a 54 68  ntation....PP.Th
0b30: 65 20 66 6f 6c 6c 6f 77 69 6e 67 20 6c 69 73 74  e following list
0b40: 20 77 69 6c 6c 20 67 69 76 65 20 61 6c 6c 20 63   will give all c
0b50: 6f 6d 6d 61 6e 64 73 2c 20 77 68 69 63 68 20 61  ommands, which a
0b60: 72 65 20 63 75 72 72 65 6e 74 6c 79 0a 69 6d 70  re currently.imp
0b70: 6c 65 6d 65 6e 74 65 64 20 69 6e 20 74 68 65 20  lemented in the 
0b80: 73 68 61 72 65 64 20 6c 69 62 20 28 65 2e 67 2e  shared lib (e.g.
0b90: 20 6c 69 62 74 63 6c 72 65 61 64 6c 69 6e 65 40   libtclreadline@
0ba0: 54 43 4c 52 45 41 44 4c 49 4e 45 5f 56 45 52 53  TCLREADLINE_VERS
0bb0: 49 4f 4e 40 2e 73 6f 29 2e 0a 41 64 64 69 74 69  ION@.so)..Additi
0bc0: 6f 6e 61 6c 20 63 6f 6d 6d 61 6e 64 73 20 77 65  onal commands we
0bd0: 72 65 20 69 6e 74 72 6f 64 75 63 65 64 20 69 6e  re introduced in
0be0: 20 61 20 73 74 61 72 74 75 70 20 73 63 72 69 70   a startup scrip
0bf0: 74 0a 5c 66 42 74 63 6c 72 65 61 64 6c 69 6e 65  t.\fBtclreadline
0c00: 53 65 74 75 70 2e 74 63 6c 5c 66 50 2c 20 77 68  Setup.tcl\fP, wh
0c10: 69 63 68 20 6c 69 76 65 73 20 69 6e 20 74 68 65  ich lives in the
0c20: 20 74 63 6c 72 65 61 64 6c 69 6e 65 0a 69 6e 73   tclreadline.ins
0c30: 74 61 6c 6c 61 74 69 6f 6e 20 64 69 72 65 63 74  tallation direct
0c40: 6f 72 79 2e 0a 28 74 79 70 69 63 61 6c 6c 79 20  ory..(typically 
0c50: 73 6f 6d 65 74 68 69 6e 67 20 6c 69 6b 65 20 2f  something like /
0c60: 75 73 72 2f 6c 6f 63 61 6c 2f 6c 69 62 2f 74 63  usr/local/lib/tc
0c70: 6c 72 65 61 64 6c 69 6e 65 20 2e 2e 29 0a 54 68  lreadline ..).Th
0c80: 65 73 65 20 63 6f 6d 6d 61 6e 64 73 20 61 72 65  ese commands are
0c90: 20 70 72 69 6d 61 72 69 6c 79 20 66 6f 72 20 69   primarily for i
0ca0: 6e 74 65 72 6e 61 6c 20 75 73 65 20 61 6e 64 20  nternal use and 
0cb0: 6e 6f 74 20 64 6f 63 75 6d 65 6e 74 65 64 20 68  not documented h
0cc0: 65 72 65 2e 0a 0a 4e 6f 74 65 20 74 68 61 74 20  ere...Note that 
0cd0: 61 6c 6c 20 63 6f 6d 6d 61 6e 64 73 20 72 65 73  all commands res
0ce0: 69 64 65 20 69 6e 20 74 68 65 20 6e 61 6d 65 73  ide in the names
0cf0: 70 61 63 65 20 5c 66 42 3a 3a 74 63 6c 72 65 61  pace \fB::tclrea
0d00: 64 6c 69 6e 65 3a 3a 5c 66 50 2e 0a 0a 0a 2e 54  dline::\fP.....T
0d10: 50 20 35 0a 5c 66 42 3a 3a 74 63 6c 72 65 61 64  P 5.\fB::tclread
0d20: 6c 69 6e 65 3a 3a 72 65 61 64 6c 69 6e 65 20 61  line::readline a
0d30: 64 64 5c 66 50 20 5c 66 49 73 74 72 69 6e 67 5c  dd\fP \fIstring\
0d40: 66 50 0a 61 64 64 73 20 61 20 73 74 72 69 6e 67  fP.adds a string
0d50: 20 74 6f 20 74 68 65 20 63 6f 6d 70 6c 65 74 65   to the complete
0d60: 72 2e 20 49 66 20 74 68 65 20 73 74 72 69 6e 67  r. If the string
0d70: 20 63 6f 6e 74 61 69 6e 73 20 77 68 69 74 65 0a   contains white.
0d80: 73 70 61 63 65 73 2c 20 65 61 63 68 20 6f 66 20  spaces, each of 
0d90: 74 68 65 20 77 6f 72 64 73 20 77 69 6c 6c 20 62  the words will b
0da0: 65 20 63 6f 6d 70 6c 65 74 65 64 20 63 6f 6e 73  e completed cons
0db0: 65 63 75 74 69 76 65 6c 79 20 77 68 65 6e 0a 68  ecutively when.h
0dc0: 69 74 74 69 6e 67 20 3c 54 61 62 3e 2e 20 45 78  itting <Tab>. Ex
0dd0: 61 6d 70 6c 65 3a 0a 0a 20 20 20 20 3a 3a 74 63  ample:..    ::tc
0de0: 6c 72 65 61 64 6c 69 6e 65 3a 3a 72 65 61 64 6c  lreadline::readl
0df0: 69 6e 65 20 61 64 64 20 22 62 75 74 74 6f 6e 20  ine add "button 
0e00: 70 61 74 68 4e 61 6d 65 20 3f 6f 70 74 69 6f 6e  pathName ?option
0e10: 73 3f 22 0a 0a 74 79 70 69 6e 67 20 62 75 74 3c  s?"..typing but<
0e20: 54 61 62 3e 20 77 69 6c 6c 20 63 6f 6d 70 6c 65  Tab> will comple
0e30: 74 65 20 74 6f 20 62 75 74 74 6f 6e 2e 20 48 69  te to button. Hi
0e40: 74 74 69 6e 67 20 3c 54 61 62 3e 20 61 67 61 69  tting <Tab> agai
0e50: 6e 0a 77 69 6c 6c 20 63 6f 6d 70 6c 65 74 65 20  n.will complete 
0e60: 74 6f 20 22 62 75 74 74 6f 6e 20 70 61 74 68 4e  to "button pathN
0e70: 61 6d 65 22 2e 20 20 2e 2e 2e 0a 0a 2e 54 50 20  ame".  ......TP 
0e80: 35 0a 5c 66 42 3a 3a 74 63 6c 72 65 61 64 6c 69  5.\fB::tclreadli
0e90: 6e 65 3a 3a 72 65 61 64 6c 69 6e 65 20 63 6f 6d  ne::readline com
0ea0: 70 6c 65 74 65 5c 66 50 20 5c 66 49 73 74 72 69  plete\fP \fIstri
0eb0: 6e 67 5c 66 50 0a 72 65 74 75 72 6e 73 20 31 20  ng\fP.returns 1 
0ec0: 69 66 20 5c 66 49 73 74 72 69 6e 67 5c 66 50 20  if \fIstring\fP 
0ed0: 69 73 20 61 20 63 6f 6d 70 6c 65 74 65 20 74 63  is a complete tc
0ee0: 6c 20 63 6f 6d 6d 61 6e 64 20 61 6e 64 20 30 20  l command and 0 
0ef0: 6f 74 68 65 72 77 69 73 65 2e 0a 0a 2e 54 50 20  otherwise....TP 
0f00: 35 0a 5c 66 42 3a 3a 74 63 6c 72 65 61 64 6c 69  5.\fB::tclreadli
0f10: 6e 65 3a 3a 72 65 61 64 6c 69 6e 65 20 63 75 73  ne::readline cus
0f20: 74 6f 6d 63 6f 6d 70 6c 65 74 65 72 5c 66 50 20  tomcompleter\fP 
0f30: 5b 5c 66 49 73 74 72 69 6e 67 5c 66 50 5d 0a 52  [\fIstring\fP].R
0f40: 65 67 69 73 74 65 72 20 74 68 65 20 70 72 6f 63  egister the proc
0f50: 20 5c 66 49 73 74 72 69 6e 67 5c 66 50 20 61 73   \fIstring\fP as
0f60: 20 63 75 73 74 6f 6d 20 63 6f 6d 70 6c 65 74 65   custom complete
0f70: 72 2e 20 54 68 69 73 20 70 72 6f 63 20 69 73 20  r. This proc is 
0f80: 63 61 6c 6c 65 64 0a 77 69 74 68 20 65 78 61 63  called.with exac
0f90: 74 6c 79 20 66 6f 75 72 20 61 72 67 75 6d 65 6e  tly four argumen
0fa0: 74 73 20 65 61 63 68 20 74 69 6d 65 20 63 6f 6d  ts each time com
0fb0: 70 6c 65 74 69 6f 6e 20 74 61 6b 65 73 20 70 6c  pletion takes pl
0fc0: 61 63 65 3a 0a 74 68 65 20 77 6f 72 64 20 74 6f  ace:.the word to
0fd0: 20 63 6f 6d 70 6c 65 74 65 20 28 22 74 65 78 74   complete ("text
0fe0: 22 29 2c 20 74 68 65 20 22 73 74 61 72 74 22 20  "), the "start" 
0ff0: 61 6e 64 20 22 65 6e 64 22 20 70 6f 73 69 74 69  and "end" positi
1000: 6f 6e 73 20 6f 66 20 74 68 69 73 20 77 6f 72 64  ons of this word
1010: 0a 69 6e 20 74 68 65 20 6c 69 6e 65 20 65 6e 74  .in the line ent
1020: 65 72 65 64 20 73 6f 20 66 61 72 2c 20 61 6e 64  ered so far, and
1030: 20 74 68 69 73 20 6c 69 6e 65 20 28 22 6c 69 6e   this line ("lin
1040: 65 22 29 2e 20 54 68 65 20 63 75 73 74 6f 6d 20  e"). The custom 
1050: 63 6f 6d 70 6c 65 74 69 6f 6e 0a 73 63 72 69 70  completion.scrip
1060: 74 20 73 68 6f 75 6c 64 20 72 65 74 75 72 6e 20  t should return 
1070: 61 6e 20 61 72 72 61 79 20 6f 66 20 73 74 72 69  an array of stri
1080: 6e 67 73 20 77 68 69 63 68 20 69 73 20 61 20 6c  ngs which is a l
1090: 69 73 74 20 6f 66 20 63 6f 6d 70 6c 65 74 69 6f  ist of completio
10a0: 6e 73 0a 66 6f 72 20 22 74 65 78 74 22 2e 20 20  ns.for "text".  
10b0: 49 66 20 74 68 65 72 65 20 61 72 65 20 6e 6f 20  If there are no 
10c0: 63 6f 6d 70 6c 65 74 69 6f 6e 73 2c 20 69 74 20  completions, it 
10d0: 73 68 6f 75 6c 64 20 72 65 74 75 72 6e 20 61 6e  should return an
10e0: 20 65 6d 70 74 79 0a 73 74 72 69 6e 67 20 22 22   empty.string ""
10f0: 2e 20 20 54 68 65 20 66 69 72 73 74 20 65 6e 74  .  The first ent
1100: 72 79 20 69 6e 20 74 68 65 20 72 65 74 75 72 6e  ry in the return
1110: 65 64 20 6c 69 73 74 20 69 73 20 74 68 65 20 73  ed list is the s
1120: 75 62 73 74 69 74 75 74 69 6f 6e 0a 66 6f 72 20  ubstitution.for 
1130: 22 74 65 78 74 22 2e 20 54 68 65 20 72 65 6d 61  "text". The rema
1140: 69 6e 69 6e 67 20 65 6e 74 72 69 65 73 20 61 72  ining entries ar
1150: 65 20 74 68 65 20 70 6f 73 73 69 62 6c 65 20 63  e the possible c
1160: 6f 6d 70 6c 65 74 69 6f 6e 73 2e 20 49 66 0a 74  ompletions. If.t
1170: 68 65 20 63 75 73 74 6f 6d 20 63 6f 6d 70 6c 65  he custom comple
1180: 74 69 6f 6e 20 73 63 72 69 70 74 20 72 65 74 75  tion script retu
1190: 72 6e 73 20 61 6e 20 65 6d 70 74 79 20 73 74 72  rns an empty str
11a0: 69 6e 67 20 61 6e 64 20 62 75 69 6c 74 69 6e 0a  ing and builtin.
11b0: 63 6f 6d 70 6c 65 74 69 6f 6e 20 69 73 20 65 6e  completion is en
11c0: 61 62 6c 65 64 20 28 73 65 65 20 5c 66 42 74 63  abled (see \fBtc
11d0: 6c 72 65 61 64 6c 69 6e 65 3a 3a 72 65 61 64 6c  lreadline::readl
11e0: 69 6e 65 20 62 75 69 6c 74 69 6e 63 6f 6d 70 6c  ine builtincompl
11f0: 65 74 65 72 5c 66 50 29 2c 0a 74 68 65 20 62 75  eter\fP),.the bu
1200: 69 6c 74 69 6e 20 63 6f 6d 70 6c 65 74 65 72 20  iltin completer 
1210: 69 73 20 63 61 6c 6c 65 64 2e 0a 5c 66 42 74 63  is called..\fBtc
1220: 6c 72 65 61 64 6c 69 6e 65 3a 3a 72 65 61 64 6c  lreadline::readl
1230: 69 6e 65 20 63 75 73 74 6f 6d 63 6f 6d 70 6c 65  ine customcomple
1240: 74 65 72 5c 66 50 20 73 69 6d 70 6c 79 20 72 65  ter\fP simply re
1250: 74 75 72 6e 73 20 74 68 65 20 63 75 72 72 65 6e  turns the curren
1260: 74 0a 63 75 73 74 6f 6d 20 63 6f 6d 70 6c 65 74  t.custom complet
1270: 65 72 20 69 66 20 63 61 6c 6c 65 64 20 77 2f 6f  er if called w/o
1280: 20 5c 66 49 73 74 72 69 6e 67 5c 66 50 2e 20 54   \fIstring\fP. T
1290: 6f 20 74 75 72 6e 20 6f 66 20 63 75 73 74 6f 6d  o turn of custom
12a0: 0a 63 6f 6d 70 6c 65 74 69 6f 6e 2c 20 63 61 6c  .completion, cal
12b0: 6c 20 5c 66 42 74 63 6c 72 65 61 64 6c 69 6e 65  l \fBtclreadline
12c0: 3a 3a 72 65 61 64 6c 69 6e 65 20 63 75 73 74 6f  ::readline custo
12d0: 6d 63 6f 6d 70 6c 65 74 65 72 5c 66 50 20 77 69  mcompleter\fP wi
12e0: 74 68 0a 61 6e 20 65 6d 70 74 79 20 5c 66 49 73  th.an empty \fIs
12f0: 74 72 69 6e 67 5c 66 50 2e 0a 0a 45 78 61 6d 70  tring\fP...Examp
1300: 6c 65 3a 20 5c 66 42 25 20 70 75 74 73 20 24 62  le: \fB% puts $b
1310: 3c 54 41 42 3e 5c 66 50 20 77 69 6c 6c 20 63 61  <TAB>\fP will ca
1320: 6c 6c 20 74 68 65 20 63 75 73 74 6f 6d 20 63 6f  ll the custom co
1330: 6d 70 6c 65 74 65 72 0a 77 69 74 68 20 74 68 65  mpleter.with the
1340: 20 66 6f 75 72 20 61 72 67 75 6d 65 6e 74 73 20   four arguments 
1350: 5c 66 49 22 24 62 22 5c 66 50 2c 20 5c 66 49 22  \fI"$b"\fP, \fI"
1360: 35 22 5c 66 50 2c 20 5c 66 49 22 38 22 5c 66 50  5"\fP, \fI"8"\fP
1370: 20 61 6e 64 20 5c 66 49 22 70 75 74 73 20 24 62   and \fI"puts $b
1380: 22 5c 66 50 2e 0a 54 68 65 20 63 75 73 74 6f 6d  "\fP..The custom
1390: 20 63 6f 6d 70 6c 65 74 65 72 20 63 6f 75 6c 64   completer could
13a0: 20 72 65 74 75 72 6e 20 61 20 73 74 72 69 6e 67   return a string
13b0: 20 6c 69 6b 65 20 22 24 62 6c 20 24 62 6c 61 63   like "$bl $blac
13c0: 6b 20 24 62 6c 75 65 22 2c 20 77 68 69 63 68 0a  k $blue", which.
13d0: 77 69 6c 6c 20 63 6f 6d 70 6c 65 74 65 20 22 24  will complete "$
13e0: 62 22 20 74 6f 20 22 24 62 6c 22 20 28 74 68 65  b" to "$bl" (the
13f0: 20 6c 6f 6e 67 65 73 74 20 6d 61 74 63 68 29 20   longest match) 
1400: 61 6e 64 20 6f 66 66 65 72 20 61 20 6c 69 73 74  and offer a list
1410: 20 6f 66 20 74 77 6f 0a 66 75 72 74 68 65 72 20   of two.further 
1420: 6d 61 74 63 68 65 73 20 22 24 62 6c 61 63 6b 22  matches "$black"
1430: 20 61 6e 64 20 22 24 62 6c 75 65 22 2e 0a 0a 46   and "$blue"...F
1440: 6f 72 20 66 75 72 74 68 65 72 20 72 65 66 65 72  or further refer
1450: 65 6e 63 65 2c 20 73 65 65 20 74 68 65 20 70 72  ence, see the pr
1460: 6f 63 20 74 63 6c 72 65 61 64 6c 69 6e 65 3a 3a  oc tclreadline::
1470: 53 63 72 69 70 74 43 6f 6d 70 6c 65 74 65 72 20  ScriptCompleter 
1480: 69 6e 0a 74 68 65 20 66 69 6c 65 20 74 63 6c 72  in.the file tclr
1490: 65 61 64 6c 69 6e 65 53 65 74 75 70 2e 74 63 6c  eadlineSetup.tcl
14a0: 2e 0a 0a 2e 54 50 20 35 0a 5c 66 42 3a 3a 74 63  ....TP 5.\fB::tc
14b0: 6c 72 65 61 64 6c 69 6e 65 3a 3a 72 65 61 64 6c  lreadline::readl
14c0: 69 6e 65 20 62 75 69 6c 74 69 6e 63 6f 6d 70 6c  ine builtincompl
14d0: 65 74 65 72 5c 66 50 20 5b 5c 66 49 62 6f 6f 6c  eter\fP [\fIbool
14e0: 5c 66 50 5d 0a 65 6e 61 62 6c 65 20 6f 72 20 64  \fP].enable or d
14f0: 69 73 61 62 6c 65 20 74 68 65 20 62 75 69 6c 74  isable the built
1500: 69 6e 20 63 6f 6d 70 6c 65 74 65 72 2e 20 49 66  in completer. If
1510: 20 74 68 65 20 62 75 69 6c 74 69 6e 20 63 6f 6d   the builtin com
1520: 70 6c 65 74 65 72 0a 69 73 20 65 6e 61 62 6c 65  pleter.is enable
1530: 64 2c 20 69 74 20 77 69 6c 6c 20 62 65 20 69 6e  d, it will be in
1540: 76 6f 6b 65 64 20 65 69 74 68 65 72 20 69 66 20  voked either if 
1550: 74 68 65 72 65 20 69 73 20 6e 6f 20 63 75 73 74  there is no cust
1560: 6f 6d 20 63 6f 6d 70 6c 65 74 65 72 2c 0a 6f 72  om completer,.or
1570: 20 74 68 65 20 63 75 73 74 6f 6d 20 63 6f 6d 70   the custom comp
1580: 6c 65 74 65 72 20 72 65 74 75 72 6e 65 64 20 61  leter returned a
1590: 6e 20 65 6d 70 74 79 20 20 73 74 72 69 6e 67 2e  n empty  string.
15a0: 20 54 68 65 20 62 75 69 6c 74 69 6e 0a 63 6f 6d   The builtin.com
15b0: 70 6c 65 74 65 72 20 69 73 20 6f 6e 20 62 79 20  pleter is on by 
15c0: 64 65 66 61 75 6c 74 2e 0a 5c 66 42 74 63 6c 72  default..\fBtclr
15d0: 65 61 64 6c 69 6e 65 3a 3a 72 65 61 64 6c 69 6e  eadline::readlin
15e0: 65 20 62 75 69 6c 74 69 6e 63 6f 6d 70 6c 65 74  e builtincomplet
15f0: 65 72 5c 66 50 20 72 65 74 75 72 6e 73 20 74 68  er\fP returns th
1600: 65 20 63 75 72 72 65 6e 74 0a 63 75 73 74 6f 6d  e current.custom
1610: 20 63 6f 6d 70 6c 65 74 65 72 20 28 61 6c 73 6f   completer (also
1620: 2c 20 69 66 20 63 61 6c 6c 65 64 20 77 2f 6f 20  , if called w/o 
1630: 74 68 65 20 5c 66 49 62 6f 6f 6c 5c 66 50 20 61  the \fIbool\fP a
1640: 72 67 75 6d 65 6e 74 29 2e 0a 0a 2e 54 50 20 35  rgument)....TP 5
1650: 0a 5c 66 42 3a 3a 74 63 6c 72 65 61 64 6c 69 6e  .\fB::tclreadlin
1660: 65 3a 3a 72 65 61 64 6c 69 6e 65 20 65 6f 66 63  e::readline eofc
1670: 68 61 72 5c 66 50 20 5b 5c 66 49 73 63 72 69 70  har\fP [\fIscrip
1680: 74 5c 66 50 5d 0a 73 65 74 20 61 20 73 63 72 69  t\fP].set a scri
1690: 70 74 20 77 68 69 63 68 20 77 69 6c 6c 20 62 65  pt which will be
16a0: 20 63 61 6c 6c 65 64 2c 20 69 66 20 72 65 61 64   called, if read
16b0: 6c 69 6e 65 20 72 65 74 75 72 6e 73 20 74 68 65  line returns the
16c0: 20 65 6f 66 20 63 68 61 72 61 63 74 65 72 0a 28   eof character.(
16d0: 74 68 69 73 20 69 73 20 74 79 70 69 63 61 6c 6c  this is typicall
16e0: 79 20 74 68 65 20 63 61 73 65 20 69 66 20 43 54  y the case if CT
16f0: 52 4c 2d 44 20 69 73 20 65 6e 74 65 72 65 64 20  RL-D is entered 
1700: 61 74 20 74 68 65 20 76 65 72 79 20 62 65 67 69  at the very begi
1710: 6e 6e 69 6e 67 0a 6f 66 20 74 68 65 20 6c 69 6e  nning.of the lin
1720: 65 29 2e 20 54 68 65 20 64 65 66 61 75 6c 74 20  e). The default 
1730: 66 6f 72 20 74 68 69 73 20 73 63 72 69 70 74 20  for this script 
1740: 69 73 20 22 70 75 74 73 20 7b 7d 3b 20 65 78 69  is "puts {}; exi
1750: 74 22 2e 20 53 65 74 74 69 6e 67 0a 74 68 69 73  t". Setting.this
1760: 20 74 6f 20 61 6e 20 65 6d 70 74 79 20 76 61 6c   to an empty val
1770: 75 65 20 64 69 73 61 62 6c 65 73 20 61 6e 79 20  ue disables any 
1780: 61 63 74 69 6f 6e 20 6f 6e 20 65 6f 66 2e 0a 5c  action on eof..\
1790: 66 42 74 63 6c 72 65 61 64 6c 69 6e 65 3a 3a 72  fBtclreadline::r
17a0: 65 61 64 6c 69 6e 65 20 65 6f 66 5c 66 50 20 72  eadline eof\fP r
17b0: 65 74 75 72 6e 73 20 74 68 65 20 63 75 72 72 65  eturns the curre
17c0: 6e 74 20 65 6f 66 20 73 63 72 69 70 74 2e 0a 0a  nt eof script...
17d0: 2e 54 50 20 35 0a 5c 66 42 3a 3a 74 63 6c 72 65  .TP 5.\fB::tclre
17e0: 61 64 6c 69 6e 65 3a 3a 72 65 61 64 6c 69 6e 65  adline::readline
17f0: 20 69 6e 69 74 69 61 6c 69 7a 65 5c 66 50 20 5c   initialize\fP \
1800: 66 49 68 69 73 74 6f 72 79 66 69 6c 65 5c 66 50  fIhistoryfile\fP
1810: 0a 69 6e 69 74 69 61 6c 69 7a 65 20 74 68 65 20  .initialize the 
1820: 74 63 6c 72 65 61 64 6c 69 6e 65 20 69 6e 74 65  tclreadline inte
1830: 72 66 61 63 65 20 61 6e 64 20 72 65 61 64 20 74  rface and read t
1840: 68 65 20 68 69 73 74 6f 72 79 20 66 72 6f 6d 0a  he history from.
1850: 74 68 65 20 5c 66 49 68 69 73 74 6f 72 79 66 69  the \fIhistoryfi
1860: 6c 65 5c 66 50 2e 20 4f 6e 20 73 75 63 63 65 73  le\fP. On succes
1870: 20 61 6e 20 65 6d 70 74 79 20 73 74 72 69 6e 67   an empty string
1880: 20 69 73 20 72 65 74 75 72 6e 65 64 2e 0a 54 68   is returned..Th
1890: 69 73 20 63 6f 6d 6d 61 6e 64 20 68 61 73 20 74  is command has t
18a0: 6f 20 62 65 20 63 61 6c 6c 65 64 20 62 65 66 6f  o be called befo
18b0: 72 65 20 61 6e 79 20 6f 74 68 65 72 20 74 63 6c  re any other tcl
18c0: 72 65 61 64 6c 69 6e 65 20 63 6f 6d 6d 61 6e 64  readline command
18d0: 73 2e 0a 0a 2e 54 50 20 35 0a 5c 66 42 3a 3a 74  s....TP 5.\fB::t
18e0: 63 6c 72 65 61 64 6c 69 6e 65 3a 3a 72 65 61 64  clreadline::read
18f0: 6c 69 6e 65 20 72 65 61 64 5c 66 50 20 5c 66 49  line read\fP \fI
1900: 70 72 6f 6d 70 74 5c 66 50 0a 70 72 69 6e 74 73  prompt\fP.prints
1910: 20 74 68 65 20 5c 66 49 70 72 6f 6d 70 74 5c 66   the \fIprompt\f
1920: 50 20 74 6f 20 73 74 64 6f 75 74 20 61 6e 64 20  P to stdout and 
1930: 65 6e 74 65 72 73 20 74 68 65 20 74 63 6c 72 65  enters the tclre
1940: 61 64 6c 69 6e 65 20 65 76 65 6e 74 0a 6c 6f 6f  adline event.loo
1950: 70 2e 20 42 6f 74 68 20 72 65 61 64 6c 69 6e 65  p. Both readline
1960: 20 61 6e 64 20 58 20 65 76 65 6e 74 73 20 61 72   and X events ar
1970: 65 20 70 72 6f 63 65 73 73 65 64 2e 20 52 65 74  e processed. Ret
1980: 75 72 6e 73 20 74 68 65 0a 28 65 76 65 6e 74 75  urns the.(eventu
1990: 61 6c 6c 79 20 68 69 73 74 6f 72 79 2d 65 78 70  ally history-exp
19a0: 61 6e 64 65 64 29 20 69 6e 70 75 74 20 73 74 72  anded) input str
19b0: 69 6e 67 2e 0a 5c 66 42 74 63 6c 72 65 61 64 6c  ing..\fBtclreadl
19c0: 69 6e 65 3a 3a 72 65 61 64 6c 69 6e 65 20 72 65  ine::readline re
19d0: 61 64 5c 66 50 20 72 69 73 65 73 20 61 6e 20 65  ad\fP rises an e
19e0: 72 72 6f 72 2c 20 69 66 20 61 6e 0a 65 72 72 6f  rror, if an.erro
19f0: 72 20 6f 63 63 75 72 73 20 77 68 69 6c 65 20 65  r occurs while e
1a00: 76 61 6c 75 61 74 69 6e 67 20 61 20 73 63 72 69  valuating a scri
1a10: 70 74 20 63 6f 6d 70 6c 65 74 65 72 2e 0a 0a 2e  pt completer....
1a20: 54 50 20 35 0a 5c 66 42 3a 3a 74 63 6c 72 65 61  TP 5.\fB::tclrea
1a30: 64 6c 69 6e 65 3a 3a 72 65 61 64 6c 69 6e 65 20  dline::readline 
1a40: 77 72 69 74 65 5c 66 50 20 5c 66 49 68 69 73 74  write\fP \fIhist
1a50: 6f 72 79 66 69 6c 65 5c 66 50 0a 77 72 69 74 65  oryfile\fP.write
1a60: 73 20 74 68 65 20 68 69 73 74 6f 72 79 20 74 6f  s the history to
1a70: 20 74 68 65 20 5c 66 49 68 69 73 74 6f 72 79 66   the \fIhistoryf
1a80: 69 6c 65 5c 66 50 2e 20 54 68 69 73 20 63 6f 6d  ile\fP. This com
1a90: 6d 61 6e 64 20 69 73 20 63 61 6c 6c 65 64 0a 61  mand is called.a
1aa0: 75 74 6f 6d 61 74 69 63 61 6c 6c 79 20 66 72 6f  utomatically fro
1ab0: 6d 20 74 68 65 20 69 6e 74 65 72 6e 61 6c 20 72  m the internal r
1ac0: 6f 75 74 69 6e 65 20 3a 3a 74 63 6c 72 65 61 64  outine ::tclread
1ad0: 6c 69 6e 65 3a 3a 45 78 69 74 2e 0a 49 66 20 74  line::Exit..If t
1ae0: 68 65 20 76 61 72 69 61 62 6c 65 20 5c 66 42 74  he variable \fBt
1af0: 63 6c 72 65 61 64 6c 69 6e 65 3a 3a 68 69 73 74  clreadline::hist
1b00: 6f 72 79 4c 65 6e 67 74 68 5c 66 50 20 69 73 20  oryLength\fP is 
1b10: 6e 6f 6e 2d 6e 65 67 61 74 69 76 65 2c 0a 74 68  non-negative,.th
1b20: 65 20 68 69 73 74 6f 72 79 66 69 6c 65 20 77 69  e historyfile wi
1b30: 6c 6c 20 62 65 20 74 72 75 6e 63 61 74 65 64 20  ll be truncated 
1b40: 74 6f 20 68 6f 6c 64 20 6f 6e 6c 79 20 74 68 69  to hold only thi
1b50: 73 20 6e 75 6d 62 65 72 20 6c 69 6e 65 73 2e 0a  s number lines..
1b60: 0a 2e 54 50 20 35 0a 5c 66 42 3a 3a 74 63 6c 72  ..TP 5.\fB::tclr
1b70: 65 61 64 6c 69 6e 65 3a 3a 72 65 61 64 6c 69 6e  eadline::readlin
1b80: 65 20 72 65 73 65 74 2d 74 65 72 6d 69 6e 61 6c  e reset-terminal
1b90: 5c 66 50 20 5b 5c 66 49 74 65 72 6d 69 6e 61 6c  \fP [\fIterminal
1ba0: 4e 61 6d 65 5c 66 50 5d 0a 77 2f 6f 20 61 72 67  Name\fP].w/o arg
1bb0: 75 6d 65 6e 74 3a 20 72 65 73 65 74 20 74 68 65  ument: reset the
1bc0: 20 73 74 61 74 65 20 6f 66 20 74 68 65 20 74 65   state of the te
1bd0: 72 6d 69 6e 61 6c 20 74 6f 20 77 68 61 74 20 69  rminal to what i
1be0: 74 20 77 61 73 0a 62 65 66 6f 72 65 20 74 63 6c  t was.before tcl
1bf0: 72 65 61 64 6c 69 6e 65 20 77 61 73 20 75 73 65  readline was use
1c00: 64 2e 20 57 69 74 68 20 61 72 67 75 6d 65 6e 74  d. With argument
1c10: 3a 20 72 65 69 6e 69 74 69 61 6c 69 7a 65 20 72  : reinitialize r
1c20: 65 61 64 6c 69 6e 65 27 73 0a 69 64 65 61 20 6f  eadline's.idea o
1c30: 66 20 74 68 65 20 74 65 72 6d 69 6e 61 6c 20 73  f the terminal s
1c40: 65 74 74 69 6e 67 73 20 75 73 69 6e 67 20 74 65  ettings using te
1c50: 72 6d 69 6e 61 6c 4e 61 6d 65 20 61 73 20 74 68  rminalName as th
1c60: 65 20 74 65 72 6d 69 6e 61 6c 20 74 79 70 65 2e  e terminal type.
1c70: 0a 54 68 65 20 66 6f 72 6d 20 77 2f 6f 20 61 72  .The form w/o ar
1c80: 67 75 6d 65 6e 74 20 6d 69 67 68 74 20 6e 6f 74  gument might not
1c90: 20 77 6f 72 6b 20 69 66 20 74 63 6c 72 65 61 64   work if tclread
1ca0: 6c 69 6e 65 20 77 61 73 20 63 6f 6d 70 69 6c 65  line was compile
1cb0: 64 0a 77 69 74 68 20 61 6e 20 6f 6c 64 65 72 20  d.with an older 
1cc0: 76 65 72 73 69 6f 6e 20 6f 66 20 6c 69 62 72 65  version of libre
1cd0: 61 64 6c 69 6e 65 2e 0a 0a 2e 54 50 20 35 0a 5c  adline....TP 5.\
1ce0: 66 42 3a 3a 74 63 6c 72 65 61 64 6c 69 6e 65 3a  fB::tclreadline:
1cf0: 3a 72 65 61 64 6c 69 6e 65 20 62 65 6c 6c 5c 66  :readline bell\f
1d00: 50 0a 52 69 6e 67 20 74 68 65 20 74 65 72 6d 69  P.Ring the termi
1d10: 6e 61 6c 20 62 65 6c 6c 2c 20 6f 62 65 79 69 6e  nal bell, obeyin
1d20: 67 20 74 68 65 20 73 65 74 74 69 6e 67 20 6f 66  g the setting of
1d30: 20 62 65 6c 6c 2d 73 74 79 6c 65 0a 2d 2d 20 61   bell-style.-- a
1d40: 75 64 69 62 6c 65 20 6f 72 20 76 69 73 69 62 6c  udible or visibl
1d50: 65 2e 0a 0a 2e 54 50 20 35 0a 5c 66 42 3a 3a 74  e....TP 5.\fB::t
1d60: 63 6c 72 65 61 64 6c 69 6e 65 3a 3a 50 72 69 6e  clreadline::Prin
1d70: 74 5c 66 50 20 5b 5c 66 49 79 65 73 20 2f 20 6e  t\fP [\fIyes / n
1d80: 6f 5c 66 50 5d 0a 74 75 72 6e 73 20 6f 6e 20 6f  o\fP].turns on o
1d90: 72 20 6f 66 66 20 74 68 65 20 64 65 66 61 75 6c  r off the defaul
1da0: 74 20 62 65 68 61 76 69 6f 72 20 6f 66 20 74 63  t behavior of tc
1db0: 6c 73 68 20 74 6f 20 70 72 69 6e 74 20 74 68 65  lsh to print the
1dc0: 20 72 65 73 75 6c 74 20 6f 66 0a 65 76 65 72 79   result of.every
1dd0: 20 63 6f 6d 6d 61 6e 64 2e 20 54 68 69 73 20 69   command. This i
1de0: 73 20 74 75 72 6e 65 64 20 6f 6e 20 62 79 20 64  s turned on by d
1df0: 65 66 61 75 6c 74 2c 20 73 6f 20 69 74 20 77 69  efault, so it wi
1e00: 6c 6c 20 6a 75 73 74 20 62 65 68 61 76 65 0a 61  ll just behave.a
1e10: 73 20 74 68 65 20 74 63 6c 73 68 20 77 2f 6f 20  s the tclsh w/o 
1e20: 74 63 6c 72 65 61 64 6c 69 6e 65 2e 20 54 75 72  tclreadline. Tur
1e30: 6e 69 6e 67 20 6f 66 66 20 6d 69 67 68 74 20 62  ning off might b
1e40: 65 20 75 73 65 66 75 6c 2c 20 77 68 65 6e 20 72  e useful, when r
1e50: 65 61 64 69 6e 67 0a 62 69 6e 61 72 79 20 64 61  eading.binary da
1e60: 74 61 20 66 6f 72 20 65 78 61 6d 70 6c 65 2e 20  ta for example. 
1e70: 49 66 20 5c 66 42 3a 3a 74 63 6c 72 65 61 64 6c  If \fB::tclreadl
1e80: 69 6e 65 3a 3a 50 72 69 6e 74 5c 66 50 20 69 73  ine::Print\fP is
1e90: 20 63 61 6c 6c 65 64 20 77 2f 6f 0a 61 72 67 75   called w/o.argu
1ea0: 6d 65 6e 74 73 2c 20 69 74 20 72 65 74 75 72 6e  ments, it return
1eb0: 73 20 74 68 65 20 63 75 72 72 65 6e 74 20 73 65  s the current se
1ec0: 74 74 69 6e 67 2e 0a 0a 2e 54 50 20 35 0a 5c 66  tting....TP 5.\f
1ed0: 42 3a 3a 74 63 6c 72 65 61 64 6c 69 6e 65 3a 3a  B::tclreadline::
1ee0: 4c 6f 6f 70 5c 66 50 20 5b 5c 66 49 68 69 73 74  Loop\fP [\fIhist
1ef0: 6f 72 79 66 69 6c 65 5c 66 50 5d 0a 65 6e 74 65  oryfile\fP].ente
1f00: 72 20 74 68 65 20 74 63 6c 72 65 61 64 6c 69 6e  r the tclreadlin
1f10: 65 20 6d 61 69 6e 20 6c 6f 6f 70 2e 20 54 68 69  e main loop. Thi
1f20: 73 20 63 6f 6d 6d 61 6e 64 20 69 73 20 74 79 70  s command is typ
1f30: 69 63 61 6c 6c 79 20 63 61 6c 6c 65 64 20 66 72  ically called fr
1f40: 6f 6d 0a 74 68 65 20 73 74 61 72 74 75 70 20 72  om.the startup r
1f50: 65 73 6f 75 72 63 65 20 66 69 6c 65 20 28 73 6f  esource file (so
1f60: 6d 65 74 68 69 6e 67 20 2e 74 63 6c 73 68 72 63  mething .tclshrc
1f70: 2c 20 64 65 70 65 6e 64 69 6e 67 20 6f 6e 20 74  , depending on t
1f80: 68 65 20 69 6e 74 65 72 70 72 65 74 65 72 0a 79  he interpreter.y
1f90: 6f 75 20 75 73 65 2c 20 73 65 65 20 74 68 65 20  ou use, see the 
1fa0: 66 69 6c 65 20 60 73 61 6d 70 6c 65 2e 74 63 6c  file `sample.tcl
1fb0: 73 68 72 63 27 29 2e 20 54 68 65 20 6d 61 69 6e  shrc'). The main
1fc0: 20 6c 6f 6f 70 20 73 65 74 73 20 75 70 20 73 6f   loop sets up so
1fd0: 6d 65 0a 63 6f 6d 70 6c 65 74 69 6f 6e 20 63 68  me.completion ch
1fe0: 61 72 61 63 74 65 72 69 73 74 69 63 73 20 61 73  aracteristics as
1ff0: 20 76 61 72 69 61 62 6c 65 20 2d 2d 20 74 72 79   variable -- try
2000: 20 73 6f 6d 65 74 68 69 6e 67 20 6c 69 6b 65 20   something like 
2010: 22 70 75 74 73 20 24 62 3c 54 41 42 3e 22 20 2d  "puts $b<TAB>" -
2020: 2d 20 0a 61 6e 64 20 63 6f 6d 6d 61 6e 64 20 63  - .and command c
2030: 6f 6d 70 6c 65 74 69 6f 6e 20 2d 2d 20 74 72 79  ompletion -- try
2040: 20 22 70 75 74 73 20 5b 69 6e 3c 54 41 42 3e 22   "puts [in<TAB>"
2050: 2e 0a 49 66 20 74 68 65 20 6f 70 74 69 6f 6e 61  ..If the optiona
2060: 6c 20 61 72 67 75 6d 65 6e 74 20 5c 66 49 68 69  l argument \fIhi
2070: 73 74 6f 72 79 66 69 6c 65 5c 66 50 20 69 73 20  storyfile\fP is 
2080: 67 69 76 65 6e 2c 20 74 68 69 73 20 66 69 6c 65  given, this file
2090: 20 77 69 6c 6c 0a 62 65 20 75 73 65 64 20 66 6f   will.be used fo
20a0: 72 20 72 65 61 64 69 6e 67 20 61 6e 64 20 77 72  r reading and wr
20b0: 69 74 69 6e 67 20 74 68 65 20 63 6f 6d 6d 61 6e  iting the comman
20c0: 64 20 68 69 73 74 6f 72 79 20 69 6e 73 74 65 61  d history instea
20d0: 64 20 6f 66 20 74 68 65 0a 64 65 66 61 75 6c 74  d of the.default
20e0: 20 5c 66 42 2e 74 63 6c 73 68 2d 68 69 73 74 6f   \fB.tclsh-histo
20f0: 72 79 5c 66 50 2e 0a 5c 66 42 3a 3a 74 63 6c 72  ry\fP..\fB::tclr
2100: 65 61 64 6c 69 6e 65 3a 3a 4c 6f 6f 70 5c 66 50  eadline::Loop\fP
2110: 20 77 69 6c 6c 20 6e 6f 72 6d 61 6c 6c 79 20 6e   will normally n
2120: 6f 74 20 72 65 74 75 72 6e 2e 20 0a 49 66 20 79  ot return. .If y
2130: 6f 75 20 77 61 6e 74 20 74 6f 20 77 72 69 74 65  ou want to write
2140: 20 79 6f 75 72 20 6f 77 6e 20 6d 61 69 6e 20 6c   your own main l
2150: 6f 6f 70 20 61 6e 64 2f 6f 72 20 6f 77 6e 20 63  oop and/or own c
2160: 75 73 74 6f 6d 20 63 6f 6d 70 6c 65 74 65 72 73  ustom completers
2170: 2c 0a 69 74 20 69 73 20 70 72 6f 62 61 62 6c 79  ,.it is probably
2180: 20 61 20 67 6f 6f 64 20 69 64 65 61 20 74 6f 20   a good idea to 
2190: 73 74 61 72 74 20 77 69 74 68 20 74 63 6c 72 65  start with tclre
21a0: 61 64 6c 69 6e 65 3a 3a 4c 6f 6f 70 0a 28 73 65  adline::Loop.(se
21b0: 65 20 74 68 65 20 66 69 6c 65 20 74 63 6c 72 65  e the file tclre
21c0: 61 64 6c 69 6e 65 53 65 74 75 70 2e 74 63 6c 29  adlineSetup.tcl)
21d0: 2e 0a 0a 2e 54 50 20 35 0a 5c 66 42 3a 3a 74 63  ....TP 5.\fB::tc
21e0: 6c 72 65 61 64 6c 69 6e 65 3a 3a 70 72 6f 6d 70  lreadline::promp
21f0: 74 31 5c 66 50 0a 61 20 70 72 6f 63 20 77 68 69  t1\fP.a proc whi
2200: 63 68 20 69 73 20 63 61 6c 6c 65 64 20 62 79 20  ch is called by 
2210: 3a 3a 74 63 6c 72 65 61 64 6c 69 6e 65 3a 3a 4c  ::tclreadline::L
2220: 6f 6f 70 20 61 6e 64 20 72 65 74 75 72 6e 73 20  oop and returns 
2230: 61 20 73 74 72 69 6e 67 0a 77 68 69 63 68 20 77  a string.which w
2240: 69 6c 6c 20 62 65 20 64 69 73 70 6c 61 79 65 64  ill be displayed
2250: 20 61 73 20 74 68 65 20 70 72 69 6d 61 72 79 20   as the primary 
2260: 70 72 6f 6d 70 74 2e 20 54 68 69 73 20 70 72 6f  prompt. This pro
2270: 6d 70 74 20 77 69 6c 6c 20 62 65 0a 73 6f 6d 65  mpt will be.some
2280: 74 68 69 6e 67 20 6c 69 6b 65 20 22 5b 69 6e 66  thing like "[inf
2290: 6f 20 6e 61 6d 65 6f 66 65 78 65 63 75 74 61 62  o nameofexecutab
22a0: 6c 65 5d 20 5c 5b 5b 70 77 64 5d 5c 5d 22 20 70  le] \[[pwd]\]" p
22b0: 6f 73 73 69 62 6c 79 20 66 61 6e 63 79 20 63 6f  ossibly fancy co
22c0: 6c 6f 72 65 64 2e 0a 54 68 65 20 64 65 66 61 75  lored..The defau
22d0: 6c 74 20 70 72 6f 63 20 69 73 20 64 65 66 69 6e  lt proc is defin
22e0: 65 64 20 6f 6e 20 65 6e 74 65 72 69 6e 67 20 74  ed on entering t
22f0: 68 65 20 3a 3a 74 63 6c 72 65 61 64 6c 69 6e 65  he ::tclreadline
2300: 3a 3a 4c 6f 6f 70 2c 0a 69 66 20 69 74 20 69 73  ::Loop,.if it is
2310: 20 6e 6f 74 20 61 6c 72 65 61 64 79 20 64 65 66   not already def
2320: 69 6e 65 64 2e 20 53 6f 3a 20 49 66 20 79 6f 75  ined. So: If you
2330: 20 64 65 66 69 6e 65 20 79 6f 75 72 20 6f 77 6e   define your own
2340: 20 70 72 6f 63 0a 3a 3a 74 63 6c 72 65 61 64 6c   proc.::tclreadl
2350: 69 6e 65 3a 3a 70 72 6f 6d 70 74 31 20 62 65 66  ine::prompt1 bef
2360: 6f 72 65 20 65 6e 74 65 72 69 6e 67 20 3a 3a 74  ore entering ::t
2370: 63 6c 72 65 61 64 6c 69 6e 65 3a 3a 4c 6f 6f 70  clreadline::Loop
2380: 2c 20 74 68 69 73 0a 70 72 6f 63 20 69 73 20 63  , this.proc is c
2390: 61 6c 6c 65 64 20 65 61 63 68 20 74 69 6d 65 20  alled each time 
23a0: 74 68 65 20 70 72 6f 6d 70 74 20 69 73 20 74 6f  the prompt is to
23b0: 20 62 65 20 64 69 73 70 6c 61 79 65 64 2e 0a 45   be displayed..E
23c0: 78 61 6d 70 6c 65 3a 0a 2e 43 53 0a 20 20 20 20  xample:..CS.    
23d0: 70 61 63 6b 61 67 65 20 72 65 71 75 69 72 65 20  package require 
23e0: 74 63 6c 72 65 61 64 6c 69 6e 65 0a 20 20 20 20  tclreadline.    
23f0: 6e 61 6d 65 73 70 61 63 65 20 65 76 61 6c 20 74  namespace eval t
2400: 63 6c 72 65 61 64 6c 69 6e 65 20 7b 0a 20 20 20  clreadline {.   
2410: 20 20 20 20 20 70 72 6f 63 20 70 72 6f 6d 70 74       proc prompt
2420: 31 20 7b 7d 20 7b 0a 20 20 20 20 20 20 20 20 20  1 {} {.         
2430: 20 20 20 72 65 74 75 72 6e 20 22 5b 63 6c 6f 63     return "[cloc
2440: 6b 20 66 6f 72 6d 61 74 20 5b 63 6c 6f 63 6b 20  k format [clock 
2450: 73 65 63 6f 6e 64 73 5d 5d 3e 20 22 0a 20 20 20  seconds]]> ".   
2460: 20 20 20 20 20 7d 0a 20 20 20 20 7d 0a 20 20 20       }.    }.   
2470: 20 3a 3a 74 63 6c 72 65 61 64 6c 69 6e 65 3a 3a   ::tclreadline::
2480: 4c 6f 6f 70 0a 2e 43 45 0a 0a 4e 6f 74 65 20 74  Loop..CE..Note t
2490: 68 61 74 20 6e 6f 6e 2d 70 72 69 6e 74 61 62 6c  hat non-printabl
24a0: 65 20 63 6f 6e 74 72 6f 6c 20 63 68 61 72 61 63  e control charac
24b0: 74 65 72 73 20 61 73 20 63 6f 6c 6f 72 20 63 6f  ters as color co
24c0: 6e 74 72 6f 6c 20 63 68 61 72 61 63 74 65 72 73  ntrol characters
24d0: 0a 6d 75 73 74 20 62 65 20 65 6e 63 6c 6f 73 65  .must be enclose
24e0: 64 20 69 6e 20 6c 69 74 65 72 61 6c 20 63 74 72  d in literal ctr
24f0: 6c 2d 61 20 2f 20 63 74 72 6c 2d 62 20 74 6f 20  l-a / ctrl-b to 
2500: 74 65 6c 6c 20 72 65 61 64 6c 69 6e 65 20 74 68  tell readline th
2510: 65 20 6c 65 6e 67 74 68 0a 6f 66 20 74 68 65 20  e length.of the 
2520: 70 72 69 6e 74 61 62 6c 65 20 70 72 6f 6d 70 74  printable prompt
2530: 2e 20 53 65 65 20 66 6f 72 20 65 78 61 6d 70 6c  . See for exampl
2540: 65 20 74 68 65 20 76 61 72 69 61 62 6c 65 20 60  e the variable `
2550: 70 72 6f 6d 70 74 5f 73 74 72 69 6e 67 27 0a 69  prompt_string'.i
2560: 6e 20 74 68 65 20 66 69 6c 65 20 74 63 6c 72 65  n the file tclre
2570: 61 64 6c 69 6e 65 53 65 74 75 70 2e 74 63 6c 20  adlineSetup.tcl 
2580: 69 6e 20 79 6f 75 72 20 74 63 6c 72 65 61 64 6c  in your tclreadl
2590: 69 6e 65 20 69 6e 73 74 61 6c 6c 61 74 69 6f 6e  ine installation
25a0: 20 64 69 72 65 63 74 6f 72 79 2e 0a 0a 0a 2e 5c   directory.....\
25b0: 22 20 2e 53 48 20 22 45 58 41 4d 50 4c 45 53 22  " .SH "EXAMPLES"
25c0: 0a 0a 0a 2e 5c 22 20 2e 53 48 20 22 45 4e 56 49  ....\" .SH "ENVI
25d0: 52 4f 4e 4d 45 4e 54 20 56 41 52 49 41 42 4c 45  RONMENT VARIABLE
25e0: 53 22 0a 0a 2e 53 48 20 22 56 41 52 49 41 42 4c  S"...SH "VARIABL
25f0: 45 53 22 0a 0a 5c 66 49 74 63 6c 72 65 61 64 6c  ES"..\fItclreadl
2600: 69 6e 65 5c 66 50 20 64 65 66 69 6e 65 73 20 74  ine\fP defines t
2610: 68 65 20 66 6f 6c 6c 6f 77 69 6e 67 20 76 61 72  he following var
2620: 69 61 62 6c 65 73 20 69 6e 20 74 68 65 0a 6e 61  iables in the.na
2630: 6d 65 73 70 61 63 65 20 5c 66 49 3a 3a 74 63 6c  mespace \fI::tcl
2640: 72 65 61 64 6c 69 6e 65 5c 66 50 3a 0a 28 66 6f  readline\fP:.(fo
2650: 72 20 62 61 63 6b 77 61 72 64 73 20 63 6f 6d 70  r backwards comp
2660: 61 74 69 62 6c 69 74 79 20 74 68 65 20 67 6c 6f  atiblity the glo
2670: 62 61 6c 20 76 61 72 69 61 62 6c 65 73 20 74 63  bal variables tc
2680: 6c 72 65 61 64 6c 69 6e 65 5f 76 65 72 73 69 6f  lreadline_versio
2690: 6e 2c 0a 20 74 63 6c 72 65 61 64 6c 69 6e 65 5f  n,. tclreadline_
26a0: 70 61 74 63 68 4c 65 76 65 6c 20 61 6e 64 20 74  patchLevel and t
26b0: 63 6c 72 65 61 64 6c 69 6e 65 5f 6c 69 62 72 61  clreadline_libra
26c0: 72 79 20 61 72 65 20 73 74 69 6c 6c 20 70 72 65  ry are still pre
26d0: 73 65 6e 74 29 2e 0a 0a 2e 54 50 20 35 0a 5c 66  sent)....TP 5.\f
26e0: 42 74 63 6c 72 65 61 64 6c 69 6e 65 3a 3a 76 65  Btclreadline::ve
26f0: 72 73 69 6f 6e 5c 66 50 0a 68 6f 6c 64 73 20 74  rsion\fP.holds t
2700: 68 65 20 76 65 72 73 69 6f 6e 20 73 74 72 69 6e  he version strin
2710: 67 20 22 40 54 43 4c 52 45 41 44 4c 49 4e 45 5f  g "@TCLREADLINE_
2720: 56 45 52 53 49 4f 4e 40 22 2e 0a 0a 2e 54 50 20  VERSION@"....TP 
2730: 35 0a 5c 66 42 74 63 6c 72 65 61 64 6c 69 6e 65  5.\fBtclreadline
2740: 3a 3a 70 61 74 63 68 4c 65 76 65 6c 5c 66 50 0a  ::patchLevel\fP.
2750: 68 6f 6c 64 73 20 74 68 65 20 70 61 74 63 68 20  holds the patch 
2760: 6c 65 76 65 6c 20 73 74 72 69 6e 67 20 22 40 54  level string "@T
2770: 43 4c 52 45 41 44 4c 49 4e 45 5f 56 45 52 53 49  CLREADLINE_VERSI
2780: 4f 4e 40 2e 40 54 43 4c 52 45 41 44 4c 49 4e 45  ON@.@TCLREADLINE
2790: 5f 50 41 54 43 48 4c 45 56 45 4c 40 22 2e 0a 0a  _PATCHLEVEL@"...
27a0: 2e 54 50 20 35 0a 5c 66 42 74 63 6c 72 65 61 64  .TP 5.\fBtclread
27b0: 6c 69 6e 65 3a 3a 6c 69 62 72 61 72 79 5c 66 50  line::library\fP
27c0: 0a 68 6f 6c 64 73 20 74 68 65 20 6c 69 62 72 61  .holds the libra
27d0: 72 79 20 73 74 72 69 6e 67 20 22 40 54 43 4c 52  ry string "@TCLR
27e0: 45 41 44 4c 49 4e 45 5f 4c 49 42 52 41 52 59 40  EADLINE_LIBRARY@
27f0: 22 2e 0a 0a 2e 54 50 20 35 0a 5c 66 42 74 63 6c  "....TP 5.\fBtcl
2800: 72 65 61 64 6c 69 6e 65 3a 3a 68 69 73 74 6f 72  readline::histor
2810: 79 4c 65 6e 67 74 68 5c 66 50 0a 4e 75 6d 62 65  yLength\fP.Numbe
2820: 72 20 6f 66 20 6c 69 6e 65 73 2c 20 77 68 69 63  r of lines, whic
2830: 68 20 77 69 6c 6c 20 62 65 20 77 72 69 74 74 65  h will be writte
2840: 6e 20 74 6f 20 74 68 65 20 68 69 73 74 6f 72 79  n to the history
2850: 66 69 6c 65 2e 0a 54 68 69 73 20 6e 75 6d 62 65  file..This numbe
2860: 72 20 69 73 20 2d 31 20 62 79 20 64 65 66 61 75  r is -1 by defau
2870: 6c 74 2c 20 77 68 69 63 68 20 6d 65 61 6e 73 20  lt, which means 
2880: 74 68 61 74 20 74 68 65 20 68 69 73 74 6f 72 79  that the history
2890: 66 69 6c 65 0a 77 69 6c 6c 20 6e 6f 74 20 62 65  file.will not be
28a0: 20 74 72 75 6e 63 61 74 65 64 2e 20 20 53 65 65   truncated.  See
28b0: 20 61 6c 73 6f 20 5c 66 42 74 63 6c 72 65 61 64   also \fBtclread
28c0: 6c 69 6e 65 3a 3a 77 72 69 74 65 5c 66 50 2e 0a  line::write\fP..
28d0: 0a 2e 53 48 20 22 46 49 4c 45 53 22 0a 0a 74 68  ..SH "FILES"..th
28e0: 65 20 5c 66 42 2e 74 63 6c 73 68 72 63 5c 66 50  e \fB.tclshrc\fP
28f0: 20 66 69 6c 65 20 69 6e 20 74 68 65 20 48 4f 4d   file in the HOM
2900: 45 20 64 69 72 65 63 74 6f 72 79 2c 20 77 68 69  E directory, whi
2910: 63 68 0a 69 73 20 72 65 61 64 20 6f 6e 20 74 63  ch.is read on tc
2920: 6c 73 68 20 73 74 61 72 74 75 70 2e 20 41 6c 74  lsh startup. Alt
2930: 65 72 6e 61 74 69 76 65 6c 79 2c 20 74 68 65 20  ernatively, the 
2940: 6e 61 6d 65 20 6f 66 20 74 68 69 73 20 69 6e 69  name of this ini
2950: 74 69 61 6c 69 7a 61 74 69 6f 6e 0a 66 69 6c 65  tialization.file
2960: 20 6d 69 67 68 74 20 62 65 20 5c 66 42 2e 77 69   might be \fB.wi
2970: 73 68 72 63 5c 66 50 20 2e 2e 2e 20 64 65 70 65  shrc\fP ... depe
2980: 6e 64 69 6e 67 20 6f 6e 20 77 68 61 74 20 69 6e  nding on what in
2990: 74 65 72 70 72 65 74 65 72 20 79 6f 75 20 75 73  terpreter you us
29a0: 65 2e 0a 54 68 65 73 65 20 66 69 6c 65 73 20 73  e..These files s
29b0: 68 6f 75 6c 64 20 74 79 70 69 63 61 6c 6c 79 20  hould typically 
29c0: 63 6f 6e 74 61 69 6e 20 73 6f 6d 65 74 68 69 6e  contain somethin
29d0: 67 20 6c 69 6b 65 0a 2e 43 53 0a 20 20 20 20 69  g like..CS.    i
29e0: 66 20 7b 24 74 63 6c 5f 69 6e 74 65 72 61 63 74  f {$tcl_interact
29f0: 69 76 65 7d 20 7b 0a 20 20 20 20 20 20 20 20 70  ive} {.        p
2a00: 61 63 6b 61 67 65 20 72 65 71 75 69 72 65 20 74  ackage require t
2a10: 63 6c 72 65 61 64 6c 69 6e 65 0a 20 20 20 20 20  clreadline.     
2a20: 20 20 20 3a 3a 74 63 6c 72 65 61 64 6c 69 6e 65     ::tclreadline
2a30: 3a 3a 4c 6f 6f 70 0a 20 20 20 20 7d 0a 2e 43 45  ::Loop.    }..CE
2a40: 0a 0a 77 68 69 63 68 20 77 69 6c 6c 20 65 6e 74  ..which will ent
2a50: 65 72 20 74 68 65 20 74 63 6c 72 65 61 64 6c 69  er the tclreadli
2a60: 6e 65 20 6d 61 69 6e 20 6c 6f 6f 70 2e 0a 0a 2e  ne main loop....
2a70: 50 50 0a 74 68 65 20 5c 66 42 2e 74 63 6c 73 68  PP.the \fB.tclsh
2a80: 2d 68 69 73 74 6f 72 79 5c 66 50 20 66 69 6c 65  -history\fP file
2a90: 20 69 6e 20 74 68 65 20 48 4f 4d 45 20 64 69 72   in the HOME dir
2aa0: 65 63 74 6f 72 79 2e 20 4f 6e 20 73 74 61 72 74  ectory. On start
2ab0: 75 70 0a 63 6f 6d 6d 61 6e 64 73 20 77 69 6c 6c  up.commands will
2ac0: 20 62 65 20 72 65 61 64 20 66 72 6f 6d 20 74 68   be read from th
2ad0: 69 73 20 66 69 6c 65 2e 20 4f 6e 20 65 78 69 74  is file. On exit
2ae0: 2c 20 74 68 65 20 72 65 61 64 6c 69 6e 65 20 68  , the readline h
2af0: 69 73 74 6f 72 79 0a 69 73 20 77 72 69 74 74 65  istory.is writte
2b00: 6e 20 74 6f 20 74 68 69 73 20 66 69 6c 65 2e 20  n to this file. 
2b10: 4e 6f 74 65 20 74 68 61 74 20 69 66 20 79 6f 75  Note that if you
2b20: 20 61 62 6f 72 74 20 74 63 6c 73 68 20 77 69 74   abort tclsh wit
2b30: 68 20 3c 63 6e 74 72 6c 2d 63 3e 0a 6e 6f 20 68  h <cntrl-c>.no h
2b40: 69 73 74 6f 72 79 20 69 73 20 77 72 69 74 74 65  istory is writte
2b50: 6e 2e 20 46 6f 72 20 74 68 65 20 66 75 74 75 72  n. For the futur
2b60: 65 20 69 74 20 69 73 20 70 6c 61 6e 6e 65 64 20  e it is planned 
2b70: 74 6f 20 73 65 74 20 75 70 20 61 20 73 69 67 6e  to set up a sign
2b80: 61 6c 0a 68 61 6e 64 6c 65 72 2c 20 77 68 69 63  al.handler, whic
2b90: 68 20 77 69 6c 6c 20 77 72 69 74 65 20 74 68 65  h will write the
2ba0: 20 68 69 73 74 6f 72 79 20 6f 6e 20 3c 63 74 72   history on <ctr
2bb0: 6c 2d 63 3e 20 62 65 66 6f 72 65 20 65 78 69 74  l-c> before exit
2bc0: 69 6e 67 2e 0a 0a 2e 50 50 0a 74 68 65 20 5c 66  ing....PP.the \f
2bd0: 42 2e 69 6e 70 75 74 72 63 5c 66 50 20 66 69 6c  B.inputrc\fP fil
2be0: 65 20 69 6e 20 74 68 65 20 75 73 65 72 73 20 48  e in the users H
2bf0: 4f 4d 45 20 64 69 72 65 63 74 6f 72 79 2e 20 54  OME directory. T
2c00: 68 69 73 20 66 69 6c 65 0a 69 73 20 75 73 65 64  his file.is used
2c10: 20 6e 6f 72 6d 61 6c 6c 79 20 66 6f 72 20 61 6c   normally for al
2c20: 6c 20 70 72 6f 67 72 61 6d 73 20 77 68 69 63 68  l programs which
2c30: 20 75 73 65 20 74 68 65 20 67 6e 75 20 72 65 61   use the gnu rea
2c40: 64 6c 69 6e 65 20 28 65 2e 67 2e 20 20 62 61 73  dline (e.g.  bas
2c50: 68 29 2e 0a 54 68 65 20 60 67 6c 6f 62 61 6c 27  h)..The `global'
2c60: 20 72 65 61 64 6c 69 6e 65 20 73 65 74 74 69 6e   readline settin
2c70: 67 73 20 74 68 65 72 65 20 77 69 6c 6c 20 62 65  gs there will be
2c80: 20 76 61 6c 69 64 20 61 6c 73 6f 20 66 6f 72 0a   valid also for.
2c90: 5c 66 42 74 63 6c 72 65 61 64 6c 69 6e 65 5c 66  \fBtclreadline\f
2ca0: 50 2e 20 41 64 64 69 74 69 6f 6e 61 6c 6c 79 20  P. Additionally 
2cb0: 74 68 65 20 2e 69 6e 70 75 74 72 63 20 6d 69 67  the .inputrc mig
2cc0: 68 74 20 68 6f 6c 64 20 63 6f 6e 64 69 74 69 6f  ht hold conditio
2cd0: 6e 61 6c 0a 73 65 74 74 69 6e 67 73 20 66 6f 72  nal.settings for
2ce0: 20 74 68 65 20 69 6d 70 6c 65 6d 65 6e 74 61 74   the implementat
2cf0: 69 6f 6e 20 6e 61 6d 65 20 5c 66 42 74 63 6c 72  ion name \fBtclr
2d00: 65 61 64 6c 69 6e 65 5c 66 50 2e 20 45 78 61 6d  eadline\fP. Exam
2d10: 70 6c 65 20 6f 66 20 0a 73 6f 6d 65 20 6c 69 6e  ple of .some lin
2d20: 65 73 20 69 6e 20 79 6f 75 72 20 2e 69 6e 70 75  es in your .inpu
2d30: 74 72 63 3a 0a 2e 43 53 0a 20 20 20 20 24 69 66  trc:..CS.    $if
2d40: 20 74 63 6c 72 65 61 64 6c 69 6e 65 0a 20 20 20   tclreadline.   
2d50: 20 22 5c 5c 43 2d 78 70 22 3a 20 22 70 75 74 73   "\\C-xp": "puts
2d60: 20 24 65 6e 76 28 50 41 54 48 29 22 0a 20 20 20   $env(PATH)".   
2d70: 20 24 65 6e 64 69 66 0a 2e 43 45 0a 0a 46 6f 72   $endif..CE..For
2d80: 20 66 75 72 74 68 65 72 20 64 6f 63 75 6d 65 6e   further documen
2d90: 74 61 74 69 6f 6e 20 70 6c 65 61 73 65 20 72 65  tation please re
2da0: 66 65 72 20 74 6f 20 74 68 65 20 67 6e 75 20 72  fer to the gnu r
2db0: 65 61 64 6c 69 6e 65 20 64 6f 63 75 6d 65 6e 74  eadline document
2dc0: 61 74 69 6f 6e 2e 0a 0a 2e 53 48 20 22 42 55 47  ation....SH "BUG
2dd0: 53 22 0a 63 69 74 69 6e 67 20 74 68 65 20 72 65  S".citing the re
2de0: 61 64 6c 69 6e 65 20 6d 61 6e 75 61 6c 3a 20 20  adline manual:  
2df0: 49 74 27 73 20 74 6f 6f 20 62 69 67 20 61 6e 64  It's too big and
2e00: 20 74 6f 6f 20 73 6c 6f 77 2e 0a 0a 0a 2e 53 48   too slow.....SH
2e10: 20 22 53 45 45 20 41 4c 53 4f 22 0a 0a 0a 2e 50   "SEE ALSO"....P
2e20: 50 0a 54 68 65 20 6f 66 66 69 63 69 61 6c 20 5c  P.The official \
2e30: 66 42 74 63 6c 72 65 61 64 6c 69 6e 65 5c 66 50  fBtclreadline\fP
2e40: 20 77 65 62 20 73 69 74 65 20 61 74 3a 0a 0a 2e   web site at:...
2e50: 50 50 0a 2e 52 53 20 34 0a 68 74 74 70 3a 2f 2f  PP..RS 4.http://
2e60: 77 77 77 2e 7a 65 6c 6c 6e 65 72 2e 6f 72 67 2f  www.zellner.org/
2e70: 74 63 6c 72 65 61 64 6c 69 6e 65 2f 0a 2e 52 45  tclreadline/..RE
2e80: 0a 0a 0a 2e 53 48 20 22 41 55 54 48 4f 52 22 0a  ....SH "AUTHOR".
2e90: 4a 6f 68 61 6e 6e 65 73 20 5a 65 6c 6c 6e 65 72  Johannes Zellner
2ea0: 2c 20 3c 6a 6f 68 61 6e 6e 65 73 40 7a 65 6c 6c  , <johannes@zell
2eb0: 6e 65 72 2e 6f 72 67 3e 0a 0a 2e 53 48 20 22 43  ner.org>...SH "C
2ec0: 4f 4e 54 52 49 42 55 54 49 4f 4e 53 2c 20 53 55  ONTRIBUTIONS, SU
2ed0: 47 47 45 53 54 49 4f 4e 53 20 41 4e 44 20 50 41  GGESTIONS AND PA
2ee0: 54 43 48 45 53 22 0a 4d 61 67 6e 75 73 20 45 72  TCHES".Magnus Er
2ef0: 69 6b 73 73 6f 6e 20 3c 6d 61 67 6e 75 73 2e 65  iksson <magnus.e
2f00: 72 69 6b 73 73 6f 6e 40 6e 65 74 69 6e 73 69 67  riksson@netinsig
2f10: 68 74 2e 73 65 3e 2c 0a 4c 65 73 20 4a 6f 68 6e  ht.se>,.Les John
2f20: 73 6f 6e 20 3c 6c 65 73 40 69 6e 66 6f 6c 61 62  son <les@infolab
2f30: 73 2e 63 6f 6d 3e 2c 0a 48 61 72 61 6c 64 20 4b  s.com>,.Harald K
2f40: 69 72 73 63 68 20 3c 6b 69 72 40 69 69 74 62 2e  irsch <kir@iitb.
2f50: 66 68 67 2e 64 65 3e 2c 0a 43 68 72 69 73 74 69  fhg.de>,.Christi
2f60: 61 6e 20 4b 72 6f 6e 65 20 3c 6b 72 69 73 63 68  an Krone <krisch
2f70: 61 6e 40 73 71 6c 2e 64 65 3e 2c 0a 4c 61 72 72  an@sql.de>,.Larr
2f80: 79 20 57 2e 20 56 69 72 64 65 6e 20 3c 6c 76 69  y W. Virden <lvi
2f90: 72 64 65 6e 40 63 61 73 2e 6f 72 67 3e 2c 0a 44  rden@cas.org>,.D
2fa0: 61 76 69 64 20 45 6e 67 65 6c 20 3c 64 6c 65 6e  avid Engel <dlen
2fb0: 67 65 6c 40 68 6f 6d 65 2e 63 6f 6d 3e 20 3c 64  gel@home.com> <d
2fc0: 61 76 69 64 40 64 65 62 69 61 6e 2e 6f 72 67 3e  avid@debian.org>
2fd0: 2c 0a 4d 61 74 74 68 65 77 20 43 6c 61 72 6b 65  ,.Matthew Clarke
2fe0: 20 3c 4d 61 74 74 68 65 77 5f 43 6c 61 72 6b 65   <Matthew_Clarke
2ff0: 40 6d 69 6e 64 6c 69 6e 6b 2e 62 63 2e 63 61 3e  @mindlink.bc.ca>
3000: 0a 0a 2e 53 48 20 22 44 45 42 49 41 4e 20 50 41  ...SH "DEBIAN PA
3010: 43 4b 41 47 45 22 0a 44 61 76 69 64 20 45 6e 67  CKAGE".David Eng
3020: 65 6c 20 3c 64 6c 65 6e 67 65 6c 40 68 6f 6d 65  el <dlengel@home
3030: 2e 63 6f 6d 3e 2c 20 3c 64 61 76 69 64 40 64 65  .com>, <david@de
3040: 62 69 61 6e 2e 6f 72 67 3e 0a 0a 2e 53 48 20 22  bian.org>...SH "
3050: 44 49 53 43 4c 41 49 4d 45 52 22 0a 0a 54 68 69  DISCLAIMER"..Thi
3060: 73 20 76 65 72 73 69 6f 6e 20 6f 66 20 5c 66 42  s version of \fB
3070: 74 63 6c 72 65 61 64 6c 69 6e 65 5c 66 50 20 69  tclreadline\fP i
3080: 73 20 73 74 69 6c 6c 20 61 20 64 65 76 65 6c 6f  s still a develo
3090: 70 6d 65 6e 74 20 76 65 72 73 69 6f 6e 2e 0a 50  pment version..P
30a0: 72 65 74 74 79 20 61 20 6c 6f 74 20 6f 66 20 66  retty a lot of f
30b0: 65 61 74 75 72 65 73 20 61 6e 64 20 69 64 65 61  eatures and idea
30c0: 73 20 61 72 65 20 6e 6f 74 20 69 6d 70 6c 65 6d  s are not implem
30d0: 65 6e 74 65 64 20 79 65 74 2e 20 54 68 65 0a 72  ented yet. The.r
30e0: 65 61 73 6f 6e 20 66 6f 72 20 74 68 69 73 20 69  eason for this i
30f0: 73 20 74 68 65 20 6c 61 63 6b 20 6f 66 20 74 69  s the lack of ti
3100: 6d 65 20 61 6e 64 20 6d 61 6e 70 6f 77 65 72 2e  me and manpower.
3110: 0a 53 6f 20 79 6f 75 20 61 72 65 20 77 65 6c 63  .So you are welc
3120: 6f 6d 65 20 74 6f 20 6d 6f 64 69 66 79 20 61 6e  ome to modify an
3130: 64 20 63 6f 6e 74 72 69 62 75 74 65 20 74 6f 20  d contribute to 
3140: 74 68 65 20 63 6f 64 65 2e 0a 49 66 20 79 6f 75  the code..If you
3150: 20 68 61 76 65 20 73 75 67 67 65 73 74 69 6f 6e   have suggestion
3160: 73 2c 20 70 6c 65 61 73 65 20 6c 65 74 20 6d 65  s, please let me
3170: 20 6b 6e 6f 77 2e 0a 0a 5c 66 42 74 63 6c 72 65   know...\fBtclre
3180: 61 64 6c 69 6e 65 5c 66 50 20 63 6f 6d 65 73 20  adline\fP comes 
3190: 77 69 74 68 20 74 68 65 20 47 50 4c 20 28 47 4e  with the GPL (GN
31a0: 55 20 47 65 6e 65 72 61 6c 20 50 75 62 6c 69 63  U General Public
31b0: 20 4c 69 63 65 6e 73 65 29 2e 0a 59 6f 75 20 73   License)..You s
31c0: 68 6f 75 6c 64 20 68 61 76 65 20 72 65 63 65 69  hould have recei
31d0: 76 65 64 20 61 20 63 6f 70 79 20 6f 66 20 74 68  ved a copy of th
31e0: 65 20 47 4e 55 20 47 65 6e 65 72 61 6c 20 50 75  e GNU General Pu
31f0: 62 6c 69 63 20 4c 69 63 65 6e 73 65 0a 61 6c 6f  blic License.alo
3200: 6e 67 20 77 69 74 68 20 74 68 69 73 20 70 72 6f  ng with this pro
3210: 67 72 61 6d 3b 20 69 66 20 6e 6f 74 2c 20 77 72  gram; if not, wr
3220: 69 74 65 20 74 6f 20 74 68 65 20 46 72 65 65 20  ite to the Free 
3230: 53 6f 66 74 77 61 72 65 0a 46 6f 75 6e 64 61 74  Software.Foundat
3240: 69 6f 6e 2c 20 49 6e 63 2e 2c 20 35 39 20 54 65  ion, Inc., 59 Te
3250: 6d 70 6c 65 20 50 6c 61 63 65 20 2d 20 53 75 69  mple Place - Sui
3260: 74 65 20 33 33 30 2c 20 42 6f 73 74 6f 6e 2c 20  te 330, Boston, 
3270: 4d 41 20 20 30 32 31 31 31 2d 31 33 30 37 2c 20  MA  02111-1307, 
3280: 55 53 41 2e 0a                                   USA..