| HISTORY(3) HISTORY(3) |
| |
| |
| |
| NNAAMMEE |
| history - GNU History Library |
| |
| CCOOPPYYRRIIGGHHTT |
| The GNU History Library is Copyright (C) 1989-2002 by the Free Software |
| Foundation, Inc. |
| |
| DDEESSCCRRIIPPTTIIOONN |
| 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 |
| data with each line, and utilize information from previous lines in |
| composing new ones. |
| |
| |
| HHIISSTTOORRYY EEXXPPAANNSSIIOONN |
| The history library supports a history expansion feature that is iden- |
| tical to the history expansion in bbaasshh.. This section describes what |
| syntax features are available. |
| |
| History expansions introduce words from the history list into the input |
| stream, making it easy to repeat commands, insert the arguments to a |
| previous command into the current input line, or fix errors in previous |
| commands quickly. |
| |
| History expansion is usually performed immediately after a complete |
| 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- |
| 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 |
| of that line that are acted upon are _w_o_r_d_s. Various _m_o_d_i_f_i_e_r_s are |
| 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- |
| eral words that would otherwise be separated are considered one word |
| when surrounded by quotes (see the description of hhiissttoorryy__ttookkeenniizzee(()) |
| below). History expansions are introduced by the appearance of the |
| history expansion character, which is !! by default. Only backslash (\\) |
| and single quotes can quote the history expansion character. |
| |
| EEvveenntt DDeessiiggnnaattoorrss |
| An event designator is a reference to a command line entry in the his- |
| tory list. |
| |
| !! Start a history substitution, except when followed by a bbllaannkk, |
| newline, = or (. |
| !!_n Refer to command line _n. |
| !!--_n Refer to the current command line minus _n. |
| !!!! Refer to the previous command. This is a synonym for `!-1'. |
| !!_s_t_r_i_n_g |
| Refer to the most recent command starting with _s_t_r_i_n_g. |
| !!??_s_t_r_i_n_g[[??]] |
| Refer to the most recent command containing _s_t_r_i_n_g. The trail- |
| ing ?? may be omitted if _s_t_r_i_n_g is followed immediately by a new- |
| line. |
| ^^_s_t_r_i_n_g_1^^_s_t_r_i_n_g_2^^ |
| Quick substitution. Repeat the last command, replacing _s_t_r_i_n_g_1 |
| 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-- |
| iiffiieerrss below). |
| !!## The entire command line typed so far. |
| |
| WWoorrdd DDeessiiggnnaattoorrss |
| Word designators are used to select desired words from the event. A :: |
| separates the event specification from the word designator. It may be |
| omitted if the word designator begins with a ^^, $$, **, --, or %%. Words |
| 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- |
| rated by single spaces. |
| |
| 00 ((zzeerroo)) |
| The zeroth word. For the shell, this is the command word. |
| _n The _nth word. |
| ^^ The first argument. That is, word 1. |
| $$ The last argument. |
| %% The word matched by the most recent `?_s_t_r_i_n_g?' search. |
| _x--_y A range of words; `-_y' abbreviates `0-_y'. |
| ** All of the words but the zeroth. This is a synonym for `_1_-_$'. |
| It is not an error to use ** if there is just one word in the |
| event; the empty string is returned in that case. |
| xx** Abbreviates _x_-_$. |
| xx-- Abbreviates _x_-_$ like xx**, but omits the last word. |
| |
| If a word designator is supplied without an event specification, the |
| previous command is used as the event. |
| |
| MMooddiiffiieerrss |
| After the optional word designator, there may appear a sequence of one |
| or more of the following modifiers, each preceded by a `:'. |
| |
| hh Remove a trailing file name component, leaving only the head. |
| tt Remove all leading file name components, leaving the tail. |
| rr Remove a trailing suffix of the form _._x_x_x, leaving the basename. |
| ee Remove all but the trailing suffix. |
| pp Print the new command but do not execute it. |
| qq Quote the substituted words, escaping further substitutions. |
| xx Quote the substituted words as with qq, but break into words at |
| bbllaannkkss and newlines. |
| ss//_o_l_d//_n_e_w// |
| Substitute _n_e_w for the first occurrence of _o_l_d in the event |
| line. Any delimiter can be used in place of /. The final |
| delimiter is optional if it is the last character of the event |
| line. The delimiter may be quoted in _o_l_d and _n_e_w with a single |
| backslash. If & appears in _n_e_w, it is replaced by _o_l_d. A sin- |
| gle backslash will quote the &. If _o_l_d is null, it is set to |
| the last _o_l_d substituted, or, if no previous history substitu- |
| tions took place, the last _s_t_r_i_n_g in a !!??_s_t_r_i_n_g[[??]] search. |
| && Repeat the previous substitution. |
| gg Cause changes to be applied over the entire event line. This is |
| used in conjunction with `::ss' (e.g., `::ggss//_o_l_d//_n_e_w//') or `::&&'. |
| If used with `::ss', any delimiter can be used in place of /, and |
| 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. |
| GG Apply the following `ss' modifier once to each word in the event |
| line. |
| |
| PPRROOGGRRAAMMMMIINNGG WWIITTHH HHIISSTTOORRYY FFUUNNCCTTIIOONNSS |
| This section describes how to use the History library in other pro- |
| grams. |
| |
| IInnttrroodduuccttiioonn ttoo HHiissttoorryy |
| The programmer using the History library has available functions for |
| remembering lines on a history list, associating arbitrary data with a |
| line, removing lines from the list, searching through the list for a |
| 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- |
| able which provides for a consistent user interface across different |
| programs. |
| |
| The user using programs written with the History library has the bene- |
| 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 |
| commands. The basic history manipulation commands are identical to the |
| history substitution provided by bbaasshh. |
| |
| If the programmer desires, he can use the Readline library, which |
| includes some history manipulation by default, and has the added advan- |
| tage of command line editing. |
| |
| Before declaring any functions using any functionality the History |
| library provides in other code, an application writer should include |
| 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 |
| library's features. It supplies extern declarations for all of the |
| library's public functions and variables, and declares all of the pub- |
| lic data structures. |
| |
| |
| HHiissttoorryy SSttoorraaggee |
| The history list is an array of history entries. A history entry is |
| declared as follows: |
| |
| _t_y_p_e_d_e_f _v_o_i_d _* hhiissttddaattaa__tt;; |
| |
| typedef struct _hist_entry { |
| char *line; |
| char *timestamp; |
| histdata_t data; |
| } HIST_ENTRY; |
| |
| The history list itself might therefore be declared as |
| |
| _H_I_S_T___E_N_T_R_Y _*_* tthhee__hhiissttoorryy__lliisstt;; |
| |
| The state of the History library is encapsulated into a single struc- |
| ture: |
| |
| /* |
| * A structure used to pass around the current state of the history. |
| */ |
| typedef struct _hist_state { |
| HIST_ENTRY **entries; /* Pointer to the entries themselves. */ |
| int offset; /* The location pointer within this array. */ |
| int length; /* Number of elements within this array. */ |
| int size; /* Number of slots allocated to this array. */ |
| int flags; |
| } HISTORY_STATE; |
| |
| If the flags member includes HHSS__SSTTIIFFLLEEDD, the history has been stifled. |
| |
| HHiissttoorryy FFuunnccttiioonnss |
| This section describes the calling sequence for the various functions |
| exported by the GNU History library. |
| |
| IInniittiiaalliizziinngg HHiissttoorryy aanndd SSttaattee MMaannaaggeemmeenntt |
| This section describes functions used to initialize and manage the |
| state of the History library when you want to use the history functions |
| in your program. |
| |
| _v_o_i_d uussiinngg__hhiissttoorryy (_v_o_i_d) |
| Begin a session in which the history functions might be used. This |
| initializes the interactive variables. |
| |
| _H_I_S_T_O_R_Y___S_T_A_T_E _* hhiissttoorryy__ggeett__hhiissttoorryy__ssttaattee (_v_o_i_d) |
| 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) |
| Set the state of the history list according to _s_t_a_t_e. |
| |
| |
| HHiissttoorryy LLiisstt MMaannaaggeemmeenntt |
| These functions manage individual entries on the history list, or set |
| 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) |
| Place _s_t_r_i_n_g at the end of the history list. The associated data field |
| (if any) is set to NNUULLLL. |
| |
| _v_o_i_d aadddd__hhiissttoorryy__ttiimmee (_c_o_n_s_t _c_h_a_r _*_s_t_r_i_n_g) |
| Change the time stamp associated with the most recent history entry to |
| _s_t_r_i_n_g. |
| |
| _H_I_S_T___E_N_T_R_Y _* rreemmoovvee__hhiissttoorryy (_i_n_t _w_h_i_c_h) |
| Remove history entry at offset _w_h_i_c_h from the history. The removed |
| element is returned so you can free the line, data, and containing |
| structure. |
| |
| _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) |
| Free the history entry _h_i_s_t_e_n_t and any history library private data |
| associated with it. Returns the application-specific data so the |
| caller 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_- |
| _d_a_t_a___t _d_a_t_a) |
| Make the history entry at offset _w_h_i_c_h have _l_i_n_e and _d_a_t_a. This |
| returns 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 |
| returned. |
| |
| _v_o_i_d cclleeaarr__hhiissttoorryy (_v_o_i_d) |
| Clear the history list by deleting all the entries. |
| |
| _v_o_i_d ssttiiffllee__hhiissttoorryy (_i_n_t _m_a_x) |
| Stifle the history list, remembering only the last _m_a_x entries. |
| |
| _i_n_t uunnssttiiffllee__hhiissttoorryy (_v_o_i_d) |
| Stop stifling the history. This returns the previously-set maximum |
| number of history entries (as set by ssttiiffllee__hhiissttoorryy(())). history was |
| stifled. The value is positive if the history was stifled, negative if |
| it wasn't. |
| |
| _i_n_t hhiissttoorryy__iiss__ssttiifflleedd (_v_o_i_d) |
| Returns non-zero if the history is stifled, zero if it is not. |
| |
| |
| IInnffoorrmmaattiioonn AAbboouutt tthhee HHiissttoorryy LLiisstt |
| These functions return information about the entire history list or |
| individual list entries. |
| |
| _H_I_S_T___E_N_T_R_Y _*_* hhiissttoorryy__lliisstt (_v_o_i_d) |
| Return a NNUULLLL terminated array of _H_I_S_T___E_N_T_R_Y _* which is the current |
| input history. Element 0 of this list is the beginning of time. If |
| there is no history, return NNUULLLL. |
| |
| _i_n_t wwhheerree__hhiissttoorryy (_v_o_i_d) |
| Returns the offset of the current history element. |
| |
| _H_I_S_T___E_N_T_R_Y _* ccuurrrreenntt__hhiissttoorryy (_v_o_i_d) |
| Return the history entry at the current position, as determined by |
| wwhheerree__hhiissttoorryy(()). If there is no entry there, return a NNUULLLL pointer. |
| |
| _H_I_S_T___E_N_T_R_Y _* hhiissttoorryy__ggeett (_i_n_t _o_f_f_s_e_t) |
| Return the history entry at position _o_f_f_s_e_t, starting from hhiiss-- |
| ttoorryy__bbaassee. If there is no entry there, or if _o_f_f_s_e_t is greater than |
| the history length, return a NNUULLLL pointer. |
| |
| _t_i_m_e___t hhiissttoorryy__ggeett__ttiimmee (_H_I_S_T___E_N_T_R_Y _*) |
| Return the time stamp associated with the history entry passed as the |
| argument. |
| |
| _i_n_t hhiissttoorryy__ttoottaall__bbyytteess (_v_o_i_d) |
| 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 |
| history. |
| |
| |
| MMoovviinngg AArroouunndd tthhee HHiissttoorryy LLiisstt |
| These functions allow the current index into the history list to be set |
| or changed. |
| |
| _i_n_t hhiissttoorryy__sseett__ppooss (_i_n_t _p_o_s) |
| Set the current history offset to _p_o_s, an absolute index into the list. |
| Returns 1 on success, 0 if _p_o_s is less than zero or greater than the |
| number of history entries. |
| |
| _H_I_S_T___E_N_T_R_Y _* pprreevviioouuss__hhiissttoorryy (_v_o_i_d) |
| 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 |
| a NNUULLLL pointer. |
| |
| _H_I_S_T___E_N_T_R_Y _* nneexxtt__hhiissttoorryy (_v_o_i_d) |
| Move the current history offset forward to the next history entry, and |
| return the a pointer to that entry. If there is no next entry, return |
| a NNUULLLL pointer. |
| |
| |
| SSeeaarrcchhiinngg tthhee HHiissttoorryy LLiisstt |
| These functions allow searching of the history list for entries con- |
| taining a specific string. Searching may be performed both forward and |
| backward from the current history position. The search may be |
| _a_n_c_h_o_r_e_d, meaning that the string must match at the beginning of the |
| history 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) |
| Search the history for _s_t_r_i_n_g, 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 |
| entries, otherwise through subsequent entries. If _s_t_r_i_n_g is found, |
| then the current history index is set to that history entry, and the |
| value returned is the offset in the line of the entry where _s_t_r_i_n_g was |
| found. 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) |
| Search the history for _s_t_r_i_n_g, starting at the current history offset. |
| The search is anchored: matching lines must begin with _s_t_r_i_n_g. If |
| _d_i_r_e_c_t_i_o_n 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 |
| current history index is set to that entry, and the return value is 0. |
| 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) |
| Search for _s_t_r_i_n_g in the history list, starting at _p_o_s, an absolute |
| index into the list. If _d_i_r_e_c_t_i_o_n is negative, the search proceeds |
| backward from _p_o_s, otherwise forward. Returns the absolute index of |
| the history element where _s_t_r_i_n_g was found, or -1 otherwise. |
| |
| |
| MMaannaaggiinngg tthhee HHiissttoorryy FFiillee |
| The History library can read the history from and write it to a 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) |
| Add the contents of _f_i_l_e_n_a_m_e 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, |
| or eerrrrnnoo if 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) |
| Read a range of lines from _f_i_l_e_n_a_m_e, 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 |
| the beginning. If _t_o is less than _f_r_o_m, 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 |
| successful, or eerrrrnnoo if not. |
| |
| _i_n_t wwrriittee__hhiissttoorryy (_c_o_n_s_t _c_h_a_r _*_f_i_l_e_n_a_m_e) |
| Write the current history to _f_i_l_e_n_a_m_e, overwriting _f_i_l_e_n_a_m_e 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. |
| Returns 0 on success, or eerrrrnnoo on 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) |
| 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 |
| is NNUULLLL, then append to _~_/_._h_i_s_t_o_r_y. Returns 0 on success, or eerrrrnnoo on |
| 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) |
| Truncate the history file _f_i_l_e_n_a_m_e, leaving only the last _n_l_i_n_e_s 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- |
| cess, or eerrrrnnoo on failure. |
| |
| |
| HHiissttoorryy EExxppaannssiioonn |
| 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) |
| Expand _s_t_r_i_n_g, placing the result into _o_u_t_p_u_t, a pointer to a string. |
| Returns: |
| 0 If no expansions took place (or, if the only change in |
| the text was the removal of escape characters preceding |
| the history expansion character); |
| 1 if expansions did take place; |
| -1 if there was an error in expansion; |
| 2 if the returned line should be displayed, but not exe- |
| cuted, as with the ::pp modifier. |
| If an error ocurred in expansion, then _o_u_t_p_u_t contains a descriptive |
| 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) |
| Returns the text of the history event beginning at _s_t_r_i_n_g + _*_c_i_n_d_e_x. |
| _*_c_i_n_d_e_x 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 |
| specification begins. _q_c_h_a_r is a character that is allowed to end the |
| event specification in addition to the ``normal'' terminating charac- |
| ters. |
| |
| _c_h_a_r _*_* hhiissttoorryy__ttookkeenniizzee (_c_o_n_s_t _c_h_a_r _*_s_t_r_i_n_g) |
| Return an array of tokens parsed out of _s_t_r_i_n_g, much as the shell |
| might. The tokens are split on the characters in the hhiiss-- |
| ttoorryy__wwoorrdd__ddeelliimmiitteerrss variable, and shell quoting conventions are |
| 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) |
| Extract a string segment consisting of the _f_i_r_s_t through _l_a_s_t arguments |
| present in _s_t_r_i_n_g. Arguments are split using hhiissttoorryy__ttookkeenniizzee(()). |
| |
| |
| HHiissttoorryy VVaarriiaabblleess |
| This section describes the externally-visible variables exported by the |
| GNU History Library. |
| |
| _i_n_t hhiissttoorryy__bbaassee |
| The logical offset of the first entry in the history list. |
| |
| _i_n_t hhiissttoorryy__lleennggtthh |
| The number of entries currently stored in the history list. |
| |
| _i_n_t hhiissttoorryy__mmaaxx__eennttrriieess |
| The maximum number of history entries. This must be changed using ssttii-- |
| ffllee__hhiissttoorryy(()). |
| |
| _i_n_t hhiissttoorryy__wwrriittee__ttiimmeessttaammppss |
| If non-zero, timestamps are written to the history file, so they can be |
| preserved between sessions. The default value is 0, meaning that |
| timestamps are not saved. |
| |
| _c_h_a_r hhiissttoorryy__eexxppaannssiioonn__cchhaarr |
| The character that introduces a history event. The default is !!. Set- |
| ting this to 0 inhibits history expansion. |
| |
| _c_h_a_r hhiissttoorryy__ssuubbsstt__cchhaarr |
| The character that invokes word substitution if found at the start of a |
| line. The default is ^^. |
| |
| _c_h_a_r hhiissttoorryy__ccoommmmeenntt__cchhaarr |
| 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 |
| ignored, suppressing history expansion for the remainder of the line. |
| This is disabled by default. |
| |
| _c_h_a_r _* hhiissttoorryy__wwoorrdd__ddeelliimmiitteerrss |
| The characters that separate tokens for hhiissttoorryy__ttookkeenniizzee(()). The |
| default value is "" \\tt\\nn(())<<>>;;&&||"". |
| |
| _c_h_a_r _* hhiissttoorryy__nnoo__eexxppaanndd__cchhaarrss |
| The list of characters which inhibit history expansion if found immedi- |
| ately following hhiissttoorryy__eexxppaannssiioonn__cchhaarr. The default is space, tab, |
| newline, \\rr, and ==. |
| |
| _c_h_a_r _* hhiissttoorryy__sseeaarrcchh__ddeelliimmiitteerr__cchhaarrss |
| The list of additional characters which can delimit a history search |
| string, in addition to space, tab, _: and _? in the case of a substring |
| search. The default is empty. |
| |
| _i_n_t hhiissttoorryy__qquuootteess__iinnhhiibbiitt__eexxppaannssiioonn |
| If non-zero, single-quoted words are not scanned for the history expan- |
| sion character. The default value is 0. |
| |
| _r_l___l_i_n_e_b_u_f___f_u_n_c___t _* hhiissttoorryy__iinnhhiibbiitt__eexxppaannssiioonn__ffuunnccttiioonn |
| 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 |
| 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 |
| done. It is intended for use by applications like bbaasshh that use the |
| history expansion character for additional purposes. By default, this |
| variable is set to NNUULLLL. |
| |
| FFIILLEESS |
| _~_/_._h_i_s_t_o_r_y |
| Default filename for reading and writing saved history |
| |
| SSEEEE AALLSSOO |
| _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 |
| _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 |
| _b_a_s_h(1) |
| _r_e_a_d_l_i_n_e(3) |
| |
| AAUUTTHHOORRSS |
| Brian Fox, Free Software Foundation |
| bfox@gnu.org |
| |
| Chet Ramey, Case Western Reserve University |
| chet@ins.CWRU.Edu |
| |
| BBUUGG RREEPPOORRTTSS |
| If you find a bug in the hhiissttoorryy library, you should report it. But |
| first, you should make sure that it really is a bug, and that it |
| appears in the latest version of the hhiissttoorryy library that you have. |
| |
| 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 |
| 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 |
| ggnnuu..bbaasshh..bbuugg. |
| |
| Comments and bug reports concerning this manual page should be directed |
| to _c_h_e_t_@_i_n_s_._C_W_R_U_._E_d_u. |
| |
| |
| |
| GNU History 5.0 2003 July 31 HISTORY(3) |