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