Admin Panel

����;� TeX output 2005.12.06:1546�����������3*����鍑G�F��N��jcmbx12�FGNU�ƧReadline�Library��G�0����������G<�2K�`y
�3
cmr10�Edition��f5.1-b�M�eta1,�for��3��<x
�3
cmtt10�Readline�Library��V��eersion�5.1-b�eta1.��
��g�0No��!v�em�b�M�er��f2005����q��X��N�ffcmbx12�XChet�ffRamey���f,�Case�W�estern�Reserv���e�Univ�ersit�y���Brian�ffF���fo���x,�F�ree�Soft���w�are�ffF�oundation���̉������*������3*������G�This���man��!ual�describ�M�es�the�GNU���Readline�Library�(v�ersion�5.1-b�M�eta1,��11�No�v�em�b�M�er�2005),��
33��Ga��library�whic��!h�aids�in�the�consistency�of�user�in�terface�across�discrete�programs�whic�h����Gpro��!vide��fa�command�line�in�terface.��33��GCop��!yrigh�t���������c��������f�;!",�
�3
cmsy10�
�����@�1988-2004��fF��eree�Soft��!w�are��fF�oundation,�Inc.����GP��!ermission�޲is�gran�ted�to�mak�e�and�distribute�v�erbatim�copies�of�this�man�ual�pro�vided�the��
33��Gcop��!yrigh�t��fnotice�and�this�p�M�ermission�notice�are�preserv��!ed�on�all�copies.����.��P��!ermission�:�is�gran�ted�to�cop�y��e,�_�distribute�and/or�mo�M�dify�this�do�cumen��!t�under����.��the���terms�of�the�GNU��JF��eree�Do�M�cumen��!tation�License,���V�ersion�1.1�or�an��!y�later����.��v��!ersion�I�published�b�y�the�F��eree�Soft�w�are�F��eoundation;�h�with�no�In�v��dDarian�t�Sections,����.��with���the�F��eron��!t-Co�v�er���texts�b�M�eing�\A���GNU�Man��!ual,"��and���with�the�Bac�k-Co�v�er����.��T��eexts��Was�in�(a)�b�M�elo��!w.���A��Gcop�y��Wof�the�license�is�included�in�the�section�en��!titled����.��\GNU��fF��eree�Do�M�cumen��!tation�License."����.��(a)��XThe�FSF's�Bac��!k-Co�v�er��XT��eext�is:���\Y�ou�ha��!v�e��Xfreedom�to�cop��!y�and�mo�M�dify����.��this��GNU��wMan��!ual,��Qlik�e�GNU��wsoft�w�are.��DCopies�published�b�y�the�F��eree�Soft�w�are����.��F��eoundation��fraise�funds�for�GNU�dev��!elopmen�t."��ff��GPublished��fb��!y�the�F��eree�Soft�w�are�F��eoundation����G59��fT��eemple�Place,�Suite�330,����GBoston,��fMA�02111-1307����GUSA����������������T�i�����3*�����֍��G�O��N�G�cmbx12�OT��aGable�z�of�Con��u�ten�ts���)33��G�X1�32Command�ffLine�Editing��j��32�YF
C�ff
cmbxti10�Y.�����32.����32.����32.����32.����32.����32.����32.����32.����32.����32.����32.����32.����32.����32.����32.����32.����32.����32.����32.��m��X1�����6G�1.1�
�5In��!tro�M�duction��fto�Line�Editing�	\����5�':
�3
cmti10�.��.ԍ��.�����.�����.�����.�����.�����.�����.�����.�����.�����.�����.�����.�����.�����.�����.�����.�����.�����.�����.�����.�����.�����.�����.�����.�����.�����.�����.�����.��
ތ�1��
33��6G1.2�
�5Readline��fIn��!teraction��썑��.��.ԍ��.�����.�����.�����.�����.�����.�����.�����.�����.�����.�����.�����.�����.�����.�����.�����.�����.�����.�����.�����.�����.�����.�����.�����.�����.�����.�����.�����.�����.�����.�����.�����.�����.�����.�����.�����.��	��1����ZG1.2.1�
�5Readline��fBare�Essen��!tials�&F����.��.ԍ��.�����.�����.�����.�����.�����.�����.�����.�����.�����.�����.�����.�����.�����.�����.�����.�����.�����.�����.�����.�����.�����.�����.��
�w�1����ZG1.2.2�
�5Readline��fMo��!v�emen�t�Commands�������.��.ԍ��.�����.�����.�����.�����.�����.�����.�����.�����.�����.�����.�����.�����.�����.�����.�����.�����.��	���2����ZG1.2.3�
�5Readline��fKilling�Commands�������.��.ԍ��.�����.�����.�����.�����.�����.�����.�����.�����.�����.�����.�����.�����.�����.�����.�����.�����.�����.�����.�����.��
w��2����ZG1.2.4�
�5Readline��fArgumen��!ts������.��.ԍ��.�����.�����.�����.�����.�����.�����.�����.�����.�����.�����.�����.�����.�����.�����.�����.�����.�����.�����.�����.�����.�����.�����.�����.�����.�����.�����.��
���3����ZG1.2.5�
�5Searc��!hing��ffor�Commands�in�the�History�(u����.��.ԍ��.�����.�����.�����.�����.�����.�����.�����.�����.��
���3����6G1.3�
�5Readline��fInit�File�r�����.��.ԍ��.�����.�����.�����.�����.�����.�����.�����.�����.�����.�����.�����.�����.�����.�����.�����.�����.�����.�����.�����.�����.�����.�����.�����.�����.�����.�����.�����.�����.�����.�����.�����.�����.�����.�����.�����.�����.�����.��G��4����ZG1.3.1�
�5Readline��fInit�File�Syn��!tax�������.��.ԍ��.�����.�����.�����.�����.�����.�����.�����.�����.�����.�����.�����.�����.�����.�����.�����.�����.�����.�����.�����.�����.�����.�����.��	}��4����ZG1.3.2�
�5Conditional��fInit�Constructs�#�����.��.ԍ��.�����.�����.�����.�����.�����.�����.�����.�����.�����.�����.�����.�����.�����.�����.�����.�����.�����.�����.�����.�����.�����9����ZG1.3.3�
�5Sample��fInit�File�������.��.ԍ��.�����.�����.�����.�����.�����.�����.�����.�����.�����.�����.�����.�����.�����.�����.�����.�����.�����.�����.�����.�����.�����.�����.�����.�����.�����.�����.�����.�����.�����.��
p'�10����6G1.4�
�5Bindable��fReadline�Commands��9����.��.ԍ��.�����.�����.�����.�����.�����.�����.�����.�����.�����.�����.�����.�����.�����.�����.�����.�����.�����.�����.�����.�����.�����.�����.�����.�����.�����.��	Xj�13����ZG1.4.1�
�5Commands��fF��eor�Mo��!ving�5؍���.��.ԍ��.�����.�����.�����.�����.�����.�����.�����.�����.�����.�����.�����.�����.�����.�����.�����.�����.�����.�����.�����.�����.�����.�����.��	�13����ZG1.4.2�
�5Commands��fF��eor�Manipulating�The�History�3썑��.��.ԍ��.�����.�����.�����.�����.�����.��
	�13����ZG1.4.3�
�5Commands��fF��eor�Changing�T�ext�������.��.ԍ��.�����.�����.�����.�����.�����.�����.�����.�����.�����.�����.�����.�����.�����.�����.�����.��c��14����ZG1.4.4�
�5Killing��fAnd�Y��eanking�⍑��.��.ԍ��.�����.�����.�����.�����.�����.�����.�����.�����.�����.�����.�����.�����.�����.�����.�����.�����.�����.�����.�����.�����.�����.�����.�����.�����.�����.��	��16����ZG1.4.5�
�5Sp�M�ecifying��fNumeric�Argumen��!ts�`����.��.ԍ��.�����.�����.�����.�����.�����.�����.�����.�����.�����.�����.�����.�����.�����.�����.�����.��
ב�17����ZG1.4.6�
�5Letting��fReadline�T��!yp�M�e�F��eor�Y�ou�^ݍ���.��.ԍ��.�����.�����.�����.�����.�����.�����.�����.�����.�����.�����.�����.�����.�����.�����.�����.��
4
�17����ZG1.4.7�
�5Keyb�M�oard��fMacros�h��.��.ԍ��.�����.�����.�����.�����.�����.�����.�����.�����.�����.�����.�����.�����.�����.�����.�����.�����.�����.�����.�����.�����.�����.�����.�����.�����.�����.�����.�����.�����.��	>�17����ZG1.4.8�
�5Some��fMiscellaneous�Commands��1����.��.ԍ��.�����.�����.�����.�����.�����.�����.�����.�����.�����.�����.�����.�����.�����.�����.�����.��	qa�18����6G1.5�
�5Readline��fvi�Mo�M�de�9�����.��.ԍ��.�����.�����.�����.�����.�����.�����.�����.�����.�����.�����.�����.�����.�����.�����.�����.�����.�����.�����.�����.�����.�����.�����.�����.�����.�����.�����.�����.�����.�����.�����.�����.�����.�����.�����.�����.�����.����19��33��G�X2�32Programming�ffwith�GNU�Readline�����32�Y.�����32.����32.����32.����32.����32.����32.����32.����32.����X21����6G�2.1�
�5Basic��fBeha��!vior��z����.��.ԍ��.�����.�����.�����.�����.�����.�����.�����.�����.�����.�����.�����.�����.�����.�����.�����.�����.�����.�����.�����.�����.�����.�����.�����.�����.�����.�����.�����.�����.�����.�����.�����.�����.�����.�����.�����.�����.�����.�����.�����.��	���21����6G2.2�
�5Custom��fF��eunctions�����.��.ԍ��.�����.�����.�����.�����.�����.�����.�����.�����.�����.�����.�����.�����.�����.�����.�����.�����.�����.�����.�����.�����.�����.�����.�����.�����.�����.�����.�����.�����.�����.�����.�����.�����.�����.�����.�����.�����.��	���22����ZG2.2.1�
�5Readline��fT��!yp�M�edefs�Hh����.��.ԍ��.�����.�����.�����.�����.�����.�����.�����.�����.�����.�����.�����.�����.�����.�����.�����.�����.�����.�����.�����.�����.�����.�����.�����.�����.�����.�����.�����.��
��22����ZG2.2.2�
�5W��eriting��fa�New�F�unction�jo����.��.ԍ��.�����.�����.�����.�����.�����.�����.�����.�����.�����.�����.�����.�����.�����.�����.�����.�����.�����.�����.�����.�����.�����.�����.��	?��23����6G2.3�
�5Readline��fV��eariables�}x����.��.ԍ��.�����.�����.�����.�����.�����.�����.�����.�����.�����.�����.�����.�����.�����.�����.�����.�����.�����.�����.�����.�����.�����.�����.�����.�����.�����.�����.�����.�����.�����.�����.�����.�����.�����.�����.�����.��R��24����6G2.4�
�5Readline��fCon��!v�enience�F��eunctions��1����.��.ԍ��.�����.�����.�����.�����.�����.�����.�����.�����.�����.�����.�����.�����.�����.�����.�����.�����.�����.�����.�����.�����.�����.�����.�����.��	�a�28����ZG2.4.1�
�5Naming��fa�F��eunction��y����.��.ԍ��.�����.�����.�����.�����.�����.�����.�����.�����.�����.�����.�����.�����.�����.�����.�����.�����.�����.�����.�����.�����.�����.�����.�����.�����.�����.�����.��
©�28����ZG2.4.2�
�5Selecting��fa�Keymap�{�����.��.ԍ��.�����.�����.�����.�����.�����.�����.�����.�����.�����.�����.�����.�����.�����.�����.�����.�����.�����.�����.�����.�����.�����.�����.�����.�����.�����.�����.��	P��28����ZG2.4.3�
�5Binding��fKeys�0"����.��.ԍ��.�����.�����.�����.�����.�����.�����.�����.�����.�����.�����.�����.�����.�����.�����.�����.�����.�����.�����.�����.�����.�����.�����.�����.�����.�����.�����.�����.�����.�����.�����.�����.�����.��	R�29����ZG2.4.4�
�5Asso�M�ciating��fF��eunction�Names�and�Bindings�񽍑��.��.ԍ��.�����.�����.�����.�����.�����.��	���31����ZG2.4.5�
�5Allo��!wing��fUndoing�t1����.��.ԍ��.�����.�����.�����.�����.�����.�����.�����.�����.�����.�����.�����.�����.�����.�����.�����.�����.�����.�����.�����.�����.�����.�����.�����.�����.�����.�����.�����.��Ib�31����ZG2.4.6�
�5Redispla��!y��捑��.��.ԍ��.�����.�����.�����.�����.�����.�����.�����.�����.�����.�����.�����.�����.�����.�����.�����.�����.�����.�����.�����.�����.�����.�����.�����.�����.�����.�����.�����.�����.�����.�����.�����.�����.�����.�����.�����.��
_�32����ZG2.4.7�
�5Mo�M�difying��fT��eext��Y����.��.ԍ��.�����.�����.�����.�����.�����.�����.�����.�����.�����.�����.�����.�����.�����.�����.�����.�����.�����.�����.�����.�����.�����.�����.�����.�����.�����.�����.�����.�����.�����.�����.��	q��34����ZG2.4.8�
�5Character��fInput������.��.ԍ��.�����.�����.�����.�����.�����.�����.�����.�����.�����.�����.�����.�����.�����.�����.�����.�����.�����.�����.�����.�����.�����.�����.�����.�����.�����.�����.�����.�����.�����.��
T��34����ZG2.4.9�
�5T��eerminal��fManagemen��!t�������.��.ԍ��.�����.�����.�����.�����.�����.�����.�����.�����.�����.�����.�����.�����.�����.�����.�����.�����.�����.�����.�����.�����.�����.�����.�����.��
���35����ZG2.4.10�
�5Utilit��!y��fF��eunctions�����.��.ԍ��.�����.�����.�����.�����.�����.�����.�����.�����.�����.�����.�����.�����.�����.�����.�����.�����.�����.�����.�����.�����.�����.�����.�����.�����.�����.�����.�����.��
�B�35����ZG2.4.11�
�5Miscellaneous��fF��eunctions�r����.��.ԍ��.�����.�����.�����.�����.�����.�����.�����.�����.�����.�����.�����.�����.�����.�����.�����.�����.�����.�����.�����.�����.�����.��	T��36����ZG2.4.12�
�5Alternate��fIn��!terface��o����.��.ԍ��.�����.�����.�����.�����.�����.�����.�����.�����.�����.�����.�����.�����.�����.�����.�����.�����.�����.�����.�����.�����.�����.�����.�����.�����.�����.��k��37����ZG2.4.13�
�5A��fReadline�Example�n����.��.ԍ��.�����.�����.�����.�����.�����.�����.�����.�����.�����.�����.�����.�����.�����.�����.�����.�����.�����.�����.�����.�����.�����.�����.�����.�����.��	��38���������������G�ii�=�NGNU��fReadline�Library�����3*�����֍�6G2.5�
�5Readline��fSignal�Handling�����.��.ԍ��.�����.�����.�����.�����.�����.�����.�����.�����.�����.�����.�����.�����.�����.�����.�����.�����.�����.�����.�����.�����.�����.�����.�����.�����.�����.�����.�����.�����.�����.��
���39��
33��6G2.6�
�5Custom��fCompleters�䍑��.��.ԍ��.�����.�����.�����.�����.�����.�����.�����.�����.�����.�����.�����.�����.�����.�����.�����.�����.�����.�����.�����.�����.�����.�����.�����.�����.�����.�����.�����.�����.�����.�����.�����.�����.�����.�����.��
��41����ZG2.6.1�
�5Ho��!w��fCompleting�W��eorks�_�����.��.ԍ��.�����.�����.�����.�����.�����.�����.�����.�����.�����.�����.�����.�����.�����.�����.�����.�����.�����.�����.�����.�����.�����.�����.��
4��41����ZG2.6.2�
�5Completion��fF��eunctions��`����.��.ԍ��.�����.�����.�����.�����.�����.�����.�����.�����.�����.�����.�����.�����.�����.�����.�����.�����.�����.�����.�����.�����.�����.�����.�����.�����.��	_��42����ZG2.6.3�
�5Completion��fV��eariables��k����.��.ԍ��.�����.�����.�����.�����.�����.�����.�����.�����.�����.�����.�����.�����.�����.�����.�����.�����.�����.�����.�����.�����.�����.�����.�����.�����.��
���43����ZG2.6.4�
�5A��fShort�Completion�Example�$K����.��.ԍ��.�����.�����.�����.�����.�����.�����.�����.�����.�����.�����.�����.�����.�����.�����.�����.�����.�����.���|�47��33���G�XApp�s3endix�ffA��t�rCop���ying�ffThis�Man�ual�J���32�Y.�����32.����32.����32.����32.����32.����32.����32.����32.����32.����32.��6�X57�����6G�A.1�
�5GNU��fF��eree�Do�M�cumen��!tation�License�=����.��.ԍ��.�����.�����.�����.�����.�����.�����.�����.�����.�����.�����.�����.�����.�����.�����.�����.�����.�����.�����.�����.�����.��B�57����ZGA.1.1�
�5ADDENDUM:��fHo��!w�to�use�this�License�for�y�our����o��do�M�cumen��!ts�^|����.��.ԍ��.�����.�����.�����.�����.�����.�����.�����.�����.�����.�����.�����.�����.�����.�����.�����.�����.�����.�����.�����.�����.�����.�����.�����.�����.�����.�����.�����.�����.�����.�����.�����.�����.�����.�����.�����.�����.��3��63����G�XConcept�ffIndex�H~��32�Y.�����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��X65�� ���GF���function�ffand�V�ariable�Index��.��32�Y.�����32.����32.����32.����32.����32.����32.����32.����32.����32.����32.����32.����32.����32.����32.����32.����32.����32.��
ͤ�X67����4�������G�Chapter��f1:���Command�Line�Editing�MH1�����3*�����֍��G�O1�	�QCommand�z�Line�Editing����=��!G�This��fc��!hapter�describ�M�es�the�basic�features�of�the��8�-�
�3
cmcsc10�gnu��command�line�editing�in�terface.��h����G�X1.1��In���tro�s3duction�f@to�Line�Editing���ޛ��!G�The��ffollo��!wing�paragraphs�describ�M�e�the�notation�used�to�represen�t�k�eystrok�es.���h��!GThe�Ctext��9��<x
�3
cmsltt10�C-k��is�read�as�`Con��!trol-K'�+and�describ�M�es�the�c�haracter�pro�M�duced�when�the�������
����		cmsy9�h�������@�ff|v����|{Ycmr8�k�����ٚ�ff|v���
������i����
33��G�k��!ey��fis�pressed�while�the�Con�trol�k�ey�is�depressed.����!GThe��ztext��M-k��is�read�as�`Meta-K'��oand�describ�M�es�the�c��!haracter�pro�duced�when�the�Meta����Gk��!ey�i/(if�y�ou�ha�v�e�one)�is�depressed,�umand�the�������h����S���@�ff|v����k���S��ٚ�ff|v���
M㞙��i���O��k�ey�is�pressed.��uThe�Meta�k�ey�is�lab�M�eled�������h����S���@�ff����AL��J�T���S��ٚ�ff���샞���i������G�on�%�man��!y�k�eyb�M�oards.���On�k�eyb�M�oards�with�t�w�o�k�eys�lab�M�eled�������h�������@�ff����AL��J�T�����ٚ�ff��������i���g��(usually�to�either�side�of�the����Gspace���bar),�̛the�������h�����ß�@�ff����AL��J�T����ßٚ�ff���HK����i����$�on�the�left�side�is�generally�set�to�w��!ork�as�a�Meta�k�ey��e.�9�The�������h�����ß�@�ff����AL��J�T����ßٚ�ff���HK����i����$�k�ey����Gon��the�righ��!t�ma�y�also�b�M�e�congured�to�w�ork�as�a�Meta�k�ey�or�ma�y�b�M�e�congured�as�some����Gother��fmo�M�dier,�suc��!h�as�a�Comp�ose�k��!ey�for�t�yping�accen�ted�c�haracters.����!GIf��ly��!ou�do�not�ha�v�e�a�Meta�or�������h�����8��@�ff����AL��J�T����8�ٚ�ff��� �����i���W�k�ey��e,��kor�another�k�ey�w�orking�as�a�Meta�k�ey��e,��kthe�iden�tical����Gk��!eystrok�e��1can�b�M�e�generated�b��!y�t�yping�������h��������@�ff�T����ESC������ٚ�ff�T����Þ���i�����rst�,���and�then�t�yping�������h��������@�ff|v����k������ٚ�ff|v���	�垙��i���
0��.���Either�pro�M�cess�is�kno�wn����Gas��f�6p�0J
�3
cmsl10�metafying��~�the�������h�����2��@�ff|v����k����2�ٚ�ff|v���
�����i����b�k��!ey��e.����!GThe���text��M-C-k��is�read�as�`Meta-Con��!trol-k'�and�describ�M�es�the�c�haracter�pro�M�duced�b�y����G�metafying��~�C-k�.����!GIn�oaddition,��,sev��!eral�k�eys�ha�v�e�their�o�wn�names.�7�Sp�M�ecically��e,����,����h��������@�ff������DEL������ٚ�ff������d����i���6F�,����,����h��������@�ff�T����ESC������ٚ�ff�T���������i���F��,����,����h��������@�ffW�����LFD������ٚ�ffW����`򞙚�i������,����,����h��������@�ff�T����SPC������ٚ�ff�T���������i����,������G����h�������@�ff,(����RET�����ٚ�ff,(���&������i���*>��,��9and���8�����h����#u��@�ff�l����T��J�AB���#u�ٚ�ff�l���qS����i���"B��all�8�stand�for�themselv��!es�when�seen�in�this�text,�or�in�an�init�le�(see����GSection���1.3�[Readline�Init�File],��"page�4).�ߡIf�y��!our�k�eyb�M�oard�lac�ks�a�������h�����ɟ�@�ffW�����LFD����ɟٚ�ffW����fÞ���i��� ���k�ey��e,��"t�yping�������h�����ɟ�@�ff�ҟ���C-j����ɟٚ�ff�Ҏ���
����i������G�will��Opro�M�duce�the�desired�c��!haracter.���The�������h����v��@�ff,(����RET���v�ٚ�ff,(��������i���C��k�ey�ma�y�b�M�e�lab�eled�������h����v��@�ff����Return���v�ٚ�ff뎍� x����i���'/��or�������h����v��@�ff������En�Îter���v�ٚ�ff������:����i���!�k�on�some����Gk��!eyb�M�oards.��h����G�X1.2��Readline�f@In���teraction���ޛ��!G�Often�kduring�an�in��!teractiv�e�ksession�y��!ou�t�yp�M�e�in�a�long�line�of�text,�&jonly�to�notice�that�the����Grst���w��!ord�on�the�line�is�missp�M�elled.��"The�Readline�library�giv�es�y�ou�a�set�of�commands�for����Gmanipulating���the�text�as�y��!ou�t�yp�M�e�it�in,��ballo�wing�y�ou�to�just�x�y�our�t�yp�M�o,��band�not�forcing����Gy��!ou�`�to�ret�yp�M�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,���y�ou�simply�press�������h�������@�ff,(����RET�����ٚ�ff,(���Q�����i����k�.�"Y��eou�do�not�ha�v�e�to�b�M�e�at�the����Gend�N4of�the�line�to�press�������h����9��@�ff,(����RET���9�ٚ�ff,(���⚞���i���{|�;��the�en��!tire�line�is�accepted�regardless�of�the�lo�M�cation�of�the����Gcursor��fwithin�the�line.��h����G�a��N�
#�cmbx12�a1.2.1�d(Readline��MBare�Essen���tials�����!G�In��iorder�to�en��!ter�c�haracters�in�to�the�line,��simply�t�yp�M�e�them.���The�t�yp�M�ed�c�haracter�app�M�ears����Gwhere��Nthe�cursor�w��!as,��Hand�then�the�cursor�mo�v�es�one�space�to�the�righ�t.���If�y�ou�mist�yp�M�e�a����Gc��!haracter,��fy�ou�can�use�y�our�erase�c�haracter�to�bac�k�up�and�delete�the�mist�yp�M�ed�c�haracter.���h��!GSometimes��ly��!ou�ma�y�mist�yp�M�e�a�c�haracter,���and�not�notice�the�error�un�til�y�ou�ha�v�e�t�yp�M�ed����Gsev��!eral�w�other�c�haracters.��cIn�that�case,��Ay�ou�can�t�yp�M�e��C-b��to�mo�v�e�the�cursor�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�.����@x������G�2�>�
GNU��fReadline�Library�����3*�����֍�!GWhen��"y��!ou�add�text�in�the�middle�of�a�line,���y�ou�will�notice�that�c�haracters�to�the�righ�t��
33��Gof�q�the�cursor�are�`pushed�o��!v�er'�q�to�mak��!e�ro�M�om�for�the�text�that�y�ou�ha�v�e�inserted.��BLik�ewise,����Gwhen���y��!ou�delete�text�b�M�ehind�the�cursor,��c�haracters�to�the�righ�t�of�the�cursor�are�`pulled����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����Gfor��fediting�the�text�of�an�input�line�follo��!ws.������G�C-b�(���Mo��!v�e��fbac�k�one�c�haracter.����G�C-f�(���Mo��!v�e��fforw�ard�one�c�haracter.������G����h�������@�ff������DEL�����ٚ�ff�����&
����i���-L��or����f����h�����2��@�ff&,����Bac�Îkspace����2�ٚ�ff&,񎍑,;�����i����
33��K�:�Delete��fthe�c��!haracter�to�the�left�of�the�cursor.����G�C-d�(���Delete��fthe�c��!haracter�underneath�the�cursor.�����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�undo�all�the�w��!a�y�jbac�k�to�an�empt�y����K�:line.����G(Dep�M�ending�on�y��!our�conguration,�0�the�������h�����؟�@�ff&,����Bac�Îkspace����؟ٚ�ff&,񎍑,�;����i���4X)�k�ey�b�M�e�set�to�delete�the�c�haracter�to�the����Gleft���of�the�cursor�and�the�������h����ዟ�@�ff������DEL���ዟٚ�ff�����������i������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.)��:����G�a1.2.2�d(Readline��MMo���v�emen�t�Commands���$���!G�The�"�ab�M�o��!v�e�table�describ�M�es�the�most�basic�k�eystrok�es�that�y�ou�need�in�order�to�do�editing����Gof��the�input�line.���F��eor�y��!our�con�v�enience,�-�man�y�other�commands�ha�v�e�b�M�een�added�in�addition����Gto����C-b�,���C-f�,��C-d�,�and�������h��������@�ff������DEL������ٚ�ff������-����i���l�.�o�Here�are�some�commands�for�mo��!ving�more�rapidly�ab�M�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�comp�M�osed�of�letters�and�digits.����G�M-b�(���Mo��!v�e��fbac�kw�ard�a�w�ord.����G�C-l�(���Clear��fthe�screen,�reprin��!ting�the�curren�t�line�at�the�top.����!GNotice��Kho��!w��C-f��mo�v�es�forw�ard�a�c�haracter,��while��M-f��mo�v�es�forw�ard�a�w�ord.��It�is�a�lo�M�ose����Gcon��!v�en�tion���that�con��!trol�k�eystrok�es�op�M�erate�on�c�haracters�while�meta�k�eystrok�es�op�M�erate�on����Gw��!ords.��:����G�a1.2.3�d(Readline��MKilling�Commands���$���!G�Killing�l�text�{�means�to�delete�the�text�from�the�line,��Jbut�to�sa��!v�e�{�it�a��!w�a�y�{�for�later�use,����Gusually�Zb��!y��y�anking�r�(re-inserting)�it�bac�k�in�to�the�line.�3�(`Cut'�and�`paste'�are�more�recen�t����Gjargon��ffor�`kill'�and�`y��!ank'.)���_��!GIf���the�description�for�a�command�sa��!ys�that�it�`kills'�text,���then�y�ou�can�b�M�e�sure�that�y�ou����Gcan��fget�the�text�bac��!k�in�a�dieren�t�(or�the�same)�place�later.����V������G�Chapter��f1:���Command�Line�Editing�MH3�����3*�����֍�!GWhen�ʛy��!ou�use�a�kill�command,���the�text�is�sa�v�ed�in�a��kill-ring�.���An�y�n�um�b�M�er�of�consecutiv�e��
33��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�sp�M�ecic;�(the�text�that�y��!ou�killed�on�a�previously�t�yp�M�ed�line�is�a�v��dDailable����Gto��fb�M�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�C-k�(���Kill��fthe�text�from�the�curren��!t�cursor�p�M�osition�to�the�end�of�the�line.����G�M-d�(���Kill�)�from�the�cursor�to�the�end�of�the�curren��!t�w�ord,�B�or,�if�)�b�M�et�w�een�w�ords,�B�to�the��
33��K�:end��fof�the�next�w��!ord.���W��eord�b�M�oundaries�are�the�same�as�those�used�b�y��M-f�.����G�M-������h�����̟�@�ff������DEL����̟ٚ�ff������8����i���.Q��Kill��ofrom�the�cursor�the�start�of�the�curren��!t�w�ord,���or,�if��ob�M�et�w�een�w�ords,���to�the����K�:start��of�the�previous�w��!ord.���W��eord�b�M�oundaries�are�the�same�as�those�used�b�y����K�:�M-b�.����G�C-w�(���Kill��xfrom�the�cursor�to�the�previous�whitespace.�,This�is�dieren��!t�than��M-������h�����̟�@�ff������DEL����̟ٚ�ff������8����i������K�:�b�M�ecause��fthe�w��!ord�b�oundaries�dier.����!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.����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�.��Z���G�a1.2.4�d(Readline��MArgumen���ts���/��!G�Y��eou���can�pass�n��!umeric�argumen�ts�to�Readline�commands.��Sometimes�the�argumen�t�acts����Gas�Ѥa�rep�M�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�yp�M�e�`�M--�C-k�'.���獑!GThe�bOgeneral�w��!a�y�bOto�pass�n��!umeric�argumen�ts�to�a�command�is�to�t�yp�M�e�meta�digits�b�efore����Gthe���command.�RIf�the�rst�`digit'�t��!yp�M�ed�is�a�min�us�sign�(`�-�'),��then�the�sign�of�the�argumen�t����Gwill���b�M�e�negativ��!e.��HOnce�y�ou�ha�v�e�t�yp�M�ed�one�meta�digit�to�get�the�argumen�t�started,�Ғy�ou����Gcan�v�t��!yp�M�e�the�remainder�of�the�digits,��oand�then�the�command.��F��eor�example,�to�giv��!e�the��C-d����G�command�~Gan�argumen��!t�of�10,��?y�ou�could�t�yp�M�e�`�M-1��f0�C-d�',��?whic�h�~Gwill�delete�the�next�ten����Gc��!haracters��fon�the�input�line.�����G�a1.2.5�d(Searc���hing��Mfor�Commands�in�the�History���/��!G�Readline��Tpro��!vides�commands�for�searc�hing�through�the�command�history�for�lines�con-����Gtaining��fa�sp�M�ecied�string.���There�are�t��!w�o��fsearc�h�mo�M�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�yp�M�ed,�gReadline�displa�ys�the�next�en�try�from�the�history����Gmatc��!hing��+the�string�t�yp�M�ed�so�far.��tAn�incremen�tal�searc�h�requires�only�as�man�y�c�haracters�as����Gneeded�t�to�nd�the�desired�history�en��!try��e.��bT�o�t�searc�h�bac�kw�ard�in�the�history�for�a�particular����Gstring,��0t��!yp�M�e��c�C-r�.��1T�yping��C-s��searc�hes�forw�ard�through�the�history��e.��1The�c�haracters�presen�t����Gin��^the�v��dDalue�of�the��isearch-terminators��v�ariable�are�used�to�terminate�an�incremen��!tal����bߍ�����G�4�>�
GNU��fReadline�Library�����3*�����֍�Gsearc��!h.���If��Nthat�v��dDariable�has�not�b�M�een�assigned�a�v�alue,���the�������h����s��@�ff�T����ESC���s�ٚ�ff�T���������i�����and��C-J��c��!haracters�will��
33��Gterminate�Can�incremen��!tal�searc�h.�	3t�C-g��will�ab�M�ort�an�incremen�tal�searc�h�and�restore�the����Goriginal�x�line.�άWhen�the�searc��!h�is�terminated,���the�history�en�try�con�taining�the�searc�h�string����Gb�M�ecomes��fthe�curren��!t�line.����!GT��eo���nd�other�matc��!hing�en�tries�in�the�history�list,���t�yp�M�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��!yp�M�ed��5so�far.��IAn�y�other�k�ey�sequence�b�M�ound�to�a�Readline�command�will�terminate�the����Gsearc��!h���and�execute�that�command.�~=F��eor�instance,���a�������h����rP��@�ff,(����RET���rP�ٚ�ff,(���ꞙ��i���<P�will�terminate�the�searc�h�and�accept����Gthe���line,��5thereb��!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�b�M�egin�editing.����!GReadline�.�remem��!b�M�ers�the�last�incremen�tal�searc�h�string.�vhIf�t�w�o��C-r�s�are�t�yp�M�ed�without����Gan��!y�a�in�terv�ening�c�haracters�dening�a�new�searc�h�string,���an�y�remem�b�M�ered�searc�h�string�is����Gused.����!GNon-incremen��!tal���searc�hes�read�the�en�tire�searc�h�string�b�M�efore�starting�to�searc�h�for����Gmatc��!hing��history�lines.�	F�The�searc�h�string�ma�y�b�M�e�t�yp�M�ed�b�y�the�user�or�b�M�e�part�of�the����Gcon��!ten�ts��fof�the�curren��!t�line.��!���G�X1.3��Readline�f@Init�File���33��!G�Although�lthe�Readline�library�comes�with�a�set�of�Emacs-lik��!e�k�eybindings�installed����Gb��!y�default,�W�it�is�p�M�ossible�to�use�a�dieren�t�set�of�k�eybindings.���An�y�user�can�customize����Gprograms���that�use�Readline�b��!y�putting�commands�in�an��inputrc����le,���con�v�en�tionally�in�his����Ghome��directory��e.���The�name�of�this�le�is�tak��!en�from�the�v��dDalue�of�the�en�vironmen�t�v��dDariable����G�INPUTRC�.���If��fthat�v��dDariable�is�unset,�the�default�is�`�~/.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��C-x��fC-r��command�re-reads�this�init�le,�th��!us�incorp�M�orating�an�y�c�hanges����Gthat��fy��!ou�migh�t�ha�v�e�made�to�it.�������G�a1.3.1�d(Readline��MInit�File�Syn���tax���33��!G�There��are�only�a�few�basic�constructs�allo��!w�ed��in�the�Readline�init�le.�
RBlank�lines�are����Gignored.��zLines��b�M�eginning�with�a�`�#�'�are�commen��!ts.�Lines�b�M�eginning�with�a�`�$�'�indicate����Gconditional�R�constructs�(see�Section�1.3.2�[Conditional�Init�Constructs],�cbpage�9).���Other�lines����Gdenote��fv��dDariable�settings�and�k��!ey�bindings.��ff��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�Readline�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�to�c�hange�from�the�default�Emacs-lik�e�k�ey�binding�to��
33��K�:use��f�vi��line�editing�commands:����hʏ�set���editing-mode�vi����r�������G�Chapter��f1:���Command�Line�Editing�MH5�����3*�����֍�K�:V��eariable�4Ynames�and�v��dDalues,�W�where�appropriate,�are�recognized�without�regard��
33��K�:to��fcase.���Unrecognized�v��dDariable�names�are�ignored.��ff��K�:Bo�M�olean��v��dDariables�(those�that�can�b�e�set�to�on�or�o��)�are�set�to�on�if�the�v��dDalue�is����K�:n��!ull��Jor�empt�y��e,��on��(case-insensitiv�e),�or�1.���An�y�other�v��dDalue�results�in�the�v�ariable����K�:b�M�eing��fset�to�o.����K�:A��fgreat�deal�of�run-time�b�M�eha��!vior�is�c�hangeable�with�the�follo�wing�v��dDariables.������K�:�bell-style������-�Con��!trols�Fwhat�happ�M�ens�when�Readline�w�an�ts�to�ring�the�termi-������-nal�xzb�M�ell.�TIf�set�to�`�none�',���Readline�nev��!er�rings�the�b�ell.�TIf�set�to������-`�visible�',�
dReadline��euses�a�visible�b�M�ell�if�one�is�a��!v��dDailable.���If�set�to������-`�audible�'��(the�default),��6Readline�attempts�to�ring�the�terminal's������-b�M�ell.����K�:�bind-tty-special-chars������-�If�pset�to�`�on�',��jReadline�attempts�to�bind�the�con��!trol�c�haracters������-treated�A�sp�M�ecially�b��!y�the�k�ernel's�terminal�driv�er�to�their�Readline������-equiv��dDalen��!ts.����K�:�comment-begin������-�The���string�to�insert�at�the�b�M�eginning�of�the�line�when�the��insert-������-comment��f�command�is�executed.���The�default�v��dDalue�is��"#"�.����K�:�completion-ignore-case������-�If�I�set�to�`�on�',�\WReadline�p�M�erforms�lename�matc��!hing�and�completion������-in��fa�case-insensitiv��!e�fashion.���The�default�v��dDalue�is�`�off�'.����K�:�completion-query-items������-�The�%�n��!um�b�M�er�of�p�ossible�completions�that�determines�when�the�user������-is��Hask��!ed�whether�the�list�of�p�M�ossibilities�should�b�e�displa��!y�ed.��(If��Hthe������-n��!um�b�M�er�9of�p�ossible�completions�is�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�b�M�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�an��������-����h���������@�ff�T����ESC�������ٚ�ff�T����������i����jz�c��!haracter,�,�con�v�erting��them�to�a�meta-prexed�k��!ey�sequence.������-The��fdefault�v��dDalue�is�`�on�'.����K�:�disable-completion������-�If�gset�to�`�On�',��@Readline�will�inhibit�w��!ord�completion.��Completion������-c��!haracters�!�will�b�M�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�default�set�of�k�ey�bind-������-ings�?is�used.��%By�default,�#Readline�starts�up�in�Emacs�editing�mo�M�de,������-where�~�the�k��!eystrok�es�~�are�most�similar�to�Emacs.�ПThis�v��dDariable�can������-b�M�e��fset�to�either�`�emacs�'�or�`�vi�'.�����v������G�6�>�
GNU��fReadline�Library�����3*�����֍�K�:�enable-keypad��
33����-�When���set�to�`�on�',��mReadline�will�try�to�enable�the�application�k��!eypad������-when�1�it�is�called.��Some�systems�need�this�to�enable�the�arro��!w�k�eys.������-The��fdefault�is�`�off�'.�����K�:�expand-tilde������-�If�Pset�to�`�on�',�a[tilde�expansion�is�p�M�erformed�when�Readline�attempts������-w��!ord��fcompletion.���The�default�is�`�off�'.����K�:�history-preserve-point������-�If���set�to�`�on�',���the�history�co�M�de�attempts�to�place�p�oin��!t�at�the�same������-lo�M�cation�Kon�eac��!h�history�line�retriev�ed�with��previous-history��or������-�next-history�.���The��fdefault�is�`�off�'.����K�:�horizontal-scroll-mode������-�This�N�v��dDariable�can�b�M�e�set�to�either�`�on�'�or�`�off�'.��
Setting�it�to�`�on�'������-means�$jthat�the�text�of�the�lines�b�M�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�'.����K�:�input-meta������-�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),�
Pregardless�of�what�the������-terminal���claims�it�can�supp�M�ort.�Q-The�default�v��dDalue�is�`�off�'.�The������-name��f�meta-flag��is�a�synon��!ym�for�this�v��dDariable.����K�:�isearch-terminators������-�The�5�string�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������-b�M�een�DŽgiv��!en�a�v��dDalue,���the�c�haracters�������h�����P��@�ff�T����ESC����P�ٚ�ff�T��������i���4|�and��C-J��will�terminate�an������-incremen��!tal��fsearc�h.����K�:�keymap�R��Sets��5Readline's�idea�of�the�curren��!t�k�eymap�for�k�ey�binding�com-������-mands.�	�Acceptable�SO�keymap��names�are��emacs�,����emacs-standard�,������-�emacs-meta�,�0�emacs-ctlx�,��vi�,��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�:�mark-directories������-�If���set�to�`�on�',���completed�directory�names�ha��!v�e���a�slash�app�M�ended.������-The��fdefault�is�`�on�'.����K�:�mark-modified-lines������-�This�N�v��dDariable,�x�when�set�to�`�on�',�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.�����;������G�Chapter��f1:���Command�Line�Editing�MH7�����3*�����֍�K�:�mark-symlinked-directories��
33����-�If�_�set�to�`�on�',���completed�names�whic��!h�are�sym�b�M�olic�links�to�di-������-rectories��|ha��!v�e�a�slash�app�M�ended�(sub���ject�to�the�v��dDalue�of��mark-������-directories�).���The��fdefault�is�`�off�'.��ii��K�:�match-hidden-files������-�This��sv��dDariable,�ݣwhen�set�to�`�on�',�causes�Readline�to�matc��!h�les�whose������-names�M�b�M�egin�with�a�`�.�'�(hidden�les)�when�p�erforming�lename������-completion,�R unless���the�leading�`�.�'�is�supplied�b��!y�the�user�in�the������-lename��fto�b�M�e�completed.���This�v��dDariable�is�`�on�'�b��!y�default.����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�escap�M�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�p�M�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�alphab�M�etical�order,��orather�than�do�wn�the�screen.������-The��fdefault�is�`�off�'.����K�:�show-all-if-ambiguous������-�This��]alters�the�default�b�M�eha��!vior�of�the�completion�functions.�مIf�set������-to�L`�on�',�^.w��!ords�whic�h�ha�v�e�more�than�one�p�M�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�b�M�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�p�M�ossible�completions�don't�share�a�common������-prex)��cause�the�matc��!hes�to�b�M�e�listed�immediately�instead�of�ring-������-ing��fthe�b�M�ell.���The�default�v��dDalue�is�`�off�'.����K�:�visible-stats������-�If��vset�to�`�on�',���a�c��!haracter�denoting�a�le's�t�yp�M�e�is�app�ended�to�the������-lename��fwhen�listing�p�M�ossible�completions.���The�default�is�`�off�'.����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�the�name�of�the�command�that�y��!ou�w�an�t�to�c�hange.���The�follo�wing����K�:sections�Ocon��!tain�tables�of�the�command�name,�yLthe�default�k�eybinding,�yLif�an�y��e,����K�:and��fa�short�description�of�what�the�command�do�M�es.��NN��K�:Once�P�y��!ou�kno�w�the�name�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������������G�8�>�
GNU��fReadline�Library�����3*�����֍�K�:the�֫name�of�the�command.�n�The�name�of�the�k��!ey�can�b�M�e�expressed�in�dieren�t��
33��K�:w��!a�ys,��fdep�M�ending�on�what�y��!ou�nd�most�comfortable.�����K�:In�S�addition�to�command�names,�<readline�allo��!ws�k�eys�to�b�M�e�b�ound�to�a�string����K�:that��fis�inserted�when�the�k��!ey�is�pressed�(a��macro����).���͍��K�:�k��!eyname���:����function-name�Cm�or��f�macro�������-k��!eyname�j�is�tcthe�name�of�a�k�ey�sp�M�elled�out�in�English.��1F��eor�example:��������Control-u:���universal-argument�������Meta-Rubout:���backward-kill-word�������Control-o:���">�output"������-�In��3the�ab�M�o��!v�e��3example,����C-u��is�b�ound�to�the�function��universal-������-argument�,����M-DEL����is�b�M�ound�to�the�function��backward-kill-word�,������-and����C-o��is�b�M�ound�to�run�the�macro�expressed�on�the�righ��!t�hand������-side��f(that�is,�to�insert�the�text�`�>�output�'�in��!to�the�line).������-A�qn��!um�b�M�er�q4of�sym��!b�olic�c��!haracter�names�are�recognized�while�pro-������-cessing���this�k��!ey�binding�syn�tax:�u%�DEL�,��ESC�,��ESCAPE�,��LFD�,��NEW-������-LINE�,��f�RET�,��RETURN�,��R��!UBOUT�,��SP��eA�CE�,��SPC�,�and��T��eAB�.���͍��K�:�"�k��!eyseq�@��"�:����function-name�Cm�or��f�macro�������-k��!eyseq����diers���from��k�eyname�V��ab�M�o�v�e�in�that�strings�denoting�an�en-������-tire�hk��!ey�sequence�can�b�M�e�sp�ecied,�%�b��!y�placing�the�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�sp�M�ecial�c�haracter�names�are�not������-recognized.��������"\C-u":���universal-argument�������"\C-x\C-r":���re-read-init-file�������"\e[11~":���"Function�Key�1"������-�In���the�ab�M�o��!v�e���example,����C-u��is�again�b�ound�to�the�function������-�universal-argument�?��(just�as�it�w��!as�in�the�rst�example),��=`�C-x������-C-r�'��pis�b�M�ound�to�the�function��re-read-init-file�,�F�and�`������h�����̟�@�ff�T����ESC����̟ٚ�ff�T��������i�����Kڞ��h����6���@�ff\t����[���6���ff\t��������i����������-���h���������@�ff@����1�������ٚ�ff@����[o����i�����������h���������@�ff@����1�������ٚ�ff@����B�����i�������A���h�����m
��@�ff������~����m
�ٚ�ff�������)����i����C�'��fis�b�M�ound�to�insert�the�text�`�Function�Key�1�'.���͍�K�:The���follo��!wing��gnu��Emacs�st�yle�escap�M�e�sequences�are�a�v��dDailable�when�sp�M�ecifying����K�:k��!ey��fsequences:����K�:�\C-�(���con��!trol��fprex����K�:�\M-�(���meta��fprex����K�:�\e�.Q��an��fescap�M�e�c��!haracter����K�:�\\�.Q��bac��!kslash����K�:�\�"���.Q�����h����1<k��@�ff������"���1<k�ٚ�ff�����6y�����i���:i�,��fa�double�quotation�mark����K�:�\'���.Q�����h����1<k��@�ff\t����'���1<k�ٚ�ff\t���3Q����i���6�3�,��fa�single�quote�or�ap�M�ostrophe����K�:In�Qaddition�to�the��gnu��Emacs�st��!yle�escap�M�e�sequences,�b)a�second�set�of�bac�kslash����K�:escap�M�es��fis�a��!v��dDailable:����K�:�\a�.Q��alert��f(b�M�ell)����	��������G�Chapter��f1:���Command�Line�Editing�MH9�����3*�����֍�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�o�M�ctal�v�alue��nnn��(one�to��
33����-three��fdigits)����K�:�\x�HH�"�K�the���eigh��!t-bit�c�haracter�whose�v��dDalue�is�the�hexadecimal�v�alue��HH������-�(one��for�t��!w�o��fhex�digits)����K�:When�}�en��!tering�the�text�of�a�macro,���single�or�double�quotes�m�ust�b�M�e�used�to����K�:indicate���a�macro�denition.��?Unquoted�text�is�assumed�to�b�M�e�a�function�name.�In����K�:the���macro�b�M�o�dy��e,��~the���bac��!kslash�escap�M�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\\":���"\\"��z8���G�a1.3.2�d(Conditional��MInit�Constructs���9΍�!G�Readline�?�implemen��!ts�a�facilit�y�similar�in�spirit�to�the�conditional�compilation�features����Gof�$the�C�#�prepro�M�cessor�whic��!h�allo�ws�k�ey�bindings�and�v��dDariable�settings�to�b�M�e�p�erformed�as����Gthe��fresult�of�tests.���There�are�four�parser�directiv��!es�used.����G�$if�(���The��N�$if��construct�allo��!ws�bindings�to�b�M�e�made�based�on�the�editing�mo�de,�ʈthe����K�:terminal���b�M�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�Readline������-is���in��emacs��or��vi��mo�M�de.��DThis�ma��!y�b�e�used�in�conjunction�with�the������-`�set��fkeymap�'�N
command,�_�for�instance,�to�set�bindings�in�the��emacs-������-standard�_�and��emacs-ctlx��k��!eymaps�only�if�Readline�is�starting�out������-in��f�emacs��mo�M�de.����K�:�term�"�K�The�<�term=��form�ma��!y�b�M�e�used�to�include�terminal-sp�ecic�k��!ey�bind-������-ings,��p�M�erhaps�V�to�bind�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�terminal�and�the�p�ortion�of�the�terminal������-name��b�M�efore�the�rst�`�-�'.��/This�allo��!ws��sun��to�matc�h�b�M�oth��sun��and������-�sun-cmd�,��ffor�instance.����K�:�application������-�The����application��construct�is�used�to�include�application-sp�M�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�b�M�e�used�to����
��������G�10�9pGNU��fReadline�Library�����3*�����֍���-bind��Dk��!ey�sequences�to�functions�useful�for�a�sp�M�ecic�program.��wF��eor��
33����-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��33��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��
33��K�:and���bindings�from�that�le.��F��eor�example,��#the�follo��!wing�directiv�e�reads�from����K�:`�/etc/inputrc�':����hʏ�$include���/etc/inputrc�����G�a1.3.3�d(Sample��MInit�File���ff��!G�Here���is�an�example�of�an��inputrc�R��le.��This�illustrates�k��!ey�binding,���v��dDariable�assignmen�t,����Gand��fconditional�syn��!tax.�����Z������G�Chapter��f1:���Command�Line�Editing��Ӯ11�����3*����	��.���#���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�systemwide�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�12�9pGNU��fReadline�Library�����3*�����֍�.���#"\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����
�p������G�Chapter��f1:���Command�Line�Editing��Ӯ13�����3*�����֍�.���#���For�FTP��
33��.��$if���Ftp����.��"\C-xg":���"get�\M-?"����.��"\C-xt":���"put�\M-?"����.��"\M-.":���yank-last-arg����.��$endif��8㍍�G�X1.4��Bindable�f@Readline�Commands���$��!G�This���section�describ�M�es�Readline�commands�that�ma��!y�b�e�b�ound�to�k��!ey�sequences.�6Com-����Gmand��fnames�without�an�accompan��!ying�k�ey�sequence�are�un�b�M�ound�b�y�default.���ԍ�!GIn�%Xthe�follo��!wing�descriptions,�?'�p�M�oin�t�bX�refers�to�the�curren�t�cursor�p�M�osition,�?'and��mark��\�refers����Gto��Aa�cursor�p�M�osition�sa��!v�ed��Ab�y�the��set-mark��command.��oThe�text�b�M�et�w�een�the�p�M�oin�t�and����Gmark��fis�referred�to�as�the��region�.��8㍍�G�a1.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.���u��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�the�end�of�the�next�w�ord.�܉W��eords�are�comp�M�osed�of�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�comp�M�osed����K�:of��fletters�and�digits.����G�clear-screen��f(C-l)����K�:�Clear�2�the�screen�and�redra��!w�the�curren�t�line,�I�lea�ving�the�curren�t�line�at�the�top����K�:of��fthe�screen.����G�redraw-current-line��f()����K�:�Refresh��fthe�curren��!t�line.���By�default,�this�is�un�b�M�ound.��8㍍�G�a1.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��0b�M�e�added�to�the�history�list�for�future�recall�with��add_history()�.�g<If�this����K�:line��fis�a�mo�M�died�history�line,�the�history�line�is�restored�to�its�original�state.�����荟����G�14�9pGNU��fReadline�Library�����3*�����֍�G�previous-history��f(C-p)��
33��K�:�Mo��!v�e��f`bac�k'�through�the�history�list,�fetc�hing�the�previous�command.���s��G�next-history��f(C-n)����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�b�M�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�a�non-incremen��!tal�searc�h�for�a�string�supplied�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�necessary�using�a�non-incremen��!tal�searc�h�for�a�string�supplied�b�y�the����K�:user.����G�history-search-forward��f()����K�:�Searc��!h��Oforw�ard�through�the�history�for�the�string�of�c�haracters�b�M�et�w�een�the����K�:start�7�of�the�curren��!t�line�and�the�p�M�oin�t.���This�is�a�non-incremen�tal�searc�h.���By����K�:default,��fthis�command�is�un��!b�M�ound.����G�history-search-backward��f()����K�:�Searc��!h�-�bac�kw�ard�through�the�history�for�the�string�of�c�haracters�b�M�et�w�een�the����K�:start�7�of�the�curren��!t�line�and�the�p�M�oin�t.���This�is�a�non-incremen�tal�searc�h.���By����K�:default,��fthis�command�is�un��!b�M�ound.����G�yank-nth-arg��f(M-C-y)����K�:�Insert�s�the�rst�argumen��!t�to�the�previous�command�(usually�the�second�w�ord����K�:on��|the�previous�line)�at�p�M�oin��!t.�h With�an�argumen�t��n�,��insert�the��n�th�w�ord�from����K�:the�0�previous�command�(the�w��!ords�in�the�previous�command�b�M�egin�with�w�ord����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��n��is�computed,�
?the�argumen�t�is�extracted�as�if����K�:the��f`�!�n�Ds�'�history�expansion�had�b�M�een�sp�ecied.����G�yank-last-arg��f(M-.�or�M-_)����K�:�Insert�5Elast�argumen��!t�to�the�previous�command�(the�last�w�ord�of�the�previous����K�:history��fen��!try).���With�an�argumen�t,���b�M�eha�v�e�exactly�lik�e��yank-nth-arg�.���Succes-����K�:siv��!e�&�calls�to��yank-last-arg��mo�v�e�bac�k�through�the�history�list,�F�inserting�the����K�:last��eargumen��!t�of�eac�h�line�in�turn.���The�history�expansion�facilities�are�used�to����K�:extract��fthe�last�argumen��!t,�as�if�the�`�!$�'�history�expansion�had�b�M�een�sp�ecied.�����C������G�Chapter��f1:���Command�Line�Editing��Ӯ15�����3*�����֍��G�a1.4.3�d(Commands��MF��ģor�Changing�T�ext����G�delete-char��f(C-d)��
33��K�:�Delete���the�c��!haracter�at�p�M�oin�t.��If�p�M�oin�t�is�at�the�b�M�eginning�of�the�line,���there����K�:are�r�no�c��!haracters�in�the�line,���and�the�last�c�haracter�t�yp�M�ed�w�as�not�b�M�ound�to����K�:�delete-char�,��fthen�return��eof�.��C��G�backward-delete-char��f(Rubout)����K�:�Delete���the�c��!haracter�b�M�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�b�M�ehind�the�cursor�is�deleted.�S�By�default,��~this����K�:is��fnot�b�M�ound�to�a�k��!ey��e.����G�quoted-insert��f(C-q�or�C-v)����K�:�Add��the�next�c��!haracter�t�yp�M�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-������h�����̟�@�ff�l����T��J�AB����̟ٚ�ff�l���8�����i���ь�)����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�b�M�efore�the�cursor�forw�ard�o�v�er�the�c�haracter�at�the�cursor,����K�:mo��!ving�C"the�cursor�forw�ard�as�w�ell.��If�the�insertion�p�M�oin�t�is�at�the�end�of�the����K�:line,���then���this�transp�M�oses�the�last�t��!w�o���c�haracters�of�the�line.���Negativ�e�argumen�ts����K�:ha��!v�e��fno�eect.����G�transpose-words��f(M-t)����K�:�Drag���the�w��!ord�b�M�efore�p�oin��!t�past�the�w�ord�after�p�M�oin�t,��mo�ving�p�M�oin�t�past�that����K�:w��!ord�g�as�w�ell.���If�the�insertion�p�M�oin�t�is�at�the�end�of�the�line,�tAthis�transp�M�oses�the����K�:last��ft��!w�o�w�ords�on�the�line.����G�upcase-word��f(M-u)����K�:�Upp�M�ercase���the�curren��!t�(or�follo�wing)�w�ord.�o#With�a�negativ�e�argumen�t,���upp�M�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�curren��!t�(or�follo�wing)�w�ord.��#With�a�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,�

switc�hes����K�:to���o��!v�erwrite�mo�M�de.��fWith�an�explicit�non-p�ositiv��!e�n�umeric�argumen�t,�Ϯswitc�hes�to����ᑍ�����G�16�9pGNU��fReadline�Library�����3*�����֍�K�:insert���mo�M�de.��=This�command�aects�only��emacs��mo�de;���vi��mo�de�do�es�o��!v�erwrite��
33��K�:dieren��!tly��e.���Eac�h��fcall�to��readline()��starts�in�insert�mo�M�de.�����K�:In���o��!v�erwrite�mo�M�de,��c�haracters�b�M�ound�to��self-insert��replace�the�text�at�p�oin��!t����K�:rather���than�pushing�the�text�to�the�righ��!t.��tCharacters�b�M�ound�to��backward-����K�:delete-char��f�replace�the�c��!haracter�b�M�efore�p�oin��!t�with�a�space.����K�:By��fdefault,�this�command�is�un��!b�M�ound.��p����G�a1.4.4�d(Killing��MAnd�Y��ģanking����G��G�kill-line��f(C-k)����K�:�Kill��fthe�text�from�p�M�oin��!t�to�the�end�of�the�line.��(���G�backward-kill-line��f(C-x�Rubout)����K�:�Kill��fbac��!kw�ard�to�the�b�M�eginning�of�the�line.����G�unix-line-discard��f(C-u)����K�:�Kill��fbac��!kw�ard�from�the�cursor�to�the�b�M�eginning�of�the�curren�t�line.����G�kill-whole-line��f()����K�:�Kill�cjall�c��!haracters�on�the�curren�t�line,���no�matter�where�p�M�oin�t�is.��By�default,����K�:this��fis�un��!b�M�ound.����G�kill-word��f(M-d)����K�:�Kill��from�p�M�oin��!t�to�the�end�of�the�curren�t�w�ord,��Qor�if�b�M�et�w�een�w�ords,��Qto�the�end����K�:of��fthe�next�w��!ord.���W��eord�b�M�oundaries�are�the�same�as��forward-word�.����G�backward-kill-word��f(M-������h�����̟�@�ff������DEL����̟ٚ�ff������8����i�����)����K�:�Kill�w�the�w��!ord�b�M�ehind�p�oin��!t.��XW��eord�b�oundaries�are�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�b�M�oundary��e.�R�The�killed����K�:text��fis�sa��!v�ed��fon�the�kill-ring.����G�unix-filename-rubout��f()����K�:�Kill�]�the�w��!ord�b�M�ehind�p�oin��!t,���using�white�space�and�the�slash�c�haracter�as�the����K�:w��!ord��fb�M�oundaries.���The�killed�text�is�sa�v�ed�on�the�kill-ring.����G�delete-horizontal-space��f()����K�:�Delete��fall�spaces�and�tabs�around�p�M�oin��!t.���By�default,�this�is�un�b�M�ound.����G�kill-region��f()����K�:�Kill��fthe�text�in�the�curren��!t�region.���By�default,�this�command�is�un�b�M�ound.����G�copy-region-as-kill��f()����K�:�Cop��!y��the�text�in�the�region�to�the�kill�buer,�0Eso�it�can�b�M�e�y�ank�ed�righ�t�a�w�a�y��e.����K�:By��fdefault,�this�command�is�un��!b�M�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�b�M�oundaries�are�the����K�:same��fas��backward-word�.���By�default,�this�command�is�un��!b�M�ound.����G�copy-forward-word��f()����K�:�Cop��!y��8the�w�ord�follo�wing�p�M�oin�t�to�the�kill�buer.�SThe�w�ord�b�M�oundaries�are�the����K�:same��fas��forward-word�.���By�default,�this�command�is�un��!b�M�ound.����쫍�����G�Chapter��f1:���Command�Line�Editing��Ӯ17�����3*�����֍�G�yank��f(C-y)��
33��K�:�Y��eank��fthe�top�of�the�kill�ring�in��!to�the�buer�at�p�M�oin�t.��FӍ�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�.��p���G�a1.4.5�d(Sp�iecifying��MNumeric�Argumen���ts���p6��G�digit-argument��f(�M-0�,��M-1�,��...�����M--�)����K�:�Add�:Lthis�digit�to�the�argumen��!t�already�accum�ulating,�O�or�start�a�new�argumen�t.����K�:�M--��f�starts�a�negativ��!e�argumen�t.����G�universal-argument��f()����K�:�This�kis�another�w��!a�y�kto�sp�M�ecify�an�argumen��!t.���If�this�command�is�follo�w�ed�b�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�sp�M�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�sign,�i�the�argumen�t�coun�t�for�the�next�command�is�m�ultiplied�b�y�four.����K�:The�{targumen��!t�coun�t�is�initially�one,���so�executing�this�function�the�rst�time����K�:mak��!es��2the�argumen�t�coun�t�four,��ea�second�time�mak�es�the�argumen�t�coun�t�six-����K�:teen,��fand�so�on.���By�default,�this�is�not�b�M�ound�to�a�k��!ey��e.��p���G�a1.4.6�d(Letting��MReadline�T���yp�ie�F��ģor�Y�ou���p6��G�complete��f(������h�����̟�@�ff�l����T��J�AB����̟ٚ�ff�l���8�����i���ь�)����K�:�A��!ttempt���to�p�M�erform�completion�on�the�text�b�efore�p�oin��!t.��The�actual�completion����K�:p�M�erformed��fis�application-sp�ecic.���The�default�is�lename�completion.����G�possible-completions��f(M-?)����K�:�List��fthe�p�M�ossible�completions�of�the�text�b�efore�p�oin��!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�b�M�een�generated����K�:b��!y��f�possible-completions�.����G�menu-complete��f()����K�:�Similar��Vto��complete�,��but�replaces�the�w��!ord�to�b�M�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�p�M�ossible�completions,�!�inserting�eac��!h�matc�h�in�turn.����K�:A��!t�j�the�end�of�the�list�of�completions,���the�b�M�ell�is�rung�(sub���ject�to�the�setting����K�:of�Th�bell-style�)�and�the�original�text�is�restored.���An�argumen��!t�of��n��mo�v�es��n����K�:�p�M�ositions�,Rforw��!ard�in�the�list�of�matc�hes;�oGa�negativ�e�argumen�t�ma�y�b�M�e�used�to����K�:mo��!v�e���bac�kw�ard�through�the�list.��UThis�command�is�in�tended�to�b�M�e�b�ound�to������K�:����h����N���@�ff�l����T��J�AB���N��ٚ�ff�l���`䞙��i���c���,��fbut�is�un��!b�M�ound�b�y�default.����G�delete-char-or-list��f()����K�:�Deletes�9{the�c��!haracter�under�the�cursor�if�not�at�the�b�M�eginning�or�end�of�the�line����K�:(lik��!e�~��delete-char�).�СIf�at�the�end�of�the�line,���b�M�eha�v�es�iden�tically�to��possible-����K�:completions�.���This��fcommand�is�un��!b�M�ound�b�y�default.�����፟����G�18�9pGNU��fReadline�Library�����3*�����֍��G�a1.4.7�d(Keyb�ioard��MMacros�������G�start-kbd-macro��f(C-x�()��
33��K�:�Begin��fsa��!ving�the�c�haracters�t�yp�M�ed�in�to�the�curren�t�k�eyb�M�oard�macro.���㍑G�end-kbd-macro��f(C-x�))����K�:�Stop�G!sa��!ving�the�c�haracters�t�yp�M�ed�in�to�the�curren�t�k�eyb�M�oard�macro�and�sa�v�e�the����K�:denition.����G�call-last-kbd-macro��f(C-x�e)����K�:�Re-execute�9Bthe�last�k��!eyb�M�oard�macro�dened,�]�b�y�making�the�c�haracters�in�the����K�:macro��fapp�M�ear�as�if�t��!yp�ed�at�the�k��!eyb�oard.���_���G�a1.4.8�d(Some��MMiscellaneous�Commands�������G�re-read-init-file��f(C-x�C-r)����K�:�Read��kin�the�con��!ten�ts��kof�the��inputrc�Jo�le,���and�incorp�M�orate�an��!y�bindings�or�v��dDariable����K�:assignmen��!ts��ffound�there.����G�abort��f(C-g)����K�:�Ab�M�ort�/the�curren��!t�editing�command�and�ring�the�terminal's�b�ell�(sub���ject�to�the����K�:setting��fof��bell-style�).����G�do-uppercase-version��f(M-a,�M-b,�M-�x�,��...���e)����K�:�If�Q�the�metaed�c��!haracter��x�T�is�lo�w�ercase,�b�run�the�command�that�is�b�M�ound�to�the����K�:corresp�M�onding��fupp�ercase�c��!haracter.����G�prefix-meta��f(������h�����̟�@�ff�T����ESC����̟ٚ�ff�T��������i����t�)����K�:�Metafy��2the�next�c��!haracter�t�yp�M�ed.�q@This�is�for�k�eyb�M�oards�without�a�meta�k�ey��e.����K�:T��!yping��f`������h�����̟�@�ff�T����ESC����̟ٚ�ff�T��������i���K��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�b�M�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�b�M�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�p�M�oin��!t.���If�a�n�umeric�argumen�t�is�supplied,�ythe�mark�is�set����K�:to��fthat�p�M�osition.����G�exchange-point-and-mark��f(C-x�C-x)����K�:�Sw��!ap���the�p�M�oin�t�with�the�mark.�'!The�curren�t�cursor�p�M�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�read�and�p�M�oin�t�is�mo�v�ed�to�the�next�o�M�ccurrence�of�that�c�haracter.����K�:A��fnegativ��!e�coun�t�searc�hes�for�previous�o�M�ccurrences.����䍟����G�Chapter��f1:���Command�Line�Editing��Ӯ19�����3*�����֍�G�character-search-backward��f(M-C-])��
33��K�:�A�c"c��!haracter�c�is�read�and�p�M�oin�t�is�mo�v�ed�to�the�previous�o�M�ccurrence�of�that����K�:c��!haracter.���A��fnegativ�e�coun�t�searc�hes�for�subsequen�t�o�M�ccurrences.��33��G�insert-comment��f(M-#)����K�:�Without�G�a�n��!umeric�argumen�t,�p+the�v��dDalue�of�the��comment-begin��v�ariable�is�in-����K�:serted���at�the�b�M�eginning�of�the�curren��!t�line.�QdIf�a�n�umeric�argumen�t�is�supplied,����K�:this�c�command�acts�as�a�toggle:�Yif�the�c��!haracters�at�the�b�M�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�deleted�from�the�b�M�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�of�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�dump-variables��f()����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.����G�dump-macros��f()����K�:�Prin��!t�
�all�of�the�Readline�k�ey�sequences�b�M�ound�to�macros�and�the�strings�they����K�:output.�r�If�-Ja�n��!umeric�argumen�t�is�supplied,�Othe�output�is�formatted�in�suc�h�a����K�:w��!a�y��that�it�can�b�M�e�made�part�of�an��inputrc�D�le.���This�command�is�un��!b�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�X1.5��Readline�f@vi�Mo�s3de���ff��!G�While��Uthe�Readline�library�do�M�es�not�ha��!v�e��Ua�full�set�of��vi��editing�functions,��it�do�es�con��!tain����Genough��to�allo��!w�simple�editing�of�the�line.�.�The�Readline��vi��mo�M�de�b�eha��!v�es��as�sp�ecied�in����Gthe��f�posix��1003.2�standard.��33��!GIn�|Uorder�to�switc��!h�in�teractiv�ely�b�M�et�w�een��emacs��and��vi��editing�mo�M�des,���use�the�command����G�M-C-j��i�(b�M�ound�to�emacs-editing-mo�de�when�in��vi��mo�de�and�to�vi-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��mo�M�de,���y�ou�are�already�placed�in�`insertion'�mo�M�de,���as�if�y�ou����Ghad�&Gt��!yp�M�ed�an�`�i�'.��(Pressing�������h������@�ff�T����ESC����ٚ�ff�T���2ٞ���i�����switc�hes�y�ou�in�to�`command'�mo�M�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�20�9pGNU��fReadline�Library�����3*���������G�Chapter��f2:���Programming�with�GNU�Readline�ʗ21�����3*�����֍��G�O2�	�QProgramming�z�with�GNU�Readline������!G�This�
c��!hapter�describ�M�es�the�in�terface�b�M�et�w�een�the��gnu��Readline�Library�and�other�pro-��
33��Ggrams.���If���y��!ou�are�a�programmer,��and�y�ou�wish�to�include�the�features�found�in��gnu��Readline����Gsuc��!h���as�completion,��line�editing,�and�in��!teractiv�e���history�manipulation�in�y��!our�o�wn�programs,����Gthis��fsection�is�for�y��!ou.���{���G�X2.1��Basic�f@Beha���vior���B���!G�Man��!y���programs�pro�vide�a�command�line�in�terface,��tsuc�h�as��mail�,��t�ftp�,�and����sh�.��1F��eor�suc�h����Gprograms,�x�the�mFdefault�b�M�eha��!viour�of�Readline�is�sucien�t.���This�section�describ�M�es�ho�w�to�use����GReadline�!tin�the�simplest�w��!a�y�!tp�M�ossible,�@8p�erhaps�to�replace�calls�in�y��!our�co�de�to��gets()��or����G�fgets()�.��\��!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��readline��returns�is�allo�M�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�Ds�);����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����Gp�M�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�~y��!ou�w�an�t�the�user�to�b�M�e�able�to�get�at�the�line�later,�7F(with�������h����J��@�ff
�ԟ���C-p���J�ٚ�ff
�Ԏ��5�����i������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�asso�M�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�reuse�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{����������G�22�9pGNU��fReadline�Library�����3*�����֍�Qw��free���(line_read);��
33��Qw�line_read���=�(char�*)NULL;����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);����.��}���D��!G�This���function�giv��!es�the�user�the�default�b�M�eha�viour�of�������h����Ĺ��@�ff�l����T��J�AB���Ĺ�ٚ�ff�l��������i����f�completion:�w�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�������h�����2��@�ff�l����T��J�AB����2�ٚ�ff�l��������i���X�k��!ey�with��rl_bind_key()�.����.���int���rl_bind_key�(int��key�,�rl_command_func_t�*�function�Ds�);����!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�Mj�is�the�address�of�the�function�to�call�when��k��!ey�=��is�pressed.���Binding�������h����86��@�ff�l����T��J�AB���86�ٚ�ff�l��������i��� l`�to��rl_����Ginsert()�7L�mak��!es�������h����"��@�ff�l����T��J�AB���"�ٚ�ff�l���o�����i��� @$�insert�itself.����rl_bind_key()��returns�non-zero�if��k�ey�'d�is�not�a�v��dDalid����GASCI�M�I��fc��!haracter�co�de�(b�et��!w�een��f0�and�255).����!GTh��!us,��fto�disable�the�default�������h�����2��@�ff�l����T��J�AB����2�ٚ�ff�l��������i���X�b�M�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-����Gtion���called��initialize_readline()��whic��!h�p�M�erforms�this�and�other�desired�initializations,����Gsuc��!h��fas�installing�custom�completers�(see�Section�2.6�[Custom�Completers],�page�41).���3���G�X2.2��Custom�f@F���functions����w��!G�Readline��}pro��!vides�man�y�functions�for�manipulating�the�text�of�the�line,�but�it�isn't�p�M�ossi-����Gble�)jto�an��!ticipate�the�needs�of�all�programs.��4This�section�describ�M�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.����!GBefore�a�declaring�an��!y�functions�that�customize�Readline's�b�M�eha�vior,���or�using�an�y�func-����Gtionalit��!y�xQReadline�pro�vides�in�other�co�M�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�b�M�e�included�b�efore����G�readline.h�.����!G�readline.h��2�denes�a�C��1prepro�M�cessor�v��dDariable�that�should�b�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�Readline�v��!ersion.���The�v��dDalue�is�a�hexadecimal�enco�M�ding�of�the�ma���jor�and����Gminor�Rv��!ersion�n�um�b�M�ers�of�the�library��e,�8�of�the�form�0x�MMmm�.�<��MM�J��is�the�t�w�o-digit�ma���jor����Gv��!ersion�z.n�um�b�M�er;����mm��is�the�t�w�o-digit�minor�v�ersion�n�um�b�M�er.�� F��eor�Readline�4.2,��for�example,����Gthe��fv��dDalue�of��RL_READLINE_VERSION��w��!ould�b�M�e��0x0402�.����'ꍟ����G�Chapter��f2:���Programming�with�GNU�Readline�ʗ23�����3*�����֍��G�a2.2.1�d(Readline��MT���yp�iedefs�����!G�F��eor��freadabilt��!y�,�w��!e�declare�a�n�um�b�M�er�of�new�ob���ject�t�yp�M�es,�all�p�oin��!ters�to�functions.���ލ�!GThe�I�reason�for�declaring�these�new�t��!yp�M�es�is�to�mak�e�it�easier�to�write�co�M�de�describing��
33��Gp�M�oin��!ters��fto�C�functions�with�appropriately�protot�yp�M�ed�argumen�ts�and�return�v��dDalues.����!GF��eor�m�instance,���sa��!y�w�e�w�an�t�to�declare�a�v��dDariable��func���as�a�p�M�oin�ter�to�a�function�whic�h����Gtak��!es��t�w�o��int��argumen�ts�and�returns�an��int��(this�is�the�t�yp�M�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�p�M�oin��!ter�t�yp�M�es�a�v��dDailable�is������G�typedef��fint�rl_command_func_t�(int,�int);����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�**);��UU���G�a2.2.2�d(W��ģriting��Ma�New�F�unction�����!G�In���order�to�write�new�functions�for�Readline,��y��!ou�need�to�kno�w�the�calling�con�v�en�tions����Gfor�l�k��!eyb�M�oard-in�v�ok�ed�functions,��Jand�the�names�of�the�v��dDariables�that�describ�M�e�the�curren�t����Gstate��fof�the�line�read�so�far.����!GThe��fcalling�sequence�for�a�command��foo��lo�M�oks�lik��!e����.���int���foo�(int�count,�int�key)����G�where�Pg�coun��!t��g�is�the�n�umeric�argumen�t�(or�1�if�defaulted)�and��k�ey�@�is�the�k�ey�that�in�v�ok�ed����Gthis��ffunction.����!GIt��is�completely�up�to�the�function�as�to�what�should�b�M�e�done�with�the�n��!umeric�argumen�t.����GSome��;functions�use�it�as�a�rep�M�eat�coun��!t,�psome�as�a�
ag,�and�others�to�c��!ho�M�ose�alternate����5�������G�24�9pGNU��fReadline�Library�����3*�����֍�Gb�M�eha��!vior�4�(refreshing�the�curren�t�line�as�opp�M�osed�to�refreshing�the�screen,���for�example).��
33��GSome��c��!ho�M�ose�to�ignore�it.��In�general,��if�a�function�uses�the�n�umeric�argumen�t�as�a�rep�M�eat����Gcoun��!t,�itit�Z7should�b�M�e�able�to�do�something�useful�with�b�oth�negativ��!e�and�p�ositiv��!e�argumen�ts.����GA��!t��fthe�v�ery�least,�it�should�b�M�e�a�w�are�that�it�can�b�M�e�passed�a�negativ�e�argumen�t.�����!GA�U�command�Vfunction�should�return�0�if�its�action�completes�successfully��e,�fand�a�non-zero����Gv��dDalue��.if�some�error�o�M�ccurs.�4This�is�the�con��!v�en�tion��.ob�ey�ed��.b�y�all�of�the�builtin�Readline����Gbindable��fcommand�functions.���f���G�X2.3��Readline�f@V���fariables���3��!G�These��fv��dDariables�are�a��!v�ailable�to�function�writers.��	������3[V��eariable]���G�=��<x
cmtt10�char���*��<�"V
cmbx10�rl���R���#؎�|line���R���#؎�buer����.���This��is�the�line�gathered�so�far.�$�Y��eou�are�w��!elcome�to�mo�M�dify�the�con�ten�ts�of�the�line,����.��but�Dqsee�Section�2.4.5�[Allo��!wing�Undoing],�k�page�32.���The�function��rl_extend_line_����.��buffer��f�is�a��!v��dDailable�to�increase�the�memory�allo�M�cated�to��rl_line_buffer�.�������3[V��eariable]���G�int����rl���R���#؎�|p�b"oin���t����.���The��foset�of�the�curren��!t�cursor�p�M�osition�in��rl_line_buffer��(the��p��p�oint�	��).�������3[V��eariable]���G�int����rl���R���#؎�|end����.���The�Y6n��!um�b�M�er�of�c�haracters�presen�t�in��rl_line_buffer�.��"When��rl_point��is�at�the�end����.��of��fthe�line,��rl_point��and��rl_end��are�equal.�������3[V��eariable]���G�int����rl���R���#؎�|mark����.���The�n��mark���(sa��!v�ed�p�M�osition)�in�the�curren�t�line.�6�If�set,���the�mark�and�p�M�oin�t�dene�a����.���r��p�e�gion�.�������3[V��eariable]���G�int����rl���R���#؎�|done����.���Setting���this�to�a�non-zero�v��dDalue�causes�Readline�to�return�the�curren��!t�line�immediately��e.�������3[V��eariable]���G�int����rl���R���#؎�|n���um���R���#؎�c�hars���R���#؎�to���R���#؎�read����.���Setting��this�to�a�p�M�ositiv��!e�v��dDalue�b�efore�calling��readline()��causes�Readline�to�return����.��after�H�accepting�that�man��!y�c�haracters,�q}rather�than�reading�up�to�a�c�haracter�b�M�ound����.��to��f�accept-line�.�������3[V��eariable]���G�int����rl���R���#؎�|p�b"ending���R���#؎�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����rl���R���#؎�|dispatc���hing����.���Set��Wto�a�non-zero�v��dDalue�if�a�function�is�b�M�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����rl���R���#؎�|erase���R���#؎�empt���y���R���#؎�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�yp�M�ed�as�the�only�c�haracter�on����.��an�\
otherwise-empt��!y�line.���The�cursor�is�mo�v�ed�to�the�b�M�eginning�of�the�newly-blank����.��line.����@�������G�Chapter��f2:���Programming�with�GNU�Readline�ʗ25�����3*�����֍����3[V��eariable]���G�char���*��rl���R���#؎�|prompt��
33��.���The�#=prompt�Readline�uses.��%This�is�set�from�the�argumen��!t�to��readline()�,�=yand�should����.��not�:^b�M�e�assigned�to�directly��e.���The��rl_set_prompt()��function�(see�Section�2.4.6�[Redis-����.��pla��!y],��fpage�32)�ma�y�b�M�e�used�to�mo�dify�the�prompt�string�after�calling��readline()�.�������3[V��eariable]���G�int����rl���R���#؎�|already���R���#؎�prompted����.���If�\Xan�application�wishes�to�displa��!y�the�prompt�itself,���rather�than�ha�v�e�Readline�do����.��it��9the�rst�time��readline()��is�called,�nit�should�set�this�v��dDariable�to�a�non-zero�v�alue����.��after���displa��!ying�the�prompt.��The�prompt�m�ust�also�b�M�e�passed�as�the�argumen�t�to����.���readline()��	�so�the�redispla��!y�functions�can�up�M�date�the�displa�y�prop�M�erly��e.���The�calling����.��application��fis�resp�M�onsible�for�managing�the�v��dDalue;�Readline�nev��!er�sets�it.�������3[V��eariable]���G�const���char�*��rl���R���#؎�|library���R���#؎�v���ersion����.���The��fv��!ersion�n�um�b�M�er�of�this�revision�of�the�library��e.�������3[V��eariable]���G�int����rl���R���#؎�|readline���R���#؎�v���ersion����.���An��in��!teger�enco�M�ding�the�curren�t�v�ersion�of�the�library��e.�4bThe�enco�M�ding�is�of�the�form����.��0x�MMmm�,���where�b��MM��I�is�the�t��!w�o-digit�b�ma���jor�v��!ersion�n�um�b�M�er,���and��mm��is�the�t�w�o-����.��digit�{�minor�v��!ersion�n�um�b�M�er.�]�F��eor�example,��
for�Readline-4.2,��rl_readline_version����.���w��!ould��fha�v�e�the�v��dDalue�0x0402.�������3[V��eariable]���G�int����rl���R���#؎�|gn���u���R���#؎�readline���R���#؎�p����.���Alw��!a�ys��fset�to�1,�denoting�that�this�is��gnu��readline�rather�than�some�em��!ulation.�������3[V��eariable]���G�const���char�*��rl���R���#؎�|terminal���R���#؎�name����.���The�_terminal�t��!yp�M�e,�mJused�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.�������3[V��eariable]���G�const���char�*��rl���R���#؎�|readline���R���#؎�name����.���This���v��dDariable�is�set�to�a�unique�name�b��!y�eac�h�application�using�Readline.�)4The�v��dDalue����.��allo��!ws�]wconditional�parsing�of�the�inputrc�le�(see�Section�1.3.2�[Conditional�Init�Con-����.��structs],��fpage�9).�������3[V��eariable]���G�FILE���*��rl���R���#؎�|instream����.���The��stdio�stream�from�whic��!h�Readline�reads�input.��+If��NULL�,�?FReadline�defaults�to����.���stdin�.�������3[V��eariable]���G�FILE���*��rl���R���#؎�|outstream����.���The�#Rstdio�stream�to�whic��!h�Readline�p�M�erforms�output.�T�If��NULL�,�B�Readline�defaults�to����.���stdout�.�������3[V��eariable]���G�int����rl���R���#؎�|prefer���R���#؎�en���v���R���#؎�winsize����.���If�h non-zero,�t�Readline�giv��!es�v��dDalues�found�in�the��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.�������3[V��eariable]���G�rl_command_func_t���*��rl���R���#؎�|last���R���#؎�func����.���The�-)address�of�the�last�command�function�Readline�executed.�r&Ma��!y�b�M�e�used�to�test����.��whether��for�not�a�function�is�b�M�eing�executed�t��!wice�in�succession,�for�example.����NP������G�26�9pGNU��fReadline�Library�����3*�����֍����3[V��eariable]���G�rl_hook_func_t���*��rl���R���#؎�|startup���R���#؎�ho�b"ok��
33��.���If��non-zero,�>this�is�the�address�of�a�function�to�call�just�b�M�efore��readline��prin��!ts�the����.��rst��fprompt.��p������3[V��eariable]���G�rl_hook_func_t���*��rl���R���#؎�|pre���R���#؎�input���R���#؎�ho�b"ok����.���If�C�non-zero,�k9this�is�the�address�of�a�function�to�call�after�the�rst�prompt�has�b�M�een����.��prin��!ted��fand�just�b�M�efore��readline��starts�reading�input�c�haracters.�������3[V��eariable]���G�rl_hook_func_t���*��rl���R���#؎�|ev���en�t���R���#؎�ho�b"ok����.���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�b�M�e�called�at�most�ten�times�a�second����.��if��fthere�is�no�k��!eyb�M�oard�input.�������3[V��eariable]���G�rl_getc_func_t���*��rl���R���#؎�|getc���R���#؎�function����.���If��Wnon-zero,���Readline�will�call�indirectly�through�this�p�M�oin��!ter�to�get�a�c�haracter�from����.��the��`input�stream.���By�default,��^it�is�set�to��rl_getc�,�the�default�Readline�c��!haracter����.��input��ffunction�(see�Section�2.4.8�[Character�Input],�page�34).�������3[V��eariable]���G�rl_voidfunc_t���*��rl���R���#؎�|redispla���y���R���#؎�function����.���If�S�non-zero,�~�Readline�will�call�indirectly�through�this�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�32).�������3[V��eariable]���G�rl_vintfunc_t���*��rl���R���#؎�|prep���R���#؎�term���R���#؎�function����.���If���non-zero,�	�Readline�will�call�indirectly�through�this�p�M�oin��!ter�to�initialize�the�terminal.����.��The�u�function�tak��!es�a�single�argumen�t,��Gan��int��
ag�that�sa�ys�whether�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�35).�������3[V��eariable]���G�rl_voidfunc_t���*��rl���R���#؎�|deprep���R���#؎�term���R���#؎�function����.���If�eynon-zero,��>Readline�will�call�indirectly�through�this�p�M�oin��!ter�to�reset�the�terminal.����.��This�4�function�should�undo�the�eects�of��rl_prep_term_function�.��XBy�default,�Xthis����.��is��fset�to��rl_deprep_terminal��(see�Section�2.4.9�[T��eerminal�Managemen��!t],�page�35).�������3[V��eariable]���G�Keymap����rl���R���#؎�|executing���R���#؎�k���eymap����.���This�ROv��dDariable�is�set�to�the�k��!eymap�(see�Section�2.4.2�[Keymaps],�}Hpage�28)�in�whic�h����.��the��fcurren��!tly�executing�readline�function�w�as�found.�������3[V��eariable]���G�Keymap����rl���R���#؎�|binding���R���#؎�k���eymap����.���This�ROv��dDariable�is�set�to�the�k��!eymap�(see�Section�2.4.2�[Keymaps],�}Hpage�28)�in�whic�h����.��the��flast�k��!ey�binding�o�M�ccurred.�������3[V��eariable]���G�char���*��rl���R���#؎�|executing���R���#؎�macro����.���This��fv��dDariable�is�set�to�the�text�of�an��!y�curren�tly-executing�macro.�������3[V��eariable]���G�int����rl���R���#؎�|readline���R���#؎�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�test�whether�a�particular�state�bit�is�set.�X�Curren��!t�state�bits����.��include:����\�������G�Chapter��f2:���Programming�with�GNU�Readline�ʗ27�����3*�����֍�.���RL_STATE_NONE��
33��hʏ�Readline��fhas�not�y��!et�b�M�een�called,�nor�has�it�b�egun�to�in��!tialize.������.���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��!eyb�M�oard.����.���RL_STATE_METANEXT����hʏ�Readline��fis�reading�more�input�after�reading�the�meta-prex�c��!haracter.����.���RL_STATE_DISPATCHING����hʏ�Readline��fis�dispatc��!hing�to�a�command.����.���RL_STATE_MOREINPUT����hʏ�Readline��fis�reading�more�input�while�executing�an�editing�command.����.���RL_STATE_ISEARCH����hʏ�Readline��fis�p�M�erforming�an�incremen��!tal�history�searc�h.����.���RL_STATE_NSEARCH����hʏ�Readline��fis�p�M�erforming�a�non-incremen��!tal�history�searc�h.����.���RL_STATE_SEARCH����hʏ�Readline�p�is�searc��!hing�bac�kw�ard�or�forw�ard�through�the�history�for�a�string.����.���RL_STATE_NUMERICARG����hʏ�Readline��fis�reading�a�n��!umeric�argumen�t.����.���RL_STATE_MACROINPUT����hʏ�Readline��is�curren��!tly�getting�its�input�from�a�previously-dened�k�eyb�M�oard����hʏmacro.����.���RL_STATE_MACRODEF����hʏ�Readline��fis�curren��!tly�reading�c�haracters�dening�a�k�eyb�M�oard�macro.����.���RL_STATE_OVERWRITE����hʏ�Readline��fis�in�o��!v�erwrite��fmo�M�de.����.���RL_STATE_COMPLETING����hʏ�Readline��fis�p�M�erforming�w��!ord�completion.����.���RL_STATE_SIGHANDLER����hʏ�Readline��fis�curren��!tly�executing�the�readline�signal�handler.����.���RL_STATE_UNDOING����hʏ�Readline��fis�p�M�erforming�an�undo.����.���RL_STATE_DONE����hʏ�Readline�T�has�read�a�k��!ey�sequence�b�M�ound�to��accept-line��and�is�ab�out�to����hʏreturn��fthe�line�to�the�caller.����k�������G�28�9pGNU��fReadline�Library�����3*�����֍����3[V��eariable]���G�int����rl���R���#؎�|explicit���R���#؎�arg��
33��.���Set��]to�a�non-zero�v��dDalue�if�an�explicit�n��!umeric�argumen�t�w�as�sp�M�ecied�b�y�the�user.����.��Only��fv��dDalid�in�a�bindable�command�function.��ۗ�����3[V��eariable]���G�int����rl���R���#؎�|n���umeric���R���#؎�arg����.���Set�r,to�the�v��dDalue�of�an��!y�n�umeric�argumen�t�explicitly�sp�M�ecied�b�y�the�user�b�M�efore����.��executing��the�curren��!t�Readline�function.��LOnly�v��dDalid�in�a�bindable�command�function.�������3[V��eariable]���G�int����rl���R���#؎�|editing���R���#؎�mo�b"de����.���Set�pto�a�v��dDalue�denoting�Readline's�curren��!t�editing�mo�M�de.���A�Fv�alue�of��1���means�Readline����.��is��fcurren��!tly�in�emacs�mo�M�de;��0����means�that�vi�mo�de�is�activ��!e.���}���G�X2.4��Readline�f@Con���v�enience�F���functions���(ۗ���G�a2.4.1�d(Naming��Ma�F��ģunction�������!G�The��luser�can�dynamically�c��!hange�the�bindings�of�k�eys�while�using�Readline.�=�This�is����Gdone�m.b��!y�represen�ting�the�function�with�a�descriptiv�e�name.�26The�user�is�able�to�t�yp�M�e�the����Gdescriptiv��!e��fname�when�referring�to�the�function.���Th�us,�in�an�init�le,�one�migh�t�nd���e��.���Meta-Rubout:�Tbackward-kill-word����!G�This��0binds�the�k��!eystrok�e����0����h��������@�ff2)n����Meta-Rub�<rout������ٚ�ff2)n���9_ܞ���i���A���to��0the�function��descriptively��1�named��backward-��
33��Gkill-word�.�UfY��eou,���as�x�the�programmer,�should�bind�the�functions�y��!ou�write�to�descriptiv�e����Gnames��fas�w��!ell.���Readline�pro�vides�a�function�for�doing�that:�������z[F��eunction]���G�int����rl���R���#؎�|add���R���#؎�defun�y��7m#�R
�3
cmss10�(�const��fchar�*name,�rl_command_func_t�*function,����DGint��fkey�)����.���Add�<��name���to�the�list�of�named�functions.���Mak��!e��function��b�M�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�a�function�to�Readline,�$�y��!ou�ma�y�need�to�use�the�underlying����Gfunctions��fdescrib�M�ed�b�elo��!w.���d���G�a2.4.2�d(Selecting��Ma�Keymap�������!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�t��!yp�M�es�and�the�functions�that�get�run.��#Y��eou�can�mak�e�y�our�o�wn�k�eymaps,�wcop�y����Gexisting��fk��!eymaps,�and�tell�Readline�whic�h�k�eymap�to�use.�������z[F��eunction]���G�Keymap����rl���R���#؎�|mak���e���R���#؎�bare���R���#؎�k�eymap�y��(�void�)����.���Returns��Ea�new,��empt��!y�k�eymap.���The�space�for�the�k�eymap�is�allo�M�cated�with��malloc()�;����.��the��fcaller�should�free�it�b��!y�calling��rl_discard_keymap()��when�done.�������z[F��eunction]���G�Keymap����rl���R���#؎�|cop���y���R���#؎�k�eymap�y��(�Keymap��fmap�)����.���Return��fa�new�k��!eymap�whic�h�is�a�cop�y�of��map�.����sz������G�Chapter��f2:���Programming�with�GNU�Readline�ʗ29�����3*�����֍����z[F��eunction]���G�Keymap����rl���R���#؎�|mak���e���R���#؎�k�eymap�y��(�void�)��
33��.���Return�Ŭa�new�k��!eymap�with�the�prin�ting�c�haracters�b�M�ound�to�rl���>�x�H����tinsert,��}the�lo�w�ercase����.��Meta���c��!haracters�b�M�ound�to�run�their�equiv��dDalen�ts,���and�the�Meta�digits�b�M�ound�to�pro�duce����.��n��!umeric��fargumen�ts.��)㍍���z[F��eunction]���G�void����rl���R���#؎�|discard���R���#؎�k���eymap�y��(�Keymap��fkeymap�)����.���F��eree��fthe�storage�asso�M�ciated�with��k��!eymap�.����!GReadline�qhas�sev��!eral�in�ternal�k�eymaps.�
>These�functions�allo�w�y�ou�to�c�hange�whic�h����Gk��!eymap��fis�activ�e.�������z[F��eunction]���G�Keymap����rl���R���#؎�|get���R���#؎�k���eymap�y��(�void�)����.���Returns��fthe�curren��!tly�activ�e�k�eymap.�������z[F��eunction]���G�void����rl���R���#؎�|set���R���#؎�k���eymap�y��(�Keymap��fkeymap�)����.���Mak��!es��f�k�eymap��g�the�curren�tly�activ�e�k�eymap.�������z[F��eunction]���G�Keymap����rl���R���#؎�|get���R���#؎�k���eymap���R���#؎�b�y���R���#؎�name�y��(�const��fchar�*name�)����.���Return��>the�k��!eymap�matc�hing��name�.��d�name��E�is�one�whic�h�w�ould�b�M�e�supplied�in�a��set����.��keymap��f�inputrc�line�(see�Section�1.3�[Readline�Init�File],�page�4).�������z[F��eunction]���G�char���*��rl���R���#؎�|get���R���#؎�k���eymap���R���#؎�name�y��(�Keymap��fkeymap�)����.���Return��>the�name�matc��!hing��k�eymap�.��d�name��E�is�one�whic�h�w�ould�b�M�e�supplied�in�a��set����.��keymap��f�inputrc�line�(see�Section�1.3�[Readline�Init�File],�page�4).�������G�a2.4.3�d(Binding��MKeys���
���!G�Key�ߺsequences�are�asso�M�ciate�with�functions�through�the�k��!eymap.���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�a�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�b�M�efore�the�rst�call�to��readline()��will����Gb�M�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��f24).����!GThese��ffunctions�manage�k��!ey�bindings.��)㍍���z[F��eunction]���G�int����rl���R���#؎�|bind���R���#؎�k���ey�y��(�int��fkey,�rl_command_func_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�.�������z[F��eunction]���G�int����rl���R���#؎�|bind���R���#؎�k���ey���R���#؎�in���R���#؎�map�y��(�int��fkey,�rl_command_func_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�.�������z[F��eunction]���G�int����rl���R���#؎�|bind���R���#؎�k���ey���R���#؎�if���R���#؎�un�b�b"ound�y��(�int��fkey,�rl_command_func_t����DG*function�)����.���Binds�I�k��!ey�9,�to��function��if�it�is�not�already�b�M�ound�in�the�curren�tly�activ�e�k�eymap.����.��Returns��fnon-zero�in�the�case�of�an�in��!v��dDalid��k�ey��~�or�if��k�ey��~�is�already�b�M�ound.������������G�30�9pGNU��fReadline�Library�����3*�����֍����z[F��eunction]���G�int����rl���R���#؎�|bind���R���#؎�k���ey���R���#؎�if���R���#؎�un�b�b"ound���R���#؎�in���R���#؎�map�y��(�int��fkey,��
33��DGrl_command_func_t��f*function,�Keymap�map�)����.���Binds�G��k��!ey�7��to��function��if�it�is�not�already�b�M�ound�in��map�.��WReturns�non-zero�in�the�case����.��of��fan�in��!v��dDalid��k�ey��~�or�if��k�ey��~�is�already�b�M�ound.���̍����z[F��eunction]���G�int����rl���R���#؎�|un���bind���R���#؎�k�ey�y��(�int��fkey�)����.���Bind�[r�k��!ey�K��to�the�n�ull�function�in�the�curren�tly�activ�e�k�eymap.��Returns�non-zero�in����.��case��fof�error.�������z[F��eunction]���G�int����rl���R���#؎�|un���bind���R���#؎�k�ey���R���#؎�in���R���#؎�map�y��(�int��fkey,�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����rl���R���#؎�|un���bind���R���#؎�function���R���#؎�in���R���#؎�map�y��(�rl_command_func_t��f*function,����DGKeymap��fmap�)����.���Un��!bind��fall�k�eys�that�execute��function��in��map�.�������z[F��eunction]���G�int����rl���R���#؎�|un���bind���R���#؎�command���R���#؎�in���R���#؎�map�y��(�const��fchar�*command,�Keymap����DGmap�)����.���Un��!bind��fall�k�eys�that�are�b�M�ound�to��command���in��map�.�������z[F��eunction]���G�int����rl���R���#؎�|bind���R���#؎�k���eyseq�y��(�const��fchar�*keyseq,�rl_command_func_t����DG*function�)����.���Bind�,�the�k��!ey�sequence�represen�ted�b�y�the�string��k�eyseq�mt�to�the�function��function�,����.��b�M�eginning�c�in�the�curren��!t�k�eymap.�ǠThis�mak�es�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����rl���R���#؎�|bind���R���#؎�k���eyseq���R���#؎�in���R���#؎�map�y��(�const��fchar�*keyseq,����DGrl_command_func_t��f*function,�Keymap�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�p�M�erformed�in��map�.�The�return����.��v��dDalue��fis�non-zero�if��k��!eyseq��L�is�in�v��dDalid.�������z[F��eunction]���G�int����rl���R���#؎�|set���R���#؎�k���ey�y��(�const��fchar�*keyseq,�rl_command_func_t�*function,����DGKeymap��fmap�)����.���Equiv��dDalen��!t��fto��rl_bind_keyseq_in_map�.�������z[F��eunction]���G�int����rl���R���#؎�|bind���R���#؎�k���eyseq���R���#؎�if���R���#؎�un�b�b"ound�y��(�const��fchar�*keyseq,����DGrl_command_func_t��f*function�)����.���Binds�C��k��!eyseq����to��function��if�it�is�not�already�b�M�ound�in�the�curren�tly�activ�e�k�eymap.����.��Returns��fnon-zero�in�the�case�of�an�in��!v��dDalid��k�eyseq��L�or�if��k�eyseq��L�is�already�b�M�ound.�������z[F��eunction]���G�int����rl���R���#؎�|bind���R���#؎�k���eyseq���R���#؎�if���R���#؎�un�b�b"ound���R���#؎�in���R���#؎�map�y��(�const��fchar�*keyseq,����DGrl_command_func_t��f*function,�Keymap�map�)����.���Binds���k��!eyseq���to��function��if�it�is�not�already�b�M�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�b�M�ound.�������z[F��eunction]���G�int����rl���R���#؎�|generic���R���#؎�bind�y��(�int��ftype,�const�char�*keyseq,�char�*data,����DGKeymap��fmap�)����.���Bind�>�the�k��!ey�sequence�represen�ted�b�y�the�string��k�eyseq���to�the�arbitrary�p�M�oin�ter��data�.����.���t��!yp�M�e���sa�ys�j�what�kind�of�data�is�p�oin��!ted�to�b�y��data�;�~�this�can�b�M�e�a�function�(�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�.�����4������G�Chapter��f2:���Programming�with�GNU�Readline�ʗ31�����3*�����֍����z[F��eunction]���G�int����rl���R���#؎�|parse���R���#؎�and���R���#؎�bind�y��(�char��f*line�)��
33��.���P��!arse��y�line�$��as�if�it�had�b�M�een�read�from�the��inputrc��le�and�p�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����rl���R���#؎�|read���R���#؎�init���R���#؎�le�y��(�const��fchar�*filename�)����.���Read��8k��!eybindings�and�v��dDariable�assignmen�ts�from��lename�e?�(see�Section�1.3�[Readline����.��Init��fFile],�page�4).���,���G�a2.4.4�d(Asso�iciating��MF��ģunction�Names�and�Bindings����|��!G�These��Qfunctions�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�a�particular�k�ey�sequence.��*Y��eou�ma�y�also�asso�M�ciate�a�new�function�name�with�an����Garbitrary��ffunction.�������z[F��eunction]���G�rl_command_func_t���*��rl���R���#؎�|named���R���#؎�function�y��(�const��fchar�*name�)����.���Return��fthe�function�with�name��name�.�������z[F��eunction]���G�rl_command_func_t���*��rl���R���#؎�|function���R���#؎�of���R���#؎�k���eyseq�y��(�const��fchar�*keyseq,����DGKeymap��fmap,�int�*type�)����.���Return��the�function�in��!v�ok�ed��b�y��k�eyseq�)��in�k�eymap��map�.���If��map�=��is��NULL�,��Fthe�curren�t����.��k��!eymap�q�is�used.�?�If��t�yp�M�e���is�not��NULL�,��tthe�t�yp�M�e�of�the�ob���ject�is�returned�in�the��int����.���v��dDariable��fit�p�M�oin��!ts�to�(one�of��ISFUNC�,��ISKMAP�,�or��ISMACR�).�������z[F��eunction]���G�char���**��rl���R���#؎�|in���v�oking���R���#؎�k�eyseqs�y��(�rl_command_func_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���**��rl���R���#؎�|in���v�oking���R���#؎�k�eyseqs���R���#؎�in���R���#؎�map�y��(�rl_command_func_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����rl���R���#؎�|function���R���#؎�dump�b"er�y��(�int��freadable�)����.���Prin��!t���the�readline�function�names�and�the�k�ey�sequences�curren�tly�b�M�ound�to�them�to����.���rl_outstream�.���If�LM�readable��T�is�non-zero,�^Rthe�list�is�formatted�in�suc��!h�a�w�a�y�that�it�can����.��b�M�e��fmade�part�of�an��inputrc��le�and�re-read.�������z[F��eunction]���G�void����rl���R���#؎�|list���R���#؎�funmap���R���#؎�names�y��(�void�)����.���Prin��!t��fthe�names�of�all�bindable�Readline�functions�to��rl_outstream�.�������z[F��eunction]���G�const���char�**��rl���R���#؎�|funmap���R���#؎�names�y��(�void�)����.���Return�Sa�NULL�0terminated�arra��!y�of�kno�wn�function�names.���The�arra�y�is�sorted.���The����.��arra��!y�	itself�is�allo�M�cated,�(�but�not�the�strings�inside.��jY��eou�should��free()��the�arra�y�when����.��y��!ou��fare�done,�but�not�the�p�M�oin�ters.�������z[F��eunction]���G�int����rl���R���#؎�|add���R���#؎�funmap���R���#؎�en���try�y��(�const��fchar�*name,�rl_command_func_t����DG*function�)����.���Add���name����to�the�list�of�bindable�Readline�command�names,�Gand�mak��!e��function��the����.��function��fto�b�M�e�called�when��name�Cm�is�in��!v�ok�ed.���� �Q������G�32�9pGNU��fReadline�Library�����3*�����֍��G�a2.4.5�d(Allo���wing��MUndoing������!G�Supp�M�orting�&�the�undo�command�is�a�painless�thing,�@and�mak��!es�y�our�functions�m�uc�h�more��
33��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,�and�uses��rl_insert_����Gtext()�Y)�or��rl_delete_text()��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�op�M�erations,����Gy��!ou���should�group�them�together�in�to�one�op�M�eration.��]This�is�done�with��rl_begin_undo_����Ggroup()��f�and��rl_end_undo_group()�.����!GThe��ft��!yp�M�es�of�ev�en�ts�that�can�b�M�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	the�undo�co�M�de�tells�what�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()�.���J�����z[F��eunction]���G�int����rl���R���#؎�|b�b"egin���R���#؎�undo���R���#؎�group�y��(�void�)����.���Begins���sa��!ving�undo�information�in�a�group�construct.�AThe�undo�information�usually����.��comes��Ifrom�calls�to��rl_insert_text()��and��rl_delete_text()�,�TAbut�could�b�M�e�the����.��result��fof�calls�to��rl_add_undo()�.�������z[F��eunction]���G�int����rl���R���#؎�|end���R���#؎�undo���R���#؎�group�y��(�void�)����.���Closes�{the�curren��!t�undo�group�started�with��rl_begin_undo_group��f()�.��mThere�should����.��b�M�e��fone�call�to��rl_end_undo_group()��for�eac��!h�call�to��rl_begin_undo_group()�.�������z[F��eunction]���G�void����rl���R���#؎�|add���R���#؎�undo�y��(�enum��fundo_code�what,�int�start,�int�end,�char����DG*text�)����.���Remem��!b�M�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����rl���R���#؎�|free���R���#؎�undo���R���#؎�list�y��(�void�)����.���F��eree��fthe�existing�undo�list.�������z[F��eunction]���G�int����rl���R���#؎�|do���R���#؎�undo�y��(�void�)����.���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�mo�M�dify�the�existing�text�(e.g.,����Gc��!hange��its�case),��Kcall��rl_modifying()��once,�just�b�M�efore�y��!ou�mo�dify�the�text.��Y��eou�m��!ust����Gsupply��fthe�indices�of�the�text�range�that�y��!ou�are�going�to�mo�M�dify��e.�������z[F��eunction]���G�int����rl���R���#؎�|mo�b"difying�y��(�int��fstart,�int�end�)����.���T��eell��-Readline�to�sa��!v�e��-the�text�b�M�et��!w�een��-�start�-�and��end�B�as�a�single�undo�unit.�g3It�is����.��assumed��fthat�y��!ou�will�subsequen�tly�mo�M�dify�that�text.��v���G�a2.4.6�d(Redispla���y���������z�[F��eunction]���G�void����rl���R���#؎�|redispla���y�y��(�void�)����.���Change���what's�displa��!y�ed���on�the�screen�to�re
ect�the�curren��!t�con�ten�ts�of��rl_line_����.��buffer�.����!��������G�Chapter��f2:���Programming�with�GNU�Readline�ʗ33�����3*�����֍����z[F��eunction]���G�int����rl���R���#؎�|forced���R���#؎�up�b"date���R���#؎�displa���y�y��(�void�)��
33��.���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����rl���R���#؎�|on���R���#؎�new���R���#؎�line�y��(�void�)����.���T��eell���the�up�M�date�functions�that�w��!e�ha�v�e�mo�v�ed�on�to�a�new�(empt�y)�line,��!usually�after����.��ouputting��fa�newline.�������z[F��eunction]���G�int����rl���R���#؎�|on���R���#؎�new���R���#؎�line���R���#؎�with���R���#؎�prompt�y��(�void�)����.���T��eell��_the�up�M�date�functions�that�w��!e�ha�v�e�mo�v�ed�on�to�a�new�line,�
awith��rl���>�x�H����tprompt� _�already����.��displa��!y�ed.�ˮThis�o�could�b�M�e�used�b��!y�applications�that�w�an�t�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��fb�M�e�used�after�setting��rl���>�x�H����talready���>�x�H���prompted�.�������z[F��eunction]���G�int����rl���R���#؎�|reset���R���#؎�line���R���#؎�state�y��(�void�)����.���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����rl���R���#؎�|crlf�y��(�void�)����.���Mo��!v�e��fthe�cursor�to�the�start�of�the�next�screen�line.�������z[F��eunction]���G�int����rl���R���#؎�|sho���w���R���#؎�c�har�y��(�int��fc�)����.���Displa��!y��c�haracter��c����on��rl_outstream�.���If�Readline�has�not�b�M�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����rl���R���#؎�|message�y��(�const��fchar�*,��...���e�)����.���The�y�argumen��!ts�are�a�format�string�as�w�ould�b�M�e�supplied�to��printf�,���p�ossibly�con��!taining����.��con��!v�ersion�N�sp�M�ecications�suc��!h�as�`�%d�',���and�an�y�additional�argumen�ts�necessary�to����.��satisfy���the�con��!v�ersion���sp�M�ecications.��jThe�resulting�string�is�displa��!y�ed���in�the��ec��!ho����.��area�.�q�The��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�b�M�efore�calling�this����.��function.�������z[F��eunction]���G�int����rl���R���#؎�|clear���R���#؎�message�y��(�void�)����.���Clear�zthe�message�in�the�ec��!ho�area.��If�the�prompt�w�as�sa�v�ed�with�a�call�to��rl_save_����.��prompt��o�b�M�efore�the�last�call�to��rl_message�,��call��rl_restore_prompt��b�efore�calling����.��this��ffunction.�������z[F��eunction]���G�void����rl���R���#؎�|sa���v�e���R���#؎�prompt�y��(�void�)����.���Sa��!v�e�,the�lo�M�cal�Readline�prompt�displa��!y�state�in�preparation�for�displa�ying�a�new����.��message��fin�the�message�area�with��rl_message()�.�������z[F��eunction]���G�void����rl���R���#؎�|restore���R���#؎�prompt�y��(�void�)����.���Restore�!Pthe�lo�M�cal�Readline�prompt�displa��!y�state�sa�v�ed�b�y�the�most�recen�t�call�to����.���rl_save_prompt�.���if��m�rl_save_prompt��w��!as�called�to�sa�v�e�the�prompt�b�M�efore�a�call����.��to�k7�rl_message�,��kthis�function�should�b�M�e�called�b�efore�the�corresp�onding�call�to��rl_����.��clear_message�.����"��������G�34�9pGNU��fReadline�Library�����3*�����֍����z[F��eunction]���G�int����rl���R���#؎�|expand���R���#؎�prompt�y��(�char��f*prompt�)��
33��.���Expand�#&an��!y�sp�M�ecial�c�haracter�sequences�in��prompt�`&�and�set�up�the�lo�M�cal�Readline����.��prompt�M%redispla��!y�v��dDariables.��This�function�is�called�b�y��readline()�.��It�ma�y�also�b�M�e����.��called��vto�expand�the�primary�prompt�if�the��rl_on_new_line_with_prompt()��function����.��or�
��rl_already_prompted��v��dDariable�is�used.��	It�returns�the�n��!um�b�M�er�
�of�visible�c��!haracters����.��on�/the�last�line�of�the�(p�M�ossibly�m��!ulti-line)�prompt.�8Applications�ma�y�indicate�that����.��the�XFprompt�con��!tains�c�haracters�that�tak�e�up�no�ph�ysical�screen�space�when�displa�y�ed����.��b��!y��xbrac�k�eting�a�sequence�of�suc�h�c�haracters�with�the�sp�M�ecial�mark�ers��RL_PROMPT_����.��START_IGNORE����and��RL_PROMPT_END_IGNORE��(declared�in�`�readline.h�'.�2This�ma��!y�b�M�e����.��used��fto�em��!b�M�ed�terminal-sp�ecic�escap�e�sequences�in�prompts.��;�����z[F��eunction]���G�int����rl���R���#؎�|set���R���#؎�prompt�y��(�const��fchar�*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.������G�a2.4.7�d(Mo�idifying��MT��ģext���������z�[F��eunction]���G�int����rl���R���#؎�|insert���R���#؎�text�y��(�const��fchar�*text�)����.���Insert����text���in��!to�the�line�at�the�curren�t�cursor�p�M�osition.�M�Returns�the�n�um�b�M�er�of�c�har-����.��acters��finserted.�������z[F��eunction]���G�int����rl���R���#؎�|delete���R���#؎�text�y��(�int��fstart,�int�end�)����.���Delete���the�text�b�M�et��!w�een����start�Ł�and��end����in�the�curren��!t�line.��/Returns�the�n�um�b�M�er�of����.��c��!haracters��fdeleted.�������z[F��eunction]���G�char���*��rl���R���#؎�|cop���y���R���#؎�text�y��(�int��fstart,�int�end�)����.���Return��fa�cop��!y�of�the�text�b�M�et�w�een��start��f�and��end���in�the�curren�t�line.�������z[F��eunction]���G�int����rl���R���#؎�|kill���R���#؎�text�y��(�int��fstart,�int�end�)����.���Cop��!y��the�text�b�M�et�w�een��start�W��and��end����in�the�curren�t�line�to�the�kill�ring,�7�app�M�ending����.��or��prep�M�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�M�ended.��If�the����.��last��fcommand�w��!as�not�a�kill,�a�new�kill�ring�slot�is�used.�������z[F��eunction]���G�int����rl���R���#؎�|push���R���#؎�macro���R���#؎�input�y��(�char��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�b�M�ound�to����.��a��fmacro.���Not�esp�M�ecially�useful;�use��rl_insert_text()��instead.������G�a2.4.8�d(Character��MInput���������z�[F��eunction]���G�int����rl���R���#؎�|read���R���#؎�k���ey�y��(�void�)����.���Return��7the�next�c��!haracter�a�v��dDailable�from�Readline's�curren�t�input�stream.��xThis�han-����.��dles�.Sinput�inserted�in��!to�the�input�stream�via��rl���>�x�H����tp�M�ending���>�x�H���input�kS�(see�.SSection�2.3�[Read-����.��line���V��eariables],��:page�24)�and��rl_stuff_char()�,�macros,�and�c��!haracters�read�from����.��the��k��!eyb�M�oard.�2/While�w�aiting�for�input,�43this�function�will�call�an�y�function�assigned����.��to��fthe��rl_event_hook��v��dDariable.�������z[F��eunction]���G�int����rl���R���#؎�|getc�y��(�FILE��f*stream�)����.���Return��the�next�c��!haracter�a�v��dDailable�from��stream�,���whic�h�is�assumed�to�b�M�e�the�k�eyb�M�oard.����#�K������G�Chapter��f2:���Programming�with�GNU�Readline�ʗ35�����3*�����֍����z[F��eunction]���G�int����rl���R���#؎�|stu���R���#؎�c���har�y��(�int��fc�)��
33��.���Insert���c���in��!to�the�Readline�input�stream.���It�will�b�M�e��"�read�"��b�efore�Readline�attempts����.��to�6�read�c��!haracters�from�the�terminal�with��rl_read_key()�.���Up�to�512�c�haracters�ma�y����.��b�M�e��+pushed�bac��!k.��,�rl_stuff_char��returns�1�if�the�c�haracter�w�as�successfully�inserted;����.��0��fotherwise.���卍���z[F��eunction]���G�int����rl���R���#؎�|execute���R���#؎�next�y��(�int��fc�)����.���Mak��!e�H��c����b�M�e�the�next�command�to�b�e�executed�when��rl_read_key()��is�called.���This����.��sets��f�rl���>�x�H����tp�M�ending���>�x�H���input�.�������z[F��eunction]���G�int����rl���R���#؎�|clear���R���#؎�p�b"ending���R���#؎�input�y��(�void�)����.���Unset�|�rl���>�x�H����tp�M�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����rl���R���#؎�|set���R���#؎�k���eyb�b"oard���R���#؎�input���R���#؎�timeout�y��(�int��fu�)����.���While�юw��!aiting�for�k�eyb�M�oard�input�in��rl_read_key()�,�WReadline�will�w�ait�for��u��mi-����.��croseconds��Nfor�input�b�M�efore�calling�an��!y�function�assigned�to��rl_event_hook�.���The����.��default��fw��!aiting�p�M�erio�d��fis�one-ten�th�of�a�second.���Returns�the�old�timeout�v��dDalue.��"�����G�a2.4.9�d(T��ģerminal��MManagemen���t���!??�����z�[F��eunction]���G�void����rl���R���#؎�|prep���R���#؎�terminal�y��(�int��fmeta_flag�)����.���Mo�M�dify��the�terminal�settings�for�Readline's�use,�w�so��readline()��can�read�a�single����.��c��!haracter��,at�a�time�from�the�k�eyb�M�oard.�
0The��meta���>�x�H����t
ag��D�argumen�t�should�b�M�e�non-zero����.��if��fReadline�should�read�eigh��!t-bit�input.�������z[F��eunction]���G�void����rl���R���#؎�|deprep���R���#؎�terminal�y��(�void�)����.���Undo�˭the�eects�of��rl_prep_terminal()�,���lea��!ving�the�terminal�in�the�state�in�whic�h����.��it��fw��!as�b�M�efore�the�most�recen�t�call�to��rl_prep_terminal()�.�������z[F��eunction]���G�void����rl���R���#؎�|tt���y���R���#؎�set���R���#؎�default���R���#؎�bindings�y��(�Keymap��fkmap�)����.���Read�o�the�op�M�erating�system's�terminal�editing�c��!haracters�(as�w�ould�b�M�e�displa�y�ed�b�y����.���stty�)��fto�their�Readline�equiv��dDalen��!ts.���The�bindings�are�p�M�erformed�in��kmap�.�������z[F��eunction]���G�void����rl���R���#؎�|tt���y���R���#؎�unset���R���#؎�default���R���#؎�bindings�y��(�Keymap��fkmap�)����.���Reset��;the�bindings�manipulated�b��!y��rl_tty_set_default_bindings��so�that�the�ter-����.��minal�¯editing�c��!haracters�are�b�M�ound�to��rl_insert�.�2�The�bindings�are�p�erformed�in����.���kmap�.�������z[F��eunction]���G�int����rl���R���#؎�|reset���R���#؎�terminal�y��(�const��fchar�*terminal_name�)����.���Reinitialize���Readline's�idea�of�the�terminal�settings�using��terminal���>�x�H����tname�x��as�the�termi-����.��nal�Ѣt��!yp�M�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�36�9pGNU��fReadline�Library�����3*�����֍��G�a2.4.10�d(Utilit���y��MF��ģunctions����x�����z�[F��eunction]���G�void����rl���R���#؎�|replace���R���#؎�line�y��(�const��fchar�*text,�int�clear_undo�)��
33��.���Replace��Jthe�con��!ten�ts��Jof��rl_line_buffer��with��text�.��The�p�M�oin��!t�and�mark�are�pre-����.��serv��!ed,�.eif�ep�M�ossible.���If��clear���>�x�H����tundo��5�is�non-zero,�the�undo�list�asso�M�ciated�with�the�curren��!t����.��line��fis�cleared.���W�����z[F��eunction]���G�int����rl���R���#؎�|extend���R���#؎�line���R���#؎�buer�y��(�int��flen�)����.���Ensure��4that��rl_line_buffer��has�enough�space�to�hold��len��c��!haracters,���p�M�ossibly�real-����.��lo�M�cating��fit�if�necessary��e.�������z[F��eunction]���G�int����rl���R���#؎�|initialize�y��(�void�)����.���Initialize�n8or�re-initialize�Readline's�in��!ternal�state.�5RIt's�not�strictly�necessary�to�call����.��this;��f�readline()��calls�it�b�M�efore�reading�an��!y�input.�������z[F��eunction]���G�int����rl���R���#؎�|ding�y��(�void�)����.���Ring��fthe�terminal�b�M�ell,�ob�eying�the�setting�of��bell-style�.�������z[F��eunction]���G�int����rl���R���#؎�|alphab�b"etic�y��(�int��fc�)����.���Return��f1�if��c�Pj�is�an�alphab�M�etic�c��!haracter.�������z[F��eunction]���G�void����rl���R���#؎�|displa���y���R���#؎�matc�h���R���#؎�list�y��(�char��f**matches,�int�len,�int�max�)����.���A�#;con��!v�enience�#[function�for�displa��!ying�a�list�of�strings�in�columnar�format�on�Read-����.��line's�woutput�stream.��matches��is�the�list�of�strings,��in�argv�format,�suc��!h�as�a�list�of����.��completion��9matc��!hes.����len��is�the�n�um�b�M�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�select�ho��!w�the�matc�hes�are�displa�y�ed�(see�Section�1.3.1�[Readline����.��Init��fFile�Syn��!tax],�page�4).����!GThe��follo��!wing�are�implemen�ted�as�macros,��<dened�in��chardefs.h�.�{�Applications�should����Grefrain��ffrom�using�them.�������z[F��eunction]���G�int������#؎�
��rl���R���#؎�|upp�b"ercase���R���#؎�p�y��(�int��fc�)����.���Return��f1�if��c�Pj�is�an�upp�M�ercase�alphab�etic�c��!haracter.�������z[F��eunction]���G�int������#؎�
��rl���R���#؎�|lo���w�ercase���R���#؎�p�y��(�int��fc�)����.���Return��f1�if��c�Pj�is�a�lo��!w�ercase��falphab�M�etic�c��!haracter.�������z[F��eunction]���G�int������#؎�
��rl���R���#؎�|digit���R���#؎�p�y��(�int��fc�)����.���Return��f1�if��c�Pj�is�a�n��!umeric�c�haracter.�������z[F��eunction]���G�int������#؎�
��rl���R���#؎�|to���R���#؎�upp�b"er�y��(�int��fc�)����.���If��y�c��}�is�a�lo��!w�ercase��yalphab�M�etic�c��!haracter,�ureturn�the�corresp�onding�upp�ercase�c��!haracter.�������z[F��eunction]���G�int������#؎�
��rl���R���#؎�|to���R���#؎�lo���w�er�y��(�int��fc�)����.���If�x��c�"��is�an�upp�M�ercase�alphab�etic�c��!haracter,���return�the�corresp�onding�lo��!w�ercase�x�c�harac-����.��ter.�������z[F��eunction]���G�int������#؎�
��rl���R���#؎�|digit���R���#؎�v��;�alue�y��(�int��fc�)����.���If��f�c�Pj�is�a�n��!um�b�M�er,��freturn�the�v��dDalue�it�represen��!ts.����%砍�����G�Chapter��f2:���Programming�with�GNU�Readline�ʗ37�����3*�����֍��G�a2.4.11�d(Miscellaneous��MF��ģunctions����������z�[F��eunction]���G�int����rl���R���#؎�|macro���R���#؎�bind�y��(�const��fchar�*keyseq,�const�char�*macro,�Keymap��
33��DGmap�)����.���Bind���the�k��!ey�sequence��k�eyseq�
��to�in�v�ok�e�the�macro��macro�.��UThe�binding�is�p�M�erformed�in����.���map�.���When�Nr�k��!eyseq��X�is�in�v�ok�ed,�`	the��macro��B�will�b�M�e�inserted�in�to�the�line.���This�function����.��is��fdeprecated;�use��rl_generic_bind()��instead.���������z[F��eunction]���G�void����rl���R���#؎�|macro���R���#؎�dump�b"er�y��(�int��freadable�)����.���Prin��!t�Bdthe�k�ey�sequences�b�M�ound�to�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��fb�M�e�made�part�of�an��inputrc��le�and�re-read.�������z[F��eunction]���G�int����rl���R���#؎�|v��;�ariable���R���#؎�bind�y��(�const��fchar�*variable,�const�char�*value�)����.���Mak��!e�{the�Readline�v��dDariable��v�ariable�#�ha��!v�e�{�v�alue�.��oThis�b�M�eha��!v�es�{as�if�the�readline�com-����.��mand�w2`�set��f�variable���value�Ds�'�had�b�M�een�executed�in�an��inputrc��le�(see�Section�1.3.1����.��[Readline��fInit�File�Syn��!tax],�page�4).�������z[F��eunction]���G�char���*��rl���R���#؎�|v��;�ariable���R���#؎�v�alue�y��(�const��fchar�*variable�)����.���Return���a�string�represen��!ting�the�v��dDalue�of�the�Readline�v�ariable��v�ariable�.��RF��eor�b�M�o�olean����.��v��dDariables,��fthis�string�is�either�`�on�'�or�`�off�'.�������z[F��eunction]���G�void����rl���R���#؎�|v��;�ariable���R���#؎�dump�b"er�y��(�int��freadable�)����.���Prin��!t�p�the�readline�v��dDariable�names�and�their�curren�t�v��dDalues�to��rl_outstream�.���If��read-����.��able��A�is�:non-zero,�3nthe�list�is�formatted�in�suc��!h�a�w�a�y�that�it�can�b�M�e�made�part�of�an����.���inputrc��f�le�and�re-read.�������z[F��eunction]���G�int����rl���R���#؎�|set���R���#؎�paren���R���#؎�blink���R���#؎�timeout�y��(�int��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�b�M�een�enabled.�������z[F��eunction]���G�char���*��rl���R���#؎�|get���R���#؎�termcap�y��(�const��fchar�*cap�)����.���Retriev��!e�=�the�string�v��dDalue�of�the�termcap�capabilit�y��cap�.���Readline�fetc�hes�the�termcap����.��en��!try�2for�the�curren�t�terminal�name�and�uses�those�capabilities�to�mo�v�e�around�the����.��screen���line�and�p�M�erform�other�terminal-sp�ecic�op�erations,��>lik��!e�erasing�a�line.�}�Readline����.��do�M�es�4Anot�use�all�of�a�terminal's�capabilities,�W�and�this�function�will�return�v��dDalues�for����.��only��fthose�capabilities�Readline�uses.��Vv���G�a2.4.12�d(Alternate��MIn���terface�������!G�An�_�alternate�in��!terface�is�a�v��dDailable�to�plain��readline()�.�
	�Some�applications�need�to����Gin��!terlea�v�e�|�k�eyb�M�oard�I/O�|�with�le,���device,�or�windo��!w�system�I/O,�t�ypically�b�y�using�a�main����Glo�M�op�Seto��select()��on�v��dDarious�le�descriptors.��2T��eo�accomo�date�this�need,�c�readline�can�also�b�e����Gin��!v�ok�ed��=as�a�`callbac��!k'�function�from�an�ev�en�t�lo�M�op.�%cThere�are�functions�a�v��dDailable�to�mak�e����Gthis��feasy��e.����&�f������G�38�9pGNU��fReadline�Library�����3*�����֍����z[F��eunction]���G�void����rl���R���#؎�|callbac���k���R���#؎�handler���R���#؎�install�y��(�const��fchar�*prompt,��
33��DGrl_vcpfunc_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��c�to�use�as�a�function�to�call�when�a�complete�line�of�input����.��has��fb�M�een�en��!tered.���The�function�tak�es�the�text�of�the�line�as�an�argumen�t.���g�����z[F��eunction]���G�void����rl���R���#؎�|callbac���k���R���#؎�read���R���#؎�c�har�y��(�void�)����.���Whenev��!er��an�application�determines�that�k�eyb�M�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.�	)�If��that�c��!haracter�completes�the�line,�p��rl_callback_read_char��will�in�v�ok�e����.��the�A�lhandler�
G�function�sa��!v�ed�Ab�y��rl_callback_handler_install��to�pro�M�cess�the�line.����.��Before�3�calling�the��lhandler��
�function,�J�the�terminal�settings�are�reset�to�the�v��dDalues�they����.��had��
b�M�efore�calling��rl_callback_handler_install�.��If�the��lhandler�[3�function�returns,����.��the��terminal�settings�are�mo�M�died�for�Readline's�use�again.���EOF��is�indicated�b��!y�calling����.���lhandler�o��with��fa��NULL��line.�������z[F��eunction]���G�void����rl���R���#؎�|callbac���k���R���#؎�handler���R���#؎�remo�v�e�y��(�void�)����.���Restore�v�the�terminal�to�its�initial�state�and�remo��!v�e�v�the�line�handler.�O�This�ma��!y�b�M�e����.��called�]from�within�a�callbac��!k�as�w�ell�as�indep�M�enden�tly��e.��If�the��lhandler�&+�installed�b�y����.���rl_callback_handler_install����do�M�es�not�exit�the�program,���either�this�function�or����.��the��Mfunction�referred�to�b��!y�the�v��dDalue�of��rl_deprep_term_function��should�b�M�e�called����.��b�M�efore��fthe�program�exits�to�reset�the�terminal�settings.��s3���G�a2.4.13�d(A��MReadline�Example������!G�Here���is�a�function�whic��!h�c�hanges�lo�w�ercase�c�haracters�to�their�upp�M�ercase�equiv��dDalen�ts,����Gand��
upp�M�ercase�c��!haracters�to�lo�w�ercase.���If�this�function�w�as�b�M�ound�to�`�M-c�',���then�t�yping����G`�M-c�'�(�w��!ould�c�hange�the�case�of�the�c�haracter�under�p�M�oin�t.���T�yping�`�M-1��f0�M-c�'�(�w�ould�c�hange����Gthe��fcase�of�the�follo��!wing�10�c�haracters,�lea�ving�the�cursor�on�the�last�c�haracter�c�hanged.��l͍�.���/*���Invert�the�case�of�the�COUNT�following�characters.�*/����.��int����.��invert_case_line���(count,�key)����K��int���count,�key;����.��{����:x�register���int�start,�end,�i;��ff��:x�start���=�rl_point;����: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����'�������G�Chapter��f2:���Programming�with�GNU�Readline�ʗ39�����3*�����֍�E�D�direction���=�1;��ff��:x�/*���Find�the�end�of�the�range�to�modify.�*/��
33��: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);����.��}��#���G�X2.5��Readline�f@Signal�Handling�������!G�Signals��are�async��!hronous�ev�en�ts�sen�t�to�a�pro�M�cess�b�y�the�Unix�k�ernel,�Xlsometimes�on����Gb�M�ehalf��_of�another�pro�cess.�=�They�are�in��!tended�to�indicate�exceptional�ev�en�ts,�]lik�e�a�user����Gpressing���the�in��!terrupt�k�ey�on�his�terminal,���or�a�net�w�ork�connection�b�M�eing�brok�en.���There�is����Ga�*�class�of�signals�that�can�b�M�e�sen��!t�to�the�pro�cess�curren��!tly�reading�input�from�the�k�eyb�M�oard.����GSince�3�Readline�c��!hanges�the�terminal�attributes�when�it�is�called,�J�it�needs�to�p�M�erform�sp�ecial����Gpro�M�cessing�OBwhen�suc��!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.����(P������G�40�9pGNU��fReadline�Library�����3*�����֍�!GReadline���con��!tains�an�in�ternal�signal�handler�that�is�installed�for�a�n�um�b�M�er�of�signals��
33��G(�SIGINT�,�h]�SIGQUIT�,��SIGTERM�,��SIGALRM�,��SIGTSTP�,��SIGTTIN�,�and�_�SIGTTOU�).�	�When�one�of����Gthese��_signals�is�receiv��!ed,�ٞthe�signal�handler�will�reset�the�terminal�attributes�to�those�that����Gw��!ere�D�in�eect�b�M�efore��readline()��w�as�called,�Xreset�the�signal�handling�to�what�it�w�as�b�M�efore����G�readline()�lT�w��!as�called,���and�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�input.���When�a��SIGINT��is�receiv��!ed,�q�the�Readline�signal�handler�p�M�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()��b�M�elo��!w).���$��!GThere��is�an�additional�Readline�signal�handler,�for��SIGWINCH�,�whic��!h�the�k�ernel�sends�to�a����Gpro�M�cess�v`whenev��!er�the�terminal's�size�c�hanges�(for�example,��if�a�user�resizes�an��xterm�).���The����GReadline�Gt�SIGWINCH��handler�up�M�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�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�imp�M�ortan�t�that����Gapplications�f�c��!hange�the�v��dDalues�of�these�v�ariables�only�when�calling��readline()�,���not�in�a����Gsignal��fhandler,�so�Readline's�in��!ternal�signal�state�is�not�corrupted.��_�����3[V��eariable]���G�int����rl���R���#؎�|catc���h���R���#؎�signals����.���If�w*this�v��dDariable�is�non-zero,���Readline�will�install�signal�handlers�for��SIGINT�,��SIGQUIT�,����.���SIGTERM�,��f�SIGALRM�,��SIGTSTP�,��SIGTTIN�,�and��SIGTTOU�.����.��The��fdefault�v��dDalue�of��rl_catch_signals��is�1.��_�����3[V��eariable]���G�int����rl���R���#؎�|catc���h���R���#؎�sigwinc�h����.���If��fthis�v��dDariable�is�non-zero,�Readline�will�install�a�signal�handler�for��SIGWINCH�.����.��The��fdefault�v��dDalue�of��rl_catch_sigwinch��is�1.��_��!GIf��0an�application�do�M�es�not�wish�to�ha��!v�e��0Readline�catc��!h�an�y�signals,���or�to�handle�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�up�M�on�receipt�of�a�signal.�������z[F��eunction]���G�void����rl���R���#؎�|clean���up���R���#؎�after���R���#؎�signal�y��(�void�)����.���This��function�will�reset�the�state�of�the�terminal�to�what�it�w��!as�b�M�efore��readline()����.���w��!as��called,��~and�remo�v�e�the�Readline�signal�handlers�for�all�signals,��~dep�M�ending�on�the����.��v��dDalues��fof��rl_catch_signals��and��rl_catch_sigwinch�.�������z[F��eunction]���G�void����rl���R���#؎�|free���R���#؎�line���R���#؎�state�y��(�void�)����.���This��will�free�an��!y�partial�state�asso�M�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�eyb�M�oard�macro,�z$and�an�y����.��partially-en��!tered���n�umeric�argumen�t).�$)This�should�b�M�e�called�b�efore��rl_cleanup_����.��after_signal()�.�	L�The� �Readline�signal�handler�for��SIGINT��calls�this�to�ab�M�ort�the����.��curren��!t��finput�line.����)鍟����G�Chapter��f2:���Programming�with�GNU�Readline�ʗ41�����3*�����֍����z[F��eunction]���G�void����rl���R���#؎�|reset���R���#؎�after���R���#؎�signal�y��(�void�)��
33��.���This�k�will�reinitialize�the�terminal�and�reinstall�an��!y�Readline�signal�handlers,�wsdep�M�end-����.��ing��fon�the�v��dDalues�of��rl_catch_signals��and��rl_catch_sigwinch�.��7a��!GIf���an�application�do�M�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�up�M�date�its�idea�of�the�terminal����Gsize��fwhen�a��SIGWINCH��is�receiv��!ed.�������z[F��eunction]���G�void����rl���R���#؎�|resize���R���#؎�terminal�y��(�void�)����.���Up�M�date��fReadline's�in��!ternal�screen�size�b�y�reading�v��dDalues�from�the�k�ernel.�������z[F��eunction]���G�void����rl���R���#؎�|set���R���#؎�screen���R���#؎�size�y��(�int��frows,�int�cols�)����.���Set�`�Readline's�idea�of�the�terminal�size�to��ro��!ws��V�ro�ws�`�and��cols��columns.�ƬIf�either��ro��!ws����.���or�9��columns��Z�is�less�than�or�equal�to�0,�^�Readline's�idea�of�that�terminal�dimension�is����.��unc��!hanged.����!GIf��an�application�do�M�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�b�M�e�queried.�������z[F��eunction]���G�void����rl���R���#؎�|get���R���#؎�screen���R���#؎�size�y��(�int��f*rows,�int�*cols�)����.���Return��GReadline's�idea�of�the�terminal's�size�in�the�v��dDariables�p�M�oin��!ted�to�b�y�the�argu-����.��men��!ts.�������z[F��eunction]���G�void����rl���R���#؎�|reset���R���#؎�screen���R���#؎�size�y��(�void�)����.���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����rl���R���#؎�|set���R���#؎�signals�y��(�void�)����.���Install�7�Readline's�signal�handler�for��SIGINT�,�\�SIGQUIT�,��SIGTERM�,��SIGALRM�,��SIGTSTP�,����.���SIGTTIN�,����SIGTTOU�,�and��#�SIGWINCH�,�dep�M�ending�on�the�v��dDalues�of��rl_catch_signals��and����.���rl_catch_sigwinch�.�������z[F��eunction]���G�int����rl���R���#؎�|clear���R���#؎�signals�y��(�void�)����.���Remo��!v�e��fall�of�the�Readline�signal�handlers�installed�b��!y��rl_set_signals()�.��9���G�X2.6��Custom�f@Completers���h}��!G�T��!ypically��e,��a��Gprogram�that�reads�commands�from�the�user�has�a�w�a�y�of�disam�biguating����Gcommands�B and�data.��If�y��!our�program�is�one�of�these,�ithen�it�can�pro�vide�completion�for����Gcommands,���data,�or��[b�M�oth.�фThe�follo��!wing�sections�describ�e�ho��!w�y�our�program�and�Readline����Gco�M�op�erate��fto�pro��!vide�this�service.��.���G�a2.6.1�d(Ho���w��MCompleting�W��ģorks�����!G�In��order�to�complete�some�text,�;�the�full�list�of�p�M�ossible�completions�m��!ust�b�e�a��!v��dDailable.����GThat�is,�3&it�is�not�p�M�ossible�to�accurately�expand�a�partial�w��!ord�without�kno�wing�all�of�the����Gp�M�ossible�3�w��!ords�whic�h�mak�e�sense�in�that�con�text.��pThe�Readline�library�pro�vides�the�user����Gin��!terface��!to�completion,�Pand�t�w�o�of�the�most�common�completion�functions:��Slename�and����*'X������G�42�9pGNU��fReadline�Library�����3*�����֍�Gusername.��F��eor���completing�other�t��!yp�M�es�of�text,���y�ou�m�ust�write�y�our�o�wn�completion�function.��
33��GThis��fsection�describ�M�es�exactly�what�suc��!h�functions�m�ust�do,�and�pro�vides�an�example.��??��!GThere��fare�three�ma���jor�functions�used�to�p�M�erform�completion:�����-1.��'��The�6@user-in��!terface�function��rl_complete()�.�	�kThis�function�is�called�with�the�same����'��argumen��!ts�Has�other�bindable�Readline�functions:�!=�coun�t���and��in�v�oking���>�x�H����tk�ey�.���It�isolates����'��the��,w��!ord�to�b�M�e�completed�and�calls��rl_completion_matches()��to�generate�a�list�of����'��p�M�ossible��?completions.�iIt�then�either�lists�the�p�ossible�completions,���inserts�the�p�ossible����'��completions,���or�m actually�p�M�erforms�the�completion,�dep�M�ending�on�whic��!h�b�eha��!vior�is����'��desired.�����-2.��'��The��in��!ternal�function��rl_completion_matches()��uses�an�application-supplied��gener-����'��ator�:y�function�qPto�generate�the�list�of�p�M�ossible�matc��!hes,��and�then�returns�the�arra�y�of����'��these��>matc��!hes.��eThe�caller�should�place�the�address�of�its�generator�function�in��rl_����'��completion_entry_function�.�����-3.��'��The��generator�function�is�called�rep�M�eatedly�from��rl_completion_matches()�,��Lreturning����'��a���string�eac��!h�time.�� The�argumen�ts�to�the�generator�function�are��text�.��and��state�.�� �text����'���is���the�partial�w��!ord�to�b�M�e�completed.�xQ�state�v��is�zero�the�rst�time�the�function�is�called,����'��allo��!wing�G2the�generator�to�p�M�erform�an�y�necessary�initialization,��eand�a�p�M�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�p�M�ossibilities�left.���Usually����'��the��^generator�function�computes�the�list�of�p�M�ossible�completions�when��state�De�is�zero,����'��and�jreturns�them�one�at�a�time�on�subsequen��!t�calls.���Eac�h�string�the�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-����'��sp�M�ecic��fcompletion�function�.��WW�����z[F��eunction]���G�int����rl���R���#؎�|complete�y��(�int��fignore,�int�invoking_key�)����.���Complete��tthe�w��!ord�at�or�b�M�efore�p�oin��!t.��Y��eou�ha�v�e�supplied�the�function�that�do�M�es�the����.��initial��simple�matc��!hing�selection�algorithm�(see��rl_completion_matches()�).��wThe����.��default��fis�to�do�lename�completion.�������3[V��eariable]���G�rl_compentry_func_t���*��rl���R���#؎�|completion���R���#؎�en���try���R���#؎�function����.���This��Jis�a�p�M�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�g�used.�
!�An��application-sp�M�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�p�M�ossible�completions.��$$���G�a2.6.2�d(Completion��MF��ģunctions���rr��!G�Here��fis�the�complete�list�of�callable�completion�functions�presen��!t�in�Readline.�������z[F��eunction]���G�int����rl���R���#؎�|complete���R���#؎�in���ternal�y��(�int��fwhat_to_do�)����.���Complete�fthe�w��!ord�at�or�b�M�efore�p�oin��!t.���what���>�x�H����tto���>�x�H���do����sa�ys�fwhat�to�do�with�the�com-����.��pletion.�(�A��cv��dDalue��jof�`�?�'�means�list�the�p�M�ossible�completions.�`�TAB�'�means�do�standard����.��completion.�&'`�*�'��means�insert�all�of�the�p�M�ossible�completions.�`�!�'�means�to�displa��!y�all����.��of�!)the�p�M�ossible�completions,�?�if�there�is�more�than�one,�as�w��!ell�as�p�M�erforming�partial����.��completion.��*`�@�'�GMis�similar�to�`�!�',�ZRbut�p�M�ossible�completions�are�not�listed�if�the�p�ossible����.��completions��fshare�a�common�prex.����+4퍟����G�Chapter��f2:���Programming�with�GNU�Readline�ʗ43�����3*�����֍����z[F��eunction]���G�int����rl���R���#؎�|complete�y��(�int��fignore,�int�invoking_key�)��
33��.���Complete���the�w��!ord�at�or�b�M�efore�p�oin��!t.��bY��eou�ha�v�e�supplied�the�function�that�do�M�es����.��the���initial�simple�matc��!hing�selection�algorithm�(see��rl_completion_matches()��and����.���rl_completion_entry_function�).��XThe�N�default�is�to�do�lename�completion.�This����.��calls��f�rl_complete_internal()��with�an�argumen��!t�dep�M�ending�on��in�v�oking���>�x�H����tk�ey�.��.������z[F��eunction]���G�int����rl���R���#؎�|p�b"ossible���R���#؎�completions�y��(�int��fcount,�int�invoking_key�)����.���List���the�p�M�ossible�completions.��See�description�of��rl_complete��f()�.�This�calls��rl_����.��complete_internal()��f�with�an�argumen��!t�of�`�?�'.�������z[F��eunction]���G�int����rl���R���#؎�|insert���R���#؎�completions�y��(�int��fcount,�int�invoking_key�)����.���Insert�	�the�list�of�p�M�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����rl���R���#؎�|completion���R���#؎�mo�b"de�y��(�rl_command_func_t��f*cfunc�)����.���Returns��the�apppriate�v��dDalue�to�pass�to��rl_complete_internal()��dep�M�ending�on����.��whether��x�cfunc��|�w��!as�called�t�wice�in�succession�and�the�v��dDalues�of�the��show-all-if-����.��ambiguous�O��and��show-all-if-unmodified��v��dDariables.���Application-sp�M�ecic�completion����.��functions��fma��!y�use�this�function�to�presen�t�the�same�in�terface�as��rl_complete()�.�������z[F��eunction]���G�char���**��rl���R���#؎�|completion���R���#؎�matc���hes�y��(�const��fchar�*text,����DGrl_compentry_func_t��f*entry_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�p�M�ossible�completions.�The�arra��!y�is�terminated����.��with��fa��NULL��p�M�oin��!ter.���b��.���en��!try���>�x�H����tfunc�ho�is��ka�function�of�t�w�o�args,�land�returns�a��char��f*�.�%�The�rst�argumen�t�is����.���text�.���The��dsecond�is�a�state�argumen��!t;�#cit�is�zero�on�the�rst�call,���and�non-zero�on����.��subsequen��!t�~calls.�$�en�try���>�x�H����tfunc����returns�a��NULL��p�M�oin�ter�to�the�caller�when�there�are�no����.��more��fmatc��!hes.�������z[F��eunction]���G�char���*��rl���R���#؎�|lename���R���#؎�completion���R���#؎�function�y��(�const��fchar�*text,�int����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-sp�M�ecic�completion����.��functions��f(the�Bash�completion�functions�call�this�and�other�Readline�functions).�������z[F��eunction]���G�char���*��rl���R���#؎�|username���R���#؎�completion���R���#؎�function�y��(�const��fchar�*text,�int����DGstate�)����.���A�l&completion�l5generator�for�usernames.��w�text��5�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.�������G�a2.6.3�d(Completion��MV��ģariables���������3�[V��eariable]���G�rl_compentry_func_t���*��rl���R���#؎�|completion���R���#؎�en���try���R���#؎�function����.���A�{p�M�oin��!ter��to�the�generator�function�for��rl_completion_matches()�.��d�NULL��means�to����.��use��f�rl_filename_completion_function()�,�the�default�lename�completer.����,E�������G�44�9pGNU��fReadline�Library�����3*�����֍����3[V��eariable]���G�rl_completion_func_t���*��rl���R���#؎�|attempted���R���#؎�completion���R���#؎�function��
33��.���A�,�p�M�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�b�M�ound-����.��aries�of��text�,�9]whic��!h�is�a�c�haracter�string.��oIf�this�function�exists�and�returns��NULL�,�9]or�if����.��this���v��dDariable�is�set�to��NULL�,���then��rl_complete()��will�call�the�v�alue�of��rl_completion_����.��entry_function�h��to�generate�matc��!hes,�u)otherwise�the�arra�y�of�strings�returned�will�b�M�e����.��used.��tIf��,this�function�sets�the��rl_attempted_completion_over��v��dDariable�to�a�non-zero����.��v��dDalue,�-�Readline��will�not�p�M�erform�its�default�completion�ev��!en�if�this�function�returns����.��no��fmatc��!hes.��������3[V��eariable]���G�rl_quote_func_t���*��rl���R���#؎�|lename���R���#؎�quoting���R���#؎�function����.���A��p�M�oin��!ter��to�a�function�that�will�quote�a�lename�in�an�application-sp�ecic�fashion.����.��This��Kis�called�if�lename�completion�is�b�M�eing�attempted�and�one�of�the�c��!haracters����.��in����rl_filename_quote_characters��app�M�ears�in�a�completed�lename.��`The�function����.��is�mPcalled�with��text�,��
�matc��!h���>�x�H����tt�yp�M�e�,�and�mP�quote���>�x�H����tp�oin��!ter�.�2�The��text��P�is�the�lename�to�b�e����.��quoted.�	(TThe���matc��!h���>�x�H����tt�yp�M�e����is�either��SINGLE_MATCH�,�pif�there�is�only�one�completion����.��matc��!h,�̂or����MULT_MATCH�.�9TSome�functions�use�this�to�decide�whether�or�not�to�insert�a����.��closing��quote�c��!haracter.�{�The��quote���>�x�H����tp�M�oin�ter�I�is�a�p�M�oin�ter�to�an�y�op�M�ening�quote�c�haracter����.��the��fuser�t��!yp�M�ed.���Some�functions�c�ho�M�ose�to�reset�this�c�haracter.�������3[V��eariable]���G�rl_dequote_func_t���*��rl���R���#؎�|lename���R���#؎�dequoting���R���#؎�function����.���A���p�M�oin��!ter���to�a�function�that�will�remo�v�e�application-sp�M�ecic�quoting�c�haracters�from����.��a��lename�b�M�efore�completion�is�attempted,���so�those�c��!haracters�do�not�in�terfere�with����.��matc��!hing���the�text�against�names�in�the�lesystem.��OIt�is�called�with��text�,��@the�text����.��of�xthe�w��!ord�to�b�M�e�dequoted,�m|and��quote���>�x�H����tc�har�,�m|whic�h�is�the�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��!b�M�edded�string.�������3[V��eariable]���G�rl_linebuf_func_t���*��rl���R���#؎�|c���har���R���#؎�is���R���#؎�quoted���R���#؎�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�in��rl_completer_word_break_characters��should�b�M�e�used�to�break����.��w��!ords��ffor�the�completer.�������3[V��eariable]���G�rl_compignore_func_t���*��rl���R���#؎�|ignore���R���#؎�some���R���#؎�completions���R���#؎�function����.���This��hfunction,��hif�dened,�is�called�b��!y�the�completer�when�real�lename�completion����.��is��done,�1�after�all�the�matc��!hing�names�ha�v�e�b�M�een�generated.�+�It�is�passed�a��NULL��ter-����.��minated��Zarra��!y�of�matc�hes.��The�rst�elemen�t�(�matches[0]�)�is�the�maximal�substring����.��common�tEto�all�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�b�M�e�freed.�������3[V��eariable]���G�rl_icppfunc_t���*��rl���R���#؎�|directory���R���#؎�completion���R���#؎�ho�b"ok����.���This�qAfunction,���if�dened,�is�allo��!w�ed�qAto�mo�M�dify�the�directory�p�ortion�of�lenames����.��Readline�c�completes.��It�is�called�with�the�address�of�a�string�(the�curren��!t�directory����.��name)�v,as�an�argumen��!t,��and�ma�y�mo�M�dify�that�string.�M/If�the�string�is�replaced�with����.��a��Mnew�string,��the�old�v��dDalue�should�b�M�e�freed.�O�An��!y�mo�died�directory�name�should����.��ha��!v�e���a�trailing�slash.��TThe�mo�M�died�v��dDalue�will�b�e�displa��!y�ed���as�part�of�the�completion,����-U�������G�Chapter��f2:���Programming�with�GNU�Readline�ʗ45�����3*�����֍�.��replacing�c9the�directory�p�M�ortion�of�the�pathname�the�user�t��!yp�ed.��yIt�returns�an�in��!teger��
33��.��that��,should�b�M�e�non-zero�if�the�function�mo�dies�its�directory�argumen��!t.��0It�could�b�e����.��used��fto�expand�sym��!b�M�olic�links�or�shell�v��dDariables�in�pathnames.���������3[V��eariable]���G�rl_compdisp_func_t���*��rl���R���#؎�|completion���R���#؎�displa���y���R���#؎�matc�hes���R���#؎�ho�b"ok����.���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�p�M�ossible�matc�hes.��MThis�function�is�called�in�lieu�of�Readline����.��displa��!ying�s7the�list.�DPIt�tak�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�b�M�er�}wof�strings�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�b�M�e����.��called��ffrom�this�ho�M�ok.�������3[V��eariable]���G�const���char�*��rl���R���#؎�|basic���R���#؎�w���ord���R���#؎�break���R���#؎�c�haracters����.���The�Oobasic�list�of�c��!haracters�that�signal�a�break�b�M�et�w�een�w�ords�for�the�completer����.��routine.�M�The�v[default�v��dDalue�of�this�v�ariable�is�the�c��!haracters�whic�h�break�w�ords�for����.��completion��fin�Bash:����"�\t\n\"\\'`@$><=;|&{("�.�������3[V��eariable]���G�const���char�*��rl���R���#؎�|basic���R���#؎�quote���R���#؎�c���haracters����.���A��flist�of�quote�c��!haracters�whic�h�can�cause�a�w�ord�break.�������3[V��eariable]���G�const���char�*��rl���R���#؎�|completer���R���#؎�w���ord���R���#؎�break���R���#؎�c�haracters����.���The��list�of�c��!haracters�that�signal�a�break�b�M�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���*��rl���R���#؎�|completion���R���#؎�w���ord���R���#؎�break���R���#؎�ho�b"ok����.���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.�F�It�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�c�ho�M�ose�to�set��rl_completer_word_break_characters��itself.���If�the����.��function��freturns��NULL�,��rl_completer_word_break_characters��is�used.�������3[V��eariable]���G�const���char�*��rl���R���#؎�|completer���R���#؎�quote���R���#؎�c���haracters����.���A�Clist�^of�c��!haracters�whic�h�can�b�M�e�used�to�quote�a�substring�of�the�line.��Completion����.��o�M�ccurs�&�on�the�en��!tire�substring,�@8and�within�the�substring��rl_completer_word_break_����.��characters�8\�are�treated�as�an��!y�other�c�haracter,�\�unless�they�also�app�M�ear�within�this����.��list.�������3[V��eariable]���G�const���char�*��rl���R���#؎�|lename���R���#؎�quote���R���#؎�c���haracters����.���A�]list�wof�c��!haracters�that�cause�a�lename�to�b�M�e�quoted�b�y�the�completer�when�they����.��app�M�ear��fin�a�completed�lename.���The�default�is�the�n��!ull�string.�������3[V��eariable]���G�const���char�*��rl���R���#؎�|sp�b"ecial���R���#؎�prexes����.���The�S�list�of�c��!haracters�that�are�w�ord�break�c�haracters,�d8but�should�b�M�e�left�in��text����when����.��it���is�passed�to�the�completion�function.���Programs�can�use�this�to�help�determine�what����.��kind���of�completing�to�do.�ҦF��eor�instance,��{Bash�sets�this�v��dDariable�to��"�$�@"��so�that�it�can����.��complete��fshell�v��dDariables�and�hostnames.����.hb������G�46�9pGNU��fReadline�Library�����3*�����֍����3[V��eariable]���G�int����rl���R���#؎�|completion���R���#؎�query���R���#؎�items��
33��.���Up�YAto�this�man��!y�items�will�b�M�e�displa�y�ed�in�resp�M�onse�to�a�p�ossible-completions�call.����.��After�Vthat,�f&readline�asks�the�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����rl���R���#؎�|completion���R���#؎�app�b"end���R���#؎�c���haracter����.���When���a�single�completion�alternativ��!e�matc�hes�at�the�end�of�the�command�line,��this����.��c��!haracter��?is�app�M�ended�to�the�inserted�completion�text.���The�default�is�a�space�c�haracter����.��(`��f').�
F�Setting�s�this�to�the�n��!ull�c�haracter�(`�\0�')�prev�en�ts�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����rl���R���#؎�|completion���R���#؎�suppress���R���#؎�app�b"end����.���If���non-zero,��rl���>�x�H����tcompletion���>�x�H���app�M�end���>�x�H���c��!haracter���is�not�app�M�ended�to�matc�hes�at�the�end����.��of�O�the�command�line,�`�as�describ�M�ed�ab�o��!v�e.���It�O�is�set�to�0�b�efore�an��!y�application-sp�ecic����.��completion��ffunction�is�called,�and�ma��!y�only�b�M�e�c�hanged�within�suc�h�a�function.�������3[V��eariable]���G�int����rl���R���#؎�|completion���R���#؎�quote���R���#؎�c���haracter����.���When�X;Readline�is�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����rl���R���#؎�|completion���R���#؎�suppress���R���#؎�quote����.���If��Dnon-zero,��Readline�do�M�es�not�app�end�a�matc��!hing�quote�c�haracter�when�p�M�erforming����.��completion��Gon�a�quoted�string.��}It�is�set�to�0�b�M�efore�an��!y�application-sp�ecic�completion����.��function��fis�called,�and�ma��!y�only�b�M�e�c�hanged�within�suc�h�a�function.�������3[V��eariable]���G�int����rl���R���#؎�|completion���R���#؎�found���R���#؎�quote����.���When���Readline�is�completing�quoted�text,�֟it�sets�this�v��dDariable�to�a�non-zero�v�alue�if����.��the���w��!ord�b�M�eing�completed�con�tains�or�is�delimited�b�y�an�y�quoting�c�haracters,��including����.��bac��!kslashes.���This��fis�set�b�M�efore�an�y�application-sp�M�ecic�completion�function�is�called.�������3[V��eariable]���G�int����rl���R���#؎�|completion���R���#؎�mark���R���#؎�symlink���R���#؎�dirs����.���If�ѧnon-zero,��wa�slash�will�b�M�e�app�ended�to�completed�lenames�that�are�sym��!b�olic�links����.��to��rdirectory�names,��sub���ject�to�the�v��dDalue�of�the�user-settable��mark-directories�Y��v�ariable.����.��This�Imv��dDariable�exists�so�that�application-sp�M�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�b�M�efore�an��!y�application-����.��sp�M�ecic��completion�function�is�called,���so�unless�that�function�mo�dies�the�v��dDalue,���the����.��user's��fpreferences�are�honored.�������3[V��eariable]���G�int����rl���R���#؎�|ignore���R���#؎�completion���R���#؎�duplicates����.���If��fnon-zero,�then�duplicates�in�the�matc��!hes�are�remo�v�ed.���The�default�is�1.�������3[V��eariable]���G�int����rl���R���#؎�|lename���R���#؎�completion���R���#؎�desired����.���Non-zero��means�that�the�results�of�the�matc��!hes�are�to�b�M�e�treated�as�lenames.�]�This����.��is��'�always��?�zero�when�completion�is�attempted,��and�can�only�b�M�e�c��!hanged�within�an����.��application-sp�M�ecic���completion�function.�!�If�it�is�set�to�a�non-zero�v��dDalue�b��!y�suc�h�a����/y������G�Chapter��f2:���Programming�with�GNU�Readline�ʗ47�����3*�����֍�.��function,��directory��
names�ha��!v�e��
a�slash�app�M�ended�and�Readline�attempts�to�quote�com-��
33��.��pleted�6 lenames�if�they�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����rl���R���#؎�|lename���R���#؎�quoting���R���#؎�desired����.���Non-zero�^nmeans�that�the�results�of�the�matc��!hes�are�to�b�M�e�quoted�using�double�quotes����.��(or�8an�application-sp�M�ecic�quoting�mec��!hanism)�if�the�completed�lename�con�tains����.��an��!y�QJc�haracters�in��rl_filename_quote_chars�.��~This�is��always�7b�non-zero�when�comple-����.��tion�Q	is�attempted,�band�can�only�b�M�e�c��!hanged�within�an�application-sp�ecic�completion����.��function.�}�The���quoting�is�eected�via�a�call�to�the�function�p�M�oin��!ted�to�b�y��rl_filename_����.��quoting_function�.�������3[V��eariable]���G�int����rl���R���#؎�|attempted���R���#؎�completion���R���#؎�o���v�er����.���If�Oan�application-sp�M�ecic�completion�function�assigned�to��rl_attempted_����.��completion_function�b��sets�this�v��dDariable�to�a�non-zero�v�alue,��Readline�will�not����.��p�M�erform���its�default�lename�completion�ev��!en�if�the�application's�completion�function����.��returns��fno�matc��!hes.���It�should�b�M�e�set�only�b�y�an�application's�completion�function.�������3[V��eariable]���G�int����rl���R���#؎�|completion���R���#؎�t���yp�b"e����.���Set�61to�a�c��!haracter�describing�the�t�yp�M�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�42)�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,��oallo��!wing�suc�h�functions����.��to��fpresen��!t�the�same�in�terface�as��rl_complete()�.�������3[V��eariable]���G�int����rl���R���#؎�|inhibit���R���#؎�completion����.���If�d`this�v��dDariable�is�non-zero,�q�completion�is�inhibited.���The�completion�c��!haracter�will�b�M�e����.��inserted��fas�an��!y�other�b�M�ound�to��self-insert�.�����G�a2.6.4�d(A��MShort�Completion�Example���ff��!G�Here�q}is�a�small�application�demonstrating�the�use�of�the�GNU�q/Readline�library��e.�v�It�is�called����G�fileman�,�lGand�D�the�source�co�M�de�resides�in�`�examples/fileman.c�'.���This�sample�application����Gpro��!vides�#�completion�of�command�names,�>line�editing�features,�and�access�to�the�history�list.����0��������G�48�9pGNU��fReadline�Library�����3*�����֍�.���/*���fileman.c�--�A�tiny�application�which�demonstrates�how�to�use�the��
���=&^GNU���Readline�library.�	s,This�application�interactively�allows�users����=&^to���manipulate�files�and�their�modes.�*/����.��#include���<stdio.h>����.��#include���<sys/types.h>����.��#include���<sys/file.h>����.��#include���<sys/stat.h>����.��#include���<sys/errno.h>����.��#include���<readline/readline.h>����.��#include���<readline/history.h>����.��extern���char�*xmalloc�();����.��/*���The�names�of�functions�that�actually�do�the�manipulation.�*/����.��int���com_list�__P((char�*));����.��int���com_view�__P((char�*));����.��int���com_rename�__P((char�*));����.��int���com_stat�__P((char�*));����.��int���com_pwd�__P((char�*));����.��int���com_delete�__P((char�*));����.��int���com_help�__P((char�*));����.��int���com_cd�__P((char�*));����.��int���com_quit�__P((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;����.��COMMAND���commands[]�=�{����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�means�the�user�is�done�using�this�program.�*/����1��������G�Chapter��f2:���Programming�with�GNU�Readline�ʗ49�����3*�����֍�.���int���done;����.��char���*��
���.��dupstr���(s)����F��int���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.�*/����KS s���=�stripwhite�(line);����KS if���(*s)����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;����2��������G�50�9pGNU��fReadline�Library�����3*�����֍�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;����.��{����8l�register���int�i;����8l�for���(i�=�0;�commands[i].name;�i++)����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;����3��������G�Chapter��f2:���Programming�with�GNU�Readline�ʗ51�����3*�����֍�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�__P((const�char�*,�int));����.��char���**fileman_completion�__P((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.�We�can�use�the�entire����=&^contents���of�rl_line_buffer�in�case�we�want�to�do�some�simple����=&^parsing.�	s,Returnthe���array�of�matches,�or�NULL�if�there�aren't�any.�*/����.��char���**����.��fileman_completion���(text,�start,�end)����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����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;����4�K������G�52�9pGNU��fReadline�Library�����3*�����֍�.���{��
���8l�static���int�list_index,�len;����8l�char���*name;����8l�/*���If�this�is�a�new�word�to�complete,�initialize�now.�	s,This����F��includes���saving�the�length�of�TEXT�for�efficiency,�and����F��initializing���the�index�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����F��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.���*/����.��static���char�syscom[1024];����.��/*���List�the�file(s)�named�in�arg.�*/����.��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;����8l�sprintf���(syscom,�"more�%s",�arg);����8l�return���(system�(syscom));����.��}����5�������G�Chapter��f2:���Programming�with�GNU�Readline�ʗ53�����3*�����֍�.���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",�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));����8l�printf���("�Y�Last�access�at:�%s",�ctime�(&finfo.st_atime));����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��}����6�B������G�54�9pGNU��fReadline�Library�����3*�����֍�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��{����KS perror���(arg);����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;����7�8������G�Chapter��f2:���Programming�with�GNU�Readline�ʗ55�����3*�����֍�.���{��
���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.\n",����b�caller);����8l�fprintf���(stderr,�"Write�it�yourself.\n");����.��}����.��/*���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);����.��}����8�A������G�56�9pGNU��fReadline�Library�����3*��9Ƅ������G�App�M�endix��fA:�Cop��!ying�This�Man�ual��~57�����3*�����֍���G�OApp��=endix�z�A��~��Cop��u�ying�z�This�Man�ual���/#׍��G�XA.1��GNU�f@F���free�Do�s3cumen���tation�License���ff���4A�V��eersion��f1.2,�No��!v�em�b�M�er��f2002�����.��Cop��!yrigh�t���������c��������f�
�����@�2000,2001,2002��fF��eree�Soft��!w�are��fF�oundation,�Inc.��
33��.��59��fT��eemple�Place,�Suite�330,�Boston,�MA�L�02111-1307,�USA����.��Ev��!ery�one��fis�p�M�ermitted�to�cop��!y�and�distribute�v�erbatim�copies����.��of��fthis�license�do�M�cumen��!t,�but�c�hanging�it�is�not�allo�w�ed.������-0.��'��PREAMBLE������'��The�vQpurp�M�ose�of�this�License�is�to�mak��!e�a�man�ual,��Ltextb�M�o�ok,�or�vQother�functional�and����'��useful���do�M�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�mo�M�difying�it,�either�commercially�or�non-����'��commercially��e.�c�Secondarily�,�H�this�(aLicense�preserv��!es�for�the�author�and�publisher�a�w�a�y����'��to�W9get�credit�for�their�w��!ork,��mwhile�not�b�M�eing�considered�resp�onsible�for�mo�dications����'��made��fb��!y�others.����'��This��/License�is�a�kind�of�\cop��!yleft",���whic�h��/means�that�deriv��dDativ��!e�w�orks�of�the�do�M�cumen�t����'��m��!ust��themselv�es�b�M�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,���b�M�ecause����'��free�?soft��!w�are�needs�free�do�M�cumen�tation:���a�free�program�should�come�with�man�uals����'��pro��!viding�urthe�same�freedoms�that�the�soft�w�are�do�M�es.�͌But�this�License�is�not�limited�to����'��soft��!w�are���man�uals;���it�can�b�M�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.�@AW��ee��2recommend�this�License�principally�for����'��w��!orks��fwhose�purp�M�ose�is�instruction�or�reference.�����-1.��'��APPLICABILITY��fAND�DEFINITIONS����'��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�b�M�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,��
to�o�use�that�w��!ork�under�the�conditions�stated�herein.�
9�The�\Do�M�cumen�t",����'��b�M�elo��!w,�tkrefers�g�to�an�y�suc�h�man�ual�or�w�ork.��
An�y�mem�b�M�er�of�the�public�is�a�licensee,�tkand����'��is���addressed�as�\y��!ou".��@Y��eou�accept�the�license�if�y�ou�cop�y��e,� �mo�M�dify�or�distribute�the�w�ork����'��in��fa�w��!a�y��frequiring�p�M�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�Do�M�cumen�t�or����'��a��hp�M�ortion�of�it,��heither�copied�v��!erbatim,�or�with�mo�M�dications�and/or�translated�in��!to����'��another��flanguage.����'��A��\Secondary��Section"�is�a�named�app�M�endix�or�a�fron��!t-matter�section�of�the�Do�cumen��!t����'��that��/deals�exclusiv��!ely�with�the�relationship�of�the�publishers�or�authors�of�the�Do�M�cumen�t����'��to�z
the�Do�M�cumen��!t's�o�v�erall�sub���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�Do�M�cumen�t�is�in�part�a����'��textb�M�o�ok�Նof�mathematics,��La�Secondary�Section�ma��!y�not�explain�an�y�mathematics.)��=The����'��relationship�G�could�b�M�e�a�matter�of�historical�connection�with�the�sub���ject�or�with�related����:�䍟����G�58�9pGNU��fReadline�Library�����3*�����֍�'��matters,�jor�B�of�legal,�commercial,�philosophical,�ethical�or�p�M�olitical�p�osition�regarding��
33��'��them.������'��The�r\In��!v��dDarian�t�Sections"�are�certain�Secondary�Sections�whose�titles�are�designated,�0�as����'��b�M�eing�2Dthose�of�In��!v��dDarian�t�2DSections,�I~in�the�notice�that�sa��!ys�that�the�Do�cumen��!t�is�released����'��under�S5this�License.��"If�a�section�do�M�es�not�t�the�ab�o��!v�e�S5denition�of�Secondary�then�it�is����'��not�Ӎallo��!w�ed�to�b�M�e�designated�as�In�v��dDarian�t.�eSThe�Do�M�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.����'��The�f�\Co��!v�er�T��eexts"�are�certain�short�passages�of�text�that�are�listed,���as�F�ron��!t-Co�v�er����'��T��eexts�-or�Bac��!k-Co�v�er�-T�exts,�"8in�the�notice�that�sa��!ys�that�the�Do�M�cumen�t�is�released�under����'��this��License.��AA�nF��eron��!t-Co�v�er�T��eext�ma�y�b�M�e�at�most�5�w�ords,�6�and�a�Bac�k-Co�v�er�T��eext�ma�y����'��b�M�e��fat�most�25�w��!ords.����'��A�C�\T��eransparen��!t"�C�cop�y�of�the�Do�M�cumen�t�means�a�mac�hine-readable�cop�y��e,�k(represen�ted����'��in�Jma�format�whose�sp�M�ecication�is�a��!v��dDailable�to�the�general�public,�sothat�is�suitable�for����'��revising���the�do�M�cumen��!t�straigh�tforw�ardly�with�generic�text�editors�or�(for�images�com-����'��p�M�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�formats�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�b�M�een�arranged�to����'��th��!w�art�0�or�discourage�subsequen��!t�mo�M�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�formats�for�T��eransparen��!t�copies�include�plain��asci�>Ki��without����'��markup,�'T��eexinfo�ěinput�format,�LaT���,��[wE��B	X��Qinput�format,��sgml��or��xml��using�a�publicly����'��a��!v��dDailable��e�dtd�,��%and�standard-conforming�simple��html�,�P��!ostScript�or��pdf��designed�for����'��h��!uman���mo�M�dication.��mExamples�of�transparen�t�image�formats�include��png�,���x���cf��and����'���jpg�.��QOpaque���formats�include�proprietary�formats�that�can�b�M�e�read�and�edited�only����'��b��!y��Mproprietary�w�ord�pro�M�cessors,���sgml��or��xml��for�whic�h�the��dtd��and/or�pro�M�cessing����'��to�M�ols��_are�not�generally�a��!v��dDailable,��]and�the�mac�hine-generated��html�,��]P�ostScript�or��pdf����'���pro�M�duced��fb��!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�License�requires�to�app�M�ear�in�the����'��title�1.page.���F��eor�w��!orks�in�formats�whic�h�do�not�ha�v�e�an�y�title�page�as�suc�h,�H�\Title�P�age"����'��means���the�text�near�the�most�prominen��!t�app�M�earance�of�the�w�ork's�title,��Xpreceding�the����'��b�M�eginning��fof�the�b�o�dy�of�the�text.����'��A���section���\En��!titled�XYZ"�means�a�named�subunit�of�the�Do�M�cumen��!t�whose�title�either����'��is�U�precisely�XYZ�U�or�con��!tains�XYZ�in�paren��!theses�follo�wing�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�mo�M�dify�the�Do�cumen��!t�means�that�it�remains�a����'��section��f\En��!titled�XYZ"�according�to�this�denition.����'��The�SuDo�M�cumen��!t�ma�y�include�W��earran�t�y�Disclaimers�next�to�the�notice�whic�h�states�that����'��this��License�applies�to�the�Do�M�cumen��!t.��These�W��earran�t�y�Disclaimers�are�considered�to����'��b�M�e���included�b��!y�reference�in�this�License,���but�only�as�regards�disclaiming�w�arran�ties:����'��an��!y�n�other�implication�that�these�W��earran�t�y�Disclaimers�ma�y�ha�v�e�is�v�oid�and�has�no����'��eect��fon�the�meaning�of�this�License.����;�ߍ�����G�App�M�endix��fA:�Cop��!ying�This�Man�ual��~59�����3*�����֍��-2.��'��VERBA��eTIM��fCOPYING������'��Y��eou���ma��!y�cop�y�and�distribute�the�Do�M�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�this�License�applies�to�the�Do�M�cumen�t�are�repro�M�duced�in�all�copies,�t7and����'��that�1'y��!ou�add�no�other�conditions�whatso�M�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�comp�M�ensation�in�exc�hange�for�copies.����'��If��y��!ou�distribute�a�large�enough�n�um�b�M�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�ab�M�o�v�e,��7and�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�visible.�Y��eou�ma�y�add�other�material�on�the�co�v�ers�in�addition.����'��Cop��!ying�Y4with�c�hanges�limited�to�the�co�v�ers,���as�long�as�they�preserv�e�the�title�of�the����'��Do�M�cumen��!t�uand�satisfy�these�conditions,���can�b�e�treated�as�v��!erbatim�cop�ying�in�other����'��resp�M�ects.����'��If��|the�required�texts�for�either�co��!v�er��|are�to�M�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�Do�M�cumen�t�n�um�b�M�ering�more�than�100,����'��y��!ou�\3m�ust�either�include�a�mac�hine-readable�T��eransparen�t�cop�y�along�with�eac�h�Opaque����'��cop��!y��e,�[>or�7state�in�or�with�eac�h�Opaque�cop�y�a�computer-net�w�ork�lo�M�cation�from�whic�h����'��the��Sgeneral�net��!w�ork-using��Spublic�has�access�to�do��!wnload�using�public-standard�net�w�ork����'��proto�M�cols��=a�complete�T��eransparen��!t�cop�y�of�the�Do�M�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�b�M�egin����'��distribution��lof�Opaque�copies�in�quan��!tit�y��e,�Ӯto��lensure�that�this�T�ransparen��!t�cop�y�will����'��remain��Cth��!us�accessible�at�the�stated�lo�M�cation�un�til�at�least�one�y�ear�after�the�last�time����'��y��!ou�k�distribute�an�Opaque�cop�y�(directly�or�through�y�our�agen�ts�or�retailers)�of�that����'��edition��fto�the�public.����'��It�&Nis�requested,�FHbut�not�required,�that�y��!ou�con�tact�the�authors�of�the�Do�M�cumen�t�w�ell����'��b�M�efore�o�redistributing�an��!y�large�n�um�b�M�er�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�Mo�M�died�V��eersion�of�the�Do�cumen��!t�under�the�conditions����'��of���sections�2�and�3�ab�M�o��!v�e,��]pro�vided���that�y��!ou�release�the�Mo�died�V��eersion�under�precisely����'��this�{�License,��`with�the�Mo�M�died�V��eersion�lling�the�role�of�the�Do�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�Mo�M�died�V��eersion:����<��������G�60�9pGNU��fReadline�Library�����3*�����֍��*��A.��=nUse��pin�the�Title�P��!age�(and�on�the�co�v�ers,��2if�an�y)�a�title�distinct�from�that�of�the��
33��=nDo�M�cumen��!t,�+and��from�those�of�previous�v�ersions�(whic�h�should,�+if�there�w�ere�an�y��e,����=nb�M�e���listed�in�the�History�section�of�the�Do�cumen��!t).�3�Y��eou�ma�y�use�the�same�title�as����=na��fprevious�v��!ersion�if�the�original�publisher�of�that�v�ersion�giv�es�p�M�ermission.���͍��+g�B.��=nList��\on�the�Title�P��!age,��Yas�authors,�one�or�more�p�M�ersons�or�en��!tities�resp�onsible�for����=nauthorship�"of�the�mo�M�dications�in�the�Mo�died�V��eersion,�<|together�with�at�least�v��!e����=nof�߸the�principal�authors�of�the�Do�M�cumen��!t�(all�of�its�principal�authors,�tif�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�Mo�M�died�V��eersion,���as�the����=npublisher.�����*��D.��=nPreserv��!e��fall�the�cop�yrigh�t�notices�of�the�Do�M�cumen�t.�����+�oE.��=nAdd��ean�appropriate�cop��!yrigh�t��enotice�for�y��!our�mo�M�dications�adjacen�t�to�the�other����=ncop��!yrigh�t��fnotices.�����,LF.��=nInclude,�hSimmediately�X�after�the�cop��!yrigh�t�X�notices,�a�license�notice�giving�the�public����=np�M�ermission���to�use�the�Mo�died�V��eersion�under�the�terms�of�this�License,�Pin�the�form����=nsho��!wn��fin�the�Addendum�b�M�elo�w.�����*�nG.��=nPreserv��!e��min�that�license�notice�the�full�lists�of�In�v��dDarian�t�Sections�and�required�Co�v�er����=nT��eexts��fgiv��!en�in�the�Do�M�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�Mo�M�died�V��eersion����=nas��Xgiv��!en�on�the�Title�P�age.�7�If�there�is�no�section�En�titled�\History"�in�the�Do�M�cu-����=nmen��!t,�O#create�-done�stating�the�title,�y��!ear,�authors,�and�publisher�of�the�Do�M�cumen��!t����=nas�Wgiv��!en�on�its�Title�P�age,��Gthen�add�an�item�describing�the�Mo�M�died�V��eersion�as����=nstated��fin�the�previous�sen��!tence.�����-��J.��=nPreserv��!e��the�net�w�ork�lo�M�cation,���if�an�y��e,���giv�en�in�the�Do�M�cumen�t�for�public�access�to����=na���T��eransparen��!t�cop�y�of�the�Do�M�cumen�t,��Mand�lik�ewise�the�net�w�ork�lo�M�cations�giv�en�in����=nthe�̈́Do�M�cumen��!t�for�previous�v�ersions�it�w�as�based�on.�S6These�ma�y�b�M�e�placed�in�the����=n\History"�8section.���Y��eou�ma��!y�omit�a�net�w�ork�lo�M�cation�for�a�w�ork�that�w�as�published����=nat�Kleast�four�y��!ears�b�M�efore�the�Do�cumen��!t�itself,�t?or�if�the�original�publisher�of�the����=nv��!ersion��fit�refers�to�giv�es�p�M�ermission.�����*��K.��=nF��eor��ran��!y�section�En�titled�\Ac�kno�wledgemen�ts"�or�\Dedications",�pPreserv�e�the�Title����=nof�/Rthe�section,�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�Do�M�cumen�t,�f/unaltered�in�their�text�and����=nin�P�their�titles.��@Section�n��!um�b�M�ers�P�or�the�equiv��dDalen��!t�are�not�considered�part�of�the����=nsection��ftitles.�����)�M.��=nDelete��5an��!y�section�En�titled�\Endorsemen�ts".��JSuc�h�a�section�ma�y�not�b�M�e�included����=nin��fthe�Mo�M�died�V��eersion.�����*��N.��=nDo�g!not�retitle�an��!y�existing�section�to�b�M�e�En�titled�\Endorsemen�ts"�or�to�con
ict�in����=ntitle��fwith�an��!y�In�v��dDarian�t�Section.�����*��O.��=nPreserv��!e��fan�y�W��earran�t�y�Disclaimers.��&g��'��If��the�Mo�M�died�V��eersion�includes�new�fron��!t-matter�sections�or�app�endices�that�qualify����'��as�XSecondary�Sections�and�con��!tain�no�material�copied�from�the�Do�M�cumen�t,�g�y�ou�ma�y�at����=��������G�App�M�endix��fA:�Cop��!ying�This�Man�ual��~61�����3*�����֍�'��y��!our��koption�designate�some�or�all�of�these�sections�as�in�v��dDarian�t.���T��eo�do�this,��add�their��
33��'��titles�@�to�the�list�of�In��!v��dDarian�t�@�Sections�in�the�Mo�M�died�V��eersion's�license�notice.���These����'��titles��fm��!ust�b�M�e�distinct�from�an�y�other�section�titles.���
��'��Y��eou�pma��!y�add�a�section�En�titled�\Endorsemen�ts",�s�pro�vided�it�con�tains�nothing�but����'��endorsemen��!ts��of�y�our�Mo�M�died�V��eersion�b�y�v��dDarious�parties|for�example,��Ystatemen�ts�of����'��p�M�eer�D
review�or�that�the�text�has�b�een�appro��!v�ed�D
b�y�an�organization�as�the�authoritativ�e����'��denition��fof�a�standard.����'��Y��eou�f,ma��!y�add�a�passage�of�up�to�v�e�w�ords�as�a�F��eron�t-Co�v�er�T��eext,�sand�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�Mo�M�died����'��V��eersion.��+Only�N+one�passage�of�F�ron��!t-Co�v�er�N+T�ext�and�one�of�Bac��!k-Co�v�er�N+T�ext�ma��!y�b�M�e����'��added�N�b��!y�(or�through�arrangemen�ts�made�b�y)�an�y�one�en�tit�y��e.���If�the�Do�M�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�b�M�ehalf�of,�_�y�ou�ma�y�not�add�another;���but����'��y��!ou�)ma�y�replace�the�old�one,�2on�explicit�p�M�ermission�from�the�previous�publisher�that����'��added��fthe�old�one.����'��The�^author(s)�and�publisher(s)�of�the�Do�M�cumen��!t�do�not�b�y�this�License�giv�e�p�M�ermission����'��to��juse�their�names�for�publicit��!y�for�or�to�assert�or�imply�endorsemen�t�of�an�y�Mo�M�died����'��V��eersion.�����-5.��'��COMBINING��fDOCUMENTS����'��Y��eou���ma��!y�com�bine�the�Do�M�cumen�t�with�other�do�M�cumen�ts�released�under�this�License,����'��under��sthe�terms�de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�do�M�cumen�ts,����'��unmo�M�died,�L3and�5�list�them�all�as�In��!v��dDarian�t�5�Sections�of�y��!our�com�bined�w�ork�in�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�b�M�e�replaced�with�a�single�cop�y��e.��BIf�there�are�m�ultiple�In�v��dDarian�t����'��Sections�6�with�the�same�name�but�dieren��!t�con�ten�ts,�Mmak�e�the�title�of�eac�h�suc�h�section����'��unique�bb��!y�adding�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�b�M�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�do�M�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�Do�M�cumen�t�and�other�do�M�cumen�ts�released����'��under��this�License,�s�and�replace�the�individual�copies�of�this�License�in�the�v��dDarious����'��do�M�cumen��!ts�Dwith�a�single�cop�y�that�is�included�in�the�collection,�y�pro�vided�that�y�ou����'��follo��!w�t�the�rules�of�this�License�for�v�erbatim�cop�ying�of�eac�h�of�the�do�M�cumen�ts�in�all����'��other��fresp�M�ects.����'��Y��eou��=ma��!y�extract�a�single�do�M�cumen�t�from�suc�h�a�collection,��3and�distribute�it�individu-����'��ally�4under�this�License,�Wmpro��!vided�y�ou�insert�a�cop�y�of�this�License�in�to�the�extracted����'��do�M�cumen��!t,���and��Afollo�w�this�License�in�all�other�resp�M�ects�regarding�v�erbatim�cop�ying�of����'��that��fdo�M�cumen��!t.����>�������G�62�9pGNU��fReadline�Library�����3*�����֍��-7.��'��A��!GGREGA��eTION��fWITH�INDEPENDENT�W�ORKS������'��A�]�compilation�]�of�the�Do�M�cumen��!t�or�its�deriv��dDativ�es�with�other�separate�and�indep�M�enden�t��
33��'��do�M�cumen��!ts��hor�w�orks,��in�or�on�a�v�olume�of�a�storage�or�distribution�medium,��is�called����'��an��\aggregate"�if�the�cop��!yrigh�t��resulting�from�the�compilation�is�not�used�to�limit�the����'��legal�1	righ��!ts�of�the�compilation's�users�b�M�ey�ond�what�the�individual�w�orks�p�M�ermit.���When����'��the�Q�Do�M�cumen��!t�is�included�an�aggregate,�b�this�License�do�es�not�apply�to�the�other�w��!orks����'��in��fthe�aggregate�whic��!h�are�not�themselv�es�deriv��dDativ�e�w�orks�of�the�Do�M�cumen�t.����'��If��Vthe�Co��!v�er��VT��eext�requiremen��!t�of�section�3�is�applicable�to�these�copies�of�the�Do�M�cumen�t,����'��then��Dif�the�Do�M�cumen��!t�is�less�than�one�half�of�the�en�tire�aggregate,��~the�Do�M�cumen�t's�Co�v�er����'��T��eexts�0ma��!y�b�M�e�placed�on�co�v�ers�that�brac�k�et�the�Do�M�cumen�t�within�the�aggregate,�G�or�the����'��electronic�5qequiv��dDalen��!t�of�co�v�ers�if�the�Do�M�cumen�t�is�in�electronic�form.���Otherwise�they����'��m��!ust��fapp�M�ear�on�prin�ted�co�v�ers�that�brac�k�et�the�whole�aggregate.�����-8.��'��TRANSLA��eTION����'��T��eranslation�̯is�considered�a�kind�of�mo�M�dication,�Aso�y��!ou�ma�y�distribute�translations����'��of�T�the�Do�M�cumen��!t�under�the�terms�of�section�4.�	�Replacing�In�v��dDarian�t�Sections�with����'��translations�v�requires�sp�M�ecial�p�ermission�from�their�cop��!yrigh�t�v�holders,���but�y��!ou�ma�y����'��include��ktranslations�of�some�or�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,��
and�all�the����'��license���notices�in�the�Do�M�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�b�M�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�the�Do�M�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,���mo�M�dify�,�sublicense,�or��distribute�the�Do�M�cumen��!t�except�as�expressly����'��pro��!vided�=for�under�this�License.��bAn�y�other�attempt�to�cop�y��e,�^2mo�M�dify�,�sublicense�=or����'��distribute�f?the�Do�M�cumen��!t�is�v�oid,��5and�will�automatically�terminate�y�our�righ�ts�under����'��this�V8License.��#Ho��!w�ev�er,�fAparties�who�ha�v�e�receiv�ed�copies,�fAor�righ�ts,�fAfrom�y�ou�under�this����'��License�i+will�not�ha��!v�e�i+their�licenses�terminated�so�long�as�suc��!h�parties�remain�in�full����'��compliance.�������10.��'��FUTURE��fREVISIONS�OF�THIS�LICENSE����'��The��aF��eree�Soft��!w�are��aF�oundation�ma��!y�publish�new,�U�revised�v�ersions�of�the�GNU��	F��eree����'��Do�M�cumen��!tation���License�from�time�to�time.�xRSuc�h�new�v�ersions�will�b�M�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�it,��Ky��!ou�ha�v�e�the�option�of�follo�wing�the�terms�and�conditions�either�of�that����'��sp�M�ecied��v��!ersion�or�of�an�y�later�v�ersion�that�has�b�M�een�published�(not�as�a�draft)�b�y����'��the��!F��eree�Soft��!w�are��!F�oundation.��If�the�Do�M�cumen��!t�do�es�not�sp�ecify�a�v��!ersion�n�um�b�M�er�of����'��this�$�License,�D)y��!ou�ma�y�c�ho�M�ose�an�y�v�ersion�ev�er�published�(not�as�a�draft)�b�y�the�F��eree����'��Soft��!w�are��fF��eoundation.����?y������G�App�M�endix��fA:�Cop��!ying�This�Man�ual��~63�����3*�����֍��G�aA.1.1�d(ADDENDUM:��MHo���w�to�use�this�License�for�y�our�do�icumen�ts���ff��!G�T��eo�F�use�this�License�in�a�do�M�cumen��!t�y�ou�ha�v�e�written,�Y�include�a�cop�y�of�the�License�in�the��
33��Gdo�M�cumen��!t��fand�put�the�follo�wing�cop�yrigh�t�and�license�notices�just�after�the�title�page:��
����8l��Copyright���(C)�	s,�A��<x	
cmsltt10�Ayear�
}�your���name�.��
���8l�Permission���is�granted�to�copy,�distribute�and/or�modify�this�document����8l�under���the�terms�of�the�GNU�Free�Documentation�License,�Version�1.2����8l�or���any�later�version�published�by�the�Free�Software�Foundation;����8l�with���no�Invariant�Sections,�no�Front-Cover�Texts,�and�no�Back-Cover�Texts.����8l�A���copy�of�the�license�is�included�in�the�section�entitled�``GNU����8l�Free���Documentation�License''.���M�<��!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...T��eexts."���line��fwith�this:�����A���with���the�Invariant�Sections�being��Alist���their�titles�,���with��
���A��the���Front-Cover�Texts�being��Alist�,�and�with�the�Back-Cover�Texts����A��being����Alist�.���#�@��!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�do�M�cumen�t�con�tains�non�trivial�examples�of�program�co�M�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�p�M�ermit�their�use�in�free�soft��!w�are.����@*�������G�64�9pGNU��fReadline�Library�����3*��A1�������G�Concept��fIndex�`�)65�����3*�����֍��G�OConcept�z�Index����V����-�ҍ�G�XA�����G�o���		cmr9�application-sp�A�ecic�Tcompletion�functions�gY���U�%�j��		cmti9�.��`���U.�����U.�����U.�����U.�����U.�����U.��ܦ�41���^��G�XC����G�command�Tediting�����U�.��`���U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.��	i�1����G�XE����G�editing�Tcommand�lines�
=���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�XF����G�FDL,�TGNU�F��:�ree�Do�A�cumen��9tation�License��o���U�.��`���U.�����U.�����U.�����U.�����U.�����U.����57����G�XI����G�initialization�Tle,�readline�C���U�.��`���U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.���\�4��
͎��Gin��9teraction,�Treadline�}����U�.��`���U.�����U.�����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�����-�ҍ�����XK��������kill�Tring�D���U�.��`���U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����3��
͎�����killing�Ttext�b����U�.��`���U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����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�2���^������XN�������notation,�Treadline�ᬍ��U�.��`���U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.��V��1��������XR�������readline,�Tfunction�$X���U�.��`���U.�����U.�����U.�����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��������XV�������v��|rariables,�Treadline�3����U�.��`���U.�����U.�����U.�����U.�����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��������XY�������y��9anking�Ttext�;ۍ��U�.��`���U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����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������B1�������G�66�9pGNU��fReadline�Library�����3*��C>�������G�F��eunction��fand�V�ariable�Index���67�����3*�����֍��G�OF��aGunction�z�and�V�ariable�Index���_3*�����L֍��3�����+���SB��G�_rl_digit_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.��	4ج36��
����G�_rl_digit_value�c���U�.��`���U.�����U.�����U.�����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_lowercase_p�c���U�.��`���U.�����U.�����U.�����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_to_lower������U�.��`���U.�����U.�����U.�����U.�����U.�����U.�����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_to_upper������U�.��`���U.�����U.�����U.�����U.�����U.�����U.�����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_uppercase_p�c���U�.��`���U.�����U.�����U.�����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��6_��G�XA����G�abort�T(C-g)�a����U�.��`���U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����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����G�accept-line�T(Newline�or�Return)��&���U�.��`���U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.��+s�13��6_��G�XB����G�backward-char�T(C-b)�+\���U�.��`���U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����13����G�backward-delete-char�T(Rubout)��y���U�.��`���U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.��	Ƭ15����G�backward-kill-line�T(C-x�Rubout)����U�.��`���U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.��	�S�16����G�backward-kill-word�T(M-������h�����̟�@�ff������DEL����̟ٚ�ff������8����i�����)�ͭ���U�.��`���U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.��	B��16����G�backward-word�T(M-b)�+\���U�.��`���U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����13����G�beginning-of-history�T(M-<)�!׍��U�.��`���U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.��	�$�14����G�beginning-of-line�T(C-a)�x4���U�.��`���U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.��크13����Gb�A�ell-st��9yle��z���U�.��`���U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.��lƬ5����Gbind-tt��9y-sp�A�ecial-c�hars�ߧ���U�.��`���U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.��	T��5���_��G�XC����G�call-last-kbd-macro�T(C-x�e)��-���U�.��`���U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.��z�18����G�capitalize-word�T(M-c)��ȍ��U�.��`���U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.��G�15����G�character-search�T(C-])������U�.��`���U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.��K�18����G�character-search-backward�T(M-C-])��Q���U�.��`���U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.��]��19����G�clear-screen�T(C-l)�X&���U�.��`���U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.���s�13����Gcommen��9t-b�A�egin�f���U�.��`���U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.���f�5����G�complete�T(������h�����̟�@�ff�l����T��J�AB����̟ٚ�ff�l���8�����i���ь�)��덑�U�.��`���U.�����U.�����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�17����Gcompletion-query-items�:����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�.��`���U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����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�.��`���U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.��G�16����G�copy-forward-word�T()������U�.��`���U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.��s߬16����G�copy-region-as-kill�T()������U�.��`���U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.��K�16��6_��G�XD����G�delete-char�T(C-d)������U�.��`���U.�����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�delete-char-or-list�T()������U�.��`���U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.��K�17����G�delete-horizontal-space�T()�!׍��U�.��`���U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.��	�$�16����G�digit-argument�T(�AM-0�,��AM-1�,��...��Wj�AM--�)�卑�U�.��`���U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.��w1�17����Gdisable-completion�AR���U�.��`���U.�����U.�����U.�����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�do-uppercase-version�T(M-a,�M-b,�M-�Ax�,��...��B)��
���%����U�.��`���U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.��q��18����G�downcase-word�T(M-l)�+\���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�dump-functions�T()������U�.��`���U.�����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�dump-macros�T()�N���U�.��`���U.�����U.�����U.�����U.�����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�dump-variables�T()������U�.��`���U.�����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������L֍�����XE��.�����editing-mo�A�de��2���U�.��`���U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����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��
�=������emacs-editing-mode�T(C-e)�Kj���U�.��`���U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����19�������enable-k��9eypad�d��U�.��`���U.�����U.�����U.�����U.�����U.�����U.�����U.�����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�))��鍑�U�.��`���U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.��	6�18��������end-of-history�T(M->)������U�.��`���U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.��s߬14��������end-of-line�T(C-e)������U�.��`���U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.���=�13��������exchange-point-and-mark�T(C-x�C-x)��r���U�.��`���U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.��	/��18�������expand-tilde�����U�.��`���U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����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��O�������XF��������forward-backward-delete-char�T()�A卑�U�.��`���U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.���2�15��������forward-char�T(C-f)�X&���U�.��`���U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.���s�13��������forward-search-history�T(C-s)��C���U�.��`���U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.��	=��14��������forward-word�T(M-f)�X&���U�.��`���U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.���s�13��O�������XH�������history-preserv��9e-p�A�oin�t�4����U�.��`���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�6��������history-search-backward�T()�!׍��U�.��`���U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.��	�$�14��������history-search-forward�T()�����U�.��`���U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.����14�������horizon��9tal-scroll-mo�A�de������U�.��`���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��Ns������XI�������input-meta�!.���U�.��`���U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.���z�6��������insert-comment�T(M-#)������U�.��`���U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.��s߬19��������insert-completions�T(M-*)�Kj���U�.��`���U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����17�������isearc��9h-terminators�
����U�.��`���U.�����U.�����U.�����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��Ns������XK�������k��9eymap�`D���U�.��`���U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����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��������kill-line�T(C-k)�ބ���U�.��`���U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.��	SѬ16��������kill-region�T()�N���U�.��`���U.�����U.�����U.�����U.�����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��������kill-whole-line�T()�X&���U�.��`���U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.���s�16��������kill-word�T(M-d)�ބ���U�.��`���U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.��	SѬ16��O�������XM�������mark-mo�A�died-lines�����U�.��`���U.�����U.�����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�������mark-symlink��9ed-directories�����U�.��`���U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.��	2T�7�������matc��9h-hidden-les��č��U�.��`���U.�����U.�����U.�����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��������menu-complete�T()������U�.��`���U.�����U.�����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�������meta-
ag�Z���U�.��`���U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.���Z�6��O�������XN��������next-history�T(C-n)�X&���U�.��`���U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.���s�14��������non-incremental-forward-search-history�T(M-n)��
���^(���U�.��`���U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.��q��14��������non-incremental-reverse-search-history�T(M-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.��q��14������D?Z������G�68�9pGNU��fReadline�Library�����3*�������֍�G�XO��G(��G�output-meta�}����U�.��`���U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����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��
���G�overwrite-mode�T()������U�.��`���U.�����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�XP����G�page-completions��ލ��U�.��`���U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.��	Z+�7����G�possible-completions�T(M-?)�!׍��U�.��`���U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.��	�$�17����G�prefix-meta�T(������h�����̟�@�ff�T����ESC����̟ٚ�ff�T��������i����t�)������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����G�previous-history�T(C-p)������U�.��`���U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.��K�14��a��G�XQ����G�quoted-insert�T(C-q�or�C-v)�����U�.��`���U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.��	e�15����G�XR����G�re-read-init-file�T(C-x�C-r)��-���U�.��`���U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.��z�18��
���G�readline�荑�U�.��`���U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����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�21����G�redraw-current-line�T()������U�.��`���U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.��K�13����G�reverse-search-history�T(C-r)��C���U�.��`���U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.��	=��14����G�revert-line�T(M-r)������U�.��`���U.�����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����G�rl_add_defun������U�.��`���U.�����U.�����U.�����U.�����U.�����U.�����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����G�rl_add_funmap_entry�Y;���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_add_undo������U�.��`���U.�����U.�����U.�����U.�����U.�����U.�����U.�����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ج32����G�rl_alphabetic�e����U�.��`���U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.���D�36����G�rl_already_prompted�Y;���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_attempted_completion_function�B����U�.��`���U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.���G�44����G�rl_attempted_completion_over��"���U�.��`���U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.��ko�47����G�rl_basic_quote_characters�|����U�.��`���U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.���ͬ45����G�rl_basic_word_break_characters������U�.��`���U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.��۬45����G�rl_begin_undo_group�Y;���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_key������U�.��`���U.�����U.�����U.�����U.�����U.�����U.�����U.�����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ج29����G�rl_bind_key_if_unbound�ލ��U�.��`���U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.��	x+�29����G�rl_bind_key_if_unbound_in_map��X���U�.��`���U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.��>��30����G�rl_bind_key_in_map�����U�.��`���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�29����G�rl_bind_keyseq�9-���U�.��`���U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.���z�30����G�rl_bind_keyseq_if_unbound�|����U�.��`���U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.���ͬ30����G�rl_bind_keyseq_if_unbound_in_map�B����U�.��`���U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.���G�30����G�rl_bind_keyseq_in_map�/����U�.��`���U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.��	���30����G�rl_binding_keymap��ύ��U�.��`���U.�����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_callback_handler_install�"썑�U�.��`���U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.���9�37����G�rl_callback_handler_remove�O����U�.��`���U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.����38����G�rl_callback_read_char�/����U�.��`���U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.��	���38����G�rl_catch_signals�ߙ���U�.��`���U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.��T�40����G�rl_catch_sigwinch��ύ��U�.��`���U.�����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����G�rl_char_is_quoted_p�Y;���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����G�rl_cleanup_after_signal�����U�.��`���U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.��	Ka�40����G�rl_clear_message�ߙ���U�.��`���U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.��T�33����G�rl_clear_pending_input�ލ��U�.��`���U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.��	x+�35����G�rl_clear_signals�ߙ���U�.��`���U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.��T�41����G�rl_complete�����U�.��`���U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.��QP�42,�T43����G�rl_complete_internal�,q���U�.��`���U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����42����G�rl_completer_quote_characters��X���U�.��`���U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.��>��45����G�rl_completer_word_break_characters�g���U�.��`���U.�����U.�����U.�����U.�����U.�����U.��	���45����G�rl_completion_append_character������U�.��`���U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.��۬46����G�rl_completion_display_matches_hook�g���U�.��`���U.�����U.�����U.�����U.�����U.�����U.��	���45�������֍�����rl_completion_entry_function�����U�.��`���U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.����42,�T43��
�������rl_completion_found_quote�|����U�.��`���U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.���ͬ46��������rl_completion_mark_symlink_dirs�oč��U�.��`���U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.����46��������rl_completion_matches�/����U�.��`���U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.��	���43��������rl_completion_mode�����U�.��`���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�43��������rl_completion_query_items�|����U�.��`���U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.���ͬ46��������rl_completion_quote_character��X���U�.��`���U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.��>��46��������rl_completion_suppress_append��X���U�.��`���U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.��>��46��������rl_completion_suppress_quote��"���U�.��`���U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.��ko�46��������rl_completion_type�����U�.��`���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�47��������rl_completion_word_break_hook��X���U�.��`���U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.��>��45��������rl_copy_keymap�9-���U�.��`���U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.���z�28��������rl_copy_text������U�.��`���U.�����U.�����U.�����U.�����U.�����U.�����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��������rl_crlf�B����U�.��`���U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����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��������rl_delete_text�9-���U�.��`���U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.���z�34��������rl_deprep_term_function�����U�.��`���U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.��	Ka�26��������rl_deprep_terminal�����U�.��`���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�35��������rl_ding�B����U�.��`���U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����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_directory_completion_hook��"���U�.��`���U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.��ko�44��������rl_discard_keymap��ύ��U�.��`���U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.��(�29��������rl_dispatching�9-���U�.��`���U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.���z�24��������rl_display_match_list�/����U�.��`���U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.��	���36��������rl_do_undo��U���U�.��`���U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����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��32��������rl_done�B����U�.��`���U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����24��������rl_editing_mode�c���U�.��`���U.�����U.�����U.�����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_end�o|���U�.��`���U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.���ɬ24��������rl_end_undo_group��ύ��U�.��`���U.�����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��������rl_erase_empty_line�Y;���U�.��`���U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.��Έ�24��������rl_event_hook�e����U�.��`���U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.���D�26��������rl_execute_next�c���U�.��`���U.�����U.�����U.�����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_executing_keymap�Y;���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_executing_macro�����U�.��`���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�26��������rl_expand_prompt�ߙ���U�.��`���U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.��T�34��������rl_explicit_arg�c���U�.��`���U.�����U.�����U.�����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_extend_line_buffer�/����U�.��`���U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.��	���36��������rl_filename_completion_desired������U�.��`���U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.��۬46��������rl_filename_completion_function�oč��U�.��`���U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.����43��������rl_filename_dequoting_function������U�.��`���U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.��۬44��������rl_filename_quote_characters��"���U�.��`���U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.��ko�45��������rl_filename_quoting_desired�"썑�U�.��`���U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.���9�47��������rl_filename_quoting_function��"���U�.��`���U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.��ko�44��������rl_forced_update_display��J���U�.��`���U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.��	��33��������rl_free_line_state�����U�.��`���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�40��������rl_free_undo_list��ύ��U�.��`���U.�����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��������rl_function_dumper�����U�.��`���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�31��������rl_function_of_keyseq�/����U�.��`���U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.��	���31��������rl_funmap_names�c���U�.��`���U.�����U.�����U.�����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_generic_bind�c���U�.��`���U.�����U.�����U.�����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_get_keymap�e����U�.��`���U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.���D�29��������rl_get_keymap_by_name�/����U�.��`���U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.��	���29��������rl_get_keymap_name�����U�.��`���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�29��������rl_get_screen_size�����U�.��`���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�41��������rl_get_termcap�9-���U�.��`���U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.���z�37��������rl_getc�B����U�.��`���U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����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��������rl_getc_function�ߙ���U�.��`���U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.��T�26��������rl_gnu_readline_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.��(�25��������rl_ignore_completion_duplicates�oč��U�.��`���U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.����46��������rl_ignore_some_completions_function�읍��U�.��`���U.�����U.�����U.�����U.�����U.��	a�44������E�ȍ�����G�F��eunction��fand�V�ariable�Index���69�����3*��ԟ������-9��G�rl_inhibit_completion�/����U�.��`���U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.��	���47��
�`��G�rl_initialize�e����U�.��`���U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.���D�36����G�rl_insert_completions�/����U�.��`���U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.��	���43����G�rl_insert_text�9-���U�.��`���U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.���z�34����G�rl_instream������U�.��`���U.�����U.�����U.�����U.�����U.�����U.�����U.�����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ج25����G�rl_invoking_keyseqs�Y;���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_invoking_keyseqs_in_map�O����U�.��`���U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.����31����G�rl_kill_text������U�.��`���U.�����U.�����U.�����U.�����U.�����U.�����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_last_func������U�.��`���U.�����U.�����U.�����U.�����U.�����U.�����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_library_version�����U�.��`���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�25����G�rl_line_buffer�9-���U�.��`���U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.���z�24����G�rl_list_funmap_names�,q���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_macro_bind�e����U�.��`���U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.���D�37����G�rl_macro_dumper�c���U�.��`���U.�����U.�����U.�����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����G�rl_make_bare_keymap�Y;���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����G�rl_make_keymap�9-���U�.��`���U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.���z�29����G�rl_mark�B����U�.��`���U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����24����G�rl_message��U���U�.��`���U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����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��33����G�rl_modifying������U�.��`���U.�����U.�����U.�����U.�����U.�����U.�����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_named_function��ύ��U�.��`���U.�����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_num_chars_to_read�,q���U�.��`���U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����24����G�rl_numeric_arg�9-���U�.��`���U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.���z�28����G�rl_on_new_line�9-���U�.��`���U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.���z�33����G�rl_on_new_line_with_prompt�O����U�.��`���U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.����33����G�rl_outstream������U�.��`���U.�����U.�����U.�����U.�����U.�����U.�����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_parse_and_bind��ύ��U�.��`���U.�����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_pending_input�ߙ���U�.��`���U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.��T�24����G�rl_point�荑�U�.��`���U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����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�24����G�rl_possible_completions�����U�.��`���U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.��	Ka�43����G�rl_pre_input_hook��ύ��U�.��`���U.�����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_prefer_env_winsize�/����U�.��`���U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.��	���25����G�rl_prep_term_function�/����U�.��`���U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.��	���26����G�rl_prep_terminal�ߙ���U�.��`���U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.��T�35����G�rl_prompt����U�.��`���U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.��	�l�25����G�rl_push_macro_input�Y;���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_read_init_file��ύ��U�.��`���U.�����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_read_key������U�.��`���U.�����U.�����U.�����U.�����U.�����U.�����U.�����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ج34����G�rl_readline_name�ߙ���U�.��`���U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.��T�25����G�rl_readline_state��ύ��U�.��`���U.�����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_readline_version�Y;���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_redisplay������U�.��`���U.�����U.�����U.�����U.�����U.�����U.�����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_redisplay_function�/����U�.��`���U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.��	���26����G�rl_replace_line�c���U�.��`���U.�����U.�����U.�����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_reset_after_signal�/����U�.��`���U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.��	���41����G�rl_reset_line_state�Y;���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_reset_screen_size�,q���U�.��`���U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����41����G�rl_reset_terminal��ύ��U�.��`���U.�����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_resize_terminal�����U�.��`���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�41����G�rl_restore_prompt��ύ��U�.��`���U.�����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_save_prompt�9-���U�.��`���U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.���z�33����G�rl_set_key��U���U�.��`���U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����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��30����G�rl_set_keyboard_input_timeout��X���U�.��`���U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.��>��35����G�rl_set_keymap�e����U�.��`���U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.���D�29����G�rl_set_paren_blink_timeout�O����U�.��`���U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.����37������-9������rl_set_prompt�e����U�.��`���U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.���D�34��
�~������rl_set_screen_size�����U�.��`���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�41��������rl_set_signals�9-���U�.��`���U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.���z�41��������rl_show_char������U�.��`���U.�����U.�����U.�����U.�����U.�����U.�����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��������rl_special_prefixes�Y;���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_startup_hook�c���U�.��`���U.�����U.�����U.�����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_stuff_char�e����U�.��`���U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.���D�35��������rl_terminal_name�ߙ���U�.��`���U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.��T�25��������rl_tty_set_default_bindings�"썑�U�.��`���U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.���9�35��������rl_tty_unset_default_bindings��X���U�.��`���U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.��>��35��������rl_unbind_command_in_map��J���U�.��`���U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.��	��30��������rl_unbind_function_in_map�|����U�.��`���U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.���ͬ30��������rl_unbind_key�e����U�.��`���U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.���D�30��������rl_unbind_key_in_map�,q���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_username_completion_function�oč��U�.��`���U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.����43��������rl_variable_bind�ߙ���U�.��`���U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.��T�37��������rl_variable_dumper�����U�.��`���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�37��������rl_variable_value��ύ��U�.��`���U.�����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��7Ս�����XS��
�'������self-insert�T(a,�b,�A,�1,�!,��...��B)�Ͼ���U�.��`���U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.��E�15��������set-mark�T(C-@)�N���U�.��`���U.�����U.�����U.�����U.�����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�������sho��9w-all-if-am�biguous������U�.��`���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,�7�������sho��9w-all-if-unmo�A�died��捑�U�.��`���U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.��63�7��������start-kbd-macro�T(C-x�()�JU���U�.��`���U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����18��L������XT��������tab-insert�T(M-������h�����̟�@�ff�l����T��J�AB����̟ٚ�ff�l���8�����i���ь�)��Í��U�.��`���U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.��[�15��������tilde-expand�T(M-~)�X&���U�.��`���U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.���s�18��������transpose-chars�T(C-t)��ȍ��U�.��`���U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.��G�15��������transpose-words�T(M-t)��ȍ��U�.��`���U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.��G�15��WM������XU��������undo�T(C-_�or�C-x�C-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�18��������universal-argument�T()��ȍ��U�.��`���U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.��G�17��������unix-filename-rubout�T()�x4���U�.��`���U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.��크16��������unix-line-discard�T(C-u)�x4���U�.��`���U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.��크16��������unix-word-rubout�T(C-w)������U�.��`���U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.��K�16��������upcase-word�T(M-u)������U�.��`���U.�����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��WM������XV��������vi-editing-mode�T(M-C-j)�x4���U�.��`���U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.��크19�������visible-stats�Ӭ���U�.��`���U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.��	H��7��
������XY��������yank�T(C-y)��u���U�.��`���U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����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��������yank-last-arg�T(M-.�or�M-_)�����U�.��`���U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.��	e�14��������yank-nth-arg�T(M-C-y)������U�.��`���U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.�����U.��s߬14��������yank-pop�T(M-y)�N���U�.��`���U.�����U.�����U.�����U.�����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�a������G�70�9pGNU��fReadline�Library�����3*��:n���;����ï�	J�a��N�
#�cmbx12�YF
C�ff
cmbxti10�X��N�ffcmbx12�O��N�G�cmbx12�F��N��jcmbx12�A��<x	
cmsltt10�=��<x
cmtt10�<�"V
cmbx10�;!",�
�3
cmsy10�9��<x
�3
cmsltt10�8�-�
�3
cmcsc10�7m#�R
�3
cmss10�6p�0J
�3
cmsl10�5�':
�3
cmti10�3��<x
�3
cmtt10�2K�`y
�3
cmr10�%�j��		cmti9�ߤN		cmtt9�
����		cmsy9�|{Ycmr8�o���		cmr9�:�������