diff options
Diffstat (limited to 'readline/doc/readline.0')
-rw-r--r-- | readline/doc/readline.0 | 514 |
1 files changed, 290 insertions, 224 deletions
diff --git a/readline/doc/readline.0 b/readline/doc/readline.0 index c925d52..970d8c6 100644 --- a/readline/doc/readline.0 +++ b/readline/doc/readline.0 @@ -8,6 +8,7 @@ NNAAMMEE readline - get a line from a user with editing SSYYNNOOPPSSIISS + ##iinncclluuddee <<ssttddiioo..hh>> ##iinncclluuddee <<rreeaaddlliinnee..hh>> ##iinncclluuddee <<hhiissttoorryy..hh>> @@ -57,11 +58,10 @@ NNOOTTAATTIIOONN ments deviates from this are noted. When a command is described as _k_i_l_l_i_n_g text, the text - deleted is saved for possible future retrieval (_y_a_n_k_i_n_g). -GNU 1998 Feb 19 1 +GNU 1998 Dec 31 1 @@ -70,6 +70,7 @@ GNU 1998 Feb 19 1 READLINE(3) READLINE(3) + deleted is saved for possible future retrieval (_y_a_n_k_i_n_g). The killed text is saved in a _k_i_l_l _r_i_n_g. Consecutive kills cause the text to be accumulated into one unit, which can be yanked all at once. Commands which do not @@ -126,8 +127,7 @@ IINNIITTIIAALLIIZZAATTIIOONN FFIILLEE - -GNU 1998 Feb 19 2 +GNU 1998 Dec 31 2 @@ -193,7 +193,7 @@ READLINE(3) READLINE(3) -GNU 1998 Feb 19 3 +GNU 1998 Dec 31 3 @@ -259,7 +259,7 @@ READLINE(3) READLINE(3) -GNU 1998 Feb 19 4 +GNU 1998 Dec 31 4 @@ -274,6 +274,18 @@ READLINE(3) READLINE(3) for display, scrolling the input horizontally on a single screen line when it becomes longer than the screen width rather than wrapping to a new line. + iinnppuutt--mmeettaa ((OOffff)) + If set to OOnn, readline will enable eight-bit input + (that is, it will not strip the high bit from the + characters it reads), regardless of what the termi- + nal claims it can support. The name mmeettaa--ffllaagg is a + synonym for this variable. + iisseeaarrcchh--tteerrmmiinnaattoorrss ((````CC--[[CC--JJ'''')) + The string of characters that should terminate an + incremental search without subsequently executing + the character as a command. If this variable has + not been given a value, the characters _E_S_C and _C_-_J + will terminate an incremental search. kkeeyymmaapp ((eemmaaccss)) Set the current readline keymap. The set of legal keymap names is _e_m_a_c_s_, _e_m_a_c_s_-_s_t_a_n_d_a_r_d_, _e_m_a_c_s_-_m_e_t_a_, @@ -288,44 +300,32 @@ READLINE(3) READLINE(3) mmaarrkk--mmooddiiffiieedd--lliinneess ((OOffff)) If set to OOnn, history lines that have been modified are displayed with a preceding asterisk (**). - mmeettaa--ffllaagg ((OOffff)) - If set to OOnn, readline will enable eight-bit input - (that is, it will not strip the high bit from the - characters it reads), regardless of what the termi- - nal claims it can support. oouuttppuutt--mmeettaa ((OOffff)) If set to OOnn, readline will display characters with - the eighth bit set directly rather than as a meta- + the eighth bit set directly rather than as a meta- prefixed escape sequence. pprriinntt--ccoommpplleettiioonnss--hhoorriizzoonnttaallllyy ((OOffff)) - If set to OOnn, readline will display completions - with matches sorted horizontally in alphabetical + If set to OOnn, readline will display completions + with matches sorted horizontally in alphabetical order, rather than down the screen. sshhooww--aallll--iiff--aammbbiigguuoouuss ((OOffff)) - This alters the default behavior of the completion - functions. If set to oonn, words which have more - than one possible completion cause the matches to - be listed immediately instead of ringing the bell. + This alters the default behavior of the completion + functions. If set to oonn, words which have more + than one possible completion cause the matches to + be listed immediately instead of ringing the bell. vviissiibbllee--ssttaattss ((OOffff)) If set to OOnn, a character denoting a file's type as - reported by ssttaatt(2) is appended to the filename + reported by ssttaatt(2) is appended to the filename when listing possible completions. CCoonnddiittiioonnaall CCoonnssttrruuccttss - Readline implements a facility similar in spirit to the - conditional compilation features of the C preprocessor - which allows key bindings and variable settings to be per- - formed as the result of tests. There are four parser - directives used. - - $$iiff The $$iiff construct allows bindings to be made based - on the editing mode, the terminal being used, or - the application using readline. The text of the - test extends to the end of the line; no characters + Readline implements a facility similar in spirit to the + conditional compilation features of the C preprocessor + which allows key bindings and variable settings to be -GNU 1998 Feb 19 5 +GNU 1998 Dec 31 5 @@ -334,21 +334,28 @@ GNU 1998 Feb 19 5 READLINE(3) READLINE(3) + performed as the result of tests. There are four parser + directives used. + + $$iiff The $$iiff construct allows bindings to be made based + on the editing mode, the terminal being used, or + the application using readline. The text of the + test extends to the end of the line; no characters are required to isolate it. - mmooddee The mmooddee== form of the $$iiff directive is used - to test whether readline is in emacs or vi - mode. This may be used in conjunction with + mmooddee The mmooddee== form of the $$iiff directive is used + to test whether readline is in emacs or vi + mode. This may be used in conjunction with the sseett kkeeyymmaapp command, for instance, to set - bindings in the _e_m_a_c_s_-_s_t_a_n_d_a_r_d and _e_m_a_c_s_- - _c_t_l_x keymaps only if readline is starting + bindings in the _e_m_a_c_s_-_s_t_a_n_d_a_r_d and _e_m_a_c_s_- + _c_t_l_x keymaps only if readline is starting out in emacs mode. tteerrmm The tteerrmm== form may be used to include termi- - nal-specific key bindings, perhaps to bind - the key sequences output by the terminal's - function keys. The word on the right side - of the == is tested against the full name of + nal-specific key bindings, perhaps to bind + the key sequences output by the terminal's + function keys. The word on the right side + of the == is tested against the full name of the terminal and the portion of the terminal name before the first --. This allows _s_u_n to match both _s_u_n and _s_u_n_-_c_m_d, for instance. @@ -357,12 +364,12 @@ READLINE(3) READLINE(3) The aapppplliiccaattiioonn construct is used to include application-specific settings. Each program using the readline library sets the _a_p_p_l_i_c_a_- - _t_i_o_n _n_a_m_e, and an initialization file can - test for a particular value. This could be + _t_i_o_n _n_a_m_e, and an initialization file can + test for a particular value. This could be used to bind key sequences to functions use- - ful for a specific program. For instance, - the following command adds a key sequence - that quotes the current or previous word in + ful for a specific program. For instance, + the following command adds a key sequence + that quotes the current or previous word in Bash: $$iiff bash @@ -373,25 +380,18 @@ READLINE(3) READLINE(3) $$eennddiiff This command, as seen in the previous example, ter- minates an $$iiff command. - $$eellssee Commands in this branch of the $$iiff directive are + $$eellssee Commands in this branch of the $$iiff directive are executed if the test fails. $$iinncclluuddee - This directive takes a single filename as an argu- - ment and reads commands and bindings from that - file. For example, the following directive would + This directive takes a single filename as an argu- + ment and reads commands and bindings from that + file. For example, the following directive would read _/_e_t_c_/_i_n_p_u_t_r_c: - $$iinncclluuddee _/_e_t_c_/_i_n_p_u_t_r_c - -SSEEAARRCCHHIINNGG - Readline provides commands for searching through the com- - mand history for lines containing a specified string. - There are two search modes: _i_n_c_r_e_m_e_n_t_a_l and _n_o_n_- - -GNU 1998 Feb 19 6 +GNU 1998 Dec 31 6 @@ -400,36 +400,44 @@ GNU 1998 Feb 19 6 READLINE(3) READLINE(3) - _i_n_c_r_e_m_e_n_t_a_l. + $$iinncclluuddee _/_e_t_c_/_i_n_p_u_t_r_c + +SSEEAARRCCHHIINNGG + Readline provides commands for searching through the com- + mand history for lines containing a specified string. + There are two search modes: _i_n_c_r_e_m_e_n_t_a_l and _n_o_n_-_i_n_c_r_e_m_e_n_- + _t_a_l. - Incremental searches begin before the user has finished + Incremental searches begin before the user has finished typing the search string. As each character of the search string is typed, readline displays the next entry from the - history matching the string typed so far. An incremental - search requires only as many characters as needed to find - the desired history entry. The Escape character is used - to terminate an incremental search. Control-J will also - terminate the search. Control-G will abort an incremental - search and restore the original line. When the search is - terminated, the history entry containing the search string - becomes the current line. To find other matching entries - in the history list, type Control-S or Control-R as appro- - priate. This will search backward or forward in the his- - tory for the next line matching the search string typed so - far. Any other key sequence bound to a readline command - will terminate the search and execute that command. For - instance, a _n_e_w_l_i_n_e will terminate the search and accept - the line, thereby executing the command from the history - list. - - Non-incremental searches read the entire search string + history matching the string typed so far. An incremental + search requires only as many characters as needed to find + the desired history entry. The characters present in the + value of the _i_s_e_a_r_c_h_-_t_e_r_m_i_n_a_t_o_r_s variable are used to ter- + minate an incremental search. If that variable has not + been assigned a value the Escape and Control-J characters + will terminate an incremental search. Control-G will + abort an incremental search and restore the original line. + When the search is terminated, the history entry contain- + ing the search string becomes the current line. To find + other matching entries in the history list, type Control-S + or Control-R as appropriate. This will search backward or + forward in the history for the next line matching the + search string typed so far. Any other key sequence bound + to a readline command will terminate the search and exe- + cute that command. For instance, a _n_e_w_l_i_n_e will terminate + the search and accept the line, thereby executing the com- + mand from the history list. + + Non-incremental searches read the entire search string before starting to search for matching history lines. The - search string may be typed by the user or be part of the + search string may be typed by the user or be part of the contents of the current line. EEDDIITTIINNGG CCOOMMMMAANNDDSS - The following is a list of the names of the commands and - the default key sequences to which they are bound. Com- + The following is a list of the names of the commands and + the default key sequences to which they are bound. Com- mand names without an accompanying key sequence are unbound by default. @@ -443,21 +451,13 @@ EEDDIITTIINNGG CCOOMMMMAANNDDSS bbaacckkwwaarrdd--cchhaarr ((CC--bb)) Move back a character. ffoorrwwaarrdd--wwoorrdd ((MM--ff)) - Move forward to the end of the next word. Words - are composed of alphanumeric characters (letters + Move forward to the end of the next word. Words + are composed of alphanumeric characters (letters and digits). - bbaacckkwwaarrdd--wwoorrdd ((MM--bb)) - Move back to the start of this, or the previous, - word. Words are composed of alphanumeric charac- - ters (letters and digits). - cclleeaarr--ssccrreeeenn ((CC--ll)) - Clear the screen leaving the current line at the - top of the screen. With an argument, refresh the - current line without clearing the screen. -GNU 1998 Feb 19 7 +GNU 1998 Dec 31 7 @@ -466,64 +466,64 @@ GNU 1998 Feb 19 7 READLINE(3) READLINE(3) + bbaacckkwwaarrdd--wwoorrdd ((MM--bb)) + Move back to the start of this, or the previous, + word. Words are composed of alphanumeric charac- + ters (letters and digits). + cclleeaarr--ssccrreeeenn ((CC--ll)) + Clear the screen leaving the current line at the + top of the screen. With an argument, refresh the + current line without clearing the screen. rreeddrraaww--ccuurrrreenntt--lliinnee Refresh the current line. CCoommmmaannddss ffoorr MMaanniippuullaattiinngg tthhee HHiissttoorryy aacccceepptt--lliinnee ((NNeewwlliinnee,, RReettuurrnn)) - Accept the line regardless of where the cursor is. - If this line is non-empty, add it to the history - list. If the line is a modified history line, then + Accept the line regardless of where the cursor is. + If this line is non-empty, add it to the history + list. If the line is a modified history line, then restore the history line to its original state. pprreevviioouuss--hhiissttoorryy ((CC--pp)) - Fetch the previous command from the history list, + Fetch the previous command from the history list, moving back in the list. nneexxtt--hhiissttoorryy ((CC--nn)) - Fetch the next command from the history list, mov- + Fetch the next command from the history list, mov- ing forward in the list. bbeeggiinnnniinngg--ooff--hhiissttoorryy ((MM--<<)) Move to the first line in the history. eenndd--ooff--hhiissttoorryy ((MM-->>)) - Move to the end of the input history, i.e., the + Move to the end of the input history, i.e., the line currently being entered. rreevveerrssee--sseeaarrcchh--hhiissttoorryy ((CC--rr)) - Search backward starting at the current line and + Search backward starting at the current line and moving `up' through the history as necessary. This is an incremental search. ffoorrwwaarrdd--sseeaarrcchh--hhiissttoorryy ((CC--ss)) - Search forward starting at the current line and - moving `down' through the history as necessary. + Search forward starting at the current line and + moving `down' through the history as necessary. This is an incremental search. nnoonn--iinnccrreemmeennttaall--rreevveerrssee--sseeaarrcchh--hhiissttoorryy ((MM--pp)) Search backward through the history starting at the - current line using a non-incremental search for a + current line using a non-incremental search for a string supplied by the user. nnoonn--iinnccrreemmeennttaall--ffoorrwwaarrdd--sseeaarrcchh--hhiissttoorryy ((MM--nn)) - Search forward through the history using a non- - incremental search for a string supplied by the + Search forward through the history using a non- + incremental search for a string supplied by the user. hhiissttoorryy--sseeaarrcchh--ffoorrwwaarrdd - Search forward through the history for the string + Search forward through the history for the string of characters between the start of the current line - and the current cursor position (the _p_o_i_n_t). This + and the current cursor position (the _p_o_i_n_t). This is a non-incremental search. hhiissttoorryy--sseeaarrcchh--bbaacckkwwaarrdd - Search backward through the history for the string + Search backward through the history for the string of characters between the start of the current line and the point. This is a non-incremental search. - yyaannkk--nntthh--aarrgg ((MM--CC--yy)) - Insert the first argument to the previous command - (usually the second word on the previous line) at - point (the current cursor position). With an argu- - ment _n, insert the _nth word from the previous com- - mand (the words in the previous command begin with - word 0). A negative argument inserts the _nth word - from the end of the previous command. -GNU 1998 Feb 19 8 +GNU 1998 Dec 31 8 @@ -532,24 +532,37 @@ GNU 1998 Feb 19 8 READLINE(3) READLINE(3) + yyaannkk--nntthh--aarrgg ((MM--CC--yy)) + Insert the first argument to the previous command + (usually the second word on the previous line) at + point (the current cursor position). With an argu- + ment _n, insert the _nth word from the previous com- + mand (the words in the previous command begin with + word 0). A negative argument inserts the _nth word + from the end of the previous command. yyaannkk--llaasstt--aarrgg ((MM--..,, MM--__)) - Insert the last argument to the previous command - (the last word of the previous history entry). + Insert the last argument to the previous command + (the last word of the previous history entry). With an argument, behave exactly like yyaannkk--nntthh--aarrgg. Successive calls to yyaannkk--llaasstt--aarrgg move back through - the history list, inserting the last argument of + the history list, inserting the last argument of each line in turn. CCoommmmaannddss ffoorr CChhaannggiinngg TTeexxtt ddeelleettee--cchhaarr ((CC--dd)) Delete the character under the cursor. If point is - at the beginning of the line, there are no charac- - ters in the line, and the last character typed was + at the beginning of the line, there are no charac- + ters in the line, and the last character typed was not bound to BBddeelleettee--cchhaarr, then return EEOOFF. bbaacckkwwaarrdd--ddeelleettee--cchhaarr ((RRuubboouutt)) Delete the character behind the cursor. When given - a numeric argument, save the deleted text on the + a numeric argument, save the deleted text on the kill ring. + ffoorrwwaarrdd--bbaacckkwwaarrdd--ddeelleettee--cchhaarr + Delete the character under the cursor, unless the + cursor is at the end of the line, in which case the + character behind the cursor is deleted. By + default, this is not bound to a key. qquuootteedd--iinnsseerrtt ((CC--qq,, CC--vv)) Add the next character that you type to the line verbatim. This is how to insert characters like @@ -572,6 +585,19 @@ READLINE(3) READLINE(3) Uppercase the current (or following) word. With a negative argument, uppercase the previous word, but do not move point. + + + + +GNU 1998 Dec 31 9 + + + + + +READLINE(3) READLINE(3) + + ddoowwnnccaassee--wwoorrdd ((MM--ll)) Lowercase the current (or following) word. With a negative argument, lowercase the previous word, but @@ -585,19 +611,6 @@ READLINE(3) READLINE(3) kkiillll--lliinnee ((CC--kk)) Kill the text from the current cursor position to the end of the line. - - - - -GNU 1998 Feb 19 9 - - - - - -READLINE(3) READLINE(3) - - bbaacckkwwaarrdd--kkiillll--lliinnee ((CC--xx RRuubboouutt)) Kill backward to the beginning of the line. uunniixx--lliinnee--ddiissccaarrdd ((CC--uu)) @@ -639,6 +652,18 @@ READLINE(3) READLINE(3) Rotate the kill ring, and yank the new top. Only works following yyaannkk or yyaannkk--ppoopp. + + + +GNU 1998 Dec 31 10 + + + + + +READLINE(3) READLINE(3) + + NNuummeerriicc AArrgguummeennttss ddiiggiitt--aarrgguummeenntt ((MM--00,, MM--11,, ......,, MM----)) Add this digit to the argument already accumulat- @@ -651,20 +676,8 @@ READLINE(3) READLINE(3) define the argument. If the command is followed by digits, executing uunniivveerrssaall--aarrgguummeenntt again ends the numeric argument, but is otherwise ignored. As a - special case, if this command is immediately - - - -GNU 1998 Feb 19 10 - - - - - -READLINE(3) READLINE(3) - - - followed by a character that is neither a digit or + special case, if this command is immediately fol- + lowed by a character that is neither a digit or minus sign, the argument count for the next command is multiplied by four. The argument count is ini- tially one, so executing this function the first @@ -705,30 +718,36 @@ READLINE(3) READLINE(3) the list. This command is intended to be bound to TTAABB, but is unbound by default. - KKeeyybbooaarrdd MMaaccrrooss - ssttaarrtt--kkbbdd--mmaaccrroo ((CC--xx (()) - Begin saving the characters typed into the current - keyboard macro. - eenndd--kkbbdd--mmaaccrroo ((CC--xx )))) - Stop saving the characters typed into the current - keyboard macro and store the definition. - ccaallll--llaasstt--kkbbdd--mmaaccrroo ((CC--xx ee)) - Re-execute the last keyboard macro defined, by mak- - ing the characters in the macro appear as if typed - at the keyboard. +GNU 1998 Dec 31 11 -GNU 1998 Feb 19 11 +READLINE(3) READLINE(3) -READLINE(3) READLINE(3) + ddeelleettee--cchhaarr--oorr--lliisstt + Deletes the character under the cursor if not at + the beginning or end of the line (like ddeelleettee-- + cchhaarr). If at the end of the line, behaves identi- + cally to ppoossssiibbllee--ccoommpplleettiioonnss. This command is + unbound by default. + KKeeyybbooaarrdd MMaaccrrooss + ssttaarrtt--kkbbdd--mmaaccrroo ((CC--xx (()) + Begin saving the characters typed into the current + keyboard macro. + eenndd--kkbbdd--mmaaccrroo ((CC--xx )))) + Stop saving the characters typed into the current + keyboard macro and store the definition. + ccaallll--llaasstt--kkbbdd--mmaaccrroo ((CC--xx ee)) + Re-execute the last keyboard macro defined, by mak- + ing the characters in the macro appear as if typed + at the keyboard. MMiisscceellllaanneeoouuss rree--rreeaadd--iinniitt--ffiillee ((CC--xx CC--rr)) @@ -753,7 +772,7 @@ READLINE(3) READLINE(3) Undo all changes made to this line. This is like executing the uunnddoo command enough times to return the line to its initial state. - ttiillddee--eexxppaanndd ((MM--~~)) + ttiillddee--eexxppaanndd ((MM--&&)) Perform tilde expansion on the current word. sseett--mmaarrkk ((CC--@@,, MM--<<ssppaaccee>>)) Set the mark to the current point. If a numeric @@ -765,6 +784,18 @@ READLINE(3) READLINE(3) cursor position is saved as the mark. cchhaarraacctteerr--sseeaarrcchh ((CC--]])) A character is read and point is moved to the next + + + +GNU 1998 Dec 31 12 + + + + + +READLINE(3) READLINE(3) + + occurrence of that character. A negative count searches for previous occurrences. cchhaarraacctteerr--sseeaarrcchh--bbaacckkwwaarrdd ((MM--CC--]])) @@ -783,20 +814,8 @@ READLINE(3) READLINE(3) ment is supplied, the output is formatted in such a way that it can be made part of an _i_n_p_u_t_r_c file. dduummpp--vvaarriiaabblleess - Print all of the settable variables and their - - - -GNU 1998 Feb 19 12 - - - - - -READLINE(3) READLINE(3) - - - values to the readline output stream. If a numeric + Print all of the settable variables and their val- + ues to the readline output stream. If a numeric argument is supplied, the output is formatted in such a way that it can be made part of an _i_n_p_u_t_r_c file. @@ -830,6 +849,19 @@ DDEEFFAAUULLTT KKEEYY BBIINNDDIINNGGSS the bell (subject to the setting of the bbeellll--ssttyyllee vari- able). + + + + +GNU 1998 Dec 31 13 + + + + + +READLINE(3) READLINE(3) + + EEmmaaccss MMooddee Emacs Standard bindings @@ -850,18 +882,6 @@ DDEEFFAAUULLTT KKEEYY BBIINNDDIINNGGSS "C-P" previous-history "C-Q" quoted-insert "C-R" reverse-search-history - - - -GNU 1998 Feb 19 13 - - - - - -READLINE(3) READLINE(3) - - "C-S" forward-search-history "C-T" transpose-chars "C-U" unix-line-discard @@ -896,6 +916,18 @@ READLINE(3) READLINE(3) "M-1" digit-argument "M-2" digit-argument "M-3" digit-argument + + + +GNU 1998 Dec 31 14 + + + + + +READLINE(3) READLINE(3) + + "M-4" digit-argument "M-5" digit-argument "M-6" digit-argument @@ -916,18 +948,6 @@ READLINE(3) READLINE(3) "M-R" revert-line "M-T" transpose-words "M-U" upcase-word - - - -GNU 1998 Feb 19 14 - - - - - -READLINE(3) READLINE(3) - - "M-Y" yank-pop "M-\" delete-horizontal-space "M-~" tilde-expand @@ -962,6 +982,18 @@ READLINE(3) READLINE(3) "C-W" unix-word-rubout "C-Y" yank "C-[" vi-movement-mode + + + +GNU 1998 Dec 31 15 + + + + + +READLINE(3) READLINE(3) + + "C-_" undo " " to "~" self-insert "C-?" backward-delete-char @@ -982,18 +1014,6 @@ READLINE(3) READLINE(3) "C-R" reverse-search-history "C-S" forward-search-history "C-T" transpose-chars - - - -GNU 1998 Feb 19 15 - - - - - -READLINE(3) READLINE(3) - - "C-U" unix-line-discard "C-V" quoted-insert "C-W" unix-word-rubout @@ -1028,6 +1048,18 @@ READLINE(3) READLINE(3) "S" vi-subst "T" vi-char-search "U" revert-line + + + +GNU 1998 Dec 31 16 + + + + + +READLINE(3) READLINE(3) + + "W" vi-next-word "X" backward-delete-char "Y" vi-yank-to @@ -1048,18 +1080,6 @@ READLINE(3) READLINE(3) "l" forward-char "m" vi-set-mark "n" vi-search-again - - - -GNU 1998 Feb 19 16 - - - - - -READLINE(3) READLINE(3) - - "p" vi-put "r" vi-change-char "s" vi-subst @@ -1094,6 +1114,18 @@ BBUUGG RREEPPOORRTTSS library that you have. Once you have determined that a bug actually exists, mail + + + +GNU 1998 Dec 31 17 + + + + + +READLINE(3) READLINE(3) + + a bug report to _b_u_g_-_r_e_a_d_l_i_n_e@_g_n_u_._o_r_g. If you have a fix, you are welcome to mail that as well! Suggestions and `philosophical' bug reports may be mailed to _b_u_g_-_r_e_a_d_- @@ -1117,6 +1149,40 @@ BBUUGGSS -GNU 1998 Feb 19 17 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +GNU 1998 Dec 31 18 |