Annotation of embedaddon/readline/doc/readline.dvi, revision 1.1.1.1

1.1       misho       1: ÷&ƒ’À;è TeX output 2014.02.11:1657‹&ÿÿÿÿŸòŽ ƒ33 þšà‘GóJÂÖN ¼jcmbx12ëJGNU–ÆqReadline“LibraryŽŽ‘GŸ0‰&±ž¸Ÿšª’Ï€Úó6Kñ`y
                      2: ó3
                      3: cmr10áEdition–¦f6.3,“for“ó7ßê<x
                      4: ó3
                      5: cmtt10âReadline“Library“áV‘ÿeersion“6.3.ŽŸ
’&qûJan²!uary‘¦f2014Ž &Žõzó\ÂÖN ffcmbx12ë\Chet–ffRamey›þ¦f,“Case“W˜estern“ReservšŒÌe“Univ˜ersit˜yŽŸBrian–ffF›þ¦foŒÌx,“F˜ree“Soft•ŒÌw“are‘ffF˜oundationŽŸÌ̉&±ž¸ŽŒ‹*ŸòŽ ƒ33Ÿfh‘GáThis–í¡manš²!ual“describMÞes“the“GNU‘íŽReadline“Library“(v˜ersion“6.3,‘ÿp6“Jan˜uary“2014),‘ÿoa“libraryŽ¤
33‘Gwhicš²!h–µºaids“in“the“consistency“of“user‘µ»in˜terface“across“discrete“programs“whic˜h“pro˜vide“aŽ¡‘Gcommand–¦fline“in²!terface.Ž¤33‘GCop•²!yrigh“t‘±ž«‚cŽŽŽ‘¦fó?!",š
                      6: ó3
                      7: cmsy10ê
ŽŽŽŽ‘@&á1988{2014–¦fF›ÿeree“Soft•²!w“are–¦fF˜oundation,“Inc.Ž¡‘.ùœP•²!ermission›t#is‘t"gran“ted˜to›t"cop“y‘ÿe,‘±ddistribute˜and/or–t#moMÞdify˜this“doMÞcumen²!t˜under“theŽ¤
33‘.ùœterms–
                      8: ~of“the“GNU‘
                      9: WF›ÿeree“DoMÞcumen²!tation“License,‘)­V˜ersion“1.3“or“anš²!y“later“v˜ersionŽ¡‘.ùœpublished–^õbš²!y“the“F‘ÿeree“Soft˜w˜are“F‘ÿeoundation;‘;<with“no“In˜v‘ÿdDarian˜t“Sections,‘ÍnoŽ¡‘.ùœF›ÿeron•²!t-Co“v“er–xfT˜exts,‘™and›xeno“Bac•²!k-Co“v“er˜T‘ÿeexts.‘ΈA‘xZcop“y–xfof˜the“license˜is“includedŽ¡‘.ùœin–¦fthe“section“enš²!titled“\GNU“F‘ÿeree“DoMÞcumen˜tation“License".ŽŽŒ‹ÿÿÿÿ&ÝŸò’&À¥TáiŽŽŽ ƒ33 ý ÌÍ‘GóSÂÖN G®cmbx12ëST‘þaGable–z³of“Con–ÿuÂten“tsŽŽŸ)33‘Gë\1‘32Command–ffLine“Editing‘èà‘&32óc·ág£ffcmmi12ëc:Ž–Q‘&32:Ž“‘&32:Ž“‘&32:Ž“‘&32:Ž“‘&32:Ž“‘&32:Ž“‘&32:Ž“‘&32:Ž“‘&32:Ž“‘&32:Ž“‘&32:Ž“‘&32:Ž“‘&32:Ž“‘&32:Ž“‘&32:Ž“‘&32:Ž“‘&32:Ž“‘&32:Ž“‘&32:Ž“‘&32:Ž“‘&32:Ž“‘&32:Ž“‘&32:Ž‘ Gë\1Ž©ÿ‘!Gá1.1‘
                     10: ó5In²!troMÞduction–¦fto“Line“Editingø‘é˜ó> b>
                     11: ó3
                     12: cmmi10é:Ž–ÝÛ‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž‘›/á1Ž¤
33‘!G1.2‘
                     13: ó5Readline‘¦fIn²!teractionQl‘é˜é:Ž–ÝÛ‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž‘Õ£á1Ž¡‘0G1.2.1‘
                     14: ó5Readline–¦fBare“Essen²!tials-¾‘é˜é:Ž–ÝÛ‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž‘±õá1Ž¡‘0G1.2.2‘
                     15: ó5Readline›¦fMo•²!v“emen“t˜CommandsA*‘é˜é:Ž–ÝÛ‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž‘Åaá2Ž¡‘0G1.2.3‘
                     16: ó5Readline–¦fKilling“Commands‘&Ÿ”‘é˜é:Ž–ÝÛ‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž‘
                     17: #Ëá2Ž¡‘0G1.2.4‘
                     18: ó5Readline‘¦fArgumen²!ts‘²#‘é˜é:Ž–ÝÛ‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž‘     6[á3Ž¡‘0G1.2.5‘
                     19: ó5Searc²!hing–¦ffor“Commands“in“the“Historyh‘é˜é:Ž–ÝÛ‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž‘ìCá3Ž¡‘!G1.3‘
                     20: ó5Readline–¦fInit“File‘‘é˜é:Ž–ÝÛ‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž‘
                     21: ™Gá4Ž¡‘0G1.3.1‘
                     22: ó5Readline–¦fInit“File“Syn²!tax‘&‘é˜é:Ž–ÝÛ‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž‘      £Uá4Ž¡‘0G1.3.2‘
                     23: ó5Conditional–¦fInit“Constructs‘j‘é˜é:Ž–ÝÛ‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž‘
                     24: î>á11Ž¡‘0G1.3.3‘
                     25: ó5Sample–¦fInit“File‘½Ö‘é˜é:Ž–ÝÛ‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž‘  B
á11Ž¡‘!G1.4‘
                     26: ó5Bindable–¦fReadline“Commands‘®Ê‘é˜é:Ž–ÝÛ‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž‘        3&á14Ž¡‘0G1.4.1‘
                     27: ó5Commands–¦fF‘ÿeor“Mo²!ving=P‘é˜é:Ž–ÝÛ‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž‘Á‡á14Ž¡‘0G1.4.2‘
                     28: ó5Commands–¦fF‘ÿeor“Manipulating“The“History‘&hú‘é˜é:Ž–ÝÛ‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž‘ í1á14Ž¡‘0G1.4.3‘
                     29: ó5Commands–¦fF›ÿeor“Changing“T˜ext‘&鈑é˜é:Ž–ÝÛ‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž‘
                     30: m¿á16Ž¡‘0G1.4.4‘
                     31: ó5Killing–¦fAnd“Y‘ÿeanking‘¼‘é˜é:Ž–ÝÛ‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž‘
                     32: Œôá17Ž¡‘0G1.4.5‘
                     33: ó5SpMÞecifying–¦fNumeric“Argumen²!ts‘&]^‘é˜é:Ž–ÝÛ‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž‘        á•á18Ž¡‘0G1.4.6‘
                     34: ó5Letting–¦fReadline“T²!ypMÞe“F›ÿeor“Y˜ou‘¹Ú‘é˜é:Ž–ÝÛ‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž‘  >á18Ž¡‘0G1.4.7‘
                     35: ó5KeybMÞoard‘¦fMacros‘&Ò?‘é˜é:Ž–ÝÛ‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž‘
                     36: Vvá19Ž¡‘0G1.4.8‘
                     37: ó5Some–¦fMiscellaneous“Commands‘f‘é˜é:Ž–ÝÛ‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž‘
                     38: êSá19Ž¡‘!G1.5‘
                     39: ó5Readline–¦fvi“MoMÞde‘&³¸‘é˜é:Ž–ÝÛ‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž‘
                     40: 7ïá21ŽŸ33‘Gë\2‘32Programming–ffwith“GNU“Readline‘ÙÊ‘&32ëc:Ž–Q‘&32:Ž“‘&32:Ž“‘&32:Ž“‘&32:Ž“‘&32:Ž“‘&32:Ž“‘&32:Ž“‘&32:Ž“‘&32:Ž“‘&32:Ž‘‘1ë\22Ž¦‘!Gá2.1‘
                     41: ó5Basic‘¦fBeha²!vior‘Ñì‘é˜é:Ž–ÝÛ‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž‘ V$á22Ž¡‘!G2.2‘
                     42: ó5Custom‘¦fF‘ÿeunctionsE¿‘é˜é:Ž–ÝÛ‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž‘Éöá23Ž¡‘0G2.2.1‘
                     43: ó5Readline‘¦fT²!ypMÞedefsN‘é˜é:Ž–ÝÛ‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž‘ž…á24Ž¡‘0G2.2.2‘
                     44: ó5W›ÿeriting–¦fa“New“F˜unction‘àÔ‘é˜é:Ž–ÝÛ‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž‘       eá24Ž¡‘!G2.3‘
                     45: ó5Readline‘¦fV‘ÿeariables‘&Îø‘é˜é:Ž–ÝÛ‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž‘
                     46: S0á25Ž¡‘!G2.4‘
                     47: ó5Readline›¦fCon•²!v“enience˜F‘ÿeunctions‘®È‘é˜é:Ž–ÝÛ‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž‘    3á30Ž¡‘0G2.4.1‘
                     48: ó5Naming–¦fa“F‘ÿeunction‘–â‘é˜é:Ž–ÝÛ‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž‘     á30Ž¡‘0G2.4.2‘
                     49: ó5Selecting–¦fa“Keymap‘&“ñ‘é˜é:Ž–ÝÛ‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž‘
                     50: (á30Ž¡‘0G2.4.3‘
                     51: ó5Binding‘¦fKeys‘;d‘é˜é:Ž–ÝÛ‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž‘
                     52: ¿›á31Ž¡‘0G2.4.4‘
                     53: ó5AssoMÞciating–¦fF‘ÿeunction“Names“and“Bindings‘&&Ë‘é˜é:Ž–ÝÛ‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž‘    «á33Ž¡‘0G2.4.5‘
                     54: ó5Allo²!wing‘¦fUndoing‘&F‘é˜é:Ž–ÝÛ‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž‘       ÊOá34Ž¡‘0G2.4.6‘
                     55: ó5Redispla²!y‘&Ÿ°‘é˜é:Ž–ÝÛ‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž‘
                     56: #çá35Ž¡‘0G2.4.7‘
                     57: ó5MoMÞdifying‘¦fT‘ÿeext‘V¢‘é˜é:Ž–ÝÛ‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž‘
                     58: ÚÙá36Ž¡‘0G2.4.8‘
                     59: ó5Character‘¦fInput‘¢•‘é˜é:Ž–ÝÛ‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž‘   &Ìá36Ž¡‘0G2.4.9‘
                     60: ó5T‘ÿeerminal‘¦fManagemen²!t
                     61: µ‘é˜é:Ž–ÝÛ‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž‘Žìá37Ž¡‘0G2.4.10‘
                     62: ó5Utilit²!y‘¦fF‘ÿeunctions‘Üø‘é˜é:Ž–ÝÛ‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž‘  a/á38Ž¡‘0G2.4.11‘
                     63: ó5Miscellaneous‘¦fF‘ÿeunctions‘ÍZ‘é˜é:Ž–ÝÛ‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž‘       Q’á39Ž¡‘0G2.4.12‘
                     64: ó5Alternate‘¦fIn²!terface‘&\‘é˜é:Ž–ÝÛ‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž‘    ›“á40Ž¡‘0G2.4.13‘
                     65: ó5A–¦fReadline“Example‘&áÌ‘é˜é:Ž–ÝÛ‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž‘
                     66: fá40ŽŽŒ‹ÿÿÿþ¿Ÿò’&½š©áiiŽŽŽ ƒ33 ý†ÌÍ‘0G2.4.14‘
                     67: ó5Alternate–¦fIn²!terface“ExampleA+‘é˜é:Ž–ÝÛ‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž‘Åbá42Ž¤
33‘!G2.5‘
                     68: ó5Readline–¦fSignal“Handling.W‘é˜é:Ž–ÝÛ‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž‘²á43Ž¡‘!G2.6‘
                     69: ó5Custom‘¦fCompleters‘&>è‘é˜é:Ž–ÝÛ‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž‘ Ãá46Ž¡‘0G2.6.1‘
                     70: ó5Ho²!w–¦fCompleting“W‘ÿeorks‘&Ö‘é˜é:Ž–ÝÛ‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž‘
                     71: ZSá46Ž¡‘0G2.6.2‘
                     72: ó5Completion‘¦fF‘ÿeunctions‘&Q¾‘é˜é:Ž–ÝÛ‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž‘  Õöá47Ž¡‘0G2.6.3‘
                     73: ó5Completion‘¦fV‘ÿeariables)Ü‘é˜é:Ž–ÝÛ‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž‘®á48Ž¡‘0G2.6.4‘
                     74: ó5A–¦fShort“Completion“Example‘?/‘é˜é:Ž–ÝÛ‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž‘
                     75: Ãgá52ŽŸ33‘Gë\Apps3endix‘ffAŽ‘|(·GNU–ffF‘þ¦free“Dos3cumenŒÌtation“LicenseŽŸ‘4‹w‘&32ëc:Ž–Q‘&32:Ž“‘&32:Ž“‘&32:Ž“‘&32:Ž“‘&32:Ž“‘&32:Ž“‘&32:Ž“‘&32:Ž“‘&32:Ž“‘&32:Ž“‘&32:Ž“‘&32:Ž“‘&32:Ž“‘&32:Ž“‘&32:Ž“‘&32:Ž“‘&32:Ž“‘&32:Ž“‘&32:Ž“‘&32:Ž“‘&32:Ž“‘&32:Ž“‘&32:Ž“‘&32:Ž“‘&32:Ž“‘&32:Ž“‘&32:Ž“‘&32:Ž“‘&32:Ž“‘&32:Ž“‘&32:Ž“‘&32:Ž“‘&32:Ž“‘&32:Ž“‘&32:Ž“‘&32:Ž“‘&32:Ž“‘&32:Ž“‘&32:Ž“‘&32:Ž“‘&32:Ž“‘&32:Ž“‘&32:Ž“‘&32:Ž“‘&32:Ž“‘&32:Ž“‘&32:Ž‘
Ë3ë\61Ž¤ ÿ‘GConcept‘ffIndex‘ü6‘&32ëc:Ž–Q‘&32:Ž“‘&32:Ž“‘&32:Ž“‘&32:Ž“‘&32:Ž“‘&32:Ž“‘&32:Ž“‘&32:Ž“‘&32:Ž“‘&32:Ž“‘&32:Ž“‘&32:Ž“‘&32:Ž“‘&32:Ž“‘&32:Ž“‘&32:Ž“‘&32:Ž“‘&32:Ž“‘&32:Ž“‘&32:Ž“‘&32:Ž“‘&32:Ž“‘&32:Ž“‘&32:Ž“‘&32:Ž“‘&32:Ž“‘&32:Ž“‘&32:Ž“‘&32:Ž“‘&32:Ž“‘&32:Ž“‘&32:Ž“‘&32:Ž“‘&32:Ž“‘&32:Ž“‘&32:Ž‘³ë\69Ž¡‘GF›þ¦function–ffand“V˜ariable“Index‘=‘&32ëc:Ž–Q‘&32:Ž“‘&32:Ž“‘&32:Ž“‘&32:Ž“‘&32:Ž“‘&32:Ž“‘&32:Ž“‘&32:Ž“‘&32:Ž“‘&32:Ž“‘&32:Ž“‘&32:Ž“‘&32:Ž“‘&32:Ž“‘&32:Ž“‘&32:Ž“‘&32:Ž“‘&32:Ž“‘&32:Ž“‘&32:Ž‘
ôƒë\70ŽŽŒ‹&=»Ÿò‘GáChapter–¦f1:‘ÝÝCommand“Line“Editing’&MH1ŽŽŽ ƒ33 ý ÌÍ‘GëS1‘    ¸QCommand–z³Line“EditingŽŽŸ§‘GáThis–¦fcš²!hapter“describMÞes“the“basic“features“of“the“ó<Œ-ø
                     76: ó3
                     77: cmcsc10çgnu“ácommand“line“editing“in˜terface.ŽŸñÈ‘Gë\1.1‘™InŒÌtros3duction–f@to“Line“EditingŽŽŸ33‘GáThe–¦ffolloš²!wing“paragraphs“describMÞe“the“notation“used“to“represen˜t“k˜eystrok˜es.Ž©,‘!GThe–Yútext›Yùó=ßê<x
                     78: ó3
                     79: cmsltt10èC-k“áis“read˜as“`Con²!trol-K'‘YËand“describMÞes“the˜c²!haracter“proMÞduced“when˜the“âkŽ¤
33‘Gákš²!ey–¦fis“pressed“while“the“Con˜trol“k˜ey“is“depressed.ŽŸ,‘!GThe–Ôztext›Ô{èM-k“áis“read˜as“`Meta-K'‘Ôoand“describMÞes“the˜c²!haracter“proMÞduced“when˜the“MetaŽ¡‘Gk•²!ey›ø°(if‘ø¯y“ou˜ha“v“e˜one)–ø¯is˜depressed,‘
Band“the˜âk˜ák²!ey“is˜pressed.‘ÔºThe“Meta˜k²!ey˜is“labMÞeled˜âALTŽ¡‘Gáon›Ž~man•²!y‘Ž}k“eybMÞoards.‘ÕåOn˜k“eybMÞoards‘Ž}with˜t“w“o‘Ž}k“eys˜labMÞeled˜âALT–Ž}á(usually˜to“either˜side“of˜theŽ¡‘Gspace–™Èbar),‘œOthe“âALT›™Éáon“the˜left“side˜is“generally“set˜to“w²!ork˜as“a˜Meta“k²!ey‘ÿe.‘Ù©The“âALT˜ák²!ey“onŽ¡‘Gthe–CÃrighš²!t“ma˜y“also“bMÞe“congured“to“w˜ork“as“a“Meta“k˜ey“or“ma˜y“bMÞe“congured“as“some“otherŽ¡‘GmošMÞdier,–¦fsuc²!h“as“a“Comp˜ose“kš²!ey“for“t˜yping“accen˜ted“c˜haracters.Ž¦‘!GIf–î"yš²!ou“do“not“ha˜v˜e“a“Meta“or“âALT“ák˜ey‘ÿe,‘üor“another“k˜ey“w˜orking“as“a“Meta“k˜ey‘ÿe,‘üthe“iden˜ticalŽ¡‘Gk•²!eystrok“e–jåcan›jæbMÞe“generated˜bš²!y“t˜yping›jæâESC“ó9ý':
                     80: ó3
                     81: cmti10ärstá,‘vÌand˜then“t²!yping˜âká.‘ÊEither“proMÞcess˜is“kno²!wnŽ¡‘Gas–¦fó:p®0J
                     82: ó3
                     83: cmsl10åmetafying‘–~áthe“âk“ák²!ey‘ÿe.Ž¦‘!GThe–Ùàtext›ÙßèM-C-k“áis˜read“as˜`Meta-Con²!trol-k'“and˜describMÞes“the˜c²!haracter“proMÞduced˜b²!yŽ¡‘Gåmetafying‘–~èC-ká.Ž¦‘!GIn›Tóaddition,‘€–sev•²!eral‘Tòk“eys˜ha“v“e˜their˜o“wn˜names.‘éƒSpMÞecically‘ÿe,–€–âDELá,“âESCá,‘€•âLFDá,“âSPCá,“âRETá,Ž¡‘Gand–$CâTAB“áall“stand›$Dfor“themselv²!es“when“seen“in“this˜text,‘Cºor“in“an“init˜le“(see“Section“1.3Ž¡‘G[Readline–úInit“File],‘”vpage›û4).‘ÖcIf“y•²!our˜k“eybMÞoard›úlac“ks˜a˜âLFD˜ák“ey‘ÿe,‘”vt“yping‘ûâC-j˜áwill˜proMÞduce˜theŽ¡‘Gdesired–¦fcš²!haracter.‘ÝÝThe“âRET“ák˜ey“ma˜y“bšMÞe“lab˜eled“âReturn“áor“âEnter“áon“some“k²!eyb˜oards.ŽŸñÈ‘Gë\1.2‘™Readline‘f@InŒÌteractionŽŽŸ33‘GáOften–é3during“an“in•²!teractiv“e›é3session‘é2y“ou˜t“ypMÞe˜in˜a˜long˜line˜of˜text,‘ùåonly˜to˜notice˜that˜theŽ¡‘Grst–ãÒw²!ord“on›ãÓthe“line“is“misspMÞelled.‘–"The“Readline“library˜givš²!es“y˜ou“a“set‘ãÓof“commands“forŽ¡‘Gmanipulating–“¡the›“ text“as“y•²!ou˜t“ypMÞe–“¡it“in,‘—ballo•²!wing˜y“ou–“¡to“just˜x“yš²!our“t˜ypMÞo,‘—band‘“ not“forcingŽ¡‘Gyš²!ou–`ùto“ret˜ypMÞe“the‘`øma‘›»jorit˜y“of“the“line.‘ƹUsing‘`øthese“editing“commands,‘nÛy˜ou“mo˜v˜e“the“cursorŽ¡‘Gto–the“place›that“needs“correction,‘;Zand“delete“or“insert˜the“text“of“the“corrections.‘CZThen,Ž¡‘Gwhen–ý£yš²!ou“are“satised“with‘ý¤the“line,‘cy˜ou‘ý¤simply“press“âRETá.‘¥œY‘ÿeou“do“not“ha˜v˜e‘ý¤to“bMÞe“at“the“endŽ¡‘Gof–ÿÕthe“line“to›ÿÔpress“âRETá;‘,the˜en²!tire“line“is“accepted“regardless“of“the˜loMÞcation“of“the“cursorŽ¡‘Gwithin–¦fthe“line.ŽŸñÈ‘GóeÂÖN 
#×cmbx12ëe1.2.1‘d(Readline–íMBare“Essen–átialsŽŽŸ³3‘GáIn–Üorder›Üto“en•²!ter˜c“haracters‘Üin“to˜the‘Üline,‘ézsimply˜t“ypšMÞe–Üthem.‘~ÚThe“t•²!yp˜ed‘Üc“haracter‘Üapp˜earsŽ¡‘Gwhere–æNthe“cursor›æOw²!as,‘öHand“then“the“cursor˜mo•²!v“es–æNone“space“to˜the“righ•²!t.‘•If˜y“ou›æNmist“ypMÞe˜aŽ¡‘Gc•²!haracter,›¦fy“ou˜can˜use˜y“our˜erase˜c“haracter˜to˜bac“k˜up˜and˜delete˜the˜mist“ypMÞed˜c“haracter.Ž¦‘!GSometimes›³ly•²!ou‘³mma“y˜mist“ypMÞe‘³ma˜c“haracter,‘¶®and˜not–³mnotice˜the˜error“un•²!til˜y“ou‘³mha“v“e˜t“ypMÞedŽ¡‘Gsevš²!eral–wøother“c˜haracters.‘ÎcIn“that“case,‘By˜ou“can“t˜ypMÞe“èC-b“áto“mo˜v˜e“the“cursor‘wùto“the“left,‘AandŽ¡‘Gthen–¦fcorrect“yš²!our“mistak˜e.‘ÝÝAfterw˜ards,“y˜ou“can“mo˜v˜e“the“cursor“to“the“righ˜t“with“èC-fá.Ž¦‘!GWhen–é"y²!ou›é!add“text“in“the˜middle“of“a˜line,‘ùÑy²!ou“will˜notice“that“c²!haracters“to˜the“righ²!tŽ¡‘Gof–q”the“cursor“are“`pushed‘q“o•²!v“er'–q”to“makš²!e“roMÞom“for“the“text“that“y˜ou‘q“ha˜v˜e“inserted.‘ÌBLik˜ewise,Ž¡‘Gwhen–‚ùy²!ou›‚ødelete“text“bMÞehind˜the“cursor,‘ºc²!haracters˜to“the“righ²!t˜of“the“cursor˜are“`pulledŽŽŒ‹KUŸò‘GáChapter–¦f1:‘ÝÝCommand“Line“Editing’&MH2ŽŽŽ ƒ33 ý ÌÍ‘Gbacš²!k'–¹Õto“ll“in“the“blank“space“created“b˜y“the“remo˜v‘ÿdDal“of“the‘¹Ötext.‘A‘¹™list“of“the“bare“essen˜tialsŽ©
33‘Gfor–¦fediting“the“text“of“an“input“line“follo²!ws.Ž¤y‘GèC-b‘(‘õáMo•²!v“e›¦fbac“k˜one˜c“haracter.Ž¡‘GèC-f‘(‘õáMo•²!v“e›¦fforw“ard˜one˜c“haracter.Ž¡‘GâDEL–¦fáor“âBackspaceŽ¦‘Kâ:áDelete–¦fthe“c²!haracter“to“the“left“of“the“cursor.Ž¡‘GèC-d‘(‘õáDelete–¦fthe“c²!haracter“underneath“the“cursor.ŽŸy‘GPrin•²!ting‘¦fc“haractersŽŽ¦‘Kâ:Insert–¦fthe“cš²!haracter“in˜to“the“line“at“the“cursor.Ž¡‘GèC-_–¦fáor“èC-x“C-uŽ¦‘Kâ:áUndo–jthe“last“editing“command.‘÷éY‘ÿeou“can‘iundo“all“the“w•²!a“y›jbac“k˜to˜an˜empt“yŽ¦‘Kâ:line.Ž¡‘G(DepMÞending–Œron“yš²!our“conguration,‘‘£the‘ŒsâBackspace“ák˜ey“bMÞe“set“to“delete‘Œsthe“c˜haracter“to“theŽ¦‘Gleft–Z‘of“the“cursor“and“the‘Z’âDEL“ákš²!ey“set“to“delete“the“c˜haracter“underneath“the“cursor,‘‡œlik˜eŽ¦‘GèC-dá,–¦frather“than“the“c²!haracter“to“the“left“of“the“cursor.)ŽŸEÒ‘Gëe1.2.2‘d(Readline›íMMo•–áv“emen“t˜CommandsŽŽŸ³3‘GáThe›S©abMÞo•²!v“e–S¨table˜describMÞes“the˜most“basic˜k•²!eystrok“es‘S¨that˜y“ou˜need–S¨in˜order“to˜do“editing˜ofŽ¦‘Gthe–öinput‘öline.‘ÌÎF‘ÿeor“yš²!our“con˜v˜enience,‘ ôman˜y“other“commands‘öha˜v˜e“bMÞeen“added‘öin“additionŽ¦‘Gto›2XèC-bá,–UUèC-fá,“èC-dá,‘UTand–2YâDELá.‘´Here˜are“some˜commands˜for“mo²!ving˜more˜rapidly“abMÞout˜theŽ¦‘Gline.Ž¡‘GèC-a‘(‘õáMo•²!v“e–¦fto“the“start“of“the“line.Ž¡‘GèC-e‘(‘õáMo•²!v“e–¦fto“the“end“of“the“line.Ž¡‘GèM-f‘(‘õáMo•²!v“e›¦fforw“ard˜a˜w“ord,˜where˜a˜w“ord˜is˜compMÞosed˜of˜letters˜and˜digits.Ž¡‘GèM-b‘(‘õáMo•²!v“e›¦fbac“kw“ard˜a˜w“ord.ŽŸy‘GèC-l‘(‘õáClear–¦fthe“screen,“reprinš²!ting“the“curren˜t“line“at“the“top.Ž¡‘!GNotice–ôKhoš²!w‘ôLèC-f“ámo˜v˜es“forw˜ard“a‘ôLc˜haracter,‘êwhile“èM-f“ámo˜v˜es‘ôLforw˜ard“a“w˜ord.‘¢It“is‘ôLa“loMÞoseŽ¦‘Gcon•²!v“en“tion–—†that“conš²!trol“k˜eystrok˜es“opMÞerate“on‘—…c˜haracters“while“meta“k˜eystrok˜es“opMÞerate“onŽ¦‘Gw²!ords.ŽŸEÒ‘Gëe1.2.3‘d(Readline–íMKilling“CommandsŽŽŸ³3‘GåKilling‘ àátext–0Èmeans›0Çto“delete“the“text˜from“the“line,‘HNbut“to˜sa•²!v“e–0Èit“a•²!w“a“y–0Èfor˜later“use,‘HNusuallyŽ¦‘Gb•²!y›<&åy“anking‘,á(re-inserting)˜it˜bac“k‘<in“to˜the˜line.‘ºe(`Cut'˜and˜`paste'‘<are˜more˜recen“t‘<jargon˜forŽ¦‘G`kill'–¦fand“`y²!ank'.)Ž¤Ö‘!GIf–¡°the“description›¡¯for“a“command“sa²!ys“that˜it“`kills'“text,‘¢¡then“y²!ou“can“bMÞe˜sure“that“y²!ouŽ¦‘Gcan–¦fget“the“text“bacš²!k“in“a“dieren˜t“(or“the“same)“place“later.Ž¡‘!GWhen–Ê›y²!ou›Êœuse“a“kill˜command,‘öthe˜text“is“sa•²!v“ed˜in–Ê›a“åkill-ringá.‘”šAnš²!y“n˜um˜bMÞer‘Êœof“consecutiv˜eŽ¦‘Gkills›¸$sa•²!v“e–¸#all˜of˜the˜killed“text˜together,‘¼“so˜that˜when“y•²!ou˜y“ank˜it˜bac“k,‘¼“y“ou‘¸#get˜it˜all.‘TheŽ¦‘Gkill–âèring›âçis“not˜line“spMÞecic;‘&(the“text“that˜y²!ou“killed˜on“a“previously˜t²!ypMÞed“line˜is“a²!v‘ÿdDailableŽ¦‘Gto–¦fbMÞe“y•²!ank“ed›¦fbac“k˜later,˜when˜y“ou˜are˜t“yping˜another˜line.Ž¡‘!GHere–¦fis“the“list“of“commands“for“killing“text.ŽŽŒ‹\»Ÿò‘GáChapter–¦f1:‘ÝÝCommand“Line“Editing’&MH3ŽŽŽ ƒ33 ý ÌÍ‘GèC-k‘(‘õáKill–¦fthe“text“from“the“curren²!t“cursor“pMÞosition“to“the“end“of“the“line.Ž©€‘GèM-d‘(‘õáKill–)šfrom“the›)™cursor“to“the“end“of“the˜currenš²!t“w˜ord,‘Bor,‘Bif“bMÞet˜w˜een“w˜ords,‘Bto“theŽ¤
33‘Kâ:end–¦fof“the“next“wš²!ord.‘ÝÝW‘ÿeord“bMÞoundaries“are“the“same“as“those“used“b˜y“èM-fá.ŽŸ€&‘GèM-DEL‘¡áKill–«ofrom“the›«ncursor“the“start“of˜the“currenš²!t“w˜ord,–¬±or,“if‘«obMÞet˜w˜een‘«nw˜ords,“to‘«otheŽ¡‘Kâ:start–of“the›previous“w²!ord.‘ÁáW‘ÿeord˜bMÞoundaries“are“the“same“as˜those“used“b²!yŽ¡‘Kâ:èM-bá.Ž¦‘GèC-w‘(‘õáKill–4Ufrom›4Vthe“cursor˜to“the˜previous“whitespace.‘‡«This˜is“dieren²!t˜than“èM-DELŽ¡‘Kâ:ábšMÞecause–¦fthe“w²!ord“b˜oundaries“dier.ŽŸ¦g‘!GHere–ýáis“hoš²!w“to“åy˜ank‘§äáthe“text“bac˜k“in˜to“the“line.‘äNY‘ÿeanking‘ýàmeans“to“cop˜y“the“most-Ž¡‘Grecen²!tly-killed–¦ftext“from“the“kill“buer.ŽŸ¦h‘GèC-y‘(‘õáY‘ÿeank–¦fthe“most“recenš²!tly“killed“text“bac˜k“in˜to“the“buer“at“the“cursor.Ž¦‘GèM-y‘(‘õáRotate–'!the“kill-ring,‘GPand“y²!ank“the“new“top.‘`Y‘ÿeou“can‘'"only“do“this“if“the“priorŽ¡‘Kâ:command–¦fis“èC-y“áor“èM-yá.Ž©LÍ‘Gëe1.2.4‘d(Readline‘íMArgumen–átsŽŽŸ³3‘GáY‘ÿeou–±‰can›±ˆpass“n•²!umeric˜argumen“ts–±‰to“Readline˜commands.‘ÿESometimes“the˜argumen²!t“actsŽ¡‘Gas–Ѥa“repMÞeat›Ñ£coun²!t,‘sother“times“it“is˜the“äsign‘¨¯áof“the˜argumenš²!t“that“is“signican˜t.‘_–If“y˜ouŽ¡‘Gpass–a‘negativš²!e“argumen˜t“to“a‘command“whic˜h“normally“acts‘in“a“forw˜ard“direction,‘ìthatŽ¡‘Gcommand–=Üwill“act“in“a›=Ûbac•²!kw“ard–=Üdirection.‘¤?F‘ÿeor“example,‘c¹to“kill“text˜bac²!k“to“the“start“ofŽ¡‘Gthe–¦fline,“yš²!ou“migh˜t“t˜ypMÞe“`âM--“C-ká'.ŽŸ€&‘!GThe›bOgeneral‘bPw•²!a“y˜to‘bPpass˜n“umeric‘bPargumen“ts˜to–bPa˜command“is˜to“t²!ypMÞe˜meta“digits˜bMÞeforeŽ¡‘Gthe–´command.‘RIf‘´Žthe“rst“`digit'“tš²!ypMÞed“is“a“min˜us“sign–´Ž(`â-á'),‘¸then“the–´sign“of“the“argumen˜tŽ¡‘Gwill––ŠbMÞe‘–‰negativš²!e.‘®HOnce“y˜ou“ha˜v˜e‘–‰t˜ypMÞed“one“meta›–‰digit“to“get˜the“argumenš²!t“started,‘Ò’y˜ouŽ¡‘Gcan–vòt²!ypMÞe›vñthe“remainder“of“the˜digits,‘€pand“then˜the“command.‘ÎF‘ÿeor˜example,‘€pto“giv²!e˜the“èC-dŽ¡‘Gácommand–~Gan‘~Hargumenš²!t“of“10,‘´@y˜ou“could‘~Ht˜ypMÞe“`âM-1–¦f0“C-dá',‘´?whic˜h›~Hwill–~Gdelete“the˜next“tenŽ¡‘Gc²!haracters–¦fon“the“input“line.Ž¦‘Gëe1.2.5‘d(Searc–áhing–íMfor“Commands“in“the“HistoryŽŽŸ³3‘GáReadline–ŽÆpro²!vides›ŽÇcommands“for˜searc²!hing“through˜the“command˜history“for˜lines“con²!tainingŽ¡‘Ga–¦fspMÞecied“string.‘ÝÝThere“are“t•²!w“o›¦fsearc“h˜moMÞdes:‘ÝÝåincremen“tal‘¸áand˜ånon-incremen“talá.ŽŸ€&‘!GIncremen•²!tal›¸searc“hes‘·b•MÞegin˜b“efore–·the˜user“has˜nished˜t²!yping“the˜searc²!h“string.‘­£As˜eac²!hŽ¡‘Gcš²!haracter–@|of“the“searc˜h“string“is“t˜ypMÞed,‘gReadline“displa˜ys“the“next“en˜try“from“the“historyŽ¡‘Gmatcš²!hing–â+the“string“t˜ypMÞed‘â*so“far.‘œtAn“incremen˜tal“searc˜h“requires“only‘â*as“man˜y“c˜haracters“asŽ¡‘Gneeded–tõto›tônd“the˜desired“history˜en²!try–ÿe.‘ÍbT“o˜searc•²!h‘tõbac“kw“ard˜in–tõthe˜history“for˜a“particularŽ¡‘Gstring,‘0t•²!ypMÞe›‰cèC-rá.‘Ô1T“yping˜èC-s˜ásearc“hes‘‰bforw“ard˜through˜the–‰bhistory‘ÿe.‘Ô2The“c•²!haracters˜presen“tŽ¡‘Gin–^the“v›ÿdDalue‘_of“the“âisearch-terminators“áv˜ariable“are“used‘_to“terminate“an“incremen²!talŽ¡‘Gsearc²!h.‘tIf–Østhat“v›ÿdDariable“has“not“bMÞeen“assigned“a“v˜alue,‘$öthe“âESC“áand“èC-J“ác²!haracters“willŽ¡‘Gterminate–Can“incremenš²!tal“searc˜h.‘ 3uèC-g“áwill“abMÞort“an“incremen˜tal‘Dsearc˜h“and“restore“theŽ¡‘Goriginal–xÓline.‘άWhen“the“searcš²!h“is“terminated,‘ñthe“history“en˜try“con˜taining“the“searc˜h“stringŽ¡‘GbMÞecomes–¦fthe“curren²!t“line.ŽŸ€‘!GT‘ÿeo–¹¾nd‘¹½other“matcš²!hing“en˜tries“in‘¹½the“history“list,‘¾“t˜ypMÞe“èC-r“áor‘¹½èC-s“áas“appropriate.‘äThisŽ¡‘Gwill›#“searc•²!h‘#”bac“kw“ard˜or˜forw“ard–#”in˜the˜history“for˜the˜next“en•²!try˜matc“hing˜the‘#”searc“h˜stringŽ¡‘Gt•²!ypMÞed‘ˆ5so›ˆ4far.‘ƒIAn“y˜other‘ˆ5k“ey˜sequence–ˆ5bMÞound˜to“a˜Readline“command˜will“terminate˜theŽŽŒ‹iSŸò‘GáChapter–¦f1:‘ÝÝCommand“Line“Editing’&MH4ŽŽŽ ƒ33 ý ÌÍ‘Gsearcš²!h–and“execute“that–žcommand.‘«DF‘ÿeor“instance,‘,øa–âRET“áwill“terminate‘žthe“searc˜h“and“acceptŽ¤
33‘Gthe–…©line,‘Œ6thereb²!y“executing“the›…ªcommand“from“the˜history“list.‘ÒóA‘…¡mo•²!v“emen“t˜command‘…©willŽ¡‘Gterminate–¦fthe“searcš²!h,“mak˜e“the“last“line“found“the“curren˜t“line,“and“bMÞegin“editing.ŽŸ‡‘!GReadline–.”rememš²!bMÞers“the‘.•last“incremen˜tal“searc˜h“string.‘vhIf“t˜w˜o“èC-rás‘.•are“t˜ypMÞed“withoutŽ¡‘Gan•²!y›aèin“terv“ening˜c“haracters‘aédening˜a˜new˜searc“h‘aéstring,‘Èan“y˜remem“bMÞered‘aésearc“h˜string˜isŽ¡‘Gused.Ž©‡‘!GNon-incremen•²!tal›–searc“hes˜read˜the˜en“tire˜searc“h‘—string˜bMÞefore˜starting˜to˜searc“h˜forŽ¡‘Gmatcš²!hing–Àhistory‘¿lines.‘        FêThe“searc˜h“string‘¿ma˜y“bMÞe“t˜ypMÞed‘¿b˜y“the“user›¿or“bMÞe“part˜of“theŽ¡‘Gcon•²!ten“ts–¦fof“the“curren²!t“line.ŽŸ§Ô‘Gë\1.3‘™Readline–f@Init“FileŽŽŸ33‘GáAlthough–AÉthe“Readline“library›AÈcomes“with“a“set“of“Emacs-lik•²!e˜k“eybindings–AÉinstalled“b²!yŽ¡‘Gdefault,‘it–øKis“pMÞossible“to“use“a“dierenš²!t‘øJset“of“k˜eybindings.‘£ÔAn˜y“user“can“customize“programsŽ¡‘Gthat–Tªuse“Readline“bš²!y“putting“commands“in“an“åinputrc‘þ®ále,‘À;con˜v˜en˜tionally“in“his“homeŽ¡‘Gdirectory‘ÿe.‘–(The–ÏEname“of“this“le“is“takš²!en“from“the“v‘ÿdDalue“of“the“en˜vironmen˜t“v‘ÿdDariable“âINPUTRCá.Ž¡‘GIf–ž®that“v‘ÿdDariable“is“unset,‘ :the“default“is“â~/.inputrcá.‘ÛJIf“that“le‘ž¯došMÞes“not“exist“or“cannot“b˜eŽ¡‘Gread,–¦fthe“ultimate“default“is“â/etc/inputrcá.Ž¦‘!GWhen–Ž\a›Ž[program“whic²!h˜uses“the˜Readline“library˜starts“up,‘“*the“init˜le“is˜read,‘“*and“theŽ¡‘Gk²!ey–¦fbindings“are“set.ŽŸ‡‘!GIn–8âaddition,‘NÉthe›8áâC-x‘¦fC-r“ácommand˜re-reads“this“init˜le,‘NÉth²!us“incorpMÞorating˜anš²!y“c˜hangesŽ¡‘Gthat–¦fyš²!ou“migh˜t“ha˜v˜e“made“to“it.ŽŸ§Ó‘Gëe1.3.1‘d(Readline–íMInit“File“Syn–átaxŽŽŸ³3‘GáThere–íoare“only›ína“few“basic“constructs“allo•²!w“ed–íoin˜the“Readline“init“le.‘²÷Blank“lines“areŽ¡‘Gignored.‘­zLines–ëšbšMÞeginning“with“a“`â#á'“are‘ë›commen²!ts.‘­yLines“b˜eginning“with‘ë›a“`â$á'“indicateŽ¡‘Gconditional–ù0constructs“(see“Section“1.3.2“[Conditional‘ù1Init“Constructs],‘Mâpage“11).‘Ö;OtherŽ¡‘Glines–¦fdenote“v‘ÿdDariable“settings“and“k²!ey“bindings.ŽŸÛ‘GV‘ÿeariable‘¦fSettingsŽ¡‘Kâ:Y‘ÿeou–Ú½can“mošMÞdify“the“run-time“b˜ehaš²!vior“of‘Ú¼Readline“b˜y“altering“the“v‘ÿdDalues“ofŽ¡‘Kâ:v‘ÿdDariables–din›eReadline“using“the“âset˜ácommand“within“the˜init“le.‘ØThe“syn²!taxŽ¡‘Kâ:is‘¦fsimple:Ž¦‘hÊâset–¿ªèvariable“valueŽ©‡‘Kâ:áHere,–XÞfor›E}example,“is˜ho•²!w‘E|to˜c“hange–E|from˜the“default˜Emacs-likš²!e“k˜ey‘E}binding“toŽ¡‘Kâ:use–¦fâvi“áline“editing“commands:Ž¦‘hÊâset–¿ªediting-mode“viŽŸ‡‘Kâ:áV‘ÿeariable–4Ynames›4Xand“v‘ÿdDalues,–WÕwhere˜appropriate,“are–4Yrecognized˜without“regardŽ¡‘Kâ:to–¦fcase.‘ÝÝUnrecognized“v‘ÿdDariable“names“are“ignored.Ž¦‘Kâ:BoMÞolean–&©v‘ÿdDariables›&¨(those“that˜can“bMÞe“set˜to“on˜or“o‘Ú)“are˜set“to“on˜if“the˜v‘ÿdDalue“isŽ¡‘Kâ:n•²!ull›éJor‘éIempt“y‘ÿe,‘åon˜á(case-insensitiv“e),‘or˜1.‘žÓAn“y˜other˜v‘ÿdDalue–éIresults˜in“the˜v‘ÿdDariableŽ¡‘Kâ:bMÞeing–¦fset“to“o.Ž¦‘Kâ:A–¦fgreat“deal“of“run-time“bMÞehaš²!vior“is“c˜hangeable“with“the“follo˜wing“v‘ÿdDariables.ŽŸÛ‘Kâ:âbell-styleŽ¡’…³-áCon²!trols–Fwhat›FhappMÞens“when˜Readline“w•²!an“ts˜to–Fring˜the“termi-Ž¡’…³-nal–xzbMÞell.‘TIf“set›xyto“`ânoneá',‘¬þReadline“nev²!er˜rings“the˜bMÞell.‘TIf˜set“toŽŽŒ‹zŸò‘GáChapter–¦f1:‘ÝÝCommand“Line“Editing’&MH5ŽŽŽ ƒ33 ý ÌÍ’…³-`âvisibleá',‘
                     84: dReadline–öeuses›öda“visible˜bMÞell“if˜one“is˜a²!v‘ÿdDailable.‘ÍÙIf˜set“toŽ¤
33’…³-`âaudibleá'›Ù(the–Údefault),‘¶5Readline“attempts˜to˜ring“the˜terminal'sŽ¡’…³-bMÞell.Ž©‘Kâ:âbind-tty-special-charsŽ¡’…³-áIf–pset“to›p`âoná',‘âjReadline“attempts“to“bind˜the“conš²!trol“c˜haractersŽ¡’…³-treated–A—spMÞecially“bš²!y‘A˜the“k˜ernel's“terminal“driv˜er‘A˜to“their“ReadlineŽ¡’…³-equiv‘ÿdDalen²!ts.Ž¦‘Kâ:âcolored-statsŽ¡’…³-áIf–0*set›0+to“`âoná',‘GÐReadline“displa²!ys˜pMÞossible“completions˜using“dieren²!tŽ¡’…³-colors–´•to›´”indicate“their˜le“t²!ypMÞe.‘iThe˜color“denitions˜are“tak²!enŽ¡’…³-from–õ;the›õ<v‘ÿdDalue“of“the“âLS_COLORS˜áen•²!vironmen“t–õ;v‘ÿdDariable.‘¢ÏThe“defaultŽ¡’…³-is‘¦f`âoffá'.ŽŸ‘Kâ:âcomment-beginŽ¡’…³-áThe–}3string›}4to“insert˜at“the˜bMÞeginning“of˜the“line˜when“theŽ¡’…³-âinsert-comment–¦fácommand“is“executed.‘ÝÝThe“default“v‘ÿdDalue“is“â"#"á.Ž¦‘Kâ:âcompletion-display-widthŽ¡’…³-áThe›ÿn•²!um“bMÞer˜of–ÿscreen˜columns˜used˜to“displa•²!y˜pMÞossible˜matc“hesŽ¡’…³-when–{»pMÞerforming›{ºcompletion.‘ϤThe“v‘ÿdDalue“is˜ignored“if“it“is˜less“thanŽ¡’…³-0–%8or“greater“than›%9the“terminal“screen“width.‘²ÎA‘%v‘ÿdDalue˜of“0“will“causeŽ¡’…³-matcš²!hes–¦fto“bMÞe“displa˜y˜ed“one“pMÞer“line.‘ÝÝThe“default“v‘ÿdDalue“is“-1.Ž¦‘Kâ:âcompletion-ignore-caseŽ¡’…³-áIf–IÓset›IÔto“`âoná',‘\WReadline˜pMÞerforms“lename“matc²!hing˜and“completionŽ¡’…³-in–¦fa“case-insensitiv²!e“fashion.‘ÝÝThe“default“v‘ÿdDalue“is“`âoffá'.Ž¦‘Kâ:âcompletion-map-caseŽ¡’…³-áIf–©ûset‘©úto“`âoná',›Üvand“åcompletion-ignore-case‘G&áis“enabled,˜Readline“treatsŽ¡’…³-hš²!yphens–´e(`â-á')“and“underscores“(`â_á')“as“equiv‘ÿdDalen˜t“when“pMÞerformingŽ¡’…³-case-insensitivš²!e–¦flename“matc˜hing“and“completion.ŽŸ‘Kâ:âcompletion-prefix-display-lengthŽ¡’…³-áThe–ÂŒlength›‹in“c²!haracters˜of“the˜common“prex˜of“a˜list“of˜pMÞossibleŽ¡’…³-completions–Sthat›Ris“displa•²!y“ed–Swithout“moMÞdication.‘ÖWhen“set˜to“aŽ¡’…³-v‘ÿdDalue–ègreater›éthan“zero,‘0hcommon˜prexes“longer˜than“this˜v‘ÿdDalue“areŽ¡’…³-replaced–¦fwith“an“ellipsis“when“displa²!ying“pMÞossible“completions.Ž¦‘Kâ:âcompletion-query-itemsŽ¡’…³-áThe›%Ðn•²!um“b•MÞer‘%Ïof˜p“ossible˜completions–%Ïthat˜determines˜when“the˜userŽ¡’…³-is–†Hask²!ed›†Gwhether“the“list˜of“pMÞossibilities“should˜bMÞe“displa•²!y“ed.‘Ó(If‘†HtheŽ¡’…³-n•²!um“b•MÞer›9of‘9p“ossible˜completions–9is˜greater“than˜this“v‘ÿdDalue,‘NãReadlineŽ¡’…³-will–.ƒask“the“user“whether“or“not“he“wishes“to“view“them;‘Vzotherwise,Ž¡’…³-they–íÖare›í×simply“listed.‘ XThis“v‘ÿdDariable˜m²!ust“bMÞe˜set“to“an˜in²!teger“v‘ÿdDalueŽ¡’…³-greater–úäthan›úãor“equal“to˜0.‘¤²A‘ú¸negativ²!e“v‘ÿdDalue“means˜Readline“shouldŽ¡’…³-nev²!er–¦fask.‘ÝÝThe“default“limit“is“â100á.Ž¦‘Kâ:âconvert-metaŽ¡’…³-áIf–¦set“to›¦ž`âoná',‘ÙÅReadline“will˜con•²!v“ert›¦c“haracters˜with˜the‘¦žeigh“th˜bit˜setŽ¡’…³-to–Óùan“çasci>Ki“ákš²!ey“sequence“b˜y“stripping“the“eigh˜th“bit“and“prexingŽŽŒ‹ˆlŸò‘GáChapter–¦f1:‘ÝÝCommand“Line“Editing’&MH6ŽŽŽ ƒ33 ý ÌÍ’…³-an–íÎâESC“ác•²!haracter,‘¹con“v“erting–íÎthem“to‘íÍa“meta-prexed“k²!ey“sequence.Ž¤
33’…³-The–¦fdefault“v‘ÿdDalue“is“`âoná'.Ž©™š‘Kâ:âdisable-completionŽ¡’…³-áIf–gset“to–g`âOná',‘—?Readline“will–ginhibit“w²!ord“completion.‘èCompletionŽ¡’…³-cš²!haracters–!Ÿwill“bMÞe‘!žinserted“in˜to“the“line“as“if‘!žthey“had“bšMÞeen“mapp˜edŽ¡’…³-to–¦fâself-insertá.‘ÝÝThe“default“is“`âoffá'.ŽŸ™›‘Kâ:âediting-modeŽ¡’…³-áThe–rÖâediting-mode“áv‘ÿdDariable“conš²!trols“whic˜h‘r×default“set“of“k˜ey“bind-Ž¡’…³-ings›?is–>used.‘§&By“default,‘#Readline˜starts˜up“in˜Emacs“editing˜moMÞde,Ž¡’…³-where›~«the‘~ªk•²!eystrok“es˜are–~ªmost˜similar˜to“Emacs.‘ПThis“v‘ÿdDariable˜canŽ¡’…³-bMÞe–¦fset“to“either“`âemacsá'“or“`âviá'.Ž¦‘Kâ:âecho-control-charactersŽ¡’…³-áWhen–¡îset›¡ïto“`âoná',‘¢Óon˜opMÞerating“systems˜that“indicate˜they“suppMÞortŽ¡’…³-it,‘Òýreadline‘Êecš²!hoMÞes–Êa“c˜haracter›ÊcorrespMÞonding“to“a˜signal“generatedŽ¡’…³-from–¦fthe“k²!eybMÞoard.‘ÝÝThe“default“is“`âoná'.Ž¦‘Kâ:âenable-keypadŽ¡’…³-áWhen–Ìïset“to“`âoná',‘ømReadline“will“try‘Ìîto“enable“the“application“k²!eypadŽ¡’…³-when–1Ûit›1Üis“called.‘·Some“systems“need˜this“to˜enable“the˜arroš²!w“k˜eys.Ž¡’…³-The–¦fdefault“is“`âoffá'.ŽŸ™›‘Kâ:âenable-meta-keyŽ¡’…³-áWhen–ÇJset›ÇIto“`âoná',‘‚Readline˜will“try“to˜enable“an²!y˜meta“moMÞdierŽ¡’…³-k²!ey–Ÿthe› terminal“claims“to˜suppMÞort“when“it“is˜called.‘û‰On“man²!yŽ¡’…³-terminals,‘^=the–9ymeta“kš²!ey“is“used“to“send“eigh˜t-bit“c˜haracters.‘—TheŽ¡’…³-default–¦fis“`âoná'.Ž¦‘Kâ:âexpand-tildeŽ¡’…³-áIf–Pset“to›P`âoná',‘a[tilde“expansion“is“pMÞerformed˜when“Readline“attemptsŽ¡’…³-w²!ord–¦fcompletion.‘ÝÝThe“default“is“`âoffá'.Ž¦‘Kâ:âhistory-preserve-pointŽ¡’…³-áIf–œset“to›`âoná',‘Zéthe“history“coMÞde“attempts“to“place˜the“pMÞoin²!t“(theŽ¡’…³-curren²!t–;kcursor›;jpMÞosition)“at˜the“same“loMÞcation˜on“eac²!h˜history“lineŽ¡’…³-retriev²!ed–^Éwith“âprevious-history“áor‘^Êânext-historyá.‘The“defaultŽ¡’…³-is‘¦f`âoffá'.ŽŸ™›‘Kâ:âhistory-sizeŽ¡’…³-áSet–°ÿthe“maxim•²!um‘°þn“um“bMÞer–°ÿof“history“enš²!tries“sa˜v˜ed‘°þin“the“historyŽ¡’…³-list.‘óIf–mset“to“zero,‘(oanš²!y“existing“history“en˜tries“are‘ndeleted“and“noŽ¡’…³-new–Ïqenš²!tries“are–Ïpsa˜v˜ed.‘XþIf“set–Ïqto“a“v‘ÿdDalue‘Ïpless“than“zero,‘Ù³the“n˜um˜bMÞerŽ¡’…³-of–ª»history›ª¼en²!tries“is˜not“limited.‘êÝBy˜default,‘«Ñthe“n•²!um“bMÞer˜of‘ª»historyŽ¡’…³-en²!tries–¦fis“not“limited.Ž¦‘Kâ:âhorizontal-scroll-modeŽ¡’…³-áThis–NËv‘ÿdDariable›NÌcan“bMÞe“set“to˜either“`âoná'“or“`âoffá'.‘×
Setting“it˜to“`âoná'Ž¡’…³-means–$jthat“the“text“of“the‘$ilines“bMÞeing“edited“will“scroll“horizon²!tallyŽ¡’…³-on–ÎÁa›ÎÂsingle“screen“line˜when“they“are“longer˜than“the“width˜of“theŽ¡’…³-screen,›:Åinstead–Ýof“wrapping‘Þon²!to“a“new“screen“line.‘±By“default,˜thisŽ¡’…³-v‘ÿdDariable–¦fis“set“to“`âoffá'.ŽŽŒ‹”ñŸò‘GáChapter–¦f1:‘ÝÝCommand“Line“Editing’&MH7ŽŽŽ ƒ33 ý ÌÍ‘Kâ:âinput-metaŽ¤
33’…³-áIf–¾Ìset›¾Ëto“`âoná',‘ÄåReadline˜will“enable˜eigh²!t-bit“input˜(it“will˜not“clearŽ¡’…³-the–Ã"eighš²!th“bit“in‘Ã!the“c˜haracters“it“reads),‘
                     85: Pregardless“of“what“theŽ¡’…³-terminal–ÌÖclaims“it“can“suppMÞort.‘Q.The“default“v‘ÿdDalue“is“`âoffá'.‘Q-TheŽ¡’…³-name–¦fâmeta-flag“áis“a“synon²!ym“for“this“v‘ÿdDariable.Ž©Ûo‘Kâ:âisearch-terminatorsŽ¡’…³-áThe–5Ñstring›5Òof“c²!haracters˜that“should“terminate˜an“incremen²!talŽ¡’…³-searcš²!h–ú|without“subsequen˜tly“executing“the“c˜haracter“as“a“commandŽ¡’…³-(see–Z±Section“1.2.5“[Searc²!hing],‘ÇÃpage“3).‘   ú¿If“this“v‘ÿdDariable“has“notŽ¡’…³-bMÞeen–Bggivš²!en“a“v‘ÿdDalue,‘igthe“c˜haracters‘BfâESC“áand“èC-J“áwill“terminate“anŽ¡’…³-incremen•²!tal‘¦fsearc“h.ŽŸÛn‘Kâ:âkeymap‘R÷áSets–©5Readline's›©6idea“of˜the“currenš²!t“k˜eymap‘©6for“k˜ey‘©6binding“com-Ž¡’…³-mands.‘   ä™Acceptable–SPâkeymap›SOánames“are˜âemacsá,‘¾‰âemacs-standardá,Ž¡’…³-âemacs-metaá,–0âemacs-ctlxá,“âviá,‘0âvi-moveá,“âvi-commandá,“andŽ¡’…³-âvi-insertá.‘öÚâvi–®ºáis“equiv›ÿdDalen²!t“to‘®»âvi-commandá;‘2äâemacs“áis“equiv˜alen²!tŽ¡’…³-to–Ó¯âemacs-standardá.›e·The“default“v‘ÿdDalue“is“âemacsá.˜The“v‘ÿdDalue“of“theŽ¡’…³-âediting-mode–¦fáv‘ÿdDariable“also“aects“the“default“k²!eymap.Ž¦‘Kâ:âkeyseq-timeoutŽ¡’…³-áSpMÞecies–„the“duration“Readline“will“wš²!ait‘…for“a“c˜haracter“when“read-Ž¡’…³-ing–—Ían‘—Ìamš²!biguous“k˜ey“sequence›—Ì(one“that˜can“form“a˜complete“k²!eyŽ¡’…³-sequence–ý-using›ý.the“input˜read“so“far,‘ßor˜can“tak²!e˜additional“inputŽ¡’…³-to–óKcomplete“a“longer“kš²!ey“sequence).‘ÄŒIf“no“input“is“receiv˜ed“withinŽ¡’…³-the–*átimeout,‘‹ÿReadline›*àwill“use“the“shorter“but˜complete“k²!ey“se-Ž¡’…³-quence.‘«éReadline›‹uses–Šthis“v‘ÿdDalue“to˜determine“whether“or˜not“inputŽ¡’…³-is–­«a²!v‘ÿdDailable›­ªon“the˜curren²!t“input˜source“(ârl_instream˜áb²!y“default).Ž¡’…³-The–    ˜v›ÿdDalue“is“spMÞecied“in“milliseconds,‘(ôso“a“v˜alue“of“1000“means“thatŽ¡’…³-Readline–®Äwill›®Ãw²!ait“one˜second“for“additional˜input.‘‹RIf“this˜v‘ÿdDariable“isŽ¡’…³-set–Yàto›Yßa“v‘ÿdDalue˜less“than˜or“equal“to˜zero,‘i.or˜to“a˜non-n²!umeric“v‘ÿdDalue,Ž¡’…³-Readline–ƒûwill‘ƒúwš²!ait“un˜til“another“k˜ey›ƒúis“pressed“to“decide˜whicš²!h“k˜eyŽ¡’…³-sequence–¦fto“complete.‘ÝÝThe“default“v‘ÿdDalue“is“â500á.Ž¦‘Kâ:âmark-directoriesŽ¡’…³-áIf––¿set“to›–¾`âoná',‘ÒÕcompleted“directory“names“ha•²!v“e˜a––¿slash“appMÞended.Ž¡’…³-The–¦fdefault“is“`âoná'.Ž¦‘Kâ:âmark-modified-linesŽ¡’…³-áThis–N”v‘ÿdDariable,‘xŸwhen“set“to“`âoná',‘x causes“Readline“to“displa²!y“an“as-Ž¡’…³-terisk–š(`â*á')›™at“the“start˜of“history˜lines“whicš²!h“ha˜v˜e‘™bšMÞeen“mo˜died.Ž¡’…³-This–¦fv‘ÿdDariable“is“`âoffá'“b²!y“default.ŽŸÛn‘Kâ:âmark-symlinked-directoriesŽ¡’…³-áIf–$Ôset›$Óto“`âoná',‘mcompleted“names“whic²!h˜are“sym²!bMÞolic˜links“toŽ¡’…³-directories›\Ëha•²!v“e˜a˜slash˜appMÞended‘\Ì(sub‘›»ject˜to˜the˜v‘ÿdDalue˜ofŽ¡’…³-âmark-directoriesá).‘ÝÝThe–¦fdefault“is“`âoffá'.Ž¦‘Kâ:âmatch-hidden-filesŽ¡’…³-áThis–«sv‘ÿdDariable,›Ý£when“set“to“`âoná',˜causes“Readline“to‘«rmatc²!h“les“whoseŽ¡’…³-names–MÍbšMÞegin“with“a“`â.á'“(hidden“les)“when“p˜erforming“lenameŽŽŒ‹¡Ÿò‘GáChapter–¦f1:‘ÝÝCommand“Line“Editing’&MH8ŽŽŽ ƒ33 ý ÌÍ’…³-completion.‘ÎþIf–öÆset“to–öÇ`âoffá',‘JÝthe“leading–öÆ`â.á'“mš²!ust“bMÞe‘öÇsupplied“b˜yŽ¤
33’…³-the–Luser›Min“the“lename“to˜bMÞe“completed.‘9This“v‘ÿdDariable“is˜`âoná'“b²!yŽ¡’…³-default.Ž©™š‘Kâ:âmenu-complete-display-prefixŽ¡’…³-áIf–ßset“to‘Þ`âoná',‘ýmenš²!u“completion“displa˜ys“the“common‘Þprex“of“theŽ¡’…³-list–ƒXof›ƒYpMÞossible“completions˜(whicš²!h“ma˜y‘ƒYbMÞe“empt˜y)‘ƒYbMÞefore“cyclingŽ¡’…³-through–¦fthe“list.‘ÝÝThe“default“is“`âoffá'.ŽŸ™›‘Kâ:âoutput-metaŽ¡’…³-áIf–Aset“to“`âoná',‘gªReadline“will“displaš²!y“c˜haracters“with“the“eigh˜th“bitŽ¡’…³-set–`!directly“rather“than“as“a‘`"meta-prexed“escapMÞe“sequence.‘TheŽ¡’…³-default–¦fis“`âoffá'.Ž¦‘Kâ:âpage-completionsŽ¡’…³-áIf–ôset“to‘ó`âoná',‘,×Readline“uses“an“inš²!ternal“âmoreá-lik˜e‘ópager“to“displa˜yŽ¡’…³-a–ã¹screenful“of“pMÞossible‘ã¸completions“at“a“time.‘•ÕThis“v‘ÿdDariable“is“`âoná'Ž¡’…³-b²!y‘¦fdefault.Ž¦‘Kâ:âprint-completions-horizontallyŽ¡’…³-áIf–àset›àto“`âoná',‘»Readline˜will“displa²!y“completions“with˜matc²!hes“sortedŽ¡’…³-horizonš²!tally–8Ôin“alphabMÞetical“order,‘orather“than“do˜wn“the“screen.Ž¡’…³-The–¦fdefault“is“`âoffá'.ŽŸ™›‘Kâ:ârevert-all-at-newlineŽ¡’…³-áIf–Œêset“to“`âoná',‘’Readline“will“undo“all‘Œëc²!hanges“to“history“lines“bMÞeforeŽ¡’…³-returning–qXwhen›qYâaccept-line“áis˜executed.‘Ì-By˜default,‘{õhistory“linesŽ¡’…³-ma²!y–¦bšMÞe“mo˜died“and“retain“individual‘¥undo“lists“across“calls“toŽ¡’…³-âreadlineá.‘ÝÝThe–¦fdefault“is“`âoffá'.Ž¦‘Kâ:âshow-all-if-ambiguousŽ¡’…³-áThis–™]alters“the“default“bMÞeha²!vior“of“the‘™\completion“functions.‘Ù…If“setŽ¡’…³-to–L`âoná',‘^.wš²!ords“whic˜h‘L ha˜v˜e“more“than›L one“pMÞossible˜completion“causeŽ¡’…³-the–­matc²!hes“to“bšMÞe“listed“immediately‘­instead“of“ringing“the“b˜ell.Ž¡’…³-The–¦fdefault“v‘ÿdDalue“is“`âoffá'.Ž¦‘Kâ:âshow-all-if-unmodifiedŽ¡’…³-áThis–¤‰alters“the›¤Šdefault“bMÞeha²!vior“of“the“completion˜functions“in“aŽ¡’…³-fashion–€similar“to“åsho•²!w-all-if-am“biguousá.‘«If–€set“to“`âoná',‘-®wš²!ords“whic˜hŽ¡’…³-ha•²!v“e–²Ömore“than“one“pšMÞossible‘²×completion“without“an²!y“p˜ossible“par-Ž¡’…³-tial–Ãcompletion›Ä(the“pMÞossible˜completions“don't“share˜a“commonŽ¡’…³-prex)–¢cause›¢the“matc²!hes“to˜bMÞe“listed“immediately“instead˜of“ring-Ž¡’…³-ing–¦fthe“bMÞell.‘ÝÝThe“default“v‘ÿdDalue“is“`âoffá'.ŽŸ™›‘Kâ:âshow-mode-in-promptŽ¡’…³-áIf–KÂset“to›KÃ`âoná',‘uadd“a“c²!haracter˜to“the“bMÞeginning“of˜the“prompt“in-Ž¡’…³-dicating–Çthe›Èediting“moMÞde:‘¢ emacs˜(`â@á'),‘a_vi˜command“(`â:á'),‘a`or“viŽ¡’…³-insertion–¦f(`â+á').‘ÝÝThe“default“v‘ÿdDalue“is“`âoffá'.Ž¦‘Kâ:âskip-completed-textŽ¡’…³-áIf–ñjset“to“`âoná',‘+this‘ñialters“the“default“completion“bMÞeha²!vior“when“in-Ž¡’…³-serting–}=a‘}<single“matcš²!h“in˜to“the‘}<line.‘Ð%It's“only“activ˜e‘}<when“pMÞerform-Ž¡’…³-ing–'écompletion›'èin“the˜middle“of˜a“w²!ord.‘bdIf“enabled,‘HHreadline“doMÞesŽŽŒ‹     ®*Ÿò‘GáChapter–¦f1:‘ÝÝCommand“Line“Editing’&MH9ŽŽŽ ƒ33 ý ÌÍ’…³-not–à.insert›à-c²!haracters“from˜the“completion˜that“matc•²!h˜c“haractersŽ¤
33’…³-after–lpMÞoinš²!t“in“the‘lžw˜ord“bšMÞeing“completed,‘ž*so‘lžp˜ortions“of“the“w²!ordŽ¡’…³-follo²!wing–Íÿthe›Íþcursor“are˜not“duplicated.‘T¦F‘ÿeor“instance,‘×äif“this˜is“en-Ž¡’…³-abled,‘*0attempting–Ü¢completion“when“the“cursor“is“after“the“`âeá'“inŽ¡’…³-`âMakefileá'–‚will›‚result“in˜`âMakefileá'“rather˜than“`âMakefilefileá',Ž¡’…³-assuming–<there“is“a“single“pMÞossible‘<completion.‘žÀThe“default“v‘ÿdDalueŽ¡’…³-is‘¦f`âoffá'.ŽŸÛo‘Kâ:âvisible-statsŽ¡’…³-áIf–Ôvset“to“`âoná',‘ßúa“cš²!haracter“denoting‘Ôwa“le's“t˜ypšMÞe“is“app˜ended“to“theŽ¡’…³-lename–¦fwhen“listing“pMÞossible“completions.‘ÝÝThe“default“is“`âoffá'.ŽŸÛn‘GKey‘¦fBindingsŽ¡‘Kâ:The–synš²!tax“for“con˜trolling‘ k˜ey“bindings“in“the“init“le“is“simple.‘               First“y˜ouŽ¡‘Kâ:need–QÓto“nd›QÔthe“name“of“the˜command“that“yš²!ou“w˜an˜t“to‘QÔc˜hange.‘Á¬The“follo˜wingŽ¡‘Kâ:sections–Ocon²!tain›Otables“of˜the“command˜name,‘yLthe˜default“kš²!eybinding,‘yMif“an˜y‘ÿe,Ž¡‘Kâ:and–¦fa“short“description“of“what“the“command“doMÞes.Ž©Q‘Kâ:Once›P…y•²!ou‘P†kno“w˜the˜name–P†of˜the“command,‘{simply“place˜on“a˜line˜in“the˜initŽ¡‘Kâ:le–&the›name“of“the˜kš²!ey“y˜ou“wish›to“bind“the“command˜to,›$'a“colon,˜and“thenŽ¡‘Kâ:the–Üÿname›Üþof“the˜command.‘§There˜can“bMÞe˜no“space˜bMÞet•²!w“een‘Üÿthe˜k“ey‘Üÿname˜andŽ¡‘Kâ:the–çcolon“{“that“will“bMÞe“inš²!terpreted“as“part“of“the“k˜ey“name.‘ŸÿThe“name“ofŽ¡‘Kâ:the–$Ûkš²!ey“can“bMÞe‘$Úexpressed“in“dieren˜t“w˜a˜ys,‘DxdepMÞending“on‘$Úwhat“y˜ou“nd“mostŽ¡‘Kâ:comfortable.Ž¦‘Kâ:In–SÞaddition›Sßto“command“names,‘<readline˜alloš²!ws“k˜eys“to‘SßbšMÞe“b˜ound“to‘Sßa“stringŽ¡‘Kâ:that–¦fis“inserted“when“the“k²!ey“is“pressed“(a“åmacro‘ŒÐá).ŽŸÛo‘Kâ:åk²!eyname‘á:‘ÝÝåfunction-name‘Cmáor‘¦fåmacroŽŽ¡’…³-kš²!eyname‘jáis–tcthe“name‘tdof“a“k˜ey“spMÞelled“out“in“English.‘Í2F‘ÿeor“example:Ž¦’¢›‚âControl-u:‘¿ªuniversal-argumentŽ¡’¢›‚Meta-Rubout:‘¿ªbackward-kill-wordŽ¡’¢›‚Control-o:–¿ª">“output"Ž¦’…³-áIn›\Àthe‘\¿abMÞo•²!v“e˜example,‘
JSèC-u˜áis˜bMÞound˜to‘\¿the˜functionŽ¡’…³-âuniversal-argumentá,‘|èM-DEL›
&áis–
%bMÞound“to˜the“functionŽ¡’…³-âbackward-kill-wordá,‘        šand–iLèC-o›iKáis“bMÞound˜to“run˜the“macroŽ¡’…³-expressed–~Jon“the›~Irigh²!t“hand“side“(that“is,‘ôBto“insert˜the“text“`â>Ž¡’…³-outputá'–¦fin²!to“the“line).ŽŸP’…³-A‘nbn•²!um“bšMÞer–o[of“sym²!b˜olic“c²!haracter“names“are“recognized“whileŽ¡’…³-proMÞcessing–Ê3this“kš²!ey“binding“syn˜tax:‘%wåDELá,–&åESCá,“åESCAPEá,“åLFDá,Ž¡’…³-åNEWLINEá,–¦fåRETá,“åRETURNá,“åRš²!UBOUTá,“åSP‘ÿeA˜CEá,“åSPCá,“and“åT‘ÿeABá.ŽŸÛo‘Kâ:â"åk²!eyseq@æâ"á:‘ÝÝåfunction-name‘Cmáor‘¦fåmacroŽŽ¡’…³-k•²!eyseq‘ú«ádiers‘¹Äfrom›¹Ååk“eyname‘VËáabMÞo“v“e˜in˜that–¹Ästrings˜denoting“an˜en-Ž¡’…³-tire–hkš²!ey“sequence“can“b•MÞe‘gsp“ecied,‘%éb˜y‘gplacing–hthe“k˜ey“sequence“inŽ¡’…³-double–‰ôquotes.‘ÔbSome“çgnu“áEmacs“stš²!yle“k˜ey“escapšMÞes“can“b˜e“used,‘¤asŽ¡’…³-in–Ãthe›Âfollo²!wing“example,‘(Ùbut˜the“spMÞecial˜c²!haracter“names˜are“notŽ¡’…³-recognized.Ž¦’¢›‚â"\C-u":‘¿ªuniversal-argumentŽ¡’¢›‚"\C-x\C-r":‘¿ªre-read-init-fileŽŽŒ‹
                     86: ºzŸò‘GáChapter–¦f1:‘ÝÝCommand“Line“Editing’ýÓ®10ŽŽŽ ƒ33 ý ÌÍ’¢›‚â"\e[11~":–¿ª"Function“Key“1"ŽŸÌ’…³-áIn–Â×the“abšMÞo•²!v“e–Â×example,‘ÉòèC-u“áis“again‘ÂØb˜ound“to“the“functionŽ¤
33’…³-âuniversal-argument–?ßá(just“as“it“w²!as“in“the“rst‘?Þexample),‘¦=`èC-xŽ¡’…³-C-rá'–¤Öis“bMÞound“to“the“function“âre-read-init-fileá,‘¥&and“`âESC–¦f[“1“1Ž¡’…³-~á'–¦fis“bMÞound“to“insert“the“text“`âFunction“Key“1á'.Ž©dö‘Kâ:The–’Äfolloš²!wing“çgnu“áEmacs“st˜yle“escapMÞe‘’Åsequences“are“a˜v‘ÿdDailable“when“spMÞecifyingŽ¡‘Kâ:k²!ey‘¦fsequences:Ž¦‘Kâ:è\C-‘(‘õácon²!trol‘¦fprexŽ¦‘Kâ:è\M-‘(‘õámeta‘¦fprexŽ¦‘Kâ:è\e‘.QŸáan–¦fescapMÞe“c²!haracterŽ¦‘Kâ:è\\‘.QŸábac²!kslashŽ¦‘Kâ:è\â"‘.QŸ"á,–¦fa“double“quotation“markŽ¦‘Kâ:è\'‘.QŸâ'á,–¦fa“single“quote“or“apMÞostropheŽ¦‘Kâ:In–Qaddition“to›Qthe“çgnu“áEmacs“st²!yle˜escapMÞe“sequences,‘b)a“second˜set“of“bac²!kslashŽ¡‘Kâ:escapMÞes–¦fis“a²!v‘ÿdDailable:Ž¦‘Kâ:â\a‘.QŸáalert‘¦f(bMÞell)Ž¦‘Kâ:â\b‘.QŸábac²!kspaceŽ¦‘Kâ:â\d‘.QŸádeleteŽ¦‘Kâ:â\f‘.QŸáform‘¦ffeedŽ¦‘Kâ:â\n‘.QŸánewlineŽ¦‘Kâ:â\r‘.QŸácarriage‘¦freturnŽ¦‘Kâ:â\t‘.QŸáhorizon²!tal‘¦ftabŽ¦‘Kâ:â\v‘.QŸáv²!ertical‘¦ftabŽ¦‘Kâ:â\ènnn‘"ÒKáthe–$«eighš²!t-bit“c˜haracter‘$ªwhose“v›ÿdDalue“is“the“oMÞctal“v˜alue‘$ªånnn“á(one“toŽ¡’…³-three‘¦fdigits)Ž¦‘Kâ:â\xèHH‘"ÒKáthe›˜eigh•²!t-bit‘˜c“haracter˜whose˜v‘ÿdDalue–˜is˜the˜hexadecimal“v‘ÿdDalue˜åHHŽ¡’…³-á(one–¦for“t•²!w“o–¦fhex“digits)Ž¦‘Kâ:When–}Ëenš²!tering“the“text“of“a“macro,‘³£single“or“double“quotes“m˜ust“bMÞe“used“toŽ¡‘Kâ:indicate–“Ša›“‰macro“denition.‘‚?Unquoted˜text“is“assumed“to˜bMÞe“a“function˜name.‘‚?InŽ¡‘Kâ:the‘Ämacro›Åb•MÞo“dy‘ÿe,‘Ç~the˜bac²!kslash‘Äescap“es˜describ“ed‘Äab“o•²!v“e˜are‘Äexpanded.‘€ýBac“kslashŽ¡‘Kâ:will–Íquote‘Íanš²!y“other“c˜haracter›Íin“the“macro˜text,‘Éincluding“`â"á'˜and“`â'á'.‘RF‘ÿeorŽ¡‘Kâ:example,‘4 the–folloš²!wing‘Žbinding“will“mak˜e›Ž`èC-x‘¦fâ\á'“insert“a˜single“`â\á'“in²!to˜the“line:ŽŸÌ‘hÊâ"\C-x\\":‘¿ª"\\"ŽŽŒ‹ǼŸò‘GáChapter–¦f1:‘ÝÝCommand“Line“Editing’ýÓ®11ŽŽŽ ƒ33 ý ÌÍ‘Gëe1.3.2‘d(Conditional–íMInit“ConstructsŽŽŸ³3‘GáReadline–iimplemenš²!ts“a“facilit˜y“similar“in‘ispirit“to“the“conditional“compilation“features“ofŽ¤
33‘Gthe–¯JC‘¯HpreproMÞcessor‘¯Kwhicš²!h“allo˜ws‘¯Kk˜ey“bindings“and›¯Kv‘ÿdDariable“settings“to˜bšMÞe“p˜erformed‘¯Kas“theŽ¡‘Gresult–¦fof“tests.‘ÝÝThere“are“four“parser“directiv²!es“used.Ž©33‘Gâ$if‘(‘õáThe–ÃNâ$if“áconstruct“allo²!ws“bindings“to“bšMÞe‘ÃOmade“based“on“the“editing“mo˜de,‘ʈtheŽ¡‘Kâ:terminal–’ŽbMÞeing›’used,‘͘or“the“application˜using“Readline.‘¢VThe“text“of˜the“testŽ¡‘Kâ:extends–¦fto“the“end“of“the“line;“no“c²!haracters“are“required“to“isolate“it.Ž¦‘Kâ:âmode‘"ÒKáThe–žÞâmode=›žßáform“of“the“â$if“ádirectiv²!e˜is“used“to“test˜whether“Read-Ž¡’…³-line–3½is“in‘3¼âemacs“áor“âvi“ámošMÞde.‘       …áThis“ma²!y“b˜e‘3¼used“in“conjunctionŽ¡’…³-with–º the“`âset‘¦fkeymapá'“command,–ÿfor‘º!instance,“to–º set“bindings“inŽ¡’…³-the–ÌÇâemacs-standard“áand›ÌÆâemacs-ctlx“ák²!eymaps“only“if˜Readline“isŽ¡’…³-starting–¦fout“in“âemacs“ámoMÞde.Ž¦‘Kâ:âterm‘"ÒKáThe–<âterm=“áform›<ma²!y“bMÞe“used“to“include˜terminal-spMÞecic“k²!ey“bind-Ž¡’…³-ings,‘ƒpMÞerhaps–Vîto“bind›Víthe“k²!ey˜sequences“output“b²!y˜the“terminal'sŽ¡’…³-function–Þ€kš²!eys.‘›;The“w˜ord“on‘Þthe“righ˜t“side“of“the“`â=á'‘Þis“tested“againstŽ¡’…³-bšMÞoth–šPthe“full“name“of“the‘šOterminal“and“the“p˜ortion“of“the“terminalŽ¡’…³-name–×bMÞefore›Öthe“rst˜`â-á'.‘ÿ/This“allo²!ws˜âsun“áto˜matc²!h“bMÞoth˜âsun“áandŽ¡’…³-âsun-cmdá,–¦ffor“instance.Ž¦‘Kâ:âapplicationŽ¡’…³-áThe–¢âåapplication“áconstruct›¢ãis“used“to“include˜application-spMÞecic“set-Ž¡’…³-tings.‘£mEac²!h–÷program“using“the‘÷Readline“library“sets“the“åapplicationŽ¡’…³-nameá,‘õwand–É<y²!ou“can›É;test“for“a˜particular“v‘ÿdDalue.‘”$This“could“bMÞe˜used“toŽ¡’…³-bind–ñDk²!ey“sequences“to“functions“useful“for‘ñCa“spMÞecic“program.‘¾wF‘ÿeorŽ¡’…³-instance,‘Ðthe–÷‡folloš²!wing“command“adds‘÷ˆa“k˜ey“sequence‘÷ˆthat“quotesŽ¡’…³-the–¦fcurrenš²!t“or“previous“w˜ord“in“Bash:ŽŸ33’¢›‚â$if‘¿ªBashŽ¡’¢›‚#–¿ªQuote“the“current“or“previous“wordŽ¡’¢›‚"\C-xq":‘¿ª"\eb\"\ef\""Ž¡’¢›‚$endifŽ¦‘G$endif‘R÷áThis–£™command,‘¤(as“seen“in“the›£˜previous“example,‘¤)terminates˜an“â$if“ácommand.Ž¦‘Gâ$else‘¡áCommands–¦fin“this“brancš²!h“of“the“â$if“ádirectiv˜e“are“executed“if“the“test“fails.Ž¦‘Gâ$include‘Ó£áThis›:directiv•²!e‘:tak“es˜a˜single˜lename‘:as˜an˜argumen“t˜and‘:reads˜commandsŽ¡‘Kâ:and–£Ëbindings‘£Êfrom“that“le.‘ÖF‘ÿeor“example,‘ã#the“folloš²!wing“directiv˜e‘£Êreads“fromŽ¡‘Kâ:â/etc/inputrcá:ŽŸ33‘hÊâ$include‘¿ª/etc/inputrcŽŸ‘Gëe1.3.3‘d(Sample–íMInit“FileŽŽŸ³3‘GáHere–,ßis›,àan“example“of˜an“åinputrc‘Öäále.‘µ[This“illustrates“k•²!ey˜binding,‘E-v‘ÿdDariable˜assignmen“t,‘E-andŽ¡‘Gconditional‘¦fsyn²!tax.ŽŽŒ‹ÏÙŸò‘GáChapter–¦f1:‘ÝÝCommand“Line“Editing’ýÓ®12ŽŽŽ ƒ33 ý®‘.ùœâ#–¿ªThis“file“controls“the“behaviour“of“line“input“editing“forŽ¤
33‘.ùœ#–¿ªprograms“that“use“the“GNU“Readline“library.‘TExistingŽ¡‘.ùœ#–¿ªprograms“include“FTP,“Bash,“and“GDB.Ž¡‘.ùœ#Ž¡‘.ùœ#–¿ªYou“can“re-read“the“inputrc“file“with“C-x“C-r.Ž¡‘.ùœ#–¿ªLines“beginning“with“'#'“are“comments.Ž¡‘.ùœ#Ž¡‘.ùœ#–¿ªFirst,“include“any“system-wide“bindings“and“variableŽ¡‘.ùœ#–¿ªassignments“from“/etc/InputrcŽ¡‘.ùœ$include‘¿ª/etc/InputrcŽ©ff‘.ùœ#Ž¡‘.ùœ#–¿ªSet“various“bindings“for“emacs“mode.Ž¦‘.ùœset–¿ªediting-mode“emacsŽ¦‘.ùœ$if‘¿ªmode=emacsŽ¦‘.ùœMeta-Control-h:‘Tbackward-kill-word–¿ªText“after“the“function“name“is“ignoredŸnï„        Ž¦‘.ùœ#Ž¡‘.ùœ#–¿ªArrow“keys“in“keypad“modeŽ¡‘.ùœ#Ž¡‘.ùœ#"\M-OD":‘-ýPbackward-charŽ¡‘.ùœ#"\M-OC":‘-ýPforward-charŽ¡‘.ùœ#"\M-OA":‘-ýPprevious-historyŽ¡‘.ùœ#"\M-OB":‘-ýPnext-historyŽ¡‘.ùœ#Ž¡‘.ùœ#–¿ªArrow“keys“in“ANSI“modeŽ¡‘.ùœ#Ž¡‘.ùœ"\M-[D":‘-ýPbackward-charŽ¡‘.ùœ"\M-[C":‘-ýPforward-charŽ¡‘.ùœ"\M-[A":‘-ýPprevious-historyŽ¡‘.ùœ"\M-[B":‘-ýPnext-historyŽ¡‘.ùœ#Ž¡‘.ùœ#–¿ªArrow“keys“in“8“bit“keypad“modeŽ¡‘.ùœ#Ž¡‘.ùœ#"\M-\C-OD":‘(=¦backward-charŽ¡‘.ùœ#"\M-\C-OC":‘(=¦forward-charŽ¡‘.ùœ#"\M-\C-OA":‘(=¦previous-historyŽ¡‘.ùœ#"\M-\C-OB":‘(=¦next-historyŽ¡‘.ùœ#Ž¡‘.ùœ#–¿ªArrow“keys“in“8“bit“ANSI“modeŽ¡‘.ùœ#Ž¡‘.ùœ#"\M-\C-[D":‘(=¦backward-charŽ¡‘.ùœ#"\M-\C-[C":‘(=¦forward-charŽŽŒ‹
Û™Ÿò‘GáChapter–¦f1:‘ÝÝCommand“Line“Editing’ýÓ®13ŽŽŽ ƒ33 ý ÌÍ‘.ùœâ#"\M-\C-[A":‘(=¦previous-historyŽ©
33‘.ùœ#"\M-\C-[B":‘(=¦next-historyŽ¤ff‘.ùœC-q:‘¿ªquoted-insertŽ¡‘.ùœ$endifŽ¡‘.ùœ#–¿ªAn“old-style“binding.‘TThis“happens“to“be“the“default.Ž¦‘.ùœTAB:‘¿ªcompleteŽ¡‘.ùœ#–¿ªMacros“that“are“convenient“for“shell“interactionŽ¦‘.ùœ$if‘¿ªBashŽ¦‘.ùœ#–¿ªedit“the“pathŽ¦‘.ùœ"\C-xp":‘¿ª"PATH=${PATH}\e\C-e\C-a\ef\C-f"Ž¦‘.ùœ#–¿ªprepare“to“type“a“quoted“word“--Ž¦‘.ùœ#–¿ªinsert“open“and“close“double“quotesŽ¦‘.ùœ#–¿ªand“move“to“just“after“the“open“quoteŽ¦‘.ùœ"\C-x\"":‘¿ª"\"\"\C-b"Ž¦‘.ùœ#–¿ªinsert“a“backslash“(testing“backslash“escapesŽ¦‘.ùœ#–¿ªin“sequences“and“macros)Ž¦‘.ùœ"\C-x\\":‘¿ª"\\"Ž¦‘.ùœ#–¿ªQuote“the“current“or“previous“wordŽ¦‘.ùœ"\C-xq":‘¿ª"\eb\"\ef\""Ž¦‘.ùœ#–¿ªAdd“a“binding“to“refresh“the“line,“which“is“unboundŽ¦‘.ùœ"\C-xr":‘¿ªredraw-current-lineŽ¦‘.ùœ#–¿ªEdit“variable“on“current“line.Ž¦‘.ùœ"\M-\C-v":‘¿ª"\C-a\C-k$\C-y\M-\C-e\C-a\C-y="Ž¦‘.ùœ$endifŽ¡‘.ùœ#–¿ªuse“a“visible“bell“if“one“is“availableŽ¦‘.ùœset–¿ªbell-style“visibleŽ¡‘.ùœ#–¿ªdon't“strip“characters“to“7“bits“when“readingŽ¦‘.ùœset–¿ªinput-meta“onŽ¡‘.ùœ#–¿ªallow“iso-latin1“characters“to“be“inserted“ratherŽ¦‘.ùœ#–¿ªthan“converted“to“prefix-meta“sequencesŽ¦‘.ùœset–¿ªconvert-meta“offŽ¡‘.ùœ#–¿ªdisplay“characters“with“the“eighth“bit“set“directlyŽ¦‘.ùœ#–¿ªrather“than“as“meta-prefixed“charactersŽ¦‘.ùœset–¿ªoutput-meta“onŽ¡‘.ùœ#–¿ªif“there“are“more“than“150“possible“completions“forŽ¦‘.ùœ#–¿ªa“word,“ask“the“user“if“he“wants“to“see“all“of“themŽ¦‘.ùœset–¿ªcompletion-query-items“150ŽŽŒ‹á_Ÿò‘GáChapter–¦f1:‘ÝÝCommand“Line“Editing’ýÓ®14ŽŽŽ ƒ33 ý ÌÍ‘.ùœâ#–¿ªFor“FTPŽ¤
33‘.ùœ$if‘¿ªFtpŽ¡‘.ùœ"\C-xg":–¿ª"get“\M-?"Ž¡‘.ùœ"\C-xt":–¿ª"put“\M-?"Ž¡‘.ùœ"\M-.":‘¿ªyank-last-argŽ¡‘.ùœ$endifŽŸƨ‘Gë\1.4‘™Bindable–f@Readline“CommandsŽŽŸ33‘GáThis–\section›[describMÞes“Readline“commands˜that“ma²!y“b•MÞe˜b“ound–\to“k²!ey˜sequences.‘¬ÚCommandŽ¡‘Gnames–¦fwithout“an“accompanš²!ying“k˜ey“sequence“are“un˜bMÞound“b˜y“default.ŽŸˆ‘!GIn–%Xthe‘%Wfolloš²!wing“descriptions,‘?'åpMÞoin˜t‘bXárefers›%Wto“the˜curren²!t“cursor“pMÞosition,‘?'and˜åmark‘Ï\árefersŽ¡‘Gto–«Aa“cursor‘«BpMÞosition“sa•²!v“ed›«Ab“y˜the˜âset-mark‘«Bácommand.‘ìnThe˜text˜bMÞet“w“een‘«Bthe˜pMÞoin“t˜andŽ¡‘Gmark–¦fis“referred“to“as“the“åregioná.ŽŸƨ‘Gëe1.4.1‘d(Commands–íMF‘þÄ£or“Mo–ávingŽŽŸ–‡‘Gâbeginning-of-line‘¦f(C-a)Ž¡‘Kâ:áMo•²!v“e–¦fto“the“start“of“the“curren²!t“line.Ž©ùÜ‘Gâend-of-line‘¦f(C-e)Ž¡‘Kâ:áMo•²!v“e–¦fto“the“end“of“the“line.ŽŸùÛ‘Gâforward-char‘¦f(C-f)Ž¡‘Kâ:áMo•²!v“e›¦fforw“ard˜a˜c“haracter.Ž¦‘Gâbackward-char‘¦f(C-b)Ž¡‘Kâ:áMo•²!v“e›¦fbac“k˜a˜c“haracter.ŽŸùÛ‘Gâforward-word‘¦f(M-f)Ž¡‘Kâ:áMo•²!v“e›¢kforw“ard˜to‘¢jthe˜end˜of˜the˜next˜w“ord.‘܉W‘ÿeords˜are˜compMÞosed‘¢jof˜letters˜andŽ¡‘Kâ:digits.Ž¦‘Gâbackward-word‘¦f(M-b)Ž¡‘Kâ:áMo•²!v“e››bac“k˜to˜the˜start˜of˜the˜curren“t˜or˜previous˜w“ord.‘|W‘ÿeords˜are˜compMÞosedŽ¡‘Kâ:of–¦fletters“and“digits.ŽŸùÛ‘Gâclear-screen‘¦f(C-l)Ž¡‘Kâ:áClear–2Ôthe›2Õscreen“and˜redra²!w“the˜currenš²!t“line,‘Iñlea˜ving‘2Õthe“curren˜t›2Õline“at˜the“topŽ¡‘Kâ:of–¦fthe“screen.Ž¦‘Gâredraw-current-line‘¦f()Ž¡‘Kâ:áRefresh–¦fthe“currenš²!t“line.‘ÝÝBy“default,“this“is“un˜bMÞound.ŽŸƨ‘Gëe1.4.2‘d(Commands–íMF‘þÄ£or“Manipulating“The“HistoryŽŽŸ–ˆ‘Gâaccept-line–¦f(Newline“or“Return)Ž¡‘Kâ:áAccept–:the“line“regardless“of›:where“the“cursor“is.‘˜äIf“this˜line“is“non-empt²!y‘ÿe,‘^þitŽ¡‘Kâ:ma²!y–Ô0bMÞe›Ô1added“to˜the“history“list˜for“future˜recall“with“âadd_history()á.‘g=If“thisŽ¡‘Kâ:line–¦fis“a“moMÞdied“history“line,“the“history“line“is“restored“to“its“original“state.ŽŸùÛ‘Gâprevious-history‘¦f(C-p)Ž¡‘Kâ:áMo•²!v“e›¦f`bac“k'˜through˜the˜history˜list,˜fetc“hing˜the˜previous˜command.ŽŽŒ‹çåŸò‘GáChapter–¦f1:‘ÝÝCommand“Line“Editing’ýÓ®15ŽŽŽ ƒ33 ý ÌÍ‘Gânext-history‘¦f(C-n)Ž¤
33‘Kâ:áMo•²!v“e›¦f`forw“ard'˜through˜the˜history˜list,˜fetc“hing˜the˜next˜command.Ž©&‘Gâbeginning-of-history‘¦f(M-<)Ž¡‘Kâ:áMo•²!v“e–¦fto“the“rst“line“in“the“history‘ÿe.ŽŸ‘Gâend-of-history‘¦f(M->)Ž¡‘Kâ:áMo•²!v“e–¦fto“the“end“of“the“input“history‘ÿe,“i.e.,“the“line“currenš²!tly“bMÞeing“en˜tered.Ž¦‘Gâreverse-search-history‘¦f(C-r)Ž¡‘Kâ:áSearc•²!h›½:bac“kw“ard˜starting‘½;at˜the˜curren“t˜line˜and˜mo“ving‘½;`up'˜through˜the˜his-Ž¡‘Kâ:tory–¦fas“necessary‘ÿe.‘ÝÝThis“is“an“incremenš²!tal“searc˜h.ŽŸ‘Gâforward-search-history‘¦f(C-s)Ž¡‘Kâ:áSearc•²!h›‰÷forw“ard˜starting˜at˜the˜curren“t˜line˜and˜mo“ving˜`do“wn'˜through˜the˜theŽ¡‘Kâ:history–¦fas“necessary‘ÿe.‘ÝÝThis“is“an“incremenš²!tal“searc˜h.Ž¦‘Gânon-incremental-reverse-search-history‘¦f(M-p)Ž¡‘Kâ:áSearc•²!h›½:bac“kw“ard˜starting‘½;at˜the˜curren“t˜line˜and˜mo“ving‘½;`up'˜through˜the˜his-Ž¡‘Kâ:tory–Ryas“necessary“using‘Rxa“non-incremenš²!tal“searc˜h“for“a“string‘Rxsupplied“b˜y“theŽ¡‘Kâ:user.ŽŸ‘Gânon-incremental-forward-search-history‘¦f(M-n)Ž¡‘Kâ:áSearc•²!h›‰÷forw“ard˜starting˜at˜the˜curren“t˜line˜and˜mo“ving˜`do“wn'˜through˜the˜theŽ¡‘Kâ:history–3ªas›3©necessary“using“a˜non-incremenš²!tal“searc˜h“for›3©a“string“supplied˜b²!y“theŽ¡‘Kâ:user.Ž¦‘Gâhistory-search-forward‘¦f()Ž¡‘Kâ:áSearc•²!h›úOforw“ard˜through–úPthe˜history˜for˜the˜string˜of“c•²!haracters˜bMÞet“w“een˜theŽ¡‘Kâ:start–QËof›QÌthe“curren²!t“line˜and“the“pMÞoinš²!t.‘à
The“searc˜h‘QÌstring“m˜ust“matc˜h‘QÌat“theŽ¡‘Kâ:bMÞeginning–è"of“a“history“line.‘£This“is“a“non-incremenš²!tal“searc˜h.‘£By“default,‘ø‘thisŽ¡‘Kâ:command–¦fis“un²!bMÞound.ŽŸ‘Gâhistory-search-backward‘¦f()Ž¡‘Kâ:áSearc•²!h›-»bac“kw“ard–-¼through˜the“history˜for“the˜string“of˜cš²!haracters“bMÞet˜w˜een‘-»theŽ¡‘Kâ:start–QËof›QÌthe“curren²!t“line˜and“the“pMÞoinš²!t.‘à
The“searc˜h‘QÌstring“m˜ust“matc˜h‘QÌat“theŽ¡‘Kâ:bMÞeginning–è"of“a“history“line.‘£This“is“a“non-incremenš²!tal“searc˜h.‘£By“default,‘ø‘thisŽ¡‘Kâ:command–¦fis“un²!bMÞound.Ž¦‘Gâhistory-substr-search-forward‘¦f()Ž¡‘Kâ:áSearc•²!h›úOforw“ard˜through–úPthe˜history˜for˜the˜string˜of“c•²!haracters˜bMÞet“w“een˜theŽ¡‘Kâ:start–uæof›uçthe“curren²!t“line“and˜the“pMÞoinš²!t.‘ͳThe“searc˜h“string“ma˜y‘uçmatc˜h“an˜ywhereŽ¡‘Kâ:in–è"a“history“line.‘£This“is“a“non-incremenš²!tal“searc˜h.‘£By“default,‘ø‘this“commandŽ¡‘Kâ:is‘¦fun²!bMÞound.ŽŸ‘Gâhistory-substr-search-backward‘¦f()Ž¡‘Kâ:áSearc•²!h›-»bac“kw“ard–-¼through˜the“history˜for“the˜string“of˜cš²!haracters“bMÞet˜w˜een‘-»theŽ¡‘Kâ:start–uæof›uçthe“curren²!t“line“and˜the“pMÞoinš²!t.‘ͳThe“searc˜h“string“ma˜y‘uçmatc˜h“an˜ywhereŽ¡‘Kâ:in–è"a“history“line.‘£This“is“a“non-incremenš²!tal“searc˜h.‘£By“default,‘ø‘this“commandŽ¡‘Kâ:is‘¦fun²!bMÞound.Ž¦‘Gâyank-nth-arg‘¦f(M-C-y)Ž¡‘Kâ:áInsert–sÐthe›sÏrst“argumen²!t˜to“the˜previous“command˜(usually“the˜second“w²!ordŽ¡‘Kâ:on–Ô|the›Ô}previous“line)˜at“pMÞoin²!t.‘h!With“an˜argumen²!t“åná,‘àinsert˜the“ånáth˜w²!ord“fromŽŽŒ‹ðóŸò‘GáChapter–¦f1:‘ÝÝCommand“Line“Editing’ýÓ®16ŽŽŽ ƒ33 ý ÌÍ‘Kâ:the–0previous“command“(the“wš²!ords“in‘0the“previous“command“bMÞegin“with“w˜ordŽ¤
33‘Kâ:0).‘-dA‘À negativ•²!e›Àéargumen“t–Àèinserts˜the“ånáth“w²!ord˜from“the˜end“of˜the“previousŽ¡‘Kâ:command.‘ÍOnce–öGthe“argumenš²!t‘öFån“áis“computed,‘
                     87: >the“argumen˜t“is“extracted‘öFas“ifŽ¡‘Kâ:the–¦f`â!èná'“history“expansion“had“bšMÞeen“sp˜ecied.Ž©ŽÓ‘Gâyank-last-arg–¦f(M-.“or“M-_)Ž¡‘Kâ:áInsert–5Elast›5Fargumen²!t“to“the˜previous“command“(the˜last“w²!ord“of˜the“previousŽ¡‘Kâ:history–"enš²!try).‘With“a‘#n˜umeric“argumen˜t,‘ ’bMÞeha˜v˜e“exactly‘#lik˜e“âyank-nth-argá.Ž¡‘Kâ:Successivš²!e–ú%calls‘ú&to“âyank-last-arg“ámo˜v˜e‘ú&bac˜k“through‘ú&the“history“list,‘™insertingŽ¡‘Kâ:the–µlast‘µwš²!ord“(or“the“w˜ord‘µspMÞecied“b˜y“the“argumen˜t›µto“the“rst“call)˜of“eac²!h“lineŽ¡‘Kâ:in–`¿turn.‘êAnš²!y“n˜umeric‘`Àargumen˜t“supplied“to‘`Àthese“successiv˜e‘`Àcalls“determinesŽ¡‘Kâ:the–-Idirection›-Jto“mo•²!v“e˜through‘-Ithe˜history‘ÿe.‘r‡A‘-'negativ“e‘-Iargumen“t˜switc“hes‘-ItheŽ¡‘Kâ:direction–¼òthrough›¼óthe“history“(bac²!k˜or“forw²!ard).‘The“history˜expansion“facilitiesŽ¡‘Kâ:are–Mêused“to›Mëextract“the“last“argumen²!t,‘_as“if“the“`â!$á'“history˜expansion“had“bMÞeenŽ¡‘Kâ:spMÞecied.ŽŸ[ ‘Gëe1.4.3‘d(Commands–íMF›þÄ£or“Changing“T˜extŽŽŸa‘Gèend-of-file–¦fâ(usually“C-d)Ž¡‘Kâ:áThe–%¡c²!haracter›% indicating“end-of-le“as“set,–?bfor˜example,“b²!y–%¡âsttyá.‘²ñIf˜this“c²!harac-Ž¡‘Kâ:ter–×is“read“when“there“are“no“cš²!haracters“on“the“line,‘ÒÁand“pMÞoin˜t“is“at“the“bMÞeginningŽ¡‘Kâ:of–¦fthe“line,“Readline“in²!terprets“it“as“the“end“of“input“and“returns“çeofá.Ž¦‘Gâdelete-char‘¦f(C-d)Ž¡‘Kâ:áDelete–þ¾the“cš²!haracter“at“pMÞoin˜t.‘æåIf‘þ½this“function“is“bMÞound“to“the“same“c˜haracterŽ¡‘Kâ:as–¦fthe“ttš²!y“çeof“ác˜haracter,“as“èC-d“ácommonly“is,“see“abMÞo˜v˜e“for“the“eects.Ž¦‘Gâbackward-delete-char‘¦f(Rubout)Ž¡‘Kâ:áDelete–Ÿ§the“cš²!haracter‘Ÿ¨bMÞehind“the“cursor.‘ÛA‘Ÿ¦n˜umeric“argumen˜t“means‘Ÿ¨to“kill“theŽ¡‘Kâ:c²!haracters–¦finstead“of“deleting“them.Ž¦‘Gâforward-backward-delete-char‘¦f()Ž¡‘Kâ:áDelete–˜‘the›˜’c²!haracter“under˜the“cursor,‘Õunless“the˜cursor“is“at˜the“end˜of“theŽ¡‘Kâ:line,‘×~in–Í­whicš²!h‘ͬcase“the“c˜haracter›ͬbMÞehind“the˜cursor“is˜deleted.‘S±By“default,‘×~thisŽ¡‘Kâ:is–¦fnot“bMÞound“to“a“k²!ey‘ÿe.Ž¦‘Gâquoted-insert–¦f(C-q“or“C-v)Ž¡‘Kâ:áAdd–¸the‘¹next“cš²!haracter“t˜ypMÞed‘¹to“the“line“v˜erbatim.‘CÔThis‘¹is“ho˜w“to‘¹insert“k˜eyŽ¡‘Kâ:sequences–¦flik²!e“èC-qá,“for“example.ŽŸŽÒ‘Gâtab-insert‘¦f(M-TAB)Ž¡‘Kâ:áInsert–¦fa“tab“c²!haracter.Ž¦‘Gâself-insert–¦f(a,“b,“A,“1,“!,“..&.Ž‘åe)Ž¡‘Kâ:áInsert‘¦fy²!ourself.Ž¦‘Gâtranspose-chars‘¦f(C-t)Ž¡‘Kâ:áDrag–Õãthe“cš²!haracter“bMÞefore‘Õâthe“cursor“forw˜ard“o˜v˜er“the“c˜haracter‘Õâat“the“cursor,Ž¡‘Kâ:moš²!ving–C"the“cursor‘C!forw˜ard“as“w˜ell.‘´If“the“insertion‘C!pMÞoin˜t“is“at“the‘C!end“of“theŽ¡‘Kâ:line,‘ÕÍthen–¡¦this“transpMÞoses“the“last“t•²!w“o‘¡§c“haracters–¡¦of“the“line.‘†óNegativš²!e“argumen˜tsŽ¡‘Kâ:ha•²!v“e–¦fno“eect.ŽŽŒ‹ýyŸò‘GáChapter–¦f1:‘ÝÝCommand“Line“Editing’ýÓ®17ŽŽŽ ƒ33 ý ÌÍ‘Gâtranspose-words‘¦f(M-t)Ž¤
33‘Kâ:áDrag–áÜthe“w²!ord‘áÝbšMÞefore“p˜oinš²!t“past“the“w˜ord‘áÝafter“p•MÞoin˜t,‘ð¹mo˜ving‘áÝp“oin˜t–áÜpast“thatŽ¡‘Kâ:wš²!ord–g¸as“w˜ell.‘ÈùIf“the“insertion“pMÞoin˜t“is“at“the“end“of“the‘g¹line,‘tAthis“transpMÞoses“theŽ¡‘Kâ:last›¦ft•²!w“o˜w“ords˜on˜the˜line.Ž©Ù‘Gâupcase-word‘¦f(M-u)Ž¡‘Kâ:áUppMÞercase–ÖÓthe‘ÖÒcurrenš²!t“(or“follo˜wing)“w˜ord.‘o#With“a‘ÖÒnegativ˜e“argumen˜t,‘âîuppMÞer-Ž¡‘Kâ:case–¦fthe“previous“wš²!ord,“but“do“not“mo˜v˜e“the“cursor.Ž¦‘Gâdowncase-word‘¦f(M-l)Ž¡‘Kâ:áLo•²!w“ercase›”ãthe‘”âcurren“t˜(or‘”âfollo“wing)˜w“ord.‘‚²With‘”âa˜negativ“e˜argumen“t,‘Ë–lo“w“ercaseŽ¡‘Kâ:the–¦fprevious“wš²!ord,“but“do“not“mo˜v˜e“the“cursor.Ž¦‘Gâcapitalize-word‘¦f(M-c)Ž¡‘Kâ:áCapitalize–6the›5curren²!t“(or˜folloš²!wing)“w˜ord.‘€#With‘5a“negativ˜e“argumen˜t,‘ÅrcapitalizeŽ¡‘Kâ:the–¦fprevious“wš²!ord,“but“do“not“mo˜v˜e“the“cursor.Ž¦‘Gâoverwrite-mode‘¦f()Ž¡‘Kâ:áT‘ÿeoggle›öo•²!v“erwrite˜mo•MÞde.‘Í      With˜an˜explicit˜p“ositiv•²!e‘ö n“umeric˜argumen“t,‘
                     88: 
switc“hesŽ¡‘Kâ:to›™ÿo•²!v“erwrite–šmoMÞde.‘„fWith˜an“explicit˜non-pMÞositivš²!e“n˜umeric–™ÿargumen˜t,‘Ï®switc˜hes“toŽ¡‘Kâ:insert–¬ÛmoMÞde.‘ñ=This›¬Ücommand“aects“only˜âemacs“ámošMÞde;‘°âvi“ámo˜de‘¬Üdo˜es“o•²!v“erwriteŽ¡‘Kâ:dieren•²!tly‘ÿe.‘ÝÝEac“h–¦fcall“to“âreadline()“ástarts“in“insert“moMÞde.Ž©†%‘Kâ:In›Ièo•²!v“erwrite˜moMÞde,‘òÈc“haracters˜bMÞound˜to˜âself-insert‘Iéáreplace˜the˜text˜atŽ¡‘Kâ:pMÞoinš²!t–rather“than“pushing“the“text“to“the“righ˜t.‘‚Characters“bMÞound“toŽ¡‘Kâ:âbackward-delete-char–¦fáreplace“the“c²!haracter“bšMÞefore“p˜oin²!t“with“a“space.Ž¦‘Kâ:By–¦fdefault,“this“command“is“un²!bMÞound.ŽŸ¥ä‘Gëe1.4.4‘d(Killing–íMAnd“Y‘þÄ£ankingŽŽŸ$‘Gâkill-line‘¦f(C-k)Ž¡‘Kâ:áKill–¦fthe“text“from“pMÞoin²!t“to“the“end“of“the“line.Ž©Ù‘Gâbackward-kill-line–¦f(C-x“Rubout)Ž¡‘Kâ:áKill›¦fbac•²!kw“ard˜to˜the˜bMÞeginning˜of˜the˜line.Ž¦‘Gâunix-line-discard‘¦f(C-u)Ž¡‘Kâ:áKill›¦fbac•²!kw“ard˜from˜the˜cursor˜to˜the˜bMÞeginning˜of˜the˜curren“t˜line.Ž¦‘Gâkill-whole-line‘¦f()Ž¡‘Kâ:áKill–cjall“cš²!haracters‘cion“the“curren˜t“line,‘’ªno“matter“where“pMÞoin˜t“is.‘èBy“default,Ž¡‘Kâ:this–¦fis“un²!bMÞound.Ž¦‘Gâkill-word‘¦f(M-d)Ž¡‘Kâ:áKill–‡from“pMÞoin²!t›‡to“the“end“of“the˜currenš²!t“w˜ord,‘Por‘‡if“bMÞet˜w˜een“w˜ords,‘Qto“the“endŽ¡‘Kâ:of–¦fthe“next“w²!ord.‘ÝÝW‘ÿeord“bMÞoundaries“are“the“same“as“âforward-wordá.Ž¦‘Gâbackward-kill-word‘¦f(M-DEL)Ž¡‘Kâ:áKill–wÖthe›w×w²!ord“b•MÞehind˜p“oin²!t.‘ÎXW‘ÿeord›wÖb“oundaries˜are–w×the˜same“as˜âbackward-wordá.Ž¦‘Gâunix-word-rubout‘¦f(C-w)Ž¡‘Kâ:áKill–ÍLthe“w²!ord“bšMÞehind“p˜oinš²!t,‘×using“white“space“as“a“w˜ord“bMÞoundary‘ÿe.‘RThe“killedŽ¡‘Kâ:text–¦fis“sa•²!v“ed–¦fon“the“kill-ring.ŽŽŒ‹&
                     89: "Ÿò‘GáChapter–¦f1:‘ÝÝCommand“Line“Editing’ýÓ®18ŽŽŽ ƒ33 ý ÌÍ‘Gâunix-filename-rubout‘¦f()Ž¤
33‘Kâ:áKill–]Üthe“w²!ord“bšMÞehind“p˜oinš²!t,‘‹ºusing“white“space“and“the“slash“c˜haracter“as“theŽ¡‘Kâ:wš²!ord–¦fbMÞoundaries.‘ÝÝThe“killed“text“is“sa˜v˜ed“on“the“kill-ring.Ž©î‘Gâdelete-horizontal-space‘¦f()Ž¡‘Kâ:áDelete–¦fall“spaces“and“tabs“around“pMÞoinš²!t.‘ÝÝBy“default,“this“is“un˜bMÞound.Ž¦‘Gâkill-region‘¦f()Ž¡‘Kâ:áKill–¦fthe“text“in“the“currenš²!t“region.‘ÝÝBy“default,“this“command“is“un˜bMÞound.ŽŸí‘Gâcopy-region-as-kill‘¦f()Ž¡‘Kâ:áCop²!y–³the›²text“in˜the“region˜to“the˜kill“buer,‘0Eso˜it“can˜bMÞe“y•²!ank“ed˜righ“t‘³a“w“a“y‘ÿe.Ž¡‘Kâ:By–¦fdefault,“this“command“is“un²!bMÞound.Ž¦‘Gâcopy-backward-word‘¦f()Ž¡‘Kâ:áCopš²!y–žthe“w˜ord“bšMÞefore“p˜oinš²!t“to“the“kill‘žbuer.‘ÄÿThe“w˜ord“bMÞoundaries“are“theŽ¡‘Kâ:same–¦fas“âbackward-wordá.‘ÝÝBy“default,“this“command“is“un²!bMÞound.Ž¦‘Gâcopy-forward-word‘¦f()Ž¡‘Kâ:áCopš²!y–º8the“w˜ord“follo˜wing‘º9pMÞoin˜t“to“the“kill“buer.‘SThe‘º9w˜ord“bMÞoundaries“are“theŽ¡‘Kâ:same–¦fas“âforward-wordá.‘ÝÝBy“default,“this“command“is“un²!bMÞound.Ž¦‘Gâyank‘¦f(C-y)Ž¡‘Kâ:áY‘ÿeank–¦fthe“top“of“the“kill“ring“inš²!to“the“buer“at“pMÞoin˜t.Ž¦‘Gâyank-pop‘¦f(M-y)Ž¡‘Kâ:áRotate–'!the“kill-ring,‘GPand“y²!ank“the“new“top.‘`Y‘ÿeou“can‘'"only“do“this“if“the“priorŽ¡‘Kâ:command–¦fis“âyank“áor“âyank-popá.ŽŸ軑Gëe1.4.5‘d(Spiecifying–íMNumeric“Argumen–átsŽŽŸ§‘Gâdigit-argument–¦f(èM-0â,“èM-1â,“..&.Ž‘‹ËèM--â)Ž¡‘Kâ:áAdd–:Lthis›:Kdigit“to“the˜argumenš²!t“already“accum˜ulating,‘Oêor“start“a‘:Knew“argumen˜t.Ž¡‘Kâ:èM--–¦fástarts“a“negativš²!e“argumen˜t.Ž¦‘Gâuniversal-argument‘¦f()Ž¡‘Kâ:áThis–kis“another“w•²!a“y›jto–kspMÞecify“an“argumen²!t.‘«ßIf“this“command˜is“follo•²!w“ed›kb“y˜oneŽ¡‘Kâ:or–more›digits,‘“´optionally“with˜a“leading“min²!us“sign,‘“³those“digits“dene˜the“ar-Ž¡‘Kâ:gumenš²!t.‘ÐÚIf‘[the–\command“is“follo˜w˜ed“b˜y“digits,‘‡*executing“âuniversal-argumentŽ¡‘Kâ:áagain–Ñ«ends‘Ѫthe“nš²!umeric“argumen˜t,‘Ü{but“is“otherwise›Ѫignored.‘_«As“a˜spMÞecial“case,Ž¡‘Kâ:if–ñúthis›ñûcommand“is“immediately˜follo•²!w“ed›ñúb“y˜a˜c“haracter–ñûthat˜is˜neither“a˜digitŽ¡‘Kâ:or‘Zwminš²!us–Zxsign,‘i§the“argumen˜t‘Zwcoun˜t“for›Zwthe“next˜command“is˜mš²!ultiplied“b˜y‘Zwfour.Ž¡‘Kâ:The›{targumen•²!t‘{ucoun“t˜is˜initially–{uone,‘°·so˜executing“this˜function˜the“rst˜timeŽ¡‘Kâ:makš²!es–Ï2the“argumen˜t“coun˜t“four,‘Ùea“second‘Ï3time“mak˜es“the“argumen˜t“coun˜t“six-Ž¡‘Kâ:teen,–¦fand“so“on.‘ÝÝBy“default,“this“is“not“bMÞound“to“a“k²!ey‘ÿe.ŽŸ軑Gëe1.4.6‘d(Letting–íMReadline“T–áypie“F›þÄ£or“Y˜ouŽŽŸ§‘Gâcomplete‘¦f(TAB)Ž¡‘Kâ:áA²!ttempt–¶èto›¶çpMÞerform“completion˜on“the˜text“b•MÞefore˜p“oin²!t.‘Ž   The˜actual‘¶ècompletionŽ¡‘Kâ:pšMÞerformed–¦fis“application-sp˜ecic.‘ÝÝThe“default“is“lename“completion.ŽŽŒ‹&¡Ÿò‘GáChapter–¦f1:‘ÝÝCommand“Line“Editing’ýÓ®19ŽŽŽ ƒ33 ý ÌÍ‘Gâpossible-completions‘¦f(M-?)Ž¤
33‘Kâ:áList–)¯the›)®pMÞossible“completions˜of“the˜text“b•MÞefore˜p“oin•²!t.‘g·When˜displa“ying‘)¯com-Ž¡‘Kâ:pletions,‘ôfReadline–äÌsets›äÍthe“n•²!um“bMÞer˜of–äÌcolumns“used˜for“displa²!y˜to“the˜v‘ÿdDalue“ofŽ¡‘Kâ:âcompletion-display-widthá,‘Uthe–aŒv›ÿdDalue“of“the“en•²!vironmen“t–aŒv˜ariable“âCOLUMNSá,Ž¡‘Kâ:or–¦fthe“screen“width,“in“that“order.Ž©‚T‘Gâinsert-completions‘¦f(M-*)Ž¡‘Kâ:áInsert–«µall“completions“of“the“text“bšMÞefore“p˜oinš²!t“that“w˜ould“ha˜v˜e“bMÞeen“generatedŽ¡‘Kâ:b²!y‘¦fâpossible-completionsá.ŽŸ‚U‘Gâmenu-complete‘¦f()Ž¡‘Kâ:áSimilar–ÛVto“âcompleteá,‘óbut“replaces“the“wš²!ord“to‘ÛWbMÞe“completed“with“a“single“matc˜hŽ¡‘Kâ:from–‹æthe‘‹çlist“of“pšMÞossible“completions.‘Ž^Rep˜eated“execution‘‹çof“âmenu-completeŽ¡‘Kâ:ásteps–Õ¯through›Õ°the“list“of“pMÞossible˜completions,‘!inserting“eacš²!h“matc˜h‘Õ°in“turn.Ž¡‘Kâ:A²!t–jthe“end“of›jthe“list“of“completions,‘›šthe“bMÞell“is“rung˜(sub‘›»ject“to“the“settingŽ¡‘Kâ:of–Thâbell-styleá)“and“the›Tioriginal“text“is“restored.‘çãAn“argumen²!t˜of“ån“ámo•²!v“es‘ThånŽ¡‘Kâ:ápMÞositions–,Rforw²!ard›,Qin“the“list˜of“matcš²!hes;‘oGa“negativ˜e‘,Qargumen˜t“ma˜y“bMÞe‘,Qused“toŽ¡‘Kâ:mo•²!v“e›™Žbac“kw“ard˜through˜the˜list.‘·VThis˜command˜is˜in“tended˜to˜b•MÞe˜b“ound˜toŽ¡‘Kâ:âTABá,–¦fbut“is“unš²!bMÞound“b˜y“default.Ž¦‘Gâmenu-complete-backward‘¦f()Ž¡‘Kâ:áIdenš²!tical–5ato“âmenu-completeá,‘Ybut‘5`mo˜v˜es“bac˜kw˜ard“through“the‘5`list“of“pMÞossibleŽ¡‘Kâ:completions,–¦fas“if“âmenu-complete“áhad“bMÞeen“givš²!en“a“negativ˜e“argumen˜t.Ž¦‘Gâdelete-char-or-list‘¦f()Ž¡‘Kâ:áDeletes–«éthe›«èc²!haracter“under“the“cursor˜if“not“at˜the“bMÞeginning“or“end˜of“theŽ¡‘Kâ:line–öØ(lik²!e›öÙâdelete-chará).‘Ï4If“at˜the“end“of˜the“line,‘ŠôbMÞeha•²!v“es˜iden“tically‘öØtoŽ¡‘Kâ:âpossible-completionsá.‘ÝÝThis–¦fcommand“is“unš²!bMÞound“b˜y“default.ŽŸO!‘Gëe1.4.7‘d(Keybioard‘íMMacrosŽŽŸÚÄ‘Gâstart-kbd-macro–¦f(C-x“()Ž¡‘Kâ:áBegin–¦fsaš²!ving“the“c˜haracters“t˜ypMÞed“in˜to“the“curren˜t“k˜eybMÞoard“macro.Ž¦‘Gâend-kbd-macro–¦f(C-x“))Ž¡‘Kâ:áStop–G!saš²!ving“the“c˜haracters‘G"t˜ypMÞed“in˜to“the“curren˜t“k˜eybMÞoard“macro‘G"and“sa˜v˜e“theŽ¡‘Kâ:denition.ŽŸ‚U‘Gâcall-last-kbd-macro–¦f(C-x“e)Ž¡‘Kâ:áRe-execute–9Bthe“last‘9Ckš²!eybMÞoard“macro“dened,‘]ùb˜y“making“the‘9Cc˜haracters“in“theŽ¡‘Kâ:macro–¦fappšMÞear“as“if“t²!yp˜ed“at“the“k²!eyb˜oard.Ž¦‘Gâprint-last-kbd-macro‘¦f()Ž¡‘Kâ:áPrinš²!t–¦fthe“last“k˜ebMÞoard“macro“dened“in“a“format“suitable“for“the“åinputrc‘Pjále.ŽŸO!‘Gëe1.4.8‘d(Some–íMMiscellaneous“CommandsŽŽŸÚÄ‘Gâre-read-init-file–¦f(C-x“C-r)Ž¡‘Kâ:áRead– kin“the› jcon•²!ten“ts– kof“the“åinputrc‘Joále,‘ÔÐand“incorpMÞorate“an²!y˜bindings“or“v‘ÿdDariableŽ¡‘Kâ:assignmen²!ts–¦ffound“there.Ž¦‘Gâabort‘¦f(C-g)Ž¡‘Kâ:áAbMÞort–/the›/curren²!t“editing˜command“and˜ring“the˜terminal's“bMÞell˜(sub‘›»ject“to˜theŽ¡‘Kâ:setting–¦fof“âbell-styleá).ŽŽŒ‹&!ZŸò‘GáChapter–¦f1:‘ÝÝCommand“Line“Editing’ýÓ®20ŽŽŽ ƒ33 ý ÌÍ‘Gâdo-uppercase-version–¦f(M-a,“M-b,“M-èxâ,“..&.Ž‘åe)Ž¤
33‘Kâ:áIf–Qõthe“metaed“cš²!haracter“åx‘Táis“lo˜w˜ercase,‘bÙrun“the“command“that“is“bMÞound“to“theŽ¡‘Kâ:corresp•MÞonding›¦fupp“ercase˜c²!haracter.Ž©&‘Gâprefix-meta‘¦f(ESC)Ž¡‘Kâ:áMetafy–‚2the›‚1next“c•²!haracter˜t“ypMÞed.‘q@This–‚2is˜for“k²!eybMÞoards˜without“a˜meta“k²!ey‘ÿe.Ž¡‘Kâ:Tš²!yping–¦f`âESC“fá'“is“equiv‘ÿdDalen˜t“to“t˜yping“èM-fá.ŽŸ‘Gâundo–¦f(C-_“or“C-x“C-u)Ž¡‘Kâ:áIncremenš²!tal–¦fundo,“separately“remem˜bMÞered“for“eac˜h“line.Ž¦‘Gârevert-line‘¦f(M-r)Ž¡‘Kâ:áUndo–úall“cš²!hanges“made“to“this“line.‘ØåThis“is“lik˜e“executing“the“âundo“ácommandŽ¡‘Kâ:enough–¦ftimes“to“get“bac²!k“to“the“bMÞeginning.ŽŸ‘Gâtilde-expand‘¦f(M-~)Ž¡‘Kâ:áPš²!erform–¦ftilde“expansion“on“the“curren˜t“w˜ord.Ž¦‘Gâset-mark‘¦f(C-@)Ž¡‘Kâ:áSet–ðthe“mark“to“the“pMÞoinš²!t.‘ºØIf“a‘ðn˜umeric“argumen˜t“is“supplied,‘ythe“mark“is“setŽ¡‘Kâ:to–¦fthat“pMÞosition.ŽŸ‘Gâexchange-point-and-mark–¦f(C-x“C-x)Ž¡‘Kâ:áSwš²!ap–¾Òthe“pMÞoin˜t“with“the“mark.‘'"The“curren˜t“cursor“pMÞosition“is“set“to“the“sa˜v˜edŽ¡‘Kâ:pšMÞosition,–¦fand“the“old“cursor“p˜osition“is“sa•²!v“ed–¦fas“the“mark.Ž¦‘Gâcharacter-search‘¦f(C-])Ž¡‘Kâ:áA‘ü&cš²!haracter–üQis‘üRread“and“pMÞoin˜t‘üRis“mo˜v˜ed“to›üRthe“next“oMÞccurrence“of˜that“c²!haracter.Ž¡‘Kâ:A–¦fnegativš²!e“coun˜t“searc˜hes“for“previous“oMÞccurrences.ŽŸ‘Gâcharacter-search-backward‘¦f(M-C-])Ž¡‘Kâ:áA‘c"c²!haracter–c•is›c”read“and˜pMÞoinš²!t“is“mo˜v˜ed›c”to“the˜previous“oMÞccurrence˜of“thatŽ¡‘Kâ:c•²!haracter.‘ÝÝA›¦fnegativ“e˜coun“t˜searc“hes˜for˜subsequen“t˜oMÞccurrences.Ž¦‘Gâskip-csi-sequence‘¦f()Ž¡‘Kâ:áRead–G¬enough“cš²!haracters‘G­to“consume“a“m˜ulti-k˜ey“sequence“suc˜h‘G­as“those“denedŽ¡‘Kâ:for–z÷kš²!eys“lik˜e‘zøHome“and“End.‘[‘Suc˜h“sequences“bMÞegin“with‘zøa“Con˜trol“SequenceŽ¡‘Kâ:Indicator–fM(CSI),“usually–fLESC-[.‘’If“this–fMsequence“is“bMÞound‘fLto“â"\áe[â"á,‘–Fk²!eys“pro-Ž¡‘Kâ:ducing–Ö‰sucš²!h“sequences“will‘Öˆha˜v˜e“no“eect“unless“explicitly“bMÞound‘Öˆto“a“readlineŽ¡‘Kâ:command,‘ßÔinstead–ÔXof“inserting“straš²!y“c˜haracters“in˜to“the“editing‘ÔWbuer.‘g³This“isŽ¡‘Kâ:un•²!bMÞound›¦fb“y˜default,˜but˜usually˜bMÞound˜to˜ESC-[.ŽŸ‘Gâinsert-comment‘¦f(M-#)Ž¡‘Kâ:áWithout–GÑa‘GÐnš²!umeric“argumen˜t,‘p*the“v‘ÿdDalue›GÐof“the˜âcomment-begin“áv‘ÿdDariable˜is“in-Ž¡‘Kâ:serted–Ìèat›Ìéthe“bMÞeginning“of“the˜currenš²!t“line.‘QdIf“a“n˜umeric“argumen˜t‘Ìéis“supplied,Ž¡‘Kâ:this–cøcommand“acts“as“a“toggle:‘Y&if‘c÷the“c²!haracters“at“the“bMÞeginning“of“the“lineŽ¡‘Kâ:do–¬Ânot“matc²!h“the‘¬Ãv›ÿdDalue“of“âcomment-beginá,‘®Ythe“v˜alue“is‘¬Ãinserted,‘®Yotherwise“theŽ¡‘Kâ:c²!haracters–Ó6in“âcomment-begin“áare›Ó5deleted“from“the“bMÞeginning“of“the˜line.‘dMInŽ¡‘Kâ:either–¦fcase,“the“line“is“accepted“as“if“a“newline“had“bšMÞeen“t²!yp˜ed.Ž¦‘Gâdump-functions‘¦f()Ž¡‘Kâ:áPrin²!t–,Qall›,Pof“the˜functions“and“their˜k²!ey“bindings“to˜the“Readline˜output“stream.Ž¡‘Kâ:If–Îïa“nš²!umeric“argumen˜t›Îðis“supplied,‘Ùthe“output“is“formatted“in˜sucš²!h“a“w˜a˜y“thatŽ¡‘Kâ:it–¦fcan“bšMÞe“made“part“of“an“åinputrc‘Pjále.‘ÝÝThis“command“is“un²!b˜ound“b²!y“default.ŽŽŒ‹&-™Ÿò‘GáChapter–¦f1:‘ÝÝCommand“Line“Editing’ýÓ®21ŽŽŽ ƒ33 ý ÌÍ‘Gâdump-variables‘¦f()Ž¤
33‘Kâ:áPrin²!t–ŽÉall“of“the‘ŽÈsettable“v›ÿdDariables“and“their“v˜alues“to‘ŽÈthe“Readline“output“stream.Ž¡‘Kâ:If–Îïa“nš²!umeric“argumen˜t›Îðis“supplied,‘Ùthe“output“is“formatted“in˜sucš²!h“a“w˜a˜y“thatŽ¡‘Kâ:it–¦fcan“bšMÞe“made“part“of“an“åinputrc‘Pjále.‘ÝÝThis“command“is“un²!b˜ound“b²!y“default.Ž©33‘Gâdump-macros‘¦f()Ž¡‘Kâ:áPrinš²!t–
ˆall“of“the‘
‡Readline“k˜ey“sequences“bMÞound“to“macros‘
‡and“the“strings“theyŽ¡‘Kâ:output.‘rŠIf–-Ja“nš²!umeric“argumen˜t“is›-Ksupplied,‘Othe“output“is“formatted˜in“suc²!h“aŽ¡‘Kâ:w•²!a“y–šthat›šit“can“bMÞe˜made“part“of˜an“åinputrc‘Dále.‘ÙÂThis“command“is˜unš²!bMÞound“b˜yŽ¡‘Kâ:default.Ž¦‘Gâemacs-editing-mode‘¦f(C-e)Ž¡‘Kâ:áWhen–¦fin“âvi“ácommand“mošMÞde,“this“causes“a“switc²!h“to“âemacs“áediting“mo˜de.Ž¦‘Gâvi-editing-mode‘¦f(M-C-j)Ž¡‘Kâ:áWhen–¦fin“âemacs“áediting“mošMÞde,“this“causes“a“switc²!h“to“âvi“áediting“mo˜de.ŽŸ‘Gë\1.5‘™Readline–f@vi“Mos3deŽŽ¦‘GáWhile–É`the“Readline›É_library“doMÞes“not“ha•²!v“e–É`a˜full“set“of“âvi˜áediting“functions,‘Òit“doMÞes“con²!tainŽ¡‘Genough–to›žallo²!w“simple˜editing“of“the˜line.‘.ƒThe˜Readline“âvi“ámo•MÞde˜b“eha•²!v“es–as˜spMÞecied“inŽ¡‘Gthe–¦fçposix“ástandard.Ž©33‘!GIn–|Uorder›|Vto“switc•²!h˜in“teractiv“ely‘|UbMÞet“w“een˜âemacs–|Uáand˜âvi“áediting˜moMÞdes,‘„¿use˜the“commandŽ¡‘GèM-C-j–iá(bšMÞound‘jto“emacs-editing-mo˜de“when“in‘jâvi“ámo˜de“and“to‘jvi-editing-mo˜de“in“âemacsŽ¡‘GámošMÞde).‘ÝÝThe–¦fReadline“default“is“âemacs“ámo˜de.Ž¦‘!GWhen–›‰yš²!ou“en˜ter“a“line“in“âvi“ámoMÞde,‘µy˜ou‘›Šare“already“placed“in“`insertion'“moMÞde,‘µas“if“y˜ouŽ¡‘Ghad–ˆtš²!ypMÞed“an‘ˆ`âiá'.‘ÓÃPressing“âESC“áswitc˜hes‘ˆy˜ou“in˜to“`command'“moMÞde,‘Ž(where“y˜ou‘ˆcan“edit“theŽ¡‘Gtext–of“the“line“with“the“standard“âvi“ámo•²!v“emen“t›k“eys,‘);mo“v“e˜to˜previous˜history˜lines˜withŽ¡‘G`âká'–¦fand“subsequen²!t“lines“with“`âjá',“and“so“forth.ŽŽŒ‹&:¹Ÿò‘GáChapter–¦f2:‘ÝÝProgramming“with“GNU“Readline’Ê—22ŽŽŽ ƒ33 ý ÌÍ‘GëS2‘  ¸QProgramming–z³with“GNU“ReadlineŽŽŸl‘GáThis–ü cš²!hapter‘üdescribMÞes“the“in˜terface‘übMÞet˜w˜een“the“çgnu›üáReadline“Library“and˜other“programs.Ž¤
33‘GIf–}Éyš²!ou“are“a“programmer,‘…èand“y˜ou“wish“to“include“the“features“found“in“çgnu“áReadline“suc˜hŽ¡‘Gas–ý­completion,›lline“editing,˜and“in•²!teractiv“e–ý­history“manipulation“in“yš²!our“o˜wn“programs,‘lthisŽ¡‘Gsection–¦fis“for“y²!ou.ŽŸ°\‘Gë\2.1‘™Basic‘f@BehaŒÌviorŽŽŸ33‘GáMan•²!y›’programs‘’pro“vide˜a˜command‘’line˜in“terface,‘Ísuc“h˜as˜âmailá,‘Íâftpá,‘Íand‘’âshá.‘ ôF‘ÿeor˜suc“hŽ¡‘Gprograms,‘x³the–mFdefault“bMÞehaš²!viour“of“Readline“is“sucien˜t.‘ÊÓThis“section“describMÞes“ho˜w“to“useŽ¡‘GReadline–!tin“the‘!usimplest“w•²!a“y›!tp•MÞossible,‘@8p“erhaps˜to˜replace‘!ucalls˜in˜y²!our˜co“de‘!uto˜âgets()˜áorŽ¡‘Gâfgets()á.Ž©a‘!GThe–èæfunction“âreadline()“áprin²!ts“a“prompt“åprompt‘%çáand“then“reads“and“returns“a“singleŽ¡‘Gline–í¨of“text“from“the“user.‘³¢If“åprompt‘*¨áis“âNULL“áor“the“emptš²!y“string,‘ÿxno“prompt“is“displa˜y˜ed.Ž¡‘GThe–u}line›u|âreadline“áreturns“is˜alloMÞcated“with“âmalloc()á;‘Ýthe˜caller“should“âfree()˜áthe“lineŽ¡‘Gwhen–¦fit“has“nished“with“it.‘ÝÝThe“declaration“for“âreadline“áin“ANSI“C“isŽŸ`‘.ùœâchar–¿ª*readline“(const“char“*èpromptâ);Ž¦‘GáSo,–¦fone“mighš²!t“sa˜yŽ¦‘.ùœâchar–¿ª*line“=“readline“("Enter“a“line:“");Ž¦‘Gáin–¾—order“to›¾–read“a“line“of“text“from˜the“user.‘˜The“line“returned“has“the˜nal“newline“remo•²!v“ed,Ž¡‘Gso–¦fonly“the“text“remains.Ž¦‘!GIf–ÜÆâreadline“áencounš²!ters“an“âEOF“áwhile“reading“the“line,‘*^and“the“line“is“empt˜y“at“thatŽ¡‘GpMÞoin²!t,›^then–‡â(char‘¦f*)NULL“áis“returned.‘ÓoOtherwise,˜the“line“is‘‡ended“just“as“if“a“newline“hadŽ¡‘Gb•MÞeen‘¦ft²!yp“ed.Ž¦‘!GIf–=Ayš²!ou“w˜an˜t›=Bthe“user“to“bMÞe˜able“to“get“at“the˜line“later,›RI(with“âC-p“áfor“example),˜yš²!ou“m˜ustŽ¡‘Gcall–¦fâadd_history()“áto“sa•²!v“e–¦fthe“line“a•²!w“a“y–¦fin“a“åhistory‘–~álist“of“suc²!h“lines.Ž¦‘.ùœâadd_history‘¿ª(line);Ž¦‘GáF›ÿeor–¦ffull“details“on“the“GNU“History“Library˜,“see“the“assoMÞciated“man²!ual.Ž¦‘!GIt–Ãis“preferable“to“a•²!v“oid‘ÃŒsa“ving›Ãempt“y˜lines˜on˜the˜history˜list,‘ÊÖsince˜users˜rarely˜ha“v“e˜aŽ¡‘Gburning–‘4need“to›‘5reuse“a“blank“line.‘ÖÍHere“is“a“function“whic²!h“usefully˜replaces“the“standardŽ¡‘Gâgets()–¦fálibrary“function,“and“has“the“adv‘ÿdDanš²!tage“of“no“static“buer“to“o˜v˜er
o˜w:Ž¦‘.ùœâ/*–¿ªA“static“variable“for“holding“the“line.“*/Ž¡‘.ùœstatic–¿ªchar“*line_read“=“(char“*)NULL;ŽŸff‘.ùœ/*–¿ªRead“a“string,“and“return“a“pointer“to“it.Ž¡‘@8šReturns–¿ªNULL“on“EOF.“*/Ž¡‘.ùœchar‘¿ª*Ž¡‘.ùœrl_gets‘¿ª()Ž¡‘.ùœ{Ž¡‘:xð/*–¿ªIf“the“buffer“has“already“been“allocated,Ž¡‘K·îreturn–¿ªthe“memory“to“the“free“pool.“*/Ž¡‘:xðif‘¿ª(line_read)Ž¡‘EøD{Ž¡‘Qw˜free‘¿ª(line_read);ŽŽŒ‹&BúŸò‘GáChapter–¦f2:‘ÝÝProgramming“with“GNU“Readline’Ê—23ŽŽŽ ƒ33 ý ÌÍ‘Qw˜âline_read–¿ª=“(char“*)NULL;Ž¤
33‘EøD}Ž©ff‘:xð/*–¿ªGet“a“line“from“the“user.“*/Ž¡‘:xðline_read–¿ª=“readline“("");Ž¦‘:xð/*–¿ªIf“the“line“has“any“text“in“it,Ž¡‘K·îsave–¿ªit“on“the“history.“*/Ž¡‘:xðif–¿ª(line_read“&&“*line_read)Ž¡‘EøDadd_history‘¿ª(line_read);Ž¦‘:xðreturn‘¿ª(line_read);Ž¡‘.ùœ}Ž©n}‘!GáThis–`ˆfunction“givš²!es“the“user“the“default“bMÞeha˜viour“of“âTAB“ácompletion:‘ºîcompletion“on“leŽ¡‘Gnames.‘ôÞIf‘®yš²!ou–®do“not“w˜an˜t“Readline“to“complete“on–®lenames,‘¯ûy˜ou“can–®c˜hange“the“bindingŽ¡‘Gof–¦fthe“âTAB“ák²!ey“with“ârl_bind_key()á.ŽŸn|‘.ùœâint–¿ªrl_bind_key“(int“èkeyâ,“rl_command_func_t“*èfunctionâ);Ž¦‘!Grl_bind_key()–—átakš²!es“t˜w˜o––argumen˜ts:‘ž?åk˜ey‘ö¯áis“the–—c˜haracter“that“y˜ou“w˜an˜t‘–to“bind,‘£andŽ¡‘Gåfunction–ªäáis“the“address“of‘ªåthe“function“to“call“when“åk²!ey‘šüáis“pressed.‘ëXBinding“âTAB“áto“ârl_Ž¡‘Ginsert()–§wámak²!es›§xâTAB“áinsert“itself.‘áârl_bind_key()“áreturns“non-zero˜if“åk²!ey‘—áis“not˜a“v‘ÿdDalidŽ¡‘GASCIšMÞI–¦fc²!haracter“co˜de“(b˜et•²!w“een–¦f0“and“255).Ž¤n|‘!GThš²!us,–¦fto“disable“the“default“âTAB“ábMÞeha˜vior,“the“follo˜wing“suces:Ž¦‘.ùœârl_bind_key–¿ª('\t',“rl_insert);Ž¡‘!GáThis–+cošMÞde“should‘+b˜e“executed“once“at‘+the“start“of“yš²!our“program;‘T,y˜ou“migh˜t‘+write“a“func-Ž¤
33‘Gtion–ïøcalled›ï÷âinitialize_readline()“áwhic²!h˜pMÞerforms“this˜and“other˜desired“initializations,Ž¡‘Gsuc²!h–¦fas“installing“custom“completers“(see“Section“2.6“[Custom“Completers],“page“46).ŽŸXï‘Gë\2.2‘™Custom‘f@F‘þ¦functionsŽŽŸ33‘GáReadline–Eçproš²!vides“man˜y“functions“for‘Eæmanipulating“the“text“of“the“line,‘Y3but“it“isn't“pMÞossibleŽ¡‘Gto–dcan²!ticipate“the›dbneeds“of“all“programs.‘ÓThis“section“describMÞes“the˜v‘ÿdDarious“functions“andŽ¡‘Gv‘ÿdDariables–"dened“within“the‘"Readline“library“whicš²!h“allo˜w“a“user‘"program“to“add“customizedŽ¡‘Gfunctionalit²!y–¦fto“Readline.ŽŸn|‘!GBefore–aÛdeclaring›aÜan²!y“functions“that“customize˜Readline's“bMÞeha²!vior,‘¸or“using˜an²!y“func-Ž¡‘Gtionalit•²!y›xQReadline‘xRpro“vides˜in–xRother˜coMÞde,‘ìÌan˜application˜writer“should˜include“the˜leŽ¡‘Gâ<readline/readline.h>–‡áin›†an²!y“le“that“uses˜Readline's“features.‘û?Since“some“of˜the“de-Ž¡‘Gnitions–¾„in›¾…âreadline.h“áuse“the“âstdio˜álibrary‘ÿe,‘Ä‹the˜le“â<stdio.h>“áshould“bMÞe˜included“bMÞeforeŽ¡‘Gâreadline.há.Ž¦‘!Gâreadline.h–¬2ádenes›¬3a“C‘¬1preproMÞcessor“v‘ÿdDariable˜that“should“bMÞe˜treated“as“an˜in²!teger,‘­¥âRL_Ž¡‘GREADLINE_VERSIONá,‘Û&whic•²!h›¨(ma“y˜b•MÞe˜used˜to˜conditionally˜compile˜application˜co“de˜dep“endingŽ¡‘Gon–4üthe“installed›4ýReadline“v²!ersion.‘‰ŸThe˜v‘ÿdDalue“is“a“hexadecimal“encoMÞding“of˜the“ma‘›»jor“andŽ¡‘Gminor–Pvš²!ersion“n˜um˜bMÞers›Oof“the“library‘ÿe,‘8Šof“the“form˜0xåMMmmá.‘<›åMM‘Jþáis˜the“t•²!w“o-digit‘Pma‘›»jorŽ¡‘Gv•²!ersion›z.n“um“bMÞer;‘ˆëåmm‘z-áis˜the˜t“w“o-digit‘z-minor˜v“ersion˜n“um“bMÞer.‘ÏF‘ÿeor˜Readline˜4.2,‘ƒfor˜example,Ž¡‘Gthe–¦fv‘ÿdDalue“of“âRL_READLINE_VERSION“áw²!ould“bMÞe“â0x0402á.ŽŽŒ‹&NÖŸò‘GáChapter–¦f2:‘ÝÝProgramming“with“GNU“Readline’Ê—24ŽŽŽ ƒ33 ý ÌÍ‘Gëe2.2.1‘d(Readline‘íMT–áypiedefsŽŽŸ³3‘GáF–ÿeor›¦freadabilit²!y“,˜w•²!e˜declare˜a˜n“um“bMÞer˜of˜new˜ob‘›»ject˜t“yp•MÞes,˜all˜p“oin²!ters˜to˜functions.Ž¤¶Ü‘!GThe–IÖreason›IÕfor“declaring˜these“new˜t²!ypMÞes“is˜to“mak²!e˜it“easier˜to“write˜coMÞde“describingŽ©
33‘GpMÞoinš²!ters–¦fto“C“functions“with“appropriately“protot˜ypMÞed“argumen˜ts“and“return“v‘ÿdDalues.Ž¡‘!GF‘ÿeor›m½instance,‘Ÿ“sa•²!y‘m¾w“e˜w“an“t–m¾to˜declare˜a“v‘ÿdDariable˜åfunc‘Âáas˜a˜pMÞoin²!ter“to˜a“function˜whic²!hŽ¦‘Gtak•²!es›©t“w“o‘¨âint˜áargumen“ts–¨and˜returns“an˜âint“á(this˜is“the˜t²!ypMÞe“of˜all“of˜the“Readline˜bindableŽ¦‘Gfunctions).‘ÝÝInstead–¦fof“the“classic“C“declarationŽ©¶Û‘!Gâint‘¦f(*func)();Ž¡‘Gáor–¦fthe“ANSI-C“st²!yle“declarationŽ¡‘!Gâint–¦f(*func)(int,“int);Ž¡‘Gáw•²!e›¦fma“y˜writeŽ¡‘!Gârl_command_func_t‘¦f*func;Ž¦‘!GáThe–¦ffull“list“of“function“pMÞoinš²!ter“t˜ypMÞes“a˜v‘ÿdDailable“isŽŸø°‘Gâtypedef–¦fint“rl_command_func_t“(int,“int);Ž¤
33‘Gtypedef–¦fchar“*rl_compentry_func_t“(const“char“*,“int);Ž¡‘Gtypedef–¦fchar“**rl_completion_func_t“(const“char“*,“int,“int);Ž¡‘Gtypedef–¦fchar“*rl_quote_func_t“(char“*,“int,“char“*);Ž¡‘Gtypedef–¦fchar“*rl_dequote_func_t“(char“*,“int);Ž¡‘Gtypedef–¦fint“rl_compignore_func_t“(char“**);Ž¡‘Gtypedef–¦fvoid“rl_compdisp_func_t“(char“**,“int,“int);Ž¡‘Gtypedef–¦fint“rl_hook_func_t“(void);Ž¡‘Gtypedef–¦fint“rl_getc_func_t“(FILE“*);Ž¡‘Gtypedef–¦fint“rl_linebuf_func_t“(char“*,“int);Ž¡‘Gtypedef–¦fint“rl_intfunc_t“(int);Ž¡‘G#define–¦frl_ivoidfunc_t“rl_hook_func_tŽ¡‘Gtypedef–¦fint“rl_icpfunc_t“(char“*);Ž¡‘Gtypedef–¦fint“rl_icppfunc_t“(char“**);Ž¡‘Gtypedef–¦fvoid“rl_voidfunc_t“(void);Ž¡‘Gtypedef–¦fvoid“rl_vintfunc_t“(int);Ž¡‘Gtypedef–¦fvoid“rl_vcpfunc_t“(char“*);Ž¡‘Gtypedef–¦fvoid“rl_vcppfunc_t“(char“**);ŽŸAÕ‘Gëe2.2.2‘d(W›þÄ£riting–íMa“New“F˜unctionŽŽŸ³3‘GáIn–»Öorder›»×to“write“new˜functions“for“Readline,‘Á3y²!ou“need“to˜kno²!w“the“calling˜con•²!v“en“tions‘»ÖforŽ¡‘Gk•²!eybMÞoard-in“v“ok“ed–™Úfunctions,‘œ\and“the›™Ùnames“of“the˜v‘ÿdDariables“that“describMÞe“the˜curren²!t“stateŽ¡‘Gof–¦fthe“line“read“so“far.Ž¤¶Ü‘!GThe–¦fcalling“sequence“for“a“command“âfoo“áloMÞoks“lik²!eŽ¦‘.ùœâint–¿ªfoo“(int“count,“int“key)Ž¡‘Gáwhere–Pgåcounš²!t‘fáis“the‘Pfn˜umeric“argumen˜t›Pf(or“1˜if“defaulted)˜and“åk²!ey‘@~áis“the˜k²!ey“that˜in•²!v“ok“edŽ©
33‘Gthis‘¦ffunction.Ž¡‘!GIt–Äis›Äcompletely“up˜to“the“function˜as“to“what˜should“bMÞe˜done“with“the˜nš²!umeric“argumen˜t.Ž¦‘GSome–Ï;functions“use“it“as“a“repMÞeat“coun²!t,›psome‘Ï:as“a“
ag,˜and“others“to“c²!hoMÞose“alternateŽ¦‘GbMÞehaš²!vior–4ñ(refreshing‘4ðthe“curren˜t›4ðline“as˜oppMÞosed“to“refreshing˜the“screen,‘˜’for“example).ŽŽŒ‹&[ Ÿò‘GáChapter–¦f2:‘ÝÝProgramming“with“GNU“Readline’Ê—25ŽŽŽ ƒ33 ý ÌÍ‘GSome–ýc²!hoMÞose“to›ý&ignore“it.‘á±In˜general,‘©if“a˜function“uses“the“nš²!umeric“argumen˜t‘ý&as“a“repMÞeatŽ¤
33‘Gcoun²!t,‘itit–Z7should“bMÞe›Z8able“to“do˜something“useful“with˜bMÞoth“negativ²!e“and˜pMÞositivš²!e“argumen˜ts.Ž¡‘GAš²!t–¦fthe“v˜ery“least,“it“should“bMÞe“a˜w˜are“that“it“can“bMÞe“passed“a“negativ˜e“argumen˜t.ŽŸâ‘!GA‘Uícommand–V&function“should“return“0‘Vif“its“action“completes“successfully‘ÿe,‘fand“a“non-zeroŽ¡‘Gv‘ÿdDalue–´.if›´-some“error˜oMÞccurs.‘4This“is˜the“con•²!v“en“tion˜obMÞey“ed›´.b“y˜all–´-of˜the“builtin˜ReadlineŽ¡‘Gbindable–¦fcommand“functions.ŽŸ?‘Gë\2.3‘™Readline‘f@V‘þ¦fariablesŽŽŸ33‘GáThese–¦fv›ÿdDariables“are“a²!v˜ailable“to“function“writers.Ž©Ü’&–3[V‘ÿeariable]ŽŽ‘Gó@ßê<x
                     90: cmtt10ë@char–LÉ*“rl_line_bufferŽ¡‘.ùœáThis–¾is“the“line“gathered›¾so“far.‘$ºY‘ÿeou“are“w²!elcome“to“moMÞdify˜the“con•²!ten“ts–¾of“the“line,Ž¡‘.ùœbut–Dqsee›DrSection“2.4.5˜[Allo²!wing“Undoing],‘kôpage˜34.‘·ÿThe˜function“ârl_extend_line_Ž¡‘.ùœbuffer–¦fáis“a²!v‘ÿdDailable“to“increase“the“memory“alloMÞcated“to“ârl_line_bufferá.Ž¦’&–3[V‘ÿeariable]ŽŽ‘Gë@int‘LÉrl_pointŽ¡‘.ùœáThe–¦foset“of“the“curren²!t“cursor“pMÞosition“in“ârl_line_buffer“á(the“äp‘ÿp¹oint‘&  êá).Ž¦’&–3[V‘ÿeariable]ŽŽ‘Gë@int‘LÉrl_endŽ¡‘.ùœáThe›Y6n•²!um“bMÞer˜of‘Y5c“haracters˜presen“t˜in˜ârl_line_bufferá.‘Ä"When˜ârl_point˜áis‘Y5at˜the˜endŽ¡‘.ùœof–¦fthe“line,“ârl_point“áand“ârl_end“áare“equal.ŽŸÝ’&–3[V‘ÿeariable]ŽŽ‘Gë@int‘LÉrl_markŽ¡‘.ùœáThe›n·åmark‘¼á(sa•²!v“ed˜pMÞosition)˜in˜the‘n¸curren“t˜line.‘6ÑIf˜set,‘ Ìthe˜mark˜and˜pMÞoin“t‘n¸dene˜aŽ¡‘.ùœär–ÿp¹e“gioná.Ž¦’&–3[V‘ÿeariable]ŽŽ‘Gë@int‘LÉrl_doneŽ¡‘.ùœáSetting–˜Ÿthis“to“a“non-zero“v‘ÿdDalue“causes‘˜žReadline“to“return“the“curren²!t“line“immediately‘ÿe.Ž¦’&–3[V‘ÿeariable]ŽŽ‘Gë@int‘LÉrl_num_chars_to_readŽ¡‘.ùœáSetting–ôthis›ôto“a“pMÞositiv²!e˜v‘ÿdDalue“bMÞefore“calling˜âreadline()“ácauses“Readline˜to“returnŽ¡‘.ùœafter–Hßaccepting“that“man•²!y›HÞc“haracters,‘q}rather–Hßthan“reading“up˜to“a“c²!haracter“bMÞoundŽ¡‘.ùœto‘¦fâaccept-lineá.Ž¦’&–3[V‘ÿeariable]ŽŽ‘Gë@int‘LÉrl_pending_inputŽ¡‘.ùœáSetting–this“to“a“v‘ÿdDalue“makš²!es‘€it“the“next“k˜eystrok˜e“read.‘§åThis“is‘€a“w˜a˜y“to“stu“a“singleŽ¡‘.ùœc•²!haracter›¦fin“to˜the˜input˜stream.ŽŸÝ’&–3[V‘ÿeariable]ŽŽ‘Gë@int‘LÉrl_dispatchingŽ¡‘.ùœáSet–èWto›èVa“non-zero˜v‘ÿdDalue“if˜a“function“is˜bMÞeing“called˜from“a˜k²!ey“binding;‘'±zero“otherwise.Ž¡‘.ùœApplication–JOfunctions“can“test“this“to“disco•²!v“er–JOwhether“they“w²!ere“called“directly“orŽ¡‘.ùœbš²!y–¦fReadline's“dispatc˜hing“mec˜hanism.Ž¦’&–3[V‘ÿeariable]ŽŽ‘Gë@int‘LÉrl_erase_empty_lineŽ¡‘.ùœáSetting–…«this›…¬to“a“non-zero˜v‘ÿdDalue“causes“Readline˜to“completely“erase˜the“curren²!tŽ¡‘.ùœline,›L[including–÷÷an²!y“prompt,˜anš²!y“time“a“newline“is“t˜ypMÞed‘÷øas“the“only“c˜haracter“onŽ¡‘.ùœan–\
otherwise-emptš²!y“line.‘þÓThe“cursor“is“mo˜v˜ed“to“the‘\bMÞeginning“of“the“newly-blankŽ¡‘.ùœline.ŽŽŒ‹&g(Ÿò‘GáChapter–¦f2:‘ÝÝProgramming“with“GNU“Readline’Ê—26ŽŽŽ ƒ33 ý ÌÍ’&–3[V‘ÿeariable]ŽŽ‘Gë@char–LÉ*“rl_promptŽ¤
33‘.ùœáThe–#=prompt“Readline“uses.‘²%This“is‘#>set“from“the“argumen²!t“to“âreadline()á,‘=yand“shouldŽ¡‘.ùœnot–:^bMÞe“assigned“to›:]directly‘ÿe.‘¹ÛThe“ârl_set_prompt()“áfunction˜(see“Section“2.4.6“[Redis-Ž¡‘.ùœplaš²!y],–¦fpage“35)“ma˜y“bšMÞe“used“to“mo˜dify“the“prompt“string“after“calling“âreadline()á.Ž©p¤’&–3[V‘ÿeariable]ŽŽ‘Gë@char–LÉ*“rl_display_promptŽ¡‘.ùœáThe›ÏÛstring‘ÏÜdispla•²!y“ed˜as–ÏÜthe˜prompt.‘Z=This˜is“usually˜iden²!tical“to˜årl‘Ä>‰x³HøŽ‘Ñtpromptá,‘Ú9but˜ma²!yŽ¡‘.ùœbšMÞe–[c²!hanged“temp˜orarily“b²!y“functions“that“use“the“prompt“string“as“a“message“area,Ž¡‘.ùœsucš²!h–¦fas“incremen˜tal“searc˜h.ŽŸp¥’&–3[V‘ÿeariable]ŽŽ‘Gë@int‘LÉrl_already_promptedŽ¡‘.ùœáIf–\Xan“application“wishes›\Wto“displa²!y“the“prompt“itself,‘‰Ôrather˜than“ha•²!v“e–\XReadline“doŽ¡‘.ùœit–ï9the“rst“time“âreadline()“áis“called,‘&mit“should“set“this“v›ÿdDariable“to“a“non-zero“v˜alueŽ¡‘.ùœafter–Ëdisplaš²!ying‘Êthe“prompt.‘šThe“prompt“m˜ust“also›ÊbMÞe“passed“as“the˜argumen²!t“toŽ¡‘.ùœâreadline()–÷ áso“the“redisplaš²!y“functions“can“upMÞdate‘÷the“displa˜y“propMÞerly‘ÿe.‘ÏÆThe“callingŽ¡‘.ùœapplication–¦fis“respMÞonsible“for“managing“the“v‘ÿdDalue;“Readline“nev²!er“sets“it.Ž¦’&–3[V‘ÿeariable]ŽŽ‘Gë@const–LÉchar“*“rl_library_versionŽ¡‘.ùœáThe–¦fvš²!ersion“n˜um˜bMÞer“of“this“revision“of“the“library‘ÿe.ŽŸp¥’&–3[V‘ÿeariable]ŽŽ‘Gë@int‘LÉrl_readline_versionŽ¡‘.ùœáAn–’in²!teger›“encoMÞding“the˜currenš²!t“v˜ersion›“of“the˜library‘ÿe.‘4bThe“encoMÞding˜is“of˜the“formŽ¡‘.ùœ0xåMMmmá,‘‘àwhere–bÈåMM‘’váis‘bÇthe“t•²!w“o-digit–bÈma‘›»jor“vš²!ersion“n˜um˜bMÞer,‘‘àand“åmm‘bÇáis“the“t˜w˜o-Ž¡‘.ùœdigit–{¶minor‘{·vš²!ersion“n˜um˜bMÞer.‘]ÏF‘ÿeor“example,–±
                     91: for‘{·Readline-4.2,“ârl_readline_versionŽ¡‘.ùœáw•²!ould›¦fha“v“e˜the˜v‘ÿdDalue˜0x0402.Ž¦’&–3[V‘ÿeariable]ŽŽ‘Gë@int‘LÉrl_gnu_readline_pŽ¡‘.ùœáAlw•²!a“ys–¦fset“to“1,“denoting“that“this“is“çgnu“áreadline“rather“than“some“em²!ulation.Ž¦’&–3[V‘ÿeariable]ŽŽ‘Gë@const–LÉchar“*“rl_terminal_nameŽ¡‘.ùœáThe›_terminal–_t²!ypMÞe,‘mKused“for˜initialization.‘ÆIf˜not“set˜b²!y“the˜application,‘mJReadline˜setsŽ¡‘.ùœthis–¦fto“the“v›ÿdDalue“of“the“âTERM“áen•²!vironmen“t–¦fv˜ariable“the“rst“time“it“is“called.ŽŸp¥’&–3[V‘ÿeariable]ŽŽ‘Gë@const–LÉchar“*“rl_readline_nameŽ¡‘.ùœáThis–¿ƒv‘ÿdDariable“is“set“to“a“unique“name‘¿„bš²!y“eac˜h“application“using“Readline.‘)4The“v‘ÿdDalueŽ¡‘.ùœallo²!ws–]wconditional“parsing›]vof“the“inputrc“le“(see“Section˜1.3.2“[Conditional“Init“Con-Ž¡‘.ùœstructs],–¦fpage“11).Ž¦’&–3[V‘ÿeariable]ŽŽ‘Gë@FILE–LÉ*“rl_instreamŽ¡‘.ùœáThe–í€stdio“stream“from“whic²!h“Readline“reads“input.‘³*If“âNULLá,‘?FReadline“defaults“toŽ¡‘.ùœåstdiná.ŽŸp¥’&–3[V‘ÿeariable]ŽŽ‘Gë@FILE–LÉ*“rl_outstreamŽ¡‘.ùœáThe–#Rstdio›#Qstream“to“whic²!h˜Readline“pMÞerforms“output.‘T If˜âNULLá,‘BReadline˜defaults“toŽ¡‘.ùœåstdoutá.Ž¦’&–3[V‘ÿeariable]ŽŽ‘Gë@int‘LÉrl_prefer_env_winsizeŽ¡‘.ùœáIf–h non-zero,‘t”Readline“givš²!es“v‘ÿdDalues“found“in“the‘hâLINES“áand“âCOLUMNS“áen˜vironmen˜t“v‘ÿdDari-Ž¡‘.ùœables–éžgreater“precedence“than“v‘ÿdDalues“fetcš²!hed“from“the“k˜ernel“when“computing“theŽ¡‘.ùœscreen‘¦fdimensions.ŽŽŒ‹&s½Ÿò‘GáChapter–¦f2:‘ÝÝProgramming“with“GNU“Readline’Ê—27ŽŽŽ ƒ33 ý ÌÍ’&–3[V‘ÿeariable]ŽŽ‘Gë@rl_command_func_t–LÉ*“rl_last_funcŽ¤
33‘.ùœáThe–-)address“of“the“last“command“function“Readline‘-*executed.‘r&Ma²!y“bMÞe“used“to“testŽ¡‘.ùœwhether–¦for“not“a“function“is“bMÞeing“executed“t²!wice“in“succession,“for“example.Ž©fg’&–3[V‘ÿeariable]ŽŽ‘Gë@rl_hook_func_t–LÉ*“rl_startup_hookŽ¡‘.ùœáIf–ºnon-zero,‘>this“is›»the“address“of˜a“function˜to“call“just˜bMÞefore“âreadline˜áprin²!ts“theŽ¡‘.ùœrst‘¦fprompt.ŽŸfh’&–3[V‘ÿeariable]ŽŽ‘Gë@rl_hook_func_t–LÉ*“rl_pre_input_hookŽ¡‘.ùœáIf–CÜnon-zero,‘k9this›CÛis“the“address˜of“a“function˜to“call“after˜the“rst“prompt˜has“bMÞeenŽ¡‘.ùœprinš²!ted–¦fand“just“bMÞefore“âreadline“ástarts“reading“input“c˜haracters.Ž¦’&–3[V‘ÿeariable]ŽŽ‘Gë@rl_hook_func_t–LÉ*“rl_event_hookŽ¡‘.ùœáIf–ânon-zero,‘0ìthis“is“the‘âaddress“of“a“function“to“call“p•MÞerio“dically–âwhen“Readline“isŽ¡‘.ùœw²!aiting–€*for“terminal–€)input.‘ÑBy“default,‘‡Ðthis›€*will“bMÞe˜called˜at˜most˜ten“times˜a˜secondŽ¡‘.ùœif–¦fthere“is“no“k²!eybMÞoard“input.Ž¦’&–3[V‘ÿeariable]ŽŽ‘Gë@rl_getc_func_t–LÉ*“rl_getc_functionŽ¡‘.ùœáIf–§Wnon-zero,‘§“Readline“will“call“indirectly“through“this“pMÞoinš²!ter“to“get“a“c˜haracter“fromŽ¡‘.ùœthe–›input“stream.‘€EBy“default,‘ÅÃit“is‘œset“to“ârl_getcá,‘ÅÄthe“default“Readline“c²!haracter“inputŽ¡‘.ùœfunction–»Í(see“Section›»Î2.4.8“[Character“Input],‘ê¸page˜36).‘ªIn“general,‘ê¹an“application“thatŽ¡‘.ùœsets›¦fårl‘Ä>‰x³HøŽ–Ñtgetc‘Ä>‰x³HøŽ“function˜áshould˜consider˜setting˜årl‘Ä>‰x³HøŽ“input‘Ä>‰x³HøŽ“a²!v‘ÿdDailable‘Ä>‰x³HøŽ“hoMÞok‘Pjáas˜w²!ell.Ž¦’&–3[V‘ÿeariable]ŽŽ‘Gë@rl_hook_func_t–LÉ*“rl_signal_event_hookŽ¡‘.ùœáIf–>Ûnon-zero,‘Sthis“is‘>Üthe“address“of“a“function“to“call“if“a“read“system“call“is“in²!terruptedŽ¡‘.ùœwhen–¦fReadline“is“reading“terminal“input.ŽŸfh’&–3[V‘ÿeariable]ŽŽ‘Gë@rl_hook_func_t–LÉ*“rl_input_available_hookŽ¡‘.ùœáIf–z÷non-zero,‘ƒ§Readline›zöwill“use“this“function's“return“v‘ÿdDalue“when˜it“needs“to“determineŽ¡‘.ùœwhether–àor“not“there‘áis“aš²!v‘ÿdDailable“input“on“the“curren˜t“input“source.‘       8LThe“defaultŽ¡‘.ùœhoMÞok›
#c•²!hec“ks–
$ârl_instreamá;‘@:if˜an“application˜is“using˜a˜dieren²!t“input˜source,‘+Ëit˜shouldŽ¡‘.ùœset–îthe›ïhoMÞok“appropriately‘ÿe.‘óvReadline“queries“for“a²!v‘ÿdDailable˜input“when“implemen²!tingŽ¡‘.ùœin•²!tra-k“ey-sequence–cStimeouts“during“input“and“incremenš²!tal“searc˜hes.‘Ç‚This“ma˜y“use“anŽ¡‘.ùœapplication-sp•MÞecic›€¥timeout‘€¦b“efore˜returning–€¦a˜v‘ÿdDalue;‘â‘Readline˜uses“the˜v‘ÿdDalue“passed˜toŽ¡‘.ùœârl_set_keyboard_input_timeout()–ê9áor›ê:the“v‘ÿdDalue˜of“the˜user-settable“åk²!eyseq-timeoutŽ¡‘.ùœáv‘ÿdDariable.‘˜This›äuis–ätdesigned“for“use“b²!y“applications˜using“Readline's“callbacš²!k“in˜terfaceŽ¡‘.ùœ(see–‘RSection›‘S2.4.12“[Alternate˜In²!terface],–•‰page˜40),“whic•²!h‘‘Rma“y˜not–‘Ruse˜the“traditionalŽ¡‘.ùœâread(2)–ÞKáand“le“descriptor“inš²!terface,‘,Cor“other“applications“using“a“dieren˜t“inputŽ¡‘.ùœmecš²!hanism.‘LþIf–Ëqan“application“uses“an“input“mec˜hanism“or“hošMÞok“that“can“p˜oten²!tiallyŽ¡‘.ùœexceed–d’the“v‘ÿdDalue“of›d‘åk²!eyseq-timeoutá,‘”it“should“increase“the“timeout˜or“set“this“hoMÞokŽ¡‘.ùœappropriately–àîev²!en›àïwhen“not˜using“the˜callbacš²!k“in˜terface.‘wIn“general,‘ï‘an“applicationŽ¡‘.ùœthat–¦fsets“årl‘Ä>‰x³HøŽ–Ñtgetc‘Ä>‰x³HøŽ“function–¦fáshould“consider“setting“årl‘Ä>‰x³HøŽ–Ñtinput‘Ä>‰x³HøŽ“aš²!v‘ÿdDailable‘Ä>‰x³HøŽ“hoMÞok‘Pjáas‘¦fw˜ell.Ž¦’&–3[V‘ÿeariable]ŽŽ‘Gë@rl_voidfunc_t–LÉ*“rl_redisplay_functionŽ¡‘.ùœáIf–S­non-zero,‘~ÿReadline“will“call“indirectly“through“this‘S®pšMÞoin²!ter“to“up˜date“the“displa²!yŽ¡‘.ùœwith–=Ôthe“curren•²!t›=Õcon“ten“ts–=Ôof“the“editing“buer.‘»By“default,‘R¾it“is˜set“to“ârl_redisplayá,Ž¡‘.ùœthe–¦fdefault“Readline“redisplaš²!y“function“(see“Section“2.4.6“[Redispla˜y],“page“35).ŽŽŒ‹&.Ÿò‘GáChapter–¦f2:‘ÝÝProgramming“with“GNU“Readline’Ê—28ŽŽŽ ƒ33 ý ÌÍ’&–3[V‘ÿeariable]ŽŽ‘Gë@rl_vintfunc_t–LÉ*“rl_prep_term_functionŽ¤
33‘.ùœáIf–âÏnon-zero,‘     íReadline“will›âÎcall“indirectly“through“this“pMÞoin²!ter“to˜initialize“the“terminal.Ž¡‘.ùœThe–ufunction“takš²!es“a‘u€single“argumen˜t,‘©Gan“âint“á
ag“that“sa˜ys“whether‘u€or“not“to“useŽ¡‘.ùœeigh•²!t-bit›Èc“haracters.‘5By˜default,‘5athis˜is˜set˜to˜ârl_prep_terminal‘Éá(see˜Section˜2.4.9Ž¡‘.ùœ[T‘ÿeerminal–¦fManagemen²!t],“page“37).Ž©Z[’&–3[V‘ÿeariable]ŽŽ‘Gë@rl_voidfunc_t–LÉ*“rl_deprep_term_functionŽ¡‘.ùœáIf–eynon-zero,‘•>Readline›ezwill“call˜indirectly“through˜this“pMÞoin²!ter˜to“reset˜the“terminal.Ž¡‘.ùœThis–4function“should“undo‘4the“eects“of“ârl_prep_term_functioná.‘ˆYBy“default,‘XthisŽ¡‘.ùœis–¦fset“to“ârl_deprep_terminal“á(see“Section“2.4.9“[T‘ÿeerminal“Managemen²!t],“page“37).Ž¦’&–3[V‘ÿeariable]ŽŽ‘Gë@Keymap‘LÉrl_executing_keymapŽ¡‘.ùœáThis–ROv‘ÿdDariable›RNis“set˜to“the˜k²!eymap“(see“Section˜2.4.2“[Keymaps],‘}Hpage“30)˜in“whic²!hŽ¡‘.ùœthe–¦fcurrenš²!tly“executing“readline“function“w˜as“found.ŽŸZZ’&–3[V‘ÿeariable]ŽŽ‘Gë@Keymap‘LÉrl_binding_keymapŽ¡‘.ùœáThis–ROv‘ÿdDariable›RNis“set˜to“the˜k²!eymap“(see“Section˜2.4.2“[Keymaps],‘}Hpage“30)˜in“whic²!hŽ¡‘.ùœthe–¦flast“k²!ey“binding“oMÞccurred.Ž¦’&–3[V‘ÿeariable]ŽŽ‘Gë@char–LÉ*“rl_executing_macroŽ¡‘.ùœáThis–¦fv‘ÿdDariable“is“set“to“the“text“of“anš²!y“curren˜tly-executing“macro.Ž¦’&–3[V‘ÿeariable]ŽŽ‘Gë@int‘LÉrl_executing_keyŽ¡‘.ùœáThe–¦fkš²!ey“that“caused“the“dispatc˜h“to“the“curren˜tly-executing“Readline“function.Ž¦’&–3[V‘ÿeariable]ŽŽ‘Gë@char–LÉ*“rl_executing_keyseqŽ¡‘.ùœáThe–Cùfull“kš²!ey‘Cúsequence“that“caused“the“dispatc˜h“to‘Cúthe“curren˜tly-executing“ReadlineŽ¡‘.ùœfunction.Ž¦’&–3[V‘ÿeariable]ŽŽ‘Gë@int‘LÉrl_key_sequence_lengthŽ¡‘.ùœáThe›¦fn•²!um“bMÞer˜of˜c“haracters˜in˜årl‘Ä>‰x³HøŽ–Ñtexecuting‘Ä>‰x³HøŽ“k²!eyseqá.Ž¦’&–3[V‘ÿeariable]ŽŽ‘Gë@int‘LÉrl_readline_stateŽ¡‘.ùœáA‘#¨v›ÿdDariable‘#Çwith–#Èbit“v˜alues›#Çthat“encapsulate“the“curren²!t˜Readline“state.‘VA‘#¨bit˜is“setŽ¡‘.ùœwith–½the›¾âRL_SETSTATE“ámacro,‘Ç“and“unset˜with“the“âRL_UNSETSTATE˜ámacro.‘“ãUse“theŽ¡‘.ùœâRL_ISSTATE–zámacro“to›z&test“whether“a“particular“state˜bit“is“set.‘X¬Curren²!t“state“bitsŽ¡‘.ùœinclude:ŽŸ¢¢‘.ùœâRL_STATE_NONEŽ¡‘hÊáReadline–¦fhas“not“y²!et“bšMÞeen“called,“nor“has“it“b˜egun“to“initialize.Ž©¢£‘.ùœâRL_STATE_INITIALIZINGŽ¡‘hÊáReadline–¦fis“initializing“its“in²!ternal“data“structures.Ž¦‘.ùœâRL_STATE_INITIALIZEDŽ¡‘hÊáReadline–¦fhas“completed“its“initialization.Ž¦‘.ùœâRL_STATE_TERMPREPPEDŽ¡‘hÊáReadline–r[has“mošMÞdied“the“terminal“mo˜des“to“do“its“o²!wn“input“and“redis-Ž¡‘hÊpla²!y‘ÿe.Ž¦‘.ùœâRL_STATE_READCMDŽ¡‘hÊáReadline–¦fis“reading“a“command“from“the“k²!eybMÞoard.ŽŽŒ‹&‘3Ÿò‘GáChapter–¦f2:‘ÝÝProgramming“with“GNU“Readline’Ê—29ŽŽŽ ƒ33 ý ÌÍ‘.ùœâRL_STATE_METANEXTŽ¤
33‘hÊáReadline–¦fis“reading“more“input“after“reading“the“meta-prex“c²!haracter.Ž©00‘.ùœâRL_STATE_DISPATCHINGŽ¡‘hÊáReadline–¦fis“dispatc²!hing“to“a“command.ŽŸ01‘.ùœâRL_STATE_MOREINPUTŽ¡‘hÊáReadline–¦fis“reading“more“input“while“executing“an“editing“command.Ž¦‘.ùœâRL_STATE_ISEARCHŽ¡‘hÊáReadline–¦fis“pMÞerforming“an“incremenš²!tal“history“searc˜h.ŽŸ01‘.ùœâRL_STATE_NSEARCHŽ¡‘hÊáReadline–¦fis“pMÞerforming“a“non-incremenš²!tal“history“searc˜h.Ž¦‘.ùœâRL_STATE_SEARCHŽ¡‘hÊáReadline–péis‘pêsearcš²!hing“bac˜kw˜ard“or‘pêforw˜ard“through›pêthe“history“for˜a“string.Ž¦‘.ùœâRL_STATE_NUMERICARGŽ¡‘hÊáReadline–¦fis“reading“a“nš²!umeric“argumen˜t.ŽŸ01‘.ùœâRL_STATE_MACROINPUTŽ¡‘hÊáReadline–çis›çcurren²!tly“getting˜its“input˜from“a˜previously-dened“k²!eybMÞoardŽ¡‘hÊmacro.Ž¦‘.ùœâRL_STATE_MACRODEFŽ¡‘hÊáReadline–¦fis“currenš²!tly“reading“c˜haracters“dening“a“k˜eybMÞoard“macro.ŽŸ01‘.ùœâRL_STATE_OVERWRITEŽ¡‘hÊáReadline–¦fis“in“o•²!v“erwrite‘¦fmoMÞde.Ž¦‘.ùœâRL_STATE_COMPLETINGŽ¡‘hÊáReadline–¦fis“pMÞerforming“w²!ord“completion.ŽŸ01‘.ùœâRL_STATE_SIGHANDLERŽ¡‘hÊáReadline–¦fis“curren²!tly“executing“the“readline“signal“handler.Ž¦‘.ùœâRL_STATE_UNDOINGŽ¡‘hÊáReadline–¦fis“pMÞerforming“an“undo.Ž¦‘.ùœâRL_STATE_INPUTPENDINGŽ¡‘hÊáReadline–¦fhas“input“pMÞending“due“to“a“call“to“ârl_execute_next()á.ŽŸ01‘.ùœâRL_STATE_TTYCSAVEDŽ¡‘hÊáReadline–¦fhas“sa•²!v“ed–¦fthe“v‘ÿdDalues“of“the“terminal's“spMÞecial“c²!haracters.Ž¦‘.ùœâRL_STATE_CALLBACKŽ¡‘hÊáReadline–+Žis›+curren²!tly“using˜the“alternate˜(callbacš²!k)“in˜terface‘+(see“Sec-Ž¡‘hÊtion–¦f2.4.12“[Alternate“In²!terface],“page“40).ŽŸ01‘.ùœâRL_STATE_VIMOTIONŽ¡‘hÊáReadline–¦fis“reading“the“argumen²!t“to“a“vi-moMÞde“â"ámotionâ"“ácommand.Ž¦‘.ùœâRL_STATE_MULTIKEYŽ¡‘hÊáReadline–¦fis“reading“a“m•²!ultiple-k“eystrok“e‘¦fcommand.ŽŽŒ‹&œÂŸò‘GáChapter–¦f2:‘ÝÝProgramming“with“GNU“Readline’Ê—30ŽŽŽ ƒ33 ý ÌÍ‘.ùœâRL_STATE_VICMDONCEŽ¤
33‘hÊáReadline–²áhas›²âen²!tered“vi˜command“(mo•²!v“emen“t)–²ámoMÞde˜at“least˜one“timeŽ¡‘hÊduring–¦fthe“curren²!t“call“to“âreadline()á.ŽŸŒT‘.ùœâRL_STATE_DONEŽ¡‘hÊáReadline–T†has“read“a“k²!ey“sequence‘T…bšMÞound“to“âaccept-line“áand“is“ab˜out“toŽ¡‘hÊreturn–¦fthe“line“to“the“caller.Ž©8ä’&–3[V‘ÿeariable]ŽŽ‘Gë@int‘LÉrl_explicit_argŽ¡‘.ùœáSet–©]to“a“non-zero‘©\v‘ÿdDalue“if“an“explicit“nš²!umeric“argumen˜t“w˜as‘©\spMÞecied“b˜y“the“user.Ž¡‘.ùœOnly–¦fv‘ÿdDalid“in“a“bindable“command“function.Ž¦’&–3[V‘ÿeariable]ŽŽ‘Gë@int‘LÉrl_numeric_argŽ¡‘.ùœáSet–r,to“the“v‘ÿdDalue“of“anš²!y“n˜umeric‘r-argumen˜t“explicitly“spMÞecied“b˜y“the“user“bMÞeforeŽ¡‘.ùœexecuting–´the“curren²!t“Readline“function.‘°MOnly“v‘ÿdDalid“in“a“bindable“command“function.Ž¦’&–3[V‘ÿeariable]ŽŽ‘Gë@int‘LÉrl_editing_modeŽ¡‘.ùœáSet–pto›oa“v‘ÿdDalue“denoting˜Readline's“curren²!t˜editing“moMÞde.‘§‹A‘Fv‘ÿdDalue“of“å1‘â¨ámeans“ReadlineŽ¡‘.ùœis–¦fcurren²!tly“in“emacs“mošMÞde;“å0‘…Ÿámeans“that“vi“mo˜de“is“activ²!e.ŽŸY!‘Gë\2.4‘™Readline›f@Con•ŒÌv“enience˜F‘þ¦functionsŽŽŸ¬‘Gëe2.4.1‘d(Naming–íMa“F‘þÄ£unctionŽŽŸ³3‘GáThe–üåuser“can“dynamically‘üæcš²!hange“the“bindings“of“k˜eys“while‘üæusing“Readline.‘¥]This“is“done“b˜yŽ¡‘Grepresen²!ting–¡"the›¡#function“with˜a“descriptiv²!e“name.‘ÜThe˜user“is“able˜to“t²!ypMÞe˜the“descriptiv²!eŽ¡‘Gname–¦fwhen“referring“to“the“function.‘ÝÝThš²!us,“in“an“init“le,“one“migh˜t“ndŽŸßÄ‘.ùœâMeta-Rubout:‘Tbackward-kill-wordŽŸßÑ!GáThis–
                     92: Mtbinds“the“k•²!eystrok“e–
                     93: MtâMeta-Rubout‘
                     94: Muáto“the“function“ädescriptively‘EuánamedŽ¡‘Gâbackward-kill-wordá.‘4·Y‘ÿeou,‘
                     95: •as–ÃYthe“programmer,‘
                     96: –should“bind“the“functions‘ÃZy²!ou“write“toŽ¡‘Gdescriptivš²!e–¦fnames“as“w˜ell.‘ÝÝReadline“pro˜vides“a“function“for“doing“that:Ž¦’&“z[F‘ÿeunction]ŽŽ‘Gë@int‘LÉrl_add_defun‘yšó;m#½R
                     97: ó3
                     98: cmss10æ(åconst–¦fcš²!har“*name,“rl‘Ä>‰x³HøŽ–Ñtcommand‘Ä>‰x³HøŽ“func‘Ä>‰x³HøŽ“t–¦f*function,“in˜tŽ¡‘DGk²!eyæ)Ž¡‘.ùœáAdd–<ýåname‘Úáto“the›<þlist“of“named˜functions.‘¡£Mak²!e“åfunction˜ábMÞe“the“function˜that“getsŽ¡‘.ùœcalled.‘ÝÝIf–¦fåk²!ey‘–~áis“not“-1,“then“bind“it“to“åfunction“áusing“ârl_bind_key()á.Ž¦‘!GUsing–žthis›žfunction“alone˜is“sucien²!t˜for“most“applications.‘ÛIt˜is“the˜recommended“w•²!a“yŽ¡‘Gto–<Óadd›<Òa“few˜functions“to“the˜default“functions˜that“Readline˜has“built“in.‘º¬If˜y²!ou“need˜to“doŽ¡‘Gsomething–{other“than“adding‘za“function“to“Readline,‘$Àyš²!ou“ma˜y“need‘zto“use“the“underlyingŽ¡‘Gfunctions–¦fdescribšMÞed“b˜elo²!w.ŽŸY!‘Gëe2.4.2‘d(Selecting–íMa“KeymapŽŽŸ³3‘GáKey–¦abindings“takš²!e“place‘¦`on“a“åk˜eymapá.‘ÝÎThe“k˜eymap“is“the‘¦`assošMÞciation“b˜et•²!w“een–¦athe“k²!eysŽ¡‘Gthat–k8the“user›k9t²!ypMÞes“and“the“functions“that˜get“run.‘Ê#Y‘ÿeou“can“makš²!e“y˜our‘k9o˜wn“k˜eymaps,‘wcop˜yŽ¡‘Gexisting–¦fkš²!eymaps,“and“tell“Readline“whic˜h“k˜eymap“to“use.Ž¦’&“z[F‘ÿeunction]ŽŽ‘Gë@Keymap‘LÉrl_make_bare_keymap‘yšæ(åv²!oidæ)Ž¡‘.ùœáReturns–æEa‘æDnew,‘²emptš²!y“k˜eymap.‘ÒThe›æDspace“for“the˜k²!eymap“is“alloMÞcated˜with“âmalloc()á;Ž¡‘.ùœthe–¦fcaller“should“free“it“b²!y“calling“ârl_free_keymap()“áwhen“done.ŽŽŒ‹&¤«Ÿò‘GáChapter–¦f2:‘ÝÝProgramming“with“GNU“Readline’Ê—31ŽŽŽ ƒ33 ý ÌÍ’&“z[F‘ÿeunction]ŽŽ‘Gë@Keymap‘LÉrl_copy_keymap‘yšæ(åKeymap‘¦fmapæ)Ž¤
33‘.ùœáReturn–¦fa“new“kš²!eymap“whic˜h“is“a“cop˜y“of“åmapá.Ž©ˆI’&“z[F‘ÿeunction]ŽŽ‘Gë@Keymap‘LÉrl_make_keymap‘yšæ(åv²!oidæ)Ž¡‘.ùœáReturn–Ŭa›Å«new“k²!eymap˜with“the˜prinš²!ting“c˜haracters‘Å«bMÞound“to“rl‘Ä>‰x³HøŽ‘Ñtinsert,‘Í|the“lo˜w˜ercaseŽ¡‘.ùœMeta–µÝcš²!haracters“bMÞound“to“run“their“equiv‘ÿdDalen˜ts,‘åùand“the“Meta“digits“bšMÞound“to“pro˜duceŽ¡‘.ùœn•²!umeric‘¦fargumen“ts.ŽŸˆH’&“z[F‘ÿeunction]ŽŽ‘Gë@void‘LÉrl_discard_keymap‘yšæ(åKeymap‘¦fk²!eymapæ)Ž¡‘.ùœáF‘ÿeree–…óthe›…òstorage“assoMÞciated“with˜the“data“in˜åk²!eymapá.‘ÓThe“caller“should˜free“åk²!eymapá.Ž¦’&“z[F‘ÿeunction]ŽŽ‘Gë@void‘LÉrl_free_keymap‘yšæ(åKeymap‘¦fk²!eymapæ)Ž¡‘.ùœáF‘ÿeree–³öall“storage›³õassoMÞciated“with“åk²!eymapá.‘ŒThis“calls“ârl_discard_keymap˜áto“free“sub-Ž¡‘.ùœordindate–¦fk²!eymaps“and“macros.Ž¦‘!GReadline–qhas“sev•²!eral‘qin“ternal›qk“eymaps.‘
                     99: >These˜functions˜allo“w˜y“ou‘qto˜c“hange˜whic“hŽ¡‘Gkš²!eymap–¦fis“activ˜e.Ž¦’&“z[F‘ÿeunction]ŽŽ‘Gë@Keymap‘LÉrl_get_keymap‘yšæ(åv²!oidæ)Ž¡‘.ùœáReturns–¦fthe“currenš²!tly“activ˜e“k˜eymap.ŽŸˆH’&“z[F‘ÿeunction]ŽŽ‘Gë@void‘LÉrl_set_keymap‘yšæ(åKeymap‘¦fk²!eymapæ)Ž¡‘.ùœáMak•²!es›¦fåk“eymap‘ûgáthe˜curren“tly˜activ“e˜k“eymap.Ž¦’&“z[F‘ÿeunction]ŽŽ‘Gë@Keymap‘LÉrl_get_keymap_by_name‘yšæ(åconst–¦fc²!har“*nameæ)Ž¡‘.ùœáReturn–ý>the“k•²!eymap›ý=matc“hing–ý>ånameá.‘âdåname‘šEáis“one“whic•²!h˜w“ould–ý>bMÞe“supplied“in˜a“âsetŽ¡‘.ùœkeymap–¦fáinputrc“line“(see“Section“1.3“[Readline“Init“File],“page“4).Ž¦’&“z[F‘ÿeunction]ŽŽ‘Gë@char–LÉ*“rl_get_keymap_name‘yšæ(åKeymap‘¦fk²!eymapæ)Ž¡‘.ùœáReturn–ý>the“name‘ý=matcš²!hing“åk˜eymapá.‘âdåname‘šEáis“one“whic˜h‘ý=w˜ould“bMÞe“supplied“in‘ý=a“âsetŽ¡‘.ùœkeymap–¦fáinputrc“line“(see“Section“1.3“[Readline“Init“File],“page“4).ŽŸãd‘Gëe2.4.3‘d(Binding‘íMKeysŽŽŸ³3‘GáKey–Ûsequences›Úare“assoMÞciate˜with“functions˜through“the˜k²!eymap.‘2;Readline˜has“sev²!eral˜in-Ž¡‘Gternal‘€²k²!eymaps:‘Ëâemacs_standard_keymapá,–ˆ<âemacs_meta_keymapá,“âemacs_ctlx_keymapá,“âvi_Ž¡‘Gmovement_keymapá,‘qxand–§âvi_insertion_keymapá.‘   +£âemacs_standard_keymap“áis–¨the“default,Ž¡‘Gand–¦fthe“examples“in“this“man²!ual“assume“that.Ž©¤å‘!GSince–Qâreadline()“áinstalls›Qa“set“of“default˜k²!ey“bindings“the“rst˜time“it“is“called,‘b"there“isŽ¡‘Galw•²!a“ys–ëíthe›ëîdanger“that“a“custom˜binding“installed“bMÞefore˜the“rst“call“to˜âreadline()“áwillŽ¡‘GbMÞe›o•²!v“erridden.‘®An‘alternate˜mec“hanism˜is–to˜install“custom˜k²!ey“bindings˜in“an˜initializationŽ¡‘Gfunction–uŠassigned“to“the“ârl_startup_hook“áv‘ÿdDariable“(see“Section“2.3“[Readline“V‘ÿeariables],Ž¡‘Gpage‘¦f25).Ž¦‘!GThese–¦ffunctions“manage“k²!ey“bindings.ŽŸˆH’&“z[F‘ÿeunction]ŽŽ‘Gë@int‘LÉrl_bind_key‘yšæ(åin•²!t›¦fk“ey‘ÿe,˜rl‘Ä>‰x³HøŽ–Ñtcommand‘Ä>‰x³HøŽ“func‘Ä>‰x³HøŽ“t˜*functionæ)Ž¡‘.ùœáBinds–ö½åkš²!ey‘æÖáto“åfunction“áin‘ö¾the“curren˜tly“activ˜e‘ö¾k˜eymap.‘ÎãReturns“non-zero“in‘ö¾the“caseŽ¡‘.ùœof–¦fan“inš²!v‘ÿdDalid“åk˜eyá.ŽŸˆI’&“z[F‘ÿeunction]ŽŽ‘Gë@int‘LÉrl_bind_key_in_map‘yšæ(åin•²!t›¦fk“ey‘ÿe,˜rl‘Ä>‰x³HøŽ–Ñtcommand‘Ä>‰x³HøŽ“func‘Ä>‰x³HøŽ“t˜*function,Ž¡‘DGKeymap‘¦fmapæ)Ž¡‘.ùœáBind–¦fåkš²!ey‘–~áto“åfunction“áin“åmapá.‘ÝÝReturns“non-zero“in“the“case“of“an“in˜v‘ÿdDalid“åk˜eyá.ŽŽŒ‹ &²Ÿò‘GáChapter–¦f2:‘ÝÝProgramming“with“GNU“Readline’Ê—32ŽŽŽ ƒ33 ý ÌÍ’&“z[F‘ÿeunction]ŽŽ‘Gë@int‘LÉrl_bind_key_if_unbound‘yšæ(åin•²!t›¦fk“ey‘ÿe,˜rl‘Ä>‰x³HøŽ–Ñtcommand‘Ä>‰x³HøŽ“func‘Ä>‰x³HøŽ“t˜*functionæ)Ž¤
33‘.ùœáBinds–Iåk²!ey‘9-áto“åfunction“áif›Iit“is˜not“already“bMÞound˜in“the“curren•²!tly˜activ“e‘Ik“eymap.Ž¡‘.ùœReturns–¦fnon-zero“in“the“case“of“an“inš²!v‘ÿdDalid“åk˜ey‘–~áor“if“åk˜ey‘–~áis“already“bMÞound.Ž©fg’&“z[F‘ÿeunction]ŽŽ‘Gë@int‘LÉrl_bind_key_if_unbound_in_map‘yšæ(åin•²!t›¦fk“ey‘ÿe,˜rl‘Ä>‰x³HøŽ–Ñtcommand‘Ä>‰x³HøŽ“func‘Ä>‰x³HøŽ“tŽ¡‘DG*function,–¦fKeymap“mapæ)Ž¡‘.ùœáBinds–GÓåk²!ey‘7ëáto“åfunction“áif“it“is“not“already“bMÞound“in“åmapá.‘¾WReturns“non-zero“in“the“caseŽ¡‘.ùœof–¦fan“inš²!v‘ÿdDalid“åk˜ey‘–~áor“if“åk˜ey‘–~áis“already“bMÞound.Ž¦’&“z[F‘ÿeunction]ŽŽ‘Gë@int‘LÉrl_unbind_key‘yšæ(åin•²!t‘¦fk“eyæ)Ž¡‘.ùœáBind–[råkš²!ey‘K‹áto“the‘[sn˜ull“function›[sin“the˜currenš²!tly“activ˜e–[sk˜eymap.‘ýReturns“non-zero‘[rinŽ¡‘.ùœcase–¦fof“error.Ž¦’&“z[F‘ÿeunction]ŽŽ‘Gë@int‘LÉrl_unbind_key_in_map‘yšæ(åin•²!t›¦fk“ey‘ÿe,˜Keymap˜mapæ)Ž¡‘.ùœáBind–¦fåkš²!ey‘–~áto“the“n˜ull“function“in“åmapá.‘ÝÝReturns“non-zero“in“case“of“error.Ž¦’&“z[F‘ÿeunction]ŽŽ‘Gë@int‘LÉrl_unbind_function_in_map‘yšæ(årl‘Ä>‰x³HøŽ–Ñtcommand‘Ä>‰x³HøŽ“func‘Ä>‰x³HøŽ“t‘¦f*function,Ž¡‘DGKeymap‘¦fmapæ)Ž¡‘.ùœáUnš²!bind–¦fall“k˜eys“that“execute“åfunction“áin“åmapá.Ž¦’&“z[F‘ÿeunction]ŽŽ‘Gë@int‘LÉrl_unbind_command_in_map‘yšæ(åconst–¦fc²!har“*command,“Keymap“mapæ)Ž¡‘.ùœáUnš²!bind–¦fall“k˜eys“that“are“bMÞound“to“åcommand‘¸áin“åmapá.ŽŸff’&“z[F‘ÿeunction]ŽŽ‘Gë@int‘LÉrl_bind_keyseq‘yšæ(åconst–¦fcš²!har“*k˜eyseq,“rl‘Ä>‰x³HøŽ–Ñtcommand‘Ä>‰x³HøŽ“func‘Ä>‰x³HøŽ“t‘¦f*functionæ)Ž¡‘.ùœáBind–,Žthe“kš²!ey“sequence‘,represen˜ted“b˜y“the“string“åk˜eyseq‘mtáto‘,the“function“åfunctioná,Ž¡‘.ùœbMÞeginning–c®in›c­the“curren•²!t˜k“eymap.‘Ç This˜mak“es–c®new“k²!eymaps˜as“necessary‘ÿe.‘ÇŸThe“returnŽ¡‘.ùœv‘ÿdDalue–¦fis“non-zero“if“åkš²!eyseq‘çLáis“in˜v‘ÿdDalid.Ž¦’&“z[F‘ÿeunction]ŽŽ‘Gë@int‘LÉrl_bind_keyseq_in_map‘yšæ(åconst–¦fcš²!har“*k˜eyseq,“rl‘Ä>‰x³HøŽ–Ñtcommand‘Ä>‰x³HøŽ“func‘Ä>‰x³HøŽ“tŽ¡‘DG*function,–¦fKeymap“mapæ)Ž¡‘.ùœáBind–&Éthe‘&Èkš²!ey“sequence“represen˜ted“b˜y‘&Èthe“string“åk˜eyseq‘B¯áto‘&Èthe“function“åfunctioná.‘¦þThisŽ¡‘.ùœmakš²!es–€&new“k˜eymaps“as“necessary‘ÿe.›ÑInitial‘€%bindings“are“pMÞerformed“in“åmapá.˜The“returnŽ¡‘.ùœv‘ÿdDalue–¦fis“non-zero“if“åkš²!eyseq‘çLáis“in˜v‘ÿdDalid.Ž¦’&“z[F‘ÿeunction]ŽŽ‘Gë@int‘LÉrl_set_key‘yšæ(åconst–¦fcš²!har“*k˜eyseq,“rl‘Ä>‰x³HøŽ–Ñtcommand‘Ä>‰x³HøŽ“func‘Ä>‰x³HøŽ“t‘¦f*function,Ž¡‘DGKeymap‘¦fmapæ)Ž¡‘.ùœáEquiv‘ÿdDalen²!t–¦fto“ârl_bind_keyseq_in_mapá.Ž¦’&“z[F‘ÿeunction]ŽŽ‘Gë@int‘LÉrl_bind_keyseq_if_unbound‘yšæ(åconst–¦fcš²!har“*k˜eyseq,Ž¡‘DGrl‘Ä>‰x³HøŽ–Ñtcommand‘Ä>‰x³HøŽ“func‘Ä>‰x³HøŽ“t‘¦f*functionæ)Ž¡‘.ùœáBinds–Cóåk²!eyseq‘„Øáto“åfunction“áif›Còit“is“not˜already“bMÞound˜in“the“curren•²!tly˜activ“e‘Cók“eymap.Ž¡‘.ùœReturns–¦fnon-zero“in“the“case“of“an“inš²!v‘ÿdDalid“åk˜eyseq‘çLáor“if“åk˜eyseq‘çLáis“already“bMÞound.Ž¦’&“z[F‘ÿeunction]ŽŽ‘Gë@int‘LÉrl_bind_keyseq_if_unbound_in_map‘yšæ(åconst–¦fcš²!har“*k˜eyseq,Ž¡‘DGrl‘Ä>‰x³HøŽ–Ñtcommand‘Ä>‰x³HøŽ“func‘Ä>‰x³HøŽ“t–¦f*function,“Keymap“mapæ)Ž¡‘.ùœáBinds–×åk²!eyseq‘øáto“åfunction›×áif“it“is˜not“already˜bMÞound“in˜åmapá.‘oãReturns“non-zero˜in“theŽ¡‘.ùœcase–¦fof“an“inš²!v‘ÿdDalid“åk˜eyseq‘çLáor“if“åk˜eyseq‘çLáis“already“bMÞound.ŽŽŒ‹!&ÀŸò‘GáChapter–¦f2:‘ÝÝProgramming“with“GNU“Readline’Ê—33ŽŽŽ ƒ33 ý ÌÍ’&“z[F‘ÿeunction]ŽŽ‘Gë@int‘LÉrl_generic_bind‘yšæ(åin•²!t›¦ft“ypMÞe,˜const˜c“har˜*k“eyseq,˜c“har˜*data,˜KeymapŽ¤
33‘DGmapæ)Ž¡‘.ùœáBind–>ïthe›>ðk²!ey“sequence˜represenš²!ted“b˜y›>ðthe“string˜åk²!eyseq‘Õáto˜the“arbitrary˜pMÞoin²!ter“ådataá.Ž¡‘.ùœåt•²!ypšMÞe‘•ása“ys–jŽwhat‘jkind“of“data“is“p˜oinš²!ted‘jto“b˜y“ådataá;‘~this“can“bMÞe“a‘jfunction“(âISFUNCá),‘v†aŽ¡‘.ùœmacro–Š™(âISMACRá),‘(or“a›Š˜k²!eymap“(âISKMAPá).‘Ô™This˜makš²!es“new“k˜eymaps“as‘Š˜necessary‘ÿe.‘Ô™TheŽ¡‘.ùœinitial–¦fkš²!eymap“in“whic˜h“to“do“bindings“is“åmapá.ŽŸËë’&“z[F‘ÿeunction]ŽŽ‘Gë@int‘LÉrl_parse_and_bind‘yšæ(åc²!har‘¦f*lineæ)Ž¡‘.ùœáP²!arse–‡yåline‘$€áas›‡xif“it“had“bMÞeen“read“from˜the“âinputrc“ále“and“pMÞerform˜anš²!y“k˜ey“bindingsŽ¡‘.ùœand–¦fv‘ÿdDariable“assignmen²!ts“found“(see“Section“1.3“[Readline“Init“File],“page“4).Ž©Ëì’&“z[F‘ÿeunction]ŽŽ‘Gë@int‘LÉrl_read_init_file‘yšæ(åconst–¦fc²!har“*lenameæ)Ž¡‘.ùœáRead–È8kš²!eybindings“and‘È9v‘ÿdDariable“assignmen˜ts“from“ålename‘e?á(see‘È9Section“1.3“[ReadlineŽ¡‘.ùœInit–¦fFile],“page“4).ŽŸ»%‘Gëe2.4.4‘d(Assoiciating–íMF‘þÄ£unction“Names“and“BindingsŽŽŸ³3‘GáThese–ž›functions‘žšalloš²!w“y˜ou›žšto“nd˜out“what“k•²!eys˜in“v“ok“e–ž›named˜functions“and˜the“functionsŽ¡‘Gin•²!v“ok“ed›MLb“y‘MMa˜particular˜k“ey˜sequence.‘À*Y‘ÿeou‘MMma“y˜also˜assoMÞciate–MMa˜new˜function˜name“with˜anŽ¡‘Garbitrary‘¦ffunction.Ž¦’&“z[F‘ÿeunction]ŽŽ‘Gë@rl_command_func_t–LÉ*“rl_named_function‘yšæ(åconst–¦fc²!har“*nameæ)Ž¡‘.ùœáReturn–¦fthe“function“with“name“ånameá.Ž©Ëë’&“z[F‘ÿeunction]ŽŽ‘Gë@rl_command_func_t–LÉ*“rl_function_of_keyseq‘yšæ(åconst–¦fcš²!har“*k˜eyseq,Ž¡‘DGKeymap–¦fmap,“inš²!t“*t˜ypMÞeæ)Ž¡‘.ùœáReturn–è³the›è²function“in•²!v“ok“ed‘è³b“y˜åk“eyseq‘)™áin‘è³k“eymap˜åmapá.‘¤ÄIf˜åmap‘=´áis–è³âNULLá,‘ùEthe“curren²!tŽ¡‘.ùœkš²!eymap–q¤is‘q¥used.‘?˜If“åt˜ypMÞe‘«áis“not–q¥âNULLá,‘¤sthe“t˜ypMÞe–q¤of“the“ob‘›»ject›q¥is“returned“in˜the“âintŽ¡‘.ùœáv‘ÿdDariable–¦fit“pMÞoin²!ts“to“(one“of“âISFUNCá,“âISKMAPá,“or“âISMACRá).Ž¦’&“z[F‘ÿeunction]ŽŽ‘Gë@char–LÉ**“rl_invoking_keyseqs‘yšæ(årl‘Ä>‰x³HøŽ–Ñtcommand‘Ä>‰x³HøŽ“func‘Ä>‰x³HøŽ“t‘¦f*functionæ)Ž¡‘.ùœáReturn–¿ëan›¿êarra²!y“of˜strings“represen²!ting“the˜k²!ey“sequences“used˜to“in•²!v“ok“e˜åfunction‘¿ëáinŽ¡‘.ùœthe–¦fcurrenš²!t“k˜eymap.ŽŸËì’&“z[F‘ÿeunction]ŽŽ‘Gë@char–LÉ**“rl_invoking_keyseqs_in_map‘yšæ(årl‘Ä>‰x³HøŽ–Ñtcommand‘Ä>‰x³HøŽ“func‘Ä>‰x³HøŽ“tŽ¡‘DG*function,–¦fKeymap“mapæ)Ž¡‘.ùœáReturn–¿ëan›¿êarra²!y“of˜strings“represen²!ting“the˜k²!ey“sequences“used˜to“in•²!v“ok“e˜åfunction‘¿ëáinŽ¡‘.ùœthe–¦fk²!eymap“åmapá.Ž¦’&“z[F‘ÿeunction]ŽŽ‘Gë@void‘LÉrl_function_dumper‘yšæ(åin²!t‘¦freadableæ)Ž¡‘.ùœáPrinš²!t–‚Òthe“readline“function“names“and“the‘‚Ñk˜ey“sequences“curren˜tly“bMÞound“to“them“toŽ¡‘.ùœârl_outstreamá.‘¿ÕIf–LLåreadable‘éTáis›LMnon-zero,‘^Rthe“list˜is˜formatted˜in“suc•²!h˜a˜w“a“y˜that‘LLit˜canŽ¡‘.ùœbMÞe–¦fmade“part“of“an“âinputrc“ále“and“re-read.ŽŸËì’&“z[F‘ÿeunction]ŽŽ‘Gë@void‘LÉrl_list_funmap_names‘yšæ(åv²!oidæ)Ž¡‘.ùœáPrin²!t–¦fthe“names“of“all“bindable“Readline“functions“to“ârl_outstreamá.Ž¦’&“z[F‘ÿeunction]ŽŽ‘Gë@const–LÉchar“**“rl_funmap_names‘yšæ(åv²!oidæ)Ž¡‘.ùœáReturn–Sa›RNULL‘1terminated“arra²!y˜of“kno²!wn“function˜names.‘°×The“arra²!y“is˜sorted.‘°×TheŽ¡‘.ùœarra²!y–\hitself›\iis“alloMÞcated,‘k5but“not˜the“strings“inside.‘Å3Y‘ÿeou˜should“free˜the“arra²!y‘ÿe,‘k5but“notŽ¡‘.ùœthe–¦fpMÞoinš²!ters,“using“âfree“áor“ârl_free“áwhen“y˜ou“are“done.ŽŽŒ‹"&ζŸò‘GáChapter–¦f2:‘ÝÝProgramming“with“GNU“Readline’Ê—34ŽŽŽ ƒ33 ý ÌÍ’&“z[F‘ÿeunction]ŽŽ‘Gë@int‘LÉrl_add_funmap_entry‘yšæ(åconst–¦fc²!har“*name,“rl‘Ä>‰x³HøŽ–Ñtcommand‘Ä>‰x³HøŽ“func‘Ä>‰x³HøŽ“tŽ¤
33‘DG*functionæ)Ž¡‘.ùœáAdd–ð³åname‘»áto“the“list›ð´of“bindable˜Readline“command“names,‘Gand“mak²!e˜åfunction“átheŽ¡‘.ùœfunction–¦fto“bMÞe“called“when“åname‘Cmáis“in•²!v“ok“ed.ŽŸMµ‘Gëe2.4.5‘d(Allo–áwing‘íMUndoingŽŽŸ³3‘GáSuppMÞorting–L´the›L³undo“command˜is“a“painless˜thing,‘vGand“mak•²!es˜y“our‘L´functions˜m“uc“h‘L´moreŽ¡‘Guseful.‘ÝÝIt–¦fis“certainly“easy“to“try“something“if“yš²!ou“kno˜w“y˜ou“can“undo“it.ŽŸ€é‘!GIf–è*y²!our›è+function“simply“inserts˜text“once,‘8›or˜deletes“text“once,‘8›and˜uses“ârl_insert_Ž¡‘Gtext()–Y)áor“ârl_delete_text()›Y*áto“do“it,‘hœthen“undoing“is“already“done˜for“y²!ou“automatically‘ÿe.Ž©€è‘!GIf–u†yš²!ou“do“m˜ultiple“insertions“or“m˜ultiple“deletions,‘²or“an˜y“com˜bination“of“these“opMÞerations,Ž¡‘Gy²!ou–‘should›group“them˜together“in²!to˜one“opMÞeration.‘œ\This“is˜done“with˜ârl_begin_undo_Ž¡‘Ggroup()–¦fáand“ârl_end_undo_group()á.Ž¦‘!GThe–¦ftš²!ypMÞes“of“ev˜en˜ts“that“can“bMÞe“undone“are:ŽŸ͵‘.ùœóߤN       cmtt9Éenum–¹–undo_code“{“UNDO_DELETE,“UNDO_INSERT,“UNDO_BEGIN,“UNDO_END“};ŽŸ€é‘!GáNotice–£¯that›£®âUNDO_DELETE“ámeans“to“insert˜some“text,‘¤:and“âUNDO_INSERT“ámeans˜to“deleteŽ¡‘Gsome–O²text.‘ÀöThat“is,›a
                    100: the“undo“coMÞde“tells“what‘O±to“undo,˜not“ho²!w“to“undo“it.‘ÀöâUNDO_BEGIN“áandŽ¡‘GâUNDO_END–¦fáare“tags“added“b²!y“ârl_begin_undo_group()“áand“ârl_end_undo_group()á.Ž©Î’&“z[F‘ÿeunction]ŽŽ‘Gë@int‘LÉrl_begin_undo_group‘yšæ(åv²!oidæ)Ž¡‘.ùœáBegins–·‡sa²!ving›·ˆundo“information“in˜a“group“construct.‘AThe“undo˜information“usuallyŽ¡‘.ùœcomes–þIfrom›þHcalls“to“ârl_insert_text()˜áand“ârl_delete_text()á,‘TAbut“could˜bMÞe“theŽ¡‘.ùœresult–¦fof“calls“to“ârl_add_undo()á.ŽŸΞ’&“z[F‘ÿeunction]ŽŽ‘Gë@int‘LÉrl_end_undo_group‘yšæ(åv²!oidæ)Ž¡‘.ùœáCloses–{the›{curren²!t“undo˜group“started“with˜ârl_begin_undo_group‘¦f()á.‘ÏmThere“shouldŽ¡‘.ùœbMÞe–¦fone“call“to“ârl_end_undo_group()“áfor“eac²!h“call“to“ârl_begin_undo_group()á.Ž¦’&“z[F‘ÿeunction]ŽŽ‘Gë@void‘LÉrl_add_undo‘yšæ(åenš²!um–¦fundo‘Ä>‰x³HøŽ‘ÑtcoMÞde“what,“in˜t“start,“in˜t“end,“c˜har“*textæ)Ž¡‘.ùœáRemem•²!bMÞer›ího“w˜to˜undo‘ìan˜ev“en“t˜(according˜to˜åwhat=á).‘/rThe‘ìaected˜text˜runs˜fromŽ¡‘.ùœåstart‘ãfáto–¦fåendá,“and“encompasses“åtextá.ŽŸΞ’&“z[F‘ÿeunction]ŽŽ‘Gë@void‘LÉrl_free_undo_list‘yšæ(åv²!oidæ)Ž¡‘.ùœáF‘ÿeree–¦fthe“existing“undo“list.Ž¦’&“z[F‘ÿeunction]ŽŽ‘Gë@int‘LÉrl_do_undo‘yšæ(åv²!oidæ)Ž¡‘.ùœáUndo–¾§the“rst“thing“on“the“undo“list.‘žReturns“â0“áif“there“w²!as“nothing“to‘¾¨undo,‘ínon-zeroŽ¡‘.ùœif–¦fsomething“w²!as“undone.ŽŸΞ‘!GFinally‘ÿe,‘Á#if›»Éy²!ou–»Êneither“insert“nor˜delete“text,‘Á#but˜directly“moMÞdify“the“existing˜text“(e.g.,Ž¡‘Gcš²!hange–§its“case),‘çKcall“ârl_modifying()“áonce,‘çLjust“bMÞefore“y˜ou‘§moMÞdify“the“text.‘àY‘ÿeou“m˜ustŽ¡‘Gsupply–¦fthe“indices“of“the“text“range“that“y²!ou“are“going“to“moMÞdify‘ÿe.Ž¦’&“z[F‘ÿeunction]ŽŽ‘Gë@int‘LÉrl_modifying‘yšæ(åinš²!t–¦fstart,“in˜t“endæ)Ž¡‘.ùœáT‘ÿeell–Ô-Readline“to›Ô.sa•²!v“e–Ô-the“text“bMÞet•²!w“een˜åstart‘-áand–Ô-åend‘Báas“a˜single“undo“unit.‘g3It“isŽ¡‘.ùœassumed–¦fthat“yš²!ou“will“subsequen˜tly“moMÞdify“that“text.ŽŽŒ‹#&ÝxŸò‘GáChapter–¦f2:‘ÝÝProgramming“with“GNU“Readline’Ê—35ŽŽŽ ƒ33 ý ÌÍ‘Gëe2.4.6‘d(Redispla–áyŽŽŸ#’&“zá[F‘ÿeunction]ŽŽ‘Gë@void‘LÉrl_redisplay‘yšæ(åv²!oidæ)Ž¤
33‘.ùœáChange–Šwhat's“displa•²!y“ed–Šon“the“screen“to‘Šre
ect“the“currenš²!t“con˜ten˜ts“of“ârl_line_Ž¡‘.ùœbufferá.Ž©Þ’&“z[F‘ÿeunction]ŽŽ‘Gë@int‘LÉrl_forced_update_display‘yšæ(åv²!oidæ)Ž¡‘.ùœáF‘ÿeorce–Äóthe“line“to“bšMÞe“up˜dated“and“redispla•²!y“ed,‘•whether–Äóor“not“Readline“thinks“theŽ¡‘.ùœscreen–¦fdispla²!y“is“correct.ŽŸÝ’&“z[F‘ÿeunction]ŽŽ‘Gë@int‘LÉrl_on_new_line‘yšæ(åv²!oidæ)Ž¡‘.ùœáT‘ÿeell–•Ðthe›•ÏupMÞdate“functions˜that“wš²!e“ha˜v˜e‘•Ïmo˜v˜ed“on˜to“a‘•Ïnew“(empt˜y)‘•Ïline,‘™!usually“afterŽ¡‘.ùœoutputting–¦fa“newline.Ž¦’&“z[F‘ÿeunction]ŽŽ‘Gë@int‘LÉrl_on_new_line_with_prompt‘yšæ(åv²!oidæ)Ž¡‘.ùœáT‘ÿeell–ã_the›ã`upMÞdate“functions“that˜wš²!e“ha˜v˜e“mo˜v˜ed‘ã`on˜to“a“new–ã`line,‘
                    101: `with“årl‘Ä>‰x³HøŽ‘Ñtprompt‘ _áalreadyŽ¡‘.ùœdispla•²!y“ed.‘Ë®This–oÚcould“bMÞe›oÙused“b²!y“applications“that˜w•²!an“t–oÚto“output“the˜prompt“stringŽ¡‘.ùœthemselvš²!es,‘\Çbut–J_still“need“Readline“to“kno˜w“the“prompt“string“length“for“redispla˜y‘ÿe.‘¿0ItŽ¡‘.ùœshould–¦fbMÞe“used“after“setting“årl‘Ä>‰x³HøŽ–Ñtalready‘Ä>‰x³HøŽ“promptedá.ŽŸÝ’&“z[F‘ÿeunction]ŽŽ‘Gë@int‘LÉrl_reset_line_state‘yšæ(åv²!oidæ)Ž¡‘.ùœáReset–*‘the›*displa²!y“state“to“a˜clean“state“and“redispla²!y˜the“curren²!t“line“starting˜on“aŽ¡‘.ùœnew‘¦fline.Ž¦’&“z[F‘ÿeunction]ŽŽ‘Gë@int‘LÉrl_crlf‘yšæ(åv²!oidæ)Ž¡‘.ùœáMo•²!v“e–¦fthe“cursor“to“the“start“of“the“next“screen“line.ŽŸÝ’&“z[F‘ÿeunction]ŽŽ‘Gë@int‘LÉrl_show_char‘yšæ(åin²!t‘¦fcæ)Ž¡‘.ùœáDispla•²!y›ç³c“haracter–ç´åc‘‘·áon“ârl_outstreamá.‘¡ÅIf˜Readline“has˜not˜bMÞeen“set˜to“displa²!y˜metaŽ¡‘.ùœcš²!haracters–Ødirectly‘ÿe,‘9(this‘Ùwill“con˜v˜ert‘Ùmeta“c˜haracters“to›Ùa“meta-prexed˜k²!ey“sequence.Ž¡‘.ùœThis–¦fis“inš²!tended“for“use“b˜y“applications“whic˜h“wish“to“do“their“o˜wn“redispla˜y‘ÿe.Ž¦’&“z[F‘ÿeunction]ŽŽ‘Gë@int‘LÉrl_message‘yšæ(åconst–¦fc²!har“*,‘PJ.–§‘.“.Ž‘5æ)Ž¡‘.ùœáThe–y¦argumenš²!ts“are‘y¥a“format“string“as“w˜ould‘y¥bšMÞe“supplied“to“âprintfá,‘µÌp˜ossibly“con²!tainingŽ¡‘.ùœcon•²!v“ersion›NÂspMÞecications‘NÃsuc“h˜as˜`â%dá',‘¸Ùand˜an“y˜additional˜argumen“ts‘NÃnecessary˜toŽ¡‘.ùœsatisfy–ø•the“con•²!v“ersion–ø•spMÞecications.‘ÔiThe“resulting“string“is‘ø”displa•²!y“ed–ø•in“the“åec²!hoŽ¡‘.ùœareaá.‘qThe–‚Lecš²!ho“area“is“also“used“to“displa˜y“n˜umeric“argumen˜ts“and“searc˜h“strings.Ž¡‘.ùœY‘ÿeou–ßshould“call“ârl_save_prompt“áto“sa•²!v“e–ßthe“prompt“information“bMÞefore“calling“thisŽ¡‘.ùœfunction.ŽŸÝ’&“z[F‘ÿeunction]ŽŽ‘Gë@int‘LÉrl_clear_message‘yšæ(åv²!oidæ)Ž¡‘.ùœáClear–zthe“message›zin“the“ec²!ho“area.‘ÏIf“the“prompt˜wš²!as“sa˜v˜ed“with“a‘zcall“to“ârl_save_Ž¡‘.ùœprompt–»oábMÞefore“the›»plast“call“to“ârl_messageá,‘±call˜ârl_restore_prompt“ábMÞefore“callingŽ¡‘.ùœthis‘¦ffunction.Ž¦’&“z[F‘ÿeunction]ŽŽ‘Gë@void‘LÉrl_save_prompt‘yšæ(åv²!oidæ)Ž¡‘.ùœáSa•²!v“e–,the›, loMÞcal“Readline“prompt˜displa²!y“state“in˜preparation“for“displa²!ying˜a“newŽ¡‘.ùœmessage–¦fin“the“message“area“with“ârl_message()á.ŽŽŒ‹$&ëXŸò‘GáChapter–¦f2:‘ÝÝProgramming“with“GNU“Readline’Ê—36ŽŽŽ ƒ33 ý ÌÍ’&“z[F‘ÿeunction]ŽŽ‘Gë@void‘LÉrl_restore_prompt‘yšæ(åv²!oidæ)Ž¤
33‘.ùœáRestore–!Pthe“loMÞcal›!OReadline“prompt“displa²!y“state˜sa•²!v“ed›!Pb“y˜the˜most‘!Orecen“t˜call˜toŽ¡‘.ùœârl_save_promptá.‘Çóif–ômârl_save_prompt‘ônáwš²!as“called“to“sa˜v˜e›ônthe“prompt“bMÞefore˜a“callŽ¡‘.ùœto–k7ârl_messageá,‘œkthis‘k6function“should“bšMÞe“called“b˜efore“the‘k6corresp˜onding“call“to“ârl_Ž¡‘.ùœclear_messageá.Ž©·$’&“z[F‘ÿeunction]ŽŽ‘Gë@int‘LÉrl_expand_prompt‘yšæ(åc²!har‘¦f*promptæ)Ž¡‘.ùœáExpand–#&anš²!y‘#%spMÞecial“c˜haracter›#%sequences“in˜åprompt‘`&áand˜set“up˜the“loMÞcal˜ReadlineŽ¡‘.ùœprompt›M%redispla²!y–M$v‘ÿdDariables.‘ÒThis“function˜is“called˜bš²!y“âreadline()á.‘ÒIt“ma˜y‘M%also“bMÞeŽ¡‘.ùœcalled–‰vto›‰uexpand“the“primary˜prompt“if“the˜ârl_on_new_line_with_prompt()“áfunctionŽ¡‘.ùœor–
êârl_already_prompted“áv‘ÿdDariable“is“used.‘«
                    102: It“returns“the“n•²!um“bMÞer–
êof“visible“c²!haractersŽ¡‘.ùœon–/the“last“line“of“the“(pMÞossibly“mš²!ulti-line)‘.prompt.‘8Applications“ma˜y“indicate“thatŽ¡‘.ùœthe–XFprompt“conš²!tains“c˜haracters‘XGthat“tak˜e“up“no“ph˜ysical“screen‘XGspace“when“displa˜y˜edŽ¡‘.ùœb•²!y›ìxbrac“k“eting–ìwa˜sequence“of˜sucš²!h“c˜haracters›ìxwith“the˜spMÞecial“mark²!ers˜âRL_PROMPT_Ž¡‘.ùœSTART_IGNORE–M“áand›M”âRL_PROMPT_END_IGNORE“á(declared˜in“âreadline.há.‘ÓeThis˜ma²!y“bMÞeŽ¡‘.ùœused–¦fto“em²!bšMÞed“terminal-sp˜ecic“escap˜e“sequences“in“prompts.Ž¦’&“z[F‘ÿeunction]ŽŽ‘Gë@int‘LÉrl_set_prompt‘yšæ(åconst–¦fc²!har“*promptæ)Ž¡‘.ùœáMakš²!e–;³Readline“use“åprompt‘x³áfor“subsequen˜t“redispla˜y‘ÿe.‘ºLThis“calls“ârl_expand_prompt()Ž¡‘.ùœáto–¦fexpand“the“prompt“and“sets“ârl_prompt“áto“the“result.ŽŸ­L‘Gëe2.4.7‘d(Moidifying‘íMT‘þÄ£extŽŽŸ`~’&“zá[F‘ÿeunction]ŽŽ‘Gë@int‘LÉrl_insert_text‘yšæ(åconst–¦fc²!har“*textæ)Ž¡‘.ùœáInsert–ËÂåtext‘Ãáin²!to“the›ËÃline“at˜the“curren²!t˜cursor“pMÞosition.‘MòReturns˜the“n•²!um“bMÞer˜of‘ËÂc“har-Ž¡‘.ùœacters‘¦finserted.Ž¦’&“z[F‘ÿeunction]ŽŽ‘Gë@int‘LÉrl_delete_text‘yšæ(åinš²!t–¦fstart,“in˜t“endæ)Ž¡‘.ùœáDelete–ˆthe“text›ˆ‚bMÞet•²!w“een–ˆåstart‘Åáand“åend‘öÓáin˜the“curren²!t“line.‘„.Returns˜the“n•²!um“bMÞer‘ˆofŽ¡‘.ùœc²!haracters‘¦fdeleted.Ž¦’&“z[F‘ÿeunction]ŽŽ‘Gë@char–LÉ*“rl_copy_text‘yšæ(åinš²!t–¦fstart,“in˜t“endæ)Ž¡‘.ùœáReturn–¦fa“copš²!y“of“the“text“bMÞet˜w˜een“åstart‘ãfáand“åend‘¸áin“the“curren˜t“line.Ž¦’&“z[F‘ÿeunction]ŽŽ‘Gë@int‘LÉrl_kill_text‘yšæ(åinš²!t–¦fstart,“in˜t“endæ)Ž¡‘.ùœáCopš²!y–œthe‘text“bMÞet˜w˜een–åstart‘Wœáand“åend‘ˆîáin“the–œcurren˜t“line›to“the˜kill“ring,‘7ªappMÞendingŽ¡‘.ùœor–øprepMÞending“to›ùthe“last“kill“if˜the“last“command“w²!as“a˜kill“command.‘)”The“text“isŽ¡‘.ùœdeleted.‘ÈIf–_åstart‘E_áis“less“than–^åendá,‘ Þthe“text–_is“appšMÞended,‘ Ýotherwise“prep˜ended.‘ÈIf“theŽ¡‘.ùœlast–¦fcommand“w²!as“not“a“kill,“a“new“kill“ring“slot“is“used.Ž¦’&“z[F‘ÿeunction]ŽŽ‘Gë@int‘LÉrl_push_macro_input‘yšæ(åc²!har‘¦f*macroæ)Ž¡‘.ùœáCause–d’åmacro‘ñbáto“bšMÞe“inserted“in²!to“the“line,‘q¼as“if“it“had“b˜een“in•²!v“ok“ed›d’b“y˜a˜k“ey˜bMÞound˜toŽ¡‘.ùœa–¦fmacro.‘ÝÝNot“espMÞecially“useful;“use“ârl_insert_text()“áinstead.ŽŸ­L‘Gëe2.4.8‘d(Character‘íMInputŽŽŸ`~’&“zá[F‘ÿeunction]ŽŽ‘Gë@int‘LÉrl_read_key‘yšæ(åv²!oidæ)Ž¡‘.ùœáReturn–Š7the›Š8next“c•²!haracter˜a“v‘ÿdDailable–Š7from˜Readline's“curren²!t˜input“stream.‘ÔyThis“han-Ž¡‘.ùœdles–.Sinput“inserted“in²!to“the“input“stream‘.Tvia“årl‘Ä>‰x³HøŽ–ÑtpMÞending‘Ä>‰x³HøŽ“input‘kSá(see–.SSection“2.3“[Read-Ž¡‘.ùœline–¸©V‘ÿeariables],›ý:page“25)‘¸ªand“ârl_stuff_char()á,‘ý9macros,˜and“c²!haracters‘¸ªread“fromŽŽŒ‹%&øVŸò‘GáChapter–¦f2:‘ÝÝProgramming“with“GNU“Readline’Ê—37ŽŽŽ ƒ33 ý ÌÍ‘.ùœthe–×kš²!eybMÞoard.‘2.While“w˜aiting›Öfor“input,‘43this˜function“will˜call“an²!y˜function“assignedŽ¤
33‘.ùœto–¦fthe“ârl_event_hook“áv‘ÿdDariable.Ž©=ð’&“z[F‘ÿeunction]ŽŽ‘Gë@int‘LÉrl_getc‘yšæ(åFILE‘¦f*streamæ)Ž¡‘.ùœáReturn–Œthe‘Œ€next“cš²!haracter“a˜v‘ÿdDailable“from–Œ€åstreamá,‘Äàwhic˜h“is–Œassumed“to“bMÞe‘Œ€the“k˜eybMÞoard.Ž¦’&“z[F‘ÿeunction]ŽŽ‘Gë@int‘LÉrl_stuff_char‘yšæ(åin²!t‘¦fcæ)Ž¡‘.ùœáInsert–òåc‘œáin²!to“the“Readline“input“stream.‘ÀâIt“will“bšMÞe“â"áreadâ"“áb˜efore“Readline“attemptsŽ¡‘.ùœto–6×read›6Øc²!haracters“from˜the“terminal˜with“ârl_read_key()á.‘¸®Up˜to“512˜cš²!haracters“ma˜yŽ¡‘.ùœbMÞe–¬+pushed“bacš²!k.‘ï,ârl_stuff_char“áreturns“1“if“the“c˜haracter“w˜as“successfully“inserted;Ž¡‘.ùœ0‘¦fotherwise.Ž¦’&“z[F‘ÿeunction]ŽŽ‘Gë@int‘LÉrl_execute_next‘yšæ(åin²!t‘¦fcæ)Ž¡‘.ùœáMak²!e–HÆåc‘òËábMÞe“the›HÇnext“command“to˜bMÞe“executed˜when“ârl_read_key()“áis˜called.‘ÄþThisŽ¡‘.ùœsets‘¦fårl‘Ä>‰x³HøŽ–ÑtpMÞending‘Ä>‰x³HøŽ“inputá.Ž¦’&“z[F‘ÿeunction]ŽŽ‘Gë@int‘LÉrl_clear_pending_input‘yšæ(åv²!oidæ)Ž¡‘.ùœáUnset›|årl‘Ä>‰x³HøŽ–ÑtpMÞending‘Ä>‰x³HøŽ“inputá,‘\&eectiv•²!ely˜negating˜the˜eect‘{of˜an“y˜previous˜call˜to˜ârl_Ž¡‘.ùœexecute_next()á.‘zYThis–…:w²!orks“only“if“the“pšMÞending“input“has“not“already“b˜een“readŽ¡‘.ùœwith‘¦fârl_read_key()á.Ž¦’&“z[F‘ÿeunction]ŽŽ‘Gë@int‘LÉrl_set_keyboard_input_timeout‘yšæ(åin²!t‘¦fuæ)Ž¡‘.ùœáWhile–ÑŽwš²!aiting“for‘Ñk˜eybMÞoard“input“in“ârl_read_key()á,‘WReadline“will“w˜ait‘Ñfor“åu“ámi-Ž¡‘.ùœcroseconds–µÀfor“input›µÁbMÞefore“calling“an²!y“function˜assigned“to“ârl_event_hooká.‘ìåu“ám²!ustŽ¡‘.ùœbšMÞe–Ógreater“than“or“equal“to“zero“(a“zero-length“timeout“is“equiv‘ÿdDalen²!t“to“a“p˜oll).‘e[TheŽ¡‘.ùœdefault–¦fwš²!aiting“p•MÞerio“d–¦fis“one-ten˜th“of“a“second.‘ÝÝReturns“the“old“timeout“v‘ÿdDalue.ŽŸ\~‘Gëe2.4.9‘d(T‘þÄ£erminal‘íMManagemen–átŽŽŸ±’&“zá[F‘ÿeunction]ŽŽ‘Gë@void‘LÉrl_prep_terminal‘yšæ(åin²!t‘¦fmeta‘Ä>‰x³HøŽ‘Ñt
agæ)Ž¡‘.ùœáMoMÞdify–¦the“terminal“settings“for“Readline's“use,‘w¶so“âreadline()“ácan“read“a“singleŽ¡‘.ùœc²!haracter–¶,at›¶-a“time“from˜the“k•²!eybMÞoard.‘
0The˜åmeta‘Ä>‰x³HøŽ‘Ñt
ag‘¦Dáargumen“t–¶,should˜bMÞe“non-zeroŽ¡‘.ùœif–¦fReadline“should“read“eigh²!t-bit“input.Ž¦’&“z[F‘ÿeunction]ŽŽ‘Gë@void‘LÉrl_deprep_terminal‘yšæ(åv²!oidæ)Ž¡‘.ùœáUndo–Ë­the›ˬeects“of˜ârl_prep_terminal()á,‘Ôÿlea²!ving˜the“terminal“in˜the“state˜in“whic²!hŽ¡‘.ùœit–¦fwš²!as“bMÞefore“the“most“recen˜t“call“to“ârl_prep_terminal()á.Ž¦’&“z[F‘ÿeunction]ŽŽ‘Gë@void‘LÉrl_tty_set_default_bindings‘yšæ(åKeymap‘¦fkmapæ)Ž¡‘.ùœáRead–oÝthe›oÜopMÞerating“system's“terminal“editing˜cš²!haracters“(as“w˜ould“bMÞe‘oÜdispla˜y˜ed“b˜yŽ¡‘.ùœâsttyá)–¦fto“their“Readline“equiv‘ÿdDalen²!ts.‘ÝÝThe“bindings“are“pMÞerformed“in“åkmapá.Ž¦’&“z[F‘ÿeunction]ŽŽ‘Gë@void‘LÉrl_tty_unset_default_bindings‘yšæ(åKeymap‘¦fkmapæ)Ž¡‘.ùœáReset–Ò;the“bindings“manipulated“b²!y‘Ò:ârl_tty_set_default_bindings“áso“that“the“ter-Ž¡‘.ùœminal–¯editing›°c²!haracters“are˜bMÞound“to“ârl_insertá.‘2¹The˜bindings“are˜pMÞerformed“inŽ¡‘.ùœåkmapá.Ž¦’&“z[F‘ÿeunction]ŽŽ‘Gë@int‘LÉrl_reset_terminal‘yšæ(åconst–¦fc²!har“*terminal‘Ä>‰x³HøŽ‘Ñtnameæ)Ž¡‘.ùœáReinitialize–Û÷Readline's“idea“of“the“terminal‘Ûøsettings“using“återminal‘Ä>‰x³HøŽ‘Ñtname‘xþáas“the“termi-Ž¡‘.ùœnal–Ñ¢t²!ypMÞe‘Ñ¡(e.g.,›Üqâvt100á).‘_If“återminal‘Ä>‰x³HøŽ‘Ñtname‘n¨áis“âNULLá,˜the›Ñ¡v‘ÿdDalue“of“the˜âTERM“áen•²!vironmen“tŽ¡‘.ùœv‘ÿdDariable–¦fis“used.ŽŽŒ‹&]Ÿò‘GáChapter–¦f2:‘ÝÝProgramming“with“GNU“Readline’Ê—38ŽŽŽ ƒ33 ý ÌÍ‘Gëe2.4.10‘d(Utilit–áy‘íMF‘þÄ£unctionsŽŽŸ’I’&“zá[F‘ÿeunction]ŽŽ‘Gë@int‘LÉrl_save_state‘yšæ(åstruct–¦freadline‘Ä>‰x³HøŽ‘Ñtstate“*spæ)Ž¤
33‘.ùœáSa•²!v“e–ka›ksnapshot“of“Readline's“in²!ternal˜state“to“åspá.‘ÊThe“con•²!ten“ts–kof˜the“åreadline‘Ä>‰x³HøŽ‘ÑtstateŽ¡‘.ùœástructure–òare“došMÞcumen²!ted“in“âreadline.há.‘ѶThe“caller“is“resp˜onsible“for“allo˜cating“theŽ¡‘.ùœstructure.Ž©ñ`’&“z[F‘ÿeunction]ŽŽ‘Gë@int‘LÉrl_restore_state‘yšæ(åstruct–¦freadline‘Ä>‰x³HøŽ‘Ñtstate“*spæ)Ž¡‘.ùœáRestore–© Readline's›©in²!ternal“state˜to“that“stored˜in“åspá,‘ÛÇwhicš²!h“m˜ust“ha˜v˜e‘©bMÞeen“sa˜v˜ed‘©b˜y“aŽ¡‘.ùœcall–|¼to“ârl_save_stateá.‘ÏúThe‘|»con•²!ten“ts–|¼of“the“åreadline‘Ä>‰x³HøŽ‘Ñtstate‘Ãástructure“are“doMÞcumen²!tedŽ¡‘.ùœin–¦fâreadline.há.‘ÝÝThe“caller“is“respMÞonsible“for“freeing“the“structure.ŽŸñ_’&“z[F‘ÿeunction]ŽŽ‘Gë@void‘LÉrl_free‘yšæ(åv²!oid‘¦f*memæ)Ž¡‘.ùœáDeallošMÞcate–Œ“the‘Œ’memory“p˜oinš²!ted“to‘Œ’b˜y“åmemá.‘ìåmem“ám˜ust‘Œ’ha˜v˜e“bšMÞeen“allo˜cated‘Œ’b²!y“âmallocá.Ž¦’&“z[F‘ÿeunction]ŽŽ‘Gë@void‘LÉrl_replace_line‘yšæ(åconst–¦fcš²!har“*text,“in˜t“clear‘Ä>‰x³HøŽ‘Ñtundoæ)Ž¡‘.ùœáReplace›¼Jthe‘¼Kcon•²!ten“ts˜of˜ârl_line_buffer–¼Káwith˜åtextá.‘ŠThe“pMÞoin²!t˜and˜mark“are˜pre-Ž¡‘.ùœserv²!ed,‘.eif–epMÞossible.‘«ÝIf“åclear‘Ä>‰x³HøŽ‘Ñtundo‘5áis›dnon-zero,‘.fthe“undo˜list“assoMÞciated“with“the“curren²!tŽ¡‘.ùœline–¦fis“cleared.Ž¦’&“z[F‘ÿeunction]ŽŽ‘Gë@void‘LÉrl_extend_line_buffer‘yšæ(åin²!t‘¦flenæ)Ž¡‘.ùœáEnsure–ž4that“ârl_line_buffer“áhas‘ž5enough“space“to“hold“ålen“ác²!haracters,‘ŸØpMÞossibly“real-Ž¡‘.ùœloMÞcating–¦fit“if“necessary‘ÿe.ŽŸñ_’&“z[F‘ÿeunction]ŽŽ‘Gë@int‘LÉrl_initialize‘yšæ(åv²!oidæ)Ž¡‘.ùœáInitialize–n8or›n7re-initialize“Readline's˜in²!ternal“state.‘5RIt's“not˜strictly“necessary˜to“callŽ¡‘.ùœthis;–¦fâreadline()“ácalls“it“bMÞefore“reading“an²!y“input.Ž¦’&“z[F‘ÿeunction]ŽŽ‘Gë@int‘LÉrl_ding‘yšæ(åv²!oidæ)Ž¡‘.ùœáRing–¦fthe“terminal“bšMÞell,“ob˜eying“the“setting“of“âbell-styleá.ŽŸñ_’&“z[F‘ÿeunction]ŽŽ‘Gë@int‘LÉrl_alphabetic‘yšæ(åin²!t‘¦fcæ)Ž¡‘.ùœáReturn–¦f1“if“åc‘Pjáis“an“alphabMÞetic“c²!haracter.Ž¦’&“z[F‘ÿeunction]ŽŽ‘Gë@void‘LÉrl_display_match_list‘yšæ(åc•²!har›¦f**matc“hes,˜in“t˜len,˜in“t˜maxæ)Ž¡‘.ùœáA‘#;con•²!v“enience–#[function“for“displa²!ying“a“list“of“strings“in“columnar“format“on“Read-Ž¡‘.ùœline's›woutput–xstream.‘&âmatches“áis˜the˜list˜of“strings,‘»in˜argv“format,‘»suc²!h˜as˜a“list˜ofŽ¡‘.ùœcompletion–é9matcš²!hes.‘žÎâlen“áis“the“n˜um˜bMÞer“of“strings“in“âmatchesá,‘and“âmax“áis“the“length“ofŽ¡‘.ùœthe–$ˆlongest›$‡string“in“âmatchesá.‘²“This“function˜uses“the“setting˜of“âprint-completions-Ž¡‘.ùœhorizontally–Yðáto‘Yñselect“hoš²!w“the“matc˜hes‘Yñare“displa˜y˜ed“(see“Section‘Yñ1.3.1“[ReadlineŽ¡‘.ùœInit–Ÿ´File“Synš²!tax],‘¡page‘Ÿµ4).‘Û¢When“displa˜ying“completions,‘¡this“function‘Ÿµsets“the“n˜um-Ž¡‘.ùœbMÞer–ÔTof›ÔScolumns“used˜for“displa²!y“to˜the“v‘ÿdDalue˜of“âcompletion-display-widthá,‘þWthe“v‘ÿdDalueŽ¡‘.ùœof–¦fthe“en•²!vironmen“t–¦fv‘ÿdDariable“âCOLUMNSá,“or“the“screen“width,“in“that“order.ŽŸñ_‘!GThe–Ûfolloš²!wing‘Ûare“implemen˜ted“as“macros,‘è<dened‘Ûin“âchardefs.há.‘{ßApplications“shouldŽ¡‘Grefrain–¦ffrom“using“them.Ž¦’&“z[F‘ÿeunction]ŽŽ‘Gë@int‘LÉ_rl_uppercase_p‘yšæ(åin²!t‘¦fcæ)Ž¡‘.ùœáReturn–¦f1“if“åc‘Pjáis“an“uppšMÞercase“alphab˜etic“c²!haracter.ŽŽŒ‹'Ÿò‘GáChapter–¦f2:‘ÝÝProgramming“with“GNU“Readline’Ê—39ŽŽŽ ƒ33 ý ÌÍ’&“z[F‘ÿeunction]ŽŽ‘Gë@int‘LÉ_rl_lowercase_p‘yšæ(åin²!t‘¦fcæ)Ž¤
33‘.ùœáReturn–¦f1“if“åc‘Pjáis“a“lo•²!w“ercase–¦falphabMÞetic“c²!haracter.Ž©^’&“z[F‘ÿeunction]ŽŽ‘Gë@int‘LÉ_rl_digit_p‘yšæ(åin²!t‘¦fcæ)Ž¡‘.ùœáReturn–¦f1“if“åc‘Pjáis“a“nš²!umeric“c˜haracter.ŽŸ^’&“z[F‘ÿeunction]ŽŽ‘Gë@int‘LÉ_rl_to_upper‘yšæ(åin²!t‘¦fcæ)Ž¡‘.ùœáIf–Ùyåc‘ƒ}áis›Ùxa“lo•²!w“ercase–ÙyalphabMÞetic“c²!haracter,‘ureturn“the˜correspšMÞonding“upp˜ercase“c²!haracter.Ž¦’&“z[F‘ÿeunction]ŽŽ‘Gë@int‘LÉ_rl_to_lower‘yšæ(åin²!t‘¦fcæ)Ž¡‘.ùœáIf–xÐåc‘"Óáis“an‘xÏuppšMÞercase“alphab˜etic–xÏc²!haracter,‘îreturn“the‘xÐcorresp˜onding“lo•²!w“ercase‘xÐc“harac-Ž¡‘.ùœter.ŽŸ^’&“z[F‘ÿeunction]ŽŽ‘Gë@int‘LÉ_rl_digit_value‘yšæ(åin²!t‘¦fcæ)Ž¡‘.ùœáIf–¦fåc‘Pjáis“a“n•²!um“bMÞer,–¦freturn“the“v‘ÿdDalue“it“represen²!ts.ŽŸ‘Gëe2.4.11‘d(Miscellaneous‘íMF‘þÄ£unctionsŽŽŸÏÐ’&“zá[F‘ÿeunction]ŽŽ‘Gë@int‘LÉrl_macro_bind‘yšæ(åconst–¦fcš²!har“*k˜eyseq,“const“c˜har“*macro,“KeymapŽ¡‘DGmapæ)Ž¡‘.ùœáBind–ÉÎthe›ÉÍk²!ey“sequence˜åk•²!eyseq‘
                    103: ´áto˜in“v“ok“e–ÉÎthe˜macro“åmacroá.‘”UThe˜binding“is˜pMÞerformed“inŽ¡‘.ùœåmapá.‘ÀŒWhen–Nråkš²!eyseq‘Xáis“in˜v˜ok˜ed,‘`        the“åmacro‘ÛBáwill“bMÞe“inserted“in˜to“the“line.‘ÀŒThis“functionŽ¡‘.ùœis–¦fdeprecated;“use“ârl_generic_bind()“áinstead.Ž¦’&“z[F‘ÿeunction]ŽŽ‘Gë@void‘LÉrl_macro_dumper‘yšæ(åin²!t‘¦freadableæ)Ž¡‘.ùœáPrin•²!t›Bdthe‘Bck“ey˜sequences˜bMÞound–Bcto˜macros˜and“their˜v‘ÿdDalues,‘Vdusing˜the“curren•²!t˜k“eymap,Ž¡‘.ùœto–¿ãârl_outstreamá.‘*TIf“åreadable‘\êáis“non-zero,‘ÆBthe“list“is“formatted“in“sucš²!h“a“w˜a˜y“that“itŽ¡‘.ùœcan–¦fbMÞe“made“part“of“an“âinputrc“ále“and“re-read.Ž¦’&“z[F‘ÿeunction]ŽŽ‘Gë@int‘LÉrl_variable_bind‘yšæ(åconst–¦fcš²!har“*v‘ÿdDariable,“const“c˜har“*v‘ÿdDalueæ)Ž¡‘.ùœáMak²!e–{the›{Readline“v–ÿdDariable˜åv“ariable‘#áha•²!v“e–{åv‘ÿdDalueá.‘ÏpThis“bMÞeha•²!v“es–{as˜if“the˜readline“com-Ž¡‘.ùœmand›²0`âset–¦fèvariable“valueá'˜had˜bMÞeen˜executed˜in˜an˜âinputrc˜ále˜(see˜Section˜1.3.1Ž¡‘.ùœ[Readline–¦fInit“File“Syn²!tax],“page“4).ŽŸ^’&“z[F‘ÿeunction]ŽŽ‘Gë@char–LÉ*“rl_variable_value‘yšæ(åconst–¦fc²!har“*v‘ÿdDariableæ)Ž¡‘.ùœáReturn–ƒÅa›ƒÆstring“represen²!ting˜the“v‘ÿdDalue˜of“the˜Readline“v›ÿdDariable“åv˜ariableá.‘ÒSF‘ÿeor“b•MÞo“oleanŽ¡‘.ùœv‘ÿdDariables,–¦fthis“string“is“either“`âoná'“or“`âoffá'.Ž¦’&“z[F‘ÿeunction]ŽŽ‘Gë@void‘LÉrl_variable_dumper‘yšæ(åin²!t‘¦freadableæ)Ž¡‘.ùœáPrin²!t–pŽthe›preadline“v‘ÿdDariable˜names“and“their˜curren²!t“v‘ÿdDalues“to˜ârl_outstreamá.‘ËêIf“åread-Ž¡‘.ùœable‘´Aáis–9non-zero,‘3othe“list–:is“formatted“in‘9sucš²!h“a“w˜a˜y›9that“it“can˜bMÞe“made“part˜of“anŽ¡‘.ùœâinputrc–¦fále“and“re-read.ŽŸ^’&“z[F‘ÿeunction]ŽŽ‘Gë@int‘LÉrl_set_paren_blink_timeout‘yšæ(åin²!t‘¦fuæ)Ž¡‘.ùœáSet–‘the“time“inš²!terv‘ÿdDal“(in“microseconds)“that“Readline“w˜aits“when“sho˜wing“a“balancingŽ¡‘.ùœc²!haracter–¦fwhen“âblink-matching-paren“áhas“bMÞeen“enabled.Ž¦’&“z[F‘ÿeunction]ŽŽ‘Gë@char–LÉ*“rl_get_termcap‘yšæ(åconst–¦fc²!har“*capæ)Ž¡‘.ùœáRetrievš²!e–=±the“string“v‘ÿdDalue“of“the“termcap“capabilit˜y“åcapá.‘ºöReadline“fetc˜hes“the“termcapŽ¡‘.ùœenš²!try–2for‘1the“curren˜t›1terminal“name“and˜uses“those“capabilities˜to“mo•²!v“e˜around‘2theŽ¡‘.ùœscreen–†´line“and“pšMÞerform‘†³other“terminal-sp˜ecic“op˜erations,‘À>lik²!e“erasing“a“line.‘}÷ReadlineŽ¡‘.ùœdoMÞes–4Anot“use›4@all“of“a“terminal's˜capabilities,‘W·and“this“function“will˜return“v‘ÿdDalues“forŽ¡‘.ùœonly–¦fthose“capabilities“Readline“uses.ŽŽŒ‹($NŸò‘GáChapter–¦f2:‘ÝÝProgramming“with“GNU“Readline’Ê—40ŽŽŽ ƒ33 ý ÌÍ’&“z[F‘ÿeunction]ŽŽ‘Gë@void‘LÉrl_clear_history‘yšæ(åv²!oidæ)Ž¤
33‘.ùœáClear–C%the“history›C$list“b²!y“deleting“all˜of“the“en²!tries,‘Vþin“the“same“manner˜as“the“HistoryŽ¡‘.ùœlibrary's›%>âclear_history()–%=áfunction.‘     ZeThis“diers˜from˜âclear_history“ábMÞecause˜itŽ¡‘.ùœfrees–¦fpriv‘ÿdDate“data“Readline“sa•²!v“es–¦fin“the“history“list.ŽŸ™š‘Gëe2.4.12‘d(Alternate‘íMIn–áterfaceŽŽŸ³3‘GáAn–™Äalternate‘™Ãinš²!terface“is“a˜v‘ÿdDailable“to›™Ãplain“âreadline()á.‘„RSome“applications“need˜to“in•²!terlea“v“eŽ¡‘Gk²!eybMÞoard‘F'I/O‘Eþwith›F(le,–ndevice,“or˜windoš²!w–F'system“I/O,“t˜ypically‘F(b˜y“using“a“main‘F(loMÞop“toŽ¡‘Gâselect()–Váon›Vv‘ÿdDarious“le˜descriptors.‘ ìëT‘ÿeo“accommoMÞdate˜this“need,‘Â&readline“can˜also“bMÞeŽ¡‘Gin•²!v“ok“ed–¾=as“a‘¾>`callbacš²!k'“function“from“an“ev˜en˜t›¾>loMÞop.‘%bThere“are“functions˜aš²!v‘ÿdDailable“to“mak˜eŽ¡‘Gthis‘¦feasy‘ÿe.Ž©fh’&“z[F‘ÿeunction]ŽŽ‘Gë@void‘LÉrl_callback_handler_install‘yšæ(åconst–¦fc²!har“*prompt,Ž¡‘DGrl‘Ä>‰x³HøŽ–Ñtv²!cpfunc‘Ä>‰x³HøŽ“t‘¦f*lhandleræ)Ž¡‘.ùœáSet–ùÅup›ùÄthe“terminal“for˜readline“I/O‘ù™and“displa²!y“the˜initial“expanded“v‘ÿdDalue˜of“åpromptá.Ž¡‘.ùœSa•²!v“e–ñ<the›ñ;v‘ÿdDalue“of˜ålhandler‘ºeáto˜use“as“a˜handler“function˜to“call˜when“a˜complete“lineŽ¡‘.ùœof–I½input›I¼has“bMÞeen˜en²!tered.‘ÇáThe˜handler“function˜receiv²!es“the˜text“of˜the“line˜as“anŽ¡‘.ùœargumen²!t.Ž¦’&“z[F‘ÿeunction]ŽŽ‘Gë@void‘LÉrl_callback_read_char‘yšæ(åv²!oidæ)Ž¡‘.ùœáWhenevš²!er–Þan“application“determines“that“k˜eybMÞoard“input“is“a˜v‘ÿdDailable,‘%<it“should“callŽ¡‘.ùœârl_callback_read_char()á,‘Ï÷whic²!h–š[will›š\read“the“next˜c²!haracter“from“the˜curren²!t“inputŽ¡‘.ùœsource.‘Ä0If–Y_that“c²!haracter›Y^completes“the“line,‘hÇârl_callback_read_char˜áwill“in•²!v“ok“e‘Y_theŽ¡‘.ùœålhandler‘¯žáfunction–æuinstalled“b²!y‘ævârl_callback_handler_install“áto“proMÞcess“the“line.Ž¡‘.ùœBefore–1Ÿcalling›1 the“ålhandler‘úÈáfunction,‘”mthe“terminal˜settings“are“reset“to˜the“v‘ÿdDaluesŽ¡‘.ùœthey–7Ghad“bMÞefore“calling“ârl_callback_handler_installá.‘     If“the“ålhandler‘páfunctionŽ¡‘.ùœreturns,‘j“and–[Ÿthe›[žline“handler˜remains“installed,‘j“the“terminal˜settings“are˜moMÞdied“forŽ¡‘.ùœReadline's–¦fuse“again.‘ÝÝâEOF“áis“indicated“b²!y“calling“ålhandler‘oáwith“a“âNULL“áline.Ž¦’&“z[F‘ÿeunction]ŽŽ‘Gë@void‘LÉrl_callback_handler_remove‘yšæ(åv²!oidæ)Ž¡‘.ùœáRestore–vüthe“terminal“to‘výits“initial“state“and“remo•²!v“e–vüthe“line“handler.‘O This“ma²!y“bMÞeŽ¡‘.ùœcalled–]from›]&within“a˜callbac²!k“as˜w²!ell“as˜indepMÞenden²!tly‘ÿe.‘&°If˜the“ålhandler‘&*áinstalled“b²!yŽ¡‘.ùœârl_callback_handler_install–¦ÝádoMÞes“not“exit‘¦Üthe“program,‘æúeither“this“function“orŽ¡‘.ùœthe–ÅMfunction›ÅLreferred“to“b²!y˜the“v‘ÿdDalue˜of“ârl_deprep_term_function“áshould˜bMÞe“calledŽ¡‘.ùœbMÞefore–¦fthe“program“exits“to“reset“the“terminal“settings.ŽŸ™›‘Gëe2.4.13‘d(A–íMReadline“ExampleŽŽŸ³3‘GáHere–.is‘/a“function“whicš²!h“c˜hanges‘/lo˜w˜ercase“c˜haracters“to“their‘/uppMÞercase“equiv‘ÿdDalen˜ts,‘+àandŽ¡‘GuppMÞercase–>cš²!haracters“to“lo˜w˜ercase.‘¦XIf“this“function“w˜as“bMÞound“to“`âM-cá',‘d™then“t˜yping“`âM-cá'Ž¡‘Gw•²!ould›ɳc“hange–É´the˜case“of˜the“c²!haracter˜under“pMÞoin•²!t.‘GÅT“yping‘É´`âM-1–¦f0“M-cá'˜w•²!ould‘É´c“hange˜theŽ¡‘Gcase–¦fof“the“folloš²!wing“10“c˜haracters,“lea˜ving“the“cursor“on“the“last“c˜haracter“c˜hanged.ŽŸÌÍ‘.ùœâ/*–¿ªInvert“the“case“of“the“COUNT“following“characters.“*/Ž¡‘.ùœintŽ¡‘.ùœinvert_case_line–¿ª(count,“key)Ž¡‘K·îint–¿ªcount,“key;Ž¡‘.ùœ{Ž¡‘:xðregister–¿ªint“start,“end,“i;ŽŽŒ‹)2éŸò‘GáChapter–¦f2:‘ÝÝProgramming“with“GNU“Readline’Ê—41ŽŽŽ ƒ33 ý®‘:xðâstart–¿ª=“rl_point;Ž¤ff‘:xðif–¿ª(rl_point“>=“rl_end)Ž©
33‘EøDreturn‘¿ª(0);Ž¡‘:xðif–¿ª(count“<“0)Ž¦‘EøD{Ž¦‘Qw˜direction–¿ª=“-1;Ž¦‘Qw˜count–¿ª=“-count;Ž¦‘EøD}Ž¦‘:xðelseŽ¦‘EøDdirection–¿ª=“1;Ž¡‘:xð/*–¿ªFind“the“end“of“the“range“to“modify.“*/Ž¦‘:xðend–¿ª=“start“+“(count“*“direction);Ž¡‘:xð/*–¿ªForce“it“to“be“within“range.“*/Ž¦‘:xðif–¿ª(end“>“rl_end)Ž¦‘EøDend–¿ª=“rl_end;Ž¦‘:xðelse–¿ªif“(end“<“0)Ž¦‘EøDend–¿ª=“0;Ž¡‘:xðif–¿ª(start“==“end)Ž¦‘EøDreturn‘¿ª(0);Ž¡‘:xðif–¿ª(start“>“end)Ž¦‘EøD{Ž¦‘Qw˜int–¿ªtemp“=“start;Ž¦‘Qw˜start–¿ª=“end;Ž¦‘Qw˜end–¿ª=“temp;Ž¦‘EøD}Ž¡‘:xð/*–¿ªTell“readline“that“we“are“modifying“the“line,Ž¦‘K·îso–¿ªit“will“save“the“undo“information.“*/Ž¦‘:xðrl_modifying–¿ª(start,“end);Ž¡‘:xðfor–¿ª(i“=“start;“i“!=“end;“i++)Ž¦‘EøD{Ž¦‘Qw˜if–¿ª(_rl_uppercase_p“(rl_line_buffer[i]))Ž¦‘\öìrl_line_buffer[i]–¿ª=“_rl_to_lower“(rl_line_buffer[i]);Ž¦‘Qw˜else–¿ªif“(_rl_lowercase_p“(rl_line_buffer[i]))Ž¦‘\öìrl_line_buffer[i]–¿ª=“_rl_to_upper“(rl_line_buffer[i]);Ž¦‘EøD}Ž¦‘:xð/*–¿ªMove“point“to“on“top“of“the“last“character“changed.“*/Ž¦‘:xðrl_point–¿ª=“(direction“==“1)“?“end“-“1“:“start;Ž¦‘:xðreturn‘¿ª(0);ŽŽŒ‹*AáŸò‘GáChapter–¦f2:‘ÝÝProgramming“with“GNU“Readline’Ê—42ŽŽŽ ƒ33 ý ÌÍ‘.ùœâ}ŽŸÑ‘Gëe2.4.14‘d(Alternate–íMIn–áterface“ExampleŽŽŸ³3‘GáHere–¡Êis“a“complete“program“that“illustrates“Readline's“alternate“in²!terface.‘Ð     It“reads“linesŽ¤
33‘Gfrom–¸0the“terminal“and“displaš²!ys“them,‘¼¢pro˜viding“the“standard“history“and“T‘ÿeAB‘¸+completionŽ¡‘Gfunctions.‘ÝÝIt–¦funderstands“the“EOF“c²!haracter“or“â"áexitâ"“áto“exit“the“program.ŽŸ@‘.ùœâ/*–¿ªStandard“include“files.“stdio.h“is“required.“*/Ž¡‘.ùœ#include‘¿ª<stdlib.h>Ž¡‘.ùœ#include‘¿ª<unistd.h>Ž©ff‘.ùœ/*–¿ªUsed“for“select(2)“*/Ž¡‘.ùœ#include‘¿ª<sys/types.h>Ž¡‘.ùœ#include‘¿ª<sys/select.h>Ž¦‘.ùœ#include‘¿ª<stdio.h>Ž¦‘.ùœ/*–¿ªStandard“readline“include“files.“*/Ž¡‘.ùœ#include‘¿ª<readline/readline.h>Ž¡‘.ùœ#include‘¿ª<readline/history.h>Ž¦‘.ùœstatic–¿ªvoid“cb_linehandler“(char“*);Ž¦‘.ùœint‘¿ªrunning;Ž¡‘.ùœconst–¿ªchar“*prompt“=“"rltest$“";Ž¦‘.ùœ/*–¿ªCallback“function“called“for“each“line“when“accept-line“executed,“EOFŽ¡‘@8šseen,–¿ªor“EOF“character“read.‘TThis“sets“a“flag“and“returns;“it“couldŽ¡‘@8šalso–¿ªcall“exit(3).“*/Ž¡‘.ùœstatic‘¿ªvoidŽ¡‘.ùœcb_linehandler–¿ª(char“*line)Ž¡‘.ùœ{Ž¡‘:xð/*–¿ªCan“use“^D“(stty“eof)“or“`exit'“to“exit.“*/Ž¡‘:xðif–¿ª(line“==“NULL“||“strcmp“(line,“"exit")“==“0)Ž¡‘EøD{Ž¡‘Qw˜if–¿ª(line“==“0)Ž¡‘\öìprintf‘¿ª("\n");Ž¡‘Qw˜printf‘¿ª("exit\n");Ž¡‘Qw˜/*–¿ªThis“function“needs“to“be“called“to“reset“the“terminal“settings,Ÿnï„
                    104:        ™Ž¡‘b¶–and–¿ªcalling“it“from“the“line“handler“keeps“one“extra“prompt“fromŸnï„    Ž¡‘b¶–being–¿ªdisplayed.“*/Ž¡‘Qw˜rl_callback_handler_remove‘¿ª();Ž¦‘Qw˜running–¿ª=“0;Ž¡‘EøD}Ž¡‘:xðelseŽ¡‘EøD{ŽŽŒ‹+FýŸò‘GáChapter–¦f2:‘ÝÝProgramming“with“GNU“Readline’Ê—43ŽŽŽ ƒ33 ý ÌÍ‘Qw˜âif‘¿ª(*line)Ž¤
33‘\öìadd_history‘¿ª(line);Ž¡‘Qw˜printf–¿ª("input“line:“%s\n",“line);Ž¡‘Qw˜free‘¿ª(line);Ž¡‘EøD}Ž¡‘.ùœ}Ž©ff‘.ùœintŽ¡‘.ùœmain–¿ª(int“c,“char“**v)Ž¡‘.ùœ{Ž¡‘:xðfd_set‘¿ªfds;Ž¡‘:xðint‘¿ªr;Ž¦‘:xð/*–¿ªInstall“the“line“handler.“*/Ž¡‘:xðrl_callback_handler_install–¿ª(prompt,“cb_linehandler);Ž¦‘:xð/*–¿ªEnter“a“simple“event“loop.‘TThis“waits“until“something“is“availableŽ¡‘K·îto–¿ªread“on“readline's“input“stream“(defaults“to“standard“input)“andŽ¡‘K·îcalls–¿ªthe“builtin“character“read“callback“to“read“it.‘TIt“does“notŽ¡‘K·îhave–¿ªto“modify“the“user's“terminal“settings.“*/Ž¡‘:xðrunning–¿ª=“1;Ž¡‘:xðwhile‘¿ª(running)Ž¡‘EøD{Ž¡‘Qw˜FD_ZERO‘¿ª(&fds);Ž¡‘Qw˜FD_SET–¿ª(fileno“(rl_instream),“&fds);Ž¦‘Qw˜r–¿ª=“select“(FD_SETSIZE,“&fds,“NULL,“NULL,“NULL);Ž¡‘Qw˜if–¿ª(r“<“0)Ž¡‘\öì{Ž¡‘hv@perror–¿ª("rltest:“select");Ž¡‘hv@rl_callback_handler_remove‘¿ª();Ž¡‘hv@break;Ž¡‘\öì}Ž¦‘Qw˜if–¿ª(FD_ISSET“(fileno“(rl_instream),“&fds))Ž¡‘\öìrl_callback_read_char‘¿ª();Ž¡‘EøD}Ž¦‘:xðprintf–¿ª("rltest:“Event“loop“has“exited\n");Ž¡‘:xðreturn‘¿ª0;Ž¡‘.ùœ}ŽŸ!™¢‘Gë\2.5‘™Readline–f@Signal“HandlingŽŽŸ33‘GáSignals–¨”are“async•²!hronous‘¨“ev“en“ts›¨”sen“t˜to˜a‘¨“proMÞcess˜b“y˜the˜Unix‘¨“k“ernel,‘©sometimes˜on˜bMÞehalfŽ¡‘Gof–*£another“proMÞcess.‘j•They“are“inš²!tended‘*¤to“indicate“exceptional“ev˜en˜ts,‘K²lik˜e‘*¤a“user“pressingŽ¡‘Gthe–
                    105: 'inš²!terrupt“k˜ey“on“his“terminal,‘#or“a“net˜w˜ork“connection“bMÞeing“brok˜en.‘    There“is“a“classŽŽŒ‹,MÑŸò‘GáChapter–¦f2:‘ÝÝProgramming“with“GNU“Readline’Ê—44ŽŽŽ ƒ33 ý ÌÍ‘Gof–usignals›u€that“can“bMÞe˜sen²!t“to“the˜proMÞcess“curren²!tly“reading˜input“from“the˜k²!eybMÞoard.‘ÍSinceŽ¤
33‘GReadline–Wc²!hanges›W‚the“terminal˜attributes“when˜it“is˜called,‘ÃÇit˜needs“to˜pšMÞerform“sp˜ecialŽ¡‘GproMÞcessing–OBwhen›OAsuc²!h“a˜signal“is“receiv²!ed˜in“order˜to“restore“the˜terminal“to˜a“sane“state,‘`¯orŽ¡‘Gproš²!vide–¦fapplication“writers“with“functions“to“do“so“man˜ually‘ÿe.Ž©‘!GReadline–Øúconš²!tains“an“in˜ternal›Øùsignal“handler“that“is“installed“for˜a“n•²!um“bMÞer–Øúof“signalsŽ¡‘G(âSIGINTá,–ª      âSIGQUITá,“âSIGTERMá,›ª
                    106: âSIGHUPá,“âSIGALRMá,“âSIGTSTPá,“âSIGTTINá,˜and‘vâSIGTTOUá).‘LÿWhenŽ¡‘Gone–5Fof“these“signals“is“receiv²!ed,‘Kæthe“signal‘5Ghandler“will“reset“the“terminal“attributes“to“thoseŽ¡‘Gthat–á w²!ere›áin“eect˜bMÞefore“âreadline()˜áw²!as“called,‘ïÍreset“the˜signal“handling˜to“what˜it“w²!asŽ¡‘GbMÞefore–4’âreadline()›4‘áw²!as“called,‘KUand“resend˜the“signal“to˜the“calling˜application.‘·ìIf˜and“whenŽ¡‘Gthe–"calling›!application's“signal˜handler“returns,‘0ÐReadline“will˜reinitialize“the˜terminal“andŽ¡‘Gcon•²!tin“ue–dLto“accept›dMinput.‘ÇÔWhen“a“âSIGINT˜áis“receiv²!ed,‘q„the“Readline˜signal“handler“pMÞerformsŽ¡‘Gsome‘¦žadditional›¦w•²!ork,‘æ¬whic“h˜will–¦žcause“anš²!y“partially-en˜tered‘¦line“to“bšMÞe“ab˜orted‘¦(see“theŽ¡‘Gdescription–¦fof“ârl_free_line_state()“ábMÞelo²!w).ŽŸ&‘!GThere–ëªis“an“additional“Readline“signal“handler,›for“âSIGWINCHá,˜whicš²!h“the“k˜ernel“sends“to“aŽ¡‘GproMÞcess–v`whenev²!er›v_the“terminal's“size˜c²!hanges“(for˜example,‘ûif“a˜user“resizes˜an“âxtermá).‘ÍÛTheŽ¡‘GReadline–GtâSIGWINCH“áhandler›GsupMÞdates“Readline's“in²!ternal“screen˜size“information,‘o·and“thenŽ¡‘Gcalls–÷an²!y“âSIGWINCH“ásignal“handler“the“calling“application‘öhas“installed.‘Readline“calls“theŽ¡‘Gapplication's–;âSIGWINCH“ásignal›;
handler“without“resetting“the“terminal“to˜its“original“state.Ž¡‘GIf–Ö«the“application's“signal“handler“došMÞes“more“than‘Ö¬up˜date“its“idea“of“the“terminal“size“andŽ¡‘Greturn–Ž(for“example,‘’ìa“âlongjmp“ábac²!k“to“a“main“prošMÞcessing“lo˜op),‘’ìit“ämust‘—øácall“ârl_cleanup_Ž¡‘Gafter_signal()–¦fá(describšMÞed“b˜elo²!w),“to“restore“the“terminal“state.Ž¦‘!GReadline–o#proš²!vides“t˜w˜o“v‘ÿdDariables“that“allo˜w‘o"application“writers“to“con˜trol“whether“or“notŽ¡‘Git–û.will›û/catc²!h“certain“signals“and˜act“on“them˜when“they“are“receiv²!ed.‘Ü6It“is˜impMÞortan²!t“thatŽ¡‘Gapplications–f“c²!hange›f’the“v‘ÿdDalues˜of“these˜v‘ÿdDariables“only˜when“calling“âreadline()á,‘–not˜in“aŽ¡‘Gsignal–¦fhandler,“so“Readline's“in²!ternal“signal“state“is“not“corrupted.ŽŸÌÎ’&–3[V‘ÿeariable]ŽŽ‘Gë@int‘LÉrl_catch_signalsŽ¡‘.ùœáIf–w*this›w)v‘ÿdDariable“is˜non-zero,‘€œReadline“will“install˜signal“handlers˜for“âSIGINTá,‘€œâSIGQUITá,Ž¡‘.ùœâSIGTERMá,–¦fâSIGHUPá,“âSIGALRMá,“âSIGTSTPá,“âSIGTTINá,“and“âSIGTTOUá.Ž¦‘.ùœThe–¦fdefault“v‘ÿdDalue“of“ârl_catch_signals“áis“1.ŽŸÌÎ’&–3[V‘ÿeariable]ŽŽ‘Gë@int‘LÉrl_catch_sigwinchŽ¡‘.ùœáIf–…Tthis“v›ÿdDariable“is“set“to“a“non-zero“v˜alue,‘½Readline“will“install“a“signal“handler“forŽ¡‘.ùœâSIGWINCHá.Ž¦‘.ùœThe–¦fdefault“v‘ÿdDalue“of“ârl_catch_sigwinch“áis“1.ŽŸÌÎ’&–3[V‘ÿeariable]ŽŽ‘Gë@int‘LÉrl_change_environmentŽ¡‘.ùœáIf–Ã2this›Ã1v‘ÿdDariable“is˜set“to˜a“non-zero˜v‘ÿdDalue,‘Êeand˜Readline“is˜handling“âSIGWINCHá,‘ÊdRead-Ž¡‘.ùœline–›Áwill››ÂmoMÞdify“the“åLINES‘?Iáand“åCOLUMNS‘?Háen•²!vironmen“t˜v‘ÿdDariables–›ÁupMÞon“receipt˜of“aŽ¡‘.ùœâSIGWINCHŽ¦‘.ùœáThe–¦fdefault“v‘ÿdDalue“of“ârl_change_environment“áis“1.ŽŸÌΑ!GIf–¸0an“application›¸/doMÞes“not“wish“to˜ha•²!v“e–¸0Readline“catcš²!h“an˜y–¸/signals,‘¼£or“to–¸0handle“signalsŽ¡‘Gother–¤Ãthan›¤Äthose“Readline“catc²!hes˜(âSIGHUPá,›äZfor“example),˜Readline‘¤Äproš²!vides“con˜v˜enienceŽ¡‘Gfunctions–¦fto“do“the“necessary“terminal“and“inš²!ternal“state“clean˜up“upMÞon“receipt“of“a“signal.ŽŽŒ‹-TAŸò‘GáChapter–¦f2:‘ÝÝProgramming“with“GNU“Readline’Ê—45ŽŽŽ ƒ33 ý ÌÍ’&“z[F‘ÿeunction]ŽŽ‘Gë@void‘LÉrl_cleanup_after_signal‘yšæ(åv²!oidæ)Ž¤
33‘.ùœáThis–¦function›¥will“reset˜the“state˜of“the“terminal˜to“what˜it“w²!as˜bMÞefore“âreadline()Ž¡‘.ùœáwš²!as–†called,‘Œ~and“remo˜v˜e›†the“Readline˜signal“handlers˜for“all˜signals,‘ŒdepMÞending˜on“theŽ¡‘.ùœv‘ÿdDalues–¦fof“ârl_catch_signals“áand“ârl_catch_sigwinchá.Ž©²~’&“z[F‘ÿeunction]ŽŽ‘Gë@void‘LÉrl_free_line_state‘yšæ(åv²!oidæ)Ž¡‘.ùœáThis–µwill“free›µ~an²!y“partial“state“assoMÞciated˜with“the“curren²!t“input˜line“(undo“infor-Ž¡‘.ùœmation,‘z$anš²!y–˜partial“history“en˜try‘ÿe,‘z#an˜y“partially-en˜tered“k˜eybMÞoard“macro,‘z$and“an˜yŽ¡‘.ùœpartially-en•²!tered‘½Õn“umeric›½Ôargumen“t).‘$*This˜should–½ÕbMÞe“called˜bMÞefore“ârl_cleanup_Ž¡‘.ùœafter_signal()á.‘      LãThe– ½Readline“signal“handler› ¾for“âSIGINT“ácalls“this˜to“abMÞort“theŽ¡‘.ùœcurren²!t–¦finput“line.ŽŸ²}’&“z[F‘ÿeunction]ŽŽ‘Gë@void‘LÉrl_reset_after_signal‘yšæ(åv²!oidæ)Ž¡‘.ùœáThis–k¶will“reinitialize“the“terminal“and“reinstall‘kµan²!y“Readline“signal“handlers,‘wsdepMÞend-Ž¡‘.ùœing–¦fon“the“v‘ÿdDalues“of“ârl_catch_signals“áand“ârl_catch_sigwinchá.Ž¦‘!GIf–»µan›»¶application“doMÞes“not˜wish“Readline“to˜catcš²!h“âSIGWINCHá,‘&      it“ma˜y‘»¶call“ârl_resize_Ž¡‘Gterminal()–Báor“ârl_set_screen_size()“áto“force“Readline“to“upMÞdate“its“idea“of“the“terminalŽ¡‘Gsize–¦fwhen“a“âSIGWINCH“áis“receiv²!ed.ŽŸ²}’&“z[F‘ÿeunction]ŽŽ‘Gë@void‘LÉrl_echo_signal_char‘yšæ(åin²!t‘¦fsigæ)Ž¡‘.ùœáIf–;©an“application“wishes“to“install“its‘;¨oš²!wn“signal“handlers,‘ ùbut“still“ha˜v˜e“readlineŽ¡‘.ùœdispla•²!y›¨Íc“haracters–¨Îthat˜generate˜signals,‘©gcalling˜this“function˜with˜åsig‘˜åáset“to˜âSIGINTá,Ž¡‘.ùœâSIGQUITá,–¦for“âSIGTSTP“áwill“displaš²!y“the“c˜haracter“generating“that“signal.Ž¦’&“z[F‘ÿeunction]ŽŽ‘Gë@void‘LÉrl_resize_terminal‘yšæ(åv²!oidæ)Ž¡‘.ùœáUpMÞdate–¦fReadline's“inš²!ternal“screen“size“b˜y“reading“v‘ÿdDalues“from“the“k˜ernel.ŽŸ²}’&“z[F‘ÿeunction]ŽŽ‘Gë@void‘LÉrl_set_screen_size‘yšæ(åin•²!t›¦fro“ws,˜in“t˜colsæ)Ž¡‘.ùœáSet–XÅReadline's“idea›XÄof“the“terminal“size“to˜åro•²!ws›ÌGáro“ws–XÅand“åcols˜ácolumns.‘ÃüIf“either“åro²!wsŽ¡‘.ùœáor–9Øåcolumns‘­Záis“less“than›9Ùor“equal“to“0,‘^´Readline's“idea˜of“that“terminal“dimension“isŽ¡‘.ùœunc²!hanged.Ž¦‘!GIf–&¹an“application›&¸doMÞes“not“w•²!an“t–&¹to“install“a˜âSIGWINCH“áhandler,‘Žbut“is˜still“in²!terested“inŽ¡‘Gthe–¦fscreen“dimensions,“Readline's“idea“of“the“screen“size“ma²!y“bMÞe“queried.Ž¦’&“z[F‘ÿeunction]ŽŽ‘Gë@void‘LÉrl_get_screen_size‘yšæ(åin•²!t›¦f*ro“ws,˜in“t˜*colsæ)Ž¡‘.ùœáReturn–GReadline's“idea“of›Hthe“terminal's“size“in“the“v‘ÿdDariables“pMÞoin²!ted˜to“b²!y“the“argu-Ž¡‘.ùœmen²!ts.ŽŸ²}’&“z[F‘ÿeunction]ŽŽ‘Gë@void‘LÉrl_reset_screen_size‘yšæ(åv²!oidæ)Ž¡‘.ùœáCause–¦fReadline“to“reobtain“the“screen“size“and“recalculate“its“dimensions.Ž¦‘!GThe–¦ffolloš²!wing“functions“install“and“remo˜v˜e“Readline's“signal“handlers.ŽŸ²}’&“z[F‘ÿeunction]ŽŽ‘Gë@int‘LÉrl_set_signals‘yšæ(åv²!oidæ)Ž¡‘.ùœáInstall–ÊíReadline's“signal“handler“for“âSIGINTá,–âSIGQUITá,›âSIGTERMá,“âSIGHUPá,˜âSIGALRMá,Ž¡‘.ùœâSIGTSTPá,–a¶âSIGTTINá,‘aµâSIGTTOUá,“and›<?âSIGWINCHá,“depMÞending˜on–<@the˜v‘ÿdDalues“of˜ârl_catch_Ž¡‘.ùœsignals–¦fáand“ârl_catch_sigwinchá.Ž¦’&“z[F‘ÿeunction]ŽŽ‘Gë@int‘LÉrl_clear_signals‘yšæ(åv²!oidæ)Ž¡‘.ùœáRemo•²!v“e–¦fall“of“the“Readline“signal“handlers“installed“b²!y“ârl_set_signals()á.ŽŽŒ‹.dlŸò‘GáChapter–¦f2:‘ÝÝProgramming“with“GNU“Readline’Ê—46ŽŽŽ ƒ33 ý ÌÍ‘Gë\2.6‘™Custom‘f@CompletersŽŽŸ33‘GáTš²!ypically‘ÿe,‘}Ba–program“that“reads“commands“from“the“user‘has“a“w˜a˜y“of“disam˜biguatingŽ¤
33‘Gcommands–B and“data.‘±If“y²!our“program“is“one›B!of“these,‘ithen“it˜can“pro²!vide“completion“forŽ¡‘Gcommands,‘ˆÃdata,‘ˆÄor–[bšMÞoth.‘Ñ„The‘Zfollo²!wing“sections“describ˜e“hoš²!w“y˜our‘Zprogram“and“ReadlineŽ¡‘Gco•MÞop“erate–¦fto“pro²!vide“this“service.ŽŸΑGëe2.6.1‘d(Ho–áw–íMCompleting“W‘þÄ£orksŽŽŸ³3‘GáIn–(Æorder›(Çto“complete˜some“text,‘Açthe“full˜list“of˜pMÞossible“completions˜m²!ust“bMÞe˜a²!v‘ÿdDailable.‘³ýThatŽ¡‘Gis,‘P
it–:vis“not“pMÞossible“to›:waccurately“expand“a“partial˜wš²!ord“without“kno˜wing“all‘:wof“the“pMÞossibleŽ¡‘Gw•²!ords›üwhic“h‘ümak“e˜sense‘üin˜that˜con“text.‘ÞÍThe˜Readline˜library‘üpro“vides˜the‘üuser˜in“terfaceŽ¡‘Gto–g®completion,‘t:and“t•²!w“o–g¯of›g®the“most˜common˜completion“functions:‘¾lename“and˜username.Ž¡‘GF‘ÿeor–‘Çcompleting‘‘Èother“tš²!ypMÞes“of“text,‘Ì y˜ou“m˜ust“write“y˜our‘‘Èo˜wn“completion“function.‘ &ThisŽ¡‘Gsection–¦fdescribMÞes“exactly“what“sucš²!h“functions“m˜ust“do,“and“pro˜vides“an“example.Ž¤9š‘!GThere–¦fare“three“ma‘›»jor“functions“used“to“pMÞerform“completion:Ž¡‘&-1.Ž‘'¿«The–6@user-in²!terface“function“ârl_complete()á.‘        lThis“function“is“called“with“the“sameŽ¤
33‘'¿«argumenš²!ts–Has“other“bindable“Readline“functions:‘!<åcoun˜t‘…áand“åin˜v˜oking‘Ä>‰x³HøŽ‘Ñtk˜eyá.‘ÂíIt“isolatesŽ¡‘'¿«the–ƒ,w²!ord“to“bMÞe“completed“and“calls‘ƒ+ârl_completion_matches()“áto“generate“a“list“ofŽ¡‘'¿«pMÞossible–¼?completions.‘iIt›¼@then“either˜lists“the“pMÞossible˜completions,‘Áµinserts˜the“pMÞossibleŽ¡‘'¿«completions,›ÞÎor‘mactually–m pMÞerforms“the“completion,˜depšMÞending‘mon“whic²!h“b˜eha²!vior“isŽ¡‘'¿«desired.Ž©9š‘&-2.Ž‘'¿«The–Œin²!ternal›‹function“ârl_completion_matches()˜áuses“an˜application-supplied“ågener-Ž¡‘'¿«ator‘:yáfunction›qQto–qPgenerate“the˜list“of“pMÞossible˜matc²!hes,‘¤
                    107: and˜then“returns“the˜arra²!y“ofŽ¡‘'¿«these–¯>matc²!hes.‘øfThe“caller“should“place“the“address“of“its‘¯?generator“function“in“ârl_Ž¡‘'¿«completion_entry_functioná.Ž¦‘&-3.Ž‘'¿«The–¿generator“function“is“called“repMÞeatedly“from‘¿ârl_completion_matches()á,‘íLreturningŽ¡‘'¿«a–înstring“eacš²!h“time.‘µõThe“argumen˜ts“to‘îothe“generator“function“are“åtext‘+náand“åstateá.‘µõåtextŽ¡‘'¿«áis–Ùâthe“partial“w²!ord“to“bMÞe“completed.‘xRåstate‘véáis“zero“the“rst“time“the“function“is“called,Ž¡‘'¿«alloš²!wing–G2the“generator“to‘G3pMÞerform“an˜y“necessary“initialization,‘¯eand“a“pMÞositiv˜e“non-Ž¡‘'¿«zero–¡inš²!teger‘¢for“eac˜h“subsequen˜t–¢call.‘Ñ›The“generator–¡function“returns‘¢â(char‘¦f*)NULL“átoŽ¡‘'¿«inform–’þârl_completion_matches()“áthat‘’ÿthere“are“no“more“pMÞossibilities“left.‘£¦UsuallyŽ¡‘'¿«the–§^generator“function“computes“the“list“of‘§]pMÞossible“completions“when“åstate‘Deáis“zero,Ž¡‘'¿«and–jreturns›kthem“one˜at“a“time˜on“subsequen•²!t˜calls.‘«ÞEac“h˜string–jthe˜generator“functionŽ¡‘'¿«returns–Ô¨as“a“matcš²!h“m˜ust“bšMÞe“allo˜cated“with“âmalloc()á;‘ëÉReadline“frees“the“strings“whenŽ¡‘'¿«it–Žhas›nished“with˜them.‘TSuc²!h˜a“generator˜function“is˜referred“to˜as“an˜åapplication-Ž¡‘'¿«spMÞecic–¦fcompletion“functioná.ŽŸFi’&“z[F‘ÿeunction]ŽŽ‘Gë@int‘LÉrl_complete‘yšæ(åinš²!t–¦fignore,“in˜t“in˜v˜oking‘Ä>‰x³HøŽ‘Ñtk˜eyæ)Ž¡‘.ùœáComplete–¯tthe›¯sw²!ord“at“or˜bšMÞefore“p˜oinš²!t.‘ùY‘ÿeou“ha˜v˜e“supplied›¯sthe“function“that˜doMÞes“theŽ¡‘.ùœinitial–ð™simple›ðšmatc²!hing“selection“algorithm˜(see“ârl_completion_matches()á).‘¼wTheŽ¡‘.ùœdefault–¦fis“to“do“lename“completion.ŽŸFh’&–3[V‘ÿeariable]ŽŽ‘Gë@rl_compentry_func_t–LÉ*“rl_completion_entry_functionŽ¡‘.ùœáThis–ÌJis›ÌIa“pMÞoin²!ter“to˜the“generator“function“for˜ârl_completion_matches()á.‘OˆIf“theŽ¡‘.ùœv‘ÿdDalue–Ùîof›Ùïârl_completion_entry_function“áis˜âNULL“áthen˜the“default˜lename“generatorŽ¡‘.ùœfunction,–×êârl_filename_completion_function()á,“is–gused.‘
                    108: !An“åapplication-spMÞecicŽ¡‘.ùœcompletion–†Ëfunction›†Ìáis“a˜function“whose˜address“is˜assigned“to˜ârl_completion_entry_Ž¡‘.ùœfunction–¦fáand“whose“return“v‘ÿdDalues“are“used“to“generate“pMÞossible“completions.ŽŽŒ‹/r¨Ÿò‘GáChapter–¦f2:‘ÝÝProgramming“with“GNU“Readline’Ê—47ŽŽŽ ƒ33 ý ÌÍ‘Gëe2.6.2‘d(Completion‘íMF‘þÄ£unctionsŽŽŸ³3‘GáHere–¦fis“the“complete“list“of“callable“completion“functions“presen²!t“in“Readline.Ž©\*’&“z[F‘ÿeunction]ŽŽ‘Gë@int‘LÉrl_complete_internal‘yšæ(åin²!t‘¦fwhat‘Ä>‰x³HøŽ–Ñtto‘Ä>‰x³HøŽ“doæ)Ž¤
33‘.ùœáComplete–f&the“w²!ord‘fat“or“bšMÞefore“p˜oinš²!t.‘­åwhat‘Ä>‰x³HøŽ–Ñtto‘Ä>‰x³HøŽ“do‘òÑása˜ys›fwhat–f&to“do“with˜the“com-Ž¡‘.ùœpletion.‘(éA‘¿cv‘ÿdDalue–¿jof“`â?á'“means“list“the“pMÞossible“completions.‘(è`âTABá'“means“do“standardŽ¡‘.ùœcompletion.‘&'`â*á'–¾~means›¾insert“all˜of“the˜pMÞossible“completions.‘&'`â!á'“means˜to“displa²!y˜allŽ¡‘.ùœof–!)the“pMÞossible“completions,‘?Úif“there“is›!*more“than“one,‘?Ùas˜w²!ell“as“pMÞerforming“partialŽ¡‘.ùœcompletion.‘¾*`â@á'–GMis›GNsimilar“to“`â!á',‘ZRbut“pMÞossible˜completions“are“not“listed˜if“the“pMÞossibleŽ¡‘.ùœcompletions–¦fshare“a“common“prex.Ž¦’&“z[F‘ÿeunction]ŽŽ‘Gë@int‘LÉrl_complete‘yšæ(åinš²!t–¦fignore,“in˜t“in˜v˜oking‘Ä>‰x³HøŽ‘Ñtk˜eyæ)Ž¡‘.ùœáComplete–ñèthe›ñçw²!ord“at˜or“bšMÞefore“p˜oinš²!t.‘ÀaY‘ÿeou“ha˜v˜e“supplied›ñçthe“function˜that“doMÞesŽ¡‘.ùœthe–õàinitial›õßsimple“matc²!hing“selection˜algorithm“(see˜ârl_completion_matches()“áandŽ¡‘.ùœârl_completion_entry_functioná).‘×XThe–Nädefault›Nåis“to“do˜lename“completion.‘×XThisŽ¡‘.ùœcalls–¦fârl_complete_internal()“áwith“an“argumenš²!t“depMÞending“on“åin˜v˜oking‘Ä>‰x³HøŽ‘Ñtk˜eyá.ŽŸ\)’&“z[F‘ÿeunction]ŽŽ‘Gë@int‘LÉrl_possible_completions‘yšæ(åin•²!t›¦fcoun“t,˜in“t˜in“v“oking‘Ä>‰x³HøŽ‘Ñtk“eyæ)Ž¡‘.ùœáList–ÞÇthe“pMÞossible“completions.›†ÿSee“description“of“ârl_complete‘¦f()á.˜This“calls“ârl_Ž¡‘.ùœcomplete_internal()–¦fáwith“an“argumen²!t“of“`â?á'.Ž¦’&“z[F‘ÿeunction]ŽŽ‘Gë@int‘LÉrl_insert_completions‘yšæ(åin•²!t›¦fcoun“t,˜in“t˜in“v“oking‘Ä>‰x³HøŽ‘Ñtk“eyæ)Ž¡‘.ùœáInsert–     Ëthe›  Êlist“of˜pMÞossible“completions˜in²!to“the˜line,‘"¤deleting˜the“partially-completedŽ¡‘.ùœw²!ord.›WâSee–Ïdescription‘Ïof“ârl_complete()á.˜This›Ïcalls“ârl_complete_internal()˜áwithŽ¡‘.ùœan–¦fargumen²!t“of“`â*á'.Ž¦’&“z[F‘ÿeunction]ŽŽ‘Gë@int‘LÉrl_completion_mode‘yšæ(årl‘Ä>‰x³HøŽ–Ñtcommand‘Ä>‰x³HøŽ“func‘Ä>‰x³HøŽ“t‘¦f*cfuncæ)Ž¡‘.ùœáReturns–úûthe›úúappropriate“v‘ÿdDalue˜to“pass˜to“ârl_complete_internal()˜ádepMÞending“onŽ¡‘.ùœwhether–çxåcfunc‘‘{áwš²!as“called‘çwt˜wice“in›çwsuccession“and˜the“v‘ÿdDalues˜of“the˜âshow-all-if-Ž¡‘.ùœambiguous–OŽáand‘Oâshow-all-if-unmodified“áv‘ÿdDariables.‘ÀêApplication-spMÞecic“completionŽ¡‘.ùœfunctions–¦fmaš²!y“use“this“function“to“presen˜t“the“same“in˜terface“as“ârl_complete()á.Ž¦’&“z[F‘ÿeunction]ŽŽ‘Gë@char–LÉ**“rl_completion_matches‘yšæ(åconst–¦fc²!har“*text,Ž¡‘DGrl‘Ä>‰x³HøŽ–ÑtcompMÞenš²!try‘Ä>‰x³HøŽ“func‘Ä>‰x³HøŽ“t‘¦f*en˜try‘Ä>‰x³HøŽ“funcæ)Ž¡‘.ùœáReturns–Œ^an‘Œ]arraš²!y“of“strings“whic˜h›Œ]is“a“list“of˜completions“for“åtextá.‘ÄIf“there˜are“noŽ¡‘.ùœcompletions,‘C;returns–#ÝâNULLá.‘VCThe›#Þrst“en²!try“in“the˜returned“arra²!y“is˜the“substitutionŽ¡‘.ùœfor–)Gåtextá.›´(The“remaining“en²!tries“are“the“pMÞossible“completions.˜The“arra²!y“is“terminatedŽ¡‘.ùœwith–¦fa“âNULL“ápMÞoin²!ter.ŽŸÇ®‘.ùœåen²!try‘Ä>‰x³HøŽ‘Ñtfunc‘hoáis–¾la›¾kfunction“of˜t•²!w“o˜args,‘mand˜returns˜a–¾lâchar‘¦f*á.‘%íThe˜rst“argumen²!t˜isŽ¡‘.ùœåtextá.‘××The–¤dsecond“is“a“state›¤eargumen²!t;‘#bit“is“zero˜on“the“rst“call,‘ããand“non-zero“onŽ¡‘.ùœsubsequen•²!t›~calls.‘#åen“try‘Ä>‰x³HøŽ‘Ñtfunc‘º‚áreturns˜a‘}âNULL˜ápMÞoin“ter–}to˜the˜caller“when˜there“are˜noŽ¡‘.ùœmore‘¦fmatc²!hes.Ž¦’&“z[F‘ÿeunction]ŽŽ‘Gë@char–LÉ*“rl_filename_completion_function‘yšæ(åconst–¦fcš²!har“*text,“in˜tŽ¡‘DGstateæ)Ž¡‘.ùœáA‘‹generator–±function›°for“lename˜completion“in˜the“general˜case.‘¬öåtext‘P±áis˜a“partial˜le-Ž¡‘.ùœname.‘‚UThe–“ÏBash›“Îsource“is˜a“useful˜reference“for˜writing“application-spMÞecic˜completionŽ¡‘.ùœfunctions–¦f(the“Bash“completion“functions“call“this“and“other“Readline“functions).ŽŽŒ‹0„Ÿò‘GáChapter–¦f2:‘ÝÝProgramming“with“GNU“Readline’Ê—48ŽŽŽ ƒ33 ý ÌÍ’&“z[F‘ÿeunction]ŽŽ‘Gë@char–LÉ*“rl_username_completion_function‘yšæ(åconst–¦fcš²!har“*text,“in˜tŽ¤
33‘DGstateæ)Ž¡‘.ùœáA‘l&completion–l4generator›l5for“usernames.‘Êxåtext‘©4ácon²!tains˜a“partial˜username“preceded˜b²!yŽ¡‘.ùœa–«ºrandom›«»c²!haracter“(usually“`â~á').‘íÚAs˜with“all“completion˜generators,‘­åstate‘HÁáis˜zero“onŽ¡‘.ùœthe–¦frst“call“and“non-zero“for“subsequen²!t“calls.ŽŸ0¥‘Gëe2.6.3‘d(Completion‘íMV‘þÄ£ariablesŽŽŸã×’&–3á[V‘ÿeariable]ŽŽ‘Gë@rl_compentry_func_t–LÉ*“rl_completion_entry_functionŽ¡‘.ùœáA‘{pMÞoin²!ter‘’to–“the“generator“function“for“ârl_completion_matches()á.‘ûdâNULL“ámeans“toŽ¡‘.ùœuse–¦fârl_filename_completion_function()á,“the“default“lename“completer.Ž©”|’&–3[V‘ÿeariable]ŽŽ‘Gë@rl_completion_func_t–LÉ*“rl_attempted_completion_functionŽ¡‘.ùœáA‘,„pMÞoinš²!ter–,§to‘,¦an“alternativ˜e›,¦function“to˜create“matc²!hes.‘pŸThe˜function“is˜called“withŽ¡‘.ùœåtextá,‘îûåstartá,‘îúand–Á åendá.‘‘qåstart‘þ áand“åend‘/ráare‘Áindices“in“ârl_line_buffer“ádening“the“bMÞound-Ž¡‘.ùœaries›of–åtextá,‘9\whic²!h“is˜a˜c²!haracter“string.‘°nIf˜this“function˜exists˜and“returns˜âNULLá,‘9]or˜ifŽ¡‘.ùœthis– v‘ÿdDariable› žis“set˜to“âNULLá,‘Ôùthen“ârl_complete()˜áwill“call˜the“v‘ÿdDalue˜of“ârl_completion_Ž¡‘.ùœentry_function–hÚáto›hÙgenerate“matc²!hes,‘u)otherwise˜the“arra²!y“of˜strings“returned˜will“bMÞeŽ¡‘.ùœused.‘‹tIf–¯,this›¯+function“sets˜the“ârl_attempted_completion_over˜áv‘ÿdDariable“to˜a“non-zeroŽ¡‘.ùœv‘ÿdDalue,‘-óReadline–×will“not“pMÞerform“its“default‘Öcompletion“ev²!en“if“this“function“returnsŽ¡‘.ùœno‘¦fmatc²!hes.ŽŸ”}’&–3[V‘ÿeariable]ŽŽ‘Gë@rl_quote_func_t–LÉ*“rl_filename_quoting_functionŽ¡‘.ùœáA‘è–pMÞoin²!ter›è¦to–è§a“function˜that“will“quote“a˜lename“in“an˜application-spMÞecic“fashion.Ž¡‘.ùœThis–·Kis“called“if“lename“completion“is‘·JbMÞeing“attempted“and“one“of“the“c²!haractersŽ¡‘.ùœin–ü’ârl_filename_quote_characters›ü‘áappMÞears“in“a“completed˜lename.‘à`The“functionŽ¡‘.ùœis–mPcalled“with‘mQåtextá,‘Ÿ
                    109: åmatc•²!h‘Ä>‰x³HøŽ›Ñtt“yp•MÞeá,‘Ÿand‘mPåquote‘Ä>‰x³HøŽ˜p“oin²!terá.‘2œThe–mPåtext‘ªPáis“the‘mQlename“to“bMÞeŽ¡‘.ùœquoted.‘     (TThe›åmatc•²!h‘Ä>‰x³HøŽ‘Ñtt“ypMÞe‘±•áis˜either–ŽâSINGLE_MATCHá,‘pif“there˜is“only˜one“completionŽ¡‘.ùœmatc²!h,‘Ì‚or–ÄãâMULT_MATCHá.‘9SSome“functions“use“this“to“decide“whether“or‘Äânot“to“insert“aŽ¡‘.ùœclosing–çquote‘æcš²!haracter.‘{³The“åquote‘Ä>‰x³HøŽ‘ÑtpMÞoin˜ter‘Iáis“a‘æpMÞoin˜ter“to‘æan˜y“opMÞening‘æquote“c˜haracterŽ¡‘.ùœthe–¦fuser“tš²!ypMÞed.‘ÝÝSome“functions“c˜hoMÞose“to“reset“this“c˜haracter.Ž¦’&–3[V‘ÿeariable]ŽŽ‘Gë@rl_dequote_func_t–LÉ*“rl_filename_dequoting_functionŽ¡‘.ùœáA‘Ž¼pMÞoin²!ter›ŽÃto–ŽÂa“function“that˜will“remo•²!v“e–ŽÂapplication-spMÞecic“quoting˜c²!haracters“fromŽ¡‘.ùœa–çžlename“bMÞefore“completion“is“attempted,‘÷ëso“those“cš²!haracters“do“not“in˜terfere“withŽ¡‘.ùœmatc²!hing–“áthe“text›“âagainst“names“in“the˜lesystem.‘¦NIt“is˜called“with“åtextá,‘Ï@the“textŽ¡‘.ùœof–xthe“wš²!ord“to‘wbMÞe“dequoted,‘m|and“åquote‘Ä>‰x³HøŽ‘Ñtc˜hará,‘m|whic˜h“is‘wthe“quoting“c˜haracter“thatŽ¡‘.ùœdelimits–Ü>the“lename›Ü?(usually“`â'á'“or“`â"á').‘fIf“åquote‘Ä>‰x³HøŽ‘Ñtc²!har‘¥gáis“zero,‘é´the˜lename“w²!as“notŽ¡‘.ùœin–¦fan“em²!bMÞedded“string.Ž¦’&–3[V‘ÿeariable]ŽŽ‘Gë@rl_linebuf_func_t–LÉ*“rl_char_is_quoted_pŽ¡‘.ùœáA‘kÿpšMÞoin²!ter–l2to“a“function“to“call“that“determines“whether“or“not“a“sp˜ecic“c²!haracterŽ¡‘.ùœin–#^the“line›#_buer“is“quoted,‘Bœaccording“to“whatev²!er“quoting˜mec²!hanism“the“programŽ¡‘.ùœcalling–úÎReadline“uses.‘¤«The“function“is“called“with“t•²!w“o‘úÏargumen“ts:‘ˆåtextá,‘ the–úÎtext“of“theŽ¡‘.ùœline,–´­and›±Òåindexá,“the˜index–±Ñof˜the˜c²!haracter˜in˜the˜line.‘!It˜is“used˜to˜decide˜whether˜aŽ¡‘.ùœc²!haracter›ŸFfound–ŸEin“ârl_completer_word_break_characters˜áshould“bMÞe˜used˜to“breakŽ¡‘.ùœw²!ords–¦ffor“the“completer.ŽŽŒ‹1”ˆŸò‘GáChapter–¦f2:‘ÝÝProgramming“with“GNU“Readline’Ê—49ŽŽŽ ƒ33 ý ÌÍ’&–3[V‘ÿeariable]ŽŽ‘Gë@rl_compignore_func_t–LÉ*“rl_ignore_some_completions_functionŽ¤
33‘.ùœáThis–†hfunction,‘¾hif“dened,‘¾iis“called“b²!y“the“completer“when“real“lename“completionŽ¡‘.ùœis–¸done,‘1after›¹all“the“matc²!hing˜names“ha•²!v“e˜bMÞeen–¸generated.‘+ÔIt“is˜passed“a˜âNULL“áter-Ž¡‘.ùœminated–³Zarraš²!y‘³Yof“matc˜hes.‘¸The“rst“elemen˜t›³Y(âmatches[0]á)“is“the˜maximal“substringŽ¡‘.ùœcommon–tEto›tFall“matc²!hes.‘Í(This“function˜can“re-arrange˜the“list˜of“matc²!hes˜as“required,Ž¡‘.ùœbut–¦feacš²!h“elemen˜t“deleted“from“the“arra˜y“m˜ust“bMÞe“freed.ŽŸžB’&–3[V‘ÿeariable]ŽŽ‘Gë@rl_icppfunc_t–LÉ*“rl_directory_completion_hookŽ¡‘.ùœáThis–qAfunction,›ãöif“dened,˜is“allo•²!w“ed›q@to–qAmoMÞdify“the˜directory“pMÞortion˜of“lenamesŽ¡‘.ùœReadline–0Ëcompletes.‘}
It›0Ìcould“bMÞe“used˜to“expand“sym²!bMÞolic˜links“or“shell˜v‘ÿdDariables“inŽ¡‘.ùœpathnames.‘tIt›Øwis–Øxcalled“with˜the“address˜of“a“string˜(the“curren²!t˜directory“name)Ž¡‘.ùœas–…6an“argumenš²!t,‘¼êand“ma˜y“moMÞdify“that“string.‘zMIf“the“string“is“replaced“with“a“newŽ¡‘.ùœstring,‘ÜUthe–žYold“v‘ÿdDalue“should“bšMÞe“freed.‘ŶAn²!y‘žXmo˜died“directory“name“should“ha•²!v“e‘žYaŽ¡‘.ùœtrailing–2œslash.‘‚€The“mošMÞdied“v‘ÿdDalue‘2will“b˜e“used“as‘2part“of“the“completion,‘UªreplacingŽ¡‘.ùœthe–Í}directory›Í~pMÞortion“of˜the“pathname˜the“user˜t•²!ypMÞed.‘S#A“t˜the›Í}least,‘×Dev“en˜if‘Í~no˜otherŽ¡‘.ùœexpansion–EQis“pMÞerformed,‘mthis“function“should“remo•²!v“e›EQan“y‘ERquote˜c“haracters˜from˜theŽ¡‘.ùœdirectory–¦fname,“bšMÞecause“its“result“will“b˜e“passed“directly“to“âopendir()á.ŽŸ軑.ùœThe–directory“completion›ÿhoMÞok“returns“an“in²!teger˜that“should“bMÞe“non-zero˜if“the“func-Ž¡‘.ùœtion–õmoMÞdies“its›ödirectory“argumen²!t.‘;‹The“function“should“not˜moMÞdify“the“directoryŽ¡‘.ùœargumen²!t–¦fif“it“returns“0.Ž©žC’&–3[V‘ÿeariable]ŽŽ‘Gë@rl_icppfunc_t–LÉ*“rl_directory_rewrite_hook;Ž¡‘.ùœáIf–êãnon-zero,‘dthis“is›êäthe“address“of˜a“function“to˜call“when“completing“a˜directory“name.Ž¡‘.ùœThis–2}function“tak²!es“the›2~address“of“the“directory“name“to“b•MÞe˜mo“died–2}as“an“argumen²!t.Ž¡‘.ùœUnlik²!e–µèârl_directory_completion_hooká,‘ùÈit“only“moMÞdies“the“directory“name“usedŽ¡‘.ùœin–>øâopendirá,‘enot“what“is“displa•²!y“ed›>ùwhen–>øthe“pMÞossible“completions“are˜prin²!ted“or“in-Ž¡‘.ùœserted.‘³NIt–&ºis‘&¹called“bšMÞefore“rl‘Ä>‰x³HøŽ–Ñtdirectory‘Ä>‰x³HøŽ“completion‘Ä>‰x³HøŽ“ho˜ok.‘³NA•²!t‘&¹the›&ºleast,‘@Bev“en˜if‘&¹no˜otherŽ¡‘.ùœexpansion–EQis“pMÞerformed,‘mthis“function“should“remo•²!v“e›EQan“y‘ERquote˜c“haracters˜from˜theŽ¡‘.ùœdirectory–¦fname,“bšMÞecause“its“result“will“b˜e“passed“directly“to“âopendir()á.ŽŸ躑.ùœThe–Œ*directory›Œ+rewrite“hoMÞok˜returns“an˜in²!teger“that˜should“bMÞe˜non-zero“if˜the“func-Ž¡‘.ùœtion–VÛmošMÞdes“its“directory“argumen²!t.‘ï<The“function“should“not“mo˜dify“the“directoryŽ¡‘.ùœargumen²!t–¦fif“it“returns“0.Ž¦’&–3[V‘ÿeariable]ŽŽ‘Gë@rl_icppfunc_t–LÉ*“rl_filename_stat_hookŽ¡‘.ùœáIf–?non-zero,‘Ÿthis“is“the›>address“of“a“function˜for“the“completer“to˜call“bMÞefore“decidingŽ¡‘.ùœwhic•²!h›ác“haracter–âto˜appMÞend˜to“a˜completed˜name.‘ÛThis˜function˜moMÞdies“its˜lenameŽ¡‘.ùœname–Fargumen²!t,‘mìand“the“moMÞdied“v‘ÿdDalue“is“passed“to“âstat()“áto“determine“the“le'sŽ¡‘.ùœtš²!ypMÞe–Þ:and“c˜haracteristics.‘…YThis“function‘Þ;doMÞes“not“need“to“remo˜v˜e“quote“c˜haractersŽ¡‘.ùœfrom–¦fthe“lename.ŽŸ軑.ùœThe–Þèstat›ÞéhoMÞok“returns˜an“in²!teger˜that“should“bMÞe˜non-zero“if˜the“function˜moMÞdes“itsŽ¡‘.ùœdirectory–îeargumen²!t.‘µÜThe“function›îfshould“not˜moMÞdify“the˜directory“argumen²!t˜if“itŽ¡‘.ùœreturns‘¦f0.ŽŸžB’&–3[V‘ÿeariable]ŽŽ‘Gë@rl_dequote_func_t–LÉ*“rl_filename_rewrite_hookŽ¡‘.ùœáIf–Æ non-zero,‘this“is“the“address“of“a“function“called“when“reading“directory“en²!triesŽ¡‘.ùœfrom–ÉÜthe“lesystem“for“completion“and“comparing‘ÉÝthem“to“the“partial“w²!ord“to“bMÞeŽ¡‘.ùœcompleted.‘»zThe–?>function›?=should“pMÞerform“an²!y˜necessary“application˜or“system-spMÞecicŽŽŒ‹2¤ãŸò‘GáChapter–¦f2:‘ÝÝProgramming“with“GNU“Readline’Ê—50ŽŽŽ ƒ33 ý ÌÍ‘.ùœcon•²!v“ersion–Êon›Ëthe“lename,‘9$suc²!h“as˜con•²!v“erting‘ÊbMÞet“w“een˜c“haracter–Êsets˜or“con•²!v“ertingŽ¤
33‘.ùœfrom–„a›…lesystem“format˜to“a“c²!haracter˜input“format.‘ì8The˜function“tak•²!es˜t“w“o‘„argu-Ž¡‘.ùœmen²!ts:‘ÙRåfnameá,‘Cthe–$!lename›$ to“bMÞe˜con•²!v“erted,–Cand›$!åfnlená,“its˜length‘$ in˜b•²!ytes.‘WIt˜m“ustŽ¡‘.ùœeither–ÈŠreturn“its“rst“argumenš²!t“(if“no‘È‹con˜v˜ersion“tak˜es“place)“or“the“con˜v˜erted“lenameŽ¡‘.ùœin–dÛnewly-alloMÞcated“memory‘ÿe.‘ÈThe›dÚcon•²!v“erted–dÛform“is“used“to“compare˜against“the“w²!ordŽ¡‘.ùœto›BÔbMÞe‘BÕcompleted,–V¾and,“if˜it‘BÕmatc²!hes,“is˜added–BÕto˜the˜list“of˜matc²!hes.‘¼¬Readline“will˜freeŽ¡‘.ùœthe–¦falloMÞcated“string.Ž©s4’&–3[V‘ÿeariable]ŽŽ‘Gë@rl_compdisp_func_t–LÉ*“rl_completion_display_matches_hookŽ¡‘.ùœáIf–£xnon-zero,‘×Athen“this“is“the“address“of“a“function“to“call“when“completing“a“wš²!ord“w˜ouldŽ¡‘.ùœnormally–¨¶displa²!y›¨µthe“list“of˜pMÞossible“matc²!hes.‘‰MThis“function“is˜called“in“lieu˜of“ReadlineŽ¡‘.ùœdisplaš²!ying–s7the“list.‘DPIt‘s8tak˜es“three“argumen˜ts:‘w(âchar‘¦f**åmatc˜hesá,‘¦kâint“ån˜um‘Ä>‰x³HøŽ‘Ñtmatc˜hesá,Ž¡‘.ùœâint–-åmax‘Ä>‰x³HøŽ‘Ñtlengthá)›-where“åmatc²!hes‘ ’áis“the˜arra²!y“of˜matcš²!hing“strings,‘EUån˜um‘Ä>‰x³HøŽ‘Ñtmatc˜hes‘ ’áis“theŽ¡‘.ùœn•²!um“bMÞer–}wof›}vstrings“in“that˜arra²!y‘ÿe,‘…§and“åmax‘Ä>‰x³HøŽ‘Ñtlength˜áis“the“length˜of“the“longest˜string“inŽ¡‘.ùœthat–_@arraš²!y‘ÿe.‘Æ&Readline“pro˜vides“a“con˜v˜enience“function,–m{ârl_display_match_listá,“thatŽ¡‘.ùœtakš²!es–-®care“of“doing“the“displa˜y“to“Readline's‘-­output“stream.‘sµThat“function“ma˜y“bMÞeŽ¡‘.ùœcalled–¦ffrom“this“hoMÞok.Ž¦’&–3[V‘ÿeariable]ŽŽ‘Gë@const–LÉchar“*“rl_basic_word_break_charactersŽ¡‘.ùœáThe–Oobasic“list“of“cš²!haracters“that“signal‘Ona“break“bMÞet˜w˜een“w˜ords“for“the“completerŽ¡‘.ùœroutine.‘M¼The–v[default“v›ÿdDalue“of“this‘v\v˜ariable“is“the“cš²!haracters“whic˜h“break“w˜ords“forŽ¡‘.ùœcompletion–¦fin“Bash:‘ÝÝâ"“\t\n\"\\'`@$><=;|&{("á.Ž¦’&–3[V‘ÿeariable]ŽŽ‘Gë@const–LÉchar“*“rl_basic_quote_charactersŽ¡‘.ùœáA–¦flist“of“quote“cš²!haracters“whic˜h“can“cause“a“w˜ord“break.Ž¦’&–3[V‘ÿeariable]ŽŽ‘Gë@const–LÉchar“*“rl_completer_word_break_charactersŽ¡‘.ùœáThe–Ïlist“of“cš²!haracters“that“signal‘Ï~a“break“bMÞet˜w˜een“w˜ords“for“ârl_complete_Ž¡‘.ùœinternal()á.‘ÝÝThe–¦fdefault“list“is“the“v‘ÿdDalue“of“ârl_basic_word_break_charactersá.Ž¦’&–3[V‘ÿeariable]ŽŽ‘Gë@rl_cpvfunc_t–LÉ*“rl_completion_word_break_hookŽ¡‘.ùœáIf–Èënon-zero,‘ÑŒthis›Èêis“the“address˜of“a“function“to˜call“when“Readline“is˜deciding“whereŽ¡‘.ùœto–¡separate‘¢wš²!ords“for“w˜ord“completion.‘FIt“should‘¢return“a“c˜haracter“string‘¢lik˜e“ârl_Ž¡‘.ùœcompleter_word_break_characters–ôëáto“bšMÞe“used“to“p˜erform“the“curren²!t“completion.Ž¡‘.ùœThe–øMfunction“ma•²!y›øLc“hoMÞose–øMto“set“ârl_completer_word_break_characters˜áitself.‘£ÕIf“theŽ¡‘.ùœfunction–¦freturns“âNULLá,“ârl_completer_word_break_characters“áis“used.Ž¦’&–3[V‘ÿeariable]ŽŽ‘Gë@const–LÉchar“*“rl_completer_quote_charactersŽ¡‘.ùœáA‘Clist–^of“c•²!haracters›]whic“h–^can“bMÞe˜used“to“quote˜a“substring“of˜the“line.‘ÄCompletionŽ¡‘.ùœoMÞccurs–&­on›&¬the“en²!tire“substring,‘@8and“within“the˜substring“ârl_completer_word_break_Ž¡‘.ùœcharacters–8\áare›8[treated“as“an²!y“other˜c²!haracter,‘\Ùunless“they“also“appMÞear˜within“thisŽ¡‘.ùœlist.Ž¦’&–3[V‘ÿeariable]ŽŽ‘Gë@const–LÉchar“*“rl_filename_quote_charactersŽ¡‘.ùœáA‘]list›vof–wc²!haracters“that“cause˜a“lename“to“bMÞe˜quoted“b²!y“the“completer˜when“theyŽ¡‘.ùœappMÞear–¦fin“a“completed“lename.‘ÝÝThe“default“is“the“n²!ull“string.Ž¦’&–3[V‘ÿeariable]ŽŽ‘Gë@const–LÉchar“*“rl_special_prefixesŽ¡‘.ùœáThe–S­list›S¬of“c²!haracters“that“are˜wš²!ord“break“c˜haracters,‘d8but›S¬should“bMÞe“left“in˜åtext‘­áwhenŽ¡‘.ùœit–ô¡is“passed“to“the›ô¢completion“function.‘¢›Programs“can“use˜this“to“help“determine“whatŽŽŒ‹3µ¯Ÿò‘GáChapter–¦f2:‘ÝÝProgramming“with“GNU“Readline’Ê—51ŽŽŽ ƒ33 ý ÌÍ‘.ùœkind–Uíof›Uîcompleting“to˜do.‘Ã
                    110: F‘ÿeor“instance,‘fBash“sets“this˜v‘ÿdDariable“to“â"á$@â"˜áso“that˜it“canŽ¤
33‘.ùœcomplete–¦fshell“v‘ÿdDariables“and“hostnames.Ž©fg’&–3[V‘ÿeariable]ŽŽ‘Gë@int‘LÉrl_completion_query_itemsŽ¡‘.ùœáUp–YAto“this“manš²!y“items“will“bMÞe“displa˜y˜ed“in“respšMÞonse“to“a“p˜ossible-completions“call.Ž¡‘.ùœAfter–Vthat,‘f&readline“asks›Vthe“user˜if“she˜is“sure“she˜w•²!an“ts–Vto˜see“them˜all.‘ÃThe“defaultŽ¡‘.ùœv›ÿdDalue–¦fis“100.‘ÝÝA“negativ²!e“v˜alue“indicates“that“Readline“should“nev²!er“ask“the“user.Ž¦’&–3[V‘ÿeariable]ŽŽ‘Gë@int‘LÉrl_completion_append_characterŽ¡‘.ùœáWhen–ýºa“single‘ý»completion“alternativš²!e“matc˜hes“at›ý»the“end“of“the˜command“line,‘thisŽ¡‘.ùœcš²!haracter–’?is“appMÞended“to“the“inserted“completion“text.‘ÑThe“default“is“a“space“c˜haracterŽ¡‘.ùœ(`‘¦f').‘
                    111: F•Setting–sùthis“to“the‘sønš²!ull“c˜haracter“(`â\0á')“prev˜en˜ts‘søan˜ything“bšMÞeing“app˜endedŽ¡‘.ùœautomatically‘ÿe.‘„•This–ˆ£can“bšMÞe“c²!hanged“in“application-sp˜ecic‘ˆ¤completion“functions“toŽ¡‘.ùœpro²!vide–Æùthe›Æú\most“sensible˜wš²!ord“separator“c˜haracter"›Æúaccording“to˜an“application-Ž¡‘.ùœspšMÞecic–¦fcommand“line“syn²!tax“sp˜ecication.Ž¦’&–3[V‘ÿeariable]ŽŽ‘Gë@int‘LÉrl_completion_suppress_appendŽ¡‘.ùœáIf›þðnon-zero,‘årl‘Ä>‰x³HøŽ–Ñtcompletion‘Ä>‰x³HøŽ“appMÞend‘Ä>‰x³HøŽ“c²!haracter‘Èáis˜not–þñappMÞended˜to“matc²!hes˜at“the˜endŽ¡‘.ùœof–Ošthe“command‘O™line,‘`öas“describšMÞed“ab˜o•²!v“e.‘ÀîIt–Ošis“set“to“0‘O™b˜efore“an²!y“application-sp˜ecicŽ¡‘.ùœcompletion–¦ffunction“is“called,“and“maš²!y“only“bMÞe“c˜hanged“within“suc˜h“a“function.ŽŸfh’&–3[V‘ÿeariable]ŽŽ‘Gë@int‘LÉrl_completion_quote_characterŽ¡‘.ùœáWhen–X;Readline“is›X:completing“quoted“text,‘„°as˜delimited“b²!y“one“of˜the“c²!haracters“inŽ¡‘.ùœårl‘Ä>‰x³HøŽ–Ñtcompleter‘Ä>‰x³HøŽ“quote‘Ä>‰x³HøŽ“c²!haractersá,‘òCit–¯äsets›¯ãthis“v‘ÿdDariable“to“the˜quoting“c²!haracter“found.Ž¡‘.ùœThis–¦fis“set“bšMÞefore“an²!y“application-sp˜ecic“completion“function“is“called.Ž¦’&–3[V‘ÿeariable]ŽŽ‘Gë@int‘LÉrl_completion_suppress_quoteŽ¡‘.ùœáIf–àDnon-zero,‘î»Readline›àCdoMÞes“not˜appMÞend“a“matc²!hing˜quote“c²!haracter˜when“pMÞerformingŽ¡‘.ùœcompletion–ÓGon›ÓFa“quoted˜string.‘—~It˜is“set˜to“0˜bMÞefore“an²!y˜application-spMÞecic“completionŽ¡‘.ùœfunction–¦fis“called,“and“maš²!y“only“bMÞe“c˜hanged“within“suc˜h“a“function.Ž¦’&–3[V‘ÿeariable]ŽŽ‘Gë@int‘LÉrl_completion_found_quoteŽ¡‘.ùœáWhen–ÌúReadline“is“completing›Ìûquoted“text,‘ÖŸit“sets“this“v‘ÿdDariable“to˜a“non-zero“v‘ÿdDalue“ifŽ¡‘.ùœthe–‡¿wš²!ord‘‡¾bMÞeing“completed“con˜tains‘‡¾or“is“delimited“b˜y‘‡¾an˜y“quoting“c˜haracters,‘ÁincludingŽ¡‘.ùœbacš²!kslashes.‘ÝÝThis–¦fis“set“bMÞefore“an˜y“application-spMÞecic“completion“function“is“called.Ž¦’&–3[V‘ÿeariable]ŽŽ‘Gë@int‘LÉrl_completion_mark_symlink_dirsŽ¡‘.ùœáIf–ѧnon-zero,‘Üwa“slash“will“bšMÞe“app˜ended“to“completed“lenames“that“are“sym²!b˜olic“linksŽ¡‘.ùœto–ærdirectory›æsnames,‘Ösub‘›»ject“to“the˜v‘ÿdDalue“of“the“user-settable˜åmark-directories‘Yôáv‘ÿdDariable.Ž¡‘.ùœThis–Imv‘ÿdDariable“exists“so“that“application-spMÞecic“completion“functions“can“o•²!v“erride‘ImtheŽ¡‘.ùœuser's–global›preference“(set“via“the˜åmark-symlink²!ed-directories‘Š’áReadline“v‘ÿdDariable)Ž¡‘.ùœif–„appropriate.‘võThis“v‘ÿdDariable“is“set“to“the“user's‘„preference“bMÞefore“an²!y“application-Ž¡‘.ùœspMÞecic–Îcompletion›Îfunction“is˜called,‘×ìso“unless“that˜function“moMÞdies˜the“v‘ÿdDalue,‘×ìtheŽ¡‘.ùœuser's–¦fpreferences“are“honored.Ž¦’&–3[V‘ÿeariable]ŽŽ‘Gë@int‘LÉrl_ignore_completion_duplicatesŽ¡‘.ùœáIf–¦fnon-zero,“then“duplicates“in“the“matcš²!hes“are“remo˜v˜ed.‘ÝÝThe“default“is“1.ŽŽŒ‹4ÆŸò‘GáChapter–¦f2:‘ÝÝProgramming“with“GNU“Readline’Ê—52ŽŽŽ ƒ33 ý ÌÍ’&–3[V‘ÿeariable]ŽŽ‘Gë@int‘LÉrl_filename_completion_desiredŽ¤
33‘.ùœáNon-zero–Ñmeans“that›Ñ     the“results“of“the“matc²!hes˜are“to“bMÞe“treated“as“lenames.‘]ÄThisŽ¡‘.ùœis–Ì'äalways‘²?ázero›Ì(when“completion“is“attempted,‘—and“can“only“bMÞe˜c²!hanged“within“anŽ¡‘.ùœapplication-spMÞecic›¼õcompletion–¼ôfunction.‘!‰If“it˜is“set˜to“a˜non-zero“v‘ÿdDalue˜bš²!y“suc˜h‘¼õaŽ¡‘.ùœfunction,‘Þdirectory–¬
                    112: names“ha•²!v“e›¬      a–¬
                    113: slash“appMÞended˜and“Readline“attempts“to˜quote“com-Ž¡‘.ùœpleted–6 lenames“if“they‘6!conš²!tain“an˜y“c˜haracters“in“ârl_filename_quote_charactersŽ¡‘.ùœáand–¦fârl_filename_quoting_desired“áis“set“to“a“non-zero“v‘ÿdDalue.Ž©33’&–3[V‘ÿeariable]ŽŽ‘Gë@int‘LÉrl_filename_quoting_desiredŽ¡‘.ùœáNon-zero–^nmeans“that“the›^mresults“of“the“matc²!hes“are“to“bMÞe˜quoted“using“double“quotesŽ¡‘.ùœ(or–8an“application-spMÞecic“quoting“mecš²!hanism)‘7if“the“completed“lename“con˜tainsŽ¡‘.ùœan•²!y›QJc“haracters–QIin˜ârl_filename_quote_charsá.‘Á~This˜is“äalways‘7bánon-zero“when˜comple-Ž¡‘.ùœtion–Q      is›Qattempted,‘band“can“only˜bMÞe“c²!hanged˜within“an˜application-spMÞecic“completionŽ¡‘.ùœfunction.‘} The–…°quoting›…¯is“eected˜via“a˜call˜to“the˜function“pMÞoin²!ted˜to“b²!y˜ârl_filename_Ž¡‘.ùœquoting_functioná.Ž¦’&–3[V‘ÿeariable]ŽŽ‘Gë@int‘LÉrl_attempted_completion_overŽ¡‘.ùœáIf–Oan“application-spMÞecic“completion‘Ofunction“assigned“to“ârl_attempted_Ž¡‘.ùœcompletion_function–básets›bŒthis“v‘ÿdDariable“to˜a“non-zero“v‘ÿdDalue,‘•Readline˜will“notŽ¡‘.ùœpMÞerform–Žºits“default“lename“completion‘Ž¹ev²!en“if“the“application's“completion“functionŽ¡‘.ùœreturns–¦fno“matcš²!hes.‘ÝÝIt“should“bMÞe“set“only“b˜y“an“application's“completion“function.Ž¦’&–3[V‘ÿeariable]ŽŽ‘Gë@int‘LÉrl_sort_completion_matchesŽ¡‘.ùœáIf–”Ôan›”Óapplication“sets˜this“v‘ÿdDariable˜to“0,‘˜WReadline“will˜not“sort˜the“list˜of“completionsŽ¡‘.ùœ(whicš²!h–òÍimplies“that‘òÎit“cannot“remo˜v˜e“an˜y›òÎduplicate“completions).‘¡ÿThe˜default“v‘ÿdDalue“isŽ¡‘.ùœ1,›ÅÖwhic²!h–¿Œmeans“that“Readline“will“sort“the“completions“and,˜depMÞending“on“the“v‘ÿdDalueŽ¡‘.ùœof–¦fârl_ignore_completion_duplicatesá,“will“attempt“to“remo•²!v“e–¦fduplicate“matc²!hes.Ž¦’&–3[V‘ÿeariable]ŽŽ‘Gë@int‘LÉrl_completion_typeŽ¡‘.ùœáSet–61to›62a“c²!haracter˜describing“the˜t²!ypMÞe“of“completion˜Readline“is˜curren²!tly“attempt-Ž¡‘.ùœing;‘.qsee–&the“description‘&of“ârl_complete_internal()“á(see“Section“2.6.2“[CompletionŽ¡‘.ùœF‘ÿeunctions],‘˜%page–gÌ47)“for“the“list“of“c²!haracters.‘"This“is“set“to“the“appropriate“v‘ÿdDalueŽ¡‘.ùœb•MÞefore›Í¡an²!y‘Í application-sp“ecic˜completion˜function˜is–Í called,‘×palloš²!wing“suc˜h‘Í¡functionsŽ¡‘.ùœto–¦fpresenš²!t“the“same“in˜terface“as“ârl_complete()á.Ž¦’&–3[V‘ÿeariable]ŽŽ‘Gë@int‘LÉrl_completion_invoking_keyŽ¡‘.ùœáSet–äRto›äQthe“nal˜c²!haracter“in˜the“k²!ey“sequence˜that“in•²!v“ok“ed˜one–äRof˜the“completionŽ¡‘.ùœfunctions–that“call“ârl_complete_internal()á.‘o(This“is“set“to“the“appropriate“v‘ÿdDalueŽ¡‘.ùœbšMÞefore–¦fan²!y“application-sp˜ecic“completion“function“is“called.Ž¦’&–3[V‘ÿeariable]ŽŽ‘Gë@int‘LÉrl_inhibit_completionŽ¡‘.ùœáIf–d`this›dav‘ÿdDariable“is“non-zero,‘q•completion“is˜inhibited.‘ÇÛThe“completion“c²!haracter˜will“bMÞeŽ¡‘.ùœinserted–¦fas“an²!y“other“bMÞound“to“âself-insertá.ŽŸ‘Gëe2.6.4‘d(A–íMShort“Completion“ExampleŽŽŸ³3‘GáHere–}ais“a›}`small“application“demonstrating“the˜use“of“the“GNU‘}VReadline“library‘ÿe.‘Ð0It“is“calledŽ¡‘Gâfilemaná,‘0and–ÃÕthe“source‘ÃÔcoMÞde“resides“in“âexamples/fileman.cá.‘6)This“sample“applicationŽ¡‘Gpro²!vides–#þcompletion“of‘#ÿcommand“names,›>line“editing“features,˜and“access“to‘#ÿthe“history“list.ŽŽŒ‹5ÕqŸò‘GáChapter–¦f2:‘ÝÝProgramming“with“GNU“Readline’Ê—53ŽŽŽ ƒ33 ý ÌÍ‘.ùœÉ/*–¹–fileman.c“--“A“tiny“application“which“demonstrates“how“to“use“theŽ¤
                    114: €‘=&^GNU–¹–Readline“library.‘       s,This“application“interactively“allows“usersŽ¡‘=&^to–¹–manipulate“files“and“their“modes.“*/Ž©‘.ùœ#ifdef‘¹–HAVE_CONFIG_HŽ¡‘.ùœ#‘        s,include‘¹–<config.h>Ž¡‘.ùœ#endifŽ¦‘.ùœ#include‘¹–<sys/types.h>Ž¡‘.ùœ#ifdef‘¹–HAVE_SYS_FILE_HŽ¡‘.ùœ#‘   s,include‘¹–<sys/file.h>Ž¡‘.ùœ#endifŽ¡‘.ùœ#include‘¹–<sys/stat.h>Ž¦‘.ùœ#ifdef‘¹–HAVE_UNISTD_HŽ¡‘.ùœ#‘    s,include‘¹–<unistd.h>Ž¡‘.ùœ#endifŽ¦‘.ùœ#include‘¹–<fcntl.h>Ž¡‘.ùœ#include‘¹–<stdio.h>Ž¡‘.ùœ#include‘¹–<errno.h>Ž¦‘.ùœ#if–¹–defined“(HAVE_STRING_H)Ž¡‘.ùœ#‘  s,include‘¹–<string.h>Ž¡‘.ùœ#else–¹–/*“!HAVE_STRING_H“*/Ž¡‘.ùœ#‘    s,include‘¹–<strings.h>Ž¡‘.ùœ#endif–¹–/*“!HAVE_STRING_H“*/Ž¦‘.ùœ#ifdef‘¹–HAVE_STDLIB_HŽ¡‘.ùœ#‘    s,include‘¹–<stdlib.h>Ž¡‘.ùœ#endifŽ¦‘.ùœ#include‘¹–<time.h>Ž¦‘.ùœ#include‘¹–<readline/readline.h>Ž¡‘.ùœ#include‘¹–<readline/history.h>Ž¦‘.ùœextern–¹–char“*xmalloc“PARAMS((size_t));Ž¦‘.ùœ/*–¹–The“names“of“functions“that“actually“do“the“manipulation.“*/Ž¡‘.ùœint–¹–com_list“PARAMS((char“*));Ž¡‘.ùœint–¹–com_view“PARAMS((char“*));Ž¡‘.ùœint–¹–com_rename“PARAMS((char“*));Ž¡‘.ùœint–¹–com_stat“PARAMS((char“*));Ž¡‘.ùœint–¹–com_pwd“PARAMS((char“*));Ž¡‘.ùœint–¹–com_delete“PARAMS((char“*));Ž¡‘.ùœint–¹–com_help“PARAMS((char“*));Ž¡‘.ùœint–¹–com_cd“PARAMS((char“*));Ž¡‘.ùœint–¹–com_quit“PARAMS((char“*));Ž¦‘.ùœ/*–¹–A“structure“which“contains“information“on“the“commands“this“programŽ¡‘=&^can–¹–understand.“*/Ž¦‘.ùœtypedef–¹–struct“{Ž¡‘8lÈchar–¹–*name;“/*“User“printable“name“of“the“function.“*/Ž¡‘8lÈrl_icpfunc_t–¹–*func;“/*“Function“to“call“to“do“the“job.“*/Ž¡‘8lÈchar–¹–*doc;“/*“Documentation“for“this“function.‘      s,*/Ž¡‘.ùœ}‘¹–COMMAND;ŽŽŒ‹6äÀŸò‘GáChapter–¦f2:‘ÝÝProgramming“with“GNU“Readline’Ê—54ŽŽŽ ƒ33 ý«LÍ‘.ùœÉCOMMAND–¹–commands[]“=“{Ž¤
                    115: €‘8lÈ{–¹–"cd",“com_cd,“"Change“to“directory“DIR"“},Ž¡‘8lÈ{–¹–"delete",“com_delete,“"Delete“FILE"“},Ž¡‘8lÈ{–¹–"help",“com_help,“"Display“this“text"“},Ž¡‘8lÈ{–¹–"?",“com_help,“"Synonym“for“`help'"“},Ž¡‘8lÈ{–¹–"list",“com_list,“"List“files“in“DIR"“},Ž¡‘8lÈ{–¹–"ls",“com_list,“"Synonym“for“`list'"“},Ž¡‘8lÈ{–¹–"pwd",“com_pwd,“"Print“the“current“working“directory"“},Ž¡‘8lÈ{–¹–"quit",“com_quit,“"Quit“using“Fileman"“},Ž¡‘8lÈ{–¹–"rename",“com_rename,“"Rename“FILE“to“NEWNAME"“},Ž¡‘8lÈ{–¹–"stat",“com_stat,“"Print“out“statistics“on“FILE"“},Ž¡‘8lÈ{–¹–"view",“com_view,“"View“the“contents“of“FILE"“},Ž¡‘8lÈ{–¹–(char“*)NULL,“(rl_icpfunc_t“*)NULL,“(char“*)NULL“}Ž¡‘.ùœ};Ž©‘.ùœ/*–¹–Forward“declarations.“*/Ž¡‘.ùœchar–¹–*stripwhite“();Ž¡‘.ùœCOMMAND–¹–*find_command“();Ž¦‘.ùœ/*–¹–The“name“of“this“program,“as“taken“from“argv[0].“*/Ž¡‘.ùœchar‘¹–*progname;Ž¦‘.ùœ/*–¹–When“non-zero,“this“global“means“the“user“is“done“using“this“program.“*/Ž¡‘.ùœint‘¹–done;Ž¦‘.ùœchar‘¹–*Ž¡‘.ùœdupstr‘¹–(s)Ž¡‘F™Šchar‘¹–*s;Ž¡‘.ùœ{Ž¡‘8lÈchar‘¹–*r;Ž¦‘8lÈr–¹–=“xmalloc“(strlen“(s)“+“1);Ž¡‘8lÈstrcpy–¹–(r,“s);Ž¡‘8lÈreturn‘¹–(r);Ž¡‘.ùœ}Ž¦‘.ùœmain–¹–(argc,“argv)Ž¡‘F™Šint‘¹–argc;Ž¡‘F™Šchar‘¹–**argv;Ž¡‘.ùœ{Ž¡‘8lÈchar–¹–*line,“*s;Ž¦‘8lÈprogname–¹–=“argv[0];Ž¦‘8lÈinitialize_readline–¹–();“/*“Bind“our“completer.“*/Ž¦‘8lÈ/*–¹–Loop“reading“and“executing“lines“until“the“user“quits.“*/Ž¡‘8lÈfor–¹–(“;“done“==“0;“)Ž¡‘Aßô{Ž¡‘KS line–¹–=“readline“("FileMan:“");Ž¦‘KS if‘¹–(!line)Ž¡‘TÆLbreak;Ž¦‘KS /*–¹–Remove“leading“and“trailing“whitespace“from“the“line.Ž¡‘YâThen,–¹–if“there“is“anything“left,“add“it“to“the“history“listŽ¡‘Yâand–¹–execute“it.“*/ŽŽŒ‹7ì0Ÿò‘GáChapter–¦f2:‘ÝÝProgramming“with“GNU“Readline’Ê—55ŽŽŽ ƒ33 ý ÌÍ‘KS És–¹–=“stripwhite“(line);Ž©‘KS if‘¹–(*s)Ž¤
                    116: €‘TÆL{Ž¡‘^9xadd_history‘¹–(s);Ž¡‘^9xexecute_line‘¹–(s);Ž¡‘TÆL}Ž¦‘KS free‘¹–(line);Ž¡‘Aßô}Ž¡‘8lÈexit‘¹–(0);Ž¡‘.ùœ}Ž¦‘.ùœ/*–¹–Execute“a“command“line.“*/Ž¡‘.ùœintŽ¡‘.ùœexecute_line‘¹–(line)Ž¡‘F™Šchar‘¹–*line;Ž¡‘.ùœ{Ž¡‘8lÈregister–¹–int“i;Ž¡‘8lÈCOMMAND‘¹–*command;Ž¡‘8lÈchar‘¹–*word;Ž¦‘8lÈ/*–¹–Isolate“the“command“word.“*/Ž¡‘8lÈi–¹–=“0;Ž¡‘8lÈwhile–¹–(line[i]“&&“whitespace“(line[i]))Ž¡‘Aßôi++;Ž¡‘8lÈword–¹–=“line“+“i;Ž¦‘8lÈwhile–¹–(line[i]“&&“!whitespace“(line[i]))Ž¡‘Aßôi++;Ž¦‘8lÈif‘¹–(line[i])Ž¡‘Aßôline[i++]–¹–=“'\0';Ž¦‘8lÈcommand–¹–=“find_command“(word);Ž¦‘8lÈif‘¹–(!command)Ž¡‘Aßô{Ž¡‘KS fprintf–¹–(stderr,“"%s:“No“such“command“for“FileMan.\n",“word);Ž¡‘KS return‘¹–(-1);Ž¡‘Aßô}Ž¦‘8lÈ/*–¹–Get“argument“to“command,“if“any.“*/Ž¡‘8lÈwhile–¹–(whitespace“(line[i]))Ž¡‘Aßôi++;Ž¦‘8lÈword–¹–=“line“+“i;Ž¦‘8lÈ/*–¹–Call“the“function.“*/Ž¡‘8lÈreturn–¹–((*(command->func))“(word));Ž¡‘.ùœ}Ž¦‘.ùœ/*–¹–Look“up“NAME“as“the“name“of“a“command,“and“return“a“pointer“to“thatŽ¡‘=&^command.‘  s,Return–¹–a“NULL“pointer“if“NAME“isn't“a“command“name.“*/Ž¡‘.ùœCOMMAND‘¹–*Ž¡‘.ùœfind_command‘¹–(name)Ž¡‘F™Šchar‘¹–*name;Ž¡‘.ùœ{ŽŽŒ‹8óiŸò‘GáChapter–¦f2:‘ÝÝProgramming“with“GNU“Readline’Ê—56ŽŽŽ ƒ33 ý ÌÍ‘8lÈÉregister–¹–int“i;Ž©‘8lÈfor–¹–(i“=“0;“commands[i].name;“i++)Ž¤
                    117: €‘Aßôif–¹–(strcmp“(name,“commands[i].name)“==“0)Ž¡‘KS return‘¹–(&commands[i]);Ž¦‘8lÈreturn–¹–((COMMAND“*)NULL);Ž¡‘.ùœ}Ž¦‘.ùœ/*–¹–Strip“whitespace“from“the“start“and“end“of“STRING.‘ s,Return“a“pointerŽ¡‘=&^into–¹–STRING.“*/Ž¡‘.ùœchar‘¹–*Ž¡‘.ùœstripwhite‘¹–(string)Ž¡‘F™Šchar‘¹–*string;Ž¡‘.ùœ{Ž¡‘8lÈregister–¹–char“*s,“*t;Ž¦‘8lÈfor–¹–(s“=“string;“whitespace“(*s);“s++)Ž¡‘Aßô;Ž¦‘8lÈif–¹–(*s“==“0)Ž¡‘Aßôreturn‘¹–(s);Ž¦‘8lÈt–¹–=“s“+“strlen“(s)“-“1;Ž¡‘8lÈwhile–¹–(t“>“s“&&“whitespace“(*t))Ž¡‘Aßôt--;Ž¡‘8lÈ*++t–¹–=“'\0';Ž¦‘8lÈreturn‘¹–s;Ž¡‘.ùœ}Ž¦‘.ùœ/*–¹–****************************************************************“*/Ž¡‘.ùœ/*’&7ج*/Ž¡‘.ùœ/*‘UŒInterface–¹–to“Readline“Completion‘K™`*/Ž¡‘.ùœ/*’&7ج*/Ž¡‘.ùœ/*–¹–****************************************************************“*/Ž¦‘.ùœchar–¹–*command_generator“PARAMS((const“char“*,“int));Ž¡‘.ùœchar–¹–**fileman_completion“PARAMS((const“char“*,“int,“int));Ž¦‘.ùœ/*–¹–Tell“the“GNU“Readline“library“how“to“complete.‘   s,We“want“to“try“to“completeŽ¡‘=&^on–¹–command“names“if“this“is“the“first“word“in“the“line,“or“on“filenamesŽ¡‘=&^if–¹–not.“*/Ž¡‘.ùœinitialize_readline‘¹–()Ž¡‘.ùœ{Ž¡‘8lÈ/*–¹–Allow“conditional“parsing“of“the“~/.inputrc“file.“*/Ž¡‘8lÈrl_readline_name–¹–=“"FileMan";Ž¦‘8lÈ/*–¹–Tell“the“completer“that“we“want“a“crack“first.“*/Ž¡‘8lÈrl_attempted_completion_function–¹–=“fileman_completion;Ž¡‘.ùœ}Ž¦‘.ùœ/*–¹–Attempt“to“complete“on“the“contents“of“TEXT.‘       s,START“and“END“bound“theŽ¡‘=&^region–¹–of“rl_line_buffer“that“contains“the“word“to“complete.‘        s,TEXT“isŽ¡‘=&^the–¹–word“to“complete.‘       s,We“can“use“the“entire“contents“of“rl_line_bufferŽ¡‘=&^in–¹–case“we“want“to“do“some“simple“parsing.‘ s,Return“the“array“of“matches,Ž¡‘=&^or–¹–NULL“if“there“aren't“any.“*/Ž¡‘.ùœchar‘¹–**ŽŽŒ‹9ø´Ÿò‘GáChapter–¦f2:‘ÝÝProgramming“with“GNU“Readline’Ê—57ŽŽŽ ƒ33 ý ÌÍ‘.ùœÉfileman_completion–¹–(text,“start,“end)Ž¤
                    118: €‘F™Šconst–¹–char“*text;Ž¡‘F™Šint–¹–start,“end;Ž¡‘.ùœ{Ž¡‘8lÈchar‘¹–**matches;Ž¤‘8lÈmatches–¹–=“(char“**)NULL;Ž¡‘8lÈ/*–¹–If“this“word“is“at“the“start“of“the“line,“then“it“is“a“commandŽ¤
                    119: €‘F™Što–¹–complete.‘        s,Otherwise“it“is“the“name“of“a“file“in“the“currentŽ¡‘F™Šdirectory.‘¹–*/Ž¡‘8lÈif–¹–(start“==“0)Ž¡‘Aßômatches–¹–=“rl_completion_matches“(text,“command_generator);Ž©‘8lÈreturn‘¹–(matches);Ž¡‘.ùœ}Ž¦‘.ùœ/*–¹–Generator“function“for“command“completion.‘   s,STATE“lets“us“know“whetherŽ¡‘=&^to–¹–start“from“scratch;“without“any“state“(i.e.“STATE“==“0),“then“weŽ¡‘=&^start–¹–at“the“top“of“the“list.“*/Ž¡‘.ùœchar‘¹–*Ž¡‘.ùœcommand_generator–¹–(text,“state)Ž¡‘F™Šconst–¹–char“*text;Ž¡‘F™Šint‘¹–state;Ž¡‘.ùœ{Ž¡‘8lÈstatic–¹–int“list_index,“len;Ž¡‘8lÈchar‘¹–*name;Ž¦‘8lÈ/*–¹–If“this“is“a“new“word“to“complete,“initialize“now.‘   s,This“includesŽ¡‘F™Šsaving–¹–the“length“of“TEXT“for“efficiency,“and“initializing“the“indexŽ¡‘F™Švariable–¹–to“0.“*/Ž¡‘8lÈif‘¹–(!state)Ž¡‘Aßô{Ž¡‘KS list_index–¹–=“0;Ž¡‘KS len–¹–=“strlen“(text);Ž¡‘Aßô}Ž¦‘8lÈ/*–¹–Return“the“next“name“which“partially“matches“from“the“command“list.“*/Ž¡‘8lÈwhile–¹–(name“=“commands[list_index].name)Ž¡‘Aßô{Ž¡‘KS list_index++;Ž¦‘KS if–¹–(strncmp“(name,“text,“len)“==“0)Ž¡‘TÆLreturn‘¹–(dupstr(name));Ž¡‘Aßô}Ž¦‘8lÈ/*–¹–If“no“names“matched,“then“return“NULL.“*/Ž¡‘8lÈreturn–¹–((char“*)NULL);Ž¡‘.ùœ}Ž¦‘.ùœ/*–¹–****************************************************************“*/Ž¡‘.ùœ/*’&7ج*/Ž¡‘.ùœ/*‘l¬zFileMan‘¹–Commands‘’Ò*/Ž¡‘.ùœ/*’&7ج*/Ž¡‘.ùœ/*–¹–****************************************************************“*/Ž¦‘.ùœ/*–¹–String“to“pass“to“system“().‘        s,This“is“for“the“LIST,“VIEW“and“RENAMEŽ¡‘=&^commands.‘¹–*/ŽŽŒ‹:Ÿò‘GáChapter–¦f2:‘ÝÝProgramming“with“GNU“Readline’Ê—58ŽŽŽ ƒ33 ý ÌÍ‘.ùœÉstatic–¹–char“syscom[1024];Ž©‘.ùœ/*–¹–List“the“file(s)“named“in“arg.“*/Ž¤
                    120: €‘.ùœcom_list‘¹–(arg)Ž¡‘F™Šchar‘¹–*arg;Ž¡‘.ùœ{Ž¡‘8lÈif‘¹–(!arg)Ž¡‘Aßôarg–¹–=“"";Ž¦‘8lÈsprintf–¹–(syscom,“"ls“-FClg“%s",“arg);Ž¡‘8lÈreturn–¹–(system“(syscom));Ž¡‘.ùœ}Ž¦‘.ùœcom_view‘¹–(arg)Ž¡‘F™Šchar‘¹–*arg;Ž¡‘.ùœ{Ž¡‘8lÈif–¹–(!valid_argument“("view",“arg))Ž¡‘Aßôreturn‘¹–1;Ž¦‘.ùœ#if–¹–defined“(__MSDOS__)Ž¡‘8lÈ/*–¹–more.com“doesn't“grok“slashes“in“pathnames“*/Ž¡‘8lÈsprintf–¹–(syscom,“"less“%s",“arg);Ž¡‘.ùœ#elseŽ¡‘8lÈsprintf–¹–(syscom,“"more“%s",“arg);Ž¡‘.ùœ#endifŽ¡‘8lÈreturn–¹–(system“(syscom));Ž¡‘.ùœ}Ž¦‘.ùœcom_rename‘¹–(arg)Ž¡‘F™Šchar‘¹–*arg;Ž¡‘.ùœ{Ž¡‘8lÈtoo_dangerous‘¹–("rename");Ž¡‘8lÈreturn‘¹–(1);Ž¡‘.ùœ}Ž¦‘.ùœcom_stat‘¹–(arg)Ž¡‘F™Šchar‘¹–*arg;Ž¡‘.ùœ{Ž¡‘8lÈstruct–¹–stat“finfo;Ž¦‘8lÈif–¹–(!valid_argument“("stat",“arg))Ž¡‘Aßôreturn‘¹–(1);Ž¦‘8lÈif–¹–(stat“(arg,“&finfo)“==“-1)Ž¡‘Aßô{Ž¡‘KS perror‘¹–(arg);Ž¡‘KS return‘¹–(1);Ž¡‘Aßô}Ž¦‘8lÈprintf–¹–("Statistics“for“`%s':\n",“arg);Ž¦‘8lÈprintf–¹–("%s“has“%d“link%s,“and“is“%d“byte%s“in“length.\n",Ž¡‘8lÈarg,Ž¡‘^9xfinfo.st_nlink,Ž¡‘^9x(finfo.st_nlink–¹–==“1)“?“""“:“"s",Ž¡‘^9xfinfo.st_size,Ž¡‘^9x(finfo.st_size–¹–==“1)“?“""“:“"s");Ž¡‘8lÈprintf–¹–("Inode“Last“Change“at:“%s",“ctime“(&finfo.st_ctime));ŽŽŒ‹;Ÿò‘GáChapter–¦f2:‘ÝÝProgramming“with“GNU“Readline’Ê—59ŽŽŽ ƒ33 ý ÌÍ‘8lÈÉprintf–¹–("‘Y„Last“access“at:“%s",“ctime“(&finfo.st_atime));Ž¤
                    121: €‘8lÈprintf–¹–("‘æXLast“modified“at:“%s",“ctime“(&finfo.st_mtime));Ž¡‘8lÈreturn‘¹–(0);Ž¡‘.ùœ}Ž©‘.ùœcom_delete‘¹–(arg)Ž¡‘F™Šchar‘¹–*arg;Ž¡‘.ùœ{Ž¡‘8lÈtoo_dangerous‘¹–("delete");Ž¡‘8lÈreturn‘¹–(1);Ž¡‘.ùœ}Ž¦‘.ùœ/*–¹–Print“out“help“for“ARG,“or“for“all“of“the“commands“if“ARG“isŽ¡‘=&^not–¹–present.“*/Ž¡‘.ùœcom_help‘¹–(arg)Ž¡‘F™Šchar‘¹–*arg;Ž¡‘.ùœ{Ž¡‘8lÈregister–¹–int“i;Ž¡‘8lÈint–¹–printed“=“0;Ž¦‘8lÈfor–¹–(i“=“0;“commands[i].name;“i++)Ž¡‘Aßô{Ž¡‘KS if–¹–(!*arg“||“(strcmp“(arg,“commands[i].name)“==“0))Ž¡‘TÆL{Ž¡‘^9xprintf–¹–("%s\t\t%s.\n",“commands[i].name,“commands[i].doc);Ž¡‘^9xprinted++;Ž¡‘TÆL}Ž¡‘Aßô}Ž¦‘8lÈif‘¹–(!printed)Ž¡‘Aßô{Ž¡‘KS printf–¹–("No“commands“match“`%s'.‘ s,Possibilties“are:\n",“arg);Ž¦‘KS for–¹–(i“=“0;“commands[i].name;“i++)Ž¡‘TÆL{Ž¡‘^9x/*–¹–Print“in“six“columns.“*/Ž¡‘^9xif–¹–(printed“==“6)Ž¡‘g¬¤{Ž¡‘qÐprinted–¹–=“0;Ž¡‘qÐprintf‘¹–("\n");Ž¡‘g¬¤}Ž¦‘^9xprintf–¹–("%s\t",“commands[i].name);Ž¡‘^9xprinted++;Ž¡‘TÆL}Ž¦‘KS if‘¹–(printed)Ž¡‘TÆLprintf‘¹–("\n");Ž¡‘Aßô}Ž¡‘8lÈreturn‘¹–(0);Ž¡‘.ùœ}Ž¦‘.ùœ/*–¹–Change“to“the“directory“ARG.“*/Ž¡‘.ùœcom_cd‘¹–(arg)Ž¡‘F™Šchar‘¹–*arg;Ž¡‘.ùœ{Ž¡‘8lÈif–¹–(chdir“(arg)“==“-1)Ž¡‘Aßô{ŽŽŒ‹<
¼Ÿò‘GáChapter–¦f2:‘ÝÝProgramming“with“GNU“Readline’Ê—60ŽŽŽ ƒ33 ý ÌÍ‘KS Éperror‘¹–(arg);Ž¤
                    122: €‘KS return‘¹–1;Ž¡‘Aßô}Ž©‘8lÈcom_pwd‘¹–("");Ž¡‘8lÈreturn‘¹–(0);Ž¡‘.ùœ}Ž¦‘.ùœ/*–¹–Print“out“the“current“working“directory.“*/Ž¡‘.ùœcom_pwd‘¹–(ignore)Ž¡‘F™Šchar‘¹–*ignore;Ž¡‘.ùœ{Ž¡‘8lÈchar–¹–dir[1024],“*s;Ž¦‘8lÈs–¹–=“getcwd“(dir,“sizeof(dir)“-“1);Ž¡‘8lÈif–¹–(s“==“0)Ž¡‘Aßô{Ž¡‘KS printf–¹–("Error“getting“pwd:“%s\n",“dir);Ž¡‘KS return‘¹–1;Ž¡‘Aßô}Ž¦‘8lÈprintf–¹–("Current“directory“is“%s\n",“dir);Ž¡‘8lÈreturn‘¹–0;Ž¡‘.ùœ}Ž¦‘.ùœ/*–¹–The“user“wishes“to“quit“using“this“program.‘ s,Just“set“DONE“non-zero.“*/Ž¡‘.ùœcom_quit‘¹–(arg)Ž¡‘F™Šchar‘¹–*arg;Ž¡‘.ùœ{Ž¡‘8lÈdone–¹–=“1;Ž¡‘8lÈreturn‘¹–(0);Ž¡‘.ùœ}Ž¦‘.ùœ/*–¹–Function“which“tells“you“that“you“can't“do“this.“*/Ž¡‘.ùœtoo_dangerous‘¹–(caller)Ž¡‘F™Šchar‘¹–*caller;Ž¡‘.ùœ{Ž¡‘8lÈfprintf‘¹–(stderr,Ž¡‘bó"%s:–¹–Too“dangerous“for“me“to“distribute.‘    s,Write“it“yourself.\n",Ž¡‘bócaller);Ž¡‘.ùœ}Ž¦‘.ùœ/*–¹–Return“non-zero“if“ARG“is“a“valid“argument“for“CALLER,“else“printŽ¡‘=&^an–¹–error“message“and“return“zero.“*/Ž¡‘.ùœintŽ¡‘.ùœvalid_argument–¹–(caller,“arg)Ž¡‘F™Šchar–¹–*caller,“*arg;Ž¡‘.ùœ{Ž¡‘8lÈif–¹–(!arg“||“!*arg)Ž¡‘Aßô{Ž¡‘KS fprintf–¹–(stderr,“"%s:“Argument“required.\n",“caller);Ž¡‘KS return‘¹–(0);Ž¡‘Aßô}Ž¦‘8lÈreturn‘¹–(1);Ž¡‘.ùœ}ŽŽŒ‹=>Ÿò‘GáAppšMÞendix–¦fA:“GNU“F‘ÿeree“Do˜cumen²!tation“License’Á:61ŽŽŽ ƒ33 ý ÌÍ‘GëSApp›Š=endix‘záA‘        ¸QGNU–z³F‘þaGree“Do˜cumen‘ÿuÂtation“LicenseŽŽŸƒª’£¤AáV‘ÿeersion–¦f1.3,“3“No•²!v“em“bMÞer‘¦f2008Ž©Q‘.ùœCop•²!yrigh“t‘±ž«‚cŽŽŽ‘¦fê
ŽŽŽŽ‘@&á2000,–¦f2001,“2002,“2007,“2008“F›ÿeree“Soft•²!w“are–¦fF˜oundation,“Inc.Ž¤
33‘.ùœâhttp://fsf.org/ŽŸff‘.ùœáEv•²!ery“one–¦fis“pMÞermitted“to“copš²!y“and“distribute“v˜erbatim“copiesŽ¡‘.ùœof–¦fthis“license“doMÞcumenš²!t,“but“c˜hanging“it“is“not“allo˜w˜ed.Ž¦‘&-0.Ž‘'¿«PREAMBLEŽ¦‘'¿«The–vQpurpMÞose›vRof“this˜License“is˜to“mak²!e“a˜man²!ual,›ªLtextb•MÞo“ok,˜or–vQother‘vRfunctional“andŽ¡‘'¿«useful–žïdoMÞcumen²!t›žîåfree‘;öáin“the“sense˜of“freedom:‘Ú!to“assure“ev•²!ery“one‘žïthe˜eectiv“e‘žïfreedomŽ¡‘'¿«to–Æ9cop²!y›Æ:and“redistribute“it,‘Î.with“or˜without“moMÞdifying“it,‘Î.either“commercially˜or“non-Ž¡‘'¿«commercially–ÿe.‘cÏSecondarily“,‘Hàthis–(aLicense›(bpreserv²!es“for“the˜author“and“publisher˜a“w•²!a“yŽ¡‘'¿«to–W9get“credit›W8for“their“w²!ork,‘ƒmwhile“not“bMÞeing“considered˜respšMÞonsible“for“mo˜dicationsŽ¡‘'¿«made–¦fb²!y“others.Ž¦‘'¿«This–È/License›È0is“a“kind“of˜\cop•²!yleft",‘ô whic“h–È/means˜that“deriv‘ÿdDativš²!e“w˜orks“of‘È0the“doMÞcumen˜tŽ¡‘'¿«m•²!ust›õthemselv“es–ôbMÞe˜free˜in˜the“same˜sense.‘ ‰It˜complemen²!ts˜the“GNU‘ÙGeneral˜PublicŽ¡‘'¿«License,–¦fwhicš²!h“is“a“cop˜yleft“license“designed“for“free“soft˜w˜are.Ž¦‘'¿«W‘ÿee›‹#ha•²!v“e˜designed˜this˜License˜in˜order˜to˜use˜it‘‹"for˜man“uals˜for˜free˜soft“w“are,‘—bMÞecauseŽ¡‘'¿«free›?soft•²!w“are˜needs˜free‘>doMÞcumen“tation:‘³a˜free˜program˜should‘>come˜with˜man“ualsŽ¡‘'¿«pro²!viding–urthe›ussame“freedoms˜that“the˜soft•²!w“are–urdoMÞes.‘ÍŒBut˜this“License˜is“not˜limited“toŽ¡‘'¿«soft•²!w“are›­âman“uals;‘±¡it–­ãcan˜bMÞe“used˜for“an²!y˜textual“w²!ork,‘¯Áregardless“of˜sub‘›»ject“matter˜orŽ¡‘'¿«whether–Ç2it“is“published“as“a“prin²!ted“b•MÞo“ok.‘@BW‘ÿee–Ç2recommend“this“License“principally“forŽ¡‘'¿«w²!orks–¦fwhose“purpMÞose“is“instruction“or“reference.Ž¦‘&-1.Ž‘'¿«APPLICABILITY–¦fAND“DEFINITIONSŽŸP‘'¿«This–Ì>License‘Ì=applies“to“anš²!y“man˜ual‘Ì=or“other“w˜ork,‘³in“an˜y–Ì=medium,‘´that“con˜tains‘Ì>aŽ¡‘'¿«notice–ýplaced›ýb²!y“the˜cop•²!yrigh“t‘ýholder˜sa“ying–ýit˜can“bMÞe˜distributed“under˜the“termsŽ¡‘'¿«of–€†this“License.‘l=Sucš²!h“a“notice“gran˜ts“a“w˜orld-wide,‘·
ro˜y˜alt˜y-free“license,‘·unlimited“inŽ¡‘'¿«duration,‘â
                    123: to–o·use›o¶that“w²!ork“under˜the“conditions“stated˜herein.‘
                    124: 9ÏThe“\DoMÞcumen²!t",Ž¡‘'¿«bMÞeloš²!w,‘tkrefers–gìto“an˜y“suc˜h‘gíman˜ual“or“w˜ork.‘É
                    125: An˜y“mem˜bMÞer“of“the‘gípublic“is“a“licensee,‘tkandŽ¡‘'¿«is–ÿaddressed“as“\yš²!ou".‘¦@Y‘ÿeou“accept“the“license“if“y˜ou“cop˜y‘ÿe,‘ îmoMÞdify“or“distribute“the“w˜orkŽ¡‘'¿«in–¦fa“w•²!a“y–¦frequiring“pMÞermission“under“cop•²!yrigh“t‘¦fla“w.Ž¦‘'¿«A‘¦\MošMÞdied–ÀV‘ÿeersion"‘Áof“the“Do˜cumenš²!t“means‘Áan˜y“w˜ork“con˜taining“the‘ÁDoMÞcumen˜t“orŽ¡‘'¿«a–‚hpMÞortion›‚gof“it,‘¹heither˜copied“v²!erbatim,‘¹hor˜with“moMÞdications“and/or˜translated“in²!toŽ¡‘'¿«another‘¦flanguage.Ž¦‘'¿«A‘ž\Secondary–ÀSection"“is›Áa“named˜appMÞendix“or˜a“fron²!t-matter˜section“of˜the“DoMÞcumen²!tŽ¡‘'¿«that–Ž/deals“exclusiv²!ely›Ž0with“the“relationship“of˜the“publishers“or“authors˜of“the“DoMÞcumen²!tŽ¡‘'¿«to–z
the‘zDoMÞcumenš²!t's“o˜v˜erall›zsub‘›»ject“(or˜to“related“matters)˜and“con²!tains˜nothing“thatŽ¡‘'¿«could–Ø®fall›دdirectly“within“that“o•²!v“erall˜sub‘›»ject.‘tµ(Th“us,‘%@if˜the›Ø®DoMÞcumen“t˜is˜in‘دpart˜aŽ¡‘'¿«textb•MÞo“ok›Õ†of–Õ…mathematics,‘ÿMa“Secondary˜Section˜ma²!y˜not“explain˜an²!y˜mathematics.)‘˜=TheŽ¡‘'¿«relationship–GÞcould“bMÞe“a“matter“of“historical“connection“with“the“sub‘›»ject“or“with“relatedŽ¡‘'¿«matters,–jor‘Bøof›B÷legal,“commercial,‘jphilosophical,“ethical˜or˜p•MÞolitical‘Bøp“osition˜regardingŽ¡‘'¿«them.Ž¦‘'¿«The›r\In•²!v‘ÿdDarian“t–sSections"˜are˜certain˜Secondary“Sections˜whose˜titles˜are“designated,‘0ÖasŽ¡‘'¿«bMÞeing–2Dthose›2Cof“In•²!v‘ÿdDarian“t–2DSections,‘I}in“the“notice˜that“sa²!ys˜that“the“DoMÞcumen²!t˜is“releasedŽŽŒ‹>¿Ÿò‘GáAppšMÞendix–¦fA:“GNU“F‘ÿeree“Do˜cumen²!tation“License’Á:62ŽŽŽ ƒ33 ý ÌÍ‘'¿«under–S5this“License.‘Â"If›S4a“section“doMÞes“not“t˜the“abMÞo•²!v“e–S5denition“of“Secondary˜then“it“isŽ¤
33‘'¿«not›Óallo•²!w“ed˜to‘ÓŽbMÞe˜designated˜as˜In“v‘ÿdDarian“t.‘eSThe˜DoMÞcumen“t˜ma“y‘ÓŽcon“tain˜zero˜In“v‘ÿdDarian“tŽ¡‘'¿«Sections.‘¢ÄIf–õthe“DošMÞcumen²!t“do˜es‘õnot“idenš²!tify“an˜y“In˜v‘ÿdDarian˜t“Sections“then‘õthere“are“none.Ž©&g‘'¿«The›f­\Co•²!v“er–f¬T‘ÿeexts"˜are˜certain˜short“passages˜of˜text˜that“are˜listed,‘–¾as˜F‘ÿeron•²!t-Co“v“erŽ¡‘'¿«T›ÿeexts–&-or“Bac•²!k-Co“v“er‘&,T˜exts,‘"8in–&-the“notice“that‘&,saš²!ys“that“the“DoMÞcumen˜t‘&,is“released“underŽ¡‘'¿«this›’License.‘¯AA‘nF‘ÿeron•²!t-Co“v“er˜T‘ÿeext˜ma“y˜bMÞe˜at˜most˜5›‘w“ords,‘6Šand˜a›’Bac“k-Co“v“er˜T‘ÿeext˜ma“yŽ¡‘'¿«bMÞe–¦fat“most“25“w²!ords.ŽŸ&h‘'¿«A‘C¦\T‘ÿeransparen•²!t"›CÎcop“y˜of‘CÏthe˜DoMÞcumen“t˜means˜a‘CÏmac“hine-readable˜cop“y‘ÿe,‘k(represen“tedŽ¡‘'¿«in–Jma“format›Jnwhose“spMÞecication“is“a²!v‘ÿdDailable“to“the˜general“public,‘snthat˜is“suitable“forŽ¡‘'¿«revising–Îàthe‘ÎßdoMÞcumenš²!t“straigh˜tforw˜ardly“with›Îßgeneric“text˜editors“or“(for˜images“com-Ž¡‘'¿«pMÞosed–ÚÃof›ÚÄpixels)“generic˜pain²!t“programs˜or“(for˜dra²!wings)“some˜widely“a•²!v‘ÿdDailable˜dra“wingŽ¡‘'¿«editor,‘…úand–}ßthat“is“suitable“for“input“to‘}àtext“formatters“or“for“automatic“translation“toŽ¡‘'¿«a–9Ov‘ÿdDariet²!y“of›9Nformats“suitable“for“input“to“text˜formatters.‘¹A‘93cop²!y“made˜in“an“otherwiseŽ¡‘'¿«T‘ÿeransparen²!t–„æle“format›„åwhose“markup,‘¼†or“absence˜of“markup,‘¼†has˜bMÞeen“arranged“toŽ¡‘'¿«th•²!w“art–0ûor›0üdiscourage“subsequen²!t“moMÞdication˜b²!y“readers“is˜not“T‘ÿeransparen²!t.‘¶ºAn“imageŽ¡‘'¿«format– Éis“not“T‘ÿeransparenš²!t“if“used‘ Èfor“an˜y“substan˜tial“amoun˜t“of“text.‘MA‘ ©cop˜y“that“isŽ¡‘'¿«not–¦f\T‘ÿeransparen²!t"“is“called“\Opaque".Ž¦‘'¿«Examples–cXof“suitable›cWformats“for“T‘ÿeransparen²!t“copies“include˜plain“çasci>Ki“áwithoutŽ¡‘'¿«markup,‘„ÂT‘ÿeexinfo–XIinput“format,›„ÁLaT‘þ,³Ÿ[wEŽ‘B       X‘XJinput“format,˜óKñ`y
                    126: 
                    127: cmr10«SGML“áor‘XJ«XML“áusing“a“publiclyŽ¡‘'¿«a²!v‘ÿdDailable–«DTDá,‘üand›Âstandard-conforming“simple˜«HTMLá,‘üP²!ostScript“or˜«PDF“ádesignedŽ¡‘'¿«for–˜.hš²!uman“moMÞdication.‘³4Examples“of“transparen˜t“image“formats“include“«PNGá,‘ÔŸ«X¸ãCFŽ¡‘'¿«áand–¢«JPGá.‘ÐáOpaque“formats“include“proprietary‘¢formats“that“can“bMÞe“read“and“editedŽ¡‘'¿«only–sbš²!y‘sproprietary“w˜ord›sproMÞcessors,‘&J«SGML“áor˜«XML“áfor˜whic²!h“the˜«DTD“áand/orŽ¡‘'¿«pro•MÞcessing›W*to“ols˜are˜not‘W)generally˜a•²!v‘ÿdDailable,‘CYand˜the˜mac“hine-generated˜«HTMLá,Ž¡‘'¿«Pš²!ostScript–¦for“«PDF“áproMÞduced“b˜y“some“w˜ord“prošMÞcessors“for“output“purp˜oses“only‘ÿe.Ž¦‘'¿«The–Ü\Title›ÛP²!age"“means,‘<ùfor˜a“prin²!ted˜b•MÞo“ok,‘<ùthe–Ütitle˜page“itself,‘<ùplus˜sucš²!h“follo˜wingŽ¡‘'¿«pages–RÃas“are“needed“to“hold,–c}legibly‘ÿe,“the–RÃmaterial“this‘RÂLicense“requires“to“appMÞear“in“theŽ¡‘'¿«title–1.page.‘¶ÊF‘ÿeor“w²!orks›1-in“formats˜whic²!h“do“not˜ha•²!v“e‘1.an“y˜title–1.page“as˜sucš²!h,‘HŸ\Title“P˜age"Ž¡‘'¿«means–­Žthe“text“near›­the“most“prominen²!t“appMÞearance“of“the˜w²!ork's“title,‘¯Xpreceding“theŽ¡‘'¿«bšMÞeginning–¦fof“the“b˜o˜dy“of“the“text.Ž¦‘'¿«The–)—\publisher"“means‘)˜anš²!y“pMÞerson“or“en˜tit˜y“that“distributes‘)˜copies“of“the“DoMÞcumen˜tŽ¡‘'¿«to–¦fthe“public.ŽŸ&h‘'¿«A›ísection–ò\En²!titled“XYZ"˜means“a“named›ósubunit“of“the“DoMÞcumen²!t˜whose“title“eitherŽ¡‘'¿«is–Uªprecisely‘U©XYZ›U•or“con²!tains“XYZ˜in“paren•²!theses›U©follo“wing–Uªtext“that˜translates“XYZ‘U•inŽ¡‘'¿«another–þ¯language.‘¥ö(Here“XYZ‘þ„stands“for“a“spšMÞecic“section“name“men²!tioned“b˜elo•²!w,‘ :suc“hŽ¡‘'¿«as›aa\Ac•²!kno“wledgemen“ts",–o/\Dedications",“\Endorsemen²!ts",“or˜\History".)‘ÆÛT‘ÿeo˜\Preserv²!eŽ¡‘'¿«the–›Title"›šof“suc²!h˜a“section“when˜y²!ou“moMÞdify˜the“DoMÞcumen²!t“means˜that“it˜remains“aŽ¡‘'¿«section–¦f\En²!titled“XYZ"“according“to“this“denition.Ž¦‘'¿«The–SuDoMÞcumenš²!t“ma˜y“include“W‘ÿearran˜t˜y“Disclaimers“next‘Svto“the“notice“whic˜h“states“thatŽ¡‘'¿«this–¹License“applies‘ºto“the“DoMÞcumenš²!t.‘×These“W‘ÿearran˜t˜y“Disclaimers‘ºare“considered“toŽ¡‘'¿«bMÞe–„ýincluded›„þb²!y“reference“in“this˜License,‘¼£but“only“as“regards˜disclaiming“w•²!arran“ties:Ž¡‘'¿«an²!y–nother›n‘implication“that˜these“W‘ÿearran•²!t“y˜Disclaimers‘nma“y˜ha“v“e‘nis˜v“oid–nand˜has“noŽ¡‘'¿«eect–¦fon“the“meaning“of“this“License.Ž¦‘&-2.Ž‘'¿«VERBA‘ÿeTIM‘¦fCOPYINGŽŽŒ‹?)wŸò‘GáAppšMÞendix–¦fA:“GNU“F‘ÿeree“Do˜cumen²!tation“License’Á:63ŽŽŽ ƒ33 ý ÌÍ‘'¿«Y‘ÿeou–’ùmaš²!y“cop˜y“and“distribute“the“DoMÞcumen˜t“in“an˜y“medium,‘Îeither“commercially“orŽ¤
33‘'¿«noncommercially‘ÿe,›zªpro²!vided–that‘this“License,˜the‘cop•²!yrigh“t–notices,˜and‘the“licenseŽ¡‘'¿«notice–Ksa²!ying›K
this“License˜applies“to˜the“DoMÞcumen²!t“are˜reproMÞduced“in˜all“copies,‘t7andŽ¡‘'¿«that–1'yš²!ou“add“no‘1(other“conditions“whatsoMÞev˜er“to“those“of“this“License.‘¶ÉY‘ÿeou“ma˜y“not“useŽ¡‘'¿«tec²!hnical–ò“measures›ò”to“obstruct˜or“con²!trol˜the“reading˜or“further˜cop²!ying“of˜the“copiesŽ¡‘'¿«y•²!ou›òÇmak“e‘òÈor˜distribute.‘¡þHo“w“ev“er,‘´y“ou˜ma“y˜accept‘òÈcompMÞensation˜in˜exc“hange‘òÈfor˜copies.Ž¡‘'¿«If–Þy²!ou›Þdistribute“a“large˜enough“n•²!um“bMÞer˜of–Þcopies“y•²!ou˜m“ust–Þalso“follo²!w˜the“conditionsŽ¡‘'¿«in–¦fsection“3.Ž©"#‘'¿«Y‘ÿeou–}ìma²!y“also›}ëlend“copies,‘¹7under“the“same“conditions“stated˜abMÞo•²!v“e,‘¹8and˜y“ou›}ìma“y˜publiclyŽ¡‘'¿«displa²!y‘¦fcopies.Ž¦‘&-3.Ž‘'¿«COPYING–¦fIN“QUANTITYŽ¦‘'¿«If–Ãyš²!ou‘Âpublish“prin˜ted›Âcopies“(or˜copies˜in“media“that˜commonly“ha•²!v“e˜prin“ted˜co“v“ers)‘ÃofŽ¡‘'¿«the‘Ñ.DošMÞcumen•²!t,‘Ûßn“um“b˜ering–Ñ.more“than–Ñ-100,‘Ûàand“the–Ñ.Do˜cumen²!t's“license‘Ñ-notice“requiresŽ¡‘'¿«Co•²!v“er›ÜT‘ÿeexts,‘<ùy“ou‘Ûm“ust˜enclose˜the˜copies‘Ûin˜co“v“ers˜that˜carry–ÿe,‘<ùclearly‘Ûand˜legibly“,‘<ùallŽ¡‘'¿«these›´@Co•²!v“er˜T–ÿeexts:‘ùF“ron•²!t-Co“v“er˜T‘ÿeexts˜on˜the˜fron“t˜co“v“er,‘÷µand˜Bac“k-Co“v“er˜T‘ÿeexts˜onŽ¡‘'¿«the›öbac•²!k‘õco“v“er.‘Ñ
Both˜co“v“ers˜m“ust–õalso˜clearly˜and˜legibly“iden•²!tify˜y“ou˜as‘õthe˜publisherŽ¡‘'¿«of›,these–+copies.‘H/The“fron•²!t˜co“v“er˜m“ust˜presen“t–+the˜full˜title“with˜all˜w²!ords˜of“the˜titleŽ¡‘'¿«equally–³xprominenš²!t“and‘³yvisible.‘Y‘ÿeou“ma˜y›³yadd“other“material“on“the˜co•²!v“ers–³xin“addition.Ž¡‘'¿«Cop•²!ying›Y4with‘Y3c“hanges˜limited–Y3to˜the“co•²!v“ers,‘…ças–Y3long˜as“they˜preserv²!e“the˜title“of˜theŽ¡‘'¿«DošMÞcumen²!t–uand“satisfy“these“conditions,‘¨Åcan“b˜e“treated‘uas“vš²!erbatim“cop˜ying“in“otherŽ¡‘'¿«respMÞects.Ž¦‘'¿«If–î|the“required›î}texts“for“either“co•²!v“er–î|are“toMÞo˜vš²!oluminous“to“t“legibly‘ÿe,‘‚y˜ou“should“putŽ¡‘'¿«the–òrst›òones“listed“(as“man²!y˜as“t“reasonably)“on˜the“actual“co•²!v“er,‘ùand˜con“tin“ue‘òtheŽ¡‘'¿«rest–¦fonš²!to“adjacen˜t“pages.ŽŸ""‘'¿«If–?|y²!ou›?{publish“or˜distribute“Opaque˜copies“of˜the“DoMÞcumen•²!t˜n“um“bMÞering–?|more˜than“100,Ž¡‘'¿«y•²!ou›\3m“ust˜either‘\4include˜a˜mac“hine-readable˜T‘ÿeransparen“t˜cop“y˜along‘\4with˜eac“h˜OpaqueŽ¡‘'¿«cop²!y‘ÿe,‘[>or›7state–7in“or˜with“eacš²!h“Opaque“cop˜y‘7a“computer-net˜w˜ork“loMÞcation‘7from“whic˜hŽ¡‘'¿«the›éSgeneral‘éRnet•²!w“ork-using˜public˜has‘éRaccess˜to˜do“wnload˜using‘éRpublic-standard˜net“w“orkŽ¡‘'¿«protoMÞcols–¬=a“complete‘¬>T‘ÿeransparenš²!t“cop˜y“of“the“DoMÞcumen˜t,‘í³free“of“added“material.‘ïcIfŽ¡‘'¿«yš²!ou–ªuse“the‘ªlatter“option,‘êùy˜ou“m˜ust‘ªtak˜e“reasonably“pruden˜t“steps,‘êøwhen“y˜ou“bMÞeginŽ¡‘'¿«distribution–—lof›—mOpaque“copies˜in“quan•²!tit“y‘ÿe,‘Ó®to–—lensure“that˜this“T‘ÿeransparen•²!t˜cop“y‘—lwillŽ¡‘'¿«remain– Cthš²!us“accessible‘ Dat“the“stated“loMÞcation“un˜til‘ Dat“least“one“y˜ear“after‘ Dthe“last“timeŽ¡‘'¿«yš²!ou–k‘distribute‘k’an“Opaque“cop˜y‘k’(directly“or“through“y˜our‘k’agen˜ts“or“retailers)‘k’of“thatŽ¡‘'¿«edition–¦fto“the“public.Ž¦‘'¿«It–&Nis“requested,‘FHbut“not“required,‘FGthat“yš²!ou“con˜tact“the“authors“of“the“DoMÞcumen˜t“w˜ellŽ¡‘'¿«bMÞefore–oÅredistributing‘oÄanš²!y“large“n˜um˜bMÞer›oÄof“copies,‘z²to˜giv²!e“them˜a“c²!hance“to˜proš²!vide“y˜ouŽ¡‘'¿«with–¦fan“upšMÞdated“v²!ersion“of“the“Do˜cumen²!t.Ž¦‘&-4.Ž‘'¿«MODIFICA‘ÿeTIONSŽ¦‘'¿«Y‘ÿeou–*maš²!y“cop˜y“and›)distribute“a“MoMÞdied“V‘ÿeersion“of“the˜DoMÞcumen²!t“under“the“conditionsŽ¡‘'¿«of–…šsections›…›2“and˜3“abMÞo•²!v“e,‘¿]pro“vided˜that‘…šy“ou˜release–…šthe˜MoMÞdied“V‘ÿeersion˜under“preciselyŽ¡‘'¿«this–{ÞLicense,‘„`with“the›{ßMoMÞdied“V‘ÿeersion“lling˜the“role“of˜the“DoMÞcumen•²!t,‘„`th“us‘{ÞlicensingŽ¡‘'¿«distribution–¸and“mošMÞdication‘¹of“the“Mo˜died“V‘ÿeersion“to“who˜ev²!er‘¹p˜ossesses“a“cop²!y“ofŽ¡‘'¿«it.‘ÝÝIn–¦faddition,“yš²!ou“m˜ust“do“these“things“in“the“MoMÞdied“V‘ÿeersion:Ž¦‘*òÄA.Ž‘=nUse–ípin“the“Title“Pš²!age“(and“on“the“co˜v˜ers,‘ÿ2if“an˜y)“a“title“distinct“from“that“of“theŽ¡‘=nDoMÞcumenš²!t,‘+and–ˆfrom“those“of“previous“v˜ersions‘‡(whic˜h“should,‘+if“there“w˜ere“an˜y‘ÿe,ŽŽŒ‹@;ÛŸò‘GáAppšMÞendix–¦fA:“GNU“F‘ÿeree“Do˜cumen²!tation“License’Á:64ŽŽŽ ƒ33 ý ÌÍ‘=nbšMÞe–Âølisted“in“the“History‘Â÷section“of“the“Do˜cumenš²!t).‘3“Y‘ÿeou“ma˜y‘Â÷use“the“same“title“asŽ¤
33‘=na–¦fprevious“vš²!ersion“if“the“original“publisher“of“that“v˜ersion“giv˜es“pMÞermission.Ž©€‘+gB.Ž‘=nList–ª\on“the“Title›ª[P²!age,‘«Zas“authors,‘«Yone“or“more“pMÞersons˜or“en²!tities“respMÞonsible“forŽ¡‘=nauthorship–"of›"&the“moMÞdications“in˜the“MoMÞdied˜V‘ÿeersion,‘<|together“with“at˜least“v²!eŽ¡‘=nof–߸the“principal“authors“of“the“DoMÞcumenš²!t“(all“of“its“principal“authors,‘uif“it“has“few˜erŽ¡‘=nthan–¦fvš²!e),“unless“they“release“y˜ou“from“this“requiremen˜t.ŽŸ€&‘+@¢C.Ž‘=nState–±Óon›±Òthe“Title˜page“the˜name“of˜the“publisher˜of“the˜MoMÞdied“V‘ÿeersion,‘´­as“theŽ¡‘=npublisher.Ž¦‘*ËÕD.Ž‘=nPreservš²!e–¦fall“the“cop˜yrigh˜t“notices“of“the“DoMÞcumen˜t.Ž¦‘+µoE.Ž‘=nAdd–Äean›Ädappropriate“cop•²!yrigh“t˜notice‘Äefor˜y“our‘ÄemoMÞdications˜adjacen“t–Äeto˜the“otherŽ¡‘=ncop•²!yrigh“t‘¦fnotices.ŽŸ€&‘,LF.Ž‘=nInclude,›hSimmediately–XÎafter“the“cop•²!yrigh“t–XÎnotices,˜a“license“notice“giving“the“publicŽ¡‘=npMÞermission–ïËto›ïÊuse“the˜MoMÞdied“V‘ÿeersion“under˜the“terms˜of“this“License,‘Pin˜the“formŽ¡‘=nshoš²!wn–¦fin“the“Addendum“bMÞelo˜w.Ž¦‘*‘nG.Ž‘=nPreserv²!e–¼min›¼lthat“license˜notice“the˜full“lists˜of“In•²!v‘ÿdDarian“t˜Sections–¼mand˜required“Co•²!v“erŽ¡‘=nT‘ÿeexts–¦fgivš²!en“in“the“DoMÞcumen˜t's“license“notice.Ž¦‘*òÄH.Ž‘=nInclude–¦fan“unaltered“cop²!y“of“this“License.ŽŸ€&‘/4çI.Ž‘=nPreservš²!e–Ú†the‘Ú‡section“En˜titled‘Ú‡\History",‘çŽPreserv˜e“its›Ú‡Title,‘çŽand“add˜to“it˜an“itemŽ¡‘=nstating–_at›_least“the˜title,–mQy²!ear,“new˜authors,“and–_publisher˜of“the˜MoMÞdied“V‘ÿeersionŽ¡‘=nas–ÄXgivš²!en“on‘ÄWthe“Title“P˜age.‘7³If‘ÄWthere“is“no“section“En˜titled“\History"‘ÄWin“the“DoMÞcu-Ž¡‘=nmenš²!t,‘O#create‘-eone–-dstating“the“title,‘O$y˜ear,–O#authors,“and‘-epublisher–-dof“the“DoMÞcumen˜tŽ¡‘=nas–Wgivš²!en“on“its“Title“P˜age,‘ƒFthen“add“an“item“describing“the“MoMÞdied“V‘ÿeersion“asŽ¡‘=nstated–¦fin“the“previous“sen²!tence.Ž¦‘-ˆ¢J.Ž‘=nPreservš²!e–æthe“net˜w˜ork“loMÞcation,‘õúif“an˜y‘ÿe,‘õúgiv˜en“in“the“DoMÞcumen˜t‘æfor“public“access“toŽ¡‘=na–½…T‘ÿeransparenš²!t“cop˜y‘½†of“the“DoMÞcumen˜t,‘ÃMand“lik˜ewise“the“net˜w˜ork‘½†loMÞcations“giv˜en“inŽ¡‘=nthe–Í„DoMÞcumenš²!t‘̓for“previous“v˜ersions‘̓it“w˜as“based“on.‘S6These‘̓ma˜y“bMÞe“placed‘̓in“theŽ¡‘=n\History"–&8section.‘¦ÎY‘ÿeou›&9ma²!y“omit˜a“net•²!w“ork–&8loMÞcation˜for“a˜w²!ork“that˜w²!as“publishedŽ¡‘=nat–Kleast“four‘Ky²!ears“bšMÞefore“the“Do˜cumen²!t“itself,‘t@or“if“the“original‘Kpublisher“of“theŽ¡‘=nvš²!ersion–¦fit“refers“to“giv˜es“pMÞermission.Ž¦‘*¤åK.Ž‘=nF‘ÿeor–Ùranš²!y“section“En˜titled“\Ac˜kno˜wledgemen˜ts"“or“\Dedications",‘oPreserv˜e“the“TitleŽ¡‘=nof›/Rthe–/Qsection,‘G#and“preserv²!e˜in˜the“section˜all˜the“substance˜and“tone˜of˜eac²!h“of˜theŽ¡‘=ncon•²!tributor›¦fac“kno“wledgemen“ts˜and/or˜dedications˜giv“en˜therein.Ž¦‘,Q*L.Ž‘=nPreservš²!e–?Ôall‘?Óthe“In˜v‘ÿdDarian˜t›?ÓSections“of˜the“DoMÞcumen²!t,‘f/unaltered˜in“their˜text“andŽ¡‘=nin›PÜtheir–PÝtitles.‘Ý@Section“n•²!um“bMÞers˜or‘PÝthe˜equiv‘ÿdDalen“t–PÝare˜not“considered˜part“of˜theŽ¡‘=nsection‘¦ftitles.ŽŸ€&‘)M.Ž‘=nDelete–°5anš²!y“section“En˜titled‘°4\Endorsemen˜ts".‘ûJSuc˜h“a“section‘°4ma˜y“not“bMÞe“includedŽ¡‘=nin–¦fthe“MoMÞdied“V‘ÿeersion.Ž¦‘*òÄN.Ž‘=nDo–g!not›g"retitle“an²!y˜existing“section“to˜bMÞe“Enš²!titled“\Endorsemen˜ts"›g"or“to˜con
ict“inŽ¡‘=ntitle–¦fwith“anš²!y“In˜v‘ÿdDarian˜t“Section.Ž¦‘*¤åO.Ž‘=nPreserv•²!e›¦fan“y˜W‘ÿearran“t“y˜Disclaimers.ŽŸÌΑ'¿«If–&Øthe›&×MoMÞdied“V‘ÿeersion˜includes“new˜fron²!t-matter“sections˜or“appMÞendices˜that“qualifyŽ¡‘'¿«as–XSecondary›X     Sections“and“con²!tain“no˜material“copied“from˜the“DoMÞcumen•²!t,‘g´y“ou˜ma“y‘XatŽ¡‘'¿«y²!our–ãkoption›ãldesignate“some˜or“all“of˜these“sections˜as“in•²!v‘ÿdDarian“t.‘”íT‘ÿeo˜do–ãkthis,‘ò­add“theirŽŽŒ‹AN=Ÿò‘GáAppšMÞendix–¦fA:“GNU“F‘ÿeree“Do˜cumen²!tation“License’Á:65ŽŽŽ ƒ33 ý ÌÍ‘'¿«titles–@«to“the“list›@¬of“In•²!v‘ÿdDarian“t–@«Sections“in“the“MoMÞdied“V‘ÿeersion's“license˜notice.‘¬¬TheseŽ¤
33‘'¿«titles–¦fmš²!ust“bMÞe“distinct“from“an˜y“other“section“titles.Ž©(ö‘'¿«Y‘ÿeou–pmaš²!y‘qadd“a“section“En˜titled‘q\Endorsemen˜ts",‘s²pro˜vided“it“con˜tains‘qnothing“butŽ¡‘'¿«endorsemen•²!ts›‘of‘‘y“our˜MoMÞdied˜V‘ÿeersion˜b“y‘‘v‘ÿdDarious˜parties|for˜example,‘•Zstatemen“ts˜ofŽ¡‘'¿«pšMÞeer–D
review“or‘Dthat“the“text“has“b˜een‘Dappro•²!v“ed›D
b“y˜an˜organization‘Das˜the˜authoritativ“eŽ¡‘'¿«denition–¦fof“a“standard.ŽŸ(÷‘'¿«Y‘ÿeou–f,ma²!y›f-add“a˜passage“of˜up“to˜vš²!e“w˜ords›f-as“a˜F›ÿeron•²!t-Co“v“er–f,T˜ext,‘sand›f-a“passage˜of“upŽ¡‘'¿«to–@25“wš²!ords‘@Žas“a“Bac˜k-Co˜v˜er“T‘ÿeext,‘Tìto›@Žthe“end“of“the˜list“of“Co•²!v“er–@T‘ÿeexts˜in“the“MoMÞdiedŽ¡‘'¿«V›ÿeersion.‘Õ+Only–N+one‘N*passage“of“F˜ron•²!t-Co“v“er‘N*T˜ext–N+and“one‘N*of“Bac•²!k-Co“v“er‘N+T˜ext‘N*ma“y‘N+bMÞeŽ¡‘'¿«added–NÁbš²!y“(or“through“arrangemen˜ts“made“b˜y)‘NÂan˜y“one“en˜tit˜y‘ÿe.‘À¦If“the“DoMÞcumen˜t“alreadyŽ¡‘'¿«includes›Éa‘Èco•²!v“er˜text–Èfor˜the˜same“co•²!v“er,‘/!previously˜added˜b“y‘Èy“ou˜or‘Èb“y˜arrangemen“tŽ¡‘'¿«made–:Çbš²!y“the“same“en˜tit˜y“y˜ou“are“acting“on“bMÞehalf“of,‘_ßy˜ou“ma˜y‘:Ènot“add“another;‘„÷butŽ¡‘'¿«y•²!ou›)ma“y˜replace–*the˜old˜one,‘2on˜explicit˜pMÞermission˜from˜the“previous˜publisher˜thatŽ¡‘'¿«added–¦fthe“old“one.Ž¦‘'¿«The–^author(s)›]and“publisher(s)˜of“the“DoMÞcumen²!t˜do“not“b²!y˜this“License˜giv²!e“pMÞermissionŽ¡‘'¿«to–¤juse“their›¤knames“for“publicit²!y“for“or˜to“assert“or“imply“endorsemen²!t˜of“an²!y“MoMÞdiedŽ¡‘'¿«V‘ÿeersion.ŽŸ(÷‘&-5.Ž‘'¿«COMBINING‘¦fDOCUMENTSŽ¦‘'¿«Y‘ÿeou›¦Çma•²!y‘¦Ècom“bine˜the˜DoMÞcumen“t–¦Èwith˜other“doMÞcumen²!ts˜released˜under“this˜License,Ž¡‘'¿«under–—sthe“terms›—tdened“in“section“4˜abšMÞo•²!v“e–—sfor“mo˜died“v•²!ersions,‘Ó·pro“vided–—sthat“y²!ouŽ¡‘'¿«include–        in›   the“com²!bination“all“of˜the“In•²!v‘ÿdDarian“t–      Sections˜of“all“of“the˜original“doMÞcumen²!ts,Ž¡‘'¿«unmoMÞdied,‘L3and–5¦list›5§them“all˜as“In•²!v‘ÿdDarian“t–5¦Sections˜of“yš²!our“com˜bined‘5§w˜ork“in‘5§its“licenseŽ¡‘'¿«notice,–¦fand“that“yš²!ou“preserv˜e“all“their“W‘ÿearran˜t˜y“Disclaimers.Ž¦‘'¿«The–¢@comš²!bined“w˜ork“need“only“con˜tain“one“cop˜y“of“this“License,‘£and“m˜ultiple“iden˜ticalŽ¡‘'¿«In•²!v‘ÿdDarian“t–æÝSections“maš²!y“bMÞe“replaced“with“a“single‘æÜcop˜y‘ÿe.‘ŸBIf“there“are“m˜ultiple“In˜v‘ÿdDarian˜tŽ¡‘'¿«Sections–6Çwith›6Èthe“same˜name“but˜dierenš²!t“con˜ten˜ts,‘Mmak˜e›6Èthe“title˜of“eac•²!h˜suc“h‘6ÇsectionŽ¡‘'¿«unique–bb²!y›cadding“at˜the“end˜of“it,‘1"in“paren²!theses,‘1!the˜name“of˜the“original˜author“orŽ¡‘'¿«publisher–of“that›~section“if“kno²!wn,‘!­or“else“a“unique˜n•²!um“bMÞer.‘¦‘Mak“e˜the–same“adjustmen²!tŽ¡‘'¿«to–î‡the›î†section“titles“in˜the“list“of˜In•²!v‘ÿdDarian“t–î‡Sections“in“the˜license“notice“of˜the“com²!binedŽ¡‘'¿«w²!ork.ŽŸ(÷‘'¿«In›ö"the‘ö#com•²!bination,‘Jy“ou˜m“ust‘ö#com“bine˜an“y‘ö#sections˜En“titled–ö#\History"˜in“the˜v‘ÿdDari-Ž¡‘'¿«ous–ÜÛoriginal›ÜÚdoMÞcumen²!ts,‘êxforming“one˜section“Enš²!titled“\History";‘ølik˜ewise‘ÜÚcom˜bine“an˜yŽ¡‘'¿«sections–ÑEnš²!titled“\Ac˜kno˜wledgemen˜ts",‘Û¿and“an˜y“sections“En˜titled“\Dedications".‘]çY‘ÿeouŽ¡‘'¿«mš²!ust–¦fdelete“all“sections“En˜titled“\Endorsemen˜ts."Ž¦‘&-6.Ž‘'¿«COLLECTIONS–¦fOF“DOCUMENTSŽŸ(÷‘'¿«Y‘ÿeou–Ò¤maš²!y“mak˜e“a“collection“consisting“of‘Ò£the“DoMÞcumen˜t“and“other“doMÞcumen˜ts“releasedŽ¡‘'¿«under–this“License,‘sÚand“replace“the“individual“copies“of“this“License“in“the“v‘ÿdDariousŽ¡‘'¿«doMÞcumenš²!ts–Dwith‘Ca“single“cop˜y›Cthat“is˜included“in“the˜collection,‘y»pro²!vided˜that“y²!ouŽ¡‘'¿«follo²!w–t”the›t•rules“of˜this“License˜for“v•²!erbatim˜cop“ying‘t”of˜eac“h–t”of˜the“doMÞcumen²!ts˜in“allŽ¡‘'¿«other‘¦frespMÞects.Ž¦‘'¿«Y‘ÿeou–Æ=maš²!y“extract“a“single“doMÞcumen˜t“from“suc˜h“a“collection,‘Î2and“distribute“it“individu-Ž¡‘'¿«ally–4under›4this“License,‘Wnpro•²!vided˜y“ou–4insert“a“cop²!y˜of“this“License“in²!to˜the“extractedŽ¡‘'¿«doMÞcumen•²!t,‘ùøand›éBfollo“w–éAthis˜License“in“all˜other“respMÞects˜regarding“v•²!erbatim˜cop“ying‘éAofŽ¡‘'¿«that‘¦fdoMÞcumen²!t.ŽŽŒ‹B^žŸò‘GáAppšMÞendix–¦fA:“GNU“F‘ÿeree“Do˜cumen²!tation“License’Á:66ŽŽŽ ƒ33 ý ÌÍ‘&-7.Ž‘'¿«Aš²!GGREGA‘ÿeTION–¦fWITH“INDEPENDENT“W˜ORKSŽ©(ö‘'¿«A‘]Æcompilation–]Øof“the“DoMÞcumenš²!t‘]Ùor“its“deriv‘ÿdDativ˜es“with“other‘]Ùseparate“and“indepMÞenden˜tŽ¤
33‘'¿«doMÞcumen•²!ts›ÿhor‘ÿiw“orks,‘©in˜or˜on‘ÿia˜v“olume–ÿiof˜a“storage˜or˜distribution“medium,‘©is˜calledŽ¡‘'¿«an–\aggregate"“if“the›
                    128: cop•²!yrigh“t–resulting“from“the“compilation“is“not˜used“to“limit“theŽ¡‘'¿«legal–1        righ²!ts›1of“the“compilation's˜users“bMÞey²!ond˜what“the“individual˜w²!orks“pMÞermit.‘¶¾WhenŽ¡‘'¿«the–žDošMÞcumen²!t“is“included‘žin“an“aggregate,‘Ûðthis“License“do˜es“not‘žapply“to“the“otherŽ¡‘'¿«wš²!orks–¦fin“the“aggregate“whic˜h“are“not“themselv˜es“deriv‘ÿdDativ˜e“w˜orks“of“the“DoMÞcumen˜t.ŽŸ(÷‘'¿«If–»Vthe“Co•²!v“er–»VT‘ÿeext“requiremenš²!t“of“section“3‘»Uis“applicable“to“these“copies“of“the“DoMÞcumen˜t,Ž¡‘'¿«then–°Dif›°Ethe“DoMÞcumen²!t“is“less˜than“one“half“of˜the“en²!tire“aggregate,‘á~the˜DoMÞcumenš²!t's“Co˜v˜erŽ¡‘'¿«T‘ÿeexts–0maš²!y“bMÞe“placed“on“co˜v˜ers“that“brac˜k˜et“the“DoMÞcumen˜t“within“the‘0&aggregate,‘G°or“theŽ¡‘'¿«electronic–5qequiv‘ÿdDalenš²!t‘5pof“co˜v˜ers›5pif“the˜DoMÞcumen²!t“is“in˜electronic“form.‘ŠüOtherwise“theyŽ¡‘'¿«mš²!ust–¦fappMÞear“on“prin˜ted“co˜v˜ers“that“brac˜k˜et“the“whole“aggregate.Ž¦‘&-8.Ž‘'¿«TRANSLA‘ÿeTIONŽŸ(÷‘'¿«T‘ÿeranslation–̯is›Ì°considered“a˜kind“of“moMÞdication,‘Aso˜yš²!ou“ma˜y‘Ì°distribute“translationsŽ¡‘'¿«of–Tþthe›TýDoMÞcumen²!t“under˜the“terms˜of“section“4.‘      é£Replacing“In•²!v‘ÿdDarian“t˜Sections‘TþwithŽ¡‘'¿«translations–v²requires‘v³spšMÞecial“p˜ermission“from“their›v³cop•²!yrigh“t‘v²holders,‘êÄbut˜y“ou‘v²ma“yŽ¡‘'¿«include–ðktranslations“of“some›ðjor“all“In•²!v‘ÿdDarian“t–ðkSections“in“addition˜to“the“original“v²!ersionsŽ¡‘'¿«of›Æthese‘ÆIn•²!v‘ÿdDarian“t˜Sections.‘=Y‘ÿeou‘Æma“y˜include–Æa˜translation˜of“this˜License,‘Î
                    129: and“all˜theŽ¡‘'¿«license–òúnotices›òûin“the“DoMÞcumen•²!t,‘Fand˜an“y›òúW‘ÿearran“t“y˜Disclaimers,‘Fpro“vided‘òûthat˜y“ouŽ¡‘'¿«also–Ïinclude›Îÿthe“original“English˜v²!ersion“of“this“License˜and“the“original˜v²!ersions“ofŽ¡‘'¿«those–notices“and“disclaimers.‘5åIn“case“of“a“disagreemen•²!t‘bMÞet“w“een–the“translation“andŽ¡‘'¿«the–:•original›:”v²!ersion“of˜this“License˜or“a˜notice“or˜disclaimer,‘_ the“original˜v²!ersion“willŽ¡‘'¿«prev‘ÿdDail.Ž¦‘'¿«If–pèa“section“in‘péthe“DoMÞcumenš²!t“is“En˜titled“\Ac˜kno˜wledgemen˜ts",–{›\Dedications",“or‘pè\His-Ž¡‘'¿«tory",‘A¿the–(•requiremenš²!t“(section“4)“to“Preserv˜e“its“Title“(section“1)“will“t˜ypically“requireŽ¡‘'¿«c²!hanging–¦fthe“actual“title.Ž¦‘&-9.Ž‘'¿«TERMINA‘ÿeTIONŽŸ(÷‘'¿«Y‘ÿeou–”maš²!y“not‘”cop˜y–ÿe,›—¾moMÞdify“,˜sublicense,˜or–”distribute“the“DoMÞcumen²!t‘”except“as“expresslyŽ¡‘'¿«proš²!vided–¡ðunder‘¡ñthis“License.‘Ð|An˜y›¡ñattempt“otherwise˜to“cop²!y–ÿe,›àÓmoMÞdify“,‘àÒsublicense,˜orŽ¡‘'¿«distribute–¦fit“is“vš²!oid,“and“will“automatically“terminate“y˜our“righ˜ts“under“this“License.Ž¦‘'¿«Ho•²!w“ev“er,‘ó·if›äAy“ou–ä@cease˜all“violation˜of“this“License,‘ó¸then“y²!our˜license“from˜a“particularŽ¡‘'¿«cop•²!yrigh“t–Jholder“is‘Jreinstated“(a)“proš²!visionally‘ÿe,‘sšunless“and“un˜til‘Jthe“cop˜yrigh˜t“holderŽ¡‘'¿«explicitly–á_and“nally“terminates“yš²!our“license,‘0and“(b)“pMÞermanen˜tly‘ÿe,‘0if“the“cop˜yrigh˜tŽ¡‘'¿«holder–"fails“to“notify“yš²!ou“of“the“violation‘"b˜y“some“reasonable“means“prior“to“60“da˜ysŽ¡‘'¿«after–¦fthe“cessation.ŽŸ(÷‘'¿«Moreo•²!v“er,‘Ï8y“our–Ç
license›Çfrom“a˜particular˜cop•²!yrigh“t–Ç
holder˜is˜reinstated“pMÞermanen²!tly˜ifŽ¡‘'¿«the›V`cop•²!yrigh“t˜holder‘Vanoties˜y“ou˜of˜the˜violation‘Vab“y˜some˜reasonable˜means,‘fbthis˜is˜theŽ¡‘'¿«rst–Wtime“y•²!ou‘Wha“v“e›Wreceiv“ed˜notice˜of˜violation‘Wof˜this˜License˜(for˜an“y‘Ww“ork)˜from˜thatŽ¡‘'¿«cop•²!yrigh“t–Õúholder,‘áÞand“yš²!ou“cure“the“violation“prior‘Õùto“30“da˜ys“after“y˜our‘Õùreceipt“of“theŽ¡‘'¿«notice.Ž¦‘'¿«T‘ÿeermination–Nuof“yš²!our“righ˜ts“under“this“section‘NtdoMÞes“not“terminate“the“licenses“of“partiesŽ¡‘'¿«who›•qha•²!v“e˜receiv“ed˜copies˜or˜righ“ts˜from˜y“ou‘•punder˜this˜License.‘ªþIf˜y“our˜righ“ts˜ha“v“eŽ¡‘'¿«bšMÞeen–Îterminated“and“not‘Íp˜ermanenš²!tly“reinstated,‘:¹receipt“of“a“cop˜y“of“some‘Íor“all“of“theŽ¡‘'¿«same–¦fmaterial“doMÞes“not“givš²!e“y˜ou“an˜y“righ˜ts“to“use“it.ŽŽŒ‹CpŸò‘GáAppšMÞendix–¦fA:“GNU“F‘ÿeree“Do˜cumen²!tation“License’Á:67ŽŽŽ ƒ33 ý ÌÍ‘‡“10.Ž‘'¿«FUTURE–¦fREVISIONS“OF“THIS“LICENSEŽ©33‘'¿«The›ÿaF‘ÿeree‘ÿbSoft•²!w“are˜F‘ÿeoundation‘ÿbma“y˜publish–ÿbnew,‘UŸrevised“v²!ersions˜of“the˜GNU‘ÿ F‘ÿereeŽ¤
33‘'¿«DoMÞcumenš²!tation–ÙâLicense‘Ùãfrom“time“to“time.‘xRSuc˜h“new‘Ùãv˜ersions“will“bMÞe“similar‘Ùãin“spiritŽ¡‘'¿«to– æthe“presenš²!t“v˜ersion,‘?…but“ma˜y“dier“in“detail“to“address‘ ånew“problems“or“concerns.Ž¡‘'¿«See‘¦fâhttp://www.gnu.org/copyleft/á.Ž¦‘'¿«Eac•²!h›ˆ×v“ersion˜of˜the˜License˜is˜giv“en˜a˜distinguishing˜v“ersion˜n“um“b•MÞer.‘ÔIf˜the˜Do“cumen²!tŽ¡‘'¿«spšMÞecies–r”that“a“particular“n•²!um“b˜ered›r”v“ersion˜of˜this˜License˜\or˜an“y˜later˜v“ersion"Ž¡‘'¿«applies‘æQto–æPit,‘öLyš²!ou“ha˜v˜e–æQthe“option‘æPof“follo˜wing“the“terms›æPand“conditions“either˜of“thatŽ¡‘'¿«spMÞecied–Žvš²!ersion“or“of“an˜y“later“v˜ersion“that‘Žhas“bMÞeen“published“(not“as“a“draft)“b˜yŽ¡‘'¿«the›î!F‘ÿeree‘î"Soft•²!w“are˜F‘ÿeoundation.‘µIf‘î"the˜DošMÞcumen“t‘î"do˜es–î!not“sp˜ecify›î"a“v•²!ersion˜n“um“bMÞer‘î!ofŽ¡‘'¿«this–$œLicense,‘D)yš²!ou“ma˜y“c˜hoMÞose‘$an˜y“v˜ersion“ev˜er“published“(not“as“a“draft)“b˜y“the“F‘ÿereeŽ¡‘'¿«Soft•²!w“are–ÖUF‘ÿeoundation.‘m©If“the“DošMÞcumen²!t“sp˜ecies“that“a“proš²!xy‘ÖTcan“decide“whic˜h“futureŽ¡‘'¿«v²!ersions–é)of›é*this“License˜can“bMÞe“used,‘ùÚthat˜proš²!xy's“public“statemen˜t›é*of“acceptance˜of“aŽ¡‘'¿«v•²!ersion›¦fpMÞermanen“tly˜authorizes˜y“ou˜to˜c“hoMÞose˜that˜v“ersion˜for˜the˜DoMÞcumen“t.Ž¦‘‡“11.Ž‘'¿«RELICENSINGŽ¦‘'¿«\Massivš²!e–{"Multiauthor‘{#CollabMÞoration“Site"“(or“\MMC‘zìSite")“means“an˜y‘{#W‘ÿeorld“WideŽ¡‘'¿«W‘ÿeeb–Leservš²!er“that“publishes“cop˜yrigh˜table‘Lfw˜orks“and“also“pro˜vides“prominen˜t“facilitiesŽ¡‘'¿«for›M an²!yb•MÞo“dy˜to˜edit˜those˜w•²!orks.‘ÀEA‘MŠpublic˜wiki˜that‘MŸan“yb•MÞo“dy˜can˜edit˜is˜an˜example˜ofŽ¡‘'¿«sucš²!h–Ya“serv˜er.‘µA‘?\Massiv˜e‘XMultiauthor“CollabMÞoration"“(or“\MMC")‘>con˜tained“in“theŽ¡‘'¿«site–¦fmeans“anš²!y“set“of“cop˜yrigh˜table“w˜orks“th˜us“published“on“the“MMC“site.Ž¦‘'¿«\CC-BY-SA"‘8¤means–8Éthe‘8ÊCreativš²!e“Commons“A˜ttribution-Share‘8ÊAlik˜e“3.0‘8Êlicense“pub-Ž¡‘'¿«lished›8b•²!y‘8Creativ“e˜Commons–8CorpMÞoration,‘N(a˜not-for-prot“corpMÞoration˜with“a˜principalŽ¡‘'¿«place–òof“business“in“San“F‘ÿerancisco,‘7£California,‘7¢as“wš²!ell“as“future“cop˜yleft“v˜ersions“of“thatŽ¡‘'¿«license–¦fpublished“b²!y“that“same“organization.Ž¦‘'¿«\IncorpšMÞorate"–­zmeans“to“publish‘­yor“republish“a“Do˜cumen²!t,›¯?in“whole“or‘­yin“part,˜as“partŽ¡‘'¿«of–¦fanother“DoMÞcumen²!t.Ž¦‘'¿«An–&\MMC‘&<is“\eligible›&]for“relicensing"“if“it“is˜licensed“under“this“License,‘?øand˜if“all“w²!orksŽ¡‘'¿«that–
w²!ere›rst“published˜under“this˜License“somewhere“other˜than“this˜MMC,“andŽ¡‘'¿«subsequen²!tly–-incorpMÞorated›-in“whole“or˜in“part“in²!to˜the“MMC,˜(1)“had“no˜co•²!v“er‘-textsŽ¡‘'¿«or›¦fin•²!v‘ÿdDarian“t˜sections,˜and˜(2)˜w“ere˜th“us˜incorpMÞorated˜prior˜to˜No“v“em“bMÞer˜1,˜2008.Ž¦‘'¿«The–àÊopMÞerator›àËof“an˜MMC‘àzSite“ma²!y˜republish“an“MMC‘àzcon²!tained˜in“the˜site“underŽ¡‘'¿«CC-BY-SA‘ on– the› same“site“at˜an²!y“time“bMÞefore˜August“1,–¡[2009,“pro²!vided˜the‘ MMC‘ isŽ¡‘'¿«eligible–¦ffor“relicensing.ŽŽŒ‹D¿Ÿò‘GáAppšMÞendix–¦fA:“GNU“F‘ÿeree“Do˜cumen²!tation“License’Á:68ŽŽŽ ƒ33 ý ÌÍ‘Gë\ADDENDUM:–f@HošŒÌw“to“use“this“License“for“y˜our“dos3cumen˜tsŽŽŸ33‘GáT‘ÿeo–'òuse“this“License“in“a“doMÞcumenš²!t“y˜ou‘'óha˜v˜e“written,‘HUinclude“a“cop˜y“of“the“License“in“theŽ¤
33‘GdoMÞcumenš²!t–¦fand“put“the“follo˜wing“cop˜yrigh˜t“and“license“notices“just“after“the“title“page:Ž©
€‘8lÈÉCopyright‘¹–(C)–      s,óEßê<x       
                    130: cmsltt10ëEyear“your‘¹—nameÉ.Ž¤
                    131: €‘8lÈPermission–¹–is“granted“to“copy,“distribute“and/or“modify“this“documentŽ¡‘8lÈunder–¹–the“terms“of“the“GNU“Free“Documentation“License,“Version“1.3Ž¡‘8lÈor–¹–any“later“version“published“by“the“Free“Software“Foundation;Ž¡‘8lÈwith–¹–no“Invariant“Sections,“no“Front-Cover“Texts,“and“no“Back-CoverŽ¡‘8lÈTexts.‘        s,A–¹–copy“of“the“license“is“included“in“the“section“entitled“``GNUŽ¡‘8lÈFree–¹–Documentation“License''.ŽŽŸO33‘!GáIf›ÊÌy•²!ou‘ÊÍha“v“e˜In“v‘ÿdDarian“t›ÊÍSections,‘åF‘ÿeron“t-Co“v“er˜T‘ÿeexts‘ÊÌand˜Bac“k-Co“v“er–ÊÌT‘ÿeexts,‘æreplace“theŽ¡‘G\with‘©ä.–§‘.“.Ž‘lÏT‘ÿeexts."‘ÝÝline–¦fwith“this:Ž¦‘AßôÉwith–¹–the“Invariant“Sections“being“ëElist–¹—their“titlesÉ,‘¹–withŽ¤
                    132: €‘Aßôthe–¹–Front-Cover“Texts“being“ëElistÉ,“and“with“the“Back-Cover“TextsŽ¡‘Aßôbeing‘¹–ëElistÉ.ŽŽŸ%33‘!GáIf–:üyš²!ou“ha˜v˜e“In˜v‘ÿdDarian˜t“Sections“without“Co˜v˜er“T‘ÿeexts,‘`"or“some“other“com˜bination“of“theŽ¡‘Gthree,–¦fmerge“those“t•²!w“o›¦falternativ“es˜to˜suit˜the˜situation.ŽŸ33‘!GIf–Ý yš²!our“doMÞcumen˜t“con˜tains“non˜trivial‘Ýexamples“of“program“coMÞde,‘aw˜e“recommend“releasingŽ¡‘Gthese–-éexamples›-êin“parallel˜under“y•²!our˜c“hoice–-éof˜free“soft•²!w“are˜license,‘Êsuc“h–-éas˜the“GNUŽ¡‘GGeneral–¦fPublic“License,“to“pMÞermit“their“use“in“free“soft•²!w“are.ŽŽŒ‹EŸò‘GáConcept‘¦fIndex’&`¶)69ŽŽŽ ƒ33 ý ÌÍ‘GëSConcept‘z³IndexŽŽ òµ ÿ6¿s‘Gë\AŽ©ˆ‘Gó&o´‹Ç            cmr9¬application-spAÇecic–Tcompletion“functions‘&SØ‘ÅUó5ùž"      cmmi9²:Ž–p‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž‘…“¬46Ž¤*3‘Gë\CŽŸ‰‘G¬command‘Tediting‘&ar‘ÅU²:Ž–p‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž‘“,¬1Ž¡‘Gë\EŽ¦‘G¬editing–Tcommand“lines‘&¥‘ÅU²:Ž–p‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž‘J`¬1Ž¡‘Gë\IŽ¦‘G¬initialization–Tle,“readline‘&‘ÅU²:Ž–p‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž‘Mج4ŽŸ
                    133: †‘Gin¾9teraction,‘Treadline‘&ÿ«‘ÅU²:Ž–p‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž‘     1f¬1Ž¡‘Gë\KŽ¦‘G¬kill‘Tring‘ª‘ÅU²:Ž–p‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž‘      5e¬2ŽŽ ÿ6¿s’óáðkilling‘Ttext‘&å‘ÅU²:Ž–p‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž‘       º¬2Ž©"“—’óáðë\NŽ¤¼Œ’óáð¬notation,‘Treadline‘™&‘ÅU²:Ž–p‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž‘Ê»¬1ŽŸ"“˜’óáðë\RŽ¡’óáð¬readline,‘Tfunction‘¹ä‘ÅU²:Ž–p‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž‘러22Ž¦’óáðë\VŽ¡’óáð¬v‘ÿ|rariables,‘Treadline‘&ù‘ÅU²:Ž–p‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž‘        *Ò¬4Ž¦’óáðë\YŽ¡’óáð¬y¾9anking‘Ttext‘œ‘ÅU²:Ž–p‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž‘Í׬2ŽŽŽŽŒ‹F–8Ÿò‘GáF›ÿeunction–¦fand“V˜ariable“Index’&œÃ70ŽŽŽ ƒ33 ý ÌÍ‘GëSF›þaGunction–z³and“V˜ariable“IndexŽŽ _33 ýÆLÍ‘3œ‰£ÙÜ+ŽŽŸ
þ±‘GÉ_rl_digit_p‘&Ü;‘ÅU²:Ž–p‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž‘    
ö¬39Ž¤
                    134: ƒ»‘GÉ_rl_digit_value‘¡ï‘ÅU²:Ž–p‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž‘Óª¬39Ž¡‘GÉ_rl_lowercase_p‘¡ï‘ÅU²:Ž–p‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž‘Óª¬39ŽŸ
                    135: ƒº‘GÉ_rl_to_lower‘&¨‘ÅU²:Ž–p‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž‘¿c¬39Ž¡‘GÉ_rl_to_upper‘&¨‘ÅU²:Ž–p‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž‘¿c¬39Ž¡‘GÉ_rl_uppercase_p‘¡ï‘ÅU²:Ž–p‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž‘Óª¬38Ž©]Í‘Gë\AŽŸ
þ°‘GÉabort‘T(C-g)‘ $‘ÅU²:Ž–p‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž‘Ñ߬19Ž¡‘GÉaccept-line–T(Newline“or“Return)=Z‘ÅU²:Ž–p‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž‘o¬14Ž¦‘Gë\BŽŸ
þ°‘GÉbackward-char‘T(C-b)9Ä‘ÅU²:Ž–p‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž‘k¬14Ž¡‘GÉbackward-delete-char‘T(Rubout)‘&Dv‘ÅU²:Ž–p‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž‘v1¬16Ž¡‘GÉbackward-kill-line–T(C-x“Rubout)‘&yq‘ÅU²:Ž–p‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž‘«,¬17Ž¡‘GÉbackward-kill-word‘T(M-DEL)!÷‘ÅU²:Ž–p‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž‘S²¬17Ž¡‘GÉbackward-word‘T(M-b)9Ä‘ÅU²:Ž–p‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž‘k¬14Ž¡‘GÉbeginning-of-history‘T(M-<)!÷‘ÅU²:Ž–p‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž‘S²¬15Ž¡‘GÉbeginning-of-line‘T(C-a)‘&
°‘ÅU²:Ž–p‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž‘?k¬14Ž¡‘GbAÇell-st¾9yle‘&½‘ÅU²:Ž–p‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž‘îѬ4Ž¡‘Gbind-tt•¾9y-spAÇecial-c“hars‘&Ø‘ÅU²:Ž–p‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž‘A“¬5ŽŸÌ‘Gë\CŽŸ
þ±‘GÉcall-last-kbd-macro–T(C-x“e)‘¥…‘ÅU²:Ž–p‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž‘×@¬19Ž¡‘GÉcapitalize-word‘T(M-c)‘&ªÖ‘ÅU²:Ž–p‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž‘Ü‘¬17Ž©
                    136: ƒº‘GÉcharacter-search‘T(C-])‘&\C‘ÅU²:Ž–p‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž‘þ¬20Ž¡‘GÉcharacter-search-backward‘T(M-C-])
                    137: *‘ÅU²:Ž–p‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž‘;å¬20Ž¡‘GÉclear-screen‘T(C-l)‘ˆW‘ÅU²:Ž–p‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž‘º¬14Ž¡‘Gcolored-stats‘ŒJ‘ÅU²:Ž–p‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž‘¾¬5Ž¡‘Gcommen¾9t-bAÇegin‘&a‘ÅU²:Ž–p‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž‘’»¬5Ž¡‘GÉcomplete‘T(TAB)‘&£‘ÅU²:Ž–p‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž‘ô^¬18Ž¡‘Gcompletion-displa¾9y-width‘&Þl‘ÅU²:Ž–p‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž‘        &¬5Ž¡‘Gcompletion-ignore-case‘Ó‘ÅU²:Ž–p‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž‘}¬5Ž¡‘Gcompletion-map-caseSP‘ÅU²:Ž–p‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž‘…¬5Ž¡‘Gcompletion-prex-displa¾9y-length/Q‘ÅU²:Ž–p‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž‘a¬5Ž¡‘Gcompletion-query-items‘&WP‘ÅU²:Ž–p‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž‘‰¬5Ž¡‘Gcon•¾9v“ert-meta‘&Á‘ÅU²:Ž–p‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž‘ò»¬5Ž¡‘GÉcopy-backward-word‘T()‘&ªÖ‘ÅU²:Ž–p‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž‘Ü‘¬18Ž¦‘GÉcopy-forward-word‘T()‘&ùi‘ÅU²:Ž–p‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž‘    +$¬18Ž¡‘GÉcopy-region-as-kill‘T()‘&\C‘ÅU²:Ž–p‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž‘þ¬18ŽŸ]Í‘Gë\DŽŸ
þ°‘GÉdelete-char‘T(C-d)‘Öê‘ÅU²:Ž–p‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž‘¥¬16Ž¡‘GÉdelete-char-or-list‘T()‘&\C‘ÅU²:Ž–p‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž‘þ¬19Ž¡‘GÉdelete-horizontal-space‘T()!÷‘ÅU²:Ž–p‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž‘S²¬18Ž¡‘GÉdigit-argument–T(ëEM-0É,“ëEM-1É,“...Ž‘WjëEM--É)#¾‘ÅU²:Ž–p‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž‘Ux¬18Ž¡‘Gdisable-completion‘ÖÞ‘ÅU²:Ž–p‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž‘™¬6Ž¡‘GÉdo-uppercase-version–T(M-a,“M-b,“M-ëExÉ,“...Ž‘B)ŽŸ
                    138: €‘$ª?‘ÅU²:Ž–p‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž‘J»¬20ŽŽ ýÆLÍ’óáðÉdowncase-word‘T(M-l)9Ä‘ÅU²:Ž–p‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž‘k¬17Ž¤
                    139: ˜_’óáðÉdump-functions‘T()‘Öê‘ÅU²:Ž–p‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž‘¥¬20Ž¡’óáðÉdump-macros‘T()‘&£‘ÅU²:Ž–p‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž‘ô^¬21Ž¡’óáðÉdump-variables‘T()‘Öê‘ÅU²:Ž–p‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž‘¥¬21ŽŸÊ)’óáðë\EŽŸ)&’óáð¬editing-moAÇde‘&ë‘ÅU²:Ž–p‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž‘õe¬6Ž©
                    140: ˜^’óáðÉemacs-editing-mode‘T(C-e)‘¿‘ÅU²:Ž–p‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž‘ðج21Ž¡’óáðenable-k¾9eypad‘&r‘ÅU²:Ž–p‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž‘³-¬6Ž¡’óáðÉend-kbd-macro–T(C-x“))n¿‘ÅU²:Ž–p‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž‘ z¬19Ž¡’óáðëEend-of-file–TÉ(usually“C-d)‘&B¦‘ÅU²:Ž–p‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž‘t`¬16Ž¡’óáðÉend-of-history‘T(M->)‘&ùi‘ÅU²:Ž–p‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž‘     +$¬15Ž¡’óáðÉend-of-line‘T(C-e)‘Öê‘ÅU²:Ž–p‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž‘¥¬14Ž¡’óáðÉexchange-point-and-mark–T(C-x“C-x)‘ÜK‘ÅU²:Ž–p‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž‘¬20Ž¦’óáðexpand-tilde‘þV‘ÅU²:Ž–p‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž‘0¬6ŽŸŠ)’óáðë\FŽ©)&’óáðÉforward-backward-delete-char‘T()‘§P‘ÅU²:Ž–p‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž‘Ù¬16Ž¡’óáðÉforward-char‘T(C-f)‘ˆW‘ÅU²:Ž–p‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž‘º¬14Ž¡’óáðÉforward-search-history‘T(C-s)‘&“   ‘ÅU²:Ž–p‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž‘ÄĬ15Ž¡’óáðÉforward-word‘T(M-f)‘ˆW‘ÅU²:Ž–p‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž‘º¬14ŽŸŠ(’óáðë\HŽ¦’óáð¬history-preserv•¾9e-pAÇoin“te/‘ÅU²:Ž–p‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž‘–é¬6Ž¡’óáðÉhistory-search-backward‘T()!÷‘ÅU²:Ž–p‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž‘S²¬15Ž¡’óáðÉhistory-search-forward‘T()pŠ‘ÅU²:Ž–p‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž‘¢E¬15Ž¡’óáðhistory-size‘&0¼‘ÅU²:Ž–p‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž‘bv¬6ŽŸ
                    141: ˜^’óáðÉhistory-substr-search-backward‘T()
                    142: *‘ÅU²:Ž–p‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž‘;å¬15Ž¡’óáðÉhistory-substr-search-forward‘T()X½‘ÅU²:Ž–p‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž‘Šx¬15Ž¡’óáðhorizon¾9tal-scroll-moAÇde‘&Ù‘ÅU²:Ž–p‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž‘       
                    143: Ñ¬6ŽŸˆæ’óáðë\IŽ¦’óáð¬input-meta‘&£9‘ÅU²:Ž–p‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž‘Ôó¬7Ž¡’óáðÉinsert-comment‘T(M-#)‘&ùi‘ÅU²:Ž–p‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž‘      +$¬20Ž¡’óáðÉinsert-completions‘T(M-*)‘¿‘ÅU²:Ž–p‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž‘ðج19Ž¡’óáðisearc¾9h-terminators‘&®ƒ‘ÅU²:Ž–p‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž‘à>¬7ŽŸˆæ’óáðë\KŽ¦’óáð¬k¾9eymap9r‘ÅU²:Ž–p‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž‘k-¬7Ž¡’óáðÉkill-line‘T(C-k)‘&t‘ÅU²:Ž–p‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž‘¥Ë¬17Ž¡’óáðÉkill-region‘T()‘&£‘ÅU²:Ž–p‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž‘ô^¬18ŽŸ
                    144: ˜^’óáðÉkill-whole-line‘T()‘ˆW‘ÅU²:Ž–p‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž‘º¬17Ž¡’óáðÉkill-word‘T(M-d)‘&t‘ÅU²:Ž–p‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž‘¥Ë¬17ŽŸŠ(’óáðë\MŽ¦’óáð¬mark-moAÇdied-lines‘’m‘ÅU²:Ž–p‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž‘Ä'¬7Ž¡’óáðmark-symlink¾9ed-directoriesDK‘ÅU²:Ž–p‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž‘v¬7Ž¡’óáðmatc¾9h-hidden-les‘&{P‘ÅU²:Ž–p‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž‘­
                    145: ¬7ŽŽŽŽŒ‹G£HŸò‘GáF›ÿeunction–¦fand“V˜ariable“Index’&œÃ71ŽŽŽ ƒ33 ý ÌÍ‘GÉmenu-complete‘T()‘&%}‘ÅU²:Ž–p‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž‘W8¬19Ž¤
                    146: „:‘GÉmenu-complete-backward‘T()pŠ‘ÅU²:Ž–p‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž‘¢E¬19Ž¡‘Gmen•¾9u-complete-displa“y-prex‘&Úm‘ÅU²:Ž–p‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž‘        '¬8Ž¡‘Gmeta-
ag‘&«‘ÅU²:Ž–p‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž‘Qe¬7ŽŸ g‘Gë\NŽŸ
ÿµ‘GÉnext-history‘T(C-n)‘ˆW‘ÅU²:Ž–p‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž‘º¬15Ž¡‘GÉnon-incremental-forward-search-history‘T(M-n)Ž©
                    147: €‘$ª?‘ÅU²:Ž–p‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž‘J»¬15Ž¡‘GÉnon-incremental-reverse-search-history‘T(M-p)Ž¦‘$ª?‘ÅU²:Ž–p‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž‘J»¬15ŽŸ$‘Gë\OŽ©
ÿµ‘G¬output-meta‘Ýä‘ÅU²:Ž–p‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž‘ž¬8Ž¡‘GÉoverwrite-mode‘T()‘Öê‘ÅU²:Ž–p‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž‘¥¬17ŽŸ f‘Gë\PŽ¦‘G¬page-completions‘&œ3‘ÅU²:Ž–p‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž‘Íî¬8ŽŸ
                    148: „9‘GÉpossible-completions‘T(M-?)!÷‘ÅU²:Ž–p‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž‘S²¬19Ž¡‘GÉprefix-meta‘T(ESC)‘Öê‘ÅU²:Ž–p‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž‘¥¬20Ž¡‘GÉprevious-history‘T(C-p)‘&\C‘ÅU²:Ž–p‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž‘þ¬14Ž¡‘GÉprint-last-kbd-macro‘T()‘&
°‘ÅU²:Ž–p‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž‘?k¬19Ž¤`g‘Gë\QŽ¦‘GÉquoted-insert–T(C-q“or“C-v)‘&Æ9‘ÅU²:Ž–p‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž‘÷ô¬16Ž¡‘Gë\RŽ¦‘GÉre-read-init-file–T(C-x“C-r)‘¥…‘ÅU²:Ž–p‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž‘×@¬19Ž¤
                    149: „:‘GÉreadline‘¹¼‘ÅU²:Ž–p‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž‘ëw¬22Ž¡‘GÉredraw-current-line‘T()‘&\C‘ÅU²:Ž–p‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž‘þ¬14Ž¡‘GÉreverse-search-history‘T(C-r)‘&“        ‘ÅU²:Ž–p‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž‘ÄĬ15Ž¡‘Grev¾9ert-all-at-newline‘&ÞV‘ÅU²:Ž–p‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž‘       ¬8Ž¡‘GÉrevert-line‘T(M-r)‘Öê‘ÅU²:Ž–p‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž‘¥¬20Ž¡‘GÉrl_add_defun‘&¨‘ÅU²:Ž–p‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž‘¿c¬30Ž¡‘GÉrl_add_funmap_entry‘&uÛ‘ÅU²:Ž–p‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž‘§–¬34Ž¡‘GÉrl_add_undo‘&Ü;‘ÅU²:Ž–p‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž‘    
ö¬34Ž©
                    150: „9‘GÉrl_alphabetic‘&?‘ÅU²:Ž–p‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž‘pЬ38Ž¡‘GÉrl_already_prompted‘&uÛ‘ÅU²:Ž–p‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž‘§–¬26Ž¡‘GÉrl_attempted_completion_function‘&”Ô‘ÅU²:Ž–p‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž‘Ƭ48Ž¡‘GÉrl_attempted_completion_over‘Àè‘ÅU²:Ž–p‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž‘ò£¬52Ž¡‘GÉrl_basic_quote_characters‘&¬¡‘ÅU²:Ž–p‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž‘Þ\¬50Ž¡‘GÉrl_basic_word_break_characters#‘ÅU²:Ž–p‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž‘U}¬50Ž¡‘GÉrl_begin_undo_group‘&uÛ‘ÅU²:Ž–p‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž‘§–¬34Ž¡‘GÉrl_bind_key‘&Ü;‘ÅU²:Ž–p‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž‘     
ö¬31Ž¡‘GÉrl_bind_key_if_unbound‘Š"‘ÅU²:Ž–p‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž‘»Ý¬32Ž¡‘GÉrl_bind_key_if_unbound_in_maprU‘ÅU²:Ž–p‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž‘¤¬32Ž¡‘GÉrl_bind_key_in_map‘&Än‘ÅU²:Ž–p‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž‘ö)¬31Ž¦‘GÉrl_bind_keyseq‘ð‚‘ÅU²:Ž–p‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž‘"=¬32Ž¡‘GÉrl_bind_keyseq_if_unbound‘&¬¡‘ÅU²:Ž–p‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž‘Þ\¬32Ž¡‘GÉrl_bind_keyseq_if_unbound_in_map‘&”Ô‘ÅU²:Ž–p‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž‘Ƭ32Ž¡‘GÉrl_bind_keyseq_in_map‘ص‘ÅU²:Ž–p‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž‘
                    151: p¬32Ž¡‘GÉrl_binding_keymapÉ‘ÅU²:Ž–p‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž‘6„¬28Ž¡‘GÉrl_callback_handler_install‘&{‘ÅU²:Ž–p‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž‘A6¬40ŽŽ ý ÌÍ’óáðÉrl_callback_handler_remove‘&^‘ÅU²:Ž–p‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž‘ɬ40Ž¤
                    152: §’óáðÉrl_callback_read_char‘ص‘ÅU²:Ž–p‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž‘
                    153: p¬40Ž¡’óáðÉrl_catch_signalsS\‘ÅU²:Ž–p‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž‘…¬44Ž¡’óáðÉrl_catch_sigwinchÉ‘ÅU²:Ž–p‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž‘6„¬44Ž©
                    154: §’óáðÉrl_change_environment‘ص‘ÅU²:Ž–p‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž‘
                    155: p¬44Ž¡’óáðÉrl_char_is_quoted_p‘&uÛ‘ÅU²:Ž–p‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž‘§–¬48Ž¡’óáðÉrl_cleanup_after_signal;‘ÅU²:Ž–p‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž‘mJ¬45Ž¡’óáðÉrl_clear_historyS\‘ÅU²:Ž–p‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž‘…¬40Ž¡’óáðÉrl_clear_messageS\‘ÅU²:Ž–p‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž‘…¬35Ž¡’óáðÉrl_clear_pending_input‘Š"‘ÅU²:Ž–p‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž‘»Ý¬37Ž¡’óáðÉrl_clear_signalsS\‘ÅU²:Ž–p‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž‘…¬45Ž¦’óáðÉrl_complete‘“X‘ÅU²:Ž–p‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž‘Ŭ46,‘T47Ž¡’óáðÉrl_complete_internal‘&'H‘ÅU²:Ž–p‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž‘Y¬47Ž¡’óáðÉrl_completer_quote_charactersrU‘ÅU²:Ž–p‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž‘¤¬50Ž¡’óáðÉrl_completer_word_break_characters‘÷®‘ÅU²:Ž–p‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž‘)i¬50Ž¡’óáðÉrl_completion_append_character#‘ÅU²:Ž–p‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž‘U}¬51Ž¡’óáðÉrl_completion_display_matches_hook‘÷®‘ÅU²:Ž–p‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž‘)i¬50Ž¡’óáðÉrl_completion_entry_function‘&†=‘ÅU²:Ž–p‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž‘·ø¬46,‘T48Ž¦’óáðÉrl_completion_found_quote‘&¬¡‘ÅU²:Ž–p‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž‘Þ\¬51Ž¡’óáðÉrl_completion_invoking_key‘&^‘ÅU²:Ž–p‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž‘ɬ52Ž¡’óáðÉrl_completion_mark_symlink_dirs‘&ãg‘ÅU²:Ž–p‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž‘     "¬51Ž¡’óáðÉrl_completion_matches‘ص‘ÅU²:Ž–p‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž‘
                    156: p¬47Ž¡’óáðÉrl_completion_mode‘&Än‘ÅU²:Ž–p‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž‘ö)¬47Ž¡’óáðÉrl_completion_query_items‘&¬¡‘ÅU²:Ž–p‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž‘Þ\¬51Ž¡’óáðÉrl_completion_quote_characterrU‘ÅU²:Ž–p‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž‘¤¬51Ž¦’óáðÉrl_completion_suppress_appendrU‘ÅU²:Ž–p‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž‘¤¬51Ž¡’óáðÉrl_completion_suppress_quote‘Àè‘ÅU²:Ž–p‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž‘ò£¬51Ž¡’óáðÉrl_completion_type‘&Än‘ÅU²:Ž–p‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž‘ö)¬52Ž¡’óáðÉrl_completion_word_break_hookrU‘ÅU²:Ž–p‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž‘¤¬50Ž¡’óáðÉrl_copy_keymap‘ð‚‘ÅU²:Ž–p‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž‘"=¬31Ž¡’óáðÉrl_copy_text‘&¨‘ÅU²:Ž–p‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž‘¿c¬36Ž¡’óáðÉrl_crlf‘&O‘ÅU²:Ž–p‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž‘:
                    157: ¬35Ž¡’óáðÉrl_delete_text‘ð‚‘ÅU²:Ž–p‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž‘"=¬36Ž¦’óáðÉrl_deprep_term_function;‘ÅU²:Ž–p‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž‘mJ¬28Ž¡’óáðÉrl_deprep_terminal‘&Än‘ÅU²:Ž–p‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž‘ö)¬37Ž¡’óáðÉrl_ding‘&O‘ÅU²:Ž–p‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž‘:
                    158: ¬38Ž¡’óáðÉrl_directory_completion_hook‘Àè‘ÅU²:Ž–p‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž‘ò£¬49Ž¡’óáðÉrl_directory_rewrite_hook;‘&^‘ÅU²:Ž–p‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž‘ɬ49Ž¡’óáðÉrl_discard_keymapÉ‘ÅU²:Ž–p‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž‘6„¬31Ž¡’óáðÉrl_dispatching‘ð‚‘ÅU²:Ž–p‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž‘"=¬25Ž¦’óáðÉrl_display_match_list‘ص‘ÅU²:Ž–p‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž‘
                    159: p¬38Ž¡’óáðÉrl_display_promptÉ‘ÅU²:Ž–p‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž‘6„¬26Ž¡’óáðÉrl_do_undo–‘ÅU²:Ž–p‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž‘NQ¬34Ž¡’óáðÉrl_done‘&O‘ÅU²:Ž–p‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž‘:
                    160: ¬25Ž¡’óáðÉrl_echo_signal_char‘&uÛ‘ÅU²:Ž–p‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž‘§–¬45Ž¡’óáðÉrl_editing_mode‘¡ï‘ÅU²:Ž–p‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž‘Óª¬30Ž¡’óáðÉrl_end‘&Vâ‘ÅU²:Ž–p‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž‘ˆ¬25Ž¦’óáðÉrl_end_undo_groupÉ‘ÅU²:Ž–p‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž‘6„¬34Ž¡’óáðÉrl_erase_empty_line‘&uÛ‘ÅU²:Ž–p‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž‘§–¬25Ž¡’óáðÉrl_event_hook‘&?‘ÅU²:Ž–p‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž‘pЬ27Ž¡’óáðÉrl_execute_next‘¡ï‘ÅU²:Ž–p‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž‘Óª¬37Ž¡’óáðÉrl_executing_keyS\‘ÅU²:Ž–p‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž‘…¬28Ž¡’óáðÉrl_executing_keymap‘&uÛ‘ÅU²:Ž–p‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž‘§–¬28Ž¡’óáðÉrl_executing_keyseq‘&uÛ‘ÅU²:Ž–p‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž‘§–¬28Ž¦’óáðÉrl_executing_macro‘&Än‘ÅU²:Ž–p‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž‘ö)¬28Ž¡’óáðÉrl_expand_promptS\‘ÅU²:Ž–p‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž‘…¬36Ž¡’óáðÉrl_explicit_arg‘¡ï‘ÅU²:Ž–p‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž‘Óª¬30Ž¡’óáðÉrl_extend_line_buffer‘ص‘ÅU²:Ž–p‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž‘
                    161: p¬38ŽŽŽŽŒ‹Hî—Ÿò‘GáF›ÿeunction–¦fand“V˜ariable“Index’&œÃ72ŽŽŽ ƒ33 ý ÌÍ‘GÉrl_filename_completion_desired#‘ÅU²:Ž–p‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž‘U}¬52Ž¤
                    162: §‘GÉrl_filename_completion_function‘&ãg‘ÅU²:Ž–p‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž‘        "¬47Ž¡‘GÉrl_filename_dequoting_function#‘ÅU²:Ž–p‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž‘U}¬48Ž¡‘GÉrl_filename_quote_characters‘Àè‘ÅU²:Ž–p‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž‘ò£¬50Ž©
                    163: §‘GÉrl_filename_quoting_desired‘&{‘ÅU²:Ž–p‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž‘A6¬52Ž¡‘GÉrl_filename_quoting_function‘Àè‘ÅU²:Ž–p‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž‘ò£¬48Ž¡‘GÉrl_filename_rewrite_hook‘&û4‘ÅU²:Ž–p‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž‘    ,ï¬49Ž¡‘GÉrl_filename_stat_hook‘ص‘ÅU²:Ž–p‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž‘
                    164: p¬49Ž¡‘GÉrl_forced_update_display‘&û4‘ÅU²:Ž–p‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž‘   ,ï¬35Ž¡‘GÉrl_free‘&O‘ÅU²:Ž–p‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž‘:
                    165: ¬38Ž¡‘GÉrl_free_keymap‘ð‚‘ÅU²:Ž–p‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž‘"=¬31Ž¦‘GÉrl_free_line_state‘&Än‘ÅU²:Ž–p‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž‘ö)¬45Ž¡‘GÉrl_free_undo_listÉ‘ÅU²:Ž–p‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž‘6„¬34Ž¡‘GÉrl_function_dumper‘&Än‘ÅU²:Ž–p‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž‘ö)¬33Ž¡‘GÉrl_function_of_keyseq‘ص‘ÅU²:Ž–p‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž‘
                    166: p¬33Ž¡‘GÉrl_funmap_names‘¡ï‘ÅU²:Ž–p‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž‘Óª¬33Ž¡‘GÉrl_generic_bind‘¡ï‘ÅU²:Ž–p‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž‘Óª¬33Ž¡‘GÉrl_get_keymap‘&?‘ÅU²:Ž–p‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž‘pЬ31Ž¦‘GÉrl_get_keymap_by_name‘ص‘ÅU²:Ž–p‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž‘
                    167: p¬31Ž¡‘GÉrl_get_keymap_name‘&Än‘ÅU²:Ž–p‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž‘ö)¬31Ž¡‘GÉrl_get_screen_size‘&Än‘ÅU²:Ž–p‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž‘ö)¬45Ž¡‘GÉrl_get_termcap‘ð‚‘ÅU²:Ž–p‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž‘"=¬39Ž¡‘GÉrl_getc‘&O‘ÅU²:Ž–p‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž‘:
                    168: ¬37Ž¡‘GÉrl_getc_functionS\‘ÅU²:Ž–p‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž‘…¬27Ž¡‘GÉrl_gnu_readline_pÉ‘ÅU²:Ž–p‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž‘6„¬26Ž¦‘GÉrl_ignore_completion_duplicates‘&ãg‘ÅU²:Ž–p‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž‘  "¬51Ž¡‘GÉrl_ignore_some_completions_function‘©‘ÅU²:Ž–p‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž‘ÚÖ¬49Ž¡‘GÉrl_inhibit_completion‘ص‘ÅU²:Ž–p‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž‘
                    169: p¬52Ž¡‘GÉrl_initialize‘&?‘ÅU²:Ž–p‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž‘pЬ38Ž¡‘GÉrl_input_available_hook;‘ÅU²:Ž–p‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž‘mJ¬27Ž¡‘GÉrl_insert_completions‘ص‘ÅU²:Ž–p‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž‘
                    170: p¬47Ž¡‘GÉrl_insert_text‘ð‚‘ÅU²:Ž–p‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž‘"=¬36Ž¡‘GÉrl_instream‘&Ü;‘ÅU²:Ž–p‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž‘    
ö¬26Ž¦‘GÉrl_invoking_keyseqs‘&uÛ‘ÅU²:Ž–p‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž‘§–¬33Ž¡‘GÉrl_invoking_keyseqs_in_map‘&^‘ÅU²:Ž–p‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž‘ɬ33Ž¡‘GÉrl_key_sequence_length‘Š"‘ÅU²:Ž–p‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž‘»Ý¬28Ž¡‘GÉrl_kill_text‘&¨‘ÅU²:Ž–p‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž‘¿c¬36Ž¡‘GÉrl_last_func‘&¨‘ÅU²:Ž–p‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž‘¿c¬27Ž¡‘GÉrl_library_version‘&Än‘ÅU²:Ž–p‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž‘ö)¬26Ž¡‘GÉrl_line_buffer‘ð‚‘ÅU²:Ž–p‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž‘"=¬25Ž¦‘GÉrl_list_funmap_names‘&'H‘ÅU²:Ž–p‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž‘Y¬33Ž¡‘GÉrl_macro_bind‘&?‘ÅU²:Ž–p‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž‘pЬ39Ž¡‘GÉrl_macro_dumper‘¡ï‘ÅU²:Ž–p‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž‘Óª¬39Ž¡‘GÉrl_make_bare_keymap‘&uÛ‘ÅU²:Ž–p‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž‘§–¬30Ž¡‘GÉrl_make_keymap‘ð‚‘ÅU²:Ž–p‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž‘"=¬31Ž¡‘GÉrl_mark‘&O‘ÅU²:Ž–p‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž‘:
                    171: ¬25Ž¡‘GÉrl_message–‘ÅU²:Ž–p‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž‘NQ¬35Ž¦‘GÉrl_modifying‘&¨‘ÅU²:Ž–p‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž‘¿c¬34Ž¡‘GÉrl_named_functionÉ‘ÅU²:Ž–p‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž‘6„¬33Ž¡‘GÉrl_num_chars_to_read‘&'H‘ÅU²:Ž–p‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž‘Y¬25Ž¡‘GÉrl_numeric_arg‘ð‚‘ÅU²:Ž–p‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž‘"=¬30Ž¡‘GÉrl_on_new_line‘ð‚‘ÅU²:Ž–p‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž‘"=¬35Ž¡‘GÉrl_on_new_line_with_prompt‘&^‘ÅU²:Ž–p‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž‘ɬ35Ž¡‘GÉrl_outstream‘&¨‘ÅU²:Ž–p‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž‘¿c¬26Ž¦‘GÉrl_parse_and_bindÉ‘ÅU²:Ž–p‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž‘6„¬33Ž¡‘GÉrl_pending_inputS\‘ÅU²:Ž–p‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž‘…¬25Ž¡‘GÉrl_point‘¹¼‘ÅU²:Ž–p‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž‘ëw¬25Ž¡‘GÉrl_possible_completions;‘ÅU²:Ž–p‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž‘mJ¬47ŽŽ ý ÌÍ’óáðÉrl_pre_input_hookÉ‘ÅU²:Ž–p‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž‘6„¬27Ž¤
                    172: “’óáðÉrl_prefer_env_winsize‘ص‘ÅU²:Ž–p‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž‘
                    173: p¬26Ž©
                    174: “’óáðÉrl_prep_term_function‘ص‘ÅU²:Ž–p‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž‘
                    175: p¬28Ž¡’óáðÉrl_prep_terminalS\‘ÅU²:Ž–p‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž‘…¬37Ž¦’óáðÉrl_promptk)‘ÅU²:Ž–p‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž‘œä¬26Ž¡’óáðÉrl_push_macro_input‘&uÛ‘ÅU²:Ž–p‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž‘§–¬36Ž¡’óáðÉrl_read_init_fileÉ‘ÅU²:Ž–p‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž‘6„¬33Ž¦’óáðÉrl_read_key‘&Ü;‘ÅU²:Ž–p‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž‘ 
ö¬36Ž¡’óáðÉrl_readline_nameS\‘ÅU²:Ž–p‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž‘…¬26Ž¡’óáðÉrl_readline_stateÉ‘ÅU²:Ž–p‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž‘6„¬28Ž¦’óáðÉrl_readline_version‘&uÛ‘ÅU²:Ž–p‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž‘§–¬26Ž¡’óáðÉrl_redisplay‘&¨‘ÅU²:Ž–p‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž‘¿c¬35Ž¦’óáðÉrl_redisplay_function‘ص‘ÅU²:Ž–p‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž‘
                    176: p¬27Ž¡’óáðÉrl_replace_line‘¡ï‘ÅU²:Ž–p‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž‘Óª¬38Ž¡’óáðÉrl_reset_after_signal‘ص‘ÅU²:Ž–p‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž‘
                    177: p¬45Ž¦’óáðÉrl_reset_line_state‘&uÛ‘ÅU²:Ž–p‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž‘§–¬35Ž¡’óáðÉrl_reset_screen_size‘&'H‘ÅU²:Ž–p‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž‘Y¬45Ž¡’óáðÉrl_reset_terminalÉ‘ÅU²:Ž–p‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž‘6„¬37Ž¦’óáðÉrl_resize_terminal‘&Än‘ÅU²:Ž–p‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž‘ö)¬45Ž¡’óáðÉrl_restore_promptÉ‘ÅU²:Ž–p‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž‘6„¬36Ž¦’óáðÉrl_restore_stateS\‘ÅU²:Ž–p‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž‘…¬38Ž¡’óáðÉrl_save_prompt‘ð‚‘ÅU²:Ž–p‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž‘"=¬35Ž¡’óáðÉrl_save_state‘&?‘ÅU²:Ž–p‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž‘pЬ38Ž¦’óáðÉrl_set_key–‘ÅU²:Ž–p‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž‘NQ¬32Ž¡’óáðÉrl_set_keyboard_input_timeoutrU‘ÅU²:Ž–p‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž‘¤¬37Ž¦’óáðÉrl_set_keymap‘&?‘ÅU²:Ž–p‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž‘pЬ31Ž¡’óáðÉrl_set_paren_blink_timeout‘&^‘ÅU²:Ž–p‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž‘ɬ39Ž¡’óáðÉrl_set_prompt‘&?‘ÅU²:Ž–p‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž‘pЬ36Ž¦’óáðÉrl_set_screen_size‘&Än‘ÅU²:Ž–p‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž‘ö)¬45Ž¡’óáðÉrl_set_signals‘ð‚‘ÅU²:Ž–p‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž‘"=¬45Ž¡’óáðÉrl_show_char‘&¨‘ÅU²:Ž–p‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž‘¿c¬35Ž¦’óáðÉrl_signal_event_hook‘&'H‘ÅU²:Ž–p‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž‘Y¬27Ž¡’óáðÉrl_sort_completion_matches‘&^‘ÅU²:Ž–p‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž‘ɬ52Ž¦’óáðÉrl_special_prefixes‘&uÛ‘ÅU²:Ž–p‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž‘§–¬50Ž¡’óáðÉrl_startup_hook‘¡ï‘ÅU²:Ž–p‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž‘Óª¬27Ž¡’óáðÉrl_stuff_char‘&?‘ÅU²:Ž–p‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž‘pЬ37Ž¦’óáðÉrl_terminal_nameS\‘ÅU²:Ž–p‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž‘…¬26Ž¡’óáðÉrl_tty_set_default_bindings‘&{‘ÅU²:Ž–p‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž‘A6¬37Ž¦’óáðÉrl_tty_unset_default_bindingsrU‘ÅU²:Ž–p‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž‘¤¬37Ž¡’óáðÉrl_unbind_command_in_map‘&û4‘ÅU²:Ž–p‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž‘       ,ï¬32Ž¡’óáðÉrl_unbind_function_in_map‘&¬¡‘ÅU²:Ž–p‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž‘Þ\¬32Ž¦’óáðÉrl_unbind_key‘&?‘ÅU²:Ž–p‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž‘pЬ32Ž¡’óáðÉrl_unbind_key_in_map‘&'H‘ÅU²:Ž–p‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž‘Y¬32Ž¡’óáðÉrl_username_completion_function‘&ãg‘ÅU²:Ž–p‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž‘    "¬48Ž¦’óáðÉrl_variable_bindS\‘ÅU²:Ž–p‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž‘…¬39Ž¡’óáðÉrl_variable_dumper‘&Än‘ÅU²:Ž–p‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž‘ö)¬39Ž¦’óáðÉrl_variable_valueÉ‘ÅU²:Ž–p‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž‘6„¬39ŽŸŽ’óáðë\SŽŸ’óáðÉself-insert–T(a,“b,“A,“1,“!,“...Ž‘B)Vò‘ÅU²:Ž–p‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž‘ˆ­¬16Ž¡’óáðÉset-mark‘T(C-@)‘&£‘ÅU²:Ž–p‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž‘ô^¬20Ž¦’óáðsho•¾9w-all-if-am“biguous‘ò‘ÅU²:Ž–p‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž‘#ˬ8Ž¡’óáðsho¾9w-all-if-unmoAÇdied‘&ÿO‘ÅU²:Ž–p‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž‘    1
                    178: ¬8Ž¡’óáðsho¾9w-moAÇde-in-promptQ‘ÅU²:Ž–p‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž‘‚Ò¬8Ž¦’óáðskip-completed-text‘”¦‘ÅU²:Ž–p‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž‘Æ`¬8Ž¡’óáðÉskip-csi-sequence‘T()‘&ùi‘ÅU²:Ž–p‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž‘        +$¬20Ž¡’óáðÉstart-kbd-macro–T(C-x“()‘&ßÑ‘ÅU²:Ž–p‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž‘        Œ¬19ŽŽŽŽŒ‹ILUŸò‘GáF›ÿeunction–¦fand“V˜ariable“Index’&œÃ73ŽŽŽ ƒ33 þ$É” ÿ|9‘Gë\TŽ©
ÿ¡‘GÉtab-insert‘T(M-TAB)‘ˆW‘ÅU²:Ž–p‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž‘º¬16Ž¤
                    179: „0‘GÉtilde-expand‘T(M-~)‘ˆW‘ÅU²:Ž–p‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž‘º¬20Ž¡‘GÉtranspose-chars‘T(C-t)‘&ªÖ‘ÅU²:Ž–p‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž‘Ü‘¬16Ž¡‘GÉtranspose-words‘T(M-t)‘&ªÖ‘ÅU²:Ž–p‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž‘Ü‘¬17ŽŸ`4‘Gë\UŽ¦‘GÉundo–T(C-_“or“C-x“C-u)É‘ÅU²:Ž–p‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž‘6„¬20ŽŸ
                    180: „1‘GÉuniversal-argument‘T()‘&ªÖ‘ÅU²:Ž–p‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž‘Ü‘¬18Ž¡‘GÉunix-filename-rubout‘T()‘&
°‘ÅU²:Ž–p‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž‘?k¬18Ž¡‘GÉunix-line-discard‘T(C-u)‘&
°‘ÅU²:Ž–p‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž‘?k¬17Ž¡‘GÉunix-word-rubout‘T(C-w)‘&\C‘ÅU²:Ž–p‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž‘þ¬17ŽŽ ÿ|9’óáðÉupcase-word‘T(M-u)‘Öê‘ÅU²:Ž–p‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž‘¥¬17ŽŸWë’óáðë\VŽŸ`\’óáðÉvi-editing-mode‘T(M-C-j)‘&
°‘ÅU²:Ž–p‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž‘?k¬21Ž¤
                    181: ³_’óáðvisible-stats%¶‘ÅU²:Ž–p‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž‘Wq¬9ŽŸ¨’óáðë\YŽŸ`[’óáðÉyank‘T(C-y)‘î·‘ÅU²:Ž–p‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž‘ r¬18ŽŸ
                    182: ³`’óáðÉyank-last-arg–T(M-.“or“M-_)‘&Æ9‘ÅU²:Ž–p‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž‘÷ô¬16Ž¡’óáðÉyank-nth-arg‘T(M-C-y)‘&ùi‘ÅU²:Ž–p‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž‘   +$¬15Ž¡’óáðÉyank-pop‘T(M-y)‘&£‘ÅU²:Ž–p‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž‘ô^¬18ŽŽŽŽŒøºù&ƒ’À;è…ïÿ&ïÿMóeÂÖN 
#×cmbx12óc·ág£ffcmmi12ó\ÂÖN ffcmbx12óSÂÖN G®cmbx12óJÂÖN ¼jcmbx12óEßê<x    
                    183: cmsltt10ó@ßê<x
                    184: cmtt10ó?!",š
                    185: ó3
                    186: cmsy10ó> b>
                    187: ó3
                    188: cmmi10ó=ßê<x
                    189: ó3
                    190: cmsltt10ó<Œ-ø
                    191: ó3
                    192: cmcsc10ó;m#½R
                    193: ó3
                    194: cmss10ó:p®0J
                    195: ó3
                    196: cmsl10ó9ý':
                    197: ó3
                    198: cmti10ó7ßê<x
                    199: ó3
                    200: cmtt10ó6Kñ`y
                    201: ó3
                    202: cmr10óߤN            cmtt9ó5ùž"             cmmi9ó&o´‹Ç             cmr9óKñ`y
                    203: 
                    204: cmr10ùËAßßßßß

FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>