File:  [ELWIX - Embedded LightWeight unIX -] / embedaddon / readline / doc / history.3
Revision 1.1.1.2 (vendor branch): download - view: text, annotated - select for diffs - revision graph
Wed Mar 17 01:01:01 2021 UTC (3 years, 3 months ago) by misho
Branches: readline, MAIN
CVS tags: v8_2p0, v8_1p0, HEAD
readline 8.1

    1: .\"
    2: .\" MAN PAGE COMMENTS to
    3: .\"
    4: .\"	Chet Ramey
    5: .\"	Information Network Services
    6: .\"	Case Western Reserve University
    7: .\"	chet.ramey@case.edu
    8: .\"
    9: .\"	Last Change: Fri Jul 17 09:43:01 EDT 2020
   10: .\"
   11: .TH HISTORY 3 "2020 July 17" "GNU History 8.1"
   12: .\"
   13: .\" File Name macro.  This used to be `.PN', for Path Name,
   14: .\" but Sun doesn't seem to like that very much.
   15: .\"
   16: .de FN
   17: \fI\|\\$1\|\fP
   18: ..
   19: .ds lp \fR\|(\fP
   20: .ds rp \fR\|)\fP
   21: .\" FnN return-value fun-name N arguments
   22: .de Fn1
   23: \fI\\$1\fP \fB\\$2\fP \\*(lp\fI\\$3\fP\\*(rp
   24: .br
   25: ..
   26: .de Fn2
   27: .if t \fI\\$1\fP \fB\\$2\fP \\*(lp\fI\\$3,\|\\$4\fP\\*(rp
   28: .if n \fI\\$1\fP \fB\\$2\fP \\*(lp\fI\\$3, \\$4\fP\\*(rp
   29: .br
   30: ..
   31: .de Fn3
   32: .if t \fI\\$1\fP \fB\\$2\fP \\*(lp\fI\\$3,\|\\$4,\|\\$5\fP\|\\*(rp
   33: .if n \fI\\$1\fP \fB\\$2\fP \\*(lp\fI\\$3, \\$4, \\$5\fP\\*(rp
   34: .br
   35: ..
   36: .de Vb
   37: \fI\\$1\fP \fB\\$2\fP
   38: .br
   39: ..
   40: .SH NAME
   41: history \- GNU History Library
   42: .SH COPYRIGHT
   43: .if t The GNU History Library is Copyright \(co 1989-2020 by the Free Software Foundation, Inc.
   44: .if n The GNU History Library is Copyright (C) 1989-2020 by the Free Software Foundation, Inc.
   45: .SH DESCRIPTION
   46: Many programs read input from the user a line at a time.  The GNU
   47: History library is able to keep track of those lines, associate arbitrary
   48: data with each line, and utilize information from previous lines in
   49: composing new ones. 
   50: .PP
   51: .SH "HISTORY EXPANSION"
   52: The history library supports a history expansion feature that
   53: is identical to the history expansion in
   54: .BR bash.
   55: This section describes what syntax features are available.
   56: .PP
   57: History expansions introduce words from the history list into
   58: the input stream, making it easy to repeat commands, insert the
   59: arguments to a previous command into the current input line, or
   60: fix errors in previous commands quickly.
   61: .PP
   62: History expansion is usually performed immediately after a complete line
   63: is read.
   64: It takes place in two parts.
   65: The first is to determine which line from the history list
   66: to use during substitution.
   67: The second is to select portions of that line for inclusion into
   68: the current one.
   69: The line selected from the history is the \fIevent\fP,
   70: and the portions of that line that are acted upon are \fIwords\fP.
   71: Various \fImodifiers\fP are available to manipulate the selected words.
   72: The line is broken into words in the same fashion as \fBbash\fP
   73: does when reading input,
   74: so that several words that would otherwise be separated 
   75: are considered one word when surrounded by quotes (see the
   76: description of \fBhistory_tokenize()\fP below).
   77: History expansions are introduced by the appearance of the
   78: history expansion character, which is \^\fB!\fP\^ by default.
   79: Only backslash (\^\fB\e\fP\^) and single quotes can quote
   80: the history expansion character.
   81: .SS Event Designators
   82: An event designator is a reference to a command line entry in the
   83: history list.
   84: Unless the reference is absolute, events are relative to the current
   85: position in the history list.
   86: .PP
   87: .PD 0
   88: .TP
   89: .B !
   90: Start a history substitution, except when followed by a
   91: .BR blank ,
   92: newline, = or (.
   93: .TP
   94: .B !\fIn\fR
   95: Refer to command line
   96: .IR n .
   97: .TP
   98: .B !\-\fIn\fR
   99: Refer to the current command minus
  100: .IR n .
  101: .TP
  102: .B !!
  103: Refer to the previous command.  This is a synonym for `!\-1'.
  104: .TP
  105: .B !\fIstring\fR
  106: Refer to the most recent command
  107: preceding the current position in the history list
  108: starting with
  109: .IR string .
  110: .TP
  111: .B !?\fIstring\fR\fB[?]\fR
  112: Refer to the most recent command
  113: preceding the current position in the history list
  114: containing
  115: .IR string .
  116: The trailing \fB?\fP may be omitted if
  117: .I string
  118: is followed immediately by a newline.
  119: If \fIstring\fP is missing, the string from the most recent search is used;
  120: it is an error if there is no previous search string.
  121: .TP
  122: .B \d\s+2^\s-2\u\fIstring1\fP\d\s+2^\s-2\u\fIstring2\fP\d\s+2^\s-2\u
  123: Quick substitution.  Repeat the last command, replacing
  124: .I string1
  125: with
  126: .IR string2 .
  127: Equivalent to
  128: ``!!:s\d\s+2^\s-2\u\fIstring1\fP\d\s+2^\s-2\u\fIstring2\fP\d\s+2^\s-2\u''
  129: (see \fBModifiers\fP below).
  130: .TP
  131: .B !#
  132: The entire command line typed so far.
  133: .PD
  134: .SS Word Designators
  135: Word designators are used to select desired words from the event.
  136: A
  137: .B :
  138: separates the event specification from the word designator.
  139: It may be omitted if the word designator begins with a
  140: .BR ^ ,
  141: .BR $ ,
  142: .BR * ,
  143: .BR \- ,
  144: or
  145: .BR % .
  146: Words are numbered from the beginning of the line,
  147: with the first word being denoted by 0 (zero).
  148: Words are inserted into the current line separated by single spaces.
  149: .PP
  150: .PD 0
  151: .TP
  152: .B 0 (zero)
  153: The zeroth word.  For the shell, this is the command
  154: word.
  155: .TP
  156: .I n
  157: The \fIn\fRth word.
  158: .TP
  159: .B ^
  160: The first argument.  That is, word 1.
  161: .TP
  162: .B $
  163: The last word.  This is usually the last argument, but will expand to the
  164: zeroth word if there is only one word in the line.
  165: .TP
  166: .B %
  167: The first word matched by the most recent `?\fIstring\fR?' search,
  168: if the search string begins with a character that is part of a word.
  169: .TP
  170: .I x\fB\-\fPy
  171: A range of words; `\-\fIy\fR' abbreviates `0\-\fIy\fR'.
  172: .TP
  173: .B *
  174: All of the words but the zeroth.  This is a synonym
  175: for `\fI1\-$\fP'.  It is not an error to use
  176: .B *
  177: if there is just one
  178: word in the event; the empty string is returned in that case.
  179: .TP
  180: .B x*
  181: Abbreviates \fIx\-$\fP.
  182: .TP
  183: .B x\-
  184: Abbreviates \fIx\-$\fP like \fBx*\fP, but omits the last word.
  185: If \fBx\fP is missing, it defaults to 0.
  186: .PD
  187: .PP
  188: If a word designator is supplied without an event specification, the
  189: previous command is used as the event.
  190: .SS Modifiers
  191: After the optional word designator, there may appear a sequence of
  192: one or more of the following modifiers, each preceded by a `:'.
  193: These modify, or edit, the word or words selected from the history event.
  194: .PP
  195: .PD 0
  196: .PP
  197: .TP
  198: .B h
  199: Remove a trailing file name component, leaving only the head.
  200: .TP
  201: .B t
  202: Remove all leading file name components, leaving the tail.
  203: .TP
  204: .B r
  205: Remove a trailing suffix of the form \fI.xxx\fP, leaving the
  206: basename.
  207: .TP
  208: .B e
  209: Remove all but the trailing suffix.
  210: .TP
  211: .B p
  212: Print the new command but do not execute it.
  213: .TP
  214: .B q
  215: Quote the substituted words, escaping further substitutions.
  216: .TP
  217: .B x
  218: Quote the substituted words as with
  219: .BR q ,
  220: but break into words at
  221: .B blanks
  222: and newlines.
  223: The \fBq\fP and \fBx\fP modifiers are mutually exclusive; the last one
  224: supplied is used.
  225: .TP
  226: .B s/\fIold\fP/\fInew\fP/
  227: Substitute
  228: .I new
  229: for the first occurrence of
  230: .I old
  231: in the event line.
  232: Any character may be used as the delimiter in place of /.
  233: The final delimiter is optional if it is the last character of the
  234: event line.
  235: The delimiter may be quoted in
  236: .I old
  237: and
  238: .I new
  239: with a single backslash.  If & appears in
  240: .IR new ,
  241: it is replaced by
  242: .IR old .
  243: A single backslash will quote the &.
  244: If
  245: .I old
  246: is null, it is set to the last
  247: .I old
  248: substituted, or, if no previous history substitutions took place,
  249: the last
  250: .I string
  251: in a
  252: .B !?\fIstring\fR\fB[?]\fR
  253: search.
  254: If
  255: .I new
  256: is null, each matching
  257: .I old
  258: is deleted.
  259: .TP
  260: .B &
  261: Repeat the previous substitution.
  262: .TP
  263: .B g
  264: Cause changes to be applied over the entire event line.  This is
  265: used in conjunction with `\fB:s\fP' (e.g., `\fB:gs/\fIold\fP/\fInew\fP/\fR')
  266: or `\fB:&\fP'.  If used with
  267: `\fB:s\fP', any delimiter can be used
  268: in place of /, and the final delimiter is optional
  269: if it is the last character of the event line.
  270: An \fBa\fP may be used as a synonym for \fBg\fP.
  271: .TP
  272: .B G
  273: Apply the following `\fBs\fP' or `\fB&\fP' modifier once to each word
  274: in the event line.
  275: .PD
  276: .SH "PROGRAMMING WITH HISTORY FUNCTIONS"
  277: This section describes how to use the History library in other programs.
  278: .SS Introduction to History
  279: A programmer using the History library has available functions
  280: for remembering lines on a history list, associating arbitrary data
  281: with a line, removing lines from the list, searching through the list
  282: for a line containing an arbitrary text string, and referencing any line
  283: in the list directly.  In addition, a history \fIexpansion\fP function
  284: is available which provides for a consistent user interface across
  285: different programs.
  286: .PP
  287: The user using programs written with the History library has the
  288: benefit of a consistent user interface with a set of well-known
  289: commands for manipulating the text of previous lines and using that text
  290: in new commands.  The basic history manipulation commands are
  291: identical to
  292: the history substitution provided by \fBbash\fP.
  293: .PP
  294: The programmer can also use the Readline library, which
  295: includes some history manipulation by default, and has the added
  296: advantage of command line editing.
  297: .PP
  298: Before declaring any functions using any functionality the History
  299: library provides in other code, an application writer should include
  300: the file
  301: .FN <readline/history.h>
  302: in any file that uses the
  303: History library's features.  It supplies extern declarations for all
  304: of the library's public functions and variables, and declares all of
  305: the public data structures.
  306: .SS History Storage
  307: The history list is an array of history entries.  A history entry is
  308: declared as follows:
  309: .PP
  310: .Vb "typedef void *" histdata_t;
  311: .PP
  312: .nf
  313: typedef struct _hist_entry {
  314:   char *line;
  315:   char *timestamp;
  316:   histdata_t data;
  317: } HIST_ENTRY;
  318: .fi
  319: .PP
  320: The history list itself might therefore be declared as
  321: .PP
  322: .Vb "HIST_ENTRY **" the_history_list;
  323: .PP
  324: The state of the History library is encapsulated into a single structure:
  325: .PP
  326: .nf
  327: /*
  328:  * A structure used to pass around the current state of the history.
  329:  */
  330: typedef struct _hist_state {
  331:   HIST_ENTRY **entries; /* Pointer to the entries themselves. */
  332:   int offset;           /* The location pointer within this array. */
  333:   int length;           /* Number of elements within this array. */
  334:   int size;             /* Number of slots allocated to this array. */
  335:   int flags;
  336: } HISTORY_STATE;
  337: .fi
  338: .PP
  339: If the flags member includes \fBHS_STIFLED\fP, the history has been
  340: stifled.
  341: .SH "History Functions"
  342: This section describes the calling sequence for the various functions
  343: exported by the GNU History library.
  344: .SS Initializing History and State Management
  345: This section describes functions used to initialize and manage
  346: the state of the History library when you want to use the history
  347: functions in your program.
  348: 
  349: .Fn1 void using_history void
  350: Begin a session in which the history functions might be used.  This
  351: initializes the interactive variables.
  352: 
  353: .Fn1 "HISTORY_STATE *" history_get_history_state void
  354: Return a structure describing the current state of the input history.
  355: 
  356: .Fn1 void history_set_history_state "HISTORY_STATE *state"
  357: Set the state of the history list according to \fIstate\fP.
  358: 
  359: .SS History List Management
  360: These functions manage individual entries on the history list, or set
  361: parameters managing the list itself.
  362: 
  363: .Fn1 void add_history "const char *string"
  364: Place \fIstring\fP at the end of the history list.  The associated data
  365: field (if any) is set to \fBNULL\fP.
  366: If the maximum number of history entries has been set using
  367: \fBstifle_history()\fP, and the new number of history entries would exceed
  368: that maximum, the oldest history entry is removed.
  369: 
  370: .Fn1 void add_history_time "const char *string"
  371: Change the time stamp associated with the most recent history entry to
  372: \fIstring\fP.
  373: 
  374: .Fn1 "HIST_ENTRY *" remove_history "int which"
  375: Remove history entry at offset \fIwhich\fP from the history.  The
  376: removed element is returned so you can free the line, data,
  377: and containing structure.
  378: 
  379: .Fn1 "histdata_t" free_history_entry "HIST_ENTRY *histent"
  380: Free the history entry \fIhistent\fP and any history library private
  381: data associated with it.  Returns the application-specific data
  382: so the caller can dispose of it.
  383: 
  384: .Fn3 "HIST_ENTRY *" replace_history_entry "int which" "const char *line" "histdata_t data"
  385: Make the history entry at offset \fIwhich\fP have \fIline\fP and \fIdata\fP.
  386: This returns the old entry so the caller can dispose of any
  387: application-specific data.  In the case
  388: of an invalid \fIwhich\fP, a \fBNULL\fP pointer is returned.
  389: 
  390: .Fn1 void clear_history "void"
  391: Clear the history list by deleting all the entries.
  392: 
  393: .Fn1 void stifle_history "int max"
  394: Stifle the history list, remembering only the last \fImax\fP entries.
  395: The history list will contain only \fImax\fP entries at a time.
  396: 
  397: .Fn1 int unstifle_history "void"
  398: Stop stifling the history.  This returns the previously-set
  399: maximum number of history entries (as set by \fBstifle_history()\fP).
  400: history was stifled.  The value is positive if the history was
  401: stifled, negative if it wasn't.
  402: 
  403: .Fn1 int history_is_stifled "void"
  404: Returns non-zero if the history is stifled, zero if it is not.
  405: 
  406: .SS Information About the History List
  407: 
  408: These functions return information about the entire history list or
  409: individual list entries.
  410: 
  411: .Fn1 "HIST_ENTRY **" history_list "void"
  412: Return a \fBNULL\fP terminated array of \fIHIST_ENTRY *\fP which is the
  413: current input history.  Element 0 of this list is the beginning of time.
  414: If there is no history, return \fBNULL\fP.
  415: 
  416: .Fn1 int where_history "void"
  417: Returns the offset of the current history element.
  418: 
  419: .Fn1 "HIST_ENTRY *" current_history "void"
  420: Return the history entry at the current position, as determined by
  421: \fBwhere_history()\fP.  If there is no entry there, return a \fBNULL\fP
  422: pointer.
  423: 
  424: .Fn1 "HIST_ENTRY *" history_get "int offset"
  425: Return the history entry at position \fIoffset\fP.
  426: The range of valid values of \fIoffset\fP starts at \fBhistory_base\fP
  427: and ends at \fBhistory_length\fP \- 1.
  428: If there is no entry there, or if \fIoffset\fP is outside the valid
  429: range, return a \fBNULL\fP pointer.
  430: 
  431: .Fn1 "time_t" history_get_time "HIST_ENTRY *"
  432: Return the time stamp associated with the history entry passed as the argument.
  433: 
  434: .Fn1 int history_total_bytes "void"
  435: Return the number of bytes that the primary history entries are using.
  436: This function returns the sum of the lengths of all the lines in the
  437: history.
  438: 
  439: .SS Moving Around the History List
  440: 
  441: These functions allow the current index into the history list to be
  442: set or changed.
  443: 
  444: .Fn1 int history_set_pos "int pos"
  445: Set the current history offset to \fIpos\fP, an absolute index
  446: into the list.
  447: Returns 1 on success, 0 if \fIpos\fP is less than zero or greater
  448: than the number of history entries.
  449: 
  450: .Fn1 "HIST_ENTRY *" previous_history "void"
  451: Back up the current history offset to the previous history entry, and
  452: return a pointer to that entry.  If there is no previous entry, return
  453: a \fBNULL\fP pointer.
  454: 
  455: .Fn1 "HIST_ENTRY *" next_history "void"
  456: If the current history offset refers to a valid history entry,
  457: increment the current history offset.
  458: If the possibly-incremented history offset refers to a valid history
  459: entry, return a pointer to that entry;
  460: otherwise, return a \fBNULL\fP pointer.
  461: 
  462: .SS Searching the History List
  463: 
  464: These functions allow searching of the history list for entries containing
  465: a specific string.  Searching may be performed both forward and backward
  466: from the current history position.  The search may be \fIanchored\fP,
  467: meaning that the string must match at the beginning of the history entry.
  468: 
  469: .Fn2 int history_search "const char *string" "int direction"
  470: Search the history for \fIstring\fP, starting at the current history offset.
  471: If \fIdirection\fP is less than 0, then the search is through
  472: previous entries, otherwise through subsequent entries.
  473: If \fIstring\fP is found, then
  474: the current history index is set to that history entry, and the value
  475: returned is the offset in the line of the entry where
  476: \fIstring\fP was found.  Otherwise, nothing is changed, and a -1 is
  477: returned.
  478: 
  479: .Fn2 int history_search_prefix "const char *string" "int direction"
  480: Search the history for \fIstring\fP, starting at the current history
  481: offset.  The search is anchored: matching lines must begin with
  482: \fIstring\fP.  If \fIdirection\fP is less than 0, then the search is
  483: through previous entries, otherwise through subsequent entries.
  484: If \fIstring\fP is found, then the
  485: current history index is set to that entry, and the return value is 0. 
  486: Otherwise, nothing is changed, and a -1 is returned. 
  487: 
  488: .Fn3 int history_search_pos "const char *string" "int direction" "int pos"
  489: Search for \fIstring\fP in the history list, starting at \fIpos\fP, an
  490: absolute index into the list.  If \fIdirection\fP is negative, the search
  491: proceeds backward from \fIpos\fP, otherwise forward.  Returns the absolute
  492: index of the history element where \fIstring\fP was found, or -1 otherwise.
  493: 
  494: .SS Managing the History File
  495: The History library can read the history from and write it to a file.
  496: This section documents the functions for managing a history file.
  497: 
  498: .Fn1 int read_history "const char *filename"
  499: Add the contents of \fIfilename\fP to the history list, a line at a time.
  500: If \fIfilename\fP is \fBNULL\fP, then read from \fI~/.history\fP.
  501: Returns 0 if successful, or \fBerrno\fP if not.
  502: 
  503: .Fn3 int read_history_range "const char *filename" "int from" "int to"
  504: Read a range of lines from \fIfilename\fP, adding them to the history list.
  505: Start reading at line \fIfrom\fP and end at \fIto\fP.
  506: If \fIfrom\fP is zero, start at the beginning.  If \fIto\fP is less than
  507: \fIfrom\fP, then read until the end of the file.  If \fIfilename\fP is
  508: \fBNULL\fP, then read from \fI~/.history\fP.  Returns 0 if successful,
  509: or \fBerrno\fP if not.
  510: 
  511: .Fn1 int write_history "const char *filename"
  512: Write the current history to \fIfilename\fP, overwriting \fIfilename\fP
  513: if necessary.
  514: If \fIfilename\fP is \fBNULL\fP, then write the history list to \fI~/.history\fP.
  515: Returns 0 on success, or \fBerrno\fP on a read or write error.
  516: 
  517: 
  518: .Fn2 int append_history "int nelements" "const char *filename"
  519: Append the last \fInelements\fP of the history list to \fIfilename\fP.
  520: If \fIfilename\fP is \fBNULL\fP, then append to \fI~/.history\fP.
  521: Returns 0 on success, or \fBerrno\fP on a read or write error.
  522: 
  523: .Fn2 int history_truncate_file "const char *filename" "int nlines"
  524: Truncate the history file \fIfilename\fP, leaving only the last
  525: \fInlines\fP lines.
  526: If \fIfilename\fP is \fBNULL\fP, then \fI~/.history\fP is truncated.
  527: Returns 0 on success, or \fBerrno\fP on failure.
  528: 
  529: .SS History Expansion
  530: 
  531: These functions implement history expansion.
  532: 
  533: .Fn2 int history_expand "char *string" "char **output"
  534: Expand \fIstring\fP, placing the result into \fIoutput\fP, a pointer
  535: to a string.  Returns:
  536: .RS
  537: .PD 0
  538: .TP
  539: 0
  540: If no expansions took place (or, if the only change in
  541: the text was the removal of escape characters preceding the history expansion
  542: character);
  543: .TP
  544: 1
  545: if expansions did take place;
  546: .TP
  547: -1
  548: if there was an error in expansion;
  549: .TP
  550: 2
  551: if the returned line should be displayed, but not executed,
  552: as with the \fB:p\fP modifier.
  553: .PD
  554: .RE
  555: If an error occurred in expansion, then \fIoutput\fP contains a descriptive
  556: error message.
  557: 
  558: .Fn3 "char *" get_history_event "const char *string" "int *cindex" "int qchar"
  559: Returns the text of the history event beginning at \fIstring\fP +
  560: \fI*cindex\fP.  \fI*cindex\fP is modified to point to after the event
  561: specifier.  At function entry, \fIcindex\fP points to the index into
  562: \fIstring\fP where the history event specification begins.  \fIqchar\fP
  563: is a character that is allowed to end the event specification in addition
  564: to the ``normal'' terminating characters.
  565: 
  566: .Fn1 "char **" history_tokenize "const char *string"
  567: Return an array of tokens parsed out of \fIstring\fP, much as the
  568: shell might.
  569: The tokens are split on the characters in the
  570: \fBhistory_word_delimiters\fP variable,
  571: and shell quoting conventions are obeyed.
  572: 
  573: .Fn3 "char *" history_arg_extract "int first" "int last" "const char *string"
  574: Extract a string segment consisting of the \fIfirst\fP through \fIlast\fP
  575: arguments present in \fIstring\fP.  Arguments are split using
  576: \fBhistory_tokenize()\fP.
  577: 
  578: .SS History Variables
  579: 
  580: This section describes the externally-visible variables exported by
  581: the GNU History Library.
  582: 
  583: .Vb int history_base
  584: The logical offset of the first entry in the history list.
  585: 
  586: .Vb int history_length
  587: The number of entries currently stored in the history list.
  588: 
  589: .Vb int history_max_entries
  590: The maximum number of history entries.  This must be changed using
  591: \fBstifle_history()\fP.
  592: 
  593: .Vb int history_write_timestamps
  594: If non-zero, timestamps are written to the history file, so they can be
  595: preserved between sessions.  The default value is 0, meaning that
  596: timestamps are not saved.
  597: The current timestamp format uses the value of \fIhistory_comment_char\fP
  598: to delimit timestamp entries in the history file.  If that variable does
  599: not have a value (the default), timestamps will not be written.
  600: 
  601: .Vb char history_expansion_char
  602: The character that introduces a history event.  The default is \fB!\fP.
  603: Setting this to 0 inhibits history expansion.
  604: 
  605: .Vb char history_subst_char
  606: The character that invokes word substitution if found at the start of
  607: a line.  The default is \fB^\fP.
  608: 
  609: .Vb char history_comment_char
  610: During tokenization, if this character is seen as the first character
  611: of a word, then it and all subsequent characters up to a newline are
  612: ignored, suppressing history expansion for the remainder of the line.
  613: This is disabled by default.
  614: 
  615: .Vb "char *" history_word_delimiters
  616: The characters that separate tokens for \fBhistory_tokenize()\fP.
  617: The default value is \fB"\ \et\en()<>;&|"\fP.
  618: 
  619: .Vb "char *" history_no_expand_chars
  620: The list of characters which inhibit history expansion if found immediately
  621: following \fBhistory_expansion_char\fP.  The default is space, tab, newline,
  622: \fB\er\fP, and \fB=\fP.
  623: 
  624: .Vb "char *" history_search_delimiter_chars
  625: The list of additional characters which can delimit a history search
  626: string, in addition to space, tab, \fI:\fP and \fI?\fP in the case of
  627: a substring search.  The default is empty.
  628: 
  629: .Vb int history_quotes_inhibit_expansion
  630: If non-zero, double-quoted words are not scanned for the history expansion
  631: character or the history comment character.  The default value is 0.
  632: 
  633: .Vb "rl_linebuf_func_t *" history_inhibit_expansion_function
  634: This should be set to the address of a function that takes two arguments:
  635: a \fBchar *\fP (\fIstring\fP)
  636: and an \fBint\fP index into that string (\fIi\fP).
  637: It should return a non-zero value if the history expansion starting at
  638: \fIstring[i]\fP should not be performed; zero if the expansion should
  639: be done.
  640: It is intended for use by applications like \fBbash\fP that use the history
  641: expansion character for additional purposes.
  642: By default, this variable is set to \fBNULL\fP.
  643: .SH FILES
  644: .PD 0 
  645: .TP
  646: .FN ~/.history
  647: Default filename for reading and writing saved history
  648: .PD
  649: .SH "SEE ALSO"
  650: .PD 0
  651: .TP
  652: \fIThe Gnu Readline Library\fP, Brian Fox and Chet Ramey
  653: .TP
  654: \fIThe Gnu History Library\fP, Brian Fox and Chet Ramey
  655: .TP
  656: \fIbash\fP(1)
  657: .TP
  658: \fIreadline\fP(3)
  659: .PD
  660: .SH AUTHORS
  661: Brian Fox, Free Software Foundation
  662: .br
  663: bfox@gnu.org
  664: .PP
  665: Chet Ramey, Case Western Reserve University
  666: .br
  667: chet.ramey@case.edu
  668: .SH BUG REPORTS
  669: If you find a bug in the
  670: .B history
  671: library, you should report it.  But first, you should
  672: make sure that it really is a bug, and that it appears in the latest
  673: version of the
  674: .B history
  675: library that you have.
  676: .PP
  677: Once you have determined that a bug actually exists, mail a
  678: bug report to \fIbug\-readline\fP@\fIgnu.org\fP.
  679: If you have a fix, you are welcome to mail that
  680: as well!  Suggestions and `philosophical' bug reports may be mailed
  681: to \fPbug-readline\fP@\fIgnu.org\fP or posted to the Usenet
  682: newsgroup
  683: .BR gnu.bash.bug .
  684: .PP
  685: Comments and bug reports concerning
  686: this manual page should be directed to
  687: .IR chet.ramey@case.edu .

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