Annotation of embedaddon/readline/doc/history.3, revision 1.1.1.2
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: .\"
1.1.1.2 ! misho 9: .\" Last Change: Fri Jul 17 09:43:01 EDT 2020
1.1 misho 10: .\"
1.1.1.2 ! misho 11: .TH HISTORY 3 "2020 July 17" "GNU History 8.1"
1.1 misho 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
1.1.1.2 ! misho 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.
1.1 misho 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.
1.1.1.2 ! misho 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.
1.1 misho 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
1.1.1.2 ! misho 128: ``!!:s\d\s+2^\s-2\u\fIstring1\fP\d\s+2^\s-2\u\fIstring2\fP\d\s+2^\s-2\u''
1.1 misho 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.
1.1.1.2 ! misho 136: A
1.1 misho 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 %
1.1.1.2 ! misho 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.
1.1 misho 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.
1.1.1.2 ! misho 185: If \fBx\fP is missing, it defaults to 0.
1.1 misho 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 `:'.
1.1.1.2 ! misho 193: These modify, or edit, the word or words selected from the history event.
1.1 misho 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.
1.1.1.2 ! misho 223: The \fBq\fP and \fBx\fP modifiers are mutually exclusive; the last one
! 224: supplied is used.
1.1 misho 225: .TP
226: .B s/\fIold\fP/\fInew\fP/
227: Substitute
228: .I new
229: for the first occurrence of
230: .I old
1.1.1.2 ! misho 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
1.1 misho 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 .
1.1.1.2 ! misho 243: A single backslash will quote the &.
! 244: If
1.1 misho 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.
1.1.1.2 ! misho 254: If
! 255: .I new
! 256: is null, each matching
! 257: .I old
! 258: is deleted.
1.1 misho 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
1.1.1.2 ! misho 273: Apply the following `\fBs\fP' or `\fB&\fP' modifier once to each word
! 274: in the event line.
1.1 misho 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
1.1.1.2 ! misho 279: A programmer using the History library has available functions
1.1 misho 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
1.1.1.2 ! misho 294: The programmer can also use the Readline library, which
1.1 misho 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.
1.1.1.2 ! misho 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.
1.1 misho 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.
1.1.1.2 ! misho 395: The history list will contain only \fImax\fP entries at a time.
1.1 misho 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"
1.1.1.2 ! misho 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.
1.1 misho 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"
1.1.1.2 ! misho 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.
1.1 misho 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
1.1.1.2 ! misho 555: If an error occurred in expansion, then \fIoutput\fP contains a descriptive
1.1 misho 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:
1.1.1.2 ! misho 593: .Vb int history_write_timestamps
1.1 misho 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
1.1.1.2 ! misho 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.
1.1 misho 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>