version 1.1, 2014/07/30 08:16:46
|
version 1.1.1.2, 2021/03/17 01:01:01
|
Line 1
|
Line 1
|
HISTORY(3) HISTORY(3) | HISTORY(3) Library Functions Manual HISTORY(3) |
|
|
|
|
|
|
NNAAMMEE | [1mNAME[0m |
history - GNU History Library |
history - GNU History Library |
|
|
CCOOPPYYRRIIGGHHTT | [1mCOPYRIGHT[0m |
The GNU History Library is Copyright (C) 1989-2011 by the Free Software | The GNU History Library is Copyright (C) 1989-2020 by the Free Software |
Foundation, Inc. |
Foundation, Inc. |
|
|
DDEESSCCRRIIPPTTIIOONN | [1mDESCRIPTION[0m |
Many programs read input from the user a line at a time. The GNU His- |
Many programs read input from the user a line at a time. The GNU His- |
tory library is able to keep track of those lines, associate arbitrary |
tory library is able to keep track of those lines, associate arbitrary |
data with each line, and utilize information from previous lines in |
data with each line, and utilize information from previous lines in |
composing new ones. |
composing new ones. |
|
|
| [1mHISTORY EXPANSION[0m |
HHIISSTTOORRYY EEXXPPAANNSSIIOONN | |
The history library supports a history expansion feature that is iden- |
The history library supports a history expansion feature that is iden- |
tical to the history expansion in bbaasshh.. This section describes what | tical to the history expansion in [1mbash. [22mThis section describes what |
syntax features are available. |
syntax features are available. |
|
|
History expansions introduce words from the history list into the input |
History expansions introduce words from the history list into the input |
Line 30 HHIISSTTOORRYY EEXXPPAANNSSIIOONN
|
Line 29 HHIISSTTOORRYY EEXXPPAANNSSIIOONN
|
line is read. It takes place in two parts. The first is to determine |
line is read. It takes place in two parts. The first is to determine |
which line from the history list to use during substitution. The sec- |
which line from the history list to use during substitution. The sec- |
ond is to select portions of that line for inclusion into the current |
ond is to select portions of that line for inclusion into the current |
one. The line selected from the history is the _e_v_e_n_t, and the portions | one. The line selected from the history is the [4mevent[24m, and the portions |
of that line that are acted upon are _w_o_r_d_s. Various _m_o_d_i_f_i_e_r_s are | of that line that are acted upon are [4mwords[24m. Various [4mmodifiers[24m are |
available to manipulate the selected words. The line is broken into |
available to manipulate the selected words. The line is broken into |
words in the same fashion as bbaasshh does when reading input, so that sev- | words in the same fashion as [1mbash [22mdoes when reading input, so that sev- |
eral words that would otherwise be separated are considered one word |
eral words that would otherwise be separated are considered one word |
when surrounded by quotes (see the description of hhiissttoorryy__ttookkeenniizzee(()) | when surrounded by quotes (see the description of [1mhistory_tokenize()[0m |
below). History expansions are introduced by the appearance of the |
below). History expansions are introduced by the appearance of the |
history expansion character, which is !! by default. Only backslash (\\) | history expansion character, which is [1m! [22mby default. Only backslash ([1m\[22m) |
and single quotes can quote the history expansion character. |
and single quotes can quote the history expansion character. |
|
|
EEvveenntt DDeessiiggnnaattoorrss | [1mEvent Designators[0m |
An event designator is a reference to a command line entry in the his- |
An event designator is a reference to a command line entry in the his- |
tory list. Unless the reference is absolute, events are relative to |
tory list. Unless the reference is absolute, events are relative to |
the current position in the history list. |
the current position in the history list. |
|
|
!! Start a history substitution, except when followed by a bbllaannkk, | [1m! [22mStart a history substitution, except when followed by a [1mblank[22m, |
newline, = or (. |
newline, = or (. |
!!_n Refer to command line _n. | [1m![4m[22mn[24m Refer to command line [4mn[24m. |
!!--_n Refer to the current command minus _n. | [1m!-[4m[22mn[24m Refer to the current command minus [4mn[24m. |
!!!! Refer to the previous command. This is a synonym for `!-1'. | [1m!! [22mRefer to the previous command. This is a synonym for `!-1'. |
!!_s_t_r_i_n_g | [1m![4m[22mstring[0m |
Refer to the most recent command preceding the current position |
Refer to the most recent command preceding the current position |
in the history list starting with _s_t_r_i_n_g. | in the history list starting with [4mstring[24m. |
!!??_s_t_r_i_n_g[[??]] | [1m!?[4m[22mstring[24m[1m[?][0m |
Refer to the most recent command preceding the current position |
Refer to the most recent command preceding the current position |
in the history list containing _s_t_r_i_n_g. The trailing ?? may be | in the history list containing [4mstring[24m. The trailing [1m? [22mmay be |
omitted if _s_t_r_i_n_g is followed immediately by a newline. | omitted if [4mstring[24m is followed immediately by a newline. If |
^^_s_t_r_i_n_g_1^^_s_t_r_i_n_g_2^^ | [4mstring[24m is missing, the string from the most recent search is |
Quick substitution. Repeat the last command, replacing _s_t_r_i_n_g_1 | used; it is an error if there is no previous search string. |
with _s_t_r_i_n_g_2. Equivalent to ``!!:s/_s_t_r_i_n_g_1/_s_t_r_i_n_g_2/'' (see MMoodd-- | [1m^[4m[22mstring1[24m[1m^[4m[22mstring2[24m[1m^[0m |
iiffiieerrss below). | Quick substitution. Repeat the last command, replacing [4mstring1[0m |
!!## The entire command line typed so far. | with [4mstring2[24m. Equivalent to ``!!:s^[4mstring1[24m^[4mstring2[24m^'' (see [1mMod-[0m |
| [1mifiers [22mbelow). |
| [1m!# [22mThe entire command line typed so far. |
|
|
WWoorrdd DDeessiiggnnaattoorrss | [1mWord Designators[0m |
Word designators are used to select desired words from the event. A :: | Word designators are used to select desired words from the event. A [1m:[0m |
separates the event specification from the word designator. It may be |
separates the event specification from the word designator. It may be |
omitted if the word designator begins with a ^^, $$, **, --, or %%. Words | omitted if the word designator begins with a [1m^[22m, [1m$[22m, [1m*[22m, [1m-[22m, or [1m%[22m. Words |
are numbered from the beginning of the line, with the first word being |
are numbered from the beginning of the line, with the first word being |
denoted by 0 (zero). Words are inserted into the current line sepa- |
denoted by 0 (zero). Words are inserted into the current line sepa- |
rated by single spaces. |
rated by single spaces. |
|
|
00 ((zzeerroo)) | [1m0 (zero)[0m |
The zeroth word. For the shell, this is the command word. |
The zeroth word. For the shell, this is the command word. |
_n The _nth word. | [4mn[24m The [4mn[24mth word. |
^^ The first argument. That is, word 1. | [1m^ [22mThe first argument. That is, word 1. |
$$ The last word. This is usually the last argument, but will | [1m$ [22mThe last word. This is usually the last argument, but will ex- |
expand to the zeroth word if there is only one word in the line. | pand to the zeroth word if there is only one word in the line. |
%% The word matched by the most recent `?_s_t_r_i_n_g?' search. | [1m% [22mThe first word matched by the most recent `?[4mstring[24m?' search, if |
_x--_y A range of words; `-_y' abbreviates `0-_y'. | the search string begins with a character that is part of a |
** All of the words but the zeroth. This is a synonym for `_1_-_$'. | word. |
It is not an error to use ** if there is just one word in the | [4mx[24m[1m-[4m[22my[24m A range of words; `-[4my[24m' abbreviates `0-[4my[24m'. |
| [1m* [22mAll of the words but the zeroth. This is a synonym for `[4m1-$[24m'. |
| It is not an error to use [1m* [22mif there is just one word in the |
event; the empty string is returned in that case. |
event; the empty string is returned in that case. |
xx** Abbreviates _x_-_$. | [1mx* [22mAbbreviates [4mx-$[24m. |
xx-- Abbreviates _x_-_$ like xx**, but omits the last word. | [1mx- [22mAbbreviates [4mx-$[24m like [1mx*[22m, but omits the last word. If [1mx [22mis miss- |
| ing, it defaults to 0. |
|
|
If a word designator is supplied without an event specification, the |
If a word designator is supplied without an event specification, the |
previous command is used as the event. |
previous command is used as the event. |
|
|
MMooddiiffiieerrss | [1mModifiers[0m |
After the optional word designator, there may appear a sequence of one |
After the optional word designator, there may appear a sequence of one |
or more of the following modifiers, each preceded by a `:'. | or more of the following modifiers, each preceded by a `:'. These mod- |
| ify, or edit, the word or words selected from the history event. |
|
|
hh Remove a trailing file name component, leaving only the head. | [1mh [22mRemove a trailing file name component, leaving only the head. |
tt Remove all leading file name components, leaving the tail. | [1mt [22mRemove all leading file name components, leaving the tail. |
rr Remove a trailing suffix of the form _._x_x_x, leaving the basename. | [1mr [22mRemove a trailing suffix of the form [4m.xxx[24m, leaving the basename. |
ee Remove all but the trailing suffix. | [1me [22mRemove all but the trailing suffix. |
pp Print the new command but do not execute it. | [1mp [22mPrint the new command but do not execute it. |
qq Quote the substituted words, escaping further substitutions. | [1mq [22mQuote the substituted words, escaping further substitutions. |
xx Quote the substituted words as with qq, but break into words at | [1mx [22mQuote the substituted words as with [1mq[22m, but break into words at |
bbllaannkkss and newlines. | [1mblanks [22mand newlines. The [1mq [22mand [1mx [22mmodifiers are mutually exclu- |
ss//_o_l_d//_n_e_w// | sive; the last one supplied is used. |
Substitute _n_e_w for the first occurrence of _o_l_d in the event | [1ms/[4m[22mold[24m[1m/[4m[22mnew[24m[1m/[0m |
line. Any delimiter can be used in place of /. The final | Substitute [4mnew[24m for the first occurrence of [4mold[24m in the event |
delimiter is optional if it is the last character of the event | line. Any character may be used as the delimiter in place of /. |
line. The delimiter may be quoted in _o_l_d and _n_e_w with a single | The final delimiter is optional if it is the last character of |
backslash. If & appears in _n_e_w, it is replaced by _o_l_d. A sin- | the event line. The delimiter may be quoted in [4mold[24m and [4mnew[24m with |
gle backslash will quote the &. If _o_l_d is null, it is set to | a single backslash. If & appears in [4mnew[24m, it is replaced by [4mold[24m. |
the last _o_l_d substituted, or, if no previous history substitu- | A single backslash will quote the &. If [4mold[24m is null, it is set |
tions took place, the last _s_t_r_i_n_g in a !!??_s_t_r_i_n_g[[??]] search. | to the last [4mold[24m substituted, or, if no previous history substi- |
&& Repeat the previous substitution. | tutions took place, the last [4mstring[24m in a [1m!?[4m[22mstring[24m[1m[?] [22msearch. |
gg Cause changes to be applied over the entire event line. This is | If [4mnew[24m is null, each matching [4mold[24m is deleted. |
used in conjunction with `::ss' (e.g., `::ggss//_o_l_d//_n_e_w//') or `::&&'. | [1m& [22mRepeat the previous substitution. |
If used with `::ss', any delimiter can be used in place of /, and | [1mg [22mCause changes to be applied over the entire event line. This is |
| used in conjunction with `[1m:s[22m' (e.g., `[1m:gs/[4m[22mold[24m[1m/[4m[22mnew[24m[1m/[22m') or `[1m:&[22m'. |
| If used with `[1m:s[22m', any delimiter can be used in place of /, and |
the final delimiter is optional if it is the last character of |
the final delimiter is optional if it is the last character of |
the event line. An aa may be used as a synonym for gg. | the event line. An [1ma [22mmay be used as a synonym for [1mg[22m. |
GG Apply the following `ss' modifier once to each word in the event | [1mG [22mApply the following `[1ms[22m' or `[1m&[22m' modifier once to each word in the |
line. | event line. |
|
|
PPRROOGGRRAAMMMMIINNGG WWIITTHH HHIISSTTOORRYY FFUUNNCCTTIIOONNSS | [1mPROGRAMMING WITH HISTORY FUNCTIONS[0m |
This section describes how to use the History library in other pro- |
This section describes how to use the History library in other pro- |
grams. |
grams. |
|
|
IInnttrroodduuccttiioonn ttoo HHiissttoorryy | [1mIntroduction to History[0m |
The programmer using the History library has available functions for | A programmer using the History library has available functions for re- |
remembering lines on a history list, associating arbitrary data with a | membering lines on a history list, associating arbitrary data with a |
line, removing lines from the list, searching through the list for a |
line, removing lines from the list, searching through the list for a |
line containing an arbitrary text string, and referencing any line in |
line containing an arbitrary text string, and referencing any line in |
the list directly. In addition, a history _e_x_p_a_n_s_i_o_n function is avail- | the list directly. In addition, a history [4mexpansion[24m function is avail- |
able which provides for a consistent user interface across different |
able which provides for a consistent user interface across different |
programs. |
programs. |
|
|
Line 135 PPRROOGGRRAAMMMMIINNGG WWIITTHH HHIIS
|
Line 142 PPRROOGGRRAAMMMMIINNGG WWIITTHH HHIIS
|
fit of a consistent user interface with a set of well-known commands |
fit of a consistent user interface with a set of well-known commands |
for manipulating the text of previous lines and using that text in new |
for manipulating the text of previous lines and using that text in new |
commands. The basic history manipulation commands are identical to the |
commands. The basic history manipulation commands are identical to the |
history substitution provided by bbaasshh. | history substitution provided by [1mbash[22m. |
|
|
If the programmer desires, he can use the Readline library, which | The programmer can also use the Readline library, which includes some |
includes some history manipulation by default, and has the added advan- | history manipulation by default, and has the added advantage of command |
tage of command line editing. | line editing. |
|
|
Before declaring any functions using any functionality the History | Before declaring any functions using any functionality the History li- |
library provides in other code, an application writer should include | brary provides in other code, an application writer should include the |
the file _<_r_e_a_d_l_i_n_e_/_h_i_s_t_o_r_y_._h_> in any file that uses the History | file [4m<readline/history.h>[24m in any file that uses the History library's |
library's features. It supplies extern declarations for all of the | features. It supplies extern declarations for all of the library's |
library's public functions and variables, and declares all of the pub- | public functions and variables, and declares all of the public data |
lic data structures. | structures. |
|
|
| [1mHistory Storage[0m |
HHiissttoorryy SSttoorraaggee | |
The history list is an array of history entries. A history entry is |
The history list is an array of history entries. A history entry is |
declared as follows: |
declared as follows: |
|
|
_t_y_p_e_d_e_f _v_o_i_d _* hhiissttddaattaa__tt;; | [4mtypedef[24m [4mvoid[24m [4m*[24m [1mhistdata_t;[0m |
|
|
typedef struct _hist_entry { |
typedef struct _hist_entry { |
char *line; |
char *line; |
Line 163 PPRROOGGRRAAMMMMIINNGG WWIITTHH HHIIS
|
Line 169 PPRROOGGRRAAMMMMIINNGG WWIITTHH HHIIS
|
|
|
The history list itself might therefore be declared as |
The history list itself might therefore be declared as |
|
|
_H_I_S_T___E_N_T_R_Y _*_* tthhee__hhiissttoorryy__lliisstt;; | [4mHIST_ENTRY[24m [4m**[24m [1mthe_history_list;[0m |
|
|
The state of the History library is encapsulated into a single struc- |
The state of the History library is encapsulated into a single struc- |
ture: |
ture: |
Line 179 PPRROOGGRRAAMMMMIINNGG WWIITTHH HHIIS
|
Line 185 PPRROOGGRRAAMMMMIINNGG WWIITTHH HHIIS
|
int flags; |
int flags; |
} HISTORY_STATE; |
} HISTORY_STATE; |
|
|
If the flags member includes HHSS__SSTTIIFFLLEEDD, the history has been stifled. | If the flags member includes [1mHS_STIFLED[22m, the history has been stifled. |
|
|
HHiissttoorryy FFuunnccttiioonnss | [1mHistory Functions[0m |
This section describes the calling sequence for the various functions | This section describes the calling sequence for the various functions |
exported by the GNU History library. |
exported by the GNU History library. |
|
|
IInniittiiaalliizziinngg HHiissttoorryy aanndd SSttaattee MMaannaaggeemmeenntt | [1mInitializing History and State Management[0m |
This section describes functions used to initialize and manage the | This section describes functions used to initialize and manage the |
state of the History library when you want to use the history functions |
state of the History library when you want to use the history functions |
in your program. |
in your program. |
|
|
_v_o_i_d uussiinngg__hhiissttoorryy (_v_o_i_d) | [4mvoid[24m [1musing_history [22m([4mvoid[24m) |
Begin a session in which the history functions might be used. This | Begin a session in which the history functions might be used. This |
initializes the interactive variables. |
initializes the interactive variables. |
|
|
_H_I_S_T_O_R_Y___S_T_A_T_E _* hhiissttoorryy__ggeett__hhiissttoorryy__ssttaattee (_v_o_i_d) | [4mHISTORY_STATE[24m [4m*[24m [1mhistory_get_history_state [22m([4mvoid[24m) |
Return a structure describing the current state of the input history. |
Return a structure describing the current state of the input history. |
|
|
_v_o_i_d hhiissttoorryy__sseett__hhiissttoorryy__ssttaattee (_H_I_S_T_O_R_Y___S_T_A_T_E _*_s_t_a_t_e) | [4mvoid[24m [1mhistory_set_history_state [22m([4mHISTORY_STATE[24m [4m*state[24m) |
Set the state of the history list according to _s_t_a_t_e. | Set the state of the history list according to [4mstate[24m. |
|
|
|
|
HHiissttoorryy LLiisstt MMaannaaggeemmeenntt | [1mHistory List Management[0m |
These functions manage individual entries on the history list, or set | These functions manage individual entries on the history list, or set |
parameters managing the list itself. |
parameters managing the list itself. |
|
|
_v_o_i_d aadddd__hhiissttoorryy (_c_o_n_s_t _c_h_a_r _*_s_t_r_i_n_g) | [4mvoid[24m [1madd_history [22m([4mconst[24m [4mchar[24m [4m*string[24m) |
Place _s_t_r_i_n_g at the end of the history list. The associated data field | Place [4mstring[24m at the end of the history list. The associated data field |
(if any) is set to NNUULLLL. | (if any) is set to [1mNULL[22m. If the maximum number of history entries has |
| been set using [1mstifle_history()[22m, and the new number of history entries |
| would exceed that maximum, the oldest history entry is removed. |
|
|
_v_o_i_d aadddd__hhiissttoorryy__ttiimmee (_c_o_n_s_t _c_h_a_r _*_s_t_r_i_n_g) | [4mvoid[24m [1madd_history_time [22m([4mconst[24m [4mchar[24m [4m*string[24m) |
Change the time stamp associated with the most recent history entry to | Change the time stamp associated with the most recent history entry to |
_s_t_r_i_n_g. | [4mstring[24m. |
|
|
_H_I_S_T___E_N_T_R_Y _* rreemmoovvee__hhiissttoorryy (_i_n_t _w_h_i_c_h) | [4mHIST_ENTRY[24m [4m*[24m [1mremove_history [22m([4mint[24m [4mwhich[24m) |
Remove history entry at offset _w_h_i_c_h from the history. The removed | Remove history entry at offset [4mwhich[24m from the history. The removed el- |
element is returned so you can free the line, data, and containing | ement is returned so you can free the line, data, and containing struc- |
structure. | ture. |
|
|
_h_i_s_t_d_a_t_a___t ffrreeee__hhiissttoorryy__eennttrryy (_H_I_S_T___E_N_T_R_Y _*_h_i_s_t_e_n_t) | [4mhistdata_t[24m [1mfree_history_entry [22m([4mHIST_ENTRY[24m [4m*histent[24m) |
Free the history entry _h_i_s_t_e_n_t and any history library private data | Free the history entry [4mhistent[24m and any history library private data as- |
associated with it. Returns the application-specific data so the | sociated with it. Returns the application-specific data so the caller |
caller can dispose of it. | can dispose of it. |
|
|
_H_I_S_T___E_N_T_R_Y _* rreeppllaaccee__hhiissttoorryy__eennttrryy (_i_n_t _w_h_i_c_h_, _c_o_n_s_t _c_h_a_r _*_l_i_n_e_, _h_i_s_t_- | [4mHIST_ENTRY[24m [4m*[24m [1mreplace_history_entry [22m([4mint[24m [4mwhich,[24m [4mconst[24m [4mchar[24m [4m*line,[24m [4mhist-[0m |
_d_a_t_a___t _d_a_t_a) | [4mdata_t[24m [4mdata[24m) |
Make the history entry at offset _w_h_i_c_h have _l_i_n_e and _d_a_t_a. This | Make the history entry at offset [4mwhich[24m have [4mline[24m and [4mdata[24m. This re- |
returns the old entry so the caller can dispose of any application-spe- | turns the old entry so the caller can dispose of any application-spe- |
cific data. In the case of an invalid _w_h_i_c_h, a NNUULLLL pointer is | cific data. In the case of an invalid [4mwhich[24m, a [1mNULL [22mpointer is re- |
returned. | turned. |
|
|
_v_o_i_d cclleeaarr__hhiissttoorryy (_v_o_i_d) | [4mvoid[24m [1mclear_history [22m([4mvoid[24m) |
Clear the history list by deleting all the entries. |
Clear the history list by deleting all the entries. |
|
|
_v_o_i_d ssttiiffllee__hhiissttoorryy (_i_n_t _m_a_x) | [4mvoid[24m [1mstifle_history [22m([4mint[24m [4mmax[24m) |
Stifle the history list, remembering only the last _m_a_x entries. | Stifle the history list, remembering only the last [4mmax[24m entries. The |
| history list will contain only [4mmax[24m entries at a time. |
|
|
_i_n_t uunnssttiiffllee__hhiissttoorryy (_v_o_i_d) | [4mint[24m [1munstifle_history [22m([4mvoid[24m) |
Stop stifling the history. This returns the previously-set maximum |
Stop stifling the history. This returns the previously-set maximum |
number of history entries (as set by ssttiiffllee__hhiissttoorryy(())). history was | number of history entries (as set by [1mstifle_history()[22m). history was |
stifled. The value is positive if the history was stifled, negative if |
stifled. The value is positive if the history was stifled, negative if |
it wasn't. |
it wasn't. |
|
|
_i_n_t hhiissttoorryy__iiss__ssttiifflleedd (_v_o_i_d) | [4mint[24m [1mhistory_is_stifled [22m([4mvoid[24m) |
Returns non-zero if the history is stifled, zero if it is not. |
Returns non-zero if the history is stifled, zero if it is not. |
|
|
|
|
IInnffoorrmmaattiioonn AAbboouutt tthhee HHiissttoorryy LLiisstt | [1mInformation About the History List[0m |
These functions return information about the entire history list or | These functions return information about the entire history list or in- |
individual list entries. | dividual list entries. |
|
|
_H_I_S_T___E_N_T_R_Y _*_* hhiissttoorryy__lliisstt (_v_o_i_d) | [4mHIST_ENTRY[24m [4m**[24m [1mhistory_list [22m([4mvoid[24m) |
Return a NNUULLLL terminated array of _H_I_S_T___E_N_T_R_Y _* which is the current | Return a [1mNULL [22mterminated array of [4mHIST_ENTRY[24m [4m*[24m which is the current in- |
input history. Element 0 of this list is the beginning of time. If | put history. Element 0 of this list is the beginning of time. If |
there is no history, return NNUULLLL. | there is no history, return [1mNULL[22m. |
|
|
_i_n_t wwhheerree__hhiissttoorryy (_v_o_i_d) | [4mint[24m [1mwhere_history [22m([4mvoid[24m) |
Returns the offset of the current history element. |
Returns the offset of the current history element. |
|
|
_H_I_S_T___E_N_T_R_Y _* ccuurrrreenntt__hhiissttoorryy (_v_o_i_d) | [4mHIST_ENTRY[24m [4m*[24m [1mcurrent_history [22m([4mvoid[24m) |
Return the history entry at the current position, as determined by |
Return the history entry at the current position, as determined by |
wwhheerree__hhiissttoorryy(()). If there is no entry there, return a NNUULLLL pointer. | [1mwhere_history()[22m. If there is no entry there, return a [1mNULL [22mpointer. |
|
|
_H_I_S_T___E_N_T_R_Y _* hhiissttoorryy__ggeett (_i_n_t _o_f_f_s_e_t) | [4mHIST_ENTRY[24m [4m*[24m [1mhistory_get [22m([4mint[24m [4moffset[24m) |
Return the history entry at position _o_f_f_s_e_t, starting from hhiiss-- | Return the history entry at position [4moffset[24m. The range of valid values |
ttoorryy__bbaassee. If there is no entry there, or if _o_f_f_s_e_t is greater than | of [4moffset[24m starts at [1mhistory_base [22mand ends at [1mhistory_length [22m- 1. If |
the history length, return a NNUULLLL pointer. | there is no entry there, or if [4moffset[24m is outside the valid range, re- |
| turn a [1mNULL [22mpointer. |
|
|
_t_i_m_e___t hhiissttoorryy__ggeett__ttiimmee (_H_I_S_T___E_N_T_R_Y _*) | [4mtime_t[24m [1mhistory_get_time [22m([4mHIST_ENTRY[24m [4m*[24m) |
Return the time stamp associated with the history entry passed as the | Return the time stamp associated with the history entry passed as the |
argument. |
argument. |
|
|
_i_n_t hhiissttoorryy__ttoottaall__bbyytteess (_v_o_i_d) | [4mint[24m [1mhistory_total_bytes [22m([4mvoid[24m) |
Return the number of bytes that the primary history entries are using. | Return the number of bytes that the primary history entries are using. |
This function returns the sum of the lengths of all the lines in the | This function returns the sum of the lengths of all the lines in the |
history. |
history. |
|
|
|
|
MMoovviinngg AArroouunndd tthhee HHiissttoorryy LLiisstt | [1mMoving Around the History List[0m |
These functions allow the current index into the history list to be set |
These functions allow the current index into the history list to be set |
or changed. |
or changed. |
|
|
_i_n_t hhiissttoorryy__sseett__ppooss (_i_n_t _p_o_s) | [4mint[24m [1mhistory_set_pos [22m([4mint[24m [4mpos[24m) |
Set the current history offset to _p_o_s, an absolute index into the list. | Set the current history offset to [4mpos[24m, an absolute index into the list. |
Returns 1 on success, 0 if _p_o_s is less than zero or greater than the | Returns 1 on success, 0 if [4mpos[24m is less than zero or greater than the |
number of history entries. |
number of history entries. |
|
|
_H_I_S_T___E_N_T_R_Y _* pprreevviioouuss__hhiissttoorryy (_v_o_i_d) | [4mHIST_ENTRY[24m [4m*[24m [1mprevious_history [22m([4mvoid[24m) |
Back up the current history offset to the previous history entry, and | Back up the current history offset to the previous history entry, and |
return a pointer to that entry. If there is no previous entry, return | return a pointer to that entry. If there is no previous entry, return |
a NNUULLLL pointer. | a [1mNULL [22mpointer. |
|
|
_H_I_S_T___E_N_T_R_Y _* nneexxtt__hhiissttoorryy (_v_o_i_d) | [4mHIST_ENTRY[24m [4m*[24m [1mnext_history [22m([4mvoid[24m) |
Move the current history offset forward to the next history entry, and | If the current history offset refers to a valid history entry, incre- |
return the a pointer to that entry. If there is no next entry, return | ment the current history offset. If the possibly-incremented history |
a NNUULLLL pointer. | offset refers to a valid history entry, return a pointer to that entry; |
| otherwise, return a [1mNULL [22mpointer. |
|
|
|
|
SSeeaarrcchhiinngg tthhee HHiissttoorryy LLiisstt | [1mSearching the History List[0m |
These functions allow searching of the history list for entries con- |
These functions allow searching of the history list for entries con- |
taining a specific string. Searching may be performed both forward and |
taining a specific string. Searching may be performed both forward and |
backward from the current history position. The search may be | backward from the current history position. The search may be [4man-[0m |
_a_n_c_h_o_r_e_d, meaning that the string must match at the beginning of the | [4mchored[24m, meaning that the string must match at the beginning of the his- |
history entry. | tory entry. |
|
|
_i_n_t hhiissttoorryy__sseeaarrcchh (_c_o_n_s_t _c_h_a_r _*_s_t_r_i_n_g_, _i_n_t _d_i_r_e_c_t_i_o_n) | [4mint[24m [1mhistory_search [22m([4mconst[24m [4mchar[24m [4m*string,[24m [4mint[24m [4mdirection[24m) |
Search the history for _s_t_r_i_n_g, starting at the current history offset. | Search the history for [4mstring[24m, starting at the current history offset. |
If _d_i_r_e_c_t_i_o_n is less than 0, then the search is through previous | If [4mdirection[24m is less than 0, then the search is through previous en- |
entries, otherwise through subsequent entries. If _s_t_r_i_n_g is found, | tries, otherwise through subsequent entries. If [4mstring[24m is found, then |
then the current history index is set to that history entry, and the | the current history index is set to that history entry, and the value |
value returned is the offset in the line of the entry where _s_t_r_i_n_g was | returned is the offset in the line of the entry where [4mstring[24m was found. |
found. Otherwise, nothing is changed, and a -1 is returned. | Otherwise, nothing is changed, and a -1 is returned. |
|
|
_i_n_t hhiissttoorryy__sseeaarrcchh__pprreeffiixx (_c_o_n_s_t _c_h_a_r _*_s_t_r_i_n_g_, _i_n_t _d_i_r_e_c_t_i_o_n) | [4mint[24m [1mhistory_search_prefix [22m([4mconst[24m [4mchar[24m [4m*string,[24m [4mint[24m [4mdirection[24m) |
Search the history for _s_t_r_i_n_g, starting at the current history offset. | Search the history for [4mstring[24m, starting at the current history offset. |
The search is anchored: matching lines must begin with _s_t_r_i_n_g. If | The search is anchored: matching lines must begin with [4mstring[24m. If [4mdi-[0m |
_d_i_r_e_c_t_i_o_n is less than 0, then the search is through previous entries, | [4mrection[24m is less than 0, then the search is through previous entries, |
otherwise through subsequent entries. If _s_t_r_i_n_g is found, then the | otherwise through subsequent entries. If [4mstring[24m is found, then the |
current history index is set to that entry, and the return value is 0. |
current history index is set to that entry, and the return value is 0. |
Otherwise, nothing is changed, and a -1 is returned. |
Otherwise, nothing is changed, and a -1 is returned. |
|
|
_i_n_t hhiissttoorryy__sseeaarrcchh__ppooss (_c_o_n_s_t _c_h_a_r _*_s_t_r_i_n_g_, _i_n_t _d_i_r_e_c_t_i_o_n_, _i_n_t _p_o_s) | [4mint[24m [1mhistory_search_pos [22m([4mconst[24m [4mchar[24m [4m*string,[24m [4mint[24m [4mdirection,[24m [4mint[24m [4mpos[24m) |
Search for _s_t_r_i_n_g in the history list, starting at _p_o_s, an absolute | Search for [4mstring[24m in the history list, starting at [4mpos[24m, an absolute in- |
index into the list. If _d_i_r_e_c_t_i_o_n is negative, the search proceeds | dex into the list. If [4mdirection[24m is negative, the search proceeds back- |
backward from _p_o_s, otherwise forward. Returns the absolute index of | ward from [4mpos[24m, otherwise forward. Returns the absolute index of the |
the history element where _s_t_r_i_n_g was found, or -1 otherwise. | history element where [4mstring[24m was found, or -1 otherwise. |
|
|
|
|
MMaannaaggiinngg tthhee HHiissttoorryy FFiillee | [1mManaging the History File[0m |
The History library can read the history from and write it to a file. |
The History library can read the history from and write it to a file. |
This section documents the functions for managing a history file. |
This section documents the functions for managing a history file. |
|
|
_i_n_t rreeaadd__hhiissttoorryy (_c_o_n_s_t _c_h_a_r _*_f_i_l_e_n_a_m_e) | [4mint[24m [1mread_history [22m([4mconst[24m [4mchar[24m [4m*filename[24m) |
Add the contents of _f_i_l_e_n_a_m_e to the history list, a line at a time. If | Add the contents of [4mfilename[24m to the history list, a line at a time. If |
_f_i_l_e_n_a_m_e is NNUULLLL, then read from _~_/_._h_i_s_t_o_r_y. Returns 0 if successful, | [4mfilename[24m is [1mNULL[22m, then read from [4m~/.history[24m. Returns 0 if successful, |
or eerrrrnnoo if not. | or [1merrno [22mif not. |
|
|
_i_n_t rreeaadd__hhiissttoorryy__rraannggee (_c_o_n_s_t _c_h_a_r _*_f_i_l_e_n_a_m_e_, _i_n_t _f_r_o_m_, _i_n_t _t_o) | [4mint[24m [1mread_history_range [22m([4mconst[24m [4mchar[24m [4m*filename,[24m [4mint[24m [4mfrom,[24m [4mint[24m [4mto[24m) |
Read a range of lines from _f_i_l_e_n_a_m_e, adding them to the history list. | Read a range of lines from [4mfilename[24m, adding them to the history list. |
Start reading at line _f_r_o_m and end at _t_o. If _f_r_o_m is zero, start at | Start reading at line [4mfrom[24m and end at [4mto[24m. If [4mfrom[24m is zero, start at |
the beginning. If _t_o is less than _f_r_o_m, then read until the end of the | the beginning. If [4mto[24m is less than [4mfrom[24m, then read until the end of the |
file. If _f_i_l_e_n_a_m_e is NNUULLLL, then read from _~_/_._h_i_s_t_o_r_y. Returns 0 if | file. If [4mfilename[24m is [1mNULL[22m, then read from [4m~/.history[24m. Returns 0 if |
successful, or eerrrrnnoo if not. | successful, or [1merrno [22mif not. |
|
|
_i_n_t wwrriittee__hhiissttoorryy (_c_o_n_s_t _c_h_a_r _*_f_i_l_e_n_a_m_e) | [4mint[24m [1mwrite_history [22m([4mconst[24m [4mchar[24m [4m*filename[24m) |
Write the current history to _f_i_l_e_n_a_m_e, overwriting _f_i_l_e_n_a_m_e if neces- | Write the current history to [4mfilename[24m, overwriting [4mfilename[24m if neces- |
sary. If _f_i_l_e_n_a_m_e is NNUULLLL, then write the history list to _~_/_._h_i_s_t_o_r_y. | sary. If [4mfilename[24m is [1mNULL[22m, then write the history list to [4m~/.history[24m. |
Returns 0 on success, or eerrrrnnoo on a read or write error. | Returns 0 on success, or [1merrno [22mon a read or write error. |
|
|
|
|
_i_n_t aappppeenndd__hhiissttoorryy (_i_n_t _n_e_l_e_m_e_n_t_s_, _c_o_n_s_t _c_h_a_r _*_f_i_l_e_n_a_m_e) | [4mint[24m [1mappend_history [22m([4mint[24m [4mnelements,[24m [4mconst[24m [4mchar[24m [4m*filename[24m) |
Append the last _n_e_l_e_m_e_n_t_s of the history list to _f_i_l_e_n_a_m_e. If _f_i_l_e_n_a_m_e | Append the last [4mnelements[24m of the history list to [4mfilename[24m. If [4mfilename[0m |
is NNUULLLL, then append to _~_/_._h_i_s_t_o_r_y. Returns 0 on success, or eerrrrnnoo on | is [1mNULL[22m, then append to [4m~/.history[24m. Returns 0 on success, or [1merrno [22mon |
a read or write error. |
a read or write error. |
|
|
_i_n_t hhiissttoorryy__ttrruunnccaattee__ffiillee (_c_o_n_s_t _c_h_a_r _*_f_i_l_e_n_a_m_e_, _i_n_t _n_l_i_n_e_s) | [4mint[24m [1mhistory_truncate_file [22m([4mconst[24m [4mchar[24m [4m*filename,[24m [4mint[24m [4mnlines[24m) |
Truncate the history file _f_i_l_e_n_a_m_e, leaving only the last _n_l_i_n_e_s lines. | Truncate the history file [4mfilename[24m, leaving only the last [4mnlines[24m lines. |
If _f_i_l_e_n_a_m_e is NNUULLLL, then _~_/_._h_i_s_t_o_r_y is truncated. Returns 0 on suc- | If [4mfilename[24m is [1mNULL[22m, then [4m~/.history[24m is truncated. Returns 0 on suc- |
cess, or eerrrrnnoo on failure. | cess, or [1merrno [22mon failure. |
|
|
|
|
HHiissttoorryy EExxppaannssiioonn | [1mHistory Expansion[0m |
These functions implement history expansion. |
These functions implement history expansion. |
|
|
_i_n_t hhiissttoorryy__eexxppaanndd (_c_h_a_r _*_s_t_r_i_n_g_, _c_h_a_r _*_*_o_u_t_p_u_t) | [4mint[24m [1mhistory_expand [22m([4mchar[24m [4m*string,[24m [4mchar[24m [4m**output[24m) |
Expand _s_t_r_i_n_g, placing the result into _o_u_t_p_u_t, a pointer to a string. | Expand [4mstring[24m, placing the result into [4moutput[24m, a pointer to a string. |
Returns: |
Returns: |
0 If no expansions took place (or, if the only change in |
0 If no expansions took place (or, if the only change in |
the text was the removal of escape characters preceding |
the text was the removal of escape characters preceding |
Line 372 HHiissttoorryy FFuunnccttiioonnss
|
Line 383 HHiissttoorryy FFuunnccttiioonnss
|
1 if expansions did take place; |
1 if expansions did take place; |
-1 if there was an error in expansion; |
-1 if there was an error in expansion; |
2 if the returned line should be displayed, but not exe- |
2 if the returned line should be displayed, but not exe- |
cuted, as with the ::pp modifier. | cuted, as with the [1m:p [22mmodifier. |
If an error ocurred in expansion, then _o_u_t_p_u_t contains a descriptive | If an error occurred in expansion, then [4moutput[24m contains a descriptive |
error message. |
error message. |
|
|
_c_h_a_r _* ggeett__hhiissttoorryy__eevveenntt (_c_o_n_s_t _c_h_a_r _*_s_t_r_i_n_g_, _i_n_t _*_c_i_n_d_e_x_, _i_n_t _q_c_h_a_r) | [4mchar[24m [4m*[24m [1mget_history_event [22m([4mconst[24m [4mchar[24m [4m*string,[24m [4mint[24m [4m*cindex,[24m [4mint[24m [4mqchar[24m) |
Returns the text of the history event beginning at _s_t_r_i_n_g + _*_c_i_n_d_e_x. | Returns the text of the history event beginning at [4mstring[24m + [4m*cindex[24m. |
_*_c_i_n_d_e_x is modified to point to after the event specifier. At function | [4m*cindex[24m is modified to point to after the event specifier. At function |
entry, _c_i_n_d_e_x points to the index into _s_t_r_i_n_g where the history event | entry, [4mcindex[24m points to the index into [4mstring[24m where the history event |
specification begins. _q_c_h_a_r is a character that is allowed to end the | specification begins. [4mqchar[24m is a character that is allowed to end the |
event specification in addition to the ``normal'' terminating charac- |
event specification in addition to the ``normal'' terminating charac- |
ters. |
ters. |
|
|
_c_h_a_r _*_* hhiissttoorryy__ttookkeenniizzee (_c_o_n_s_t _c_h_a_r _*_s_t_r_i_n_g) | [4mchar[24m [4m**[24m [1mhistory_tokenize [22m([4mconst[24m [4mchar[24m [4m*string[24m) |
Return an array of tokens parsed out of _s_t_r_i_n_g, much as the shell | Return an array of tokens parsed out of [4mstring[24m, much as the shell |
might. The tokens are split on the characters in the hhiiss-- | might. The tokens are split on the characters in the [1mhistory_word_de-[0m |
ttoorryy__wwoorrdd__ddeelliimmiitteerrss variable, and shell quoting conventions are | [1mlimiters [22mvariable, and shell quoting conventions are obeyed. |
obeyed. | |
|
|
_c_h_a_r _* hhiissttoorryy__aarrgg__eexxttrraacctt (_i_n_t _f_i_r_s_t_, _i_n_t _l_a_s_t_, _c_o_n_s_t _c_h_a_r _*_s_t_r_i_n_g) | [4mchar[24m [4m*[24m [1mhistory_arg_extract [22m([4mint[24m [4mfirst,[24m [4mint[24m [4mlast,[24m [4mconst[24m [4mchar[24m [4m*string[24m) |
Extract a string segment consisting of the _f_i_r_s_t through _l_a_s_t arguments | Extract a string segment consisting of the [4mfirst[24m through [4mlast[24m arguments |
present in _s_t_r_i_n_g. Arguments are split using hhiissttoorryy__ttookkeenniizzee(()). | present in [4mstring[24m. Arguments are split using [1mhistory_tokenize()[22m. |
|
|
|
|
HHiissttoorryy VVaarriiaabblleess | [1mHistory Variables[0m |
This section describes the externally-visible variables exported by the |
This section describes the externally-visible variables exported by the |
GNU History Library. |
GNU History Library. |
|
|
_i_n_t hhiissttoorryy__bbaassee | [4mint[24m [1mhistory_base[0m |
The logical offset of the first entry in the history list. |
The logical offset of the first entry in the history list. |
|
|
_i_n_t hhiissttoorryy__lleennggtthh | [4mint[24m [1mhistory_length[0m |
The number of entries currently stored in the history list. |
The number of entries currently stored in the history list. |
|
|
_i_n_t hhiissttoorryy__mmaaxx__eennttrriieess | [4mint[24m [1mhistory_max_entries[0m |
The maximum number of history entries. This must be changed using ssttii-- | The maximum number of history entries. This must be changed using [1msti-[0m |
ffllee__hhiissttoorryy(()). | [1mfle_history()[22m. |
|
|
_i_n_t hhiissttoorryy__wwiittee__ttiimmeessttaammppss | [4mint[24m [1mhistory_write_timestamps[0m |
If non-zero, timestamps are written to the history file, so they can be |
If non-zero, timestamps are written to the history file, so they can be |
preserved between sessions. The default value is 0, meaning that time- |
preserved between sessions. The default value is 0, meaning that time- |
stamps are not saved. The current timestamp format uses the value of | stamps are not saved. The current timestamp format uses the value of |
_h_i_s_t_o_r_y___c_o_m_m_e_n_t___c_h_a_r to delimit timestamp entries in the history file. | [4mhistory_comment_char[24m to delimit timestamp entries in the history file. |
If that variable does not have a value (the default), timestamps will | If that variable does not have a value (the default), timestamps will |
not be written. |
not be written. |
|
|
_c_h_a_r hhiissttoorryy__eexxppaannssiioonn__cchhaarr | [4mchar[24m [1mhistory_expansion_char[0m |
The character that introduces a history event. The default is !!. Set- | The character that introduces a history event. The default is [1m![22m. Set- |
ting this to 0 inhibits history expansion. |
ting this to 0 inhibits history expansion. |
|
|
_c_h_a_r hhiissttoorryy__ssuubbsstt__cchhaarr | [4mchar[24m [1mhistory_subst_char[0m |
The character that invokes word substitution if found at the start of a |
The character that invokes word substitution if found at the start of a |
line. The default is ^^. | line. The default is [1m^[22m. |
|
|
_c_h_a_r hhiissttoorryy__ccoommmmeenntt__cchhaarr | [4mchar[24m [1mhistory_comment_char[0m |
During tokenization, if this character is seen as the first character | During tokenization, if this character is seen as the first character |
of a word, then it and all subsequent characters up to a newline are | of a word, then it and all subsequent characters up to a newline are |
ignored, suppressing history expansion for the remainder of the line. | ignored, suppressing history expansion for the remainder of the line. |
This is disabled by default. |
This is disabled by default. |
|
|
_c_h_a_r _* hhiissttoorryy__wwoorrdd__ddeelliimmiitteerrss | [4mchar[24m [4m*[24m [1mhistory_word_delimiters[0m |
The characters that separate tokens for hhiissttoorryy__ttookkeenniizzee(()). The | The characters that separate tokens for [1mhistory_tokenize()[22m. The de- |
default value is "" \\tt\\nn(())<<>>;;&&||"". | fault value is [1m" \t\n()<>;&|"[22m. |
|
|
_c_h_a_r _* hhiissttoorryy__nnoo__eexxppaanndd__cchhaarrss | [4mchar[24m [4m*[24m [1mhistory_no_expand_chars[0m |
The list of characters which inhibit history expansion if found immedi- |
The list of characters which inhibit history expansion if found immedi- |
ately following hhiissttoorryy__eexxppaannssiioonn__cchhaarr. The default is space, tab, | ately following [1mhistory_expansion_char[22m. The default is space, tab, |
newline, \\rr, and ==. | newline, [1m\r[22m, and [1m=[22m. |
|
|
_c_h_a_r _* hhiissttoorryy__sseeaarrcchh__ddeelliimmiitteerr__cchhaarrss | [4mchar[24m [4m*[24m [1mhistory_search_delimiter_chars[0m |
The list of additional characters which can delimit a history search | The list of additional characters which can delimit a history search |
string, in addition to space, tab, _: and _? in the case of a substring | string, in addition to space, tab, [4m:[24m and [4m?[24m in the case of a substring |
search. The default is empty. |
search. The default is empty. |
|
|
_i_n_t hhiissttoorryy__qquuootteess__iinnhhiibbiitt__eexxppaannssiioonn | [4mint[24m [1mhistory_quotes_inhibit_expansion[0m |
If non-zero, single-quoted words are not scanned for the history expan- | If non-zero, double-quoted words are not scanned for the history expan- |
sion character. The default value is 0. | sion character or the history comment character. The default value is |
| 0. |
|
|
_r_l___l_i_n_e_b_u_f___f_u_n_c___t _* hhiissttoorryy__iinnhhiibbiitt__eexxppaannssiioonn__ffuunnccttiioonn | [4mrl_linebuf_func_t[24m [4m*[24m [1mhistory_inhibit_expansion_function[0m |
This should be set to the address of a function that takes two argu- |
This should be set to the address of a function that takes two argu- |
ments: a cchhaarr ** (_s_t_r_i_n_g) and an iinntt index into that string (_i). It | ments: a [1mchar * [22m([4mstring[24m) and an [1mint [22mindex into that string ([4mi[24m). It |
should return a non-zero value if the history expansion starting at |
should return a non-zero value if the history expansion starting at |
_s_t_r_i_n_g_[_i_] should not be performed; zero if the expansion should be | [4mstring[i][24m should not be performed; zero if the expansion should be |
done. It is intended for use by applications like bbaasshh that use the | done. It is intended for use by applications like [1mbash [22mthat use the |
history expansion character for additional purposes. By default, this |
history expansion character for additional purposes. By default, this |
variable is set to NNUULLLL. | variable is set to [1mNULL[22m. |
|
|
FFIILLEESS | [1mFILES[0m |
_~_/_._h_i_s_t_o_r_y | [4m~/.history[0m |
Default filename for reading and writing saved history |
Default filename for reading and writing saved history |
|
|
SSEEEE AALLSSOO | [1mSEE ALSO[0m |
_T_h_e _G_n_u _R_e_a_d_l_i_n_e _L_i_b_r_a_r_y, Brian Fox and Chet Ramey | [4mThe[24m [4mGnu[24m [4mReadline[24m [4mLibrary[24m, Brian Fox and Chet Ramey |
_T_h_e _G_n_u _H_i_s_t_o_r_y _L_i_b_r_a_r_y, Brian Fox and Chet Ramey | [4mThe[24m [4mGnu[24m [4mHistory[24m [4mLibrary[24m, Brian Fox and Chet Ramey |
_b_a_s_h(1) | [4mbash[24m(1) |
_r_e_a_d_l_i_n_e(3) | [4mreadline[24m(3) |
|
|
AAUUTTHHOORRSS | [1mAUTHORS[0m |
Brian Fox, Free Software Foundation |
Brian Fox, Free Software Foundation |
bfox@gnu.org |
bfox@gnu.org |
|
|
Chet Ramey, Case Western Reserve University |
Chet Ramey, Case Western Reserve University |
chet.ramey@case.edu |
chet.ramey@case.edu |
|
|
BBUUGG RREEPPOORRTTSS | [1mBUG REPORTS[0m |
If you find a bug in the hhiissttoorryy library, you should report it. But | If you find a bug in the [1mhistory [22mlibrary, you should report it. But |
first, you should make sure that it really is a bug, and that it | first, you should make sure that it really is a bug, and that it ap- |
appears in the latest version of the hhiissttoorryy library that you have. | pears in the latest version of the [1mhistory [22mlibrary that you have. |
|
|
Once you have determined that a bug actually exists, mail a bug report |
Once you have determined that a bug actually exists, mail 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 | to [4mbug-readline[24m@[4mgnu.org[24m. If you have a fix, you are welcome to mail |
that as well! Suggestions and `philosophical' bug reports may be |
that as well! Suggestions and `philosophical' bug reports may be |
mailed to _b_u_g_-_r_e_a_d_l_i_n_e@_g_n_u_._o_r_g or posted to the Usenet newsgroup | mailed to [4mbug-readline[24m@[4mgnu.org[24m or posted to the Usenet newsgroup |
ggnnuu..bbaasshh..bbuugg. | [1mgnu.bash.bug[22m. |
|
|
Comments and bug reports concerning this manual page should be directed |
Comments and bug reports concerning this manual page should be directed |
to _c_h_e_t_._r_a_m_e_y_@_c_a_s_e_._e_d_u. | to [4mchet.ramey@case.edu[24m. |
|
|
|
|
|
|
GNU History 6.3 2013 June 27 HISTORY(3) | GNU History 8.1 2020 July 17 HISTORY(3) |