File:  [ELWIX - Embedded LightWeight unIX -] / embedaddon / readline / doc / history.0
Revision 1.1.1.1 (vendor branch): download - view: text, annotated - select for diffs - revision graph
Wed Jul 30 08:16:46 2014 UTC (9 years, 11 months ago) by misho
Branches: readline, MAIN
CVS tags: v6_3p10_cross, v6_3p10, v6_3, p6, HEAD
readline 6.3

    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>