Annotation of embedaddon/readline/doc/history.0, revision 1.1.1.1

1.1       misho       1: HISTORY(3)                                                          HISTORY(3)
                      2: 
                      3: 
                      4: 
                      5: NNAAMMEE
                      6:        history - GNU History Library
                      7: 
                      8: CCOOPPYYRRIIGGHHTT
                      9:        The GNU History Library is Copyright (C) 1989-2011 by the Free Software
                     10:        Foundation, Inc.
                     11: 
                     12: DDEESSCCRRIIPPTTIIOONN
                     13:        Many programs read input from the user a line at a time.  The GNU  His-
                     14:        tory  library is able to keep track of those lines, associate arbitrary
                     15:        data with each line, and utilize information  from  previous  lines  in
                     16:        composing new ones.
                     17: 
                     18: 
                     19: HHIISSTTOORRYY EEXXPPAANNSSIIOONN
                     20:        The  history library supports a history expansion feature that is iden-
                     21:        tical to the history expansion in bbaasshh..  This  section  describes  what
                     22:        syntax features are available.
                     23: 
                     24:        History expansions introduce words from the history list into the input
                     25:        stream, making it easy to repeat commands, insert the  arguments  to  a
                     26:        previous command into the current input line, or fix errors in previous
                     27:        commands quickly.
                     28: 
                     29:        History expansion is usually performed  immediately  after  a  complete
                     30:        line  is read.  It takes place in two parts.  The first is to determine
                     31:        which line from the history list to use during substitution.  The  sec-
                     32:        ond  is  to select portions of that line for inclusion into the current
                     33:        one.  The line selected from the history is the _e_v_e_n_t, and the portions
                     34:        of  that  line  that  are  acted upon are _w_o_r_d_s.  Various _m_o_d_i_f_i_e_r_s are
                     35:        available to manipulate the selected words.  The line  is  broken  into
                     36:        words in the same fashion as bbaasshh does when reading input, so that sev-
                     37:        eral words that would otherwise be separated are  considered  one  word
                     38:        when  surrounded  by  quotes (see the description of hhiissttoorryy__ttookkeenniizzee(())
                     39:        below).  History expansions are introduced by  the  appearance  of  the
                     40:        history expansion character, which is !! by default.  Only backslash (\\)
                     41:        and single quotes can quote the history expansion character.
                     42: 
                     43:    EEvveenntt DDeessiiggnnaattoorrss
                     44:        An event designator is a reference to a command line entry in the  his-
                     45:        tory  list.   Unless  the reference is absolute, events are relative to
                     46:        the current position in the history list.
                     47: 
                     48:        !!      Start a history substitution, except when followed by  a  bbllaannkk,
                     49:               newline, = or (.
                     50:        !!_n     Refer to command line _n.
                     51:        !!--_n    Refer to the current command minus _n.
                     52:        !!!!     Refer to the previous command.  This is a synonym for `!-1'.
                     53:        !!_s_t_r_i_n_g
                     54:               Refer  to the most recent command preceding the current position
                     55:               in the history list starting with _s_t_r_i_n_g.
                     56:        !!??_s_t_r_i_n_g[[??]]
                     57:               Refer to the most recent command preceding the current  position
                     58:               in  the  history  list containing _s_t_r_i_n_g.  The trailing ?? may be
                     59:               omitted if _s_t_r_i_n_g is followed immediately by a newline.
                     60:        ^^_s_t_r_i_n_g_1^^_s_t_r_i_n_g_2^^
                     61:               Quick substitution.  Repeat the last command, replacing  _s_t_r_i_n_g_1
                     62:               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--
                     63:               iiffiieerrss below).
                     64:        !!##     The entire command line typed so far.
                     65: 
                     66:    WWoorrdd DDeessiiggnnaattoorrss
                     67:        Word designators are used to select desired words from the event.  A  ::
                     68:        separates  the event specification from the word designator.  It may be
                     69:        omitted if the word designator begins with a ^^, $$, **, --, or  %%.   Words
                     70:        are  numbered from the beginning of the line, with the first word being
                     71:        denoted by 0 (zero).  Words are inserted into the  current  line  sepa-
                     72:        rated by single spaces.
                     73: 
                     74:        00 ((zzeerroo))
                     75:               The zeroth word.  For the shell, this is the command word.
                     76:        _n      The _nth word.
                     77:        ^^      The first argument.  That is, word 1.
                     78:        $$      The  last  word.   This  is  usually the last argument, but will
                     79:               expand to the zeroth word if there is only one word in the line.
                     80:        %%      The word matched by the most recent `?_s_t_r_i_n_g?' search.
                     81:        _x--_y    A range of words; `-_y' abbreviates `0-_y'.
                     82:        **      All  of  the words but the zeroth.  This is a synonym for `_1_-_$'.
                     83:               It is not an error to use ** if there is just  one  word  in  the
                     84:               event; the empty string is returned in that case.
                     85:        xx**     Abbreviates _x_-_$.
                     86:        xx--     Abbreviates _x_-_$ like xx**, but omits the last word.
                     87: 
                     88:        If  a  word  designator is supplied without an event specification, the
                     89:        previous command is used as the event.
                     90: 
                     91:    MMooddiiffiieerrss
                     92:        After the optional word designator, there may appear a sequence of  one
                     93:        or more of the following modifiers, each preceded by a `:'.
                     94: 
                     95:        hh      Remove a trailing file name component, leaving only the head.
                     96:        tt      Remove all leading file name components, leaving the tail.
                     97:        rr      Remove a trailing suffix of the form _._x_x_x, leaving the basename.
                     98:        ee      Remove all but the trailing suffix.
                     99:        pp      Print the new command but do not execute it.
                    100:        qq      Quote the substituted words, escaping further substitutions.
                    101:        xx      Quote the substituted words as with qq, but break into  words  at
                    102:               bbllaannkkss and newlines.
                    103:        ss//_o_l_d//_n_e_w//
                    104:               Substitute  _n_e_w  for  the  first  occurrence of _o_l_d in the event
                    105:               line.  Any delimiter can be used  in  place  of  /.   The  final
                    106:               delimiter  is  optional if it is the last character of the event
                    107:               line.  The delimiter may be quoted in _o_l_d and _n_e_w with a  single
                    108:               backslash.   If & appears in _n_e_w, it is replaced by _o_l_d.  A sin-
                    109:               gle backslash will quote the &.  If _o_l_d is null, it  is  set  to
                    110:               the  last  _o_l_d substituted, or, if no previous history substitu-
                    111:               tions took place, the last _s_t_r_i_n_g in a !!??_s_t_r_i_n_g[[??]]  search.
                    112:        &&      Repeat the previous substitution.
                    113:        gg      Cause changes to be applied over the entire event line.  This is
                    114:               used  in  conjunction  with `::ss' (e.g., `::ggss//_o_l_d//_n_e_w//') or `::&&'.
                    115:               If used with `::ss', any delimiter can be used in place of /,  and
                    116:               the  final  delimiter is optional if it is the last character of
                    117:               the event line.  An aa may be used as a synonym for gg.
                    118:        GG      Apply the following `ss' modifier once to each word in the  event
                    119:               line.
                    120: 
                    121: PPRROOGGRRAAMMMMIINNGG WWIITTHH HHIISSTTOORRYY FFUUNNCCTTIIOONNSS
                    122:        This  section  describes  how  to use the History library in other pro-
                    123:        grams.
                    124: 
                    125:    IInnttrroodduuccttiioonn ttoo HHiissttoorryy
                    126:        The programmer using the History library has  available  functions  for
                    127:        remembering  lines on a history list, associating arbitrary data with a
                    128:        line, removing lines from the list, searching through the  list  for  a
                    129:        line  containing  an arbitrary text string, and referencing any line in
                    130:        the list directly.  In addition, a history _e_x_p_a_n_s_i_o_n function is avail-
                    131:        able  which  provides  for a consistent user interface across different
                    132:        programs.
                    133: 
                    134:        The user using programs written with the History library has the  bene-
                    135:        fit  of  a  consistent user interface with a set of well-known commands
                    136:        for manipulating the text of previous lines and using that text in  new
                    137:        commands.  The basic history manipulation commands are identical to the
                    138:        history substitution provided by bbaasshh.
                    139: 
                    140:        If the programmer desires, he  can  use  the  Readline  library,  which
                    141:        includes some history manipulation by default, and has the added advan-
                    142:        tage of command line editing.
                    143: 
                    144:        Before declaring any functions  using  any  functionality  the  History
                    145:        library  provides  in  other code, an application writer should include
                    146:        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
                    147:        library's  features.   It  supplies  extern declarations for all of the
                    148:        library's public functions and variables, and declares all of the  pub-
                    149:        lic data structures.
                    150: 
                    151: 
                    152:    HHiissttoorryy SSttoorraaggee
                    153:        The  history  list  is an array of history entries.  A history entry is
                    154:        declared as follows:
                    155: 
                    156:        _t_y_p_e_d_e_f _v_o_i_d _* hhiissttddaattaa__tt;;
                    157: 
                    158:        typedef struct _hist_entry {
                    159:          char *line;
                    160:          char *timestamp;
                    161:          histdata_t data;
                    162:        } HIST_ENTRY;
                    163: 
                    164:        The history list itself might therefore be declared as
                    165: 
                    166:        _H_I_S_T___E_N_T_R_Y _*_* tthhee__hhiissttoorryy__lliisstt;;
                    167: 
                    168:        The state of the History library is encapsulated into a  single  struc-
                    169:        ture:
                    170: 
                    171:        /*
                    172:         * A structure used to pass around the current state of the history.
                    173:         */
                    174:        typedef struct _hist_state {
                    175:          HIST_ENTRY **entries; /* Pointer to the entries themselves. */
                    176:          int offset;           /* The location pointer within this array. */
                    177:          int length;           /* Number of elements within this array. */
                    178:          int size;             /* Number of slots allocated to this array. */
                    179:          int flags;
                    180:        } HISTORY_STATE;
                    181: 
                    182:        If  the flags member includes HHSS__SSTTIIFFLLEEDD, the history has been stifled.
                    183: 
                    184: HHiissttoorryy FFuunnccttiioonnss
                    185:        This section describes the calling sequence for the  various  functions
                    186:        exported by the GNU History library.
                    187: 
                    188:    IInniittiiaalliizziinngg HHiissttoorryy aanndd SSttaattee MMaannaaggeemmeenntt
                    189:        This  section  describes  functions  used  to initialize and manage the
                    190:        state of the History library when you want to use the history functions
                    191:        in your program.
                    192: 
                    193:        _v_o_i_d uussiinngg__hhiissttoorryy (_v_o_i_d)
                    194:        Begin  a  session  in  which the history functions might be used.  This
                    195:        initializes the interactive variables.
                    196: 
                    197:        _H_I_S_T_O_R_Y___S_T_A_T_E _* hhiissttoorryy__ggeett__hhiissttoorryy__ssttaattee (_v_o_i_d)
                    198:        Return a structure describing the current state of the input history.
                    199: 
                    200:        _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)
                    201:        Set the state of the history list according to _s_t_a_t_e.
                    202: 
                    203: 
                    204:    HHiissttoorryy LLiisstt MMaannaaggeemmeenntt
                    205:        These functions manage individual entries on the history list,  or  set
                    206:        parameters managing the list itself.
                    207: 
                    208:        _v_o_i_d aadddd__hhiissttoorryy (_c_o_n_s_t _c_h_a_r _*_s_t_r_i_n_g)
                    209:        Place _s_t_r_i_n_g at the end of the history list.  The associated data field
                    210:        (if any) is set to NNUULLLL.
                    211: 
                    212:        _v_o_i_d aadddd__hhiissttoorryy__ttiimmee (_c_o_n_s_t _c_h_a_r _*_s_t_r_i_n_g)
                    213:        Change the time stamp associated with the most recent history entry  to
                    214:        _s_t_r_i_n_g.
                    215: 
                    216:        _H_I_S_T___E_N_T_R_Y _* rreemmoovvee__hhiissttoorryy (_i_n_t _w_h_i_c_h)
                    217:        Remove  history  entry  at  offset _w_h_i_c_h from the history.  The removed
                    218:        element is returned so you can free  the  line,  data,  and  containing
                    219:        structure.
                    220: 
                    221:        _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)
                    222:        Free  the  history  entry  _h_i_s_t_e_n_t and any history library private data
                    223:        associated with it.   Returns  the  application-specific  data  so  the
                    224:        caller can dispose of it.
                    225: 
                    226:        _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_-
                    227:        _d_a_t_a___t _d_a_t_a)
                    228:        Make the history entry at  offset  _w_h_i_c_h  have  _l_i_n_e  and  _d_a_t_a.   This
                    229:        returns the old entry so the caller can dispose of any application-spe-
                    230:        cific data.  In the case  of  an  invalid  _w_h_i_c_h,  a  NNUULLLL  pointer  is
                    231:        returned.
                    232: 
                    233:        _v_o_i_d cclleeaarr__hhiissttoorryy (_v_o_i_d)
                    234:        Clear the history list by deleting all the entries.
                    235: 
                    236:        _v_o_i_d ssttiiffllee__hhiissttoorryy (_i_n_t _m_a_x)
                    237:        Stifle the history list, remembering only the last _m_a_x entries.
                    238: 
                    239:        _i_n_t uunnssttiiffllee__hhiissttoorryy (_v_o_i_d)
                    240:        Stop  stifling  the  history.   This returns the previously-set maximum
                    241:        number of history entries (as set by  ssttiiffllee__hhiissttoorryy(())).   history  was
                    242:        stifled.  The value is positive if the history was stifled, negative if
                    243:        it wasn't.
                    244: 
                    245:        _i_n_t hhiissttoorryy__iiss__ssttiifflleedd (_v_o_i_d)
                    246:        Returns non-zero if the history is stifled, zero if it is not.
                    247: 
                    248: 
                    249:    IInnffoorrmmaattiioonn AAbboouutt tthhee HHiissttoorryy LLiisstt
                    250:        These functions return information about the  entire  history  list  or
                    251:        individual list entries.
                    252: 
                    253:        _H_I_S_T___E_N_T_R_Y _*_* hhiissttoorryy__lliisstt (_v_o_i_d)
                    254:        Return  a  NNUULLLL  terminated  array of _H_I_S_T___E_N_T_R_Y _* which is the current
                    255:        input history.  Element 0 of this list is the beginning  of  time.   If
                    256:        there is no history, return NNUULLLL.
                    257: 
                    258:        _i_n_t wwhheerree__hhiissttoorryy (_v_o_i_d)
                    259:        Returns the offset of the current history element.
                    260: 
                    261:        _H_I_S_T___E_N_T_R_Y _* ccuurrrreenntt__hhiissttoorryy (_v_o_i_d)
                    262:        Return  the  history  entry  at  the current position, as determined by
                    263:        wwhheerree__hhiissttoorryy(()).  If there is no entry there, return a NNUULLLL pointer.
                    264: 
                    265:        _H_I_S_T___E_N_T_R_Y _* hhiissttoorryy__ggeett (_i_n_t _o_f_f_s_e_t)
                    266:        Return the  history  entry  at  position  _o_f_f_s_e_t,  starting  from  hhiiss--
                    267:        ttoorryy__bbaassee.   If  there  is no entry there, or if _o_f_f_s_e_t is greater than
                    268:        the history length, return a NNUULLLL pointer.
                    269: 
                    270:        _t_i_m_e___t hhiissttoorryy__ggeett__ttiimmee (_H_I_S_T___E_N_T_R_Y _*)
                    271:        Return the time stamp associated with the history entry passed  as  the
                    272:        argument.
                    273: 
                    274:        _i_n_t hhiissttoorryy__ttoottaall__bbyytteess (_v_o_i_d)
                    275:        Return  the number of bytes that the primary history entries are using.
                    276:        This function returns the sum of the lengths of all the  lines  in  the
                    277:        history.
                    278: 
                    279: 
                    280:    MMoovviinngg AArroouunndd tthhee HHiissttoorryy LLiisstt
                    281:        These functions allow the current index into the history list to be set
                    282:        or changed.
                    283: 
                    284:        _i_n_t hhiissttoorryy__sseett__ppooss (_i_n_t _p_o_s)
                    285:        Set the current history offset to _p_o_s, an absolute index into the list.
                    286:        Returns  1  on  success, 0 if _p_o_s is less than zero or greater than the
                    287:        number of history entries.
                    288: 
                    289:        _H_I_S_T___E_N_T_R_Y _* pprreevviioouuss__hhiissttoorryy (_v_o_i_d)
                    290:        Back up the current history offset to the previous history  entry,  and
                    291:        return  a pointer to that entry.  If there is no previous entry, return
                    292:        a NNUULLLL pointer.
                    293: 
                    294:        _H_I_S_T___E_N_T_R_Y _* nneexxtt__hhiissttoorryy (_v_o_i_d)
                    295:        Move the current history offset forward to the next history entry,  and
                    296:        return  the a pointer to that entry.  If there is no next entry, return
                    297:        a NNUULLLL pointer.
                    298: 
                    299: 
                    300:    SSeeaarrcchhiinngg tthhee HHiissttoorryy LLiisstt
                    301:        These functions allow searching of the history list  for  entries  con-
                    302:        taining a specific string.  Searching may be performed both forward and
                    303:        backward  from  the  current  history  position.   The  search  may  be
                    304:        _a_n_c_h_o_r_e_d,  meaning  that  the string must match at the beginning of the
                    305:        history entry.
                    306: 
                    307:        _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)
                    308:        Search the history for _s_t_r_i_n_g, starting at the current history  offset.
                    309:        If  _d_i_r_e_c_t_i_o_n  is  less  than  0,  then  the search is through previous
                    310:        entries, otherwise through subsequent entries.   If  _s_t_r_i_n_g  is  found,
                    311:        then  the  current  history index is set to that history entry, and the
                    312:        value returned is the offset in the line of the entry where _s_t_r_i_n_g  was
                    313:        found.  Otherwise, nothing is changed, and a -1 is returned.
                    314: 
                    315:        _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)
                    316:        Search  the history for _s_t_r_i_n_g, starting at the current history offset.
                    317:        The search is anchored: matching lines  must  begin  with  _s_t_r_i_n_g.   If
                    318:        _d_i_r_e_c_t_i_o_n  is less than 0, then the search is through previous entries,
                    319:        otherwise through subsequent entries.  If _s_t_r_i_n_g  is  found,  then  the
                    320:        current  history index is set to that entry, and the return value is 0.
                    321:        Otherwise, nothing is changed, and a -1 is returned.
                    322: 
                    323:        _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)
                    324:        Search for _s_t_r_i_n_g in the history list, starting  at  _p_o_s,  an  absolute
                    325:        index  into  the  list.   If _d_i_r_e_c_t_i_o_n is negative, the search proceeds
                    326:        backward from _p_o_s, otherwise forward.  Returns the  absolute  index  of
                    327:        the history element where _s_t_r_i_n_g was found, or -1 otherwise.
                    328: 
                    329: 
                    330:    MMaannaaggiinngg tthhee HHiissttoorryy FFiillee
                    331:        The  History  library can read the history from and write it to a file.
                    332:        This section documents the functions for managing a history file.
                    333: 
                    334:        _i_n_t rreeaadd__hhiissttoorryy (_c_o_n_s_t _c_h_a_r _*_f_i_l_e_n_a_m_e)
                    335:        Add the contents of _f_i_l_e_n_a_m_e to the history list, a line at a time.  If
                    336:        _f_i_l_e_n_a_m_e  is NNUULLLL, then read from _~_/_._h_i_s_t_o_r_y.  Returns 0 if successful,
                    337:        or eerrrrnnoo if not.
                    338: 
                    339:        _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)
                    340:        Read a range of lines from _f_i_l_e_n_a_m_e, adding them to the  history  list.
                    341:        Start  reading  at  line _f_r_o_m and end at _t_o.  If _f_r_o_m is zero, start at
                    342:        the beginning.  If _t_o is less than _f_r_o_m, then read until the end of the
                    343:        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
                    344:        successful, or eerrrrnnoo if not.
                    345: 
                    346:        _i_n_t wwrriittee__hhiissttoorryy (_c_o_n_s_t _c_h_a_r _*_f_i_l_e_n_a_m_e)
                    347:        Write the current history to _f_i_l_e_n_a_m_e, overwriting _f_i_l_e_n_a_m_e  if  neces-
                    348:        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.
                    349:        Returns 0 on success, or eerrrrnnoo on a read or write error.
                    350: 
                    351: 
                    352:        _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)
                    353:        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
                    354:        is  NNUULLLL, then append to _~_/_._h_i_s_t_o_r_y.  Returns 0 on success, or eerrrrnnoo on
                    355:        a read or write error.
                    356: 
                    357:        _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)
                    358:        Truncate the history file _f_i_l_e_n_a_m_e, leaving only the last _n_l_i_n_e_s lines.
                    359:        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-
                    360:        cess, or eerrrrnnoo on failure.
                    361: 
                    362: 
                    363:    HHiissttoorryy EExxppaannssiioonn
                    364:        These functions implement history expansion.
                    365: 
                    366:        _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)
                    367:        Expand _s_t_r_i_n_g, placing the result into _o_u_t_p_u_t, a pointer to  a  string.
                    368:        Returns:
                    369:               0      If  no  expansions  took place (or, if the only change in
                    370:                      the text was the removal of escape  characters  preceding
                    371:                      the history expansion character);
                    372:               1      if expansions did take place;
                    373:               -1     if there was an error in expansion;
                    374:               2      if  the  returned  line should be displayed, but not exe-
                    375:                      cuted, as with the ::pp modifier.
                    376:        If an error ocurred in expansion, then _o_u_t_p_u_t  contains  a  descriptive
                    377:        error message.
                    378: 
                    379:        _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)
                    380:        Returns  the  text  of the history event beginning at _s_t_r_i_n_g + _*_c_i_n_d_e_x.
                    381:        _*_c_i_n_d_e_x is modified to point to after the event specifier.  At function
                    382:        entry,  _c_i_n_d_e_x  points to the index into _s_t_r_i_n_g where the history event
                    383:        specification begins.  _q_c_h_a_r is a character that is allowed to end  the
                    384:        event  specification  in addition to the ``normal'' terminating charac-
                    385:        ters.
                    386: 
                    387:        _c_h_a_r _*_* hhiissttoorryy__ttookkeenniizzee (_c_o_n_s_t _c_h_a_r _*_s_t_r_i_n_g)
                    388:        Return an array of tokens parsed out  of  _s_t_r_i_n_g,  much  as  the  shell
                    389:        might.    The   tokens   are  split  on  the  characters  in  the  hhiiss--
                    390:        ttoorryy__wwoorrdd__ddeelliimmiitteerrss  variable,  and  shell  quoting  conventions   are
                    391:        obeyed.
                    392: 
                    393:        _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)
                    394:        Extract a string segment consisting of the _f_i_r_s_t through _l_a_s_t arguments
                    395:        present in _s_t_r_i_n_g.  Arguments are split using hhiissttoorryy__ttookkeenniizzee(()).
                    396: 
                    397: 
                    398:    HHiissttoorryy VVaarriiaabblleess
                    399:        This section describes the externally-visible variables exported by the
                    400:        GNU History Library.
                    401: 
                    402:        _i_n_t hhiissttoorryy__bbaassee
                    403:        The logical offset of the first entry in the history list.
                    404: 
                    405:        _i_n_t hhiissttoorryy__lleennggtthh
                    406:        The number of entries currently stored in the history list.
                    407: 
                    408:        _i_n_t hhiissttoorryy__mmaaxx__eennttrriieess
                    409:        The maximum number of history entries.  This must be changed using ssttii--
                    410:        ffllee__hhiissttoorryy(()).
                    411: 
                    412:        _i_n_t hhiissttoorryy__wwiittee__ttiimmeessttaammppss
                    413:        If non-zero, timestamps are written to the history file, so they can be
                    414:        preserved between sessions.  The default value is 0, meaning that time-
                    415:        stamps are not saved.  The current timestamp format uses the  value  of
                    416:        _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.
                    417:        If that variable does not have a value (the default),  timestamps  will
                    418:        not be written.
                    419: 
                    420:        _c_h_a_r hhiissttoorryy__eexxppaannssiioonn__cchhaarr
                    421:        The character that introduces a history event.  The default is !!.  Set-
                    422:        ting this to 0 inhibits history expansion.
                    423: 
                    424:        _c_h_a_r hhiissttoorryy__ssuubbsstt__cchhaarr
                    425:        The character that invokes word substitution if found at the start of a
                    426:        line.  The default is ^^.
                    427: 
                    428:        _c_h_a_r hhiissttoorryy__ccoommmmeenntt__cchhaarr
                    429:        During  tokenization,  if this character is seen as the first character
                    430:        of a word, then it and all subsequent characters up to  a  newline  are
                    431:        ignored,  suppressing  history expansion for the remainder of the line.
                    432:        This is disabled by default.
                    433: 
                    434:        _c_h_a_r _* hhiissttoorryy__wwoorrdd__ddeelliimmiitteerrss
                    435:        The  characters  that  separate  tokens  for  hhiissttoorryy__ttookkeenniizzee(()).   The
                    436:        default value is "" \\tt\\nn(())<<>>;;&&||"".
                    437: 
                    438:        _c_h_a_r _* hhiissttoorryy__nnoo__eexxppaanndd__cchhaarrss
                    439:        The list of characters which inhibit history expansion if found immedi-
                    440:        ately following hhiissttoorryy__eexxppaannssiioonn__cchhaarr.  The  default  is  space,  tab,
                    441:        newline, \\rr, and ==.
                    442: 
                    443:        _c_h_a_r _* hhiissttoorryy__sseeaarrcchh__ddeelliimmiitteerr__cchhaarrss
                    444:        The  list  of  additional characters which can delimit a history search
                    445:        string, in addition to space, tab, _: and _? in the case of  a  substring
                    446:        search.  The default is empty.
                    447: 
                    448:        _i_n_t hhiissttoorryy__qquuootteess__iinnhhiibbiitt__eexxppaannssiioonn
                    449:        If non-zero, single-quoted words are not scanned for the history expan-
                    450:        sion character.  The default value is 0.
                    451: 
                    452:        _r_l___l_i_n_e_b_u_f___f_u_n_c___t _* hhiissttoorryy__iinnhhiibbiitt__eexxppaannssiioonn__ffuunnccttiioonn
                    453:        This should be set to the address of a function that  takes  two  argu-
                    454:        ments:  a  cchhaarr  **  (_s_t_r_i_n_g) and an iinntt index into that string (_i).  It
                    455:        should return a non-zero value if the  history  expansion  starting  at
                    456:        _s_t_r_i_n_g_[_i_]  should  not  be  performed;  zero if the expansion should be
                    457:        done.  It is intended for use by applications like bbaasshh  that  use  the
                    458:        history  expansion character for additional purposes.  By default, this
                    459:        variable is set to NNUULLLL.
                    460: 
                    461: FFIILLEESS
                    462:        _~_/_._h_i_s_t_o_r_y
                    463:               Default filename for reading and writing saved history
                    464: 
                    465: SSEEEE AALLSSOO
                    466:        _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
                    467:        _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
                    468:        _b_a_s_h(1)
                    469:        _r_e_a_d_l_i_n_e(3)
                    470: 
                    471: AAUUTTHHOORRSS
                    472:        Brian Fox, Free Software Foundation
                    473:        bfox@gnu.org
                    474: 
                    475:        Chet Ramey, Case Western Reserve University
                    476:        chet.ramey@case.edu
                    477: 
                    478: BBUUGG RREEPPOORRTTSS
                    479:        If you find a bug in the hhiissttoorryy library, you should  report  it.   But
                    480:        first,  you  should  make  sure  that  it  really is a bug, and that it
                    481:        appears in the latest version of the hhiissttoorryy library that you have.
                    482: 
                    483:        Once you have determined that a bug actually exists, mail a bug  report
                    484:        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
                    485:        that as well!  Suggestions  and  `philosophical'  bug  reports  may  be
                    486:        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
                    487:        ggnnuu..bbaasshh..bbuugg.
                    488: 
                    489:        Comments and bug reports concerning this manual page should be directed
                    490:        to _c_h_e_t_._r_a_m_e_y_@_c_a_s_e_._e_d_u.
                    491: 
                    492: 
                    493: 
                    494: GNU History 6.3                  2013 June 27                       HISTORY(3)

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