%!PS (but not EPSF; comments have been disabled) %DVIPSCommandLine: dvips -D 300 -o readline.ps readline.dvi %DVIPSParameters: dpi=300, compressed, comments removed %DVIPSSource: TeX output 1997.06.03:1139 /TeXDict 250 dict def TeXDict begin /N{def}def /B{bind def}N /S{exch}N /X{S N}B /TR{translate}N /isls false N /vsize 11 72 mul N /hsize 8.5 72 mul N /landplus90{false}def /@rigin{isls{[0 landplus90{1 -1}{-1 1} ifelse 0 0 0]concat}if 72 Resolution div 72 VResolution div neg scale isls{landplus90{VResolution 72 div vsize mul 0 exch}{Resolution -72 div hsize mul 0}ifelse TR}if Resolution VResolution vsize -72 div 1 add mul TR[matrix currentmatrix{dup dup round sub abs 0.00001 lt{round}if} forall round exch round exch]setmatrix}N /@landscape{/isls true N}B /@manualfeed{statusdict /manualfeed true put}B /@copies{/#copies X}B /FMat[1 0 0 -1 0 0]N /FBB[0 0 0 0]N /nn 0 N /IE 0 N /ctr 0 N /df-tail{ /nn 8 dict N nn begin /FontType 3 N /FontMatrix fntrx N /FontBBox FBB N string /base X array /BitMaps X /BuildChar{CharBuilder}N /Encoding IE N end dup{/foo setfont}2 array copy cvx N load 0 nn put /ctr 0 N[}B /df{ /sf 1 N /fntrx FMat N df-tail}B /dfs{div /sf X /fntrx[sf 0 0 sf neg 0 0] N df-tail}B /E{pop nn dup definefont setfont}B /ch-width{ch-data dup length 5 sub get}B /ch-height{ch-data dup length 4 sub get}B /ch-xoff{ 128 ch-data dup length 3 sub get sub}B /ch-yoff{ch-data dup length 2 sub get 127 sub}B /ch-dx{ch-data dup length 1 sub get}B /ch-image{ch-data dup type /stringtype ne{ctr get /ctr ctr 1 add N}if}B /id 0 N /rw 0 N /rc 0 N /gp 0 N /cp 0 N /G 0 N /sf 0 N /CharBuilder{save 3 1 roll S dup /base get 2 index get S /BitMaps get S get /ch-data X pop /ctr 0 N ch-dx 0 ch-xoff ch-yoff ch-height sub ch-xoff ch-width add ch-yoff setcachedevice ch-width ch-height true[1 0 0 -1 -.1 ch-xoff sub ch-yoff .1 sub]/id ch-image N /rw ch-width 7 add 8 idiv string N /rc 0 N /gp 0 N /cp 0 N{rc 0 ne{rc 1 sub /rc X rw}{G}ifelse}imagemask restore}B /G{{id gp get /gp gp 1 add N dup 18 mod S 18 idiv pl S get exec}loop}B /adv{cp add /cp X}B /chg{rw cp id gp 4 index getinterval putinterval dup gp add /gp X adv}B /nd{/cp 0 N rw exit}B /lsh{rw cp 2 copy get dup 0 eq{pop 1}{ dup 255 eq{pop 254}{dup dup add 255 and S 1 and or}ifelse}ifelse put 1 adv}B /rsh{rw cp 2 copy get dup 0 eq{pop 128}{dup 255 eq{pop 127}{dup 2 idiv S 128 and or}ifelse}ifelse put 1 adv}B /clr{rw cp 2 index string putinterval adv}B /set{rw cp fillstr 0 4 index getinterval putinterval adv}B /fillstr 18 string 0 1 17{2 copy 255 put pop}for N /pl[{adv 1 chg} {adv 1 chg nd}{1 add chg}{1 add chg nd}{adv lsh}{adv lsh nd}{adv rsh}{ adv rsh nd}{1 add adv}{/rc X nd}{1 add set}{1 add clr}{adv 2 chg}{adv 2 chg nd}{pop nd}]dup{bind pop}forall N /D{/cc X dup type /stringtype ne{] }if nn /base get cc ctr put nn /BitMaps get S ctr S sf 1 ne{dup dup length 1 sub dup 2 index S get sf div put}if put /ctr ctr 1 add N}B /I{ cc 1 add D}B /bop{userdict /bop-hook known{bop-hook}if /SI save N @rigin 0 0 moveto /V matrix currentmatrix dup 1 get dup mul exch 0 get dup mul add .99 lt{/QV}{/RV}ifelse load def pop pop}N /eop{SI restore userdict /eop-hook known{eop-hook}if showpage}N /@start{userdict /start-hook known{start-hook}if pop /VResolution X /Resolution X 1000 div /DVImag X /IE 256 array N 0 1 255{IE S 1 string dup 0 3 index put cvn put}for 65781.76 div /vsize X 65781.76 div /hsize X}N /p{show}N /RMat[1 0 0 -1 0 0]N /BDot 260 string N /rulex 0 N /ruley 0 N /v{/ruley X /rulex X V}B /V {}B /RV statusdict begin /product where{pop product dup length 7 ge{0 7 getinterval dup(Display)eq exch 0 4 getinterval(NeXT)eq or}{pop false} ifelse}{false}ifelse end{{gsave TR -.1 .1 TR 1 1 scale rulex ruley false RMat{BDot}imagemask grestore}}{{gsave TR -.1 .1 TR rulex ruley scale 1 1 false RMat{BDot}imagemask grestore}}ifelse B /QV{gsave newpath transform round exch round exch itransform moveto rulex 0 rlineto 0 ruley neg rlineto rulex neg 0 rlineto fill grestore}B /a{moveto}B /delta 0 N /tail {dup /delta X 0 rmoveto}B /M{S p delta add tail}B /b{S p tail}B /c{-4 M} B /d{-3 M}B /e{-2 M}B /f{-1 M}B /g{0 M}B /h{1 M}B /i{2 M}B /j{3 M}B /k{ 4 M}B /w{0 rmoveto}B /l{p -4 w}B /m{p -3 w}B /n{p -2 w}B /o{p -1 w}B /q{ p 1 w}B /r{p 2 w}B /s{p 3 w}B /t{p 4 w}B /x{0 S rmoveto}B /y{3 2 roll p a}B /bos{/SS save N}B /eos{SS restore}B end TeXDict begin 40258431 52099146 1000 300 300 (readline.dvi) @start /Fa 1 47 df<127012F8A212F012E005057B840E>46 D E /Fb 1 47 df<1238127C12FCA212F8127006067A8512>46 D E /Fc 1 59 df<126012F0A2126004047D830B>58 D E /Fd 52 127 df<126012F0AD12601200A4126012F0A212600417789614>33 D35 D40 D<128012C01260123012381218121C120EA31207A9120EA3121C121812381230126012C0 1280081D7C9914>II<127012F812FCA2127C120C1218123012E012C006 0A798414>44 DI<127012F8A312700505798414>I48 D<1203A25A5A123F12F712471207AEEA7FF0A20C177C9614>I<130E133E 137C13F0EA03E0EA07C0EA1F00123E12F85A7E123E7EEA07C0EA03E0EA00F0137C133E13 0E0F137E9414>60 D<124012E012F8127C121EEA0F80EA07C0EA01F0EA00F8133E131E13 3E13F8EA01F0EA07C0EA0F80EA1E00127C5A12E012400F157E9514>62 DII< EA01C0487EA21360A2EA0770A4EA0630EA0E38A4487EEA1FFCA2EA1C1CA2487EA238FE3F 80A211177F9614>II<3801F180EA07FFEA0E1FEA1C071238EA7003 A348C7FCA738700380A338380700121CEA0E0EEA07FCEA01F011177F9614>III76 D<38FC1F80A2007C1300EA7637A4EA 7777A2EA7367A313E7EA71C7A2EA7007A638F80F80A211177F9614>I<38FE3F80A2383E 0E00123BA4138E1239A213CEA31238A213EE136EA4133E12FEA211177F9614>I82 DI<387FFF80 B5FCEAE1C3A43801C000AFEA0FF8A211177F9614>I93 D97 D<12FCA2121CA513F8EA1DFEEA1F07EA1E03001C13 80EB01C0A6EB0380001E1300EA1F0EEA1DFCEA0CF81217809614>II<13 7EA2130EA5EA07CEEA0FFEEA1C3EEA301EEA700E12E0A61270EA301EEA383E381FEFC0EA 07CF12177F9614>II<13FCEA01FEEA038EEA07041300A3 EA7FFE12FFEA0700ACEAFFF8A20F177F9614>II<12FCA2121CA51378EA1DFEEA1F86EA1E0712 1CAA38FF8FE0A21317809614>I<1206120FA21206C7FCA4B4FCA21207ACEAFFF8A20D18 7C9714>I<12FCA2121CA5EBFF80A2EB1C005B5B5BEA1DC0EA1FE0A2EA1E70EA1C38133C 131C7F38FF1F80A21117809614>107 DIIIIIIII<1206120EA4EA7FFC12FFEA0E00A8130EA3131C EA07F8EA01F00F157F9414>II< 38FE3F80A2383C1E00EA1C1CA36C5AA3EA0630EA0770A36C5AA311107F8F14>I<38FE3F 80A238700700EA380EA3EA39CEA3EA1B6C121AA3EA1E7CA2EA0E3811107F8F14>II<38FE3F80A2381C0E005BA2120E5BA212071330A2EA0370A25B1201A25BA348 5A12730077C7FC127E123C11187F8F14>II126 D E /Fe 2 121 df<1270A212F0126004047D830B>46 D<383FC7E038078380EB0200EA038413C8EA01D8EA00F05B7F120113381202487EEA081E 123838FC3FC013107F8F14>120 D E /Ff 39 123 df<13FEEA038138060180EA0E0338 1C010090C7FCA5B51280EA1C03AE38FF8FF0141A809915>12 DI<126012F0A212701210A31220A21240 A2040B7D830B>44 DI48 D<12035AB4FC1207B3A2EA7FF80D187D9713>III<1318A21338137813F813B8EA01381202A212041208121812101220124012C0 B5FCEA0038A6EA03FF10187F9713>I II<1240EA7FFF13 FEA2EA4004EA80081310A2EA00201340A21380120113005AA25A1206A2120EA512041019 7E9813>I II97 D<12FC121CA913FCEA1D07381E0380381C01C0130014E0A6EB01C01480381E0300EA 1906EA10F8131A809915>II<133F1307A9EA03E7EA0C17EA180F487E127012E0A612601270 6C5AEA1C373807C7E0131A7F9915>IIII<12FC121CA9137CEA1D87381E0380A2121CAB38FF9FF0141A809915>I< 1218123CA212181200A612FC121CAE12FF081A80990A>I<12FC121CA9EB1FC0EB0F0013 0C5B13205B13E0121DEA1E70EA1C7813387F131E7F148038FF9FE0131A809914>107 D<12FC121CB3A6EAFF80091A80990A>I<38FC7C1F391D8E6380391E0781C0A2001C1301 AB39FF9FE7F81D107F8F20>I IIIIII<1208A41218A21238EAFFC0 EA3800A81320A41218EA1C40EA07800B177F960F>I<38FC1F80EA1C03AB1307120CEA0E 0B3803F3F01410808F15>I<38FF0F80383C0700EA1C061304A26C5AA26C5AA3EA03A0A2 EA01C0A36C5A11107F8F14>I<39FE7F1F8039381C0700003C1306381C0C04130E380E16 081317A238072310149013A33803C1A014E0380180C0A319107F8F1C>I<38FE3F80383C 1E00EA1C086C5AEA0F306C5A6C5A12017F1203EA0270487E1208EA181CEA381E38FC3FC0 12107F8F14>I<38FF0F80383C0700EA1C061304A26C5AA26C5AA3EA03A0A2EA01C0A36C 5AA248C7FCA212E112E212E4127811177F8F14>II E /Fg 2 42 df<13E0EA01C0EA0380120713005A121EA2121C123CA212381278A3127012 F0AE12701278A31238123CA2121C121EA27E7E13801203EA01C0EA00E00B2E7CA112>40 D<12E012707E123C121C121E7EA27E1380A2120313C0A3120113E0AE13C01203A3138012 07A213005AA2121E121C123C12385A5A0B2E7EA112>I E /Fh 28 123 df<90380FF83F90397FFDFFC03A01FC1FE3E03903F03FC7EA07E0D80FC01387ED83 C091381F8000A6B612FCA2390FC01F80B2397FF8FFF8A223237FA221>11 DI<13181330136013C01201EA0380120713005A 121EA2123E123CA2127CA3127812F8AD1278127CA3123CA2123E121EA27E7E13801203EA 01C012001360133013180D317BA416>40 D97 DII<49B4FCA2EB003FAB13FE3807FFBF380FC1FF48 C67E003E7F127E127CA212FCA7127C127E123E6C5B380F81FF3907FF3FE0EA01FC1B237E A220>I<13FE3807FF80380F83C0381E01E0383E00F0127E007C13F8147812FCB512F8A2 00FCC7FCA3127CA26C1318A26C1330380F80E03803FFC0C6130015167E951A>II<9038FE0F803903FF9FC0380F83E3381F01F3391E00F000003E7FA5001E5BEA 1F01380F83E0380BFF80D808FEC7FC0018C8FCA2121C381FFFE014FC6C13FF7E001F1480 397C001FC00078130F00F81307A3007CEB0F806CEB1F00381F807E6CB45A000113E01A21 7F951D>II<121E123FEA7F80A4EA3F00121EC7FCA6EAFF80A2121FB2EAFFF0A20C24 7EA30F>I107 DI<3AFF03F803F890390FFE0FFE3A1F183F 183F9039201F201F014001C01380A201801380AE3BFFF0FFF0FFF0A22C167D9531>I<38 FF03F0EB0FFC381F187EEB203EEB403FA21380AE39FFF1FFE0A21B167D9520>I<13FF00 0713E0380F81F0381F00F8003E137C48133EA300FC133FA7007C133E007E137E003E137C 6C13F8380F81F03807FFE0C6130018167E951D>I<38FF87F0EBBFFC381FF07EEBC01F90 38800F8015C0A2EC07E0A715C0140FA2EC1F8001C01300EBF07EEBBFFCEB8FE00180C7FC A8EAFFF0A21B207E9520>I I<38FF0F80EB1FE0381F33F013631343A2EBC1E0EB8000ADEAFFF8A214167E9518>I<38 07F980EA1FFFEA3807EA7003EAF001A26CC7FCB4FC13F8EA7FFE6C7E6C1380120738003F C0EAC007130312E0A200F0138038FC0F00EAEFFEEAC3F812167E9517>I<487EA41203A2 1207A2120F123FB5FCA2EA1F80ABEB8180A5380F830013C3EA07FEEA01F811207F9F16> I<38FF81FFA2381F803FAF5C5C380FC1BF3907FF3FE0EA01FC1B167D9520>I<39FFF01F E0A2391FC00700000F1306EBE00E0007130C13F000035BA26C6C5AA26C6C5AA2EBFEE0EB 7EC0137F6D5AA26DC7FCA2130EA21B167F951E>I<3AFFF3FF83FCA23A1F807C00E0D80F C014C08001E013010007017F1380A2D803F0EB0300ECCF8301F81387D801F913C61487D8 00FD13ECEBFF0315FC017F5BEB7E01013E5BEB3C00A20118136026167F9529>I<39FFF0 7FC0A2390FC01C006C6C5A6D5A00035B6C6C5A3800FD80137F91C7FC7F6D7E497EEB37E0 EB67F013C33801C1F8380380FC48487E000E137F39FF81FFE0A21B167F951E>I<39FFF0 1FE0A2391FC00700000F1306EBE00E0007130C13F000035BA26C6C5AA26C6C5AA2EBFEE0 EB7EC0137F6D5AA26DC7FCA2130EA2130CA25B1278EAFC3813305BEA69C0EA7F80001FC8 FC1B207F951E>I<387FFFF0A2387C07E038700FC0EA601F00E0138038C03F005B137EC6 5A1201485AEBF030EA07E0120FEBC070EA1F80003F1360EB00E0EA7E03B5FCA214167E95 19>I E /Fi 29 122 df<13E0A538F0E1E0EAFCE7387EEFC0381FFF00EA07FCEA01F0EA 07FCEA1FFF387EEFC038FCE7E0EAF0E13800E000A513157D991A>42 D67 D69 D<387FFFFCB5FC7E380E001CA51400A2EB0380A3EA0FFFA3EA0E03A390C7 FCA8EA7FE012FF127F161E7F9D1A>I 73 D<387F03F838FF87FC387F03F8381C01E0EB03C01480EB07005B131E131C5B13785B 7F121DEA1FDC139C130EEA1E0F7F001C13801303EB01C0A2EB00E0A21470007F13FC38FF 81FE387F00FC171E7F9D1A>75 DI80 D<38FF01FEA3381C0070 A3001E13F0000E13E0A3380701C0A438038380A43801C700A4EA00C613EEA3136C137CA2 1338171E7F9D1A>86 D<387FFFC0B512E0A26C13C013047D7E1A>95 D97 D<12FEA3120EA6133EEBFF 80000F13E0EBC1F0EB8070EB0038120E141CA7000F13381478EB80F0EBC1E0EBFFC0000E 138038063E00161E7F9D1A>IIIII<12FEA3120EA6133EEBFF80 000F13C013C1EB80E01300120EAC38FFE3FE13E713E3171E7F9D1A>104 DI< EAFFE0A31200B3A6B512E0A3131E7D9D1A>108 D<387CE0E038FFFBF8EA7FFF381F1F1C EA1E1EA2EA1C1CAC387F1F1F39FF9F9F80397F1F1F00191580941A>IIII<387F81F838FF8FFC387F9FFE3803FE1EEBF80CEBE000A25B5BAAEA7FFF B5FC7E17157F941A>114 D<487E1203A6387FFFE0B5FCA238038000AA1470A43801C1E0 13FF6C1380EB3F00141C7F9B1A>116 D<38FE0FE0A3EA0E00AD1301EA0F033807FFFE7E EA00FC17157F941A>I<387FC7FC00FF13FE007F13FC380E00E0A3380701C0A338038380 A33801C700A3EA00EEA3137CA2133817157F941A>I<387FC7F8EBCFFCEBC7F8380703C0 38038380EBC700EA01EFEA00FE137C13781338137C13EE120113C738038380000713C013 01387FC7FC00FF13FE007F13FC17157F941A>120 D<387FC7FC00FF13FE007F13FC380E 00E0A27EEB01C013811203EB8380EA01C3A2EBC700EA00E7A213E61366136E133CA31338 A3137813701230EA78E01271EA7FC06C5A001EC7FC17207F941A>I E /Fj 1 59 df<127012F8A3127005057C840D>58 D E /Fk 52 122 df<123C127E12FFA4127E123C08087C8711>46 D48 D<131C133C13FC12FFA21200B3AA387FFF FCA216237CA21F>I<48B4FC000713C0381E07F0383803F8386001FC387C00FE12FE14FF 147FA2127C003813FFC7FC14FEA2EB01FC14F8EB03F0EB07E01480EB0F00131E5B1370EB E003EA01C038038007380700061206380FFFFE5A5A4813FCB5FCA218237DA21F>I<48B4 FC000713E0381E03F0383801F8003C13FC387E00FEA3123EEA1C01000013FCA2EB03F8EB 07F0EB0FC03801FF00A2380007E0EB01F014F8EB00FC14FE14FFA21210127C12FEA214FE A2387C01FC007013F8383E07F0380FFFC00001130018237DA21F>I<14381478A214F813 01130313071306130C131C13381330136013E0EA01C01380EA03005A120E5A12185A1270 5AB612C0A2390001F800A790387FFFC0A21A237EA21F>I<0018130C001F137CEBFFF814 F014E014C01480EBFC000018C7FCA513FF001B13E0381F03F0381C00F8000813FCC7127E A3147FA2127812FCA3147E5A006013FC1270383801F8381E07E03807FFC03801FE001823 7DA21F>II<1230123C003FB512C0A215 804814005C5C38600018A200E05B485B5CC6485AA249C7FC1306130EA25BA2133CA25BA2 13F8A41201A66C5A13601A257DA41F>II<13FF000313C0380F83E0381F00F04813F8007E137CA214 7E12FEA3147FA4127E14FF123EEA3F01001F137FEA0FFEEA03FCC7FC147EA2123C007E13 FCA214F814F0EA7C01383003E0381C0F80380FFF00EA03F818237DA21F>I<141CA2143E A3147FA24A7EA39038019FC0A29038031FE0140F01077FEB0607A2010C7F1403011C7FEB 1801A2496C7EA2017FB5FCA29039E0007F8049133FA2484880151F00038190C7120FA248 6E7ED8FFF090B51280A229257EA42E>65 DI<9138FF8008010FEBF01890393FC03C789039FE0006F8D801F8130348481301484813 0048481478121F48481438A2007F151890C8FCA2481500A97E16187F123FA26C6C143012 0F6C6C14606C6C14C06C6CEB0180D800FEEB070090383FC01E90380FFFF8010013C02525 7DA42C>I69 DI72 DI 75 DIII82 D<01FF1380000713E3380F80F7381E001F48130F481307140312F81401A27E91C7FCB4FC EA7FE013FE383FFFE014F86C13FE00077F6C1480C67E010313C0EB003FEC0FE01407A200 C01303A315C07E6C13076C14806CEB0F0038FFC03E38E3FFF838803FE01B257DA422>I< 007FB612F8A2397E00FE010078EC00780070153800601518A200E0151C160C5AA4C71400 B3A390B512FEA226247EA32B>IIII89 D97 DIII<137F3803FFC03807C1F0380F80F8EA1F0048137C127E147E 12FEA2B512FEA248C7FCA3127EA214067E6C130C380F80183807E0703803FFE038007F80 17187E971C>II<3901FF07C00007EBDFE0380F83F1EA1F01393E00F800 007E7FA6003E5B6C485A380F83E0EBFFC0001190C7FC0030C8FCA21238123C383FFFE06C 13FC806C7F481480383C003F48EB0FC000F81307A4007CEB0F806CEB1F00381F807E3807 FFF8C613C01B247E971F>II<120FEA1F80EA3FC0A4EA1F80EA0F00 C7FCA7EA7FC0A2120FB3A2EAFFF8A20D277EA611>I107 DI<26FF80FE137F903A83FF81FFC03B0F8E0FC707E0019813CC903A9007E803F001 A013F0A201C013E0AF3BFFFC7FFE3FFFA230187E9733>I<38FF80FE903883FF80390F8E 0FC0139890389007E013A0A213C0AF39FFFC7FFEA21F187E9722>II<38FFC1FCEBCFFF390FFC1FC09038F007E001 C013F0140315F8140115FCA8EC03F8A215F0EBE0079038F00FE09038DC1F809038CFFF00 EBC3F801C0C7FCA9EAFFFCA21E237F9722>I<38FF83E0EB8FF8380F8C7CEB90FC13B013 A01478EBE0005BAEEAFFFEA216187F9719>114 D<3807F8C0EA1FFFEA3C07EA7001EAF0 00A300FC1300B47EEA7FFC7F383FFF80000F13C0120338001FE01303EAC001A212E014C0 EAF00338FC078038EFFF00EAC3FC13187E9718>I<13C0A41201A312031207120F121FB5 12C0A2380FC000AC1460A63807E0C013E13801FF8038007E0013237FA218>I<39FFC07F E0A2000F1307B0140FA200071317EBE0673903FFC7FE38007F071F187E9722>I<39FFF8 0FF8A2390FC001C015803907E00300A26D5A00031306EBF80E0001130C13FC00005B13FE EB7E30A26D5AA214E06D5AA26D5AA26DC7FCA21D187F9720>I<3BFFF9FFE0FF80A23B1F C03F001C00000F6D13181580D807E05CA29039F03FC07000030137136015E02601F8635B A29038FCE3F1000001C15B15F990267F80FBC7FCA215FF90383F007EA2011E133CA3010C 131829187F972C>I<39FFF83FF0A2390FC00F003807E00E6C6C5A6D5A6C6C5A00001360 EB7EC06D5AA2131F6D7E497E80EB33F81361EBE0FC3801C07E3803807F3907003F804813 1F39FFC07FF8A21D187F9720>I<39FFF80FF8A2390FC001C015803907E00300A26D5A00 031306EBF80E0001130C13FC00005B13FEEB7E30A26D5AA214E06D5AA26D5AA26DC7FCA2 1306A25B1230EA781CEAFC185B1370EA68E0EA7FC0001FC8FC1D237F9720>I E /Fl 28 122 df12 D45 D<0007B512F83900F800780178133815185B1508A53901E0 0800A314181438EBFFF83803C0301410A491C7FC485AA648C8FC7FEAFFFC1D1F7E9E1E> 70 D<3A07FF803FE03A00F8001F000178130C5D4913205D5D4AC7FC1402140848485A5C 146014F013E1EBE4F83803C878EBD07CEBE03CEBC03E141E141F48487E81140781140381 380F00016D487E39FFF00FFE231F7E9E23>75 D97 D<1207123F120F7EA2120EA65A137CEA1D83381E0180001C13C0EB00E05A14F0A538 7001E0A214C013031480EB0700EAE80EEACC38EA83E014207B9F19>I<13FEEA0383380E 0780121C0038130090C7FC12785AA45AA37E5BEA70026C5AEA1C18EA07E011147D9314> I<1438EB01F8EB00781438A21470A614E013FCEA0382EA0601121CEA3C00383801C01278 12F0A438E00380A412F0EA700738380F00381C37803807C7E015207D9F19>I<13F8EA07 0EEA0E07121C383803801278127012F0A2B5FC00F0C7FC5AA46C5AEA7002EA3004EA1C18 EA07E011147D9314>II<140EEB3E11EBE1A33801C1C238 0381E0EA07801301120FA3380703C01480EB8700EA04FC48C7FCA21218121CEA0FFF14C0 14E0381800F04813305A5AA3006013606C13C0381C0700EA07FC181F809417>I<13E012 0712011200A2485AA6485AEB8F80EB90E013A0EBC0601380000713E01300A5380E01C0A6 381C0380001E13C038FF8FF014207E9F19>II<13E0120712011200 A2485AA6485AEB81FCEB80F014C0EB81801400EA07045B13181338137C131C120E7FA213 0F7F1480EA1C03381E07C038FF8FF016207E9F18>107 D<13E0120712011200A2EA01C0 A6EA0380A6EA0700A6120EA65A121EEAFF800B207F9F0C>I<390387C07C391F98618639 07A072073903C03403EB80380007EB7807EB0070A5000EEBE00EA64848485A001EEBE01E 3AFFCFFCFFC022147E9326>I<38038F80381F90E0EA07A03803C0601380000713E01300 A5380E01C0A6381C0380001E13C038FF8FF014147E9319>I<13FCEA0387380E0180381C 00C04813E0A24813F012F0A438E001E0A214C0130300F0138038700700EA380E6C5AEA07 E014147D9317>II< EBFC2038038260EA0702381E01E0123C003813C0127812F0A438E00380A212F0A2130712 7038380F00EA1C37EA07C7EA0007A3130EA4131EEBFFC0131D7D9318>III<1380EA0100A35A5A5A121EEAFFF8EA0E00A4 5AA65A1310A41320A2EA1840EA0F800D1C7C9B12>I<381C0380EAFC1FEA3C07EA1C03A2 38380700A6EA700EA4131EA25BEA305E381F9F8011147B9319>I<38FF83F8381E00E000 1C13C01480121E380E01005B13025B12075BA25BEA039013A013E05B5B120190C7FC1514 7C9318>I<39FF9FE1FC393C078070391C030060148015401580EA0E0790380D81001309 EB19C21311380F21C4EA0720EB40C814E8EB80F0A26C485A1460000213401E147C9321> I<381FF0FF3803C0780001137014403800E0C0EBE180EB73001376133CA2131C132E134E 1387EA0107380203801204380C01C0383C03E038FE07FC18147F9318>I<390FF83F8039 01E00E00EBC00C140813E000005B143014205C13705CA20171C7FC1339133A133E133C13 3813181310A25BA25BEA70C0EAF08000F1C8FC12E61278191D809318>I E /Fm 8 89 df<903807F00890383C0C189038E003383901C000B8D80780137848C71238 120E001E14185A1508127C1278150012F8A6EC1FFF0078EB00F81578127C123CA27E120E 120F6C7ED801C013B83900E0011890383C0E08903807F00020217C9F27>71 D73 D78 DII<3803F020380C0C603818 03E0EA30005A146012E01420A36C13007E127CEA7F80EA3FFC6CB4FC00071380000113C0 38000FE013031301EB00F014707EA46C136014E06C13C038F8018038C60300EA81FC1421 7C9F1C>83 D<39FFF00FF8390F0003E0EC0080B3A46CEB01001380120314026C6C5A6C6C 5AEB3830EB0FC01D207C9E25>85 D<397FF807FE390FE001F0D807C013C06C6C6C5A0001 49C7FCEBF0023800F806EB78046D5AEB3E18EB1F106D5A14C0130713036D7E497EEB06F8 EB0478EB087CEB183EEB101EEB201F496C7EEBC007496C7ED801007F486D7E481300391F 8001F83AFFC007FF80211F7E9E25>88 D E /Fn 34 121 df49 DI<913A03FF800180023FEBF00349B5EAFC0701079038003F0FD91F F8EB079FD93FC0EB01FFD9FF807F4848C8127F4848153F0007161F49150F485A001F1607 A2485A1703127FA24992C7FCA212FFA9127FA27FEF0380123FA26C7E1707000F17006C7E 6D150E0003161E6C6C151C6C6C6C1478D93FC05CD91FF8EB03E0D907FFEB3F800101D9FF FEC7FCD9003F13F80203138031317CB03A>67 D69 DII73 D76 D78 D80 D82 D<007FB8FCA39039C00FF801D87E00EC003F007C82007882A200708200F01780A3481603 A5C792C7FCB3AA017FB6FCA331307DAF38>84 DII97 DIIIII<90391FF007C09039FFFE3F E03A01F83F79F03907E00FC3000F14E19039C007E0E0001FECF000A2003F80A5001F5CA2 000F5CEBE00F00075C2603F83FC7FC3806FFFE380E1FF090C9FC121EA2121F7F90B57E6C 14F015FC6C806C801680000F15C0003FC7127F007EEC1FE0007C140F00FC1407A4007EEC 0FC0003E1580003F141FD80FC0EB7E003907F803FC0001B512F0D8001F90C7FC242F7E9F 28>III108 D<2703F007F8EB1FE000FFD93FFEEBFFF8913A783F01 E0FC02C090388300FE280FF1801FC6137F2607F30013CC01F602F8148001FC5CA3495CB3 B500C3B5380FFFFCA33E207D9F43>I<3903F007F800FFEB3FFEEC783F02C013803A0FF1 801FC03807F30001F614E013FCA35BB3B500C3B5FCA328207D9F2D>II<3901F83FE000FFEBFFFC9038FBE07F9039FF00 3F80D807FEEB1FC049EB0FE04914F0ED07F8A216FC1503A216FEA816FC1507A216F8A2ED 0FF06D14E06DEB1FC06DEB3F809039FBC0FE009038F8FFF8EC3FC091C8FCABB512C0A327 2E7E9F2D>I<3803F03F00FFEB7FC09038F1C3E01487390FF30FF0EA07F6A29038FC07E0 EC03C091C7FCA25BB2B512E0A31C207E9F21>114 D<3801FF86000713FEEA1F00003C13 3E48131E140E12F8A36C90C7FCB47E13FC387FFFC06C13F0806C7F00077F00017FEA003F 01001380143F0060131F00E0130FA27E15007E6C131E6C131C38FF807838F3FFF038C07F 8019207D9F20>I<131CA5133CA3137CA213FC120112031207381FFFFEB5FCA2D803FCC7 FCB0EC0380A71201EC0700EA00FEEB7F0EEB3FFCEB07F0192E7FAD1F>II119 D<3A7FFF807FFCA33A03FC 000F006C6C131E6C6C5BEC803890387FC078013F5B90381FE1E090380FF3C0ECFF806D90 C7FC6D5A13016D7E81815B903803DFE09038078FF08190380F07FC90381E03FEEB3C0149 6C7E4914804848EB7FC00003EC3FE026FFFC01B5FCA328207F9F2B>I E /Fo 1 14 df<14FF010713E090381F00F80178131E01E01307D80180EB018048C812C0 00061560481530A248151848150CA2481506A4481503A900601506A46C150CA26C15186C 1530A26C15606C15C06C6CEB0180D800E0EB07000178131E011F13F8903807FFE0010090 C7FC282B7EA02D>13 D E /Fp 54 122 df<1306130C13181338137013E01201EA03C0A2 EA0780A2120F13005AA2123EA3127EA3127CA212FCAE127CA2127EA3123EA37EA27E1380 1207A2EA03C0A2EA01E01200137013381318130C13060F3C7AAC1A>40 D<123C127FEAFF80A213C0A3127F123E1200A2EA0180A3EA0300A21206120E5A5A12100A 157B8813>44 D<121C127FA2EAFF80A3EA7F00A2121C09097B8813>46 D<130E131E137EEA07FE12FFA212F81200B3ABB512FEA317277BA622>49 DII<140FA25C5C5C5C5BA2EB03 BFEB073F130E131C133C1338137013E0EA01C0EA038012071300120E5A5A5A12F0B612F8 A3C7EA7F00A890381FFFF8A31D277EA622>I<00181303381F801FEBFFFE5C5C5C14C091 C7FC001CC8FCA7EB7FC0381DFFF8381F80FC381E003F1208C7EA1F8015C0A215E0A21218 127C12FEA315C05A0078EB3F80A26CEB7F00381F01FE6CB45A000313F0C613801B277DA6 22>I57 D65 DI<91387FE003903907FFFC07011FEBFF0F90397FF0 0F9F9039FF0001FFD801FC7F4848147F4848143F4848141F485A160F485A1607127FA290 C9FC5AA97E7F1607123FA26C7E160E6C7E6C6C141C6C6C143C6C6C14786CB4EB01F09039 7FF007C0011FB512800107EBFE009038007FF028297CA831>IIII<91387F E003903907FFFC07011FEBFF0F90397FF00F9F9039FF0001FFD801FC7F48488048488048 4880485A82485A82127FA290CAFC5AA892B512F87E7F03001300123FA26C7EA26C7E6C7E 6C7E6C7E6CB45B90387FF007011FB5129F0107EBFE0F9039007FF0032D297CA835>III75 DII III< ECFFC0010F13FC90383FC0FF9039FE001FC048486D7ED803F0EB03F000078148486D7E48 486D7EA24848147FA2007F1680A290C8123FA24816C0AA6C16806D147FA2003F1600A26C 6C14FE143E3A0FE07F81FC00079038C1C1F83A03F18063F0D801F9EB67E0D800FFEB3FC0 90263FC07FC7FC90380FFFFC01004913C0EC003C811601ED1F8316FF6F1380A21700816F 5A6F5A6F5A2A357CA833>II<9038FF80600003EBF0E0 000F13F8381F80FD383F001F003E1307481303A200FC1301A214007EA26C140013C0EA7F FCEBFFE06C13F86C13FE80000714806C14C0C6FC010F13E0EB007FEC1FF0140F140700E0 1303A46C14E0A26C13076C14C0B4EB0F80EBE03F39E3FFFE0000E15B38C01FF01C297CA8 25>I<007FB71280A39039807F807FD87C00140F00781507A20070150300F016C0A24815 01A5C791C7FCB3A490B612C0A32A287EA72F>IIII89 D<3803FF80000F13F0381F01FC383F80FE147F801580EA1F00C7FCA4EB3FFF3801FC3FEA 0FE0EA1F80EA3F00127E5AA4145F007E13DF393F839FFC381FFE0F3803FC031E1B7E9A21 >97 DIIIII<9038FF80F00003EBE3 F8390FC1FE1C391F007C7C48137E003EEB3E10007EEB3F00A6003E133E003F137E6C137C 380FC1F8380BFFE00018138090C8FC1238A2123C383FFFF814FF6C14C06C14E06C14F012 1F383C0007007CEB01F8481300A4007CEB01F0A2003FEB07E0390FC01F806CB512003800 7FF01E287E9A22>II<1207EA0F80EA1FC0EA3FE0A3EA1F C0EA0F80EA0700C7FCA7EAFFE0A3120FB3A3EAFFFEA30F2B7EAA12>I108 D<26FFC07FEB1FC0903AC1FFC07FF0903AC307E0C1F8D8 0FC49038F101FC9039C803F20001D801FE7F01D05BA201E05BB03CFFFE3FFF8FFFE0A333 1B7D9A38>I<38FFC07E9038C1FF809038C30FC0D80FC413E0EBC80701D813F013D0A213 E0B039FFFE3FFFA3201B7D9A25>II<38FFE1FE9038EFFF809038FE0FE039 0FF803F09038F001F801E013FC140015FEA2157FA8157E15FEA215FC140101F013F89038 F807F09038FC0FE09038EFFF809038E1FC0001E0C7FCA9EAFFFEA320277E9A25>I<38FF C1F0EBC7FCEBC63E380FCC7F13D813D0A2EBF03EEBE000B0B5FCA3181B7F9A1B>114 D<3803FE30380FFFF0EA3E03EA7800127000F01370A27E00FE1300EAFFE06CB4FC14C06C 13E06C13F0000713F8C6FCEB07FC130000E0137C143C7E14387E6C137038FF01E038E7FF C000C11300161B7E9A1B>I<13E0A41201A31203A21207120F381FFFE0B5FCA2380FE000 AD1470A73807F0E0000313C03801FF8038007F0014267FA51A>I<39FFE07FF0A3000F13 07B2140FA2000713173903F067FF3801FFC738007F87201B7D9A25>I<39FFFC03FFA339 0FF000F0000714E07F0003EB01C0A2EBFC0300011480EBFE070000140013FFEB7F0EA214 9EEB3F9C14FC6D5AA26D5AA36D5AA26D5AA2201B7F9A23>I<3BFFFC7FFC1FFCA33B0FE0 0FE001C02607F007EB0380A201F8EBF00700031600EC0FF801FC5C0001150EEC1FFC2600 FE1C5B15FE9039FF387E3C017F1438EC787F6D486C5A16F0ECE01F011F5CA26D486C5AA2 EC800701075CA22E1B7F9A31>I<39FFFC1FFEA33907F003803803F8079038FC0F003801 FE1E00005BEB7F3814F86D5A6D5A130F806D7E130F497EEB3CFEEB38FFEB787F9038F03F 803901E01FC0D803C013E0EB800F39FFF03FFFA3201B7F9A23>I<39FFFC03FFA3390FF0 00F0000714E07F0003EB01C0A2EBFC0300011480EBFE070000140013FFEB7F0EA2149EEB 3F9C14FC6D5AA26D5AA36D5AA26D5AA25CA21307003890C7FCEA7C0FEAFE0E131E131C5B EA74F0EA3FE0EA0F8020277F9A23>I E /Fq 90 127 df<127012F8B012701200A51270 12F8A31270051C779B18>33 DI< EA0306EA078FA6387FFFC0B512E0A26C13C0380F1E00A6387FFFC0B512E0A26C13C0381E 3C00A6EA0C18131C7E9B18>I<13C01201A3EA03F0EA0FFCEA3FFEEA7DCFEA71C738E1C3 8013C7A338F1C0001279123F6C7EEA0FF8EA01FC13DE13CF13C73861C38012F1A212E1EB C7001271EA79DEEA3FFEEA1FF8EA07E0EA01C0A3120011247D9F18>II< EA01C0EA07E0487EEA0E70487EA4EB73F813F313E3380FC1C0EBC38013831303381F0700 EA3F87EA7B8EEA71CEEAE1FC12E0137CEB7870A2EA70FE387FFFE0EA3FC7380F03C0151C 7F9B18>I<1238127CA2127E123E120EA3121CA2123812F812F012C0070E789B18>I<1370 13F0EA01E0EA03C0EA0780EA0F00121E121C5AA25AA45AA81270A47EA27E121E7EEA0780 EA03C0EA01F0120013700C24799F18>I<126012F012787E7E7EEA07801203EA01C0A2EA 00E0A41370A813E0A4EA01C0A2EA03801207EA0F00121E5A5A5A12600C247C9F18>II<136013F0A7387FFFC0B512E0A26C13C03800F000 A7136013147E9718>I<121C123E127E127F123F121F1207120E121E127C12F81260080C 788518>I<387FFFC0B512E0A26C13C013047E8F18>I<1230127812FCA212781230060677 8518>I<1303EB0780A2130F14005B131EA2133E133C137C1378A213F85B12015B12035B A212075B120F90C7FCA25A121E123E123CA2127C127812F85AA2126011247D9F18>IIII<131F5B13 77A213E7120113C7EA038712071307120E121E123C1238127812F0B512F8A338000700A6 EB7FF0A3151C7F9B18>52 D<383FFF80A30038C7FCA8EA3BF8EA3FFE7F383C0780383003 C0EA0001EB00E0A2126012F0A238E001C0EA7003387C0F80383FFF00EA1FFCEA03F0131C 7E9B18>I<137E48B4FC00071380380F83C0EA1E03121C3838018090C7FC5AA2EAE1F8EA E7FEB5FC38FE078038F803C0EAF001EB00E05A7E1270A3383801C0EA3C03381E0780380F FF006C5AEA01F8131C7E9B18>I<12E0B512E0A214C038E00380EB0700C65A131E131C5B A25B13F05BA2485AA3485AA448C7FCA7131D7E9C18>II<123012 7812FCA2127812301200A81230127812FCA2127812300614779318>58 D<1218123C127EA2123C12181200A81218123C127EA2123E121E120E121C123C127812F0 1260071A789318>I<14C0EB03E01307EB1FC0EB3F80EBFE00485AEA07F0485AEA3F8048 C7FC12FCA2127F6C7EEA0FE06C7EEA01FC6C7EEB3F80EB1FC0EB07E01303EB00C013187E 9918>I<387FFFC0B512E0A3C8FCA4B512E0A36C13C0130C7E9318>I<126012F87E127F6C 7EEA0FE06C7EEA01FC6C7EEB3F80EB1FC0EB07E0A2EB1FC0EB3F80EBFE00485AEA07F048 5AEA3F8048C7FC12FC5A126013187E9918>II< 137CEA01FEEA07FF380F8780381E03C0EA3C1DEA387F3870FFE0EA71E313C112E1EAE380 A638E1C1C0127113E33870FF8038387F00EA3C1C381E00E0EA0F833807FFC00001138038 007E00131C7E9B18>I<137013F8A213D8A2EA01DCA3138CEA038EA4EA0707A5380FFF80 A3EA0E03381C01C0A3387F07F000FF13F8007F13F0151C7F9B18>IIII II<3801F1C0EA03FDEA0FFFEA1F0FEA1C03123813011270A290C7FC5AA5EB0FF0131F 130F387001C0A213031238A2EA1C07EA1F0FEA0FFFEA03FDEA01F1141C7E9B18>I<387F 07F038FF8FF8387F07F0381C01C0A9EA1FFFA3EA1C01AA387F07F038FF8FF8387F07F015 1C7F9B18>II<38 01FFC0A338000E00B312F0A2133CEA7FFCEA3FF0EA0FC0121C7D9B18>I<387F07F038FF 87F8387F07F0381C03C0EB07801400130E131E5B13385B13F0121DA2EA1FB8A2131C121E EA1C0EA27FA2EB0380A2EB01C0387F03F038FF87F8387F03F0151C7F9B18>II<38FC01F8EAFE03A2383B06E0A4138EA2EA39 8CA213DCA3EA38D8A213F81370A21300A638FE03F8A3151C7F9B18>I<387E07F038FF0F F8387F07F0381D81C0A313C1121CA213E1A313611371A213311339A31319A2131D130DA3 EA7F07EAFF87EA7F03151C7F9B18>IIIII<3803F1C0EA1FFF5AEA 7C0FEA7003EAE001A390C7FC12701278123FEA1FF0EA07FEC67EEB0F80EB03C01301EB00 E0A2126012E0130100F013C038F80780B5FCEBFE00EAE7F8131C7E9B18>I<387FFFF8B5 FCA238E07038A400001300B2EA07FFA3151C7F9B18>I<38FF83FEA3381C0070B36C13E0 EA0F01380783C03803FF806C1300EA007C171C809B18>I<38FE03F8EAFF07EAFE03383C 01E0001C13C0A3EA1E03000E1380A438070700A4EA038EA4EA018C13DCA3EA00D813F8A2 1370151C7F9B18>I<38FE03F8A338700070A36C13E0A513F8EA39FC13DCA2001913C0A3 138CA2EA1D8DA31305000D1380EA0F07A2EA0E03151C7F9B18>I<387F0FE0139F130F38 0E0700120FEA070E138EEA039C13DCEA01F8A212005B137013F07F487E13DCEA039E138E EA070F7F000E13801303001E13C0387F07F000FF13F8007F13F0151C7F9B18>I<38FE03 F8EAFF07EAFE03381C01C0EA1E03000E1380EA0F0700071300A2EA038EA2EA01DCA3EA00 F8A21370A9EA01FC487E6C5A151C7F9B18>I91 D<126012F0A27E1278127C123CA2123E121E121F7EA27F12077F1203A27F12017F 12007F1378A2137C133C133E131EA2131F7F14801307A2EB030011247D9F18>II<387FFFC0B512E0A26C13C013047E7F18>95 D<1206121E123E12381270A212E0A312F812FC127CA21238070E789E18>II<127E12FE127E120EA5133EEBFF80000F13C0EBC1E0 1380EB0070120E1438A6000F1370A2EB80E013C1EBFFC0000E138038063E00151C809B18 >IIIII< 3801E1F03807FFF85A381E1E30381C0E00487EA5EA1C0EEA1E1EEA1FFC5BEA39E00038C7 FC7EEA1FFEEBFFC04813E0387801F038700070481338A4007813F0EA7E03381FFFC06C13 803801FC00151F7F9318>I<127E12FE127E120EA5133EEBFF80000F13C013C1EB80E013 00120EAB387FC7FC38FFE7FE387FC7FC171C809B18>II<1338137CA313381300A4EA0FFCA3EA00 1CB3A4EA6038EAF078EAFFF0EA7FE0EA3F800E277E9C18>I<127E12FE127E120EA5EB3F F0A3EB0780EB0F00131E5B5B5BEA0FF87F139C130EEA0E0F7FEB038014C0387FC7F812FF 127F151C7F9B18>II<38F9C1C038FFF7F013 FF383E3E38EA3C3CA2EA3838AB38FE3E3EEB7E7EEB3E3E1714809318>IIII<3801F380EA07FBEA1FFFEA3E1FEA380FEA7007A2EAE003A6 EA7007A2EA380FEA3C1FEA1FFFEA0FFBEA03E3EA0003A7EB1FF0EB3FF8EB1FF0151E7E93 18>I<38FF0FC0EB3FE0EB7FF0EA07F0EBE060EBC0005BA290C7FCA9EAFFFC7F5B14147E 9318>II<487E1203A4387FFFC0B5 FCA238038000A9144014E0A33801C1C013FF6C1380EB3E0013197F9818>I<387E07E0EA FE0FEA7E07EA0E00AC1301EA0F033807FFFC6C13FE3801FCFC1714809318>I<387F8FF0 00FF13F8007F13F0381C01C0380E0380A338070700A3138FEA038EA3EA01DCA3EA00F8A2 137015147F9318>I<38FF07F8138F1307383800E0A4381C01C0137113F9A213D9EA1DDD 000D1380A3138DEA0F8FA23807070015147F9318>I<387F8FF0139F138F380F0700EA07 8EEA039EEA01DC13F81200137013F07FEA01DCEA039E138EEA0707000E1380387F8FF000 FF13F8007F13F015147F9318>I<387F8FF000FF13F8007F13F0380E01C0EB0380A21207 EB0700A2EA0387A2138EEA01CEA213CC120013DC1378A31370A313F05B1279EA7BC0EA7F 806CC7FC121E151E7F9318>I<383FFFF05AA2387001E0EB03C0EB078038000F00131E5B 13F8485AEA03C0485A380F0070121E5A5AB512F0A314147F9318>I I<126012F0B3B012600424769F18>I<127CB4FC13C01203C67EAB7FEB7FC0EB3FE0A2EB 7FC0EBF0005BABEA03C012FF90C7FC127C13247E9F18>II E /Fr 78 123 df<90381F83E09038F06E303901C07878 380380F8903800F03048EB7000A7B612803907007000B2383FE3FF1D20809F1B>11 D<133FEBE0C0EA01C0380381E0EA0701A290C7FCA6B512E0EA0700B2383FC3FC1620809F 19>II<9038 1F81F89038F04F043901C07C06390380F80FEB00F05A0270C7FCA6B7FC3907007007B23A 3FE3FE3FE02320809F26>I34 D<1340A2EA03F0EA0C4EEA1041382040801260004013 4038C041C01343A238E04180EB40001270127CEA3FC0EA1FF86C7EEA03FEEA007FEB4F80 1343EB41C0A2EAF040A312801480EA404100201300EA3042EA0C4CEA03F0EA0040A31225 7EA117>36 D<127012F812FCA212741204A31208A21210A212201240060E7C9F0D>39 D<13401380EA01005A12061204120C5AA212381230A212701260A412E0AC1260A4127012 30A212381218A27E120412067E7EEA008013400A2E7BA112>I<7E12407E12307E120812 0C7EA212077EA213801201A413C0AC1380A412031300A25A1206A25A120812185A12205A 5A0A2E7EA112>I<127012F012F8A212781208A31210A31220A21240050E7C840D>44 DI<127012F8A3127005057C840D>I<144014C0EB0180A3EB0300 A31306A25BA35BA35BA25BA35BA3485AA348C7FCA21206A35AA35AA25AA35AA35AA2122D 7EA117>II<13801203120F12F31203B3A6EA 07C0EAFFFE0F1E7C9D17>III<1306A2130EA2131E132EA2134E138EA2EA 010E1202A212041208A212101220A2124012C0B512F038000E00A7EBFFE0141E7F9D17> II<137CEA 0182EA0701380E0380EA0C0712183838030090C7FC12781270A2EAF1F0EAF21CEAF406EA F807EB0380A200F013C0A51270A214801238EB07001218EA0C0E6C5AEA01F0121F7E9D17 >I<1240387FFFE014C0A23840008038800100A21302485AA25B5BA25BA21360A213E05B 1201A41203A76C5A131F7E9D17>III<127012F8A312 701200AA127012F8A3127005147C930D>I<127012F8A312701200AA127012F012F8A212 781208A31210A31220A21240051D7C930D>I<5B497EA3497EA3EB09E0A3EB10F0A3EB20 78A3497EA2EBC03EEB801EA248B5FCEB000FA20002EB0780A348EB03C0A2120C001E14E0 39FF801FFE1F207F9F22>65 DI<90380FE0109038381C309038E002703803C00139078000F048C71270121E15305A15 10127C127800F81400A91278007C1410123CA26C1420A27E6C6C13406C6C13803900E003 00EB380CEB0FF01C217E9F21>IIII<90380FE0109038381C309038E002703803C00139078000F048C71270121E 15305A1510127C127800F81400A7EC3FFEEC01F000781300127C123CA27EA27E6C7E3903 C001703900E002309038380C1090380FF0001F217E9F24>I<39FFF07FF8390F000780AD 90B5FCEB0007AF39FFF07FF81D1F7E9E22>II< 3807FFC038003E00131EB3A3122012F8A3EAF01CEA403CEA6038EA1070EA0FC012207F9E 17>I<39FFF007FC390F0003E0EC0180150014025C5C5C5C5C5C49C7FC5B497E130FEB13 C0EB21E01341EB80F0EB0078A28080A280EC0780A2EC03C015E015F039FFF01FFE1F1F7E 9E23>I IIIII< B57E380F00F0143C8080A21580A41500A2141E5C14F0EBFF80EB01C0EB0070A280143CA3 143EA31504143F141FEC0F0839FFF00788C7EA01F01E207E9E21>82 D<3803F040380C0CC0EA1803EA3001EA6000A212E01440A36C13007E127CEA7F80EA3FF8 6CB4FC00071380C613C0EB1FE013031301EB00F014707EA46C136014E06C13C038F80180 38C60300EA81FC14217E9F19>I<007FB512E038780F010060EB006000401420A200C014 3000801410A400001400B3497E3803FFFC1C1F7E9E21>I<39FFF00FF8390F0003E0EC00 80B3A46CEB01001380120314026C6C5A6C6C5AEB3830EB0FC01D207E9E22>I<39FFF003 FE391F8000F86CC7126015206C6C1340A36C6C1380A2EBE00100011400A23800F002A213 F8EB7804A26D5AA36D5AA2131F6D5AA2EB07C0A36D5AA36DC7FC1F207F9E22>I<3BFFF0 7FF81FF03B1F000FC007C06C903907800180170015C001805C00071502EC09E013C00003 5DEC19F01410D801E05CA2EC2078D800F05CA2EC403C01785CA2EC801E017C1460013C14 4090383D000F133F6D5CA2011E1307010E91C7FCA2010C7F010413022C207F9E2F>I<39 FFF001FF391F800078000F146012076D1340000314807F3901F001001200EBF802EB7C06 EB3C04EB3E08131EEB1F10EB0FB0EB07A014E06D5AACEB3FFC201F7F9E22>89 D<12FFA212C0B3B3A512FFA2082D7CA10D>91 DI<12FFA21203B3B3A512FFA2082D80 A10D>I<120812101220A21240A21280A312B812FCA2127C1238060E7D9F0D>96 DI<121C12FC121CAA137CEA1D87381E0180EB00 C0001C13E01470A21478A6147014F014E0001E13C0381A018038198700EA107C15207E9F 19>IIII<137CEA01C6EA030F1207EA0E061300A7EAFFF0EA0E00B2EA7FE0 1020809F0E>I<14E03803E330EA0E3CEA1C1C38380E00EA780FA5EA380E6C5AEA1E38EA 33E00020C7FCA21230A2EA3FFE381FFF8014C0383001E038600070481330A4006013606C 13C0381C03803803FC00141F7F9417>I<121C12FC121CAA137C1386EA1D03001E1380A2 121CAE38FF8FF014207E9F19>I<1238127CA31238C7FCA6121C12FC121CB1EAFF80091F 7F9E0C>I<13E0EA01F0A3EA00E01300A61370EA07F012001370B3A31260EAF06013C0EA 6180EA3F000C28829E0E>I<121C12FC121CAAEB1FE0EB0780EB060013045B5B5B136013 E0EA1DF0EA1E70EA1C38133C131C7F130F7F148014C038FF9FF014207E9F18>I<121C12 FC121CB3ABEAFF8009207F9F0C>I<391C3E03E039FCC30C30391D039038391E01E01CA2 001C13C0AE3AFF8FF8FF8021147E9326>IIII<3801F04038070CC0EA0E02EA1C03EA38011278127012F0A612 7012781238EA1C03EA0C05EA0709EA01F1EA0001A8EB0FF8151D7F9318>III<1202A31206A2120EA2123EEAFFF8EA0E00AB1304A5EA07081203EA01F00E1C 7F9B12>I<381C0380EAFC1FEA1C03AE1307120CEA061B3803E3F014147E9319>I<38FF83 F8383E00E0001C13C06C1380A338070100A21383EA0382A2EA01C4A213E4EA00E8A21370 A3132015147F9318>I<39FF9FE1FC393C078070391C030060EC8020000E1440A214C0D8 0704138014E0A239038861001471A23801D032143A143E3800E01CA2EB6018EB40081E14 7F9321>I<38FF87F8381E03C0380E0180EB0300EA0702EA0384EA01C813D8EA00F01370 137813F8139CEA010E1202EA060738040380000C13C0003C13E038FE07FC16147F9318> I<38FF83F8383E00E0001C13C06C1380A338070100A21383EA0382A2EA01C4A213E4EA00 E8A21370A31320A25BA3EAF080A200F1C7FC1262123C151D7F9318>II E /Fs 14 122 df71 D76 D78 D82 D85 D97 D<13FE12FFA412071203B04AB4FC021F13F0027F13FC9138FC03 FE9039FFF000FF02C0EB3F8091C7EA1FC04915E0EE0FF017F8A2EE07FCA317FEA917FCA3 160F17F817F0161F6D15E06EEB3FC06EEB7F80D9F9E0EBFF009039F0FC07FE91387FFFF8 D9E01F13E09026C003FEC7FC2F3C7DBB36>I100 D<49B47E010F13F0017F13FC9038FF81FE3A03 FE007F80D807F8133F4848EB1FC0ED0FE0485A003F15F01507485A16F8A212FFA290B6FC A301C0C8FCA4127FA36C7E1678121F7F000F15F06C6C13016C6CEB03E06C6CEB0FC03A00 FFC07F8090393FFFFE00010F13F8010013C025267DA52C>I105 D<13FE12FFA412071203B3B3AEB512F8A4153C7DBB1A>108 D110 D<3901FC03F000FFEB0FFC4AB4FC91383C3F80EC 707F00079038E0FFC000035BEBFD80A201FFEB7F809138003F00151E92C7FC5BB3A3B512 FCA422267DA528>114 D121 D E end TeXDict begin 1 0 bop 0 693 a Fs(GNU)33 b(Readline)h(Library)p 0 743 1950 17 v 1011 791 a Fr(Edition)17 b(2.1,)c(for)i Fq(Readline)f (Library)g Fr(V)l(ersion)i(2.1.)1718 845 y(Marc)o(h)e(1996)0 2467 y Fp(Brian)23 b(F)-6 b(o)n(x,)23 b(F)-6 b(ree)23 b(Soft)n(w)n(are)f(F)-6 b(oundation)0 2534 y(Chet)22 b(Ramey)-6 b(,)23 b(Case)e(W)-6 b(estern)23 b(Reserv)n(e)f(Univ)n (ersit)n(y)p 0 2570 1950 9 v eop 2 1 bop 0 320 a Fr(This)15 b(do)q(cumen)o(t)f(describ)q(es)i(the)e(GNU) g(Readline)j(Library)l(,)d(a)g(utilit)o(y)h(whic)o(h)g(aids)g(in)g(the) f(consistency)h(of)f(user)0 382 y(in)o(terface)h(across)g(discrete)h (programs)e(that)g(need)j(to)d(pro)o(vide)i(a)f(command)g(line)i(in)o (terface.)0 519 y(Published)g(b)o(y)f(the)f(F)l(ree)g(Soft)o(w)o(are)f (F)l(oundation)0 582 y(675)g(Massac)o(h)o(usetts)g(Av)o(en)o(ue,)0 644 y(Cam)o(bridge,)h(MA)g(02139)f(USA)0 781 y(P)o(ermission)f(is)g (gran)o(ted)f(to)f(mak)o(e)h(and)h(distribute)h(v)o(erbatim)e(copies)h (of)f(this)h(man)o(ual)g(pro)o(vided)g(the)f(cop)o(yrigh)o(t)0 843 y(notice)k(and)f(this)h(p)q(ermission)h(notice)e(are)g(preserv)o (ed)h(on)f(all)h(copies.)0 980 y(P)o(ermission)f(is)f(gran)o(ted)f(to)h (cop)o(y)g(and)g(distribute)h(mo)q(di\014ed)h(v)o(ersions)e(of)f(this)i (man)o(ual)f(under)h(the)f(conditions)0 1043 y(for)e(v)o(erbatim)g(cop) o(ying,)h(pro)o(vided)h(that)d(the)i(en)o(tire)g(resulting)h(deriv)o (ed)f(w)o(ork)f(is)h(distributed)h(under)f(the)g(terms)0 1105 y(of)i(a)g(p)q(ermission)h(notice)g(iden)o(tical)h(to)e(this)g (one.)0 1242 y(P)o(ermission)20 b(is)g(gran)o(ted)f(to)g(cop)o(y)h(and) f(distribute)i(translations)f(of)f(this)h(man)o(ual)f(in)o(to)h (another)f(language,)0 1304 y(under)c(the)f(ab)q(o)o(v)o(e)g (conditions)h(for)e(mo)q(di\014ed)j(v)o(ersions,)e(except)g(that)g (this)g(p)q(ermission)i(notice)e(ma)o(y)g(b)q(e)h(stated)0 1366 y(in)h(a)f(translation)g(appro)o(v)o(ed)g(b)o(y)g(the)g(F)l (oundation.)0 2661 y(Cop)o(yrigh)o(t)226 2660 y(c)214 2661 y Fo(\015)g Fr(1989,)f(1991)g(F)l(ree)h(Soft)o(w)o(are)f(F)l (oundation,)h(Inc.)p eop 1 2 bop 0 -58 a Fr(Chapter)15 b(1:)k(Command)c(Line)i(Editing)1227 b(1)0 183 y Fn(1)41 b(Command)16 b(Line)f(Editing)62 408 y Fr(This)h(c)o(hapter)f(describ)q(es)i(the)e(basic)h(features)f (of)g(the)g Fm(GNU)g Fr(command)g(line)i(editing)f(in)o(terface.)0 701 y Fp(1.1)33 b(In)n(tro)r(duction)17 b(to)e(Line)h(Editing)62 845 y Fr(The)g(follo)o(wing)g(paragraphs)e(describ)q(e)j(the)e (notation)g(used)h(to)e(represen)o(t)i(k)o(eystrok)o(es.)62 990 y(The)k(text)e Fq(C-K)h Fr(is)h(read)f(as)f(`Con)o(trol-K')h(and)g (describ)q(es)i(the)e(c)o(haracter)f(pro)q(duced)j(when)e(the)g Fq(K)g Fr(k)o(ey)g(is)0 1052 y(pressed)d(while)g(the)g(Con)o(trol)e(k)o (ey)h(is)h(depressed.)62 1197 y(The)h(text)f Fq(M-K)g Fr(is)i(read)e(as)g(`Meta-K')g(and)h(describ)q(es)h(the)f(c)o(haracter) f(pro)q(duced)h(when)h(the)e(meta)g(k)o(ey)h(\(if)0 1259 y(y)o(ou)f(ha)o(v)o(e)f(one\))h(is)g(depressed,)h(and)f(the)g Fq(K)f Fr(k)o(ey)h(is)h(pressed.)22 b(If)16 b(y)o(ou)g(do)g(not)f(ha)o (v)o(e)g(a)h(meta)f(k)o(ey)l(,)h(the)g(iden)o(tical)0 1321 y(k)o(eystrok)o(e)j(can)g(b)q(e)i(generated)e(b)o(y)h(t)o(yping)f Fq(ESC)h Fl(\014rst)p Fr(,)g(and)f(then)h(t)o(yping)g Fq(K)p Fr(.)33 b(Either)20 b(pro)q(cess)g(is)g(kno)o(wn)f(as)0 1383 y Fl(metafying)g Fr(the)c Fq(K)g Fr(k)o(ey)l(.)62 1528 y(The)h(text)e Fq(M-C-K)g Fr(is)i(read)f(as)f(`Meta-Con)o(trol-k') g(and)h(describ)q(es)h(the)g(c)o(haracter)e(pro)q(duced)i(b)o(y)f Fl(metafying)0 1590 y Fq(C-K)p Fr(.)62 1735 y(In)i(addition,)h(sev)o (eral)e(k)o(eys)g(ha)o(v)o(e)g(their)h(o)o(wn)f(names.)23 b(Sp)q(eci\014cally)m(,)c Fq(DEL)p Fr(,)d Fq(ESC)p Fr(,)f Fq(LFD)p Fr(,)h Fq(SPC)p Fr(,)g Fq(RET)p Fr(,)g(and)g Fq(TAB)0 1797 y Fr(all)e(stand)f(for)f(themselv)o(es)i(when)f(seen)h (in)g(this)f(text,)g(or)g(in)g(an)g(init)i(\014le)f(\(see)f(Section)h (1.3)e([Readline)j(Init)f(File],)0 1859 y(page)h(5\).)0 2152 y Fp(1.2)33 b(Readline)16 b(In)n(teraction)62 2296 y Fr(Often)g(during)h(an)f(in)o(teractiv)o(e)g(session)h(y)o(ou)e(t)o (yp)q(e)h(in)h(a)f(long)g(line)h(of)f(text,)f(only)h(to)g(notice)g (that)f(the)h(\014rst)0 2359 y(w)o(ord)d(on)i(the)f(line)i(is)e(missp)q (elled.)23 b(The)14 b(Readline)i(library)f(giv)o(es)g(y)o(ou)e(a)h(set) g(of)g(commands)g(for)f(manipulating)0 2421 y(the)18 b(text)g(as)g(y)o(ou)g(t)o(yp)q(e)g(it)h(in,)g(allo)o(wing)g(y)o(ou)f (to)g(just)g(\014x)g(y)o(our)g(t)o(yp)q(o,)g(and)h(not)f(forcing)g(y)o (ou)g(to)g(ret)o(yp)q(e)g(the)0 2483 y(ma)s(jorit)o(y)d(of)h(the)g (line.)25 b(Using)17 b(these)g(editing)h(commands,)e(y)o(ou)g(mo)o(v)o (e)f(the)i(cursor)f(to)g(the)g(place)h(that)f(needs)0 2545 y(correction,)g(and)h(delete)g(or)f(insert)g(the)h(text)e(of)h (the)g(corrections.)23 b(Then,)17 b(when)g(y)o(ou)f(are)g(satis\014ed)g (with)h(the)0 2608 y(line,)h(y)o(ou)e(simply)i(press)f Fq(RETURN)p Fr(.)23 b(Y)l(ou)17 b(do)f(not)g(ha)o(v)o(e)g(to)g(b)q(e)i (at)e(the)g(end)h(of)f(the)h(line)h(to)e(press)h Fq(RETURN)p Fr(;)f(the)0 2670 y(en)o(tire)g(line)h(is)e(accepted)h(regardless)f(of) g(the)g(lo)q(cation)h(of)f(the)h(cursor)e(within)j(the)e(line.)p eop 2 3 bop 0 -58 a Fr(2)1472 b(GNU)15 b(Readline)i(Library)0 183 y Fk(1.2.1)30 b(Readline)15 b(Bare)g(Essen)n(tials)62 320 y Fr(In)f(order)f(to)f(en)o(ter)h(c)o(haracters)g(in)o(to)g(the)g (line,)i(simply)f(t)o(yp)q(e)f(them.)19 b(The)14 b(t)o(yp)q(ed)f(c)o (haracter)f(app)q(ears)i(where)0 382 y(the)h(cursor)h(w)o(as,)e(and)h (then)h(the)g(cursor)f(mo)o(v)o(es)f(one)i(space)g(to)e(the)i(righ)o (t.)k(If)c(y)o(ou)f(mist)o(yp)q(e)h(a)f(c)o(haracter,)f(y)o(ou)0 445 y(can)h(use)h(y)o(our)f(erase)g(c)o(haracter)f(to)h(bac)o(k)g(up)g (and)h(delete)g(the)f(mist)o(yp)q(ed)h(c)o(haracter.)62 582 y(Sometimes)f(y)o(ou)e(ma)o(y)h(miss)g(t)o(yping)g(a)g(c)o (haracter)g(that)f(y)o(ou)h(w)o(an)o(ted)f(to)g(t)o(yp)q(e,)h(and)h (not)e(notice)i(y)o(our)f(error)0 644 y(un)o(til)k(y)o(ou)e(ha)o(v)o(e) g(t)o(yp)q(ed)h(sev)o(eral)g(other)f(c)o(haracters.)23 b(In)18 b(that)d(case,)i(y)o(ou)f(can)h(t)o(yp)q(e)g Fq(C-B)f Fr(to)g(mo)o(v)o(e)g(the)g(cursor)0 706 y(to)f(the)h(left,)g (and)g(then)g(correct)f(y)o(our)h(mistak)o(e.)21 b(Afterw)o(ards,)14 b(y)o(ou)i(can)g(mo)o(v)o(e)f(the)h(cursor)f(to)g(the)h(righ)o(t)g (with)0 769 y Fq(C-F)p Fr(.)62 906 y(When)i(y)o(ou)f(add)g(text)g(in)h (the)f(middle)i(of)e(a)g(line,)i(y)o(ou)e(will)i(notice)e(that)g(c)o (haracters)f(to)h(the)g(righ)o(t)g(of)g(the)0 968 y(cursor)h(are)h (`pushed)g(o)o(v)o(er')e(to)h(mak)o(e)g(ro)q(om)g(for)g(the)h(text)f (that)g(y)o(ou)g(ha)o(v)o(e)h(inserted.)31 b(Lik)o(ewise,)20 b(when)f(y)o(ou)0 1030 y(delete)f(text)f(b)q(ehind)i(the)f(cursor,)f(c) o(haracters)f(to)h(the)g(righ)o(t)g(of)g(the)h(cursor)f(are)g(`pulled)i (bac)o(k')d(to)h(\014ll)i(in)f(the)0 1092 y(blank)g(space)f(created)g (b)o(y)g(the)h(remo)o(v)m(al)f(of)f(the)i(text.)25 b(A)17 b(list)h(of)e(the)h(basic)h(bare)f(essen)o(tials)h(for)e(editing)j(the) 0 1155 y(text)c(of)f(an)i(input)g(line)h(follo)o(ws.)0 1303 y Fq(C-B)168 b Fr(Mo)o(v)o(e)14 b(bac)o(k)h(one)h(c)o(haracter.)0 1390 y Fq(C-F)168 b Fr(Mo)o(v)o(e)14 b(forw)o(ard)g(one)h(c)o (haracter.)0 1476 y Fq(DEL)168 b Fr(Delete)16 b(the)f(c)o(haracter)g (to)f(the)h(left)h(of)f(the)g(cursor.)0 1562 y Fq(C-D)168 b Fr(Delete)16 b(the)f(c)o(haracter)g(underneath)h(the)f(cursor.)0 1648 y(Prin)o(ting)h(c)o(haracters)240 1710 y(Insert)f(the)h(c)o (haracter)e(in)o(to)h(the)h(line)h(at)d(the)h(cursor.)0 1796 y Fq(C-_)168 b Fr(Undo)15 b(the)h(last)f(thing)h(that)e(y)o(ou)h (did.)21 b(Y)l(ou)15 b(can)h(undo)f(all)h(the)g(w)o(a)o(y)e(bac)o(k)h (to)f(an)i(empt)o(y)e(line.)0 2001 y Fk(1.2.2)30 b(Readline)15 b(Mo)n(v)n(emen)n(t)h(Commands)62 2138 y Fr(The)c(ab)q(o)o(v)o(e)g (table)g(describ)q(es)i(the)e(most)f(basic)h(p)q(ossible)i(k)o(eystrok) o(es)d(that)g(y)o(ou)g(need)i(in)g(order)f(to)f(do)h(editing)0 2201 y(of)g(the)h(input)h(line.)21 b(F)l(or)12 b(y)o(our)g(con)o(v)o (enience,)i(man)o(y)f(other)f(commands)h(ha)o(v)o(e)f(b)q(een)i(added)f (in)h(addition)g(to)e Fq(C-B)p Fr(,)0 2263 y Fq(C-F)p Fr(,)i Fq(C-D)p Fr(,)h(and)g Fq(DEL)p Fr(.)20 b(Here)15 b(are)g(some)g(commands)g(for)f(mo)o(ving)h(more)g(rapidly)i(ab)q(out)e (the)g(line.)0 2412 y Fq(C-A)168 b Fr(Mo)o(v)o(e)14 b(to)h(the)g(start) f(of)h(the)g(line.)0 2498 y Fq(C-E)168 b Fr(Mo)o(v)o(e)14 b(to)h(the)g(end)h(of)f(the)g(line.)0 2584 y Fq(M-F)168 b Fr(Mo)o(v)o(e)14 b(forw)o(ard)g(a)h(w)o(ord.)0 2670 y Fq(M-B)168 b Fr(Mo)o(v)o(e)14 b(bac)o(kw)o(ard)h(a)g(w)o(ord.)p eop 3 4 bop 0 -58 a Fr(Chapter)15 b(1:)k(Command)c(Line)i(Editing)1227 b(3)0 183 y Fq(C-L)168 b Fr(Clear)15 b(the)h(screen,)f(reprin)o(ting)h (the)f(curren)o(t)g(line)i(at)e(the)g(top.)62 350 y(Notice)22 b(ho)o(w)e Fq(C-F)h Fr(mo)o(v)o(es)f(forw)o(ard)g(a)g(c)o(haracter,)i (while)g Fq(M-F)f Fr(mo)o(v)o(es)f(forw)o(ard)g(a)h(w)o(ord.)36 b(It)21 b(is)h(a)f(lo)q(ose)0 412 y(con)o(v)o(en)o(tion)15 b(that)g(con)o(trol)g(k)o(eystrok)o(es)f(op)q(erate)h(on)g(c)o (haracters)f(while)j(meta)e(k)o(eystrok)o(es)f(op)q(erate)h(on)g(w)o (ords.)0 696 y Fk(1.2.3)30 b(Readline)15 b(Killing)g(Commands)62 841 y Fl(Killing)25 b Fr(text)18 b(means)g(to)f(delete)i(the)g(text)e (from)h(the)g(line,)i(but)e(to)g(sa)o(v)o(e)f(it)i(a)o(w)o(a)o(y)d(for) i(later)g(use,)h(usually)0 903 y(b)o(y)c Fl(y)o(anking)k Fr(\(re-inserting\))c(it)g(bac)o(k)g(in)o(to)g(the)g(line.)21 b(If)16 b(the)f(description)h(for)e(a)h(command)f(sa)o(ys)h(that)f(it)h (`kills')0 966 y(text,)f(then)i(y)o(ou)f(can)g(b)q(e)h(sure)f(that)g(y) o(ou)g(can)g(get)g(the)g(text)g(bac)o(k)g(in)h(a)f(di\013eren)o(t)g (\(or)f(the)i(same\))e(place)i(later.)62 1111 y(When)g(y)o(ou)f(use)g (a)g(kill)i(command,)e(the)h(text)e(is)i(sa)o(v)o(ed)f(in)h(a)f Fl(kill-ring)p Fr(.)22 b(An)o(y)16 b(n)o(um)o(b)q(er)f(of)g(consecutiv) o(e)h(kills)0 1173 y(sa)o(v)o(e)g(all)i(of)e(the)h(killed)i(text)d (together,)g(so)g(that)g(when)h(y)o(ou)f(y)o(ank)h(it)g(bac)o(k,)f(y)o (ou)h(get)f(it)h(all.)25 b(The)17 b(kill)h(ring)f(is)0 1236 y(not)e(line)i(sp)q(eci\014c;)g(the)f(text)f(that)g(y)o(ou)g (killed)j(on)d(a)h(previously)g(t)o(yp)q(ed)g(line)h(is)f(a)o(v)m (ailable)i(to)d(b)q(e)h(y)o(ank)o(ed)f(bac)o(k)0 1298 y(later,)g(when)h(y)o(ou)e(are)h(t)o(yping)h(another)e(line.)62 1443 y(Here)i(is)f(the)h(list)g(of)e(commands)h(for)g(killing)j(text.)0 1610 y Fq(C-K)168 b Fr(Kill)17 b(the)f(text)e(from)h(the)g(curren)o(t)g (cursor)g(p)q(osition)h(to)f(the)g(end)h(of)f(the)g(line.)0 1714 y Fq(M-D)168 b Fr(Kill)17 b(from)d(the)h(cursor)g(to)f(the)h(end)g (of)g(the)g(curren)o(t)f(w)o(ord,)g(or)g(if)i(b)q(et)o(w)o(een)f(w)o (ords,)f(to)g(the)h(end)g(of)240 1776 y(the)g(next)h(w)o(ord.)0 1880 y Fq(M-DEL)120 b Fr(Kill)16 b(from)d(the)i(cursor)e(the)h(start)f (of)h(the)g(previous)h(w)o(ord,)e(or)g(if)i(b)q(et)o(w)o(een)f(w)o (ords,)f(to)h(the)g(start)e(of)240 1942 y(the)j(previous)h(w)o(ord.)0 2046 y Fq(C-W)168 b Fr(Kill)18 b(from)e(the)g(cursor)g(to)f(the)h (previous)h(whitespace.)24 b(This)17 b(is)f(di\013eren)o(t)h(than)f Fq(M-DEL)f Fr(b)q(ecause)240 2109 y(the)g(w)o(ord)g(b)q(oundaries)h (di\013er.)62 2275 y(And,)e(here)g(is)h(ho)o(w)e(to)g Fl(y)o(ank)j Fr(the)e(text)f(bac)o(k)g(in)o(to)h(the)f(line.)22 b(Y)l(anking)14 b(means)g(to)f(cop)o(y)g(the)h(most-recen)o(tly-)0 2337 y(killed)j(text)e(from)g(the)g(kill)i(bu\013er.)0 2504 y Fq(C-Y)168 b Fr(Y)l(ank)15 b(the)h(most)e(recen)o(tly)i(killed)h (text)e(bac)o(k)g(in)o(to)g(the)h(bu\013er)f(at)f(the)i(cursor.)0 2608 y Fq(M-Y)168 b Fr(Rotate)13 b(the)h(kill-ring,)i(and)e(y)o(ank)g (the)g(new)g(top.)19 b(Y)l(ou)14 b(can)g(only)g(do)g(this)g(if)g(the)g (prior)g(command)240 2670 y(is)i Fq(C-Y)e Fr(or)h Fq(M-Y)p Fr(.)p eop 4 5 bop 0 -58 a Fr(4)1472 b(GNU)15 b(Readline)i(Library)0 183 y Fk(1.2.4)30 b(Readline)15 b(Argumen)n(ts)62 345 y Fr(Y)l(ou)k(can)g(pass)f(n)o(umeric)i(argumen)o(ts)d(to)h(Readline)j (commands.)30 b(Sometimes)19 b(the)f(argumen)o(t)g(acts)g(as)g(a)0 407 y(rep)q(eat)f(coun)o(t,)f(other)g(times)g(it)h(is)g(the)g Fl(sign)f Fr(of)g(the)h(argumen)o(t)f(that)f(is)i(signi\014can)o(t.)25 b(If)16 b(y)o(ou)h(pass)f(a)g(negativ)o(e)0 470 y(argumen)o(t)g(to)g(a) h(command)g(whic)o(h)h(normally)f(acts)g(in)h(a)e(forw)o(ard)g (direction,)i(that)f(command)f(will)j(act)d(in)i(a)0 532 y(bac)o(kw)o(ard)13 b(direction.)20 b(F)l(or)13 b(example,)i(to)d (kill)k(text)d(bac)o(k)g(to)g(the)h(start)e(of)h(the)h(line,)h(y)o(ou)e (migh)o(t)g(t)o(yp)q(e)h Fq(M--)h(C-k)o Fr(.)62 694 y(The)k(general)g (w)o(a)o(y)f(to)g(pass)g(n)o(umeric)i(argumen)o(ts)e(to)g(a)g(command)h (is)g(to)f(t)o(yp)q(e)g(meta)g(digits)i(b)q(efore)f(the)0 756 y(command.)36 b(If)21 b(the)g(\014rst)f(`digit')h(y)o(ou)g(t)o(yp)q (e)f(is)i(a)e(min)o(us)h(sign)g(\()p Fq(-)p Fr(\),)g(then)g(the)g(sign) g(of)g(the)f(argumen)o(t)g(will)0 818 y(b)q(e)i(negativ)o(e.)40 b(Once)22 b(y)o(ou)f(ha)o(v)o(e)h(t)o(yp)q(ed)g(one)f(meta)g(digit)i (to)e(get)g(the)h(argumen)o(t)f(started,)h(y)o(ou)f(can)h(t)o(yp)q(e)0 881 y(the)c(remainder)h(of)f(the)g(digits,)h(and)f(then)h(the)f (command.)29 b(F)l(or)17 b(example,)i(to)f(giv)o(e)g(the)g Fq(C-D)g Fr(command)g(an)0 943 y(argumen)o(t)c(of)h(10,)f(y)o(ou)h (could)h(t)o(yp)q(e)g(`)p Fq(M-1)e(0)h(C-d)p Fr('.)0 1375 y Fk(1.2.5)30 b(Searc)n(hing)15 b(for)g(Commands)h(in)f(the)g (History)62 1537 y Fr(Readline)j(pro)o(vides)d(commands)g(for)g(searc)o (hing)h(through)e(the)i(command)f(history)g(for)g(lines)h(con)o (taining)g(a)0 1599 y(sp)q(eci\014ed)h(string.)j(There)c(are)f(t)o(w)o (o)e(searc)o(h)i(mo)q(des:)20 b Fl(incremen)o(tal)f Fr(and)c Fl(non-incremen)o(tal)p Fr(.)62 1761 y(Incremen)o(tal)i(searc)o(hes)e (b)q(egin)i(b)q(efore)f(the)g(user)f(has)h(\014nished)h(t)o(yping)f (the)g(searc)o(h)f(string.)21 b(As)15 b(eac)o(h)h(c)o(har-)0 1823 y(acter)f(of)h(the)g(searc)o(h)f(string)h(is)g(t)o(yp)q(ed,)g (readline)h(displa)o(ys)g(the)f(next)g(en)o(try)f(from)g(the)h(history) g(matc)o(hing)g(the)0 1885 y(string)g(t)o(yp)q(ed)g(so)f(far.)20 b(An)c(incremen)o(tal)h(searc)o(h)e(requires)i(only)f(as)f(man)o(y)g(c) o(haracters)g(as)h(needed)h(to)e(\014nd)h(the)0 1948 y(desired)g(history)f(en)o(try)l(.)20 b(The)15 b(Escap)q(e)h(c)o (haracter)e(is)h(used)h(to)e(terminate)h(an)g(incremen)o(tal)h(searc)o (h.)k(Con)o(trol-J)0 2010 y(will)c(also)f(terminate)g(the)g(searc)o(h.) k(Con)o(trol-G)14 b(will)j(ab)q(ort)d(an)h(incremen)o(tal)g(searc)o(h)g (and)g(restore)f(the)h(original)0 2072 y(line.)30 b(When)18 b(the)h(searc)o(h)e(is)i(terminated,)g(the)f(history)g(en)o(try)f(con)o (taining)i(the)f(searc)o(h)g(string)g(b)q(ecomes)h(the)0 2134 y(curren)o(t)g(line.)35 b(T)l(o)20 b(\014nd)g(other)f(matc)o(hing) h(en)o(tries)g(in)g(the)g(history)g(list,)h(t)o(yp)q(e)e(Con)o(trol-S)h (or)f(Con)o(trol-R)g(as)0 2197 y(appropriate.)k(This)17 b(will)h(searc)o(h)e(bac)o(kw)o(ard)g(or)f(forw)o(ard)g(in)j(the)e (history)g(for)g(the)g(next)h(en)o(try)f(matc)o(hing)g(the)0 2259 y(searc)o(h)c(string)h(t)o(yp)q(ed)f(so)g(far.)19 b(An)o(y)12 b(other)g(k)o(ey)g(sequence)i(b)q(ound)f(to)f(a)g(readline) i(command)e(will)i(terminate)f(the)0 2321 y(searc)o(h)j(and)h(execute)g (that)f(command.)24 b(F)l(or)16 b(instance,)h(a)g Fq(newline)e Fr(will)j(terminate)f(the)g(searc)o(h)f(and)h(accept)0 2384 y(the)e(line,)i(thereb)o(y)e(executing)h(the)g(command)f(from)f (the)h(history)h(list.)62 2545 y(Non-incremen)o(tal)k(searc)o(hes)f (read)f(the)h(en)o(tire)g(searc)o(h)g(string)f(b)q(efore)h(starting)f (to)g(searc)o(h)h(for)f(matc)o(hing)0 2608 y(history)g(lines.)29 b(The)18 b(searc)o(h)g(string)g(ma)o(y)f(b)q(e)h(t)o(yp)q(ed)g(b)o(y)g (the)g(user)g(or)f(part)g(of)h(the)g(con)o(ten)o(ts)f(of)g(the)h (curren)o(t)0 2670 y(line.)p eop 5 6 bop 0 -58 a Fr(Chapter)15 b(1:)k(Command)c(Line)i(Editing)1227 b(5)0 183 y Fp(1.3)33 b(Readline)16 b(Init)g(File)62 324 y Fr(Although)h(the)f(Readline)j(library)e(comes)f(with)g(a)g(set)g (of)g Fq(emacs)p Fr(-lik)o(e)h(k)o(eybindings)h(installed)g(b)o(y)e (default,)0 387 y(it)e(is)g(p)q(ossible)i(that)d(y)o(ou)g(w)o(ould)h (lik)o(e)h(to)e(use)h(a)f(di\013eren)o(t)h(set)g(of)f(k)o(eybindings.) 21 b(Y)l(ou)14 b(can)g(customize)g(programs)0 449 y(that)j(use)h (Readline)i(b)o(y)e(putting)h(commands)e(in)i(an)f Fl(inputrc)j Fr(\014le)e(in)g(y)o(our)e(home)h(directory)l(.)28 b(The)19 b(name)e(of)0 511 y(this)e(\014le)h(is)g(tak)o(en)e(from)h(the)g(v)m (alue)h(of)e(the)h(en)o(vironmen)o(t)h(v)m(ariable)g Fq(INPUTRC)p Fr(.)j(If)c(that)f(v)m(ariable)j(is)e(unset,)g(the)0 573 y(default)h(is)f(`)p Fq(~/.inputrc)p Fr('.)62 714 y(When)k(a)g(program)e(whic)o(h)j(uses)f(the)g(Readline)i(library)e (starts)f(up,)h(the)g(init)h(\014le)g(is)f(read,)g(and)g(the)g(k)o(ey)0 777 y(bindings)e(are)e(set.)62 918 y(In)j(addition,)h(the)f Fq(C-x)c(C-r)k Fr(command)f(re-reads)g(this)h(init)h(\014le,)g(th)o(us) e(incorp)q(orating)h(an)o(y)f(c)o(hanges)h(that)0 980 y(y)o(ou)d(migh)o(t)g(ha)o(v)o(e)g(made)g(to)f(it.)0 1224 y Fk(1.3.1)30 b(Readline)15 b(Init)g(File)g(Syn)n(tax)62 1365 y Fr(There)h(are)f(only)h(a)f(few)g(basic)h(constructs)f(allo)o(w) o(ed)h(in)g(the)g(Readline)i(init)e(\014le.)22 b(Blank)16 b(lines)h(are)e(ignored.)0 1427 y(Lines)f(b)q(eginning)h(with)e(a)f(`)p Fq(#)p Fr(')g(are)g(commen)o(ts.)19 b(Lines)14 b(b)q(eginning)h(with)e (a)f(`)p Fq($)p Fr(')g(indicate)i(conditional)g(constructs)0 1490 y(\(see)i(Section)h(1.3.2)e([Conditional)i(Init)g(Constructs],)e (page)i(8\).)22 b(Other)16 b(lines)i(denote)f(v)m(ariable)h(settings)e (and)0 1552 y(k)o(ey)f(bindings.)0 1710 y(V)l(ariable)h(Settings)240 1772 y(Y)l(ou)j(can)g(c)o(hange)g(the)g(state)f(of)g(a)g(few)h(v)m (ariables)h(in)g(Readline)h(b)o(y)d(using)i(the)f Fq(set)f Fr(command)240 1834 y(within)e(the)f(init)h(\014le.)k(Here)15 b(is)g(ho)o(w)g(y)o(ou)f(w)o(ould)h(sp)q(ecify)h(that)e(y)o(ou)g(wish)i (to)e(use)h Fq(vi)f Fr(line)j(editing)240 1896 y(commands:)360 1965 y Fq(set)23 b(editing-mode)g(vi)240 2044 y Fr(Righ)o(t)14 b(no)o(w,)f(there)h(are)f(only)h(a)f(few)h(v)m(ariables)g(whic)o(h)h (can)f(b)q(e)g(set;)f(so)g(few,)h(in)g(fact,)f(that)g(w)o(e)g(just)240 2106 y(list)j(them)f(here:)240 2201 y Fq(bell-style)480 2263 y Fr(Con)o(trols)h(what)f(happ)q(ens)j(when)f(Readline)h(w)o(an)o (ts)e(to)f(ring)i(the)f(terminal)h(b)q(ell.)26 b(If)480 2326 y(set)17 b(to)f(`)p Fq(none)p Fr(',)g(Readline)j(nev)o(er)f(rings) f(the)g(b)q(ell.)28 b(If)17 b(set)g(to)f(`)p Fq(visible)p Fr(',)g(Readline)480 2388 y(uses)21 b(a)g(visible)j(b)q(ell)f(if)e(one) h(is)f(a)o(v)m(ailable.)40 b(If)21 b(set)g(to)g(`)p Fq(audible)p Fr(')e(\(the)i(default\),)480 2450 y(Readline)d(attempts)c(to)g(ring)i (the)f(terminal's)h(b)q(ell.)240 2545 y Fq(comment-begin)480 2608 y Fr(The)d(string)h(to)e(insert)i(at)e(the)i(b)q(eginning)h(of)e (the)g(line)i(when)f(the)f Fq(insert-comment)480 2670 y Fr(command)i(is)h(executed.)21 b(The)15 b(default)h(v)m(alue)g(is)g Fq("#")p Fr(.)p eop 6 7 bop 0 -58 a Fr(6)1472 b(GNU)15 b(Readline)i(Library)240 183 y Fq(completion-query-items)480 246 y Fr(The)12 b(n)o(um)o(b)q(er)g (of)f(p)q(ossible)j(completions)e(that)f(determines)i(when)f(the)g (user)g(is)g(ask)o(ed)480 308 y(whether)k(he)h(w)o(an)o(ts)d(to)i(see)g (the)g(list)h(of)e(p)q(ossibiliti)q(es.)25 b(If)16 b(the)g(n)o(um)o(b)q (er)h(of)e(p)q(ossible)480 370 y(completions)i(is)f(greater)f(than)h (this)h(v)m(alue,)f(Readline)j(will)e(ask)f(the)g(user)g(whether)480 432 y(or)k(not)h(he)h(wishes)f(to)g(view)g(them;)j(otherwise,)e(they)f (are)g(simply)h(listed.)39 b(The)480 495 y(default)16 b(limit)g(is)g Fq(100)p Fr(.)240 592 y Fq(convert-meta)480 654 y Fr(If)21 b(set)f(to)g(`)p Fq(on)p Fr(',)g(Readline)j(will)f(con)o (v)o(ert)e(c)o(haracters)f(with)i(the)g(eigth)f(bit)h(set)g(to)480 716 y(an)c(ASCI)q(I)g(k)o(ey)g(sequence)h(b)o(y)e(stripping)i(the)f (eigth)g(bit)g(and)g(prep)q(ending)i(an)d Fq(ESC)480 779 y Fr(c)o(haracter,)h(con)o(v)o(erting)g(them)g(to)f(a)h (meta-pre\014xed)h(k)o(ey)f(sequence.)27 b(The)17 b(default)480 841 y(v)m(alue)f(is)g(`)p Fq(on)p Fr('.)240 938 y Fq (disable-completion)480 1000 y Fr(If)e(set)f(to)g(`)p Fq(On)p Fr(',)f(readline)j(will)h(inhibit)f(w)o(ord)e(completion.)20 b(Completion)15 b(c)o(haracters)480 1063 y(will)h(b)q(e)g(inserted)g (in)o(to)e(the)h(line)i(as)d(if)h(they)g(had)g(b)q(een)h(mapp)q(ed)g (to)e Fq(self-insert)p Fr(.)480 1125 y(The)h(default)h(is)g(`)p Fq(off)p Fr('.)240 1222 y Fq(editing-mode)480 1285 y Fr(The)d Fq(editing-mode)e Fr(v)m(ariable)j(con)o(trols)e(whic)o(h)h (editing)h(mo)q(de)f(y)o(ou)f(are)g(using.)20 b(By)480 1347 y(default,)f(Readline)h(starts)c(up)i(in)h(Emacs)e(editing)i(mo)q (de,)f(where)g(the)g(k)o(eystrok)o(es)480 1409 y(are)g(most)f(similar)i (to)e(Emacs.)27 b(This)19 b(v)m(ariable)g(can)f(b)q(e)h(set)e(to)g (either)i(`)p Fq(emacs)p Fr(')d(or)480 1471 y(`)p Fq(vi)p Fr('.)240 1569 y Fq(enable-keypad)480 1631 y Fr(When)g(set)g(to)f(`)p Fq(on)p Fr(',)g(readline)j(will)f(try)e(to)h(enable)h(the)f (application)h(k)o(eypad)f(when)480 1693 y(it)f(is)g(called.)22 b(Some)15 b(systems)f(need)i(this)f(to)f(enable)i(the)f(arro)o(w)f(k)o (eys.)19 b(The)c(default)480 1755 y(is)h(`)p Fq(off)p Fr('.)240 1853 y Fq(expand-tilde)480 1915 y Fr(If)i(set)f(to)f(`)p Fq(on)p Fr(',)h(tilde)h(expansion)h(is)e(p)q(erformed)h(when)g (Readline)h(attempts)e(w)o(ord)480 1977 y(completion.)k(The)15 b(default)h(is)g(`)p Fq(off)p Fr('.)240 2075 y Fq (horizontal-scroll-mode)480 2137 y Fr(This)j(v)m(ariable)h(can)e(b)q(e) i(set)e(to)g(either)h(`)p Fq(on)p Fr(')e(or)h(`)p Fq(off)p Fr('.)28 b(Setting)19 b(it)g(to)f(`)p Fq(on)p Fr(')f(means)480 2199 y(that)f(the)h(text)f(of)h(the)f(lines)j(that)d(y)o(ou)g(edit)i (will)g(scroll)g(horizon)o(tally)f(on)g(a)g(single)480 2261 y(screen)h(line)h(when)f(they)f(are)g(longer)h(than)f(the)g(width) h(of)f(the)g(screen,)h(instead)g(of)480 2324 y(wrapping)e(on)o(to)e(a)h (new)g(screen)h(line.)21 b(By)16 b(default,)f(this)h(v)m(ariable)g(is)g (set)f(to)g(`)p Fq(off)p Fr('.)240 2421 y Fq(keymap)96 b Fr(Sets)13 b(Readline's)i(idea)e(of)g(the)g(curren)o(t)f(k)o(eymap)h (for)f(k)o(ey)h(binding)i(commands.)k(Ac-)480 2483 y(ceptable)d Fq(keymap)e Fr(names)h(are)g Fq(emacs)p Fr(,)f Fq(emacs-standard)p Fr(,)f Fq(emacs-meta)p Fr(,)g Fq(emacs-)480 2545 y(ctlx)p Fr(,)18 b Fq(vi)p Fr(,)h Fq(vi-command)p Fr(,)e(and)i Fq(vi-insert)p Fr(.)28 b Fq(vi)18 b Fr(is)h(equiv)m(alen)o(t)h(to)e Fq(vi-command)p Fr(;)480 2608 y Fq(emacs)d Fr(is)i(equiv)m(alen)o(t)h (to)d Fq(emacs-standard)p Fr(.)20 b(The)d(default)f(v)m(alue)i(is)e Fq(emacs)p Fr(.)22 b(The)480 2670 y(v)m(alue)16 b(of)f(the)g Fq(editing-mode)f Fr(v)m(ariable)j(also)e(a\013ects)f(the)h(default)h (k)o(eymap.)p eop 7 8 bop 0 -58 a Fr(Chapter)15 b(1:)k(Command)c(Line)i(Editing)1227 b(7)240 183 y Fq(mark-directories)480 246 y Fr(If)22 b(set)g(to)g(`)p Fq(on)p Fr(',)g(completed)h(directory)f(names)h(ha)o (v)o(e)e(a)h(slash)h(app)q(ended.)42 b(The)480 308 y(default)16 b(is)f(`)p Fq(on)p Fr('.)240 388 y Fq(mark-modified-lines)480 450 y Fr(This)f(v)m(ariable,)h(when)e(set)g(to)g(`)p Fq(on)p Fr(',)f(sa)o(ys)h(to)g(displa)o(y)h(an)f(asterisk)g(\(`)p Fq(*)p Fr('\))f(at)h(the)g(start)480 512 y(of)f(history)h(lines)h(whic) o(h)f(ha)o(v)o(e)f(b)q(een)i(mo)q(di\014ed.)21 b(This)13 b(v)m(ariable)h(is)f(`)p Fq(off)p Fr(')e(b)o(y)i(default.)240 593 y Fq(input-meta)480 655 y Fr(If)21 b(set)g(to)g(`)p Fq(on)p Fr(',)g(Readline)i(will)g(enable)g(eigh)o(t-bit)f(input)g(\(it) f(will)i(not)d(strip)i(the)480 717 y(eigh)o(th)e(bit)f(from)f(the)i(c)o (haracters)e(it)h(reads\),)h(regardless)f(of)f(what)h(the)g(terminal) 480 779 y(claims)d(it)g(can)f(supp)q(ort.)21 b(The)15 b(default)h(v)m(alue)h(is)e(`)p Fq(off)p Fr('.)20 b(The)15 b(name)g Fq(meta-flag)f Fr(is)480 842 y(a)h(synon)o(ym)g(for)f(this)i (v)m(ariable.)240 922 y Fq(output-meta)480 984 y Fr(If)11 b(set)f(to)g(`)p Fq(on)p Fr(',)g(Readline)j(will)g(displa)o(y)e(c)o (haracters)f(with)h(the)g(eigh)o(th)g(bit)g(set)g(directly)480 1046 y(rather)k(than)g(as)f(a)h(meta-pre\014xed)h(escap)q(e)g (sequence.)21 b(The)16 b(default)f(is)h(`)p Fq(off)p Fr('.)240 1126 y Fq(show-all-if-ambiguous)480 1189 y Fr(This)f(alters)f(the)h(default)g(b)q(eha)o(vior)g(of)f(the)h (completion)g(functions.)21 b(If)14 b(set)h(to)e(`)p Fq(on)p Fr(',)480 1251 y(w)o(ords)18 b(whic)o(h)i(ha)o(v)o(e)f(more)f (than)h(one)g(p)q(ossible)i(completion)f(cause)f(the)g(matc)o(hes)480 1313 y(to)e(b)q(e)h(listed)h(immediately)g(instead)f(of)f(ringing)i (the)e(b)q(ell.)29 b(The)18 b(default)g(v)m(alue)g(is)480 1375 y(`)p Fq(off)p Fr('.)240 1456 y Fq(visible-stats)480 1518 y Fr(If)c(set)g(to)f(`)p Fq(on)p Fr(',)f(a)i(c)o(haracter)f (denoting)h(a)g(\014le's)g(t)o(yp)q(e)g(is)g(app)q(ended)i(to)d(the)h (\014lename)480 1580 y(when)i(listing)g(p)q(ossible)h(completions.)k (The)16 b(default)f(is)h(`)p Fq(off)p Fr('.)0 1660 y(Key)g(Bindings)240 1722 y(The)k(syn)o(tax)f(for)g(con)o(trolling)i(k)o(ey)e(bindings)j(in) e(the)g(init)h(\014le)g(is)f(simple.)35 b(First)19 b(y)o(ou)g(ha)o(v)o (e)h(to)240 1785 y(kno)o(w)13 b(the)h(name)g(of)f(the)h(command)g(that) f(y)o(ou)g(w)o(an)o(t)g(to)g(c)o(hange.)20 b(The)14 b(follo)o(wing)g (pages)g(con)o(tain)240 1847 y(tables)i(of)f(the)h(command)g(name,)f (the)h(default)g(k)o(eybinding,)i(and)e(a)f(short)g(description)i(of)f (what)240 1909 y(the)f(command)g(do)q(es.)240 1980 y(Once)h(y)o(ou)e (kno)o(w)g(the)h(name)g(of)f(the)h(command,)f(simply)i(place)g(the)f (name)f(of)h(the)f(k)o(ey)h(y)o(ou)f(wish)240 2043 y(to)g(bind)j(the)e (command)g(to,)f(a)g(colon,)i(and)f(then)g(the)g(name)g(of)g(the)g (command)g(on)g(a)f(line)j(in)f(the)240 2105 y(init)h(\014le.)22 b(The)16 b(name)g(of)f(the)h(k)o(ey)f(can)h(b)q(e)g(expressed)h(in)f (di\013eren)o(t)g(w)o(a)o(ys,)f(dep)q(ending)i(on)f(whic)o(h)240 2167 y(is)g(most)e(comfortable)h(for)g(y)o(ou.)240 2247 y Fl(k)o(eyname)s Fr(:)k Fl(function-name)g Fr(or)c Fl(macro)480 2310 y(k)o(eyname)j Fr(is)d(the)h(name)f(of)g(a)g(k)o(ey)g(sp)q(elled)i (out)e(in)h(English.)21 b(F)l(or)15 b(example:)600 2370 y Fq(Control-u:)22 b(universal-argument)600 2422 y(Meta-Rubout:)g (backward-kill-word)600 2474 y(Control-o:)g(">)i(output")480 2545 y Fr(In)12 b(the)g(ab)q(o)o(v)o(e)f(example,)h(`)p Fq(C-u)p Fr(')f(is)h(b)q(ound)g(to)f(the)h(function)g Fq(universal-argument)p Fr(,)480 2608 y(and)h(`)p Fq(C-o)p Fr(')f(is)h(b)q(ound)h(to)f(run)g(the)g(macro)f(expressed)i(on)f(the)g (righ)o(t)g(hand)g(side)h(\(that)480 2670 y(is,)h(to)g(insert)h(the)f (text)g(`)p Fq(>)f(output)p Fr(')g(in)o(to)h(the)h(line\).)p eop 8 9 bop 0 -58 a Fr(8)1472 b(GNU)15 b(Readline)i(Library)240 183 y Fq(")p Fl(k)o(eyseq)q Fq(")p Fr(:)j Fl(function-name)e Fr(or)d Fl(macro)480 246 y(k)o(eyseq)j Fr(di\013ers)f(from)f Fl(k)o(eyname)k Fr(ab)q(o)o(v)o(e)c(in)i(that)e(strings)h(denoting)h (an)f(en)o(tire)g(k)o(ey)480 308 y(sequence)i(can)f(b)q(e)h(sp)q (eci\014ed,)i(b)o(y)d(placing)h(the)f(k)o(ey)g(sequence)h(in)g(double)h (quotes.)480 370 y(Some)e(GNU)g(Emacs)f(st)o(yle)h(k)o(ey)g(escap)q(es) g(can)g(b)q(e)h(used,)g(as)e(in)i(the)f(follo)o(wing)h(ex-)480 432 y(ample,)c(but)h(the)f(sp)q(ecial)i(c)o(haracter)e(names)g(are)g (not)f(recognized.)600 499 y Fq("\\C-u":)23 b(universal-argument)600 551 y("\\C-x\\C-r":)f(re-read-init-file)600 603 y("\\e[11~":)h ("Function)f(Key)i(1")480 681 y Fr(In)13 b(the)g(ab)q(o)o(v)o(e)g (example,)g(`)p Fq(C-u)p Fr(')f(is)h(b)q(ound)h(to)e(the)h(function)g Fq(universal-argument)480 743 y Fr(\(just)g(as)f(it)i(w)o(as)e(in)i (the)f(\014rst)g(example\),)h(`)p Fq(C-x)g(C-r)p Fr(')f(is)g(b)q(ound)i (to)d(the)h(function)h Fq(re-)480 805 y(read-init-file)p Fr(,)g(and)i(`)p Fq(ESC)e([)h(1)g(1)g(~)p Fr(')h(is)g(b)q(ound)h(to)f (insert)g(the)g(text)f(`)p Fq(Function)480 867 y(Key)g(1)p Fr('.)24 b(The)18 b(follo)o(wing)f(escap)q(e)h(sequences)g(are)f(a)o(v) m(ailable)i(when)e(sp)q(ecifying)i(k)o(ey)480 930 y(sequences:)480 1022 y Fq(\\C-)168 b Fr(con)o(trol)15 b(pre\014x)480 1115 y Fq(\\M-)168 b Fr(meta)15 b(pre\014x)480 1208 y Fq(\\e)192 b Fr(an)15 b(escap)q(e)h(c)o(haracter)480 1300 y Fq(\\\\)192 b Fr(bac)o(kslash)480 1393 y Fq(\\")g(")480 1485 y(\\')g(')480 1578 y Fr(When)14 b(en)o(tering)h(the)f(text)f(of)h (a)f(macro,)g(single)j(or)d(double)i(quotes)f(should)h(b)q(e)f(used)480 1640 y(to)g(indicate)j(a)e(macro)f(de\014nition.)22 b(Unquoted)15 b(text)g(is)g(assumed)g(to)g(b)q(e)g(a)g(function)480 1703 y(name.)21 b(Bac)o(kslash)16 b(will)h(quote)f(an)o(y)f(c)o (haracter)g(in)h(the)g(macro)f(text,)g(including)j(`)p Fq(")p Fr(')480 1765 y(and)12 b(`)p Fq(')p Fr('.)18 b(F)l(or)11 b(example,)i(the)f(follo)o(wing)g(binding)i(will)f(mak)o(e)e(`)p Fq(C-x)k(\\)p Fr(')c(insert)h(a)g(single)480 1827 y(`)p Fq(\\)p Fr(')i(in)o(to)h(the)h(line:)600 1894 y Fq("\\C-x\\\\":)23 b("\\\\")0 2126 y Fk(1.3.2)30 b(Conditional)15 b(Init)g(Constructs)62 2266 y Fr(Readline)j(implemen)o(ts)e(a)f(facilit)o(y)h(similar)g(in)g (spirit)g(to)f(the)g(conditional)i(compilation)f(features)f(of)g(the)g (C)0 2328 y(prepro)q(cessor)f(whic)o(h)h(allo)o(ws)f(k)o(ey)g(bindings) h(and)f(v)m(ariable)i(settings)e(to)f(b)q(e)h(p)q(erformed)h(as)e(the)h (result)g(of)g(tests.)0 2391 y(There)h(are)g(three)h(parser)e(directiv) o(es)j(used.)0 2545 y Fq($if)168 b Fr(The)14 b Fq($if)e Fr(construct)h(allo)o(ws)h(bindings)h(to)e(b)q(e)h(made)f(based)h(on)f (the)h(editing)g(mo)q(de,)g(the)f(terminal)240 2608 y(b)q(eing)k(used,) e(or)g(the)g(application)i(using)f(Readline.)22 b(The)16 b(text)f(of)g(the)g(test)g(extends)g(to)g(the)g(end)240 2670 y(of)g(the)g(line;)i(no)e(c)o(haracters)f(are)h(required)h(to)f (isolate)g(it.)p eop 9 10 bop 0 -58 a Fr(Chapter)15 b(1:)k(Command)c(Line)i(Editing)1227 b(9)240 183 y Fq(mode)144 b Fr(The)19 b Fq(mode=)f Fr(form)g(of)h(the)g Fq($if)f Fr(directiv)o(e)i(is)f(used)h(to)e(test)g(whether)h(Readline)i (is)480 246 y(in)h Fq(emacs)f Fr(or)f Fq(vi)h Fr(mo)q(de.)38 b(This)22 b(ma)o(y)f(b)q(e)h(used)g(in)g(conjunction)g(with)f(the)h(`)p Fq(set)480 308 y(keymap)p Fr(')d(command,)i(for)e(instance,)j(to)d(set) h(bindings)i(in)f(the)f Fq(emacs-standard)480 370 y Fr(and)15 b Fq(emacs-ctlx)f Fr(k)o(eymaps)h(only)h(if)f(Readline)j(is)e(starting) e(out)h(in)h Fq(emacs)f Fr(mo)q(de.)240 457 y Fq(term)144 b Fr(The)21 b Fq(term=)f Fr(form)g(ma)o(y)h(b)q(e)g(used)h(to)e (include)j(terminal-sp)q(eci\014c)h(k)o(ey)c(bindings,)480 519 y(p)q(erhaps)15 b(to)f(bind)j(the)d(k)o(ey)h(sequences)h(output)e (b)o(y)h(the)g(terminal's)g(function)h(k)o(eys.)480 582 y(The)f(w)o(ord)g(on)f(the)i(righ)o(t)e(side)i(of)f(the)g(`)p Fq(=)p Fr(')f(is)h(tested)g(against)g(the)g(full)h(name)f(of)g(the)480 644 y(terminal)k(and)g(the)g(p)q(ortion)g(of)f(the)h(terminal)g(name)g (b)q(efore)g(the)g(\014rst)f(`)p Fq(-)p Fr('.)29 b(This)480 706 y(allo)o(ws)15 b Fq(sun)g Fr(to)g(matc)o(h)f(b)q(oth)i Fq(sun)e Fr(and)i Fq(sun-cmd)p Fr(,)e(for)g(instance.)240 793 y Fq(application)480 856 y Fr(The)k Fl(application)i Fr(construct)e(is)g(used)h(to)e(include)k(application-sp)q(eci\014c)g (settings.)480 918 y(Eac)o(h)d(program)g(using)h(the)f(Readline)j (library)e(sets)f(the)h Fl(application)h(name)p Fr(,)f(and)480 980 y(y)o(ou)c(can)h(test)f(for)g(it.)21 b(This)16 b(could)g(b)q(e)h (used)f(to)e(bind)j(k)o(ey)f(sequences)g(to)f(functions)480 1043 y(useful)h(for)e(a)h(sp)q(eci\014c)i(program.)h(F)l(or)d (instance,)g(the)g(follo)o(wing)h(command)e(adds)h(a)480 1105 y(k)o(ey)g(sequence)h(that)f(quotes)g(the)g(curren)o(t)g(or)g (previous)h(w)o(ord)e(in)i(Bash:)600 1169 y Fq($if)23 b(Bash)600 1221 y(#)h(Quote)f(the)g(current)g(or)h(previous)f(word)600 1273 y("\\C-xq":)g("\\eb\\"\\ef\\"")600 1325 y($endif)0 1412 y($endif)96 b Fr(This)16 b(command,)e(as)h(y)o(ou)g(sa)o(w)g(in)h (the)f(previous)h(example,)f(terminates)h(an)f Fq($if)f Fr(command.)0 1499 y Fq($else)120 b Fr(Commands)15 b(in)h(this)f(branc) o(h)h(of)e(the)i Fq($if)e Fr(directiv)o(e)j(are)e(executed)h(if)g(the)f (test)g(fails.)0 1707 y Fk(1.3.3)30 b(Sample)15 b(Init)g(File)62 1844 y Fr(Here)20 b(is)f(an)g(example)h(of)f(an)g(inputrc)h(\014le.)33 b(This)20 b(illustrates)g(k)o(ey)f(binding,)j(v)m(ariable)e(assignmen)o (t,)g(and)0 1906 y(conditional)d(syn)o(tax.)p eop 10 11 bop 0 -58 a Fr(10)1449 b(GNU)15 b(Readline)i(Library)120 235 y Fq(#)24 b(This)f(file)g(controls)g(the)h(behaviour)e(of)i(line)f (input)g(editing)g(for)120 287 y(#)h(programs)e(that)i(use)f(the)h(Gnu) f(Readline)g(library.)47 b(Existing)22 b(programs)120 339 y(#)i(include)f(FTP,)g(Bash,)g(and)h(Gdb.)120 391 y(#)120 443 y(#)g(You)f(can)h(re-read)f(the)g(inputrc)g(file)g(with)h (C-x)f(C-r.)120 495 y(#)h(Lines)f(beginning)g(with)g('#')g(are)h (comments.)120 546 y(#)120 598 y(#)g(Set)f(various)g(bindings)g(for)g (emacs)g(mode.)120 702 y(set)g(editing-mode)g(emacs)120 806 y($if)g(mode=emacs)120 910 y(Meta-Control-h:)46 b (backward-kill-word)21 b(Text)i(after)h(the)f(function)g(name)g(is)h (ignored)120 1013 y(#)120 1065 y(#)g(Arrow)f(keys)g(in)h(keypad)f(mode) 120 1117 y(#)120 1169 y(#"\\M-OD":)190 b(backward-char)120 1221 y(#"\\M-OC":)g(forward-char)120 1273 y(#"\\M-OA":)g (previous-history)120 1325 y(#"\\M-OB":)g(next-history)120 1377 y(#)120 1429 y(#)24 b(Arrow)f(keys)g(in)h(ANSI)f(mode)120 1480 y(#)120 1532 y("\\M-[D":)190 b(backward-char)120 1584 y("\\M-[C":)g(forward-char)120 1636 y("\\M-[A":)g (previous-history)120 1688 y("\\M-[B":)g(next-history)120 1740 y(#)120 1792 y(#)24 b(Arrow)f(keys)g(in)h(8)g(bit)f(keypad)g(mode) 120 1844 y(#)120 1896 y(#"\\M-\\C-OD":)165 b(backward-char)120 1947 y(#"\\M-\\C-OC":)g(forward-char)120 1999 y(#"\\M-\\C-OA":)g (previous-history)120 2051 y(#"\\M-\\C-OB":)g(next-history)120 2103 y(#)120 2155 y(#)24 b(Arrow)f(keys)g(in)h(8)g(bit)f(ANSI)g(mode) 120 2207 y(#)120 2259 y(#"\\M-\\C-[D":)165 b(backward-char)120 2311 y(#"\\M-\\C-[C":)g(forward-char)120 2363 y(#"\\M-\\C-[A":)g (previous-history)120 2414 y(#"\\M-\\C-[B":)g(next-history)120 2518 y(C-q:)23 b(quoted-insert)120 2622 y($endif)p eop 11 12 bop 0 -58 a Fr(Chapter)15 b(1:)k(Command)c(Line)i(Editing)1205 b(11)120 235 y Fq(#)24 b(An)f(old-style)g(binding.)47 b(This)23 b(happens)g(to)g(be)h(the)f(default.)120 287 y(TAB:)g(complete)120 391 y(#)h(Macros)f(that)g(are)h(convenient)e(for) h(shell)h(interaction)120 443 y($if)f(Bash)120 495 y(#)h(edit)f(the)g (path)120 546 y("\\C-xp":)g("PATH=${PATH}\\e\\C-e\\C-a\\)o(ef\\C-f")120 598 y(#)h(prepare)f(to)g(type)h(a)f(quoted)g(word)h(--)f(insert)g(open) h(and)f(close)g(double)g(quotes)120 650 y(#)h(and)f(move)g(to)h(just)f (after)h(the)f(open)g(quote)120 702 y("\\C-x\\"":)g("\\"\\"\\C-b")120 754 y(#)h(insert)f(a)g(backslash)g(\(testing)g(backslash)g(escapes)f (in)i(sequences)f(and)g(macros\))120 806 y("\\C-x\\\\":)g("\\\\")120 858 y(#)h(Quote)f(the)g(current)g(or)h(previous)f(word)120 910 y("\\C-xq":)g("\\eb\\"\\ef\\"")120 962 y(#)h(Add)f(a)h(binding)f (to)g(refresh)g(the)h(line,)f(which)g(is)h(unbound)120 1013 y("\\C-xr":)f(redraw-current-line)120 1065 y(#)h(Edit)f(variable)g (on)g(current)g(line.)120 1117 y("\\M-\\C-v":)f ("\\C-a\\C-k$\\C-y\\M-\\C-e\\C-a\\C-y=)o(")120 1169 y($endif)120 1273 y(#)i(use)f(a)h(visible)f(bell)g(if)h(one)f(is)h(available)120 1325 y(set)f(bell-style)g(visible)120 1429 y(#)h(don't)f(strip)g (characters)g(to)g(7)h(bits)f(when)h(reading)120 1480 y(set)f(input-meta)g(on)120 1584 y(#)h(allow)f(iso-latin1)f(characters) h(to)g(be)h(inserted)f(rather)g(than)g(converted)g(to)120 1636 y(#)h(prefix-meta)e(sequences)120 1688 y(set)h(convert-meta)g(off) 120 1792 y(#)h(display)f(characters)f(with)h(the)h(eighth)f(bit)g(set)h (directly)f(rather)g(than)120 1844 y(#)h(as)f(meta-prefixed)f (characters)120 1896 y(set)h(output-meta)g(on)120 1999 y(#)h(if)f(there)g(are)h(more)f(than)h(150)f(possible)g(completions)f (for)i(a)f(word,)h(ask)f(the)120 2051 y(#)h(user)f(if)h(he)f(wants)g (to)h(see)f(all)h(of)f(them)120 2103 y(set)g(completion-query-items)e (150)120 2207 y(#)j(For)f(FTP)120 2259 y($if)g(Ftp)120 2311 y("\\C-xg":)g("get)g(\\M-?")120 2363 y("\\C-xt":)g("put)g(\\M-?") 120 2414 y("\\M-.":)g(yank-last-arg)120 2466 y($endif)p eop 12 13 bop 0 -58 a Fr(12)1449 b(GNU)15 b(Readline)i(Library)0 183 y Fp(1.4)33 b(Bindable)16 b(Readline)h(Commands)62 322 y Fr(This)f(section)g(describ)q(es)h(Readline)g(commands)e(that)g (ma)o(y)f(b)q(e)i(b)q(ound)g(to)f(k)o(ey)g(sequences.)0 545 y Fk(1.4.1)30 b(Commands)15 b(F)-5 b(or)15 b(Mo)n(ving)0 698 y Fq(beginning-of-line)e(\(C-a\))240 760 y Fr(Mo)o(v)o(e)h(to)h (the)g(start)f(of)h(the)g(curren)o(t)g(line.)0 851 y Fq(end-of-line)f(\(C-e\))240 913 y Fr(Mo)o(v)o(e)g(to)h(the)g(end)h(of) f(the)g(line.)0 1003 y Fq(forward-char)f(\(C-f\))240 1066 y Fr(Mo)o(v)o(e)g(forw)o(ard)g(a)h(c)o(haracter.)0 1156 y Fq(backward-char)e(\(C-b\))240 1219 y Fr(Mo)o(v)o(e)h(bac)o(k)h (a)g(c)o(haracter.)0 1309 y Fq(forward-word)f(\(M-f\))240 1371 y Fr(Mo)o(v)o(e)g(forw)o(ard)g(to)h(the)g(end)h(of)f(the)g(next)g (w)o(ord.)k(W)l(ords)c(are)g(comp)q(osed)h(of)e(letters)i(and)f (digits.)0 1462 y Fq(backward-word)e(\(M-b\))240 1524 y Fr(Mo)o(v)o(e)j(bac)o(k)g(to)g(the)h(start)f(of)g(this,)h(or)g(the)f (previous,)i(w)o(ord.)24 b(W)l(ords)16 b(are)g(comp)q(osed)i(of)e (letters)240 1587 y(and)f(digits.)0 1677 y Fq(clear-screen)f(\(C-l\)) 240 1739 y Fr(Clear)h(the)g(screen)g(and)g(redra)o(w)f(the)h(curren)o (t)g(line,)h(lea)o(ving)g(the)f(curren)o(t)f(line)j(at)d(the)h(top)f (of)h(the)240 1802 y(screen.)0 1892 y Fq(redraw-current-line)e(\(\))240 1955 y Fr(Refresh)j(the)f(curren)o(t)g(line.)22 b(By)15 b(default,)h(this)f(is)h(un)o(b)q(ound.)0 2177 y Fk(1.4.2)30 b(Commands)15 b(F)-5 b(or)15 b(Manipulating)g(The)g(History)0 2330 y Fq(accept-line)f(\(Newline,)g(Return\))240 2393 y Fr(Accept)g(the)f(line)i(regardless)e(of)g(where)g(the)g(cursor)g (is.)20 b(If)13 b(this)h(line)h(is)e(non-empt)o(y)l(,)h(add)f(it)g(to)g (the)240 2455 y(history)k(list.)25 b(If)17 b(this)g(line)i(w)o(as)c(a)i (history)g(line,)h(then)f(restore)f(the)h(history)f(line)j(to)d(its)h (original)240 2517 y(state.)0 2608 y Fq(previous-history)c(\(C-p\))240 2670 y Fr(Mo)o(v)o(e)h(`up')h(through)g(the)g(history)g(list.)p eop 13 14 bop 0 -58 a Fr(Chapter)15 b(1:)k(Command)c(Line)i(Editing)1205 b(13)0 183 y Fq(next-history)14 b(\(C-n\))240 246 y Fr(Mo)o(v)o(e)g (`do)o(wn')g(through)h(the)h(history)f(list.)0 331 y Fq(beginning-of-history)d(\(M-<\))240 393 y Fr(Mo)o(v)o(e)i(to)h(the)g (\014rst)g(line)i(in)f(the)f(history)l(.)0 478 y Fq(end-of-history)e (\(M->\))240 540 y Fr(Mo)o(v)o(e)h(to)h(the)g(end)h(of)f(the)g(input)h (history)l(,)f(i.e.,)g(the)g(line)i(y)o(ou)e(are)g(en)o(tering.)0 625 y Fq(reverse-search-history)d(\(C-r\))240 688 y Fr(Searc)o(h)18 b(bac)o(kw)o(ard)f(starting)g(at)g(the)g(curren)o(t)h(line)h(and)f(mo)o (ving)f(`up')h(through)f(the)h(history)f(as)240 750 y(necessary)l(.)j (This)c(is)g(an)f(incremen)o(tal)h(searc)o(h.)0 835 y Fq(forward-search-history)c(\(C-s\))240 897 y Fr(Searc)o(h)j(forw)o (ard)e(starting)h(at)g(the)g(curren)o(t)h(line)h(and)f(mo)o(ving)f(`do) o(wn')g(through)g(the)g(the)h(history)240 960 y(as)g(necessary)l(.)20 b(This)c(is)g(an)f(incremen)o(tal)h(searc)o(h.)0 1045 y Fq(non-incremental-reverse-se)o(arch-hi)o(story)c(\(M-p\))240 1107 y Fr(Searc)o(h)18 b(bac)o(kw)o(ard)f(starting)g(at)g(the)g(curren) o(t)h(line)h(and)f(mo)o(ving)f(`up')h(through)f(the)h(history)f(as)240 1169 y(necessary)e(using)h(a)f(non-incremen)o(tal)i(searc)o(h)e(for)g (a)f(string)i(supplied)h(b)o(y)e(the)h(user.)0 1254 y Fq(non-incremental-forward-se)o(arch-hi)o(story)c(\(M-n\))240 1317 y Fr(Searc)o(h)j(forw)o(ard)e(starting)h(at)g(the)g(curren)o(t)h (line)h(and)f(mo)o(ving)f(`do)o(wn')g(through)g(the)g(the)h(history)240 1379 y(as)g(necessary)g(using)h(a)f(non-incremen)o(tal)i(searc)o(h)e (for)f(a)h(string)g(supplied)j(b)o(y)d(the)g(user.)0 1464 y Fq(history-search-forward)d(\(\))240 1526 y Fr(Searc)o(h)h(forw) o(ard)f(through)h(the)g(history)g(for)g(the)g(string)g(of)g(c)o (haracters)f(b)q(et)o(w)o(een)i(the)f(start)f(of)h(the)240 1589 y(curren)o(t)19 b(line)h(and)f(the)g(curren)o(t)f(cursor)h(p)q (osition)g(\(the)g(`p)q(oin)o(t'\).)30 b(This)19 b(is)g(a)f (non-incremen)o(tal)240 1651 y(searc)o(h.)i(By)15 b(default,)g(this)h (command)f(is)h(un)o(b)q(ound.)0 1736 y Fq(history-search-backward)c (\(\))240 1798 y Fr(Searc)o(h)21 b(bac)o(kw)o(ard)f(through)g(the)h (history)f(for)g(the)h(string)f(of)h(c)o(haracters)f(b)q(et)o(w)o(een)g (the)h(start)240 1860 y(of)c(the)h(curren)o(t)g(line)h(and)f(the)f(p)q (oin)o(t.)28 b(This)18 b(is)h(a)e(non-incremen)o(tal)i(searc)o(h.)27 b(By)18 b(default,)h(this)240 1923 y(command)c(is)h(un)o(b)q(ound.)0 2008 y Fq(yank-nth-arg)e(\(M-C-y\))240 2070 y Fr(Insert)19 b(the)g(\014rst)f(argumen)o(t)g(to)g(the)h(previous)g(command)g (\(usually)g(the)g(second)g(w)o(ord)f(on)h(the)240 2132 y(previous)e(line\).)23 b(With)16 b(an)g(argumen)o(t)f Fl(n)p Fr(,)h(insert)h(the)f Fl(n)p Fr(th)g(w)o(ord)f(from)g(the)h (previous)h(command)240 2195 y(\(the)d(w)o(ords)g(in)h(the)g(previous)g (command)f(b)q(egin)i(with)f(w)o(ord)f(0\).)19 b(A)14 b(negativ)o(e)h(argumen)o(t)f(inserts)240 2257 y(the)h Fl(n)p Fr(th)h(w)o(ord)e(from)h(the)g(end)h(of)e(the)i(previous)g (command.)0 2342 y Fq(yank-last-arg)d(\(M-.,)i(M-_\))240 2404 y Fr(Insert)i(last)g(argumen)o(t)g(to)f(the)h(previous)h(command)f (\(the)g(last)g(w)o(ord)f(of)h(the)g(previous)h(history)240 2467 y(en)o(try\).)h(With)d(an)f(argumen)o(t,)f(b)q(eha)o(v)o(e)h (exactly)h(lik)o(e)g Fq(yank-nth-arg)p Fr(.)0 2670 y Fk(1.4.3)30 b(Commands)15 b(F)-5 b(or)15 b(Changing)g(T)-5 b(ext)p eop 14 15 bop 0 -58 a Fr(14)1449 b(GNU)15 b(Readline)i(Library)0 183 y Fq(delete-char)d(\(C-d\))240 246 y Fr(Delete)f(the)f(c)o (haracter)f(under)i(the)f(cursor.)19 b(If)12 b(the)g(cursor)g(is)g(at)g (the)g(b)q(eginning)i(of)e(the)g(line,)i(there)240 308 y(are)k(no)h(c)o(haracters)e(in)j(the)e(line,)j(and)d(the)h(last)f(c)o (haracter)g(t)o(yp)q(ed)h(w)o(as)f(not)g Fq(C-d)p Fr(,)g(then)h(return) 240 370 y Fq(EOF)p Fr(.)0 460 y Fq(backward-delete-char)12 b(\(Rubout\))240 522 y Fr(Delete)g(the)f(c)o(haracter)f(b)q(ehind)j (the)e(cursor.)18 b(A)11 b(n)o(umeric)h(arg)e(sa)o(ys)g(to)g(kill)j (the)e(c)o(haracters)f(instead)240 584 y(of)15 b(deleting)h(them.)0 674 y Fq(quoted-insert)d(\(C-q,)i(C-v\))240 736 y Fr(Add)i(the)f(next)h (c)o(haracter)f(that)f(y)o(ou)h(t)o(yp)q(e)h(to)f(the)g(line)i(v)o (erbatim.)24 b(This)17 b(is)g(ho)o(w)e(to)h(insert)h(k)o(ey)240 799 y(sequences)f(lik)o(e)h Fq(C-Q)p Fr(,)d(for)h(example.)0 888 y Fq(tab-insert)f(\(M-TAB\))240 951 y Fr(Insert)h(a)g(tab)g(c)o (haracter.)0 1040 y Fq(self-insert)f(\(a,)g(b,)h(A,)g(1,)g(!,)g(...\)) 240 1103 y Fr(Insert)g(y)o(ourself.)0 1192 y Fq(transpose-chars)e (\(C-t\))240 1255 y Fr(Drag)h(the)h(c)o(haracter)g(b)q(efore)g(the)h (cursor)f(forw)o(ard)f(o)o(v)o(er)g(the)h(c)o(haracter)g(at)f(the)i (cursor,)e(mo)o(ving)240 1317 y(the)k(cursor)h(forw)o(ard)e(as)h(w)o (ell.)30 b(If)19 b(the)f(insertion)i(p)q(oin)o(t)f(is)g(at)e(the)i(end) g(of)f(the)g(line,)j(then)e(this)240 1379 y(transp)q(oses)c(the)g(last) g(t)o(w)o(o)f(c)o(haracters)h(of)f(the)i(line.)21 b(Negativ)o(e)15 b(argumen)o(tss)f(don't)h(w)o(ork.)0 1469 y Fq(transpose-words)e (\(M-t\))240 1531 y Fr(Drag)f(the)h(w)o(ord)f(b)q(ehind)i(the)f(cursor) g(past)f(the)h(w)o(ord)f(in)h(fron)o(t)f(of)h(the)f(cursor)h(mo)o(ving) f(the)h(cursor)240 1594 y(o)o(v)o(er)h(that)h(w)o(ord)f(as)h(w)o(ell.)0 1683 y Fq(upcase-word)f(\(M-u\))240 1746 y Fr(Upp)q(ercase)h(the)e (curren)o(t)h(\(or)f(follo)o(wing\))h(w)o(ord.)k(With)c(a)f(negativ)o (e)h(argumen)o(t,)f(do)g(the)h(previous)240 1808 y(w)o(ord,)g(but)h(do) h(not)e(mo)o(v)o(e)h(the)g(cursor.)0 1898 y Fq(downcase-word)e(\(M-l\)) 240 1960 y Fr(Lo)o(w)o(ercase)g(the)i(curren)o(t)f(\(or)f(follo)o (wing\))h(w)o(ord.)19 b(With)14 b(a)g(negativ)o(e)g(argumen)o(t,)f(do)h (the)g(previous)240 2022 y(w)o(ord,)g(but)h(do)h(not)e(mo)o(v)o(e)h (the)g(cursor.)0 2112 y Fq(capitalize-word)e(\(M-c\))240 2174 y Fr(Capitalize)j(the)e(curren)o(t)g(\(or)f(follo)o(wing\))i(w)o (ord.)j(With)d(a)f(negativ)o(e)g(argumen)o(t,)f(do)h(the)g(previous)240 2236 y(w)o(ord,)g(but)h(do)h(not)e(mo)o(v)o(e)h(the)g(cursor.)0 2456 y Fk(1.4.4)30 b(Killing)15 b(And)h(Y)-5 b(anking)0 2608 y Fq(kill-line)14 b(\(C-k\))240 2670 y Fr(Kill)j(the)f(text)e (from)h(the)g(curren)o(t)g(cursor)g(p)q(osition)h(to)f(the)g(end)h(of)f (the)g(line.)p eop 15 16 bop 0 -58 a Fr(Chapter)15 b(1:)k(Command)c(Line)i(Editing)1205 b(15)0 183 y Fq(backward-kill-line)13 b(\(C-x)h(Rubout\))240 246 y Fr(Kill)j(bac)o(kw)o(ard)e(to)f(the)i(b)q(eginning)h(of)e(the)g (line.)0 332 y Fq(unix-line-discard)e(\(C-u\))240 394 y Fr(Kill)j(bac)o(kw)o(ard)d(from)f(the)i(cursor)f(to)g(the)h(b)q (eginning)i(of)d(the)g(curren)o(t)h(line.)21 b(Sa)o(v)o(e)13 b(the)h(killed)h(text)240 456 y(on)g(the)g(kill-ring.)0 543 y Fq(kill-whole-line)e(\(\))240 605 y Fr(Kill)18 b(all)f(c)o(haracters)e(on)h(the)g(curren)o(t)f(line,)j(no)e(matter)e (where)i(the)g(cursor)g(is.)22 b(By)16 b(default,)h(this)240 667 y(is)f(un)o(b)q(ound.)0 753 y Fq(kill-word)e(\(M-d\))240 816 y Fr(Kill)j(from)d(the)h(cursor)g(to)f(the)h(end)g(of)g(the)g (curren)o(t)f(w)o(ord,)g(or)g(if)i(b)q(et)o(w)o(een)f(w)o(ords,)f(to)g (the)h(end)g(of)240 878 y(the)g(next)h(w)o(ord.)j(W)l(ord)c(b)q (oundaries)h(are)f(the)g(same)g(as)g Fq(forward-word)p Fr(.)0 964 y Fq(backward-kill-word)e(\(M-DEL\))240 1027 y Fr(Kill)k(the)f(w)o(ord)e(b)q(ehind)j(the)f(cursor.)j(W)l(ord)c(b)q (oundaries)i(are)d(the)i(same)f(as)f Fq(backward-word)p Fr(.)0 1113 y Fq(unix-word-rubout)f(\(C-w\))240 1175 y Fr(Kill)i(the)e(w)o(ord)f(b)q(ehind)j(the)f(cursor,)e(using)i(white)f (space)h(as)e(a)h(w)o(ord)f(b)q(oundary)l(.)20 b(The)13 b(killed)i(text)240 1237 y(is)h(sa)o(v)o(ed)e(on)i(the)f(kill-ring.)0 1324 y Fq(delete-horizontal-space)d(\(\))240 1386 y Fr(Delete)k(all)g (spaces)f(and)h(tabs)e(around)i(p)q(oin)o(t.)k(By)15 b(default,)h(this)f(is)h(un)o(b)q(ound.)0 1472 y Fq(kill-region)e(\(\)) 240 1535 y Fr(Kill)23 b(the)e(text)g(b)q(et)o(w)o(een)g(the)g(p)q(oin)o (t)g(and)g(the)g Fl(mark)j Fr(\(sa)o(v)o(ed)c(cursor)g(p)q(osition.)38 b(This)22 b(text)e(is)240 1597 y(referred)15 b(to)g(as)g(the)g Fl(region)p Fr(.)20 b(By)15 b(default,)h(this)g(command)f(is)g(un)o(b)q (ound.)0 1683 y Fq(copy-region-as-kill)e(\(\))240 1745 y Fr(Cop)o(y)f(the)h(text)f(in)i(the)f(region)g(to)f(the)g(kill)j (bu\013er,)e(so)f(y)o(ou)h(can)f(y)o(ank)h(it)g(righ)o(t)f(a)o(w)o(a)o (y)l(.)18 b(By)13 b(default,)240 1808 y(this)j(command)f(is)g(un)o(b)q (ound.)0 1894 y Fq(copy-backward-word)e(\(\))240 1956 y Fr(Cop)o(y)i(the)g(w)o(ord)f(b)q(efore)i(p)q(oin)o(t)g(to)e(the)h (kill)j(bu\013er.)h(By)d(default,)f(this)h(command)f(is)h(un)o(b)q (ound.)0 2043 y Fq(copy-forward-word)d(\(\))240 2105 y Fr(Cop)o(y)f(the)h(w)o(ord)f(follo)o(wing)h(p)q(oin)o(t)g(to)f(the)h (kill)h(bu\013er.)19 b(By)13 b(default,)g(this)h(command)e(is)h(un)o(b) q(ound.)0 2191 y Fq(yank)i(\(C-y\))240 2253 y Fr(Y)l(ank)g(the)h(top)f (of)f(the)i(kill)h(ring)e(in)o(to)g(the)h(bu\013er)f(at)f(the)i(curren) o(t)f(cursor)g(p)q(osition.)0 2340 y Fq(yank-pop)f(\(M-y\))240 2402 y Fr(Rotate)f(the)h(kill-ring,)i(and)e(y)o(ank)g(the)g(new)g(top.) 19 b(Y)l(ou)14 b(can)g(only)g(do)g(this)g(if)g(the)g(prior)g(command) 240 2464 y(is)i(y)o(ank)f(or)f(y)o(ank-p)q(op.)0 2670 y Fk(1.4.5)30 b(Sp)r(ecifying)15 b(Numeric)h(Argumen)n(ts)p eop 16 17 bop 0 -58 a Fr(16)1449 b(GNU)15 b(Readline)i(Library)0 183 y Fq(digit-argument)c(\(M-0,)i(M-1,)f(...)h(M--\))240 246 y Fr(Add)j(this)g(digit)h(to)e(the)h(argumen)o(t)e(already)i(accum) o(ulating,)h(or)e(start)g(a)g(new)h(argumen)o(t.)26 b Fq(M--)240 308 y Fr(starts)14 b(a)h(negativ)o(e)g(argumen)o(t.)0 403 y Fq(universal-argument)e(\(\))240 465 y Fr(This)f(is)h(another)e (w)o(a)o(y)g(to)g(sp)q(ecify)i(an)f(argumen)o(t.)18 b(If)12 b(this)g(command)g(is)g(follo)o(w)o(ed)g(b)o(y)g(one)g(or)f(more)240 527 y(digits,)19 b(optionally)g(with)f(a)g(leading)h(min)o(us)f(sign,)h (those)e(digits)i(de\014ne)g(the)f(argumen)o(t.)27 b(If)18 b(the)240 590 y(command)12 b(is)h(follo)o(w)o(ed)g(b)o(y)f(digits,)i (executing)f Fq(universal-argument)d Fr(again)j(ends)g(the)f(n)o (umeric)240 652 y(argumen)o(t,)i(but)h(is)g(otherwise)g(ignored.)20 b(As)15 b(a)f(sp)q(ecial)j(case,)d(if)h(this)g(command)g(is)g (immediately)240 714 y(follo)o(w)o(ed)e(b)o(y)f(a)h(c)o(haracter)e (that)h(is)h(neither)h(a)e(digit)i(or)e(min)o(us)h(sign,)g(the)g (argumen)o(t)f(coun)o(t)g(for)g(the)240 776 y(next)i(command)g(is)h(m)o (ultiplied)i(b)o(y)d(four.)19 b(The)c(argumen)o(t)e(coun)o(t)h(is)h (initially)i(one,)d(so)g(executing)240 839 y(this)k(function)g(the)f (\014rst)g(time)g(mak)o(es)g(the)g(argumen)o(t)g(coun)o(t)g(four,)g(a)g (second)h(time)f(mak)o(es)g(the)240 901 y(argumen)o(t)d(coun)o(t)h (sixteen,)h(and)f(so)g(on.)20 b(By)15 b(default,)h(this)f(is)h(not)f(b) q(ound)h(to)f(a)g(k)o(ey)l(.)0 1143 y Fk(1.4.6)30 b(Letting)14 b(Readline)h(T)n(yp)r(e)h(F)-5 b(or)14 b(Y)-5 b(ou)0 1301 y Fq(complete)14 b(\(TAB\))240 1363 y Fr(A)o(ttempt)i(to)h(do)g (completion)i(on)e(the)g(text)g(b)q(efore)h(the)f(cursor.)26 b(This)18 b(is)g(application-sp)q(eci\014c.)240 1425 y(Generally)l(,)h(if)f(y)o(ou)f(are)h(t)o(yping)g(a)f(\014lename)i (argumen)o(t,)e(y)o(ou)g(can)h(do)f(\014lename)i(completion;)g(if)240 1487 y(y)o(ou)f(are)f(t)o(yping)i(a)e(command,)i(y)o(ou)e(can)i(do)f (command)g(completion,)h(if)g(y)o(ou)e(are)h(t)o(yping)g(in)h(a)240 1550 y(sym)o(b)q(ol)e(to)f(GDB,)g(y)o(ou)g(can)h(do)g(sym)o(b)q(ol)g (name)g(completion,)h(if)f(y)o(ou)f(are)h(t)o(yping)g(in)g(a)g(v)m (ariable)240 1612 y(to)e(Bash,)f(y)o(ou)h(can)h(do)f(v)m(ariable)h (name)g(completion,)g(and)f(so)g(on.)0 1707 y Fq(possible-completions)d (\(M-?\))240 1769 y Fr(List)k(the)f(p)q(ossible)i(completions)f(of)f (the)g(text)g(b)q(efore)h(the)f(cursor.)0 1864 y Fq(insert-completions) e(\(M-*\))240 1926 y Fr(Insert)22 b(all)h(completions)g(of)f(the)g (text)f(b)q(efore)h(p)q(oin)o(t)h(that)e(w)o(ould)h(ha)o(v)o(e)g(b)q (een)h(generated)f(b)o(y)240 1989 y Fq(possible-completions)p Fr(.)0 2231 y Fk(1.4.7)30 b(Keyb)r(oard)15 b(Macros)0 2388 y Fq(start-kbd-macro)e(\(C-x)i(\(\))240 2451 y Fr(Begin)h(sa)o (ving)f(the)h(c)o(haracters)e(t)o(yp)q(ed)i(in)o(to)f(the)g(curren)o(t) g(k)o(eyb)q(oard)g(macro.)0 2545 y Fq(end-kbd-macro)e(\(C-x)i(\)\))240 2608 y Fr(Stop)f(sa)o(ving)h(the)g(c)o(haracters)f(t)o(yp)q(ed)h(in)o (to)f(the)h(curren)o(t)f(k)o(eyb)q(oard)h(macro)f(and)h(sa)o(v)o(e)f (the)g(de\014ni-)240 2670 y(tion.)p eop 17 18 bop 0 -58 a Fr(Chapter)15 b(1:)k(Command)c(Line)i(Editing)1205 b(17)0 183 y Fq(call-last-kbd-macro)13 b(\(C-x)h(e\))240 246 y Fr(Re-execute)20 b(the)f(last)f(k)o(eyb)q(oard)g(macro)g (de\014ned,)i(b)o(y)f(making)f(the)h(c)o(haracters)f(in)h(the)g(macro) 240 308 y(app)q(ear)c(as)g(if)h(t)o(yp)q(ed)f(at)g(the)g(k)o(eyb)q (oard.)0 546 y Fk(1.4.8)30 b(Some)15 b(Miscellaneous)h(Commands)0 703 y Fq(re-read-init-file)d(\(C-x)h(C-r\))240 765 y Fr(Read)23 b(in)h(the)e(con)o(ten)o(ts)g(of)h(the)f(inputrc)i(\014le,)h (and)e(incorp)q(orate)g(an)o(y)f(bindings)i(or)f(v)m(ariable)240 827 y(assignmen)o(ts)15 b(found)h(there.)0 921 y Fq(abort)e(\(C-g\))240 984 y Fr(Ab)q(ort)f(the)h(curren)o(t)f(editing)i(command)e(and)h(ring)g (the)f(terminal's)h(b)q(ell)h(\(sub)s(ject)f(to)e(the)i(setting)240 1046 y(of)h Fq(bell-style)p Fr(\).)0 1140 y Fq(do-uppercase-version)d (\(M-a,)j(M-b,)f(M-)p Fl(x)p Fq(,)h Fj(:)8 b(:)g(:)n Fq(\))240 1202 y Fr(If)16 b(the)f(meta\014ed)g(c)o(haracter)g Fl(x)k Fr(is)c(lo)o(w)o(ercase,)g(run)h(the)f(command)g(that)g(is)h(b)q (ound)g(to)f(the)g(corre-)240 1264 y(sp)q(onding)h(upp)q(ercase)h(c)o (haracter.)0 1358 y Fq(prefix-meta)d(\(ESC\))240 1421 y Fr(Mak)o(e)g(the)g(next)h(c)o(haracter)f(that)g(y)o(ou)g(t)o(yp)q(e)h (b)q(e)g(meta\014ed.)20 b(This)15 b(is)g(for)f(p)q(eople)i(without)e(a) h(meta)240 1483 y(k)o(ey)l(.)20 b(T)o(yping)c(`)p Fq(ESC)e(f)p Fr(')h(is)g(equiv)m(alen)o(t)i(to)e(t)o(yping)g(`)p Fq(M-f)p Fr('.)0 1577 y Fq(undo)g(\(C-_,)f(C-x)h(C-u\))240 1639 y Fr(Incremen)o(tal)h(undo,)f(separately)h(remem)o(b)q(ered)g(for)e (eac)o(h)h(line.)0 1733 y Fq(revert-line)f(\(M-r\))240 1796 y Fr(Undo)20 b(all)h(c)o(hanges)f(made)g(to)f(this)i(line.)35 b(This)21 b(is)f(lik)o(e)h(t)o(yping)f(the)g Fq(undo)g Fr(command)g(enough)240 1858 y(times)15 b(to)g(get)g(bac)o(k)g(to)f (the)i(b)q(eginning.)0 1952 y Fq(tilde-expand)e(\(M-~\))240 2014 y Fr(P)o(erform)g(tilde)j(expansion)f(on)f(the)g(curren)o(t)g(w)o (ord.)0 2108 y Fq(set-mark)f(\(C-@\))240 2171 y Fr(Set)i(the)g(mark)f (to)g(the)h(curren)o(t)g(p)q(oin)o(t.)23 b(If)16 b(a)f(n)o(umeric)i (argumen)o(t)e(is)i(supplied,)h(the)e(mark)f(is)h(set)240 2233 y(to)f(that)f(p)q(osition.)0 2327 y Fq(exchange-point-and-mark)e (\(C-x)j(C-x\))240 2389 y Fr(Sw)o(ap)e(the)g(p)q(oin)o(t)h(with)f(the)g (mark.)19 b(The)13 b(curren)o(t)g(cursor)g(p)q(osition)h(is)g(set)f(to) f(the)i(sa)o(v)o(ed)e(p)q(osition,)240 2451 y(and)j(the)h(old)f(cursor) g(p)q(osition)i(is)e(sa)o(v)o(ed)g(as)g(the)g(mark.)0 2545 y Fq(character-search)e(\(C-]\))240 2608 y Fr(A)19 b(c)o(haracter)e(is)j(read)e(and)h(p)q(oin)o(t)g(is)g(mo)o(v)o(ed)f(to) g(the)g(next)h(o)q(ccurrence)h(of)e(that)g(c)o(haracter.)29 b(A)240 2670 y(negativ)o(e)15 b(coun)o(t)g(searc)o(hes)g(for)g (previous)h(o)q(ccurrences.)p eop 18 19 bop 0 -58 a Fr(18)1449 b(GNU)15 b(Readline)i(Library)0 183 y Fq(character-search-backward)12 b(\(M-C-]\))240 246 y Fr(A)i(c)o(haracter)f(is)h(read)g(and)f(p)q(oin)o(t)i(is)f(mo)o (v)o(ed)f(to)g(the)h(previous)g(o)q(ccurrence)h(of)e(that)g(c)o (haracter.)19 b(A)240 308 y(negativ)o(e)c(coun)o(t)g(searc)o(hes)g(for) g(subsequen)o(t)h(o)q(ccurrences.)0 395 y Fq(insert-comment)d(\(M-#\)) 240 457 y Fr(The)19 b(v)m(alue)g(of)f(the)g Fq(comment-begin)f Fr(v)m(ariable)i(is)g(inserted)g(at)f(the)g(b)q(eginning)j(of)d(the)g (curren)o(t)240 519 y(line,)e(and)g(the)f(line)i(is)f(accepted)g(as)e (if)i(a)f(newline)i(had)e(b)q(een)i(t)o(yp)q(ed.)0 607 y Fq(dump-functions)c(\(\))240 669 y Fr(Prin)o(t)18 b(all)h(of)f(the)g (functions)h(and)g(their)g(k)o(ey)f(bindings)i(to)d(the)i(readline)h (output)e(stream.)28 b(If)18 b(a)240 731 y(n)o(umeric)i(argumen)o(t)d (is)i(supplied,)j(the)d(output)f(is)h(formatted)f(in)h(suc)o(h)g(a)f(w) o(a)o(y)g(that)g(it)h(can)f(b)q(e)240 793 y(made)d(part)g(of)g(an)g Fl(inputrc)k Fr(\014le.)i(This)15 b(command)g(is)h(un)o(b)q(ound)h(b)o (y)e(default.)0 881 y Fq(dump-variables)e(\(\))240 943 y Fr(Prin)o(t)j(all)h(of)f(the)h(settable)f(v)m(ariables)i(and)e(their) h(v)m(alues)g(to)f(the)g(readline)i(output)e(stream.)23 b(If)16 b(a)240 1005 y(n)o(umeric)k(argumen)o(t)d(is)i(supplied,)j(the) d(output)f(is)h(formatted)f(in)h(suc)o(h)g(a)f(w)o(a)o(y)g(that)g(it)h (can)f(b)q(e)240 1067 y(made)d(part)g(of)g(an)g Fl(inputrc)k Fr(\014le.)i(This)15 b(command)g(is)h(un)o(b)q(ound)h(b)o(y)e(default.) 0 1155 y Fq(dump-macros)f(\(\))240 1217 y Fr(Prin)o(t)h(all)g(of)g(the) f(readline)j(k)o(ey)d(sequences)i(b)q(ound)g(to)e(macros)g(and)h(the)f (strings)h(they)g(ouput.)20 b(If)240 1279 y(a)c(n)o(umeric)h(argumen)o (t)e(is)i(supplied,)h(the)e(output)g(is)g(formatted)f(in)i(suc)o(h)g(a) e(w)o(a)o(y)g(that)h(it)g(can)g(b)q(e)240 1341 y(made)f(part)g(of)g(an) g Fl(inputrc)k Fr(\014le.)i(This)15 b(command)g(is)h(un)o(b)q(ound)h(b) o(y)e(default.)0 1566 y Fp(1.5)33 b(Readline)16 b(vi)g(Mo)r(de)62 1703 y Fr(While)d(the)f(Readline)i(library)e(do)q(es)g(not)g(ha)o(v)o (e)f(a)g(full)i(set)f(of)f Fq(vi)g Fr(editing)i(functions,)g(it)f(do)q (es)g(con)o(tain)g(enough)0 1765 y(to)f(allo)o(w)i(simple)g(editing)g (of)f(the)g(line.)20 b(The)13 b(Readline)h Fq(vi)d Fr(mo)q(de)i(b)q (eha)o(v)o(es)f(as)g(sp)q(eci\014ed)i(in)e(the)h Fm(POSIX)f Fr(1003.2)0 1827 y(standard.)62 1964 y(In)17 b(order)e(to)g(switc)o(h)h (in)o(teractiv)o(ely)h(b)q(et)o(w)o(een)f Fq(emacs)f Fr(and)h Fq(vi)f Fr(editing)i(mo)q(des,)f(use)g(the)g(command)f(M-C-j)0 2026 y(\(toggle-editing-mo)q(de\).)21 b(The)15 b(Readline)j(default)e (is)f Fq(emacs)g Fr(mo)q(de.)62 2163 y(When)k(y)o(ou)f(en)o(ter)g(a)g (line)i(in)g Fq(vi)e Fr(mo)q(de,)h(y)o(ou)f(are)g(already)g(placed)i (in)f(`insertion')g(mo)q(de,)g(as)f(if)h(y)o(ou)f(had)0 2226 y(t)o(yp)q(ed)e(an)f(`)p Fq(i)p Fr('.)20 b(Pressing)c Fq(ESC)f Fr(switc)o(hes)h(y)o(ou)f(in)o(to)h(`command')f(mo)q(de,)g (where)h(y)o(ou)f(can)h(edit)g(the)g(text)f(of)g(the)0 2288 y(line)j(with)e(the)h(standard)e Fq(vi)h Fr(mo)o(v)o(emen)o(t)f(k) o(eys,)h(mo)o(v)o(e)g(to)f(previous)i(history)f(lines)i(with)f(`)p Fq(k)p Fr(')e(and)h(subsequen)o(t)0 2350 y(lines)h(with)e(`)p Fq(j)p Fr(',)f(and)i(so)e(forth.)p eop 19 20 bop 0 -58 a Fr(Chapter)15 b(2:)k(Programming)c(with)g(GNU)g (Readline)994 b(19)0 183 y Fn(2)41 b(Programming)16 b(with)f(GNU)h (Readline)62 394 y Fr(This)j(c)o(hapter)f(describ)q(es)i(the)e(in)o (terface)g(b)q(et)o(w)o(een)h(the)f(GNU)g(Readline)j(Library)d(and)h (other)f(programs.)0 456 y(If)h(y)o(ou)g(are)f(a)h(programmer,)f(and)i (y)o(ou)e(wish)i(to)e(include)j(the)e(features)g(found)g(in)h(GNU)f (Readline)i(suc)o(h)e(as)0 518 y(completion,)f(line)h(editing,)f(and)f (in)o(teractiv)o(e)h(history)f(manipulation)h(in)g(y)o(our)f(o)o(wn)f (programs,)g(this)h(section)0 581 y(is)f(for)e(y)o(ou.)0 848 y Fp(2.1)33 b(Basic)14 b(Beha)n(vior)62 989 y Fr(Man)o(y)c (programs)g(pro)o(vide)h(a)g(command)f(line)j(in)o(terface,)e(suc)o(h)g (as)g Fq(mail)p Fr(,)f Fq(ftp)p Fr(,)h(and)g Fq(sh)p Fr(.)18 b(F)l(or)10 b(suc)o(h)i(programs,)0 1052 y(the)17 b(default)h(b)q(eha)o(viour)g(of)e(Readline)k(is)e(su\016cien)o(t.)26 b(This)18 b(section)f(describ)q(es)i(ho)o(w)e(to)f(use)i(Readline)h(in) f(the)0 1114 y(simplest)e(w)o(a)o(y)e(p)q(ossible,)j(p)q(erhaps)f(to)e (replace)j(calls)f(in)g(y)o(our)f(co)q(de)g(to)g Fq(gets\(\))f Fr(or)h Fq(fgets)f(\(\))p Fr(.)62 1256 y(The)g(function)g Fq(readline)g(\(\))f Fr(prin)o(ts)h(a)f(prompt)g(and)h(then)g(reads)f (and)g(returns)h(a)f(single)i(line)g(of)e(text)g(from)0 1318 y(the)g(user.)19 b(The)13 b(line)i Fq(readline)d Fr(returns)g(is)i(allo)q(cated)g(with)f Fq(malloc)h(\(\))p Fr(;)f(y)o(ou)g(should)h Fq(free)g(\(\))f Fr(the)g(line)h(when)0 1380 y(y)o(ou)h(are)g(done)g(with)h(it.)k(The)15 b(declaration)h(for)f Fq(readline)f Fr(in)i(ANSI)g(C)f(is)120 1512 y Fq(char)23 b(*readline)g(\(char)g(*)p Fl(prompt)q Fq(\);)0 1653 y Fr(So,)15 b(one)g(migh)o(t)g(sa)o(y)120 1785 y Fq(char)23 b(*line)g(=)h(readline)f(\("Enter)g(a)h(line:)f("\);)0 1927 y Fr(in)17 b(order)g(to)f(read)g(a)g(line)j(of)d(text)g(from)g (the)g(user.)24 b(The)17 b(line)h(returned)f(has)g(the)f(\014nal)i (newline)g(remo)o(v)o(ed,)e(so)0 1989 y(only)g(the)f(text)g(remains.)62 2131 y(If)g Fq(readline)f Fr(encoun)o(ters)h(an)f Fq(EOF)h Fr(while)h(reading)f(the)g(line,)h(and)f(the)g(line)h(is)f(empt)o(y)g (at)f(that)g(p)q(oin)o(t,)h(then)0 2193 y Fq(\(char)f(*\)NULL)h Fr(is)h(returned.)k(Otherwise,)15 b(the)h(line)h(is)e(ended)i(just)d (as)h(if)h(a)f(newline)i(had)e(b)q(een)i(t)o(yp)q(ed.)62 2335 y(If)g(y)o(ou)g(w)o(an)o(t)f(the)h(user)g(to)f(b)q(e)i(able)f(to)g (get)f(at)g(the)h(line)i(later,)e(\(with)g Fq(C-P)f Fr(for)g (example\),)i(y)o(ou)e(m)o(ust)h(call)0 2397 y Fq(add_history)d(\(\))h Fr(to)f(sa)o(v)o(e)h(the)g(line)i(a)o(w)o(a)o(y)c(in)j(a)f Fl(history)k Fr(list)d(of)f(suc)o(h)h(lines.)120 2528 y Fq(add_history)22 b(\(line\);)0 2670 y Fr(F)l(or)15 b(full)h(details)g(on)f(the)h(GNU)f(History)g(Library)l(,)g(see)h(the)f (asso)q(ciated)g(man)o(ual.)p eop 20 21 bop 0 -58 a Fr(20)1449 b(GNU)15 b(Readline)i(Library)62 183 y(It)e(is)g(preferable)g(to)f(a)o(v)o(oid)g(sa)o(ving)h(empt)o(y)f (lines)i(on)f(the)f(history)h(list,)g(since)g(users)g(rarely)g(ha)o(v)o (e)f(a)g(burning)0 246 y(need)i(to)e(reuse)h(a)f(blank)i(line.)21 b(Here)15 b(is)g(a)g(function)g(whic)o(h)h(usefully)g(replaces)g(the)f (standard)f Fq(gets)h(\(\))f Fr(library)0 308 y(function,)i(and)f(has)g (the)g(adv)m(an)o(tage)g(of)g(no)g(static)g(bu\013er)g(to)g(o)o(v)o (er\015o)o(w:)120 445 y Fq(/*)24 b(A)f(static)g(variable)g(for)h (holding)e(the)i(line.)f(*/)120 497 y(static)g(char)g(*line_read)g(=)h (\(char)f(*\)NULL;)120 601 y(/*)h(Read)f(a)h(string,)f(and)g(return)g (a)h(pointer)f(to)g(it.)48 b(Returns)22 b(NULL)i(on)f(EOF.)h(*/)120 653 y(char)f(*)120 705 y(rl_gets)g(\(\))120 757 y({)168 809 y(/*)g(If)h(the)f(buffer)g(has)h(already)f(been)g(allocated,)g (return)g(the)g(memory)239 861 y(to)h(the)f(free)h(pool.)f(*/)168 912 y(if)g(\(line_read\))215 964 y({)263 1016 y(free)g(\(line_read\);) 263 1068 y(line_read)g(=)h(\(char)f(*\)NULL;)215 1120 y(})168 1224 y(/*)g(Get)h(a)f(line)h(from)f(the)h(user.)f(*/)168 1276 y(line_read)f(=)i(readline)f(\(""\);)168 1379 y(/*)g(If)h(the)f (line)h(has)f(any)h(text)f(in)g(it,)h(save)f(it)h(on)f(the)h(history.)f (*/)168 1431 y(if)g(\(line_read)g(&&)g(*line_read\))215 1483 y(add_history)g(\(line_read\);)168 1587 y(return)g(\(line_read\);) 120 1639 y(})62 1787 y Fr(This)15 b(function)g(giv)o(es)f(the)g(user)g (the)g(default)h(b)q(eha)o(viour)g(of)e Fq(TAB)h Fr(completion:)20 b(completion)15 b(on)f(\014le)h(names.)0 1849 y(If)h(y)o(ou)f(do)h(not) f(w)o(an)o(t)g(Readline)j(to)d(complete)i(on)e(\014lenames,)i(y)o(ou)e (can)h(c)o(hange)g(the)g(binding)i(of)d(the)h Fq(TAB)f Fr(k)o(ey)0 1912 y(with)h Fq(rl_bind_key)d(\(\))p Fr(.)120 2049 y Fq(int)23 b(rl_bind_key)g(\(int)g Fl(k)o(ey)p Fq(,)h(int)f(\(*)p Fl(function)p Fq(\)\(\)\);)62 2197 y(rl_bind_key)14 b(\(\))f Fr(tak)o(es)g(t)o(w)o(o)f(argumen)o(ts:)19 b Fl(k)o(ey)e Fr(is)d(the)g(c)o(haracter)f(that)g(y)o(ou)g(w)o(an)o(t)f (to)h(bind,)i(and)f Fl(function)0 2260 y Fr(is)g(the)g(address)g(of)f (the)h(function)g(to)f(call)i(when)f Fl(k)o(ey)j Fr(is)d(pressed.)20 b(Binding)c Fq(TAB)d Fr(to)g Fq(rl_insert)h(\(\))f Fr(mak)o(es)g Fq(TAB)0 2322 y Fr(insert)i(itself.)20 b Fq(rl_bind_key)14 b(\(\))g Fr(returns)g(non-zero)h(if)g Fl(k)o(ey)j Fr(is)d(not)f(a)g(v)m (alid)i(ASCI)q(I)f(c)o(haracter)f(co)q(de)h(\(b)q(et)o(w)o(een)0 2384 y(0)g(and)g(255\).)62 2532 y(Th)o(us,)g(to)g(disable)h(the)g (default)f Fq(TAB)g Fr(b)q(eha)o(vior,)h(the)f(follo)o(wing)h (su\016ces:)120 2670 y Fq(rl_bind_key)22 b(\('\\t',)h(rl_insert\);)p eop 21 22 bop 0 -58 a Fr(Chapter)15 b(2:)k(Programming)c(with)g(GNU)g (Readline)994 b(21)62 183 y(This)12 b(co)q(de)f(should)h(b)q(e)f (executed)h(once)f(at)f(the)h(start)f(of)g(y)o(our)g(program;)h(y)o(ou) g(migh)o(t)f(write)h(a)g(function)g(called)0 246 y Fq (initialize_readline)i(\(\))j Fr(whic)o(h)h(p)q(erforms)f(this)h(and)f (other)g(desired)i(initializations,)h(suc)o(h)e(as)f(installing)0 308 y(custom)f(completers)g(\(see)h(Section)g(2.5)e([Custom)g (Completers],)h(page)g(34\).)0 562 y Fp(2.2)33 b(Custom)14 b(F)-6 b(unctions)62 702 y Fr(Readline)18 b(pro)o(vides)f(man)o(y)e (functions)i(for)e(manipulating)j(the)e(text)f(of)g(the)h(line,)i(but)e (it)g(isn't)g(p)q(ossible)i(to)0 765 y(an)o(ticipate)i(the)g(needs)g (of)f(all)h(programs.)31 b(This)20 b(section)g(describ)q(es)h(the)f(v)m (arious)g(functions)g(and)g(v)m(ariables)0 827 y(de\014ned)c(within)f (the)g(Readline)i(library)e(whic)o(h)g(allo)o(w)g(a)f(user)g(program)f (to)h(add)h(customized)g(functionalit)o(y)h(to)0 889 y(Readline.)0 1127 y Fk(2.2.1)30 b(The)15 b(F)-5 b(unction)14 b(T)n(yp)r(e)62 1267 y Fr(F)l(or)j(readabilt)o(y)l(,)h(w)o(e)f(declare) i(a)e(new)g(t)o(yp)q(e)h(of)f(ob)s(ject,)f(called)j Fl(F)l(unction)p Fr(.)28 b(A)17 b Fq(Function)f Fr(is)i(a)f(C)g(function)0 1329 y(whic)o(h)f(returns)f(an)g Fq(int)p Fr(.)20 b(The)15 b(t)o(yp)q(e)g(declaration)h(for)f Fq(Function)f Fr(is:)0 1470 y Fq(typedef)g(int)h(Function)f(\(\);)62 1610 y Fr(The)i(reason)f(for)g(declaring)i(this)f(new)g(t)o(yp)q(e)f(is)h(to)f (mak)o(e)g(it)h(easier)g(to)f(write)g(co)q(de)h(describing)i(p)q(oin)o (ters)e(to)0 1672 y(C)g(functions.)25 b(Let)17 b(us)f(sa)o(y)g(w)o(e)g (had)h(a)f(v)m(ariable)i(called)g Fl(func)i Fr(whic)o(h)d(w)o(as)f(a)g (p)q(oin)o(ter)h(to)f(a)g(function.)25 b(Instead)0 1735 y(of)15 b(the)g(classic)h(C)f(declaration)62 1875 y Fq(int)g (\(*\)\(\)func;)0 2015 y Fr(w)o(e)g(ma)o(y)f(write)62 2156 y Fq(Function)g(*func;)0 2296 y Fr(Similarly)l(,)j(there)e(are)120 2426 y Fq(typedef)23 b(void)g(VFunction)g(\(\);)120 2478 y(typedef)g(char)g(*CPFunction)g(\(\);)g Fr(and)120 2530 y Fq(typedef)g(char)g(**CPPFunction)f(\(\);)0 2670 y Fr(for)12 b(functions)h(returning)g(no)g(v)m(alue,)g Fq(pointer)i(to)g(char)p Fr(,)d(and)g Fq(pointer)i(to)h(pointer)g(to)f (char)p Fr(,)e(resp)q(ectiv)o(ely)l(.)p eop 22 23 bop 0 -58 a Fr(22)1449 b(GNU)15 b(Readline)i(Library)0 183 y Fk(2.2.2)30 b(W)-5 b(riting)15 b(a)g(New)g(F)-5 b(unction)62 325 y Fr(In)22 b(order)f(to)g(write)g(new)h(functions)g (for)f(Readline,)j(y)o(ou)d(need)h(to)f(kno)o(w)g(the)g(calling)i(con)o (v)o(en)o(tions)f(for)0 387 y(k)o(eyb)q(oard-in)o(v)o(ok)o(ed)17 b(functions,)g(and)f(the)h(names)f(of)g(the)h(v)m(ariables)h(that)d (describ)q(e)j(the)f(curren)o(t)f(state)g(of)g(the)0 449 y(line)h(read)e(so)g(far.)62 591 y(The)h(calling)h(sequence)f(for)f (a)f(command)i Fq(foo)e Fr(lo)q(oks)i(lik)o(e)120 722 y Fq(foo)23 b(\(int)h(count,)f(int)g(key\))0 864 y Fr(where)f Fl(coun)o(t)g Fr(is)g(the)f(n)o(umeric)i(argumen)o(t)d(\(or)h(1)g(if)h (defaulted\))g(and)f Fl(k)o(ey)26 b Fr(is)21 b(the)h(k)o(ey)f(that)g (in)o(v)o(ok)o(ed)h(this)0 926 y(function.)62 1068 y(It)f(is)h (completely)g(up)f(to)f(the)h(function)h(as)f(to)f(what)g(should)i(b)q (e)g(done)f(with)g(the)g(n)o(umeric)h(argumen)o(t.)0 1130 y(Some)c(functions)g(use)g(it)g(as)f(a)h(rep)q(eat)g(coun)o(t,)f (some)h(as)f(a)g(\015ag,)h(and)g(others)f(to)g(c)o(ho)q(ose)h (alternate)f(b)q(eha)o(vior)0 1192 y(\(refreshing)12 b(the)g(curren)o(t)g(line)h(as)f(opp)q(osed)g(to)f(refreshing)i(the)f (screen,)g(for)g(example\).)19 b(Some)12 b(c)o(ho)q(ose)f(to)h(ignore)0 1255 y(it.)24 b(In)17 b(general,)g(if)g(a)g(function)g(uses)g(the)g(n)o (umeric)g(argumen)o(t)f(as)g(a)g(rep)q(eat)h(coun)o(t,)f(it)h(should)h (b)q(e)f(able)g(to)f(do)0 1317 y(something)f(useful)g(with)g(b)q(oth)f (negativ)o(e)h(and)f(p)q(ositiv)o(e)i(argumen)o(ts.)i(A)o(t)c(the)h(v)o (ery)f(least,)g(it)h(should)g(b)q(e)g(a)o(w)o(are)0 1379 y(that)f(it)i(can)f(b)q(e)h(passed)g(a)e(negativ)o(e)i(argumen)o(t.)0 1645 y Fp(2.3)33 b(Readline)16 b(V)-6 b(ariables)62 1787 y Fr(These)16 b(v)m(ariables)g(are)f(a)o(v)m(ailable)i(to)e(function)h (writers.)1736 1963 y(V)l(ariable)-1899 b Fi(char)20 b(*)f Fh(rl)p 211 1963 18 3 v 21 w(line)p 320 1963 V 23 w(bu\013er)120 2025 y Fr(This)f(is)g(the)f(line)i(gathered)e(so)g (far.)25 b(Y)l(ou)18 b(are)f(w)o(elcome)g(to)g(mo)q(dify)h(the)f(con)o (ten)o(ts)g(of)f(the)i(line,)120 2087 y(but)d(see)h(Section)g(2.4.5)d ([Allo)o(wing)k(Undoing],)e(page)g(28.)1736 2263 y(V)l(ariable)-1899 b Fi(int)20 b Fh(rl)p 140 2263 V 21 w(p)r(oin)n(t)120 2325 y Fr(The)15 b(o\013set)g(of)f(the)i(curren)o(t)f(cursor)g(p)q (osition)h(in)g Fq(rl_line_buffer)d Fr(\(the)i Fl(p)q(oin)o(t)q Fr(\).)1736 2501 y(V)l(ariable)-1899 b Fi(int)20 b Fh(rl)p 140 2501 V 21 w(end)120 2563 y Fr(The)d(n)o(um)o(b)q(er)f(of)g(c)o (haracters)g(presen)o(t)g(in)h Fq(rl_line_buffer)p Fr(.)k(When)c Fq(rl_point)e Fr(is)i(at)f(the)g(end)120 2626 y(of)f(the)g(line,)i Fq(rl_point)d Fr(and)h Fq(rl_end)f Fr(are)h(equal.)p eop 23 24 bop 0 -58 a Fr(Chapter)15 b(2:)k(Programming)c(with)g(GNU)g (Readline)994 b(23)1736 183 y(V)l(ariable)-1899 b Fi(int)20 b Fh(rl)p 140 183 18 3 v 21 w(mark)120 246 y Fr(The)h(mark)e(\(sa)o(v)o (ed)h(p)q(osition\))h(in)g(the)f(curren)o(t)h(line.)37 b(If)20 b(set,)h(the)g(mark)e(and)i(p)q(oin)o(t)g(de\014ne)g(a)120 308 y Fl(region)p Fr(.)1736 473 y(V)l(ariable)-1899 b Fi(int)20 b Fh(rl)p 140 473 V 21 w(done)120 536 y Fr(Setting)13 b(this)h(to)f(a)f(non-zero)i(v)m(alue)g(causes)f(Readline)j(to)c (return)h(the)h(curren)o(t)f(line)h(immediately)l(.)1736 701 y(V)l(ariable)-1899 b Fi(int)20 b Fh(rl)p 140 701 V 21 w(p)r(ending)p 361 701 V 20 w(input)120 764 y Fr(Setting)15 b(this)f(to)g(a)g(v)m(alue)i(mak)o(es)d(it)i(the)f(next)h(k)o(eystrok)o (e)e(read.)19 b(This)c(is)g(a)f(w)o(a)o(y)f(to)h(stu\013)g(a)g(single) 120 826 y(c)o(haracter)g(in)o(to)i(the)f(input)h(stream.)1736 991 y(V)l(ariable)-1899 b Fi(char)20 b(*)f Fh(rl)p 211 991 V 21 w(prompt)120 1054 y Fr(The)c(prompt)e(Readline)k(uses.)j(This) 15 b(is)f(set)h(from)e(the)h(argumen)o(t)g(to)g Fq(readline)g(\(\))p Fr(,)f(and)i(should)120 1116 y(not)g(b)q(e)h(assigned)f(to)g(directly)l (.)1736 1282 y(V)l(ariable)-1899 b Fi(char)20 b(*)f Fh(rl)p 211 1282 V 21 w(library)p 400 1282 V 22 w(v)n(ersion)120 1344 y Fr(The)c(v)o(ersion)h(n)o(um)o(b)q(er)f(of)g(this)h(revision)g (of)f(the)g(library)l(.)1736 1509 y(V)l(ariable)-1899 b Fi(char)20 b(*)f Fh(rl)p 211 1509 V 21 w(terminal)p 443 1509 V 21 w(name)120 1572 y Fr(The)c(terminal)h(t)o(yp)q(e,)f(used) h(for)f(initialization.)1736 1737 y(V)l(ariable)-1899 b Fi(char)20 b(*)f Fh(rl)p 211 1737 V 21 w(readline)p 430 1737 V 22 w(name)120 1800 y Fr(This)f(v)m(ariable)h(is)f(set)f(to)g (a)g(unique)i(name)f(b)o(y)f(eac)o(h)h(application)h(using)f(Readline.) 29 b(The)18 b(v)m(alue)120 1862 y(allo)o(ws)f(conditional)h(parsing)f (of)f(the)g(inputrc)i(\014le)f(\(see)g(Section)g(1.3.2)e([Conditional)j (Init)f(Con-)120 1924 y(structs],)d(page)h(8\).)1736 2090 y(V)l(ariable)-1899 b Fi(FILE)20 b(*)f Fh(rl)p 211 2090 V 21 w(instream)120 2152 y Fr(The)c(stdio)h(stream)e(from)h(whic)o (h)h(Readline)h(reads)e(input.)1736 2318 y(V)l(ariable)-1899 b Fi(FILE)20 b(*)f Fh(rl)p 211 2318 V 21 w(outstream)120 2380 y Fr(The)c(stdio)h(stream)e(to)h(whic)o(h)h(Readline)h(p)q (erforms)e(output.)1736 2545 y(V)l(ariable)-1899 b Fi(Function)20 b(*)g Fh(rl)p 316 2545 V 21 w(startup)p 520 2545 V 20 w(ho)r(ok)120 2608 y Fr(If)13 b(non-zero,)h(this)f(is)h(the)f(address)g (of)g(a)f(function)i(to)f(call)h(just)f(b)q(efore)g Fq(readline)f Fr(prin)o(ts)h(the)g(\014rst)120 2670 y(prompt.)p eop 24 25 bop 0 -58 a Fr(24)1449 b(GNU)15 b(Readline)i(Library)1736 183 y(V)l(ariable)-1899 b Fi(Function)20 b(*)g Fh(rl)p 316 183 18 3 v 21 w(ev)n(en)n(t)p 469 183 V 22 w(ho)r(ok)120 246 y Fr(If)13 b(non-zero,)f(this)h(is)g(the)g(address)f(of)g(a)g (function)h(to)f(call)i(p)q(erio)q(dically)h(when)e(readline)h(is)f(w)o (aiting)120 308 y(for)i(terminal)h(input.)1736 471 y(V)l(ariable)-1899 b Fi(Function)20 b(*)g Fh(rl)p 316 471 V 21 w(getc)p 439 471 V 21 w(function)120 533 y Fr(If)c(non-zero,)h Fq(readline)d Fr(will)k(call)f(indirectly)i(through)c(this)i(p)q(oin)o (ter)g(to)e(get)h(a)f(c)o(haracter)h(from)120 595 y(the)k(input)h (stream.)33 b(By)20 b(default,)i(it)e(is)g(set)g(to)g Fq(rl_getc)p Fr(,)f(the)h(default)h Fq(readline)e Fr(c)o(haracter)120 657 y(input)d(function)g(\(see)f(Section)h(2.4.8)e([Utilit)o(y)i(F)l (unctions],)f(page)g(31\).)1736 820 y(V)l(ariable)-1899 b Fi(VFunction)20 b(*)g Fh(rl)p 342 820 V 21 w(redispla)n(y)p 586 820 V 22 w(function)120 883 y Fr(If)f(non-zero,)h Fq(readline)e Fr(will)i(call)g(indirectly)i(through)c(this)i(p)q(oin)o (ter)f(to)f(up)q(date)i(the)f(displa)o(y)120 945 y(with)d(the)g(curren) o(t)f(con)o(ten)o(ts)g(of)h(the)f(editing)i(bu\013er.)22 b(By)15 b(default,)h(it)g(is)h(set)e(to)g Fq(rl_redisplay)p Fr(,)120 1007 y(the)g(default)h Fq(readline)e Fr(redispla)o(y)i (function)g(\(see)g(Section)g(2.4.6)d([Redispla)o(y],)j(page)f(29\).) 1736 1170 y(V)l(ariable)-1899 b Fi(Keymap)20 b Fh(rl)p 218 1170 V 21 w(executing)p 476 1170 V 22 w(k)n(eymap)120 1232 y Fr(This)15 b(v)m(ariable)h(is)f(set)g(to)f(the)g(k)o(eymap)h (\(see)f(Section)i(2.4.2)d([Keymaps],)h(page)g(25\))g(in)h(whic)o(h)h (the)120 1294 y(curren)o(tly)g(executing)g(readline)h(function)f(w)o (as)e(found.)1736 1457 y(V)l(ariable)-1899 b Fi(Keymap)20 b Fh(rl)p 218 1457 V 21 w(binding)p 426 1457 V 22 w(k)n(eymap)120 1520 y Fr(This)15 b(v)m(ariable)h(is)f(set)g(to)f(the)g(k)o(eymap)h (\(see)f(Section)i(2.4.2)d([Keymaps],)h(page)g(25\))g(in)h(whic)o(h)h (the)120 1582 y(last)f(k)o(ey)g(binding)i(o)q(ccurred.)0 1809 y Fp(2.4)33 b(Readline)16 b(Con)n(v)n(enience)g(F)-6 b(unctions)0 2019 y Fk(2.4.1)30 b(Naming)15 b(a)g(F)-5 b(unction)62 2157 y Fr(The)19 b(user)f(can)g(dynamically)i(c)o(hange)e (the)g(bindings)i(of)e(k)o(eys)f(while)j(using)f(Readline.)30 b(This)19 b(is)g(done)f(b)o(y)0 2219 y(represen)o(ting)f(the)g (function)h(with)f(a)g(descriptiv)o(e)h(name.)25 b(The)17 b(user)g(is)g(able)h(to)e(t)o(yp)q(e)h(the)g(descriptiv)o(e)h(name)0 2281 y(when)e(referring)f(to)g(the)g(function.)21 b(Th)o(us,)14 b(in)j(an)e(init)h(\014le,)g(one)f(migh)o(t)g(\014nd)120 2408 y Fq(Meta-Rubout:)46 b(backward-kill-word)62 2545 y Fr(This)21 b(binds)f(the)g(k)o(eystrok)o(e)f Fq(META-RUBOUT)f Fr(to)h(the)h(function)g Fl(descriptiv)o(ely)26 b Fr(named)20 b Fq(backward-kill-)0 2608 y(word)p Fr(.)j(Y)l(ou,)16 b(as)g(the)g(programmer,)f(should)i(bind)h(the)e(functions)i(y)o(ou)d (write)i(to)e(descriptiv)o(e)j(names)e(as)g(w)o(ell.)0 2670 y(Readline)i(pro)o(vides)d(a)g(function)h(for)f(doing)g(that:)p eop 25 26 bop 0 -58 a Fr(Chapter)15 b(2:)k(Programming)c(with)g(GNU)g (Readline)994 b(25)1725 183 y(F)l(unction)-1899 b Fi(int)20 b Fh(rl)p 140 183 18 3 v 21 w(add)p 253 183 V 20 w(defun)i Fg(\()p Fq(char)14 b(*name,)g(Function)g(*function,)g(int)h(key)p Fg(\))120 246 y Fr(Add)20 b Fl(name)i Fr(to)d(the)h(list)g(of)f(named)h (functions.)33 b(Mak)o(e)19 b Fl(function)i Fr(b)q(e)f(the)f(function)i (that)d(gets)120 308 y(called.)j(If)16 b Fl(k)o(ey)j Fr(is)d(not)e(-1,)h(then)h(bind)g(it)g(to)e Fl(function)i Fr(using)g Fq(rl_bind_key)e(\(\))p Fr(.)62 471 y(Using)i(this)g (function)g(alone)g(is)g(su\016cien)o(t)h(for)d(most)h(applications.)22 b(It)16 b(is)g(the)f(recommended)i(w)o(a)o(y)d(to)h(add)0 533 y(a)i(few)h(functions)g(to)f(the)h(default)g(functions)h(that)e (Readline)j(has)d(built)i(in.)28 b(If)18 b(y)o(ou)g(need)g(to)f(do)h (something)0 595 y(other)c(than)h(adding)h(a)e(function)i(to)e (Readline,)j(y)o(ou)d(ma)o(y)g(need)i(to)e(use)h(the)g(underlying)h (functions)g(describ)q(ed)0 658 y(b)q(elo)o(w.)0 869 y Fk(2.4.2)30 b(Selecting)15 b(a)g(Keymap)62 1006 y Fr(Key)k(bindings)i (tak)o(e)c(place)j(on)e(a)g Fl(k)o(eymap)p Fr(.)30 b(The)18 b(k)o(eymap)h(is)g(the)f(asso)q(ciation)h(b)q(et)o(w)o(een)g(the)f(k)o (eys)h(that)0 1069 y(the)g(user)g(t)o(yp)q(es)g(and)g(the)g(functions)g (that)f(get)h(run.)30 b(Y)l(ou)20 b(can)e(mak)o(e)h(y)o(our)f(o)o(wn)g (k)o(eymaps,)h(cop)o(y)g(existing)0 1131 y(k)o(eymaps,)14 b(and)i(tell)g(Readline)i(whic)o(h)e(k)o(eymap)f(to)f(use.)1725 1294 y(F)l(unction)-1899 b Fi(Keymap)20 b Fh(rl)p 218 1294 V 21 w(mak)n(e)p 370 1294 V 20 w(bare)p 500 1294 V 20 w(k)n(eymap)j Fg(\(\))120 1356 y Fr(Returns)14 b(a)f(new,)g(empt)o (y)g(k)o(eymap.)19 b(The)14 b(space)f(for)g(the)h(k)o(eymap)f(is)g (allo)q(cated)i(with)e Fq(malloc)i(\(\))p Fr(;)120 1419 y(y)o(ou)g(should)h Fq(free)f(\(\))g Fr(it)g(when)h(y)o(ou)f(are)f (done.)1725 1582 y(F)l(unction)-1899 b Fi(Keymap)20 b Fh(rl)p 218 1582 V 21 w(cop)n(y)p 353 1582 V 21 w(k)n(eymap)j Fg(\()p Fq(Keymap)14 b(map)p Fg(\))120 1644 y Fr(Return)i(a)f(new)g(k)o (eymap)g(whic)o(h)h(is)g(a)f(cop)o(y)g(of)g Fl(map)p Fr(.)1725 1807 y(F)l(unction)-1899 b Fi(Keymap)20 b Fh(rl)p 218 1807 V 21 w(mak)n(e)p 370 1807 V 20 w(k)n(eymap)j Fg(\(\))120 1869 y Fr(Return)c(a)f(new)h(k)o(eymap)f(with)h(the)f(prin) o(ting)i(c)o(haracters)d(b)q(ound)j(to)e(rl)p 1407 1869 14 2 v 16 w(insert,)i(the)e(lo)o(w)o(ercase)120 1932 y(Meta)13 b(c)o(haracters)g(b)q(ound)h(to)f(run)h(their)g(equiv)m(alen) o(ts,)i(and)d(the)h(Meta)f(digits)h(b)q(ound)h(to)e(pro)q(duce)120 1994 y(n)o(umeric)j(argumen)o(ts.)1725 2157 y(F)l(unction)-1899 b Fi(void)20 b Fh(rl)p 166 2157 18 3 v 21 w(discard)p 366 2157 V 21 w(k)n(eymap)i Fg(\()p Fq(Keymap)14 b(keymap)p Fg(\))120 2219 y Fr(F)l(ree)h(the)h(storage)d(asso)q(ciated)j(with)f Fl(k)o(eymap)p Fr(.)62 2382 y(Readline)20 b(has)d(sev)o(eral)h(in)o (ternal)g(k)o(eymaps.)26 b(These)18 b(functions)g(allo)o(w)g(y)o(ou)f (to)g(c)o(hange)g(whic)o(h)h(k)o(eymap)f(is)0 2445 y(activ)o(e.)1725 2608 y(F)l(unction)-1899 b Fi(Keymap)20 b Fh(rl)p 218 2608 V 21 w(get)p 316 2608 V 21 w(k)n(eymap)i Fg(\(\))120 2670 y Fr(Returns)16 b(the)f(curren)o(tly)h(activ)o(e)f(k)o(eymap.)p eop 26 27 bop 0 -58 a Fr(26)1449 b(GNU)15 b(Readline)i(Library)1725 183 y(F)l(unction)-1899 b Fi(void)20 b Fh(rl)p 166 183 18 3 v 21 w(set)p 258 183 V 21 w(k)n(eymap)i Fg(\()p Fq(Keymap)14 b(keymap)p Fg(\))120 246 y Fr(Mak)o(es)g Fl(k)o(eymap)j Fr(the)e(curren)o(tly)h(activ)o(e)f(k)o(eymap.)1725 420 y(F)l(unction)-1899 b Fi(Keymap)20 b Fh(rl)p 218 420 V 21 w(get)p 316 420 V 21 w(k)n(eymap)p 530 420 V 20 w(b)n(y)p 610 420 V 21 w(name)i Fg(\()p Fq(char)14 b(*name)p Fg(\))120 482 y Fr(Return)19 b(the)g(k)o(eymap)f(matc)o(hing) g Fl(name)p Fr(.)30 b Fl(name)21 b Fr(is)e(one)g(whic)o(h)g(w)o(ould)g (b)q(e)g(supplied)i(in)e(a)f Fq(set)120 544 y(keymap)c Fr(inputrc)j(line)f(\(see)g(Section)g(1.3)e([Readline)j(Init)f(File],)g (page)f(5\).)1725 719 y(F)l(unction)-1899 b Fi(char)20 b(*)f Fh(rl)p 211 719 V 21 w(get)p 309 719 V 21 w(k)n(eymap)p 523 719 V 20 w(name)i Fg(\()p Fq(Keymap)14 b(keymap)p Fg(\))120 781 y Fr(Return)19 b(the)g(name)f(matc)o(hing)h Fl(k)o(eymap)p Fr(.)29 b Fl(name)21 b Fr(is)e(one)g(whic)o(h)g(w)o (ould)g(b)q(e)g(supplied)i(in)e(a)f Fq(set)120 843 y(keymap)c Fr(inputrc)j(line)f(\(see)g(Section)g(1.3)e([Readline)j(Init)f(File],)g (page)f(5\).)0 1088 y Fk(2.4.3)30 b(Binding)15 b(Keys)62 1229 y Fr(Y)l(ou)h(asso)q(ciate)f(k)o(eys)f(with)i(functions)g(through) e(the)i(k)o(eymap.)j(Readline)f(has)c(sev)o(eral)i(in)o(ternal)g(k)o (eymaps:)0 1291 y Fq(emacs_standard_keymap)p Fr(,)i Fq (emacs_meta_keymap)p Fr(,)g Fq(emacs_ctlx_keymap)p Fr(,)h Fq(vi_movement_keymap)p Fr(,)f(and)0 1354 y Fq(vi_insertion_keymap)p Fr(.)h Fq(emacs_standard_keymap)13 b Fr(is)k(the)f(default,)g(and)g (the)g(examples)h(in)f(this)h(man)o(ual)0 1416 y(assume)e(that.)62 1557 y(These)h(functions)g(manage)e(k)o(ey)i(bindings.)1725 1731 y(F)l(unction)-1899 b Fi(int)20 b Fh(rl)p 140 1731 V 21 w(bind)p 272 1731 V 21 w(k)n(ey)k Fg(\()p Fq(int)14 b(key,)h(Function)f(*function)p Fg(\))120 1794 y Fr(Binds)i Fl(k)o(ey)j Fr(to)14 b Fl(function)i Fr(in)g(the)f(curren)o(tly)h (activ)o(e)f(k)o(eymap.)k(Returns)d(non-zero)f(in)h(the)f(case)g(of)120 1856 y(an)g(in)o(v)m(alid)j Fl(k)o(ey)p Fr(.)1725 2030 y(F)l(unction)-1899 b Fi(int)19 b Fh(rl)p 139 2030 V 21 w(bind)p 271 2030 V 21 w(k)n(ey)p 376 2030 V 21 w(in)p 444 2030 V 22 w(map)i Fg(\()p Fq(int)14 b(key,)h(Function)f(*function,) g(Keymap)g(map)p Fg(\))120 2093 y Fr(Bind)i Fl(k)o(ey)j Fr(to)c Fl(function)h Fr(in)g Fl(map)p Fr(.)k(Returns)15 b(non-zero)h(in)g(the)f(case)g(of)g(an)g(in)o(v)m(alid)j Fl(k)o(ey)p Fr(.)1725 2267 y(F)l(unction)-1899 b Fi(int)20 b Fh(rl)p 140 2267 V 21 w(un)n(bind)p 334 2267 V 21 w(k)n(ey)k Fg(\()p Fq(int)14 b(key)p Fg(\))120 2329 y Fr(Bind)h Fl(k)o(ey)i Fr(to)c(the)h(n)o(ull)h(function)f(in)g(the)g(curren)o(tly) g(activ)o(e)g(k)o(eymap.)19 b(Returns)14 b(non-zero)g(in)g(case)120 2391 y(of)h(error.)1725 2566 y(F)l(unction)-1899 b Fi(int)20 b Fh(rl)p 140 2566 V 21 w(un)n(bind)p 334 2566 V 21 w(k)n(ey)p 439 2566 V 21 w(in)p 507 2566 V 22 w(map)h Fg(\()p Fq(int)14 b(key,)h(Keymap)f(map)p Fg(\))120 2628 y Fr(Bind)i Fl(k)o(ey)j Fr(to)c(the)g(n)o(ull)i(function)f(in)g Fl(map)p Fr(.)k(Returns)15 b(non-zero)h(in)g(case)f(of)g(error.)p eop 27 28 bop 0 -58 a Fr(Chapter)15 b(2:)k(Programming)c(with)g(GNU)g (Readline)994 b(27)1725 183 y(F)l(unction)-1899 b Fi(int)20 b Fh(rl)p 140 183 18 3 v 21 w(generic)p 338 183 V 21 w(bind)j Fg(\()p Fq(int)15 b(type,)f(char)h(*keyseq,)f(char)h(*data,)f (Keymap)208 246 y(map)p Fg(\))120 308 y Fr(Bind)j(the)f(k)o(ey)g (sequence)h(represen)o(ted)f(b)o(y)g(the)g(string)g Fl(k)o(eyseq)g Fr(to)g(the)f(arbitrary)h(p)q(oin)o(ter)g Fl(data)p Fr(.)120 370 y Fl(t)o(yp)q(e)j Fr(sa)o(ys)c(what)g(kind)i(of)f(data)f(is)i(p)q (oin)o(ted)g(to)e(b)o(y)h Fl(data)p Fr(;)f(this)i(can)f(b)q(e)g(a)g (function)h(\()p Fq(ISFUNC)p Fr(\),)d(a)120 432 y(macro)i(\()p Fq(ISMACR)p Fr(\),)f(or)i(a)f(k)o(eymap)g(\()p Fq(ISKMAP)p Fr(\).)23 b(This)18 b(mak)o(es)e(new)h(k)o(eymaps)f(as)h(necessary)l(.) 25 b(The)120 495 y(initial)17 b(k)o(eymap)e(in)h(whic)o(h)g(to)f(do)g (bindings)i(is)f Fl(map)p Fr(.)1725 683 y(F)l(unction)-1899 b Fi(int)20 b Fh(rl)p 140 683 V 21 w(parse)p 294 683 V 19 w(and)p 405 683 V 21 w(bind)j Fg(\()p Fq(char)14 b(*line)p Fg(\))120 745 y Fr(P)o(arse)i Fl(line)21 b Fr(as)16 b(if)h(it)g(had)f(b)q(een)i(read)f(from)e(the)i Fq(inputrc)f Fr(\014le)h(and)g(p)q(erform)f(an)o(y)h(k)o(ey)f(bindings) 120 808 y(and)f(v)m(ariable)i(assignmen)o(ts)e(found)h(\(see)f(Section) h(1.3)e([Readline)j(Init)f(File],)g(page)f(5\).)1725 996 y(F)l(unction)-1899 b Fi(int)20 b Fh(rl)p 140 996 V 21 w(read)p 271 996 V 20 w(init)p 375 996 V 22 w(\014le)k Fg(\()p Fq(char)14 b(*filename)p Fg(\))120 1059 y Fr(Read)19 b(k)o(eybindings)i(and)e(v)m(ariable)h(assignmen)o(ts)f(from)f Fl(\014lename)k Fr(\(see)d(Section)g(1.3)f([Readline)120 1121 y(Init)e(File],)g(page)f(5\).)0 1409 y Fk(2.4.4)30 b(Asso)r(ciating)15 b(F)-5 b(unction)15 b(Names)g(and)g(Bindings)62 1554 y Fr(These)22 b(functions)g(allo)o(w)g(y)o(ou)f(to)f(\014nd)i(out) f(what)g(k)o(eys)g(in)o(v)o(ok)o(e)h(named)f(functions)h(and)g(the)f (functions)0 1617 y(in)o(v)o(ok)o(ed)15 b(b)o(y)h(a)e(particular)i(k)o (ey)f(sequence.)1725 1805 y(F)l(unction)-1899 b Fi(Function)20 b(*)g Fh(rl)p 316 1805 V 21 w(named)p 504 1805 V 19 w(function)j Fg(\()p Fq(char)14 b(*name)p Fg(\))120 1868 y Fr(Return)i(the)f (function)h(with)g(name)f Fl(name)p Fr(.)1725 2056 y(F)l(unction)-1899 b Fi(Function)20 b(*)g Fh(rl)p 316 2056 V 21 w(function)p 542 2056 V 21 w(of)p 610 2056 V 19 w(k)n(eyseq)k Fg(\()p Fq(char)15 b(*keyseq,)f(Keymap)g(map,)h(int)208 2118 y(*type)p Fg(\))120 2181 y Fr(Return)i(the)f(function)h(in)o(v)o(ok)o (ed)g(b)o(y)f Fl(k)o(eyseq)i Fr(in)f(k)o(eymap)f Fl(map)p Fr(.)23 b(If)16 b Fl(map)i Fr(is)f(NULL,)g(the)f(curren)o(t)120 2243 y(k)o(eymap)g(is)i(used.)25 b(If)17 b Fl(t)o(yp)q(e)i Fr(is)e(not)g(NULL,)g(the)g(t)o(yp)q(e)g(of)f(the)h(ob)s(ject)f(is)h (returned)g(in)h(it)f(\(one)f(of)120 2305 y Fq(ISFUNC)p Fr(,)e Fq(ISKMAP)p Fr(,)g(or)h Fq(ISMACR)p Fr(\).)1725 2494 y(F)l(unction)-1899 b Fi(char)20 b(**)f Fh(rl)p 237 2494 V 21 w(in)n(v)n(oking)p 466 2494 V 23 w(k)n(eyseqs)k Fg(\()p Fq(Function)14 b(*function)p Fg(\))120 2556 y Fr(Return)19 b(an)e(arra)o(y)g(of)h(strings)f(represen)o(ting)i(the)f (k)o(ey)g(sequences)h(used)f(to)f(in)o(v)o(ok)o(e)h Fl(function)h Fr(in)120 2618 y(the)c(curren)o(t)g(k)o(eymap.)p eop 28 29 bop 0 -58 a Fr(28)1449 b(GNU)15 b(Readline)i(Library)1725 183 y(F)l(unction)-1899 b Fi(char)20 b(**)f Fh(rl)p 237 183 18 3 v 21 w(in)n(v)n(oking)p 466 183 V 23 w(k)n(eyseqs)p 675 183 V 21 w(in)p 743 183 V 22 w(map)i Fg(\()p Fq(Function)14 b(*function,)f(Keymap)208 246 y(map)p Fg(\))120 308 y Fr(Return)19 b(an)e(arra)o(y)g(of)h(strings)f(represen)o(ting)i(the)f (k)o(ey)g(sequences)h(used)f(to)f(in)o(v)o(ok)o(e)h Fl(function)h Fr(in)120 370 y(the)c(k)o(eymap)g Fl(map)p Fr(.)1725 563 y(F)l(unction)-1899 b Fi(void)20 b Fh(rl)p 166 563 V 21 w(function)p 392 563 V 21 w(dump)r(er)g Fg(\()p Fq(int)15 b(readable)p Fg(\))120 625 y Fr(Prin)o(t)i(the)g(readline)h (function)g(names)f(and)g(the)g(k)o(ey)g(sequences)h(curren)o(tly)g(b)q (ound)f(to)g(them)g(to)120 687 y Fq(rl_outstream)p Fr(.)j(If)c Fl(readable)j Fr(is)d(non-zero,)g(the)g(list)g(is)g(formatted)f(in)i (suc)o(h)f(a)f(w)o(a)o(y)g(that)g(it)h(can)120 750 y(b)q(e)g(made)f (part)g(of)f(an)i Fq(inputrc)e Fr(\014le)i(and)f(re-read.)1725 942 y(F)l(unction)-1899 b Fi(void)20 b Fh(rl)p 166 942 V 21 w(list)p 262 942 V 22 w(funmap)p 475 942 V 18 w(names)h Fg(\(\))120 1005 y Fr(Prin)o(t)15 b(the)g(names)h(of)e(all)j(bindable)g (Readline)g(functions)f(to)f Fq(rl_outstream)p Fr(.)0 1305 y Fk(2.4.5)30 b(Allo)n(wing)16 b(Undoing)62 1452 y Fr(Supp)q(orting)f(the)f(undo)g(command)g(is)g(a)g(painless)h(thing,) f(and)g(mak)o(es)f(y)o(our)h(functions)g(m)o(uc)o(h)g(more)f(useful.)0 1515 y(It)i(is)g(certainly)g(easy)f(to)g(try)g(something)h(if)g(y)o(ou) f(kno)o(w)g(y)o(ou)g(can)h(undo)g(it.)20 b(I)15 b(could)g(use)g(an)f (undo)h(function)h(for)0 1577 y(the)f(sto)q(c)o(k)g(mark)o(et.)62 1724 y(If)h(y)o(our)f(function)i(simply)g(inserts)f(text)f(once,)h(or)f (deletes)h(text)f(once,)h(and)g(uses)g Fq(rl_insert_text)d(\(\))i Fr(or)0 1786 y Fq(rl_delete_text)e(\(\))i Fr(to)g(do)g(it,)g(then)g (undoing)i(is)e(already)h(done)f(for)g(y)o(ou)g(automatically)l(.)62 1934 y(If)h(y)o(ou)f(do)g(m)o(ultiple)i(insertions)f(or)f(m)o(ultiple)i (deletions,)f(or)f(an)o(y)g(com)o(bination)h(of)f(these)g(op)q (erations,)g(y)o(ou)0 1996 y(should)j(group)e(them)g(together)g(in)o (to)g(one)h(op)q(eration.)24 b(This)17 b(is)g(done)g(with)g Fq(rl_begin_undo_group)c(\(\))j Fr(and)0 2058 y Fq(rl_end_undo_group)d (\(\))p Fr(.)62 2206 y(The)j(t)o(yp)q(es)f(of)g(ev)o(en)o(ts)g(that)f (can)h(b)q(e)h(undone)g(are:)120 2343 y Fq(enum)23 b(undo_code)g({)h (UNDO_DELETE,)e(UNDO_INSERT,)g(UNDO_BEGIN,)g(UNDO_END)h(};)62 2490 y Fr(Notice)c(that)e Fq(UNDO_DELETE)f Fr(means)i(to)f(insert)i (some)e(text,)h(and)g Fq(UNDO_INSERT)e Fr(means)i(to)f(delete)i(some)0 2552 y(text.)37 b(That)21 b(is,)i(the)e(undo)h(co)q(de)f(tells)i(undo)e (what)g(to)f(undo,)j(not)e(ho)o(w)g(to)f(undo)i(it.)38 b Fq(UNDO_BEGIN)20 b Fr(and)0 2614 y Fq(UNDO_END)14 b Fr(are)h(tags)f(added)i(b)o(y)f Fq(rl_begin_undo_group)e(\(\))i Fr(and)g Fq(rl_end_undo_group)e(\(\))p Fr(.)p eop 29 30 bop 0 -58 a Fr(Chapter)15 b(2:)k(Programming)c(with)g(GNU)g (Readline)994 b(29)1725 183 y(F)l(unction)-1899 b Fi(int)20 b Fh(rl)p 140 183 18 3 v 21 w(b)r(egin)p 297 183 V 20 w(undo)p 442 183 V 20 w(group)h Fg(\(\))120 246 y Fr(Begins)e(sa)o (ving)e(undo)i(information)f(in)g(a)g(group)f(construct.)27 b(The)18 b(undo)h(information)f(usually)120 308 y(comes)j(from)f(calls) h(to)g Fq(rl_insert_text)13 b(\(\))20 b Fr(and)h Fq(rl_delete_text)13 b(\(\))p Fr(,)22 b(but)f(could)g(b)q(e)h(the)120 370 y(result)16 b(of)e(calls)j(to)d Fq(rl_add_undo)g(\(\))p Fr(.)1725 541 y(F)l(unction)-1899 b Fi(int)20 b Fh(rl)p 140 541 V 21 w(end)p 251 541 V 20 w(undo)p 396 541 V 20 w(group)h Fg(\(\))120 603 y Fr(Closes)d(the)f(curren)o(t)g(undo)h (group)f(started)g(with)h Fq(rl_begin_undo_group)12 b(\(\))p Fr(.)26 b(There)18 b(should)120 665 y(b)q(e)e(one)f(call)i(to)d Fq(rl_end_undo_group)f(\(\))i Fr(for)f(eac)o(h)i(call)g(to)f Fq(rl_begin_undo_group)d(\(\))p Fr(.)1725 836 y(F)l(unction)-1899 b Fi(void)20 b Fh(rl)p 166 836 V 21 w(add)p 279 836 V 20 w(undo)i Fg(\()p Fq(enum)14 b(undo_code)g(what,)g(int)h(start,)g (int)f(end,)h(char)208 898 y(*text)p Fg(\))120 960 y Fr(Remem)o(b)q(er)20 b(ho)o(w)e(to)h(undo)g(an)g(ev)o(en)o(t)g (\(according)g(to)g Fl(what)q Fr(\).)30 b(The)19 b(a\013ected)g(text)f (runs)i(from)120 1023 y Fl(start)15 b Fr(to)g Fl(end)p Fr(,)g(and)g(encompasses)h Fl(text)p Fr(.)1725 1193 y(F)l(unction)-1899 b Fi(void)20 b Fh(free)p 221 1193 V 20 w(undo)p 366 1193 V 20 w(list)k Fg(\(\))120 1256 y Fr(F)l(ree)15 b(the)h(existing)g(undo) f(list.)1725 1426 y(F)l(unction)-1899 b Fi(int)20 b Fh(rl)p 140 1426 V 21 w(do)p 222 1426 V 20 w(undo)i Fg(\(\))120 1488 y Fr(Undo)14 b(the)f(\014rst)g(thing)h(on)g(the)f(undo)h(list.)20 b(Returns)14 b Fq(0)f Fr(if)h(there)g(w)o(as)e(nothing)i(to)f(undo,)h (non-zero)120 1551 y(if)i(something)f(w)o(as)f(undone.)62 1721 y(Finally)l(,)j(if)f(y)o(ou)f(neither)i(insert)f(nor)f(delete)i (text,)d(but)i(directly)h(mo)q(dify)f(the)f(existing)i(text)e(\(e.g.,)f (c)o(hange)0 1784 y(its)g(case\),)f(call)i Fq(rl_modifying)e(\(\))g Fr(once,)h(just)f(b)q(efore)h(y)o(ou)f(mo)q(dify)h(the)g(text.)19 b(Y)l(ou)14 b(m)o(ust)f(supply)h(the)g(indices)0 1846 y(of)h(the)g(text)g(range)g(that)f(y)o(ou)h(are)g(going)g(to)g(mo)q (dify)l(.)1725 2017 y(F)l(unction)-1899 b Fi(int)20 b Fh(rl)p 140 2017 V 21 w(mo)r(difying)h Fg(\()p Fq(int)15 b(start,)f(int)h(end)p Fg(\))120 2079 y Fr(T)l(ell)e(Readline)g(to)e (sa)o(v)o(e)f(the)i(text)f(b)q(et)o(w)o(een)g Fl(start)g Fr(and)h Fl(end)h Fr(as)e(a)g(single)i(undo)e(unit.)20 b(It)11 b(is)h(assumed)120 2141 y(that)i(y)o(ou)h(will)i(subsequen)o (tly)g(mo)q(dify)e(that)g(text.)0 2375 y Fk(2.4.6)30 b(Redispla)n(y)1725 2545 y Fr(F)l(unction)-1899 b Fi(void)20 b Fh(rl)p 166 2545 V 21 w(redispla)n(y)k Fg(\(\))120 2608 y Fr(Change)d(what's)g(displa)o(y)o(ed)h(on)g(the)f(screen)h(to)f (re\015ect)h(the)f(curren)o(t)g(con)o(ten)o(ts)g(of)g Fq(rl_line_)120 2670 y(buffer)p Fr(.)p eop 30 31 bop 0 -58 a Fr(30)1449 b(GNU)15 b(Readline)i(Library)1725 183 y(F)l(unction)-1899 b Fi(int)20 b Fh(rl)p 140 183 18 3 v 21 w(forced)p 315 183 V 20 w(up)r(date)p 509 183 V 20 w(displa)n(y)k Fg(\(\))120 246 y Fr(F)l(orce)12 b(the)g(line)h(to)f(b)q(e)g(up)q(dated)h(and)f(redispla)o(y)o(ed,)i (whether)e(or)f(not)h(Readline)i(thinks)e(the)g(screen)120 308 y(displa)o(y)k(is)g(correct.)1725 462 y(F)l(unction)-1899 b Fi(int)20 b Fh(rl)p 140 462 V 21 w(on)p 222 462 V 20 w(new)p 341 462 V 21 w(line)k Fg(\(\))120 524 y Fr(T)l(ell)c(the)f(up)q (date)g(routines)g(that)f(w)o(e)g(ha)o(v)o(e)g(mo)o(v)o(ed)g(on)o(to)g (a)g(new)h(\(empt)o(y\))e(line,)k(usually)f(after)120 587 y(ouputting)c(a)e(newline.)1725 741 y(F)l(unction)-1899 b Fi(int)20 b Fh(rl)p 140 741 V 21 w(reset)p 282 741 V 20 w(line)p 390 741 V 23 w(state)j Fg(\(\))120 803 y Fr(Reset)14 b(the)f(displa)o(y)h(state)f(to)f(a)h(clean)h(state)f (and)g(redispla)o(y)i(the)e(curren)o(t)g(line)i(starting)e(on)g(a)g (new)120 866 y(line.)1725 1020 y(F)l(unction)-1899 b Fi(int)20 b Fh(rl)p 140 1020 V 21 w(message)g Fg(\()p Fq(va_alist)p Fg(\))120 1082 y Fr(The)f(argumen)o(ts)e(are)h(a)g (string)g(as)g(w)o(ould)h(b)q(e)g(supplied)i(to)d Fq(printf)p Fr(.)28 b(The)19 b(resulting)g(string)f(is)120 1145 y(displa)o(y)o(ed)h (in)f(the)g Fl(ec)o(ho)f(area)p Fr(.)27 b(The)18 b(ec)o(ho)f(area)g(is) h(also)g(used)g(to)f(displa)o(y)h(n)o(umeric)h(argumen)o(ts)120 1207 y(and)c(searc)o(h)g(strings.)1725 1361 y(F)l(unction)-1899 b Fi(int)20 b Fh(rl)p 140 1361 V 21 w(clear)p 279 1361 V 21 w(message)h Fg(\(\))120 1424 y Fr(Clear)15 b(the)h(message)e(in)i (the)g(ec)o(ho)f(area.)0 1616 y Fk(2.4.7)30 b(Mo)r(difying)15 b(T)-5 b(ext)1725 1771 y Fr(F)l(unction)-1899 b Fi(int)20 b Fh(rl)p 140 1771 V 21 w(insert)p 303 1771 V 21 w(text)k Fg(\()p Fq(char)14 b(*text)p Fg(\))120 1833 y Fr(Insert)h Fl(text)h Fr(in)o(to)f(the)h(line)g(at)f(the)g(curren)o(t)g(cursor)g(p) q(osition.)1725 1988 y(F)l(unction)-1899 b Fi(int)20 b Fh(rl)p 140 1988 V 21 w(delete)p 308 1988 V 22 w(text)k Fg(\()p Fq(int)14 b(start,)h(int)f(end)p Fg(\))120 2050 y Fr(Delete)i(the)f(text)g(b)q(et)o(w)o(een)g Fl(start)g Fr(and)h Fl(end)h Fr(in)f(the)g(curren)o(t)f(line.)1725 2204 y(F)l(unction)-1899 b Fi(char)20 b(*)f Fh(rl)p 211 2204 V 21 w(cop)n(y)p 346 2204 V 21 w(text)24 b Fg(\()p Fq(int)14 b(start,)h(int)g(end)p Fg(\))120 2266 y Fr(Return)h(a)f(cop)o (y)g(of)g(the)g(text)f(b)q(et)o(w)o(een)i Fl(start)f Fr(and)g Fl(end)j Fr(in)e(the)f(curren)o(t)g(line.)1725 2421 y(F)l(unction)-1899 b Fi(int)20 b Fh(rl)p 140 2421 V 21 w(kill)p 236 2421 V 23 w(text)k Fg(\()p Fq(int)14 b(start,)h(int)g(end)p Fg(\))120 2483 y Fr(Cop)o(y)k(the)g(text)f(b)q (et)o(w)o(een)i Fl(start)e Fr(and)i Fl(end)h Fr(in)f(the)f(curren)o(t)g (line)i(to)d(the)h(kill)i(ring,)f(app)q(ending)120 2545 y(or)e(prep)q(ending)j(to)d(the)h(last)f(kill)j(if)e(the)g(last)f (command)h(w)o(as)e(a)i(kill)h(command.)30 b(The)19 b(text)f(is)120 2608 y(deleted.)j(If)13 b Fl(start)g Fr(is)h(less)f(than)h Fl(end)p Fr(,)f(the)h(text)e(is)i(app)q(ended,)h(otherwise)e(prep)q (ended.)21 b(If)14 b(the)f(last)120 2670 y(command)i(w)o(as)f(not)h(a)g (kill,)i(a)e(new)g(kill)i(ring)f(slot)f(is)g(used.)p eop 31 32 bop 0 -58 a Fr(Chapter)15 b(2:)k(Programming)c(with)g(GNU)g (Readline)994 b(31)0 183 y Fk(2.4.8)30 b(Utilit)n(y)16 b(F)-5 b(unctions)1725 345 y Fr(F)l(unction)-1899 b Fi(int)20 b Fh(rl)p 140 345 18 3 v 21 w(read)p 271 345 V 20 w(k)n(ey)k Fg(\(\))120 407 y Fr(Return)14 b(the)g(next)g(c)o(haracter)f(a)o(v)m (ailable.)21 b(This)15 b(handles)g(input)g(inserted)f(in)o(to)g(the)g (input)h(stream)120 469 y(via)h Fl(p)q(ending)i(input)h Fr(\(see)d(Section)h(2.3)e([Readline)j(V)l(ariables],)f(page)f(22\))f (and)i Fq(rl_stuff_char)120 532 y(\(\))p Fr(,)e(macros,)f(and)h(c)o (haracters)f(read)h(from)g(the)g(k)o(eyb)q(oard.)1725 693 y(F)l(unction)-1899 b Fi(int)20 b Fh(rl)p 140 693 V 21 w(getc)j Fg(\()p Fq(FILE)14 b(*)p Fg(\))120 755 y Fr(Return)i(the)f(next)g(c)o(haracter)g(a)o(v)m(ailable)i(from)d(the) h(k)o(eyb)q(oard.)1725 917 y(F)l(unction)-1899 b Fi(int)20 b Fh(rl)p 140 917 V 21 w(stu\013)p 271 917 V 20 w(c)n(har)j Fg(\()p Fq(int)15 b(c)p Fg(\))120 979 y Fr(Insert)g Fl(c)i Fr(in)o(to)e(the)g(Readline)i(input)e(stream.)k(It)c(will)h(b)q(e)g Fq(")p Fr(read)p Fq(")e Fr(b)q(efore)h(Readline)i(attempts)d(to)120 1041 y(read)h(c)o(haracters)g(from)f(the)h(terminal)h(with)g Fq(rl_read_key)d(\(\))p Fr(.)1725 1203 y(F)l(unction)-1899 b Fi(rl_extend_line_buffer)22 b Fh(\(in)n(t)j Fq(len)p Fg(\))120 1265 y Fr(Ensure)15 b(that)f Fq(rl_line_buffer)e Fr(has)j(enough)g(space)g(to)e(hold)j Fl(len)f Fr(c)o(haracters,)f(p)q (ossibly)i(reallo-)120 1327 y(cating)f(it)h(if)f(necessary)l(.)1725 1489 y(F)l(unction)-1899 b Fi(int)20 b Fh(rl)p 140 1489 V 21 w(initiali)q(z)q(e)26 b Fg(\(\))120 1551 y Fr(Initialize)18 b(or)d(re-initialize)j(Readline's)f(in)o(ternal)f(state.)1725 1713 y(F)l(unction)-1899 b Fi(int)20 b Fh(rl)p 140 1713 V 21 w(reset)p 282 1713 V 20 w(terminal)j Fg(\()p Fq(char)15 b(*terminal_name)p Fg(\))120 1775 y Fr(Reinitializ)q(e)f(Readline's)e (idea)g(of)e(the)h(terminal)h(settings)f(using)g Fl(terminal)p 1404 1775 14 2 v 17 w(name)j Fr(as)c(the)h(terminal)120 1837 y(t)o(yp)q(e)k(\(e.g.,)f Fq(vt100)p Fr(\).)1725 1999 y(F)l(unction)-1899 b Fi(int)20 b Fh(alphab)r(etic)k Fg(\()p Fq(int)14 b(c)p Fg(\))120 2061 y Fr(Return)i(1)f(if)g Fl(c)j Fr(is)e(an)f(alphab)q(etic)i(c)o(haracter.)1725 2222 y(F)l(unction)-1899 b Fi(int)20 b Fh(n)n(umeric)i Fg(\()p Fq(int)15 b(c)p Fg(\))120 2285 y Fr(Return)h(1)f(if)g Fl(c)j Fr(is)e(a)f(n)o(umeric)h(c)o(haracter.)1725 2446 y(F)l(unction)-1899 b Fi(int)20 b Fh(ding)i Fg(\(\))120 2508 y Fr(Ring)16 b(the)f(terminal)h(b)q(ell,)h(ob)q(eying)f(the)g (setting)f(of)g Fq(bell-style)p Fr(.)62 2670 y(The)h(follo)o(wing)g (are)f(implemen)o(ted)h(as)f(macros,)f(de\014ned)j(in)f Fq(chartypes.h)p Fr(.)p eop 32 33 bop 0 -58 a Fr(32)1449 b(GNU)15 b(Readline)i(Library)1725 183 y(F)l(unction)-1899 b Fi(int)20 b Fh(upp)r(ercase)p 351 183 18 3 v 19 w(p)j Fg(\()p Fq(int)14 b(c)p Fg(\))120 246 y Fr(Return)i(1)f(if)g Fl(c)j Fr(is)e(an)f(upp)q(ercase)i(alphab)q (etic)f(c)o(haracter.)1725 409 y(F)l(unction)-1899 b Fi(int)20 b Fh(lo)n(w)n(ercase)p 334 409 V 22 w(p)i Fg(\()p Fq(int)15 b(c)p Fg(\))120 471 y Fr(Return)h(1)f(if)g Fl(c)j Fr(is)e(a)f(lo)o(w)o(ercase)g(alphab)q(etic)i(c)o(haracter.)1725 634 y(F)l(unction)-1899 b Fi(int)20 b Fh(digit)p 214 634 V 22 w(p)i Fg(\()p Fq(int)15 b(c)p Fg(\))120 696 y Fr(Return)h(1)f(if)g Fl(c)j Fr(is)e(a)f(n)o(umeric)h(c)o(haracter.) 1725 859 y(F)l(unction)-1899 b Fi(int)20 b Fh(to)p 152 859 V 20 w(upp)r(er)i Fg(\()p Fq(int)14 b(c)p Fg(\))120 922 y Fr(If)h Fl(c)i Fr(is)f(a)e(lo)o(w)o(ercase)g(alphab)q(etic)j(c)o (haracter,)c(return)i(the)g(corresp)q(onding)g(upp)q(ercase)h(c)o (haracter.)1725 1085 y(F)l(unction)-1899 b Fi(int)20 b Fh(to)p 152 1085 V 20 w(lo)n(w)n(er)k Fg(\()p Fq(int)15 b(c)p Fg(\))120 1147 y Fr(If)e Fl(c)i Fr(is)e(an)f(upp)q(ercase)h (alphab)q(etic)h(c)o(haracter,)e(return)g(the)h(corresp)q(onding)g(lo)o (w)o(ercase)f(c)o(haracter.)1725 1310 y(F)l(unction)-1899 b Fi(int)20 b Fh(digit)p 214 1310 V 22 w(v)m(alue)j Fg(\()p Fq(int)15 b(c)p Fg(\))120 1372 y Fr(If)g Fl(c)k Fr(is)c(a)g(n)o(um)o(b) q(er,)g(return)g(the)h(v)m(alue)g(it)g(represen)o(ts.)0 1584 y Fk(2.4.9)30 b(Alternate)15 b(In)n(terface)62 1721 y Fr(An)k(alternate)e(in)o(terface)h(is)h(a)o(v)m(ailable)h(to)d(plain) i Fq(readline\(\))p Fr(.)27 b(Some)18 b(applications)h(need)g(to)e(in)o (terlea)o(v)o(e)0 1783 y(k)o(eyb)q(oard)d(I/O)h(with)f(\014le,)h (device,)h(or)d(windo)o(w)i(system)e(I/O,)i(t)o(ypically)g(b)o(y)f (using)h(a)f(main)h(lo)q(op)g(to)e Fq(select\(\))0 1846 y Fr(on)k(v)m(arious)h(\014le)g(descriptors.)26 b(T)l(o)17 b(accomo)q(date)g(this)h(need,)g(readline)h(can)e(also)h(b)q(e)f(in)o (v)o(ok)o(ed)h(as)f(a)g(`callbac)o(k')0 1908 y(function)f(from)e(an)i (ev)o(en)o(t)f(lo)q(op.)20 b(There)15 b(are)g(functions)h(a)o(v)m (ailable)h(to)e(mak)o(e)f(this)i(easy)l(.)1725 2071 y(F)l(unction)-1899 b Fi(void)20 b Fh(rl)p 166 2071 V 21 w(callbac)n(k)p 383 2071 V 23 w(handler)p 595 2071 V 21 w(install)25 b Fg(\()p Fq(char)14 b(*prompt,)g(Vfunction)208 2133 y(*lhandler)p Fg(\))120 2196 y Fr(Set)h(up)g(the)f(terminal)i(for)d (readline)k(I/O)e(and)f(displa)o(y)i(the)f(initial)h(expanded)g(v)m (alue)g(of)e Fl(prompt)p Fr(.)120 2258 y(Sa)o(v)o(e)h(the)f(v)m(alue)j (of)d Fl(lhandler)20 b Fr(to)14 b(use)h(as)g(a)g(callbac)o(k)h(when)f (a)f(complete)i(line)h(of)d(input)i(has)f(b)q(een)120 2320 y(en)o(tered.)1725 2483 y(F)l(unction)-1899 b Fi(void)20 b Fh(rl)p 166 2483 V 21 w(callbac)n(k)p 383 2483 V 23 w(read)p 516 2483 V 20 w(c)n(har)j Fg(\(\))120 2545 y Fr(Whenev)o(er)d(an)f(application)i(determines)g(that)e(k)o(eyb)q(oard) g(input)i(is)f(a)o(v)m(ailable,)i(it)d(should)i(call)120 2608 y Fq(rl_callback_read_char\(\))p Fr(,)11 b(whic)o(h)j(will)i(read) e(the)g(next)g(c)o(haracter)f(from)g(the)h(curren)o(t)g(input)120 2670 y(source.)24 b(If)17 b(that)f(c)o(haracter)g(completes)i(the)f (line,)h Fq(rl_callback_read_char)c Fr(will)k(in)o(v)o(ok)o(e)f(the)p eop 33 34 bop 0 -58 a Fr(Chapter)15 b(2:)k(Programming)c(with)g(GNU)g (Readline)994 b(33)120 183 y Fl(lhandler)19 b Fr(function)d(sa)o(v)o (ed)e(b)o(y)g Fq(rl_callback_handler_install)d Fr(to)j(pro)q(cess)h (the)f(line.)21 b Fq(EOF)14 b Fr(is)120 246 y(indicated)j(b)o(y)e (calling)i Fl(lhandler)j Fr(with)c(a)f Fq(NULL)f Fr(line.)1725 413 y(F)l(unction)-1899 b Fi(void)20 b Fh(rl)p 166 413 18 3 v 21 w(callbac)n(k)p 383 413 V 23 w(handler)p 595 413 V 21 w(remo)n(v)n(e)i Fg(\(\))120 476 y Fr(Restore)12 b(the)g(terminal)h(to)e(its)i(initial)h(state)d(and)h(remo)o(v)o(e)g (the)g(line)i(handler.)20 b(This)12 b(ma)o(y)g(b)q(e)g(called)120 538 y(from)i(within)j(a)e(callbac)o(k)h(as)f(w)o(ell)h(as)f(indep)q (enden)o(tly)l(.)0 763 y Fk(2.4.10)29 b(An)16 b(Example)62 902 y Fr(Here)d(is)g(a)f(function)h(whic)o(h)g(c)o(hanges)g(lo)o(w)o (ercase)f(c)o(haracters)f(to)h(their)h(upp)q(ercase)g(equiv)m(alen)o (ts,)h(and)f(upp)q(er-)0 964 y(case)j(c)o(haracters)g(to)g(lo)o(w)o (ercase.)23 b(If)16 b(this)h(function)g(w)o(as)f(b)q(ound)h(to)f(`)p Fq(M-c)p Fr(',)f(then)h(t)o(yping)h(`)p Fq(M-c)p Fr(')e(w)o(ould)i(c)o (hange)0 1026 y(the)g(case)f(of)g(the)h(c)o(haracter)f(under)h(p)q(oin) o(t.)25 b(T)o(yping)17 b(`)p Fq(M-1)d(0)h(M-c)p Fr(')h(w)o(ould)h(c)o (hange)f(the)h(case)f(of)h(the)f(follo)o(wing)0 1089 y(10)f(c)o(haracters,)f(lea)o(ving)i(the)f(cursor)g(on)g(the)g(last)g (c)o(haracter)g(c)o(hanged.)120 1217 y Fq(/*)24 b(Invert)f(the)g(case)g (of)h(the)f(COUNT)h(following)e(characters.)h(*/)120 1269 y(int)120 1321 y(invert_case_line)f(\(count,)h(key\))239 1373 y(int)h(count,)f(key;)120 1425 y({)168 1477 y(register)f(int)i (start,)f(end,)g(i;)168 1580 y(start)g(=)h(rl_point;)168 1684 y(if)f(\(rl_point)g(>=)h(rl_end\))215 1736 y(return)f(\(0\);)168 1840 y(if)g(\(count)g(<)h(0\))215 1892 y({)263 1944 y(direction)f(=)h (-1;)263 1995 y(count)f(=)h(-count;)215 2047 y(})168 2099 y(else)215 2151 y(direction)f(=)h(1;)168 2255 y(/*)f(Find)h(the)f (end)h(of)f(the)h(range)f(to)g(modify.)g(*/)168 2307 y(end)g(=)h(start)f(+)h(\(count)f(*)h(direction\);)168 2411 y(/*)f(Force)g(it)h(to)g(be)f(within)g(range.)g(*/)168 2462 y(if)g(\(end)h(>)f(rl_end\))215 2514 y(end)h(=)g(rl_end;)168 2566 y(else)f(if)h(\(end)f(<)h(0\))215 2618 y(end)g(=)g(0;)p eop 34 35 bop 0 -58 a Fr(34)1449 b(GNU)15 b(Readline)i(Library)168 183 y Fq(if)23 b(\(start)g(==)h(end\))215 235 y(return)f(\(0\);)168 339 y(if)g(\(start)g(>)h(end\))215 391 y({)263 443 y(int)g(temp)f(=)h (start;)263 495 y(start)f(=)h(end;)263 546 y(end)g(=)f(temp;)215 598 y(})168 702 y(/*)g(Tell)h(readline)e(that)i(we)f(are)h(modifying)e (the)i(line,)f(so)h(it)f(will)h(save)239 754 y(the)g(undo)f (information.)f(*/)168 806 y(rl_modifying)g(\(start,)h(end\);)168 910 y(for)g(\(i)h(=)f(start;)h(i)f(!=)h(end;)f(i++\))215 962 y({)263 1013 y(if)h(\(uppercase_p)e(\(rl_line_buffer[i]\)\))311 1065 y(rl_line_buffer[i])f(=)j(to_lower)f(\(rl_line_buffer[i]\);)263 1117 y(else)g(if)h(\(lowercase_p)e(\(rl_line_buffer[i]\)\))311 1169 y(rl_line_buffer[i])f(=)j(to_upper)f(\(rl_line_buffer[i]\);)215 1221 y(})168 1273 y(/*)g(Move)h(point)f(to)g(on)h(top)f(of)h(the)f (last)h(character)e(changed.)h(*/)168 1325 y(rl_point)f(=)i (\(direction)f(==)g(1\))h(?)g(end)f(-)h(1)g(:)f(start;)168 1377 y(return)g(\(0\);)120 1429 y(})0 1670 y Fp(2.5)33 b(Custom)14 b(Completers)62 1809 y Fr(T)o(ypically)l(,)g(a)c(program)g (that)h(reads)g(commands)g(from)f(the)h(user)h(has)e(a)h(w)o(a)o(y)f (of)h(disam)o(biguating)h(commands)0 1871 y(and)k(data.)k(If)c(y)o(our) f(program)g(is)h(one)g(of)f(these,)h(then)g(it)g(can)g(pro)o(vide)g (completion)g(for)g(commands,)f(data,)f(or)0 1933 y(b)q(oth.)28 b(The)18 b(follo)o(wing)h(sections)f(describ)q(e)h(ho)o(w)f(y)o(our)f (program)g(and)h(Readline)i(co)q(op)q(erate)e(to)f(pro)o(vide)i(this)0 1995 y(service.)0 2220 y Fk(2.5.1)30 b(Ho)n(w)15 b(Completing)g(W)-5 b(orks)62 2359 y Fr(In)16 b(order)f(to)g(complete)h(some)f(text,)f(the) h(full)i(list)f(of)f(p)q(ossible)i(completions)f(m)o(ust)f(b)q(e)h(a)o (v)m(ailable.)21 b(That)15 b(is,)0 2421 y(it)k(is)f(not)g(p)q(ossible)i (to)e(accurately)h(expand)g(a)f(partial)h(w)o(ord)e(without)i(kno)o (wing)f(all)h(of)f(the)h(p)q(ossible)h(w)o(ords)0 2483 y(whic)o(h)c(mak)o(e)f(sense)h(in)g(that)e(con)o(text.)20 b(The)15 b(Readline)j(library)e(pro)o(vides)f(the)h(user)f(in)o (terface)h(to)e(completion,)0 2545 y(and)h(t)o(w)o(o)f(of)h(the)h(most) e(common)h(completion)h(functions:)21 b(\014lename)c(and)e(username.)20 b(F)l(or)15 b(completing)h(other)0 2608 y(t)o(yp)q(es)h(of)f(text,)g(y) o(ou)h(m)o(ust)f(write)h(y)o(our)f(o)o(wn)g(completion)i(function.)25 b(This)18 b(section)f(describ)q(es)h(exactly)g(what)0 2670 y(suc)o(h)e(functions)f(m)o(ust)g(do,)g(and)g(pro)o(vides)h(an)f (example.)p eop 35 36 bop 0 -58 a Fr(Chapter)15 b(2:)k(Programming)c(with)g(GNU)g (Readline)994 b(35)62 183 y(There)16 b(are)f(three)g(ma)s(jor)f (functions)i(used)f(to)g(p)q(erform)g(completion:)25 320 y(1.)29 b(The)15 b(user-in)o(terface)g(function)g Fq(rl_complete)e(\(\))p Fr(.)20 b(This)15 b(function)g(is)g(called)h (with)e(the)h(same)f(argumen)o(ts)90 383 y(as)j(other)g(Readline)j (functions)f(in)o(tended)g(for)e(in)o(teractiv)o(e)h(use:)25 b Fl(coun)o(t)18 b Fr(and)g Fl(in)o(v)o(oking)p 1633 383 14 2 v 17 w(k)o(ey)p Fr(.)27 b(It)18 b(isolates)90 445 y(the)j(w)o(ord)g(to)f(b)q(e)i(completed)h(and)e(calls)h Fq(completion_matches)13 b(\(\))21 b Fr(to)f(generate)h(a)g(list)h(of)f (p)q(ossible)90 507 y(completions.)h(It)16 b(then)g(either)h(lists)f (the)g(p)q(ossible)h(completions,)g(inserts)f(the)g(p)q(ossible)h (completions,)f(or)90 569 y(actually)g(p)q(erforms)f(the)g(completion,) h(dep)q(ending)i(on)d(whic)o(h)h(b)q(eha)o(vior)f(is)h(desired.)25 644 y(2.)29 b(The)18 b(in)o(ternal)h(function)g Fq(completion_matches) 13 b(\(\))18 b Fr(uses)g(y)o(our)f Fl(generator)k Fr(function)e(to)e (generate)h(the)90 706 y(list)h(of)e(p)q(ossible)j(matc)o(hes,)e(and)g (then)g(returns)g(the)g(arra)o(y)f(of)h(these)g(matc)o(hes.)28 b(Y)l(ou)18 b(should)h(place)g(the)90 769 y(address)c(of)g(y)o(our)g (generator)f(function)i(in)g Fq(rl_completion_entry_functi)o(on)p Fr(.)25 843 y(3.)29 b(The)16 b(generator)g(function)h(is)f(called)i (rep)q(eatedly)g(from)d Fq(completion_matches)e(\(\))p Fr(,)i(returning)i(a)f(string)90 906 y(eac)o(h)j(time.)31 b(The)19 b(argumen)o(ts)f(to)g(the)h(generator)e(function)j(are)e Fl(text)i Fr(and)f Fl(state)p Fr(.)29 b Fl(text)19 b Fr(is)h(the)f(partial)90 968 y(w)o(ord)13 b(to)g(b)q(e)h(completed.)21 b Fl(state)15 b Fr(is)f(zero)g(the)g(\014rst)f(time)h(the)g(function)g (is)g(called,)i(allo)o(wing)e(the)g(generator)90 1030 y(to)19 b(p)q(erform)f(an)o(y)h(necessary)h(initialization,)i(and)e(a)f (p)q(ositiv)o(e)h(non-zero)f(in)o(teger)h(for)e(eac)o(h)h(subsequen)o (t)90 1092 y(call.)35 b(When)21 b(the)f(generator)f(function)i(returns) f Fq(\(char)14 b(*\)NULL)19 b Fr(this)i(signals)f Fq (completion_matches)90 1155 y(\(\))c Fr(that)g(there)h(are)f(no)h(more) f(p)q(ossibilitie)q(s)j(left.)25 b(Usually)18 b(the)e(generator)g (function)i(computes)e(the)h(list)90 1217 y(of)j(p)q(ossible)i (completions)f(when)g Fl(state)h Fr(is)f(zero,)g(and)f(returns)g(them)h (one)f(at)g(a)g(time)g(on)g(subsequen)o(t)90 1279 y(calls.)g(Eac)o(h)14 b(string)f(the)h(generator)e(function)j(returns)e(as)g(a)g(matc)o(h)g (m)o(ust)g(b)q(e)h(allo)q(cated)h(with)e Fq(malloc\(\))p Fr(;)90 1341 y(Readline)18 b(frees)d(the)g(strings)g(when)h(it)f(has)g (\014nished)i(with)f(them.)1725 1503 y(F)l(unction)-1899 b Fi(int)20 b Fh(rl)p 140 1503 18 3 v 21 w(complete)j Fg(\()p Fq(int)14 b(ignore,)g(int)h(invoking_key)p Fg(\))120 1566 y Fr(Complete)j(the)f(w)o(ord)f(at)h(or)g(b)q(efore)g(p)q(oin)o (t.)27 b(Y)l(ou)17 b(ha)o(v)o(e)g(supplied)i(the)f(function)g(that)e (do)q(es)i(the)120 1628 y(initial)d(simple)f(matc)o(hing)f(selection)h (algorithm)f(\(see)f Fq(completion_matches)h(\(\))p Fr(\).)18 b(The)13 b(default)120 1690 y(is)j(to)e(do)h(\014lename)i(completion.) 1736 1852 y(V)l(ariable)-1899 b Fi(Function)20 b(*)g Fh(rl)p 316 1852 V 21 w(completion)p 611 1852 V 21 w(en)n(try)p 764 1852 V 21 w(function)120 1914 y Fr(This)e(is)g(a)f(p)q(oin)o(ter)h (to)f(the)g(generator)g(function)h(for)f Fq(completion_matches)12 b(\(\))p Fr(.)27 b(If)17 b(the)h(v)m(alue)120 1977 y(of)j Fq(rl_completion_entry_funct)o(ion)d Fr(is)k Fq(\(Function)14 b(*\)NULL)20 b Fr(then)i(the)f(default)h(\014lename)120 2039 y(generator)14 b(function,)i Fq(filename_completion_functi)o(on)c (\(\))p Fr(,)j(is)g(used.)0 2247 y Fk(2.5.2)30 b(Completion)15 b(F)-5 b(unctions)62 2384 y Fr(Here)16 b(is)f(the)h(complete)g(list)g (of)e(callable)k(completion)e(functions)g(presen)o(t)f(in)h(Readline.) 1725 2545 y(F)l(unction)-1899 b Fi(int)20 b Fh(rl)p 140 2545 V 21 w(complete)p 385 2545 V 21 w(in)n(ternal)k Fg(\()p Fq(int)15 b(what_to_do)p Fg(\))120 2608 y Fr(Complete)d(the)g (w)o(ord)f(at)g(or)g(b)q(efore)h(p)q(oin)o(t.)19 b Fl(what)p 979 2608 14 2 v 16 w(to)p 1036 2608 V 16 w(do)14 b Fr(sa)o(ys)d(what)g (to)g(do)g(with)h(the)g(completion.)120 2670 y(A)g(v)m(alue)h(of)f(`)p Fq(?)p Fr(')f(means)h(list)h(the)f(p)q(ossible)i(completions.)20 b(`)p Fq(TAB)p Fr(')11 b(means)h(do)g(standard)f(completion.)p eop 36 37 bop 0 -58 a Fr(36)1449 b(GNU)15 b(Readline)i(Library)120 183 y(`)p Fq(*)p Fr(')c(means)h(insert)h(all)g(of)f(the)g(p)q(ossible)i (completions.)21 b(`)p Fq(!)p Fr(')13 b(means)h(to)g(displa)o(y)h(all)g (of)f(the)g(p)q(ossible)120 246 y(completions,)i(if)g(there)f(is)h (more)e(than)h(one,)g(as)g(w)o(ell)h(as)f(p)q(erforming)h(partial)f (completion.)1725 441 y(F)l(unction)-1899 b Fi(int)20 b Fh(rl)p 140 441 18 3 v 21 w(complete)j Fg(\()p Fq(int)14 b(ignore,)g(int)h(invoking_key)p Fg(\))120 503 y Fr(Complete)23 b(the)g(w)o(ord)e(at)h(or)g(b)q(efore)h(p)q(oin)o(t.)43 b(Y)l(ou)23 b(ha)o(v)o(e)f(supplied)j(the)d(function)i(that)e(do)q(es) 120 565 y(the)16 b(initial)j(simple)f(matc)o(hing)e(selection)i (algorithm)e(\(see)g Fq(completion_matches)d(\(\))j Fr(and)g Fq(rl_)120 627 y(completion_entry_function)p Fr(\))o(.)25 b(The)18 b(default)g(is)g(to)f(do)h(\014lename)h(completion.)29 b(This)18 b(calls)120 690 y Fq(rl_complete_internal)12 b(\(\))j Fr(with)h(an)f(argumen)o(t)f(dep)q(ending)k(on)d Fl(in)o(v)o(oking)p 1496 690 14 2 v 17 w(k)o(ey)p Fr(.)1725 885 y(F)l(unction)-1899 b Fi(int)20 b Fh(rl)p 140 885 18 3 v 21 w(p)r(ossible)p 358 885 V 20 w(completions)j Fg(\()p Fq(int)15 b(count,)f(int)h(invoking_key)p Fg(\)\))120 947 y Fr(List)23 b(the)f(p)q(ossible)j(completions.)42 b(See)23 b(description)h(of)e Fq(rl_complete)14 b(\(\))p Fr(.)41 b(This)23 b(calls)g Fq(rl_)120 1009 y(complete_internal)13 b(\(\))i Fr(with)g(an)g(argumen)o(t)g(of)g(`)p Fq(?)p Fr('.)1725 1204 y(F)l(unction)-1899 b Fi(int)20 b Fh(rl)p 140 1204 V 21 w(insert)p 303 1204 V 21 w(completions)j Fg(\()p Fq(int)14 b(count,)g(int)h(invoking_key)p Fg(\)\))120 1267 y Fr(Insert)20 b(the)f(list)i(of)e(p)q(ossible)i(completions)f(in) o(to)g(the)f(line,)j(deleting)f(the)f(partially-completed)120 1329 y(w)o(ord.)h(See)c(description)g(of)e Fq(rl_complete)f(\(\))p Fr(.)21 b(This)c(calls)g Fq(rl_complete_internal)12 b(\(\))k Fr(with)120 1391 y(an)f(argumen)o(t)g(of)f(`)p Fq(*)p Fr('.)1725 1586 y(F)l(unction)-1899 b Fi(char)20 b(**)f Fh(completion)p 472 1586 V 21 w(matc)n(hes)j Fg(\()p Fq(char)15 b(*text,)f(CPFunction)208 1648 y(*entry_func)p Fg(\))120 1711 y Fr(Returns)22 b(an)g(arra)o(y)e(of)h Fq(\(char)15 b(*\))21 b Fr(whic)o(h)i(is)f(a)f(list)i(of)e(completions) i(for)e Fl(text)p Fr(.)39 b(If)22 b(there)f(are)120 1773 y(no)d(completions,)i(returns)e Fq(\(char)c(**\)NULL)p Fr(.)28 b(The)19 b(\014rst)e(en)o(try)h(in)h(the)g(returned)f(arra)o(y) f(is)i(the)120 1835 y(substitution)c(for)e Fl(text)p Fr(.)19 b(The)c(remaining)g(en)o(tries)f(are)g(the)g(p)q(ossible)i (completions.)k(The)15 b(arra)o(y)d(is)120 1897 y(terminated)j(with)h (a)f Fq(NULL)f Fr(p)q(oin)o(ter.)120 2045 y Fl(en)o(try)p 227 2045 14 2 v 16 w(func)h Fr(is)d(a)g(function)h(of)e(t)o(w)o(o)g (args,)g(and)h(returns)g(a)f Fq(\(char)k(*\))p Fr(.)j(The)12 b(\014rst)f(argumen)o(t)g(is)i Fl(text)p Fr(.)120 2108 y(The)i(second)f(is)h(a)f(state)g(argumen)o(t;)f(it)i(is)g(zero)f(on)g (the)h(\014rst)f(call,)h(and)f(non-zero)h(on)f(subsequen)o(t)120 2170 y(calls.)21 b Fl(en)o(try)p 346 2170 V 16 w(func)c Fr(returns)e(a)f Fq(NULL)g Fr(p)q(oin)o(ter)h(to)f(the)g(caller)i(when) f(there)f(are)g(no)h(more)f(matc)o(hes.)1725 2365 y(F)l(unction)-1899 b Fi(char)20 b(*)f Fh(\014lename)p 380 2365 18 3 v 20 w(completion)p 674 2365 V 21 w(function)k Fg(\()p Fq(char)15 b(*text,)f(int)h(state)p Fg(\))120 2427 y Fr(A)e(generator)f(function)h (for)f(\014lename)i(completion)g(in)f(the)g(general)g(case.)19 b(Note)13 b(that)f(completion)120 2490 y(in)18 b(Bash)f(is)h(a)f (little)h(di\013eren)o(t)f(b)q(ecause)h(of)f(all)h(the)f(pathnames)g (that)g(m)o(ust)f(b)q(e)i(follo)o(w)o(ed)f(when)120 2552 y(lo)q(oking)23 b(up)f(completions)h(for)e(a)g(command.)39 b(The)22 b(Bash)g(source)g(is)g(a)f(useful)i(reference)g(for)120 2614 y(writing)16 b(custom)f(completion)h(functions.)p eop 37 38 bop 0 -58 a Fr(Chapter)15 b(2:)k(Programming)c(with)g(GNU)g (Readline)994 b(37)1725 183 y(F)l(unction)-1899 b Fi(char)20 b(*)f Fh(username)p 412 183 18 3 v 19 w(completion)p 705 183 V 21 w(function)k Fg(\()p Fq(char)14 b(*text,)g(int)h(state)p Fg(\))120 246 y Fr(A)i(completion)h(generator)e(for)g(usernames.)24 b Fl(text)18 b Fr(con)o(tains)e(a)h(partial)g(username)g(preceded)h(b)o (y)120 308 y(a)f(random)g(c)o(haracter)f(\(usually)j(`)p Fq(~)p Fr('\).)24 b(As)18 b(with)f(all)h(completion)h(generators,)d Fl(state)j Fr(is)f(zero)f(on)120 370 y(the)e(\014rst)g(call)h(and)g (non-zero)f(for)g(subsequen)o(t)h(calls.)0 618 y Fk(2.5.3)30 b(Completion)15 b(V)-5 b(ariables)1736 793 y Fr(V)l(ariable)-1899 b Fi(Function)20 b(*)g Fh(rl)p 316 793 V 21 w(completion)p 611 793 V 21 w(en)n(try)p 764 793 V 21 w(function)120 856 y Fr(A)d(p)q(oin)o(ter)h(to)f(the)g(generator)f(function)i(for)f Fq(completion_matches)c(\(\))p Fr(.)25 b Fq(NULL)17 b Fr(means)g(to)g(use)120 918 y Fq(filename_entry_function)12 b(\(\))p Fr(,)j(the)g(default)h(\014lename)g(completer.)1736 1093 y(V)l(ariable)-1899 b Fi(CPPFunction)21 b(*)e Fh(rl)p 394 1093 V 21 w(attempted)p 674 1093 V 20 w(completion)p 968 1093 V 21 w(function)120 1156 y Fr(A)g(p)q(oin)o(ter)h(to)f(an)g (alternativ)o(e)h(function)g(to)f(create)g(matc)o(hes.)32 b(The)20 b(function)g(is)g(called)h(with)120 1218 y Fl(text)p Fr(,)e Fl(start)p Fr(,)g(and)g Fl(end)p Fr(.)32 b Fl(start)19 b Fr(and)g Fl(end)j Fr(are)c(indices)j(in)f Fq(rl_line_buffer)d Fr(sa)o(ying)i(what)g(the)120 1280 y(b)q(oundaries)c(of)e Fl(text)h Fr(are.)19 b(If)13 b(this)h(function)g(exists)g(and)g (returns)f Fq(NULL)p Fr(,)g(or)g(if)h(this)f(v)m(ariable)i(is)f(set)120 1342 y(to)h Fq(NULL)p Fr(,)f(then)i Fq(rl_complete)e(\(\))h Fr(will)i(call)g(the)e(v)m(alue)i(of)e Fq(rl_completion_entry_funct)o (ion)120 1405 y Fr(to)g(generate)f(matc)o(hes,)h(otherwise)g(the)h (arra)o(y)e(of)g(strings)h(returned)h(will)h(b)q(e)f(used.)1736 1580 y(V)l(ariable)-1899 b Fi(CPFunction)21 b(*)e Fh(rl)p 368 1580 V 21 w(\014lename)p 597 1580 V 20 w(quoting)p 806 1580 V 21 w(function)120 1642 y Fr(A)e(p)q(oin)o(ter)h(to)f(a)g (function)h(that)e(will)j(quote)e(a)g(\014lename)h(in)h(an)e (application-)i(sp)q(eci\014c)g(fashion.)120 1705 y(This)f(is)g(called) i(if)e(\014lename)h(completion)f(is)h(b)q(eing)f(attempted)g(and)f(one) h(of)f(the)h(c)o(haracters)f(in)120 1767 y Fq (rl_filename_quote_characte)o(rs)g Fr(app)q(ears)k(in)g(a)f(completed)h (\014lename.)37 b(The)20 b(function)h(is)120 1829 y(called)14 b(with)f Fl(text)p Fr(,)g Fl(matc)o(h)p 579 1829 14 2 v 15 w(t)o(yp)q(e)p Fr(,)g(and)g Fl(quote)p 903 1829 V 16 w(p)q(oin)o(ter)p Fr(.)20 b(The)13 b Fl(text)g Fr(is)g(the)g (\014lename)h(to)e(b)q(e)h(quoted.)120 1891 y(The)21 b Fl(matc)o(h)p 345 1891 V 16 w(t)o(yp)q(e)j Fr(is)e(either)f Fq(SINGLE_MATCH)p Fr(,)g(if)h(there)f(is)h(only)f(one)h(completion)g (matc)o(h,)f(or)120 1954 y Fq(MULT_MATCH)p Fr(.)d(Some)13 b(functions)g(use)h(this)f(to)f(decide)j(whether)e(or)f(not)h(to)f (insert)i(a)e(closing)i(quote)120 2016 y(c)o(haracter.)36 b(The)21 b Fl(quote)p 565 2016 V 16 w(p)q(oin)o(ter)k Fr(is)c(a)g(p)q(oin)o(ter)g(to)f(an)o(y)h(op)q(ening)h(quote)f(c)o (haracter)f(the)h(user)120 2078 y(t)o(yp)q(ed.)f(Some)15 b(functions)h(c)o(ho)q(ose)g(to)e(reset)h(this)h(c)o(haracter.)1736 2254 y(V)l(ariable)-1899 b Fi(CPFunction)21 b(*)e Fh(rl)p 368 2254 18 3 v 21 w(\014lename)p 597 2254 V 20 w(dequoting)p 864 2254 V 21 w(function)120 2316 y Fr(A)f(p)q(oin)o(ter)g(to)f(a)g (function)h(that)f(will)i(remo)o(v)o(e)e(application-sp)q(eci\014c)k (quoting)d(c)o(haracters)f(from)120 2378 y(a)h(\014lename)i(b)q(efore)f (completion)h(is)f(attempted,)g(so)f(those)h(c)o(haracters)f(do)g(not)h (in)o(terfere)g(with)120 2440 y(matc)o(hing)13 b(the)g(text)f(against)g (names)h(in)g(the)g(\014lesystem.)20 b(It)13 b(is)g(called)h(with)f Fl(text)p Fr(,)g(the)f(text)h(of)f(the)120 2503 y(w)o(ord)i(to)g(b)q(e) h(dequoted,)g(and)g Fl(quote)p 757 2503 14 2 v 16 w(c)o(har)p Fr(,)f(whic)o(h)i(is)f(the)g(quoting)g(c)o(haracter)f(that)f(delimits)k (the)120 2565 y(\014lename)d(\(usually)g(`)p Fq(')p Fr(')e(or)g(`)p Fq(")p Fr('\).)18 b(If)13 b Fl(quote)p 838 2565 V 16 w(c)o(har)j Fr(is)e(zero,)e(the)h(\014lename)h(w)o(as)e(not)h(in)h(an)f (em)o(b)q(edded)120 2627 y(string.)p eop 38 39 bop 0 -58 a Fr(38)1449 b(GNU)15 b(Readline)i(Library)1736 183 y(V)l(ariable)-1899 b Fi(Function)20 b(*)g Fh(rl)p 316 183 18 3 v 21 w(c)n(har)p 444 183 V 20 w(is)p 502 183 V 22 w(quoted)p 695 183 V 20 w(p)120 246 y Fr(A)d(p)q(oin)o(ter)g (to)f(a)g(function)i(to)e(call)h(that)f(determines)i(whether)f(or)f (not)g(a)h(sp)q(eci\014c)h(c)o(haracter)e(in)120 308 y(the)c(line)i(bu\013er)e(is)h(quoted,)f(according)h(to)e(whatev)o(er)h (quoting)g(mec)o(hanism)h(the)f(program)f(calling)120 370 y(readline)j(uses.)20 b(The)13 b(function)g(is)h(called)g(with)f(t) o(w)o(o)f(argumen)o(ts:)17 b Fl(text)p Fr(,)c(the)g(text)f(of)g(the)h (line,)i(and)120 432 y Fl(index)p Fr(,)j(the)e(index)i(of)e(the)g(c)o (haracter)g(in)h(the)g(line.)25 b(It)16 b(is)h(used)g(to)f(decide)i (whether)f(a)f(c)o(haracter)120 495 y(found)j(in)g Fq (rl_completer_word_break_)o(charact)o(ers)c Fr(should)20 b(b)q(e)e(used)h(to)f(break)g(w)o(ords)g(for)120 557 y(the)d(completer.)1736 745 y(V)l(ariable)-1899 b Fi(int)20 b Fh(rl)p 140 745 V 21 w(completion)p 435 745 V 21 w(query)p 598 745 V 21 w(items)120 807 y Fr(Up)h(to)e(this)i(man)o(y)f(items)h (will)h(b)q(e)f(displa)o(y)o(ed)h(in)f(resp)q(onse)g(to)f(a)g(p)q (ossible-completions)j(call.)120 869 y(After)16 b(that,)f(w)o(e)g(ask)h (the)g(user)g(if)g(she)g(is)h(sure)f(she)g(w)o(an)o(ts)f(to)g(see)h (them)g(all.)23 b(The)16 b(default)h(v)m(alue)120 932 y(is)f(100.)1736 1120 y(V)l(ariable)-1899 b Fi(char)20 b(*)f Fh(rl)p 211 1120 V 21 w(basic)p 355 1120 V 21 w(w)n(ord)p 500 1120 V 21 w(break)p 661 1120 V 20 w(c)n(haracters)120 1182 y Fr(The)12 b(basic)g(list)h(of)e(c)o(haracters)g(that)g(signal)h (a)g(break)f(b)q(et)o(w)o(een)h(w)o(ords)f(for)g(the)h(completer)g (routine.)120 1244 y(The)17 b(default)h(v)m(alue)g(of)e(this)i(v)m (ariable)g(is)g(the)f(c)o(haracters)f(whic)o(h)h(break)g(w)o(ords)g (for)f(completion)120 1306 y(in)g(Bash,)f(i.e.,)g Fq(")g (\\t\\n\\"\\\\'`@$><=;|&{\(")p Fr(.)1736 1494 y(V)l(ariable)-1899 b Fi(char)20 b(*)f Fh(rl)p 211 1494 V 21 w(basic)p 355 1494 V 21 w(quote)p 515 1494 V 21 w(c)n(haracters)120 1557 y Fr(List)d(of)f(quote)g(c)o(haracters)f(whic)o(h)i(can)f(cause)h (a)f(w)o(ord)f(break.)1736 1745 y(V)l(ariable)-1899 b Fi(char)20 b(*)f Fh(rl)p 211 1745 V 21 w(completer)p 480 1745 V 21 w(w)n(ord)p 625 1745 V 20 w(break)p 785 1745 V 20 w(c)n(haracters)120 1807 y Fr(The)f(list)h(of)e(c)o (haracters)g(that)g(signal)i(a)f(break)f(b)q(et)o(w)o(een)h(w)o(ords)g (for)f Fq(rl_complete_internal)120 1869 y(\(\))p Fr(.)j(The)15 b(default)h(list)g(is)f(the)h(v)m(alue)g(of)f Fq (rl_basic_word_break_charac)o(ters)p Fr(.)1736 2057 y(V)l(ariable)-1899 b Fi(char)20 b(*)f Fh(rl)p 211 2057 V 21 w(completer)p 480 2057 V 21 w(quote)p 640 2057 V 21 w(c)n(haracters)120 2120 y Fr(List)j(of)e(c)o(haracters)g(whic)o(h)i(can)f(b)q(e)h(used)f (to)f(quote)h(a)g(substring)g(of)f(the)h(line.)39 b(Completion)120 2182 y(o)q(ccurs)17 b(on)f(the)h(en)o(tire)g(substring,)g(and)f(within) i(the)e(substring)h Fq(rl_completer_word_break_)120 2244 y(characters)i Fr(are)g(treated)h(as)f(an)o(y)h(other)g(c)o(haracter,)g (unless)h(they)f(also)g(app)q(ear)g(within)i(this)120 2306 y(list.)1736 2494 y(V)l(ariable)-1899 b Fi(char)20 b(*)f Fh(rl)p 211 2494 V 21 w(\014lename)p 440 2494 V 20 w(quote)p 599 2494 V 21 w(c)n(haracters)120 2557 y Fr(A)g(list)h(of)e(c)o(haracters)g(that)g(cause)h(a)g(\014lename)h(to)e (b)q(e)i(quoted)e(b)o(y)h(the)g(completer)h(when)f(they)120 2619 y(app)q(ear)c(in)h(a)f(completed)h(\014lename.)21 b(The)16 b(default)g(is)f(empt)o(y)l(.)p eop 39 40 bop 0 -58 a Fr(Chapter)15 b(2:)k(Programming)c(with)g(GNU)g (Readline)994 b(39)1736 183 y(V)l(ariable)-1899 b Fi(char)20 b(*)f Fh(rl)p 211 183 18 3 v 21 w(sp)r(ecial)p 398 183 V 22 w(pre\014xes)120 246 y Fr(The)d(list)h(of)e(c)o(haracters)g(that)g (are)h(w)o(ord)f(break)h(c)o(haracters,)f(but)h(should)h(b)q(e)f(left)g (in)h Fl(text)f Fr(when)120 308 y(it)f(is)g(passed)g(to)f(the)g (completion)i(function.)k(Programs)14 b(can)g(use)h(this)g(to)f(help)i (determine)g(what)120 370 y(kind)h(of)f(completing)i(to)e(do.)23 b(F)l(or)16 b(instance,)h(Bash)f(sets)g(this)h(v)m(ariable)h(to)e Fq(")p Fr($)p Fq(@")f Fr(so)h(that)g(it)h(can)120 432 y(complete)f(shell)h(v)m(ariables)f(and)g(hostnames.)1736 587 y(V)l(ariable)-1899 b Fi(int)20 b Fh(rl)p 140 587 V 21 w(completion)p 435 587 V 21 w(app)r(end)p 640 587 V 19 w(c)n(haracter)120 650 y Fr(When)f(a)g(single)h(completion)g (alternativ)o(e)f(matc)o(hes)g(at)f(the)h(end)g(of)g(the)g(command)f (line,)k(this)120 712 y(c)o(haracter)12 b(is)i(app)q(ended)h(to)d(the)i (inserted)g(completion)g(text.)19 b(The)13 b(default)h(is)f(a)g(space)h (c)o(haracter)120 774 y(\(`)g('\).)21 b(Setting)c(this)f(to)f(the)h(n)o (ull)h(c)o(haracter)e(\(`)p Fq(\\0)p Fr('\))f(prev)o(en)o(ts)i(an)o (ything)g(b)q(eing)h(app)q(ended)g(auto-)120 836 y(matically)l(.)26 b(This)17 b(can)g(b)q(e)g(c)o(hanged)g(in)g(custom)g(completion)h (functions)f(to)f(pro)o(vide)h(the)g(\\most)120 899 y(sensible)i(w)o (ord)d(separator)g(c)o(haracter")g(according)h(to)f(an)h (application-sp)q(eci\014)q(c)j(command)c(line)120 961 y(syn)o(tax)e(sp)q(eci\014cation.)1736 1116 y(V)l(ariable)-1899 b Fi(int)20 b Fh(rl)p 140 1116 V 21 w(ignore)p 316 1116 V 20 w(completion)p 610 1116 V 21 w(duplicates)120 1178 y Fr(If)15 b(non-zero,)h(then)f(disallo)o(w)h(duplicates)h(in)f(the)g (matc)o(hes.)j(Default)c(is)h(1.)1736 1333 y(V)l(ariable)-1899 b Fi(int)20 b Fh(rl)p 140 1333 V 21 w(\014lename)p 369 1333 V 20 w(completion)p 663 1333 V 21 w(desired)120 1395 y Fr(Non-zero)e(means)g(that)f(the)g(results)i(of)e(the)h(matc)o (hes)f(are)h(to)f(b)q(e)h(treated)f(as)h(\014lenames.)28 b(This)120 1458 y(is)16 b Fl(alw)o(a)o(ys)h Fr(zero)e(on)g(en)o(try)l (,)g(and)h(can)g(only)g(b)q(e)g(c)o(hanged)f(within)i(a)e(completion)i (en)o(try)e(generator)120 1520 y(function.)26 b(If)18 b(it)f(is)h(set)f(to)f(a)h(non-zero)g(v)m(alue,)i(directory)e(names)g (ha)o(v)o(e)g(a)g(slash)g(app)q(ended)i(and)120 1582 y(Readline)i(attempts)c(to)g(quote)h(completed)i(\014lenames)f(if)f (they)h(con)o(tain)f(an)o(y)g(em)o(b)q(edded)i(w)o(ord)120 1645 y(break)15 b(c)o(haracters.)1736 1800 y(V)l(ariable)-1899 b Fi(int)20 b Fh(rl)p 140 1800 V 21 w(\014lename)p 369 1800 V 20 w(quoting)p 578 1800 V 21 w(desired)120 1862 y Fr(Non-zero)c(means)g(that)g(the)g(results)h(of)e(the)i(matc)o(hes)e (are)h(to)g(b)q(e)h(quoted)f(using)h(double)g(quotes)120 1924 y(\(or)d(an)h(application-sp)q(eci\014)q(c)j(quoting)d(mec)o (hanism\))g(if)h(the)f(completed)h(\014lename)g(con)o(tains)f(an)o(y) 120 1986 y(c)o(haracters)i(in)h Fq(rl_filename_quote_chars)p Fr(.)24 b(This)19 b(is)f Fl(alw)o(a)o(ys)h Fr(non-zero)f(on)f(en)o(try) l(,)h(and)g(can)120 2049 y(only)d(b)q(e)g(c)o(hanged)f(within)i(a)e (completion)h(en)o(try)f(generator)g(function.)20 b(The)14 b(quoting)h(is)g(e\013ected)120 2111 y(via)g(a)g(call)i(to)d(the)i (function)g(p)q(oin)o(ted)g(to)e(b)o(y)h Fq (rl_filename_quoting_function)p Fr(.)1736 2266 y(V)l(ariable)-1899 b Fi(int)20 b Fh(rl)p 140 2266 V 21 w(inhibit)p 324 2266 V 23 w(completion)120 2328 y Fr(If)15 b(this)g(v)m(ariable)h(is)f (non-zero,)g(completion)h(is)f(inhibit)p Fq(<)p Fr(ed.)22 b(The)15 b(completion)h(c)o(haracter)e(will)i(b)q(e)120 2390 y(inserted)g(as)f(an)o(y)g(other)g(b)q(ound)h(to)e Fq(self-insert)p Fr(.)1736 2545 y(V)l(ariable)-1899 b Fi(Function)20 b(*)g Fh(rl)p 316 2545 V 21 w(ignore)p 492 2545 V 20 w(some)p 639 2545 V 19 w(completions)p 955 2545 V 21 w(function)120 2608 y Fr(This)e(function,)g(if)g (de\014ned,)h(is)f(called)h(b)o(y)e(the)h(completer)g(when)g(real)f (\014lename)i(completion)f(is)120 2670 y(done,)13 b(after)e(all)i(the)g (matc)o(hing)f(names)g(ha)o(v)o(e)g(b)q(een)h(generated.)19 b(It)12 b(is)h(passed)f(a)g Fq(NULL)g Fr(terminated)p eop 40 41 bop 0 -58 a Fr(40)1449 b(GNU)15 b(Readline)i(Library)120 183 y(arra)o(y)f(of)h(matc)o(hes.)26 b(The)17 b(\014rst)g(elemen)o(t)h (\()p Fq(matches[0])p Fr(\))e(is)h(the)h(maximal)g(substring)f(common) 120 246 y(to)f(all)h(matc)o(hes.)22 b(This)17 b(function)g(can)f (re-arrange)g(the)g(list)h(of)f(matc)o(hes)g(as)f(required,)j(but)e (eac)o(h)120 308 y(elemen)o(t)g(deleted)g(from)f(the)g(arra)o(y)f(m)o (ust)h(b)q(e)h(freed.)1736 470 y(V)l(ariable)-1899 b Fi(Function)20 b(*)g Fh(rl)p 316 470 18 3 v 21 w(directory)p 564 470 V 21 w(completion)p 859 470 V 21 w(ho)r(ok)120 532 y Fr(This)15 b(function,)g(if)g(de\014ned,)h(is)f(allo)o(w)o(ed)g (to)e(mo)q(dify)j(the)e(directory)h(p)q(ortion)g(of)f(\014lenames)h (Read-)120 594 y(line)h(completes.)k(It)14 b(is)g(called)i(with)e(the)g (address)g(of)g(a)g(string)g(\(the)g(curren)o(t)f(directory)i(name\))e (as)120 656 y(an)f(argumen)o(t.)17 b(It)12 b(could)h(b)q(e)f(used)g(to) f(expand)h(sym)o(b)q(olic)h(links)g(or)e(shell)i(v)m(ariables)g(in)f (pathnames.)0 864 y Fk(2.5.4)30 b(A)15 b(Short)g(Completion)g(Example) 62 1001 y Fr(Here)20 b(is)h(a)e(small)i(application)g(demonstrating)f (the)f(use)i(of)e(the)h(GNU)f(Readline)k(library)l(.)34 b(It)20 b(is)g(called)0 1063 y Fq(fileman)p Fr(,)14 b(and)i(the)f (source)g(co)q(de)h(resides)g(in)h(`)p Fq(examples/fileman.c)p Fr(')o(.)h(This)e(sample)f(application)i(pro)o(vides)0 1126 y(completion)f(of)f(command)g(names,)g(line)i(editing)f(features,) f(and)g(access)g(to)g(the)g(history)g(list.)p eop 41 42 bop 0 -58 a Fr(Chapter)15 b(2:)k(Programming)c(with)g(GNU)g (Readline)994 b(41)120 183 y Fq(/*)24 b(fileman.c)e(--)i(A)g(tiny)f (application)f(which)h(demonstrates)g(how)g(to)h(use)f(the)192 235 y(GNU)g(Readline)g(library.)46 b(This)24 b(application)e (interactively)g(allows)h(users)192 287 y(to)g(manipulate)g(files)g (and)g(their)g(modes.)h(*/)120 391 y(#include)f()120 443 y(#include)g()120 495 y(#include)g()120 546 y(#include)g()120 598 y(#include)g()120 702 y(#include)g()120 754 y(#include)g ()120 858 y(extern)g(char)g(*getwd)g(\(\);)120 910 y(extern)g(char)g(*xmalloc)g(\(\);)120 1013 y(/*)h(The)f(names)g (of)h(functions)e(that)i(actually)f(do)g(the)h(manipulation.)e(*/)120 1065 y(int)h(com_list)g(\(\),)h(com_view)e(\(\),)i(com_rename)e(\(\),)i (com_stat)f(\(\),)g(com_pwd)g(\(\);)120 1117 y(int)g(com_delete)g (\(\),)g(com_help)g(\(\),)h(com_cd)f(\(\),)g(com_quit)g(\(\);)120 1221 y(/*)h(A)f(structure)g(which)g(contains)g(information)f(on)i(the)f (commands)g(this)g(program)192 1273 y(can)g(understand.)f(*/)120 1377 y(typedef)h(struct)g({)168 1429 y(char)g(*name;)g(/*)h(User)f (printable)g(name)g(of)h(the)f(function.)g(*/)168 1480 y(Function)f(*func;)i(/*)f(Function)g(to)g(call)h(to)f(do)h(the)f(job.) h(*/)168 1532 y(char)f(*doc;)g(/*)h(Documentation)e(for)h(this)h (function.)46 b(*/)120 1584 y(})24 b(COMMAND;)120 1688 y(COMMAND)f(commands[])f(=)i({)168 1740 y({)f("cd",)h(com_cd,)f ("Change)f(to)i(directory)f(DIR")g(},)168 1792 y({)g("delete",)g (com_delete,)f("Delete)h(FILE")h(},)168 1844 y({)f("help",)g(com_help,) g("Display)g(this)g(text")g(},)168 1896 y({)g("?",)h(com_help,)e ("Synonym)h(for)h(`help'")f(},)168 1947 y({)g("list",)g(com_list,)g ("List)g(files)g(in)h(DIR")f(},)168 1999 y({)g("ls",)h(com_list,)e ("Synonym)h(for)g(`list'")g(},)168 2051 y({)g("pwd",)g(com_pwd,)g ("Print)g(the)h(current)f(working)g(directory")f(},)168 2103 y({)h("quit",)g(com_quit,)g("Quit)g(using)g(Fileman")g(},)168 2155 y({)g("rename",)g(com_rename,)f("Rename)h(FILE)h(to)f(NEWNAME")g (},)168 2207 y({)g("stat",)g(com_stat,)g("Print)g(out)g(statistics)g (on)h(FILE")f(},)168 2259 y({)g("view",)g(com_view,)g("View)g(the)h (contents)e(of)i(FILE")f(},)168 2311 y({)g(\(char)h(*\)NULL,)f (\(Function)f(*\)NULL,)h(\(char)g(*\)NULL)g(})120 2363 y(};)120 2466 y(/*)h(Forward)e(declarations.)h(*/)120 2518 y(char)g(*stripwhite)g(\(\);)120 2570 y(COMMAND)g(*find_command)f (\(\);)p eop 42 43 bop 0 -58 a Fr(42)1449 b(GNU)15 b(Readline)i(Library)120 183 y Fq(/*)24 b(The)f(name)g(of)h(this)f(program,)g(as)h(taken)f(from) g(argv[0].)g(*/)120 235 y(char)g(*progname;)120 339 y(/*)h(When)f (non-zero,)g(this)g(global)g(means)g(the)h(user)f(is)g(done)h(using)f (this)g(program.)g(*/)120 391 y(int)g(done;)120 495 y(char)g(*)120 546 y(dupstr)g(\(s\))239 598 y(int)h(s;)120 650 y({)168 702 y(char)f(*r;)168 806 y(r)g(=)h(xmalloc)f(\(strlen)g(\(s\))g(+)h (1\);)168 858 y(strcpy)f(\(r,)g(s\);)168 910 y(return)g(\(r\);)120 962 y(})120 1065 y(main)g(\(argc,)g(argv\))239 1117 y(int)h(argc;)239 1169 y(char)g(**argv;)120 1221 y({)168 1273 y(char)f(*line,)g(*s;)168 1377 y(progname)f(=)i(argv[0];)168 1480 y(initialize_readline)d(\(\);)i (/*)h(Bind)f(our)h(completer.)e(*/)168 1584 y(/*)h(Loop)h(reading)f (and)g(executing)g(lines)g(until)g(the)g(user)h(quits.)f(*/)168 1636 y(for)g(\()h(;)g(done)f(==)h(0;)f(\))215 1688 y({)263 1740 y(line)g(=)h(readline)f(\("FileMan:)f("\);)263 1844 y(if)i(\(!line\))311 1896 y(break;)263 1999 y(/*)g(Remove)f(leading)g (and)g(trailing)g(whitespace)f(from)i(the)f(line.)335 2051 y(Then,)g(if)h(there)f(is)g(anything)g(left,)g(add)h(it)f(to)h (the)f(history)g(list)335 2103 y(and)g(execute)g(it.)h(*/)263 2155 y(s)g(=)g(stripwhite)e(\(line\);)263 2259 y(if)i(\(*s\))311 2311 y({)359 2363 y(add_history)e(\(s\);)359 2414 y(execute_line)g (\(s\);)311 2466 y(})263 2570 y(free)h(\(line\);)215 2622 y(})p eop 43 44 bop 0 -58 a Fr(Chapter)15 b(2:)k(Programming)c(with)g(GNU)g (Readline)994 b(43)168 183 y Fq(exit)23 b(\(0\);)120 235 y(})120 339 y(/*)h(Execute)e(a)i(command)f(line.)g(*/)120 391 y(int)120 443 y(execute_line)f(\(line\))239 495 y(char)i(*line;)120 546 y({)168 598 y(register)e(int)i(i;)168 650 y(COMMAND)f(*command;)168 702 y(char)g(*word;)168 806 y(/*)g(Isolate)g(the)h(command)f(word.)g (*/)168 858 y(i)g(=)h(0;)168 910 y(while)f(\(line[i])g(&&)g(whitespace) g(\(line[i]\)\))215 962 y(i++;)168 1013 y(word)g(=)h(line)f(+)h(i;)168 1117 y(while)f(\(line[i])g(&&)g(!whitespace)g(\(line[i]\)\))215 1169 y(i++;)168 1273 y(if)g(\(line[i]\))215 1325 y(line[i++])g(=)h ('\\0';)168 1429 y(command)f(=)g(find_command)g(\(word\);)168 1532 y(if)g(\(!command\))215 1584 y({)263 1636 y(fprintf)g(\(stderr,)g ("\045s:)g(No)h(such)f(command)g(for)g(FileMan.\\n",)g(word\);)263 1688 y(return)g(\(-1\);)215 1740 y(})168 1844 y(/*)g(Get)h(argument)f (to)g(command,)g(if)g(any.)h(*/)168 1896 y(while)f(\(whitespace)f (\(line[i]\)\))215 1947 y(i++;)168 2051 y(word)h(=)h(line)f(+)h(i;)168 2155 y(/*)f(Call)h(the)f(function.)g(*/)168 2207 y(return)g (\(\(*\(command->func\)\))e(\(word\)\);)120 2259 y(})120 2363 y(/*)j(Look)f(up)g(NAME)h(as)f(the)h(name)f(of)h(a)f(command,)g (and)h(return)f(a)g(pointer)g(to)h(that)192 2414 y(command.)46 b(Return)23 b(a)h(NULL)f(pointer)g(if)h(NAME)f(isn't)g(a)h(command)f (name.)g(*/)120 2466 y(COMMAND)g(*)120 2518 y(find_command)f(\(name\)) 239 2570 y(char)i(*name;)120 2622 y({)p eop 44 45 bop 0 -58 a Fr(44)1449 b(GNU)15 b(Readline)i(Library)168 183 y Fq(register)22 b(int)i(i;)168 287 y(for)f(\(i)h(=)f(0;)h (commands[i].name;)e(i++\))215 339 y(if)i(\(strcmp)f(\(name,)g (commands[i].name\))f(==)h(0\))263 391 y(return)g(\(&commands[i]\);)168 495 y(return)g(\(\(COMMAND)f(*\)NULL\);)120 546 y(})120 650 y(/*)i(Strip)f(whitespace)f(from)i(the)f(start)g(and)h(end)f(of)h (STRING.)46 b(Return)24 b(a)f(pointer)192 702 y(into)g(STRING.)g(*/)120 754 y(char)g(*)120 806 y(stripwhite)f(\(string\))239 858 y(char)i(*string;)120 910 y({)168 962 y(register)e(char)i(*s,)f (*t;)168 1065 y(for)g(\(s)h(=)f(string;)g(whitespace)g(\(*s\);)g(s++\)) 215 1117 y(;)168 1221 y(if)g(\(*s)h(==)f(0\))215 1273 y(return)g(\(s\);)168 1377 y(t)g(=)h(s)g(+)g(strlen)f(\(s\))g(-)h(1;) 168 1429 y(while)f(\(t)g(>)h(s)g(&&)g(whitespace)e(\(*t\)\))215 1480 y(t--;)168 1532 y(*++t)h(=)h('\\0';)168 1636 y(return)f(s;)120 1688 y(})120 1792 y(/*)h(***********************)o(*******)o(********)o (*******)o(*******)o(********)o(****)d(*/)120 1844 y(/*)1575 b(*/)120 1896 y(/*)429 b(Interface)23 b(to)g(Readline)g(Completion)381 b(*/)120 1947 y(/*)1575 b(*/)120 1999 y(/*)24 b (***********************)o(*******)o(********)o(*******)o(*******)o (********)o(****)d(*/)120 2103 y(char)i(*command_generator)f(\(\);)120 2155 y(char)h(**fileman_completion)e(\(\);)120 2259 y(/*)j(Tell)f(the)g (GNU)h(Readline)f(library)f(how)i(to)g(complete.)46 b(We)24 b(want)f(to)h(try)f(to)h(complete)192 2311 y(on)f(command)g(names)g(if) h(this)f(is)h(the)f(first)g(word)h(in)f(the)h(line,)f(or)h(on)f (filenames)192 2363 y(if)g(not.)g(*/)120 2414 y(initialize_readline)e (\(\))120 2466 y({)168 2518 y(/*)i(Allow)g(conditional)g(parsing)g(of)g (the)h(~/.inputrc)e(file.)h(*/)168 2570 y(rl_readline_name)e(=)j ("FileMan";)p eop 45 46 bop 0 -58 a Fr(Chapter)15 b(2:)k(Programming)c(with)g(GNU)g (Readline)994 b(45)168 183 y Fq(/*)23 b(Tell)h(the)f(completer)g(that)g (we)h(want)f(a)h(crack)f(first.)g(*/)168 235 y (rl_attempted_completion_)o(functio)o(n)e(=)j(\(CPPFunction)e (*\)fileman_completion;)120 287 y(})120 391 y(/*)i(Attempt)e(to)i (complete)f(on)g(the)h(contents)f(of)g(TEXT.)47 b(START)23 b(and)h(END)f(bound)h(the)192 443 y(region)f(of)g(rl_line_buffer)f (that)h(contains)g(the)h(word)f(to)h(complete.)46 b(TEXT)23 b(is)192 495 y(the)g(word)g(to)h(complete.)46 b(We)24 b(can)f(use)h(the)f(entire)g(contents)g(of)h(rl_line_buffer)192 546 y(in)f(case)g(we)h(want)f(to)h(do)g(some)f(simple)g(parsing.)47 b(Return)23 b(the)g(array)g(of)h(matches,)192 598 y(or)f(NULL)g(if)h (there)f(aren't)g(any.)h(*/)120 650 y(char)f(**)120 702 y(fileman_completion)e(\(text,)i(start,)g(end\))239 754 y(char)h(*text;)239 806 y(int)g(start,)f(end;)120 858 y({)168 910 y(char)g(**matches;)168 1013 y(matches)g(=)g(\(char)h (**\)NULL;)168 1117 y(/*)f(If)h(this)f(word)h(is)f(at)h(the)f(start)g (of)h(the)f(line,)h(then)f(it)g(is)h(a)g(command)239 1169 y(to)g(complete.)46 b(Otherwise)23 b(it)h(is)f(the)h(name)f(of)h (a)f(file)h(in)f(the)h(current)239 1221 y(directory.)f(*/)168 1273 y(if)g(\(start)g(==)h(0\))215 1325 y(matches)f(=)h (completion_matches)d(\(text,)j(command_generator\);)168 1429 y(return)f(\(matches\);)120 1480 y(})120 1584 y(/*)h(Generator)e (function)h(for)g(command)g(completion.)47 b(STATE)23 b(lets)g(us)h(know)f(whether)192 1636 y(to)g(start)g(from)h(scratch;)e (without)h(any)h(state)f(\(i.e.)g(STATE)g(==)h(0\),)f(then)h(we)192 1688 y(start)f(at)g(the)h(top)f(of)h(the)f(list.)g(*/)120 1740 y(char)g(*)120 1792 y(command_generator)f(\(text,)h(state\))239 1844 y(char)h(*text;)239 1896 y(int)g(state;)120 1947 y({)168 1999 y(static)f(int)g(list_index,)g(len;)168 2051 y(char)g(*name;)168 2155 y(/*)g(If)h(this)f(is)h(a)g(new)f(word)g (to)h(complete,)f(initialize)f(now.)47 b(This)24 b(includes)239 2207 y(saving)f(the)h(length)f(of)g(TEXT)h(for)f(efficiency,)g(and)g (initializing)f(the)i(index)239 2259 y(variable)f(to)h(0.)f(*/)168 2311 y(if)g(\(!state\))215 2363 y({)263 2414 y(list_index)g(=)g(0;)263 2466 y(len)h(=)f(strlen)g(\(text\);)215 2518 y(})168 2622 y(/*)g(Return)g(the)h(next)f(name)g(which)h(partially)e(matches)h (from)g(the)h(command)f(list.)g(*/)p eop 46 47 bop 0 -58 a Fr(46)1449 b(GNU)15 b(Readline)i(Library)168 183 y Fq(while)23 b(\(name)g(=)h(commands[list_index].name)o(\))215 235 y({)263 287 y(list_index++;)263 391 y(if)g(\(strncmp)f(\(name,)g (text,)g(len\))g(==)h(0\))311 443 y(return)f(\(dupstr\(name\)\);)215 495 y(})168 598 y(/*)g(If)h(no)f(names)h(matched,)e(then)i(return)f (NULL.)g(*/)168 650 y(return)g(\(\(char)g(*\)NULL\);)120 702 y(})120 806 y(/*)h(***********************)o(*******)o(********)o (*******)o(*******)o(********)o(****)d(*/)120 858 y(/*)1575 b(*/)120 910 y(/*)549 b(FileMan)22 b(Commands)644 b(*/)120 962 y(/*)1575 b(*/)120 1013 y(/*)24 b(***********************)o (*******)o(********)o(*******)o(*******)o(********)o(****)d(*/)120 1117 y(/*)j(String)f(to)g(pass)h(to)f(system)g(\(\).)47 b(This)24 b(is)f(for)h(the)f(LIST,)g(VIEW)h(and)f(RENAME)192 1169 y(commands.)f(*/)120 1221 y(static)h(char)g(syscom[1024];)120 1325 y(/*)h(List)f(the)g(file\(s\))g(named)g(in)h(arg.)f(*/)120 1377 y(com_list)g(\(arg\))239 1429 y(char)h(*arg;)120 1480 y({)168 1532 y(if)f(\(!arg\))215 1584 y(arg)h(=)g("";)168 1688 y(sprintf)f(\(syscom,)f("ls)i(-FClg)f(\045s",)g(arg\);)168 1740 y(return)g(\(system)g(\(syscom\)\);)120 1792 y(})120 1896 y(com_view)g(\(arg\))239 1947 y(char)h(*arg;)120 1999 y({)168 2051 y(if)f(\(!valid_argument)f(\("view",)h(arg\)\))215 2103 y(return)g(1;)168 2207 y(sprintf)g(\(syscom,)f("more)i(\045s",)f (arg\);)168 2259 y(return)g(\(system)g(\(syscom\)\);)120 2311 y(})120 2414 y(com_rename)f(\(arg\))239 2466 y(char)i(*arg;)120 2518 y({)168 2570 y(too_dangerous)e(\("rename"\);)168 2622 y(return)h(\(1\);)p eop 47 48 bop 0 -58 a Fr(Chapter)15 b(2:)k(Programming)c(with)g(GNU)g (Readline)994 b(47)120 183 y Fq(})120 287 y(com_stat)23 b(\(arg\))239 339 y(char)h(*arg;)120 391 y({)168 443 y(struct)f(stat)g(finfo;)168 546 y(if)g(\(!valid_argument)f(\("stat",)h (arg\)\))215 598 y(return)g(\(1\);)168 702 y(if)g(\(stat)g(\(arg,)h (&finfo\))f(==)g(-1\))215 754 y({)263 806 y(perror)g(\(arg\);)263 858 y(return)g(\(1\);)215 910 y(})168 1013 y(printf)g(\("Statistics)f (for)h(`\045s':\\n",)g(arg\);)168 1117 y(printf)g(\("\045s)g(has)h (\045d)f(link\045s,)g(and)g(is)h(\045d)g(byte\045s)f(in)g(length.\\n",) g(arg,)359 1169 y(finfo.st_nlink,)359 1221 y(\(finfo.st_nlink)e(==)j (1\))g(?)f("")h(:)g("s",)359 1273 y(finfo.st_size,)359 1325 y(\(finfo.st_size)e(==)h(1\))h(?)f("")h(:)g("s"\);)168 1377 y(printf)f(\("Inode)g(Last)g(Change)g(at:)g(\045s",)h(ctime)f (\(&finfo.st_ctime\)\);)168 1429 y(printf)g(\(")143 b(Last)23 b(access)g(at:)g(\045s",)h(ctime)f(\(&finfo.st_atime\)\);)168 1480 y(printf)g(\(")95 b(Last)23 b(modified)g(at:)g(\045s",)h(ctime)f (\(&finfo.st_mtime\)\);)168 1532 y(return)g(\(0\);)120 1584 y(})120 1688 y(com_delete)f(\(arg\))239 1740 y(char)i(*arg;)120 1792 y({)168 1844 y(too_dangerous)e(\("delete"\);)168 1896 y(return)h(\(1\);)120 1947 y(})120 2051 y(/*)h(Print)f(out)g(help) h(for)f(ARG,)g(or)h(for)f(all)h(of)f(the)h(commands)f(if)g(ARG)h(is)192 2103 y(not)f(present.)g(*/)120 2155 y(com_help)g(\(arg\))239 2207 y(char)h(*arg;)120 2259 y({)168 2311 y(register)e(int)i(i;)168 2363 y(int)f(printed)g(=)h(0;)168 2466 y(for)f(\(i)h(=)f(0;)h (commands[i].name;)e(i++\))215 2518 y({)263 2570 y(if)i(\(!*arg)f(||)g (\(strcmp)g(\(arg,)g(commands[i].name\))f(==)i(0\)\))311 2622 y({)p eop 48 49 bop 0 -58 a Fr(48)1449 b(GNU)15 b(Readline)i(Library)359 183 y Fq(printf)23 b(\("\045s\\t\\t\045s.\\n",)e(commands[i].name,)h (commands[i].doc\);)359 235 y(printed++;)311 287 y(})215 339 y(})168 443 y(if)h(\(!printed\))215 495 y({)263 546 y(printf)g(\("No)h(commands)e(match)h(`\045s'.)48 b(Possibilties)22 b(are:\\n",)h(arg\);)263 650 y(for)h(\(i)f(=)h(0;)g(commands[i].name;)d (i++\))311 702 y({)359 754 y(/*)i(Print)g(in)h(six)f(columns.)g(*/)359 806 y(if)g(\(printed)g(==)h(6\))406 858 y({)454 910 y(printed)f(=)h(0;) 454 962 y(printf)f(\("\\n"\);)406 1013 y(})359 1117 y(printf)g (\("\045s\\t",)f(commands[i].name\);)359 1169 y(printed++;)311 1221 y(})263 1325 y(if)i(\(printed\))311 1377 y(printf)f(\("\\n"\);)215 1429 y(})168 1480 y(return)g(\(0\);)120 1532 y(})120 1636 y(/*)h(Change)f(to)g(the)h(directory)e(ARG.)i(*/)120 1688 y(com_cd)f(\(arg\))239 1740 y(char)h(*arg;)120 1792 y({)168 1844 y(if)f(\(chdir)g(\(arg\))h(==)f(-1\))215 1896 y({)263 1947 y(perror)g(\(arg\);)263 1999 y(return)g(1;)215 2051 y(})168 2155 y(com_pwd)g(\(""\);)168 2207 y(return)g(\(0\);)120 2259 y(})120 2363 y(/*)h(Print)f(out)g(the)h(current)f(working)f (directory.)h(*/)120 2414 y(com_pwd)g(\(ignore\))239 2466 y(char)h(*ignore;)120 2518 y({)168 2570 y(char)f(dir[1024],)g(*s;) p eop 49 50 bop 0 -58 a Fr(Chapter)15 b(2:)k(Programming)c(with)g(GNU)g (Readline)994 b(49)168 183 y Fq(s)23 b(=)h(getwd)f(\(dir\);)168 235 y(if)g(\(s)h(==)f(0\))215 287 y({)263 339 y(printf)g(\("Error)g (getting)g(pwd:)g(\045s\\n",)g(dir\);)263 391 y(return)g(1;)215 443 y(})168 546 y(printf)g(\("Current)f(directory)h(is)h(\045s\\n",)f (dir\);)168 598 y(return)g(0;)120 650 y(})120 754 y(/*)h(The)f(user)g (wishes)g(to)h(quit)f(using)g(this)h(program.)46 b(Just)24 b(set)f(DONE)h(non-zero.)e(*/)120 806 y(com_quit)h(\(arg\))239 858 y(char)h(*arg;)120 910 y({)168 962 y(done)f(=)h(1;)168 1013 y(return)f(\(0\);)120 1065 y(})120 1169 y(/*)h(Function)e(which)i (tells)f(you)g(that)g(you)h(can't)f(do)h(this.)f(*/)120 1221 y(too_dangerous)f(\(caller\))239 1273 y(char)i(*caller;)120 1325 y({)168 1377 y(fprintf)f(\(stderr,)382 1429 y("\045s:)h(Too)f (dangerous)g(for)g(me)h(to)g(distribute.)46 b(Write)23 b(it)h(yourself.\\n",)382 1480 y(caller\);)120 1532 y(})120 1636 y(/*)g(Return)f(non-zero)f(if)i(ARG)f(is)h(a)g(valid)f(argument)g (for)g(CALLER,)g(else)g(print)192 1688 y(an)g(error)g(message)g(and)h (return)f(zero.)g(*/)120 1740 y(int)120 1792 y(valid_argument)f (\(caller,)h(arg\))239 1844 y(char)h(*caller,)e(*arg;)120 1896 y({)168 1947 y(if)h(\(!arg)g(||)h(!*arg\))215 1999 y({)263 2051 y(fprintf)f(\(stderr,)g("\045s:)g(Argument)g (required.\\n",)f(caller\);)263 2103 y(return)h(\(0\);)215 2155 y(})168 2259 y(return)g(\(1\);)120 2311 y(})p eop 50 51 bop 0 -58 a Fr(50)1449 b(GNU)15 b(Readline)i(Library)p eop 51 52 bop 0 -58 a Fr(Concept)15 b(Index)1616 b(51)0 183 y Fn(Concept)16 b(Index)0 430 y Fp(C)0 496 y Ff(command)e(editing)f Fe(.)6 b(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.) g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g (.)23 b Ff(2)0 604 y Fp(E)0 670 y Ff(editing)15 b(command)f(lines)d Fe(.)6 b(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.) g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)22 b Ff(2)0 778 y Fp(I)0 845 y Ff(initiali)q(zati)q(on)16 b(\014le,)e(readline)d Fe(.)6 b(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)g (.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)22 b Ff(5)0 903 y(in)o(teraction,)15 b(readline)5 b Fe(.)j(.)e(.)g(.)g(.)g (.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.) g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)17 b Ff(1)0 1011 y Fp(K)0 1077 y Ff(kill)e(ring)5 b Fe(.)i(.)f(.)g(.)g(.)g(.)g(.)g(.)g (.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.) f(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g (.)g(.)17 b Ff(3)1015 430 y(killin)q(g)f(text)t Fe(.)6 b(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g (.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.) g(.)h(.)f(.)g(.)g(.)g(.)17 b Ff(3)1015 579 y Fp(N)1015 646 y Ff(notation,)e(readline)7 b Fe(.)h(.)f(.)f(.)g(.)g(.)g(.)g(.)g(.) g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g (.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)20 b Ff(2)1015 795 y Fp(R)1015 861 y Ff(readline,)15 b(function)8 b Fe(.)g(.)e(.)g(.)g(.)g (.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.) g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)21 b Ff(19)1015 1011 y Fp(Y)1015 1077 y Ff(y)o(anking)15 b(text)7 b Fe(.)g(.)f(.)g(.)g (.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.) g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f (.)20 b Ff(3)p eop 52 53 bop 0 -58 a Fr(52)1449 b(GNU)15 b(Readline)i(Library)p eop 53 54 bop 0 -58 a Fr(F)l(unction)16 b(and)f(V)l(ariable)i(Index)1337 b(53)0 183 y Fn(F)-7 b(unction)15 b(and)g(V)-7 b(ariable)14 b(Index)0 424 y Fp(\()0 490 y Fd(\(int)t Fe(.)5 b(.)h(.)g(.)g(.)g(.)g (.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.) g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)h (.)f(.)g(.)g(.)g(.)g(.)17 b Ff(31)0 608 y Fp(A)0 674 y Fd(abort)11 b(\(C-g\))c Fe(.)t(.)f(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.) g(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g (.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)20 b Ff(17)0 732 y Fd(accept-lin)o(e)10 b(\(Newline)o(,)g(Return\))5 b Fe(.)s(.)h(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.) g(.)g(.)18 b Ff(12)0 790 y Fd(alphabetic)t Fe(.)s(.)7 b(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g (.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.) g(.)g(.)g(.)18 b Ff(31)0 908 y Fp(B)0 974 y Fd(backward-c)o(ha)o(r)10 b(\(C-b\))c Fe(.)t(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)h (.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)19 b Ff(12)0 1032 y Fd(backward-d)o(el)o(ete)o(-c)o(har)9 b(\(Rubout\))e Fe(.)f(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g (.)g(.)g(.)g(.)g(.)23 b Ff(14)0 1090 y Fd(backward-k)o(il)o(l-l)o(in)o (e)10 b(\(C-x)h(Rubout\))d Fe(.)e(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g (.)g(.)g(.)g(.)g(.)g(.)24 b Ff(15)0 1148 y Fd(backward-k)o(il)o(l-w)o (or)o(d)10 b(\(M-DEL\))5 b Fe(.)t(.)h(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g (.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)18 b Ff(15)0 1207 y Fd(backward-w)o(or)o(d)10 b(\(M-b\))c Fe(.)t(.)g(.)g(.)g(.)g(.)g (.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.) g(.)g(.)g(.)g(.)g(.)g(.)19 b Ff(12)0 1265 y Fd(beginning-)o(of)o(-hi)o (st)o(ory)9 b(\(M-<\))c Fe(.)g(.)h(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g (.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)18 b Ff(13)0 1323 y Fd(beginning-)o(of)o(-li)o(ne)9 b(\(C-a\))g Fe(.)c(.)h(.)g(.)g (.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.) g(.)g(.)g(.)22 b Ff(12)0 1381 y(b)q(ell-st)o(yle)s Fe(.)9 b(.)d(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g (.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.) g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)16 b Ff(5)0 1498 y Fp(C)0 1565 y Fd(call-last-)o(kb)o(d-m)o(ac)o(ro)9 b(\(C-x)j(e\))7 b Fe(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.) h(.)f(.)g(.)g(.)20 b Ff(17)0 1623 y Fd(capitalize)o(-w)o(ord)9 b(\(M-c\))s Fe(.)t(.)d(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g (.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)16 b Ff(14)0 1681 y Fd(character-)o(se)o(arc)o(h)10 b(\(C-]\))e Fe(.)e(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g (.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)23 b Ff(17)0 1739 y Fd(character-)o(se)o(arc)o(h-)o(bac)o(kwa)o(rd)9 b(\(M-C-]\))c Fe(.)s(.)i(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)18 b Ff(18)0 1797 y Fd(clear-scre)o(en)9 b(\(C-l\))e Fe(.)t(.)f(.)g(.)h(.) f(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g (.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)20 b Ff(12)0 1855 y(commen)o(t-b)q(egin)13 b Fe(.)6 b(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g (.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.) g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)23 b Ff(5)0 1913 y Fd(complete)10 b(\(TAB\))t Fe(.)s(.)c(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g (.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.) g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)16 b Ff(16)0 1972 y(completion-query-i) q(tems)d Fe(.)6 b(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g (.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)23 b Ff(6)0 2030 y Fd(completion)p 201 2030 12 2 v 10 w(matches)6 b Fe(.)t(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.) g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)19 b Ff(36)0 2088 y(con)o(v)o(ert-meta)t Fe(.)6 b(.)g(.)h(.)f(.)g(.)g(.)g (.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.) g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)16 b Ff(6)0 2146 y Fd(copy-backw)o(ar)o(d-w)o(or)o(d)10 b(\(\))s Fe(.)5 b(.)h(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g (.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)16 b Ff(15)0 2204 y Fd(copy-forwa)o(rd)o(-wo)o(rd)9 b(\(\))t Fe(.)d(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)g (.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)17 b Ff(15)0 2262 y Fd(copy-regio)o(n-)o(as-)o(ki)o(ll)9 b(\(\))h Fe(.)c(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g (.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)23 b Ff(15)0 2379 y Fp(D)0 2446 y Fd(delete-cha)o(r)10 b(\(C-d\))e Fe(.)t(.)e(.)g(.)g(.)g (.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.) g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)21 b Ff(14)0 2504 y Fd(delete-hor)o(iz)o(ont)o(al)o(-sp)o(ace)9 b(\(\))c Fe(.)h(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f (.)g(.)g(.)g(.)g(.)18 b Ff(15)0 2562 y Fd(digit-argu)o(me)o(nt)9 b(\(M-0,)i(M-1,)h(...)f(M--\))5 b Fe(.)g(.)h(.)g(.)g(.)g(.)g(.)g(.)h(.) f(.)g(.)g(.)g(.)g(.)18 b Ff(16)0 2620 y Fd(digit)p 102 2620 V 12 w(p)s Fe(.)6 b(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.) g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)g (.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)16 b Ff(32)0 2678 y Fd(digit)p 102 2678 V 12 w(value)7 b Fe(.)t(.)f(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g (.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.) g(.)g(.)g(.)g(.)20 b Ff(32)1015 424 y Fd(ding)t Fe(.)5 b(.)h(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)h (.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.) g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)18 b Ff(31)1015 482 y(disable-compl)q(eti)q(on)9 b Fe(.)g(.)d(.)g(.)g(.)g(.)g(.)g(.)g (.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.) g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)21 b Ff(6)1015 540 y Fd(do-uppercas)o(e-)o(ver)o(sio)o(n)10 b(\(M-a,)g(M-b,)i(M-)p Fe(x)p Fd(,)g Fc(:)6 b(:)g(:)g Fd(\))j Fe(.)c(.)h(.)g(.)g(.)g(.)22 b Ff(17)1015 598 y Fd(downcase-wo)o(rd)9 b(\(M-l\))d Fe(.)t(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g (.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)19 b Ff(14)1015 656 y Fd(dump-functi)o(on)o(s)10 b(\(\))e Fe(.)d(.)i(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)h (.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)22 b Ff(18)1015 715 y Fd(dump-macros)9 b(\(\))t Fe(.)c(.)h(.)g(.)g(.)g(.)g (.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.) g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)17 b Ff(18)1015 773 y Fd(dump-variab)o(le)o(s)10 b(\(\))e Fe(.)d(.)i(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)h (.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)22 b Ff(18)1015 890 y Fp(E)1015 956 y Ff(editing-mo)q(de)t Fe(.)9 b(.)d(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.) g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g (.)g(.)g(.)g(.)g(.)g(.)17 b Ff(6)1015 1014 y(enable-k)o(eypad)d Fe(.)7 b(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.) h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g (.)g(.)g(.)g(.)24 b Ff(6)1015 1072 y Fd(end-kbd-mac)o(ro)9 b(\(C-x)j(\)\))7 b Fe(.)t(.)f(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g (.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)20 b Ff(16)1015 1131 y Fd(end-of-hist)o(or)o(y)10 b(\(M->\))t Fe(.)t(.)d(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)h (.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)18 b Ff(13)1015 1189 y Fd(end-of-line)9 b(\(C-e\))f Fe(.)t(.)f(.)f(.)g(.)g(.)g(.)g(.)g (.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.) g(.)g(.)g(.)g(.)g(.)g(.)22 b Ff(12)1015 1247 y Fd(exchange-po)o(in)o (t-a)o(nd-)o(ma)o(rk)9 b(\(C-x)j(C-x\))c Fe(.)d(.)h(.)g(.)g(.)g(.)g(.)g (.)g(.)g(.)g(.)g(.)g(.)g(.)22 b Ff(17)1015 1305 y(expand-tilde)10 b Fe(.)f(.)d(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.) h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g (.)g(.)g(.)g(.)g(.)g(.)22 b Ff(6)1015 1422 y Fp(F)1015 1488 y Fd(filename)p 1177 1488 V 12 w(completi)o(on)p 1388 1488 V 11 w(function)5 b Fe(.)s(.)h(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.) g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)18 b Ff(36)1015 1547 y Fd(forward-cha)o(r)10 b(\(C-f\))d Fe(.)t(.)f(.)g(.)g(.)g(.)g(.)g (.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.) g(.)g(.)h(.)f(.)g(.)g(.)20 b Ff(12)1015 1605 y Fd(forward-sea)o(rc)o (h-h)o(ist)o(or)o(y)10 b(\(C-s\))f Fe(.)d(.)g(.)g(.)g(.)h(.)f(.)g(.)g (.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)25 b Ff(13)1015 1663 y Fd(forward-wor)o(d)10 b(\(M-f\))d Fe(.)t(.)f(.)g(.)g(.)g(.)g(.)g (.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.) g(.)g(.)h(.)f(.)g(.)g(.)20 b Ff(12)1015 1721 y Fd(free)p 1097 1721 V 13 w(undo)p 1190 1721 V 13 w(list)6 b Fe(.)t(.)g(.)g(.)g(.) g(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g (.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)19 b Ff(29)1015 1838 y Fp(H)1015 1904 y Fd(history-sea)o(rc)o(h-b)o(ack)o (wa)o(rd)9 b(\(\))c Fe(.)h(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g (.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)19 b Ff(13)1015 1963 y Fd(history-sea)o(rc)o(h-f)o(orw)o(ar)o(d)10 b(\(\))d Fe(.)e(.)h(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g (.)g(.)g(.)g(.)g(.)g(.)20 b Ff(13)1015 2021 y(horizon)o(tal-scrol)q(l)q (-mo)q(de)t Fe(.)9 b(.)d(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.) g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)17 b Ff(6)1015 2138 y Fp(I)1015 2204 y Ff(input-meta)s Fe(.)8 b(.)e(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g (.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.) h(.)f(.)g(.)g(.)g(.)g(.)16 b Ff(7)1015 2262 y Fd(insert-comm)o(en)o(t) 10 b(\(M-#\))t Fe(.)t(.)d(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g (.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)18 b Ff(18)1015 2320 y Fd(insert-comp)o(le)o(tio)o(ns)9 b(\(M-*\))f Fe(.)t(.)e(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g (.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)21 b Ff(16)1015 2438 y Fp(K)1015 2504 y Ff(k)o(eymap)6 b Fe(.)h(.)f(.)h(.)f(.)g(.)g(.)g (.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.) g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)g (.)g(.)g(.)19 b Ff(6)1015 2562 y Fd(kill-line)10 b(\(C-k\))f Fe(.)d(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g (.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)24 b Ff(14)1015 2620 y Fd(kill-region)9 b(\(\))t Fe(.)c(.)h(.)g(.)g(.)g(.) g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g (.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)17 b Ff(15)1015 2678 y Fd(kill-whole-)o(li)o(ne)10 b(\(\))d Fe(.)e(.)h(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g (.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)20 b Ff(15)p eop 54 55 bop 0 -58 a Fr(54)1449 b(GNU)15 b(Readline)i(Library)0 183 y Fd(kill-word)9 b(\(M-d\))g Fe(.)d(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g (.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.) g(.)g(.)g(.)g(.)g(.)g(.)g(.)24 b Ff(15)0 298 y Fp(L)0 364 y Fd(lowercase)p 182 364 12 2 v 11 w(p)7 b Fe(.)e(.)h(.)g(.)g(.)g (.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.) h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)20 b Ff(32)0 479 y Fp(M)0 545 y Ff(mark-mo)q(di\014ed-lin)q(es)7 b Fe(.)i(.)d(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.) g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)20 b Ff(7)0 603 y(meta-\015ag)10 b Fe(.)c(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g (.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.) g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)22 b Ff(7)0 718 y Fp(N)0 784 y Fd(next-histo)o(ry)9 b(\(C-n\))e Fe(.)t(.)f(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g (.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)20 b Ff(13)0 842 y Fd(non-increm)o(en)o(tal)o(-f)o(orw)o(ard)o(-s)o(ear)o (ch)o(-hi)o(st)o(ory)9 b(\(M-n\))82 900 y Fe(.)d(.)g(.)g(.)g(.)g(.)g(.) g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f (.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.) g(.)g(.)g(.)g(.)g(.)18 b Ff(13)0 958 y Fd(non-increm)o(en)o(tal)o(-r)o (eve)o(rse)o(-s)o(ear)o(ch)o(-hi)o(st)o(ory)9 b(\(M-p\))82 1017 y Fe(.)d(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g (.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.) g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)18 b Ff(13)0 1075 y Fd(numeric)9 b Fe(.)s(.)e(.)f(.)g(.)g(.)g(.)g(.)g(.)g (.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.) g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)22 b Ff(31)0 1189 y Fp(O)0 1256 y Ff(output-meta)8 b Fe(.)g(.)e(.)g(.)g(.) g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g (.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.) 21 b Ff(7)0 1370 y Fp(P)0 1436 y Fd(possible-c)o(om)o(ple)o(ti)o(ons)9 b(\(M-?\))c Fe(.)g(.)h(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g (.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)18 b Ff(16)0 1495 y Fd(prefix-met)o(a)10 b(\(ESC\))e Fe(.)t(.)e(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g (.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.) 21 b Ff(17)0 1553 y Fd(previous-h)o(is)o(tor)o(y)10 b(\(C-p\))e Fe(.)e(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g (.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)23 b Ff(12)0 1667 y Fp(Q)0 1734 y Fd(quoted-ins)o(er)o(t)10 b(\(C-q,)h(C-v\))e Fe(.)d(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)h (.)f(.)g(.)g(.)g(.)g(.)g(.)24 b Ff(14)0 1848 y Fp(R)0 1914 y Fd(re-read-in)o(it)o(-fi)o(le)9 b(\(C-x)i(C-r\))c Fe(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)h (.)f(.)g(.)g(.)20 b Ff(17)0 1973 y Fd(readline)8 b Fe(.)s(.)e(.)g(.)g (.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.) g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g (.)g(.)g(.)21 b Ff(19)0 2031 y Fd(redraw-cur)o(re)o(nt-)o(li)o(ne)9 b(\(\))h Fe(.)c(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g (.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)23 b Ff(12)0 2089 y Fd(reverse-se)o(ar)o(ch-)o(hi)o(sto)o(ry)9 b(\(C-r\))h Fe(.)c(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g (.)g(.)24 b Ff(13)0 2147 y Fd(revert-lin)o(e)10 b(\(M-r\))e Fe(.)t(.)e(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)g (.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)21 b Ff(17)0 2205 y Fd(rl)p 42 2205 V 13 w(add)p 115 2205 V 13 w(defun)8 b Fe(.)d(.)h(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g (.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.) f(.)g(.)g(.)g(.)g(.)g(.)g(.)21 b Ff(25)0 2263 y Fd(rl)p 42 2263 V 13 w(add)p 115 2263 V 13 w(undo)8 b Fe(.)e(.)g(.)g(.)h(.)f(.) g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g (.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)22 b Ff(29)0 2321 y Fd(rl)p 42 2321 V 13 w(attempted)p 235 2321 V 11 w(completion)p 445 2321 V 10 w(function)15 b Fe(.)6 b(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)17 b Ff(37)0 2379 y Fd(rl)p 42 2379 V 13 w(basic)p 155 2379 V 13 w(quote)p 268 2379 V 12 w(character)o(s)e Fe(.)6 b(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g (.)g(.)g(.)g(.)g(.)18 b Ff(38)0 2438 y Fd(rl)p 42 2438 V 13 w(basic)p 155 2438 V 13 w(word)p 248 2438 V 12 w(break)p 360 2438 V 12 w(characters)h Fe(.)6 b(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g (.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)23 b Ff(38)0 2496 y Fd(rl)p 42 2496 V 13 w(begin)p 155 2496 V 13 w(undo)p 248 2496 V 12 w(group)9 b Fe(.)d(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f (.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)23 b Ff(28)0 2554 y Fd(rl)p 42 2554 V 13 w(bind)p 135 2554 V 13 w(key)8 b Fe(.)e(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g (.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.) g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)22 b Ff(26)0 2612 y Fd(rl)p 42 2612 V 13 w(bind)p 135 2612 V 13 w(key)p 208 2612 V 13 w(in)p 261 2612 V 13 w(map)6 b Fe(.)f(.)h(.)g(.)g(.)g(.)h(.)f(.)g (.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.) g(.)g(.)g(.)g(.)g(.)g(.)19 b Ff(26)0 2670 y Fd(rl)p 42 2670 V 13 w(binding)p 195 2670 V 12 w(keymap)14 b Fe(.)6 b(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g (.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)17 b Ff(24)1015 183 y Fd(rl)p 1057 183 V 14 w(callback)p 1231 183 V 11 w(handler)p 1382 183 V 11 w(install)9 b Fe(.)t(.)d(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f (.)g(.)g(.)g(.)22 b Ff(32)1015 241 y Fd(rl)p 1057 241 V 14 w(callback)p 1231 241 V 11 w(handler)p 1382 241 V 11 w(remove)8 b Fe(.)e(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.) g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)23 b Ff(33)1015 299 y Fd(rl)p 1057 299 V 14 w(callback)p 1231 299 V 11 w(read)p 1322 299 V 12 w(char)8 b Fe(.)d(.)h(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g (.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)21 b Ff(32)1015 358 y Fd(rl)p 1057 358 V 14 w(char)p 1151 358 V 12 w(is)p 1203 358 V 14 w(quoted)p 1337 358 V 12 w(p)e Fe(.)6 b(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g (.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)20 b Ff(37)1015 416 y Fd(rl)p 1057 416 V 14 w(clear)p 1171 416 V 12 w(message)s Fe(.)t(.)6 b(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g (.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.) g(.)g(.)g(.)h(.)f(.)16 b Ff(30)1015 474 y Fd(rl)p 1057 474 V 14 w(complete)7 b Fe(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g (.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.) f(.)g(.)g(.)g(.)g(.)g(.)23 b Ff(35,)13 b(36)1015 532 y Fd(rl)p 1057 532 V 14 w(complete)p 1231 532 V 11 w(internal)6 b Fe(.)s(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.) g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)20 b Ff(35)1015 590 y Fd(rl)p 1057 590 V 14 w(completer)p 1250 590 V 10 w(quote)p 1361 590 V 13 w(character)o(s)e Fe(.)6 b(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.) g(.)22 b Ff(38)1015 648 y Fd(rl)p 1057 648 V 14 w(completer)p 1250 648 V 10 w(word)p 1341 648 V 13 w(break)p 1454 648 V 12 w(characters)14 b Fe(.)6 b(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g (.)g(.)18 b Ff(38)1015 706 y Fd(rl)p 1057 706 V 14 w(completio)o(n)p 1270 706 V 11 w(append)p 1401 706 V 12 w(character)e Fe(.)7 b(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.) 20 b Ff(39)1015 764 y Fd(rl)p 1057 764 V 14 w(completio)o(n)p 1270 764 V 11 w(entry)p 1381 764 V 12 w(function)14 b Fe(.)7 b(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)18 b Ff(35,)13 b(37)1015 823 y Fd(rl)p 1057 823 V 14 w(completio)o(n)p 1270 823 V 11 w(query)p 1381 823 V 12 w(items)j Fe(.)6 b(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g (.)g(.)h(.)f(.)g(.)18 b Ff(38)1015 881 y Fd(rl)p 1057 881 V 14 w(copy)p 1151 881 V 12 w(keymap)6 b Fe(.)t(.)g(.)g(.)g(.)g(.)g (.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.) g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)19 b Ff(25)1015 939 y Fd(rl)p 1057 939 V 14 w(copy)p 1151 939 V 12 w(text)8 b Fe(.)d(.)h(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g (.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.) g(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)21 b Ff(30)1015 997 y Fd(rl)p 1057 997 V 14 w(delete)p 1191 997 V 12 w(text)6 b Fe(.)t(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.) g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g (.)g(.)19 b Ff(30)1015 1055 y Fd(rl)p 1057 1055 V 14 w(directory)p 1250 1055 V 10 w(completion)p 1461 1055 V 11 w(hook)i Fe(.)6 b(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g (.)g(.)g(.)g(.)g(.)g(.)23 b Ff(40)1015 1113 y Fd(rl)p 1057 1113 V 14 w(discard)p 1211 1113 V 11 w(keymap)8 b Fe(.)e(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.) g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)24 b Ff(25)1015 1171 y Fd(rl)p 1057 1171 V 14 w(do)p 1111 1171 V 13 w(undo)9 b Fe(.)d(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g (.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.) g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)24 b Ff(29)1015 1229 y Fd(rl)p 1057 1229 V 14 w(done)17 b Fe(.)6 b(.)g(.)g(.)g(.)g(.)g (.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.) g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g (.)g(.)19 b Ff(23)1015 1287 y Fd(rl)p 1057 1287 V 14 w(end)f Fe(.)6 b(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.) g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g (.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)20 b Ff(22)1015 1346 y Fd(rl)p 1057 1346 V 14 w(end)p 1131 1346 V 13 w(undo)p 1224 1346 V 12 w(group)5 b Fe(.)t(.)h(.)g(.)g(.)g(.)g(.)h(.)f (.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.) g(.)g(.)g(.)g(.)g(.)g(.)g(.)18 b Ff(29)1015 1404 y Fd(rl)p 1057 1404 V 14 w(event)p 1171 1404 V 12 w(hook)i Fe(.)6 b(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)h (.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.) 22 b Ff(24)1015 1462 y Fd(rl)p 1057 1462 V 14 w(executing)p 1250 1462 V 10 w(keymap)f Fe(.)6 b(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f (.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.) g(.)23 b Ff(24)1015 1520 y Fd(rl)p 1057 1520 V 14 w(filename)p 1231 1520 V 11 w(completio)o(n)p 1441 1520 V 11 w(desired)17 b Fe(.)7 b(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)h (.)20 b Ff(39)1015 1578 y Fd(rl)p 1057 1578 V 14 w(filename)p 1231 1578 V 11 w(dequoting)p 1421 1578 V 11 w(function)c Fe(.)7 b(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.) 20 b Ff(37)1015 1636 y Fd(rl)p 1057 1636 V 14 w(filename)p 1231 1636 V 11 w(quote)p 1342 1636 V 12 w(characters)f Fe(.)6 b(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.) g(.)g(.)23 b Ff(38)1015 1694 y Fd(rl)p 1057 1694 V 14 w(filename)p 1231 1694 V 11 w(quoting)p 1382 1694 V 11 w(desired)e Fe(.)7 b(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.) g(.)g(.)g(.)h(.)f(.)g(.)24 b Ff(39)1015 1752 y Fd(rl)p 1057 1752 V 14 w(filename)p 1231 1752 V 11 w(quoting)p 1382 1752 V 11 w(function)c Fe(.)6 b(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.) g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)23 b Ff(37)1015 1810 y Fd(rl)p 1057 1810 V 14 w(forced)p 1191 1810 V 12 w(update)p 1323 1810 V 11 w(display)t Fe(.)t(.)6 b(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f (.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)17 b Ff(30)1015 1869 y Fd(rl)p 1057 1869 V 14 w(function)p 1231 1869 V 11 w(dumper)9 b Fe(.)t(.)d(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g (.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.) h(.)f(.)g(.)22 b Ff(28)1015 1927 y Fd(rl)p 1057 1927 V 14 w(function)p 1231 1927 V 11 w(of)p 1282 1927 V 13 w(keyseq)8 b Fe(.)t(.)e(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g (.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)21 b Ff(27)1015 1985 y Fd(rl)p 1057 1985 V 14 w(generic)p 1211 1985 V 11 w(bind)t Fe(.)5 b(.)h(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.) g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g (.)g(.)g(.)g(.)g(.)g(.)g(.)18 b Ff(26)1015 2043 y Fd(rl)p 1057 2043 V 14 w(get)p 1131 2043 V 13 w(keymap)7 b Fe(.)t(.)f(.)g(.)g (.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.) g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)20 b Ff(25)1015 2101 y Fd(rl)p 1057 2101 V 14 w(get)p 1131 2101 V 13 w(keymap)p 1264 2101 V 12 w(by)p 1316 2101 V 13 w(name)9 b Fe(.)d(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)g (.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)24 b Ff(26)1015 2159 y Fd(rl)p 1057 2159 V 14 w(get)p 1131 2159 V 13 w(keymap)p 1264 2159 V 12 w(name)s Fe(.)t(.)7 b(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g (.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)17 b Ff(26)1015 2217 y Fd(rl)p 1057 2217 V 14 w(getc)s Fe(.)5 b(.)h(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g (.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.) g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)17 b Ff(31)1015 2275 y Fd(rl)p 1057 2275 V 14 w(getc)p 1151 2275 V 12 w(function)e Fe(.)6 b(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.) h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)19 b Ff(24)1015 2334 y Fd(rl)p 1057 2334 V 14 w(ignore)p 1191 2334 V 12 w(completio)o(n)p 1402 2334 V 11 w(duplicate)o(s)d Fe(.)6 b(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)19 b Ff(39)1015 2392 y Fd(rl)p 1057 2392 V 14 w(ignore)p 1191 2392 V 12 w(some)p 1283 2392 V 12 w(completion)o(s)p 1514 2392 V 11 w(function)13 b Fe(.)6 b(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g (.)g(.)g(.)17 b Ff(39)1015 2450 y Fd(rl)p 1057 2450 V 14 w(inhibit)p 1211 2450 V 11 w(completion)g Fe(.)6 b(.)g(.)g(.)g(.)g (.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.) g(.)g(.)g(.)g(.)21 b Ff(39)1015 2508 y Fd(rl)p 1057 2508 V 14 w(initializ)o(e)t Fe(.)s(.)6 b(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g (.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.) g(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)17 b Ff(31)1015 2566 y Fd(rl)p 1057 2566 V 14 w(insert)p 1191 2566 V 12 w(completio)o(ns)t Fe(.)t(.)6 b(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.) g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)19 b Ff(36)1015 2624 y Fd(rl)p 1057 2624 V 14 w(insert)p 1191 2624 V 12 w(text)6 b Fe(.)t(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.) g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g (.)g(.)g(.)g(.)g(.)19 b Ff(30)p eop 55 56 bop 0 -58 a Fr(F)l(unction)16 b(and)f(V)l(ariable)i(Index)1337 b(55)0 183 y Fd(rl)p 42 183 12 2 v 13 w(instream)19 b Fe(.)6 b(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.) g(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g (.)g(.)g(.)g(.)22 b Ff(23)0 241 y Fd(rl)p 42 241 V 13 w(invoking)p 215 241 V 11 w(keyseqs)8 b Fe(.)t(.)e(.)g(.)g(.)g(.)g(.)g (.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.) g(.)g(.)g(.)g(.)g(.)21 b Ff(27)0 299 y Fd(rl)p 42 299 V 13 w(invoking)p 215 299 V 11 w(keyseqs)p 366 299 V 12 w(in)p 418 299 V 13 w(map)t Fe(.)5 b(.)i(.)f(.)g(.)g(.)g(.)g(.)g(.)g (.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)17 b Ff(27)0 358 y Fd(rl)p 42 358 V 13 w(kill)p 135 358 V 13 w(text)8 b Fe(.)d(.)h(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g (.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.) f(.)g(.)g(.)g(.)g(.)g(.)g(.)21 b Ff(30)0 416 y Fd(rl)p 42 416 V 13 w(library)p 195 416 V 12 w(version)g Fe(.)6 b(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g (.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)24 b Ff(23)0 474 y Fd(rl)p 42 474 V 13 w(line)p 135 474 V 13 w(buffer)18 b Fe(.)6 b(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g (.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.) g(.)21 b Ff(22)0 532 y Fd(rl)p 42 532 V 13 w(list)p 135 532 V 13 w(funmap)p 268 532 V 12 w(names)7 b Fe(.)f(.)g(.)g(.)g(.)g(.)g (.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.) g(.)g(.)g(.)g(.)g(.)22 b Ff(28)0 590 y Fd(rl)p 42 590 V 13 w(make)p 135 590 V 13 w(bare)p 228 590 V 13 w(keymap)8 b Fe(.)e(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.) g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)23 b Ff(25)0 648 y Fd(rl)p 42 648 V 13 w(make)p 135 648 V 13 w(keymap)6 b Fe(.)s(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.) g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g (.)g(.)g(.)g(.)h(.)f(.)18 b Ff(25)0 706 y Fd(rl)p 42 706 V 13 w(mark)f Fe(.)6 b(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g (.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.) g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)18 b Ff(22)0 764 y Fd(rl)p 42 764 V 13 w(message)8 b Fe(.)t(.)e(.)g(.)g(.) g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g (.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.) 21 b Ff(30)0 823 y Fd(rl)p 42 823 V 13 w(modifying)5 b Fe(.)s(.)h(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.) g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f (.)g(.)g(.)g(.)18 b Ff(29)0 881 y Fd(rl)p 42 881 V 13 w(named)p 155 881 V 13 w(function)7 b Fe(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.) g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g (.)h(.)f(.)g(.)g(.)g(.)g(.)23 b Ff(27)0 939 y Fd(rl)p 42 939 V 13 w(on)p 95 939 V 14 w(new)p 169 939 V 13 w(line)8 b Fe(.)d(.)h(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.) g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g (.)g(.)21 b Ff(30)0 997 y Fd(rl)p 42 997 V 13 w(outstream)c Fe(.)6 b(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.) g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)h (.)f(.)g(.)20 b Ff(23)0 1055 y Fd(rl)p 42 1055 V 13 w(parse)p 155 1055 V 13 w(and)p 228 1055 V 13 w(bind)5 b Fe(.)t(.)h(.)g(.)g(.)g (.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.) g(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)17 b Ff(27)0 1113 y Fd(rl)p 42 1113 V 13 w(pending)p 195 1113 V 12 w(input)f Fe(.)6 b(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g (.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.) g(.)18 b Ff(23)0 1171 y Fd(rl)p 42 1171 V 13 w(point)d Fe(.)6 b(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.) h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f (.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)17 b Ff(22)0 1229 y Fd(rl)p 42 1229 V 13 w(possible)p 215 1229 V 11 w(completions)7 b Fe(.)f(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.) h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)24 b Ff(36)0 1287 y Fd(rl)p 42 1287 V 13 w(prompt)e Fe(.)6 b(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.) g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g (.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)24 b Ff(23)0 1346 y Fd(rl)p 42 1346 V 13 w(read)p 135 1346 V 13 w(init)p 228 1346 V 13 w(file)5 b Fe(.)t(.)h(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g (.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.) g(.)h(.)f(.)g(.)17 b Ff(27)0 1404 y Fd(rl)p 42 1404 V 13 w(read)p 135 1404 V 13 w(key)8 b Fe(.)e(.)g(.)g(.)h(.)f(.)g(.)g(.)g (.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.) g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)22 b Ff(31)0 1462 y Fd(rl)p 42 1462 V 13 w(readline)p 215 1462 V 11 w(name)17 b Fe(.)6 b(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f (.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.) g(.)g(.)g(.)g(.)18 b Ff(23)0 1520 y Fd(rl)p 42 1520 V 13 w(redisplay)5 b Fe(.)s(.)h(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g (.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.) g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)18 b Ff(29)0 1578 y Fd(rl)p 42 1578 V 13 w(redisplay)p 235 1578 V 11 w(function)f Fe(.)6 b(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.) g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)20 b Ff(24)0 1636 y Fd(rl)p 42 1636 V 13 w(reset)p 155 1636 V 13 w(line)p 248 1636 V 12 w(state)9 b Fe(.)d(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.) g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f (.)g(.)23 b Ff(30)0 1694 y Fd(rl)p 42 1694 V 13 w(reset)p 155 1694 V 13 w(terminal)7 b Fe(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g (.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.) g(.)g(.)g(.)g(.)23 b Ff(31)0 1752 y Fd(rl)p 42 1752 V 13 w(set)p 115 1752 V 13 w(keymap)7 b Fe(.)t(.)f(.)g(.)g(.)g(.)g(.)g(.) g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f (.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)20 b Ff(26)0 1810 y Fd(rl)p 42 1810 V 13 w(special)p 195 1810 V 12 w(prefixes)f Fe(.)7 b(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g (.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)23 b Ff(38)0 1869 y Fd(rl)p 42 1869 V 13 w(startup)p 195 1869 V 12 w(hook)18 b Fe(.)6 b(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g (.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.) g(.)h(.)f(.)g(.)g(.)19 b Ff(23)0 1927 y Fd(rl)p 42 1927 V 13 w(stuff)p 155 1927 V 13 w(char)7 b Fe(.)t(.)f(.)g(.)g(.)g(.)g(.)g (.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.) f(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)20 b Ff(31)0 1985 y Fd(rl)p 42 1985 V 13 w(terminal)p 215 1985 V 11 w(name)d Fe(.)6 b(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g (.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.) g(.)g(.)g(.)18 b Ff(23)0 2043 y Fd(rl)p 42 2043 V 13 w(unbind)p 175 2043 V 12 w(key)7 b Fe(.)e(.)h(.)g(.)g(.)g(.)g(.)g(.)g (.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.) g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)20 b Ff(26)1015 183 y Fd(rl)p 1057 183 V 14 w(unbind)p 1191 183 V 12 w(key)p 1263 183 V 13 w(in)p 1316 183 V 13 w(map)t Fe(.)t(.)6 b(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)h (.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)17 b Ff(26)1015 291 y Fp(S)1015 358 y Fd(self-insert)9 b(\(a,)j(b,)g(A,)g(1,)g(!,)g (...\))6 b Fe(.)f(.)h(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g (.)g(.)h(.)19 b Ff(14)1015 416 y Fd(set-mark)10 b(\(C-@\))t Fe(.)t(.)c(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g (.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.) g(.)17 b Ff(17)1015 474 y(sho)o(w-all-if-am)o(bigu)q(ous)9 b Fe(.)g(.)d(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.) g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)22 b Ff(7)1015 532 y Fd(start-kbd-m)o(ac)o(ro)10 b(\(C-x)h(\(\))t Fe(.)5 b(.)h(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.) g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)17 b Ff(16)1015 640 y Fp(T)1015 706 y Fd(tab-insert)9 b(\(M-TAB\))e Fe(.)t(.)f(.)g(.)g(.)g (.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.) g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)20 b Ff(14)1015 764 y Fd(tilde-expan)o(d)10 b(\(M-~\))d Fe(.)t(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.) g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g (.)h(.)f(.)g(.)g(.)20 b Ff(17)1015 823 y Fd(to)p 1057 823 V 14 w(lower)8 b Fe(.)f(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g (.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.) g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)24 b Ff(32)1015 881 y Fd(to)p 1057 881 V 14 w(upper)8 b Fe(.)f(.)f(.)g(.)g (.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.) g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)g (.)g(.)g(.)24 b Ff(32)1015 939 y Fd(transpose-c)o(ha)o(rs)10 b(\(C-t\))s Fe(.)t(.)c(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g (.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)16 b Ff(14)1015 997 y Fd(transpose-w)o(or)o(ds)10 b(\(M-t\))s Fe(.)t(.)c(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g (.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)16 b Ff(14)1015 1105 y Fp(U)1015 1171 y Fd(undo)c(\(C-)p 1169 1171 V 13 w(,)g(C-x)g(C-u\))7 b Fe(.)t(.)f(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g (.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.) g(.)g(.)20 b Ff(17)1015 1229 y Fd(universal-a)o(rg)o(ume)o(nt)9 b(\(\))s Fe(.)d(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g (.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)16 b Ff(16)1015 1287 y Fd(unix-line-d)o(is)o(car)o(d)10 b(\(C-u\))f Fe(.)t(.)d(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g (.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)22 b Ff(15)1015 1346 y Fd(unix-word-r)o(ub)o(out)9 b(\(C-w\))g Fe(.)d(.)g(.)g(.)g(.)g (.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.) g(.)g(.)g(.)24 b Ff(15)1015 1404 y Fd(upcase-word)9 b(\(M-u\))f Fe(.)t(.)f(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)h (.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)22 b Ff(14)1015 1462 y Fd(uppercase)p 1197 1462 V 11 w(p)7 b Fe(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.) f(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g (.)g(.)g(.)g(.)g(.)20 b Ff(32)1015 1520 y Fd(username)p 1177 1520 V 12 w(completi)o(on)p 1388 1520 V 11 w(function)5 b Fe(.)s(.)h(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.) g(.)g(.)g(.)18 b Ff(36)1015 1628 y Fp(V)1015 1694 y Ff(visible-stats)6 b Fe(.)j(.)d(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.) g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g (.)g(.)g(.)g(.)g(.)g(.)h(.)18 b Ff(7)1015 1802 y Fp(Y)1015 1869 y Fd(yank)12 b(\(C-y\))d Fe(.)t(.)d(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.) g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g (.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)22 b Ff(15)1015 1927 y Fd(yank-last-a)o(rg)9 b(\(M-.,)i(M-)p 1436 1927 V 13 w(\))6 b Fe(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g (.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)19 b Ff(13)1015 1985 y Fd(yank-nth-ar)o(g)10 b(\(M-C-y\))t Fe(.)s(.)d(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)h (.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)18 b Ff(13)1015 2043 y Fd(yank-pop)10 b(\(M-y\))t Fe(.)t(.)c(.)g(.)g(.)g(.)g(.)g(.)g(.) g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)h (.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)17 b Ff(15)p eop 56 57 bop 0 -58 a Fr(56)1449 b(GNU)15 b(Readline)i(Library)p eop -1 58 bop 1937 -58 a Fr(i)0 183 y Fn(T)-7 b(able)15 b(of)g(Con)n(ten)n (ts)0 358 y Fp(1)67 b(Command)22 b(Line)i(Editing)18 b Fb(.)10 b(.)f(.)h(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)f(.)h(.)g(.)g(.)g (.)g(.)g(.)g(.)g(.)g(.)f(.)h(.)g(.)g(.)g(.)g(.)38 b Fp(1)149 435 y Fr(1.1)45 b(In)o(tro)q(duction)16 b(to)f(Line)h(Editing)d Fa(.)8 b(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.) f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h (.)f(.)27 b Fr(1)149 498 y(1.2)45 b(Readline)17 b(In)o(teraction)8 b Fa(.)g(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.) f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)f (.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)22 b Fr(1)299 560 y(1.2.1)44 b(Readline)17 b(Bare)e(Essen)o(tials)f Fa(.)7 b(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.) f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)27 b Fr(2)299 622 y(1.2.2)44 b(Readline)17 b(Mo)o(v)o(emen)o(t)d(Commands) 7 b Fa(.)g(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h (.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)21 b Fr(2)299 684 y(1.2.3)44 b(Readline)17 b(Killing)h(Commands)10 b Fa(.)e(.)f(.)h(.)f (.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.) h(.)f(.)h(.)f(.)h(.)f(.)25 b Fr(3)299 747 y(1.2.4)44 b(Readline)17 b(Argumen)o(ts)12 b Fa(.)7 b(.)h(.)g(.)f(.)h(.)f(.)h(.)f (.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.) f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)27 b Fr(4)299 809 y(1.2.5)44 b(Searc)o(hing)16 b(for)e(Commands)h(in)h(the)f(History)e Fa(.)7 b(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.) 27 b Fr(4)149 871 y(1.3)45 b(Readline)17 b(Init)g(File)e Fa(.)7 b(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.) f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f (.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)28 b Fr(5)299 934 y(1.3.1)44 b(Readline)17 b(Init)f(File)h(Syn)o(tax)6 b Fa(.)h(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.) f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)21 b Fr(5)299 996 y(1.3.2)44 b(Conditional)16 b(Init)g(Constructs)t Fa(.)7 b(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.) h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)19 b Fr(8)299 1058 y(1.3.3)44 b(Sample)16 b(Init)g(File)11 b Fa(.)e(.)e(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.) h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h (.)f(.)h(.)f(.)h(.)25 b Fr(9)149 1120 y(1.4)45 b(Bindable)17 b(Readline)h(Commands)6 b Fa(.)h(.)g(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.) h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f (.)h(.)g(.)f(.)h(.)f(.)21 b Fr(12)299 1183 y(1.4.1)44 b(Commands)14 b(F)l(or)h(Mo)o(ving)e Fa(.)7 b(.)h(.)f(.)h(.)f(.)h(.)f (.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.) f(.)h(.)f(.)h(.)f(.)h(.)28 b Fr(12)299 1245 y(1.4.2)44 b(Commands)14 b(F)l(or)h(Manipulating)i(The)e(History)9 b Fa(.)e(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)24 b Fr(12)299 1307 y(1.4.3)44 b(Commands)14 b(F)l(or)h(Changing)h(T)l (ext)e Fa(.)7 b(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f (.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)29 b Fr(13)299 1369 y(1.4.4)44 b(Killing)18 b(And)e(Y)l(anking)8 b Fa(.)g(.)g(.)f(.)h(.)f (.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.) f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)23 b Fr(14)299 1432 y(1.4.5)44 b(Sp)q(ecifying)17 b(Numeric)f(Argumen)o(ts)c Fa(.)c(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h (.)f(.)h(.)f(.)h(.)f(.)h(.)27 b Fr(15)299 1494 y(1.4.6)44 b(Letting)15 b(Readline)j(T)o(yp)q(e)d(F)l(or)g(Y)l(ou)9 b Fa(.)f(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.) f(.)h(.)f(.)h(.)f(.)h(.)f(.)25 b Fr(16)299 1556 y(1.4.7)44 b(Keyb)q(oard)15 b(Macros)5 b Fa(.)i(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.) f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h (.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)21 b Fr(16)299 1618 y(1.4.8)44 b(Some)15 b(Miscellaneous)i(Commands)6 b Fa(.)h(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.) h(.)f(.)h(.)f(.)h(.)f(.)h(.)21 b Fr(17)149 1681 y(1.5)45 b(Readline)17 b(vi)f(Mo)q(de)d Fa(.)8 b(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h (.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.) f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h (.)28 b Fr(18)0 1805 y Fp(2)67 b(Programming)23 b(with)g(GNU)f (Readline)d Fb(.)10 b(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)f(.)h(.)g(.)g(.)g (.)g(.)41 b Fp(19)149 1883 y Fr(2.1)k(Basic)16 b(Beha)o(vior)7 b Fa(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.) f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h (.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)22 b Fr(19)149 1945 y(2.2)45 b(Custom)14 b(F)l(unctions)7 b Fa(.)i(.)e(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.) h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h (.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)22 b Fr(21)299 2008 y(2.2.1)44 b(The)15 b(F)l(unction)h(T)o(yp)q(e)10 b Fa(.)e(.)g(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.) h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f (.)26 b Fr(21)299 2070 y(2.2.2)44 b(W)l(riting)16 b(a)e(New)i(F)l (unction)5 b Fa(.)k(.)e(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f (.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)21 b Fr(22)149 2132 y(2.3)45 b(Readline)17 b(V)l(ariables)f Fa(.)7 b(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.) f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f (.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)29 b Fr(22)149 2194 y(2.4)45 b(Readline)17 b(Con)o(v)o(enience)g(F)l(unctions)7 b Fa(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.) h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)22 b Fr(24)299 2257 y(2.4.1)44 b(Naming)15 b(a)g(F)l(unction)e Fa(.)7 b(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.) f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f (.)27 b Fr(24)299 2319 y(2.4.2)44 b(Selecting)17 b(a)e(Keymap)6 b Fa(.)h(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.) f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f (.)21 b Fr(25)299 2381 y(2.4.3)44 b(Binding)17 b(Keys)t Fa(.)8 b(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.) h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f (.)h(.)f(.)h(.)f(.)h(.)f(.)20 b Fr(26)299 2444 y(2.4.4)44 b(Asso)q(ciating)16 b(F)l(unction)g(Names)f(and)g(Bindings)8 b Fa(.)h(.)f(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)23 b Fr(27)299 2506 y(2.4.5)44 b(Allo)o(wing)16 b(Undoing)f Fa(.)7 b(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.) h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f (.)h(.)29 b Fr(28)299 2568 y(2.4.6)44 b(Redispla)o(y)10 b Fa(.)f(.)f(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.) f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f (.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)25 b Fr(29)299 2630 y(2.4.7)44 b(Mo)q(difying)16 b(T)l(ext)6 b Fa(.)i(.)f(.)h(.)f(.)h (.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.) h(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)21 b Fr(30)p eop -2 59 bop 0 -58 a Fr(ii)1471 b(GNU)15 b(Readline)i(Library)299 42 y(2.4.8)44 b(Utilit)o(y)16 b(F)l(unctions)e Fa(.)7 b(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h (.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.) f(.)28 b Fr(31)299 104 y(2.4.9)44 b(Alternate)15 b(In)o(terface)t Fa(.)8 b(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.) f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f (.)h(.)19 b Fr(32)299 166 y(2.4.10)43 b(An)16 b(Example)f Fa(.)7 b(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.) f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f (.)h(.)f(.)h(.)f(.)h(.)29 b Fr(33)149 228 y(2.5)45 b(Custom)14 b(Completers)f Fa(.)7 b(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h (.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.) h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)27 b Fr(34)299 291 y(2.5.1)44 b(Ho)o(w)14 b(Completing)i(W)l(orks)9 b Fa(.)f(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.) h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)25 b Fr(34)299 353 y(2.5.2)44 b(Completion)16 b(F)l(unctions)6 b Fa(.)i(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.) f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)21 b Fr(35)299 415 y(2.5.3)44 b(Completion)16 b(V)l(ariables)11 b Fa(.)e(.)e(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.) h(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)26 b Fr(37)299 477 y(2.5.4)44 b(A)15 b(Short)g(Completion)h(Example)t Fa(.)8 b(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.) f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)19 b Fr(40)0 602 y Fp(Concept)j(Index)11 b Fb(.)g(.)f(.)g(.)g(.)g(.)g(.)g(.)f(.)h(.)g(.) g(.)g(.)g(.)g(.)g(.)g(.)f(.)h(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)f(.)h (.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)f(.)h(.)g(.)g(.)34 b Fp(51)0 742 y(F)-6 b(unction)25 b(and)d(V)-6 b(ariable)24 b(Index)17 b Fb(.)10 b(.)g(.)g(.)g(.)g(.)f(.)h(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)f(.)h (.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)38 b Fp(53)p eop end userdict /end-hook known{end-hook}if