]> git.ipfire.org Git - thirdparty/binutils-gdb.git/blobdiff - readline/doc/history.0
This commit was generated by cvs2svn to track changes on a CVS vendor
[thirdparty/binutils-gdb.git] / readline / doc / history.0
diff --git a/readline/doc/history.0 b/readline/doc/history.0
new file mode 100644 (file)
index 0000000..324c363
--- /dev/null
@@ -0,0 +1,660 @@
+
+
+
+HISTORY(3)                                             HISTORY(3)
+
+
+N\bNA\bAM\bME\bE
+       history - GNU History Library
+
+C\bCO\bOP\bPY\bYR\bRI\bIG\bGH\bHT\bT
+       The  GNU History Library is Copyright (C) 1989-2002 by the
+       Free Software Foundation, Inc.
+
+D\bDE\bES\bSC\bCR\bRI\bIP\bPT\bTI\bIO\bON\bN
+       Many programs read input from the user a line at  a  time.
+       The  GNU  History  library  is able to keep track of those
+       lines, associate arbitrary data with each line,  and  uti-
+       lize  information  from  previous  lines  in composing new
+       ones.
+
+
+H\bHI\bIS\bST\bTO\bOR\bRY\bY E\bEX\bXP\bPA\bAN\bNS\bSI\bIO\bON\bN
+       The history library supports a history  expansion  feature
+       that  is identical to the history expansion in b\bba\bas\bsh\bh.\b.  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  cur-
+       rent  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 second is to select portions
+       of that line for inclusion into the current one.  The line
+       selected  from  the history is the _\be_\bv_\be_\bn_\bt, and the portions
+       of that line that are acted upon are _\bw_\bo_\br_\bd_\bs.  Various _\bm_\bo_\bd_\bi_\b-
+       _\bf_\bi_\be_\br_\bs are available to manipulate the selected words.  The
+       line is broken into words in the same fashion as b\bba\bas\bsh\bh does
+       when  reading input, so that several words that would oth-
+       erwise be separated are  considered  one  word  when  sur-
+       rounded  by  quotes  (see  the description of h\bhi\bis\bst\bto\bor\bry\by_\b_t\bto\bok\bk-\b-
+       e\ben\bni\biz\bze\be(\b()\b) below).  History expansions are introduced by  the
+       appearance  of the history expansion character, which is !\b!
+       by default.  Only backslash  (\\b\)  and  single  quotes  can
+       quote the history expansion character.
+
+   E\bEv\bve\ben\bnt\bt D\bDe\bes\bsi\big\bgn\bna\bat\bto\bor\brs\bs
+       An event designator is a reference to a command line entry
+       in the history list.
+
+       !\b!      Start a history substitution, except when  followed
+              by a b\bbl\bla\ban\bnk\bk, newline, = or (.
+       !\b!_\bn     Refer to command line _\bn.
+       !\b!-\b-_\bn    Refer to the current command line minus _\bn.
+       !\b!!\b!     Refer  to  the previous command.  This is a synonym
+              for `!-1'.
+
+
+
+
+GNU History 4.3          2002 January 31                        1
+
+
+
+
+
+HISTORY(3)                                             HISTORY(3)
+
+
+       !\b!_\bs_\bt_\br_\bi_\bn_\bg
+              Refer to the  most  recent  command  starting  with
+              _\bs_\bt_\br_\bi_\bn_\bg.
+       !\b!?\b?_\bs_\bt_\br_\bi_\bn_\bg[\b[?\b?]\b]
+              Refer to the most recent command containing _\bs_\bt_\br_\bi_\bn_\bg.
+              The trailing ?\b? may be omitted if _\bs_\bt_\br_\bi_\bn_\bg is followed
+              immediately by a newline.
+       ^\b^_\bs_\bt_\br_\bi_\bn_\bg_\b1^\b^_\bs_\bt_\br_\bi_\bn_\bg_\b2^\b^
+              Quick   substitution.   Repeat  the  last  command,
+              replacing  _\bs_\bt_\br_\bi_\bn_\bg_\b1  with  _\bs_\bt_\br_\bi_\bn_\bg_\b2.   Equivalent  to
+              ``!!:s/_\bs_\bt_\br_\bi_\bn_\bg_\b1/_\bs_\bt_\br_\bi_\bn_\bg_\b2/'' (see M\bMo\bod\bdi\bif\bfi\bie\ber\brs\bs below).
+       !\b!#\b#     The entire command line typed so far.
+
+   W\bWo\bor\brd\bd D\bDe\bes\bsi\big\bgn\bna\bat\bto\bor\brs\bs
+       Word designators are used to select desired words from the
+       event.  A :\b: separates the  event  specification  from  the
+       word designator.  It may be omitted if the word designator
+       begins with a ^\b^, $\b$, *\b*, -\b-, or %\b%.  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 separated by single spaces.
+
+       0\b0 (\b(z\bze\ber\bro\bo)\b)
+              The  zeroth  word.  For the shell, this is the com-
+              mand word.
+       _\bn      The _\bnth word.
+       ^\b^      The first argument.  That is, word 1.
+       $\b$      The last argument.
+       %\b%      The word matched  by  the  most  recent  `?_\bs_\bt_\br_\bi_\bn_\bg?'
+              search.
+       _\bx-\b-_\by    A range of words; `-_\by' abbreviates `0-_\by'.
+       *\b*      All of the words but the zeroth.  This is a synonym
+              for `_\b1_\b-_\b$'.  It is not an error to use *\b* if there is
+              just  one  word  in  the event; the empty string is
+              returned in that case.
+       x\bx*\b*     Abbreviates _\bx_\b-_\b$.
+       x\bx-\b-     Abbreviates _\bx_\b-_\b$ like x\bx*\b*, but omits the last word.
+
+       If a word designator is supplied without an event specifi-
+       cation, the previous command is used as the event.
+
+   M\bMo\bod\bdi\bif\bfi\bie\ber\brs\bs
+       After  the  optional  word  designator, there may appear a
+       sequence of one or more of the following  modifiers,  each
+       preceded by a `:'.
+
+       h\bh      Remove a trailing file name component, leaving only
+              the head.
+       t\bt      Remove all leading file  name  components,  leaving
+              the tail.
+       r\br      Remove  a trailing suffix of the form _\b._\bx_\bx_\bx, leaving
+              the basename.
+       e\be      Remove all but the trailing suffix.
+       p\bp      Print the new command but do not execute it.
+
+
+
+GNU History 4.3          2002 January 31                        2
+
+
+
+
+
+HISTORY(3)                                             HISTORY(3)
+
+
+       q\bq      Quote the substituted words, escaping further  sub-
+              stitutions.
+       x\bx      Quote  the  substituted  words as with q\bq, but break
+              into words at b\bbl\bla\ban\bnk\bks\bs and newlines.
+       s\bs/\b/_\bo_\bl_\bd/\b/_\bn_\be_\bw/\b/
+              Substitute _\bn_\be_\bw for the first occurrence of  _\bo_\bl_\bd  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 _\bo_\bl_\bd and _\bn_\be_\bw with  a  single  back-
+              slash.  If & appears in _\bn_\be_\bw, it is replaced by _\bo_\bl_\bd.
+              A single backslash will quote the  &.   If  _\bo_\bl_\bd  is
+              null, it is set to the last _\bo_\bl_\bd substituted, or, if
+              no previous history substitutions took  place,  the
+              last _\bs_\bt_\br_\bi_\bn_\bg in a !\b!?\b?_\bs_\bt_\br_\bi_\bn_\bg[\b[?\b?]\b]  search.
+       &\b&      Repeat the previous substitution.
+       g\bg      Cause  changes  to be applied over the entire event
+              line.  This is used in conjunction with `:\b:s\bs' (e.g.,
+              `:\b:g\bgs\bs/\b/_\bo_\bl_\bd/\b/_\bn_\be_\bw/\b/')  or  `:\b:&\b&'.   If used with `:\b:s\bs', any
+              delimiter can be used in place of /, and the  final
+              delimiter  is  optional if it is the last character
+              of the event line.
+
+P\bPR\bRO\bOG\bGR\bRA\bAM\bMM\bMI\bIN\bNG\bG W\bWI\bIT\bTH\bH H\bHI\bIS\bST\bTO\bOR\bRY\bY F\bFU\bUN\bNC\bCT\bTI\bIO\bON\bNS\bS
+       This section describes how to use the History  library  in
+       other programs.
+
+   I\bIn\bnt\btr\bro\bod\bdu\buc\bct\bti\bio\bon\bn t\bto\bo H\bHi\bis\bst\bto\bor\bry\by
+       The  programmer  using  the  History library has available
+       functions for remembering lines on a history list, associ-
+       ating  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 _\be_\bx_\bp_\ba_\bn_\bs_\bi_\bo_\bn  function
+       is  available  which provides for a consistent user inter-
+       face across different programs.
+
+       The user using programs written with the  History  library
+       has  the benefit of a consistent user interface with a set
+       of well-known commands for manipulating the text of previ-
+       ous  lines and using that text in new commands.  The basic
+       history manipulation commands are identical to the history
+       substitution provided by b\bba\bas\bsh\bh.
+
+       If  the  programmer  desires,  he  can  use  the  Readline
+       library,  which  includes  some  history  manipulation  by
+       default, and has the added advantage of command line edit-
+       ing.
+
+       Before declaring any functions using any functionality the
+       History  library  provides  in  other code, an application
+       writer should include the file _\b<_\br_\be_\ba_\bd_\bl_\bi_\bn_\be_\b/_\bh_\bi_\bs_\bt_\bo_\br_\by_\b._\bh_\b> in any
+       file  that  uses  the History library's features.  It sup-
+       plies extern declarations for all of the library's  public
+
+
+
+GNU History 4.3          2002 January 31                        3
+
+
+
+
+
+HISTORY(3)                                             HISTORY(3)
+
+
+       functions  and  variables,  and declares all of the public
+       data structures.
+
+
+   H\bHi\bis\bst\bto\bor\bry\by S\bSt\bto\bor\bra\bag\bge\be
+       The history list is an array of history entries.   A  his-
+       tory entry is declared as follows:
+
+       _\bt_\by_\bp_\be_\bd_\be_\bf _\bv_\bo_\bi_\bd _\b* h\bhi\bis\bst\btd\bda\bat\bta\ba_\b_t\bt;\b;
+
+       typedef struct _hist_entry {
+         char *line;
+         histdata_t data;
+       } HIST_ENTRY;
+
+       The history list itself might therefore be declared as
+
+       _\bH_\bI_\bS_\bT_\b__\bE_\bN_\bT_\bR_\bY _\b*_\b* t\bth\bhe\be_\b_h\bhi\bis\bst\bto\bor\bry\by_\b_l\bli\bis\bst\bt;\b;
+
+       The  state  of  the History library is encapsulated into a
+       single structure:
+
+       /*
+        * 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 H\bHS\bS_\b_S\bST\bTI\bIF\bFL\bLE\bED\bD, the  history  has
+       been stifled.
+
+H\bHi\bis\bst\bto\bor\bry\by F\bFu\bun\bnc\bct\bti\bio\bon\bns\bs
+       This  section describes the calling sequence for the vari-
+       ous functions exported by the GNU History library.
+
+   I\bIn\bni\bit\bti\bia\bal\bli\biz\bzi\bin\bng\bg H\bHi\bis\bst\bto\bor\bry\by a\ban\bnd\bd S\bSt\bta\bat\bte\be M\bMa\ban\bna\bag\bge\bem\bme\ben\bnt\bt
+       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.
+
+       _\bv_\bo_\bi_\bd u\bus\bsi\bin\bng\bg_\b_h\bhi\bis\bst\bto\bor\bry\by (_\bv_\bo_\bi_\bd)
+       Begin a session in which the history  functions  might  be
+       used.  This initializes the interactive variables.
+
+       _\bH_\bI_\bS_\bT_\bO_\bR_\bY_\b__\bS_\bT_\bA_\bT_\bE _\b* h\bhi\bis\bst\bto\bor\bry\by_\b_g\bge\bet\bt_\b_h\bhi\bis\bst\bto\bor\bry\by_\b_s\bst\bta\bat\bte\be (_\bv_\bo_\bi_\bd)
+       Return  a  structure  describing  the current state of the
+       input history.
+
+       _\bv_\bo_\bi_\bd h\bhi\bis\bst\bto\bor\bry\by_\b_s\bse\bet\bt_\b_h\bhi\bis\bst\bto\bor\bry\by_\b_s\bst\bta\bat\bte\be (_\bH_\bI_\bS_\bT_\bO_\bR_\bY_\b__\bS_\bT_\bA_\bT_\bE _\b*_\bs_\bt_\ba_\bt_\be)
+
+
+
+GNU History 4.3          2002 January 31                        4
+
+
+
+
+
+HISTORY(3)                                             HISTORY(3)
+
+
+       Set the state of the history list according to _\bs_\bt_\ba_\bt_\be.
+
+
+   H\bHi\bis\bst\bto\bor\bry\by L\bLi\bis\bst\bt M\bMa\ban\bna\bag\bge\bem\bme\ben\bnt\bt
+       These functions manage individual entries on  the  history
+       list, or set parameters managing the list itself.
+
+       _\bv_\bo_\bi_\bd a\bad\bdd\bd_\b_h\bhi\bis\bst\bto\bor\bry\by (_\bc_\bo_\bn_\bs_\bt _\bc_\bh_\ba_\br _\b*_\bs_\bt_\br_\bi_\bn_\bg)
+       Place  _\bs_\bt_\br_\bi_\bn_\bg at the end of the history list.  The associ-
+       ated data field (if any) is set to N\bNU\bUL\bLL\bL.
+
+       _\bH_\bI_\bS_\bT_\b__\bE_\bN_\bT_\bR_\bY _\b* r\bre\bem\bmo\bov\bve\be_\b_h\bhi\bis\bst\bto\bor\bry\by (_\bi_\bn_\bt _\bw_\bh_\bi_\bc_\bh)
+       Remove history entry at offset  _\bw_\bh_\bi_\bc_\bh  from  the  history.
+       The  removed element is returned so you can free the line,
+       data, and containing structure.
+
+       _\bH_\bI_\bS_\bT_\b__\bE_\bN_\bT_\bR_\bY _\b* r\bre\bep\bpl\bla\bac\bce\be_\b_h\bhi\bis\bst\bto\bor\bry\by_\b_e\ben\bnt\btr\bry\by (_\bi_\bn_\bt _\bw_\bh_\bi_\bc_\bh_\b, _\bc_\bo_\bn_\bs_\bt  _\bc_\bh_\ba_\br
+       _\b*_\bl_\bi_\bn_\be_\b, _\bh_\bi_\bs_\bt_\bd_\ba_\bt_\ba_\b__\bt _\bd_\ba_\bt_\ba)
+       Make the history entry at offset _\bw_\bh_\bi_\bc_\bh have _\bl_\bi_\bn_\be and _\bd_\ba_\bt_\ba.
+       This returns the old entry so you can dispose of the data.
+       In  the  case  of  an  invalid  _\bw_\bh_\bi_\bc_\bh,  a  N\bNU\bUL\bLL\bL pointer is
+       returned.
+
+       _\bv_\bo_\bi_\bd c\bcl\ble\bea\bar\br_\b_h\bhi\bis\bst\bto\bor\bry\by (_\bv_\bo_\bi_\bd)
+       Clear the history list by deleting all the entries.
+
+       _\bv_\bo_\bi_\bd s\bst\bti\bif\bfl\ble\be_\b_h\bhi\bis\bst\bto\bor\bry\by (_\bi_\bn_\bt _\bm_\ba_\bx)
+       Stifle the history list, remembering  only  the  last  _\bm_\ba_\bx
+       entries.
+
+       _\bi_\bn_\bt u\bun\bns\bst\bti\bif\bfl\ble\be_\b_h\bhi\bis\bst\bto\bor\bry\by (_\bv_\bo_\bi_\bd)
+       Stop  stifling  the history.  This returns the previously-
+       set maximum number of history  entries  (as  set  by  s\bst\bti\bi-\b-
+       f\bfl\ble\be_\b_h\bhi\bis\bst\bto\bor\bry\by(\b()\b)).   history was stifled.  The value is posi-
+       tive if the history was stifled, negative if it wasn't.
+
+       _\bi_\bn_\bt h\bhi\bis\bst\bto\bor\bry\by_\b_i\bis\bs_\b_s\bst\bti\bif\bfl\ble\bed\bd (_\bv_\bo_\bi_\bd)
+       Returns non-zero if the history is stifled, zero if it  is
+       not.
+
+
+   I\bIn\bnf\bfo\bor\brm\bma\bat\bti\bio\bon\bn A\bAb\bbo\bou\but\bt t\bth\bhe\be H\bHi\bis\bst\bto\bor\bry\by L\bLi\bis\bst\bt
+       These  functions  return information about the entire his-
+       tory list or individual list entries.
+
+       _\bH_\bI_\bS_\bT_\b__\bE_\bN_\bT_\bR_\bY _\b*_\b* h\bhi\bis\bst\bto\bor\bry\by_\b_l\bli\bis\bst\bt (_\bv_\bo_\bi_\bd)
+       Return a N\bNU\bUL\bLL\bL terminated array of _\bH_\bI_\bS_\bT_\b__\bE_\bN_\bT_\bR_\bY  _\b*  which  is
+       the  current input history.  Element 0 of this list is the
+       beginning of time.  If there is no history, return N\bNU\bUL\bLL\bL.
+
+       _\bi_\bn_\bt w\bwh\bhe\ber\bre\be_\b_h\bhi\bis\bst\bto\bor\bry\by (_\bv_\bo_\bi_\bd)
+       Returns the offset of the current history element.
+
+       _\bH_\bI_\bS_\bT_\b__\bE_\bN_\bT_\bR_\bY _\b* c\bcu\bur\brr\bre\ben\bnt\bt_\b_h\bhi\bis\bst\bto\bor\bry\by (_\bv_\bo_\bi_\bd)
+
+
+
+GNU History 4.3          2002 January 31                        5
+
+
+
+
+
+HISTORY(3)                                             HISTORY(3)
+
+
+       Return the history  entry  at  the  current  position,  as
+       determined  by  w\bwh\bhe\ber\bre\be_\b_h\bhi\bis\bst\bto\bor\bry\by(\b()\b).   If  there  is  no entry
+       there, return a N\bNU\bUL\bLL\bL pointer.
+
+       _\bH_\bI_\bS_\bT_\b__\bE_\bN_\bT_\bR_\bY _\b* h\bhi\bis\bst\bto\bor\bry\by_\b_g\bge\bet\bt (_\bi_\bn_\bt _\bo_\bf_\bf_\bs_\be_\bt)
+       Return the history entry at position _\bo_\bf_\bf_\bs_\be_\bt, starting from
+       h\bhi\bis\bst\bto\bor\bry\by_\b_b\bba\bas\bse\be.  If there is no entry there, or if _\bo_\bf_\bf_\bs_\be_\bt is
+       greater than the history length, return a N\bNU\bUL\bLL\bL pointer.
+
+       _\bi_\bn_\bt h\bhi\bis\bst\bto\bor\bry\by_\b_t\bto\bot\bta\bal\bl_\b_b\bby\byt\bte\bes\bs (_\bv_\bo_\bi_\bd)
+       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.
+
+
+   M\bMo\bov\bvi\bin\bng\bg A\bAr\bro\bou\bun\bnd\bd t\bth\bhe\be H\bHi\bis\bst\bto\bor\bry\by L\bLi\bis\bst\bt
+       These functions allow the current index into  the  history
+       list to be set or changed.
+
+       _\bi_\bn_\bt h\bhi\bis\bst\bto\bor\bry\by_\b_s\bse\bet\bt_\b_p\bpo\bos\bs (_\bi_\bn_\bt _\bp_\bo_\bs)
+       Set  the  current history offset to _\bp_\bo_\bs, an absolute index
+       into the list.  Returns 1 on success, 0  if  _\bp_\bo_\bs  is  less
+       than zero or greater than the number of history entries.
+
+       _\bH_\bI_\bS_\bT_\b__\bE_\bN_\bT_\bR_\bY _\b* p\bpr\bre\bev\bvi\bio\bou\bus\bs_\b_h\bhi\bis\bst\bto\bor\bry\by (_\bv_\bo_\bi_\bd)
+       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 N\bNU\bUL\bLL\bL pointer.
+
+       _\bH_\bI_\bS_\bT_\b__\bE_\bN_\bT_\bR_\bY _\b* n\bne\bex\bxt\bt_\b_h\bhi\bis\bst\bto\bor\bry\by (_\bv_\bo_\bi_\bd)
+       Move  the  current history offset forward to the next his-
+       tory entry, and return the a pointer to  that  entry.   If
+       there is no next entry, return a N\bNU\bUL\bLL\bL pointer.
+
+
+   S\bSe\bea\bar\brc\bch\bhi\bin\bng\bg t\bth\bhe\be H\bHi\bis\bst\bto\bor\bry\by L\bLi\bis\bst\bt
+       These  functions  allow  searching of the history list for
+       entries containing a specific string.   Searching  may  be
+       performed  both forward and backward from the current his-
+       tory position.  The search may be _\ba_\bn_\bc_\bh_\bo_\br_\be_\bd,  meaning  that
+       the  string  must  match  at  the beginning of the history
+       entry.
+
+       _\bi_\bn_\bt h\bhi\bis\bst\bto\bor\bry\by_\b_s\bse\bea\bar\brc\bch\bh (_\bc_\bo_\bn_\bs_\bt _\bc_\bh_\ba_\br _\b*_\bs_\bt_\br_\bi_\bn_\bg_\b, _\bi_\bn_\bt _\bd_\bi_\br_\be_\bc_\bt_\bi_\bo_\bn)
+       Search the history for _\bs_\bt_\br_\bi_\bn_\bg,  starting  at  the  current
+       history  offset.   If  _\bd_\bi_\br_\be_\bc_\bt_\bi_\bo_\bn  is less than 0, then the
+       search is through previous entries, otherwise through sub-
+       sequent  entries.   If  _\bs_\bt_\br_\bi_\bn_\bg  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
+       _\bs_\bt_\br_\bi_\bn_\bg was found.  Otherwise, nothing is changed, and a -1
+       is returned.
+
+       _\bi_\bn_\bt   h\bhi\bis\bst\bto\bor\bry\by_\b_s\bse\bea\bar\brc\bch\bh_\b_p\bpr\bre\bef\bfi\bix\bx   (_\bc_\bo_\bn_\bs_\bt   _\bc_\bh_\ba_\br  _\b*_\bs_\bt_\br_\bi_\bn_\bg_\b,  _\bi_\bn_\bt
+
+
+
+GNU History 4.3          2002 January 31                        6
+
+
+
+
+
+HISTORY(3)                                             HISTORY(3)
+
+
+       _\bd_\bi_\br_\be_\bc_\bt_\bi_\bo_\bn)
+       Search the history for _\bs_\bt_\br_\bi_\bn_\bg,  starting  at  the  current
+       history  offset.   The  search is anchored: matching lines
+       must begin with _\bs_\bt_\br_\bi_\bn_\bg.  If _\bd_\bi_\br_\be_\bc_\bt_\bi_\bo_\bn is less than 0, then
+       the  search is through previous entries, otherwise through
+       subsequent entries.  If _\bs_\bt_\br_\bi_\bn_\bg 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.
+
+       _\bi_\bn_\bt h\bhi\bis\bst\bto\bor\bry\by_\b_s\bse\bea\bar\brc\bch\bh_\b_p\bpo\bos\bs (_\bc_\bo_\bn_\bs_\bt _\bc_\bh_\ba_\br _\b*_\bs_\bt_\br_\bi_\bn_\bg_\b, _\bi_\bn_\bt _\bd_\bi_\br_\be_\bc_\bt_\bi_\bo_\bn_\b,
+       _\bi_\bn_\bt _\bp_\bo_\bs)
+       Search for _\bs_\bt_\br_\bi_\bn_\bg in the history list, starting at _\bp_\bo_\bs, an
+       absolute  index  into the list.  If _\bd_\bi_\br_\be_\bc_\bt_\bi_\bo_\bn is negative,
+       the search proceeds backward from _\bp_\bo_\bs, otherwise  forward.
+       Returns  the  absolute  index of the history element where
+       _\bs_\bt_\br_\bi_\bn_\bg was found, or -1 otherwise.
+
+
+   M\bMa\ban\bna\bag\bgi\bin\bng\bg t\bth\bhe\be H\bHi\bis\bst\bto\bor\bry\by F\bFi\bil\ble\be
+       The History library can read the history from and write it
+       to  a file.  This section documents the functions for man-
+       aging a history file.
+
+       _\bi_\bn_\bt r\bre\bea\bad\bd_\b_h\bhi\bis\bst\bto\bor\bry\by (_\bc_\bo_\bn_\bs_\bt _\bc_\bh_\ba_\br _\b*_\bf_\bi_\bl_\be_\bn_\ba_\bm_\be)
+       Add the contents of _\bf_\bi_\bl_\be_\bn_\ba_\bm_\be to the history list,  a  line
+       at  a  time.   If _\bf_\bi_\bl_\be_\bn_\ba_\bm_\be is N\bNU\bUL\bLL\bL, then read from _\b~_\b/_\b._\bh_\bi_\bs_\b-
+       _\bt_\bo_\br_\by.  Returns 0 if successful, or e\ber\brr\brn\bno\bo if not.
+
+       _\bi_\bn_\bt r\bre\bea\bad\bd_\b_h\bhi\bis\bst\bto\bor\bry\by_\b_r\bra\ban\bng\bge\be (_\bc_\bo_\bn_\bs_\bt _\bc_\bh_\ba_\br  _\b*_\bf_\bi_\bl_\be_\bn_\ba_\bm_\be_\b,  _\bi_\bn_\bt  _\bf_\br_\bo_\bm_\b,
+       _\bi_\bn_\bt _\bt_\bo)
+       Read  a  range  of lines from _\bf_\bi_\bl_\be_\bn_\ba_\bm_\be, adding them to the
+       history list.  Start reading at line _\bf_\br_\bo_\bm and end  at  _\bt_\bo.
+       If  _\bf_\br_\bo_\bm  is  zero, start at the beginning.  If _\bt_\bo is less
+       than _\bf_\br_\bo_\bm, then read until the end of the file.  If  _\bf_\bi_\bl_\be_\b-
+       _\bn_\ba_\bm_\be  is  N\bNU\bUL\bLL\bL,  then  read from _\b~_\b/_\b._\bh_\bi_\bs_\bt_\bo_\br_\by.  Returns 0 if
+       successful, or e\ber\brr\brn\bno\bo if not.
+
+       _\bi_\bn_\bt w\bwr\bri\bit\bte\be_\b_h\bhi\bis\bst\bto\bor\bry\by (_\bc_\bo_\bn_\bs_\bt _\bc_\bh_\ba_\br _\b*_\bf_\bi_\bl_\be_\bn_\ba_\bm_\be)
+       Write the current history to _\bf_\bi_\bl_\be_\bn_\ba_\bm_\be,  overwriting  _\bf_\bi_\bl_\be_\b-
+       _\bn_\ba_\bm_\be  if  necessary.   If _\bf_\bi_\bl_\be_\bn_\ba_\bm_\be is N\bNU\bUL\bLL\bL, then write the
+       history list to _\b~_\b/_\b._\bh_\bi_\bs_\bt_\bo_\br_\by.   Returns  0  on  success,  or
+       e\ber\brr\brn\bno\bo on a read or write error.
+
+
+       _\bi_\bn_\bt a\bap\bpp\bpe\ben\bnd\bd_\b_h\bhi\bis\bst\bto\bor\bry\by (_\bi_\bn_\bt _\bn_\be_\bl_\be_\bm_\be_\bn_\bt_\bs_\b, _\bc_\bo_\bn_\bs_\bt _\bc_\bh_\ba_\br _\b*_\bf_\bi_\bl_\be_\bn_\ba_\bm_\be)
+       Append the last _\bn_\be_\bl_\be_\bm_\be_\bn_\bt_\bs of the history list to _\bf_\bi_\bl_\be_\bn_\ba_\bm_\be.
+       If _\bf_\bi_\bl_\be_\bn_\ba_\bm_\be is N\bNU\bUL\bLL\bL, then append to _\b~_\b/_\b._\bh_\bi_\bs_\bt_\bo_\br_\by.  Returns 0
+       on success, or e\ber\brr\brn\bno\bo on a read or write error.
+
+       _\bi_\bn_\bt   h\bhi\bis\bst\bto\bor\bry\by_\b_t\btr\bru\bun\bnc\bca\bat\bte\be_\b_f\bfi\bil\ble\be  (_\bc_\bo_\bn_\bs_\bt  _\bc_\bh_\ba_\br  _\b*_\bf_\bi_\bl_\be_\bn_\ba_\bm_\be_\b,  _\bi_\bn_\bt
+       _\bn_\bl_\bi_\bn_\be_\bs)
+       Truncate the history file _\bf_\bi_\bl_\be_\bn_\ba_\bm_\be, leaving only the  last
+       _\bn_\bl_\bi_\bn_\be_\bs  lines.   If  _\bf_\bi_\bl_\be_\bn_\ba_\bm_\be  is N\bNU\bUL\bLL\bL, then _\b~_\b/_\b._\bh_\bi_\bs_\bt_\bo_\br_\by is
+
+
+
+GNU History 4.3          2002 January 31                        7
+
+
+
+
+
+HISTORY(3)                                             HISTORY(3)
+
+
+       truncated.  Returns 0 on success, or e\ber\brr\brn\bno\bo on failure.
+
+
+   H\bHi\bis\bst\bto\bor\bry\by E\bEx\bxp\bpa\ban\bns\bsi\bio\bon\bn
+       These functions implement history expansion.
+
+       _\bi_\bn_\bt h\bhi\bis\bst\bto\bor\bry\by_\b_e\bex\bxp\bpa\ban\bnd\bd (_\bc_\bh_\ba_\br _\b*_\bs_\bt_\br_\bi_\bn_\bg_\b, _\bc_\bh_\ba_\br _\b*_\b*_\bo_\bu_\bt_\bp_\bu_\bt)
+       Expand _\bs_\bt_\br_\bi_\bn_\bg, placing the result into _\bo_\bu_\bt_\bp_\bu_\bt,  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 executed, as with the :\b:p\bp modifier.
+       If  an  error ocurred in expansion, then _\bo_\bu_\bt_\bp_\bu_\bt contains a
+       descriptive error message.
+
+       _\bc_\bh_\ba_\br _\b* g\bge\bet\bt_\b_h\bhi\bis\bst\bto\bor\bry\by_\b_e\bev\bve\ben\bnt\bt (_\bc_\bo_\bn_\bs_\bt _\bc_\bh_\ba_\br _\b*_\bs_\bt_\br_\bi_\bn_\bg_\b, _\bi_\bn_\bt _\b*_\bc_\bi_\bn_\bd_\be_\bx_\b,
+       _\bi_\bn_\bt _\bq_\bc_\bh_\ba_\br)
+       Returns  the text of the history event beginning at _\bs_\bt_\br_\bi_\bn_\bg
+       + _\b*_\bc_\bi_\bn_\bd_\be_\bx.  _\b*_\bc_\bi_\bn_\bd_\be_\bx is modified  to  point  to  after  the
+       event  specifier.  At function entry, _\bc_\bi_\bn_\bd_\be_\bx points to the
+       index into _\bs_\bt_\br_\bi_\bn_\bg where the  history  event  specification
+       begins.   _\bq_\bc_\bh_\ba_\br  is a character that is allowed to end the
+       event specification in addition to the  ``normal''  termi-
+       nating characters.
+
+       _\bc_\bh_\ba_\br _\b*_\b* h\bhi\bis\bst\bto\bor\bry\by_\b_t\bto\bok\bke\ben\bni\biz\bze\be (_\bc_\bo_\bn_\bs_\bt _\bc_\bh_\ba_\br _\b*_\bs_\bt_\br_\bi_\bn_\bg)
+       Return  an  array  of tokens parsed out of _\bs_\bt_\br_\bi_\bn_\bg, much as
+       the shell might.  The tokens are split on  the  characters
+       in the h\bhi\bis\bst\bto\bor\bry\by_\b_w\bwo\bor\brd\bd_\b_d\bde\bel\bli\bim\bmi\bit\bte\ber\brs\bs variable, and shell quoting
+       conventions are obeyed.
+
+       _\bc_\bh_\ba_\br _\b* h\bhi\bis\bst\bto\bor\bry\by_\b_a\bar\brg\bg_\b_e\bex\bxt\btr\bra\bac\bct\bt (_\bi_\bn_\bt  _\bf_\bi_\br_\bs_\bt_\b,  _\bi_\bn_\bt  _\bl_\ba_\bs_\bt_\b,  _\bc_\bo_\bn_\bs_\bt
+       _\bc_\bh_\ba_\br _\b*_\bs_\bt_\br_\bi_\bn_\bg)
+       Extract  a  string segment consisting of the _\bf_\bi_\br_\bs_\bt through
+       _\bl_\ba_\bs_\bt arguments present in  _\bs_\bt_\br_\bi_\bn_\bg.   Arguments  are  split
+       using h\bhi\bis\bst\bto\bor\bry\by_\b_t\bto\bok\bke\ben\bni\biz\bze\be(\b()\b).
+
+
+   H\bHi\bis\bst\bto\bor\bry\by V\bVa\bar\bri\bia\bab\bbl\ble\bes\bs
+       This  section  describes  the externally-visible variables
+       exported by the GNU History Library.
+
+       _\bi_\bn_\bt h\bhi\bis\bst\bto\bor\bry\by_\b_b\bba\bas\bse\be
+       The logical offset of the first entry in the history list.
+
+       _\bi_\bn_\bt h\bhi\bis\bst\bto\bor\bry\by_\b_l\ble\ben\bng\bgt\bth\bh
+       The  number  of  entries  currently  stored in the history
+       list.
+
+
+
+
+GNU History 4.3          2002 January 31                        8
+
+
+
+
+
+HISTORY(3)                                             HISTORY(3)
+
+
+       _\bi_\bn_\bt h\bhi\bis\bst\bto\bor\bry\by_\b_m\bma\bax\bx_\b_e\ben\bnt\btr\bri\bie\bes\bs
+       The maximum number  of  history  entries.   This  must  be
+       changed using s\bst\bti\bif\bfl\ble\be_\b_h\bhi\bis\bst\bto\bor\bry\by(\b()\b).
+
+       _\bc_\bh_\ba_\br h\bhi\bis\bst\bto\bor\bry\by_\b_e\bex\bxp\bpa\ban\bns\bsi\bio\bon\bn_\b_c\bch\bha\bar\br
+       The  character  that  introduces  a  history  event.   The
+       default is !\b!.  Setting this to 0 inhibits  history  expan-
+       sion.
+
+       _\bc_\bh_\ba_\br h\bhi\bis\bst\bto\bor\bry\by_\b_s\bsu\bub\bbs\bst\bt_\b_c\bch\bha\bar\br
+       The  character  that invokes word substitution if found at
+       the start of a line.  The default is ^\b^.
+
+       _\bc_\bh_\ba_\br h\bhi\bis\bst\bto\bor\bry\by_\b_c\bco\bom\bmm\bme\ben\bnt\bt_\b_c\bch\bha\bar\br
+       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  his-
+       tory  expansion  for  the  remainder of the line.  This is
+       disabled by default.
+
+       _\bc_\bh_\ba_\br _\b* h\bhi\bis\bst\bto\bor\bry\by_\b_w\bwo\bor\brd\bd_\b_d\bde\bel\bli\bim\bmi\bit\bte\ber\brs\bs
+       The  characters  that  separate  tokens  for  h\bhi\bis\bst\bto\bor\bry\by_\b_t\bto\bok\bk-\b-
+       e\ben\bni\biz\bze\be(\b()\b).  The default value is "\b" \\b\t\bt\\b\n\bn(\b()\b)<\b<>\b>;\b;&\b&|\b|"\b".
+
+       _\bc_\bh_\ba_\br _\b* h\bhi\bis\bst\bto\bor\bry\by_\b_n\bno\bo_\b_e\bex\bxp\bpa\ban\bnd\bd_\b_c\bch\bha\bar\brs\bs
+       The  list of characters which inhibit history expansion if
+       found immediately following  h\bhi\bis\bst\bto\bor\bry\by_\b_e\bex\bxp\bpa\ban\bns\bsi\bio\bon\bn_\b_c\bch\bha\bar\br.   The
+       default is space, tab, newline, \\b\r\br, and =\b=.
+
+       _\bc_\bh_\ba_\br _\b* h\bhi\bis\bst\bto\bor\bry\by_\b_s\bse\bea\bar\brc\bch\bh_\b_d\bde\bel\bli\bim\bmi\bit\bte\ber\br_\b_c\bch\bha\bar\brs\bs
+       The list of additional characters which can delimit a his-
+       tory search string, in addition to space, tab, _\b: and _\b?  in
+       the case of a substring search.  The default is empty.
+
+       _\bi_\bn_\bt h\bhi\bis\bst\bto\bor\bry\by_\b_q\bqu\buo\bot\bte\bes\bs_\b_i\bin\bnh\bhi\bib\bbi\bit\bt_\b_e\bex\bxp\bpa\ban\bns\bsi\bio\bon\bn
+       If  non-zero,  single-quoted words are not scanned for the
+       history expansion character.  The default value is 0.
+
+       _\br_\bl_\b__\bl_\bi_\bn_\be_\bb_\bu_\bf_\b__\bf_\bu_\bn_\bc_\b__\bt _\b* h\bhi\bis\bst\bto\bor\bry\by_\b_i\bin\bnh\bhi\bib\bbi\bit\bt_\b_e\bex\bxp\bpa\ban\bns\bsi\bio\bon\bn_\b_f\bfu\bun\bnc\bct\bti\bio\bon\bn
+       This should be set to the address of a function that takes
+       two  arguments:  a  c\bch\bha\bar\br  *\b* (_\bs_\bt_\br_\bi_\bn_\bg) and an i\bin\bnt\bt index into
+       that string (_\bi).  It should return a non-zero value if the
+       history expansion starting at _\bs_\bt_\br_\bi_\bn_\bg_\b[_\bi_\b] should not be per-
+       formed; zero if the  expansion  should  be  done.   It  is
+       intended  for  use  by applications like b\bba\bas\bsh\bh that use the
+       history expansion character for additional  purposes.   By
+       default, this variable is set to N\bNU\bUL\bLL\bL.
+
+F\bFI\bIL\bLE\bES\bS
+       _\b~_\b/_\b._\bh_\bi_\bs_\bt_\bo_\br_\by
+              Default filename for reading and writing saved his-
+              tory
+
+
+
+
+
+GNU History 4.3          2002 January 31                        9
+
+
+
+
+
+HISTORY(3)                                             HISTORY(3)
+
+
+S\bSE\bEE\bE A\bAL\bLS\bSO\bO
+       _\bT_\bh_\be _\bG_\bn_\bu _\bR_\be_\ba_\bd_\bl_\bi_\bn_\be _\bL_\bi_\bb_\br_\ba_\br_\by, Brian Fox and Chet Ramey
+       _\bT_\bh_\be _\bG_\bn_\bu _\bH_\bi_\bs_\bt_\bo_\br_\by _\bL_\bi_\bb_\br_\ba_\br_\by, Brian Fox and Chet Ramey
+       _\bb_\ba_\bs_\bh(1)
+       _\br_\be_\ba_\bd_\bl_\bi_\bn_\be(3)
+
+A\bAU\bUT\bTH\bHO\bOR\bRS\bS
+       Brian Fox, Free Software Foundation
+       bfox@gnu.org
+
+       Chet Ramey, Case Western Reserve University
+       chet@ins.CWRU.Edu
+
+B\bBU\bUG\bG R\bRE\bEP\bPO\bOR\bRT\bTS\bS
+       If you find a bug  in  the  h\bhi\bis\bst\bto\bor\bry\by  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
+       h\bhi\bis\bst\bto\bor\bry\by library that you have.
+
+       Once  you have determined that a bug actually exists, mail
+       a bug report to _\bb_\bu_\bg_\b-_\br_\be_\ba_\bd_\bl_\bi_\bn_\be@_\bg_\bn_\bu_\b._\bo_\br_\bg.  If you have a  fix,
+       you  are  welcome  to  mail that as well!  Suggestions and
+       `philosophical' bug reports may  be  mailed  to  _\bb_\bu_\bg_\b-_\br_\be_\ba_\bd_\b-
+       _\bl_\bi_\bn_\be@_\bg_\bn_\bu_\b._\bo_\br_\bg   or   posted   to   the   Usenet   newsgroup
+       g\bgn\bnu\bu.\b.b\bba\bas\bsh\bh.\b.b\bbu\bug\bg.
+
+       Comments and  bug  reports  concerning  this  manual  page
+       should be directed to _\bc_\bh_\be_\bt_\b@_\bi_\bn_\bs_\b._\bC_\bW_\bR_\bU_\b._\bE_\bd_\bu.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+GNU History 4.3          2002 January 31                       10
+
+