Annotation of embedaddon/readline/doc/history.0, revision 1.1.1.2
1.1.1.2 ! misho 1: HISTORY(3) Library Functions Manual HISTORY(3)
1.1 misho 2:
3:
4:
1.1.1.2 ! misho 5: [1mNAME[0m
1.1 misho 6: history - GNU History Library
7:
1.1.1.2 ! misho 8: [1mCOPYRIGHT[0m
! 9: The GNU History Library is Copyright (C) 1989-2020 by the Free Software
1.1 misho 10: Foundation, Inc.
11:
1.1.1.2 ! misho 12: [1mDESCRIPTION[0m
1.1 misho 13: Many programs read input from the user a line at a time. The GNU His-
14: tory library is able to keep track of those lines, associate arbitrary
15: data with each line, and utilize information from previous lines in
16: composing new ones.
17:
1.1.1.2 ! misho 18: [1mHISTORY EXPANSION[0m
1.1 misho 19: The history library supports a history expansion feature that is iden-
1.1.1.2 ! misho 20: tical to the history expansion in [1mbash. [22mThis section describes what
1.1 misho 21: syntax features are available.
22:
23: History expansions introduce words from the history list into the input
24: stream, making it easy to repeat commands, insert the arguments to a
25: previous command into the current input line, or fix errors in previous
26: commands quickly.
27:
28: History expansion is usually performed immediately after a complete
29: line is read. It takes place in two parts. The first is to determine
30: which line from the history list to use during substitution. The sec-
31: ond is to select portions of that line for inclusion into the current
1.1.1.2 ! misho 32: one. The line selected from the history is the [4mevent[24m, and the portions
! 33: of that line that are acted upon are [4mwords[24m. Various [4mmodifiers[24m are
1.1 misho 34: available to manipulate the selected words. The line is broken into
1.1.1.2 ! misho 35: words in the same fashion as [1mbash [22mdoes when reading input, so that sev-
1.1 misho 36: eral words that would otherwise be separated are considered one word
1.1.1.2 ! misho 37: when surrounded by quotes (see the description of [1mhistory_tokenize()[0m
1.1 misho 38: below). History expansions are introduced by the appearance of the
1.1.1.2 ! misho 39: history expansion character, which is [1m! [22mby default. Only backslash ([1m\[22m)
1.1 misho 40: and single quotes can quote the history expansion character.
41:
1.1.1.2 ! misho 42: [1mEvent Designators[0m
1.1 misho 43: An event designator is a reference to a command line entry in the his-
44: tory list. Unless the reference is absolute, events are relative to
45: the current position in the history list.
46:
1.1.1.2 ! misho 47: [1m! [22mStart a history substitution, except when followed by a [1mblank[22m,
1.1 misho 48: newline, = or (.
1.1.1.2 ! misho 49: [1m![4m[22mn[24m Refer to command line [4mn[24m.
! 50: [1m!-[4m[22mn[24m Refer to the current command minus [4mn[24m.
! 51: [1m!! [22mRefer to the previous command. This is a synonym for `!-1'.
! 52: [1m![4m[22mstring[0m
1.1 misho 53: Refer to the most recent command preceding the current position
1.1.1.2 ! misho 54: in the history list starting with [4mstring[24m.
! 55: [1m!?[4m[22mstring[24m[1m[?][0m
1.1 misho 56: Refer to the most recent command preceding the current position
1.1.1.2 ! misho 57: in the history list containing [4mstring[24m. The trailing [1m? [22mmay be
! 58: omitted if [4mstring[24m is followed immediately by a newline. If
! 59: [4mstring[24m is missing, the string from the most recent search is
! 60: used; it is an error if there is no previous search string.
! 61: [1m^[4m[22mstring1[24m[1m^[4m[22mstring2[24m[1m^[0m
! 62: Quick substitution. Repeat the last command, replacing [4mstring1[0m
! 63: with [4mstring2[24m. Equivalent to ``!!:s^[4mstring1[24m^[4mstring2[24m^'' (see [1mMod-[0m
! 64: [1mifiers [22mbelow).
! 65: [1m!# [22mThe entire command line typed so far.
1.1 misho 66:
1.1.1.2 ! misho 67: [1mWord Designators[0m
! 68: Word designators are used to select desired words from the event. A [1m:[0m
1.1 misho 69: separates the event specification from the word designator. It may be
1.1.1.2 ! misho 70: omitted if the word designator begins with a [1m^[22m, [1m$[22m, [1m*[22m, [1m-[22m, or [1m%[22m. Words
1.1 misho 71: are numbered from the beginning of the line, with the first word being
72: denoted by 0 (zero). Words are inserted into the current line sepa-
73: rated by single spaces.
74:
1.1.1.2 ! misho 75: [1m0 (zero)[0m
1.1 misho 76: The zeroth word. For the shell, this is the command word.
1.1.1.2 ! misho 77: [4mn[24m The [4mn[24mth word.
! 78: [1m^ [22mThe first argument. That is, word 1.
! 79: [1m$ [22mThe last word. This is usually the last argument, but will ex-
! 80: pand to the zeroth word if there is only one word in the line.
! 81: [1m% [22mThe first word matched by the most recent `?[4mstring[24m?' search, if
! 82: the search string begins with a character that is part of a
! 83: word.
! 84: [4mx[24m[1m-[4m[22my[24m A range of words; `-[4my[24m' abbreviates `0-[4my[24m'.
! 85: [1m* [22mAll of the words but the zeroth. This is a synonym for `[4m1-$[24m'.
! 86: It is not an error to use [1m* [22mif there is just one word in the
1.1 misho 87: event; the empty string is returned in that case.
1.1.1.2 ! misho 88: [1mx* [22mAbbreviates [4mx-$[24m.
! 89: [1mx- [22mAbbreviates [4mx-$[24m like [1mx*[22m, but omits the last word. If [1mx [22mis miss-
! 90: ing, it defaults to 0.
1.1 misho 91:
92: If a word designator is supplied without an event specification, the
93: previous command is used as the event.
94:
1.1.1.2 ! misho 95: [1mModifiers[0m
1.1 misho 96: After the optional word designator, there may appear a sequence of one
1.1.1.2 ! misho 97: or more of the following modifiers, each preceded by a `:'. These mod-
! 98: ify, or edit, the word or words selected from the history event.
1.1 misho 99:
1.1.1.2 ! misho 100: [1mh [22mRemove a trailing file name component, leaving only the head.
! 101: [1mt [22mRemove all leading file name components, leaving the tail.
! 102: [1mr [22mRemove a trailing suffix of the form [4m.xxx[24m, leaving the basename.
! 103: [1me [22mRemove all but the trailing suffix.
! 104: [1mp [22mPrint the new command but do not execute it.
! 105: [1mq [22mQuote the substituted words, escaping further substitutions.
! 106: [1mx [22mQuote the substituted words as with [1mq[22m, but break into words at
! 107: [1mblanks [22mand newlines. The [1mq [22mand [1mx [22mmodifiers are mutually exclu-
! 108: sive; the last one supplied is used.
! 109: [1ms/[4m[22mold[24m[1m/[4m[22mnew[24m[1m/[0m
! 110: Substitute [4mnew[24m for the first occurrence of [4mold[24m in the event
! 111: line. Any character may be used as the delimiter in place of /.
! 112: The final delimiter is optional if it is the last character of
! 113: the event line. The delimiter may be quoted in [4mold[24m and [4mnew[24m with
! 114: a single backslash. If & appears in [4mnew[24m, it is replaced by [4mold[24m.
! 115: A single backslash will quote the &. If [4mold[24m is null, it is set
! 116: to the last [4mold[24m substituted, or, if no previous history substi-
! 117: tutions took place, the last [4mstring[24m in a [1m!?[4m[22mstring[24m[1m[?] [22msearch.
! 118: If [4mnew[24m is null, each matching [4mold[24m is deleted.
! 119: [1m& [22mRepeat the previous substitution.
! 120: [1mg [22mCause changes to be applied over the entire event line. This is
! 121: used in conjunction with `[1m:s[22m' (e.g., `[1m:gs/[4m[22mold[24m[1m/[4m[22mnew[24m[1m/[22m') or `[1m:&[22m'.
! 122: If used with `[1m:s[22m', any delimiter can be used in place of /, and
1.1 misho 123: the final delimiter is optional if it is the last character of
1.1.1.2 ! misho 124: the event line. An [1ma [22mmay be used as a synonym for [1mg[22m.
! 125: [1mG [22mApply the following `[1ms[22m' or `[1m&[22m' modifier once to each word in the
! 126: event line.
1.1 misho 127:
1.1.1.2 ! misho 128: [1mPROGRAMMING WITH HISTORY FUNCTIONS[0m
1.1 misho 129: This section describes how to use the History library in other pro-
130: grams.
131:
1.1.1.2 ! misho 132: [1mIntroduction to History[0m
! 133: A programmer using the History library has available functions for re-
! 134: membering lines on a history list, associating arbitrary data with a
1.1 misho 135: line, removing lines from the list, searching through the list for a
136: line containing an arbitrary text string, and referencing any line in
1.1.1.2 ! misho 137: the list directly. In addition, a history [4mexpansion[24m function is avail-
1.1 misho 138: able which provides for a consistent user interface across different
139: programs.
140:
141: The user using programs written with the History library has the bene-
142: fit of a consistent user interface with a set of well-known commands
143: for manipulating the text of previous lines and using that text in new
144: commands. The basic history manipulation commands are identical to the
1.1.1.2 ! misho 145: history substitution provided by [1mbash[22m.
1.1 misho 146:
1.1.1.2 ! misho 147: The programmer can also use the Readline library, which includes some
! 148: history manipulation by default, and has the added advantage of command
! 149: line editing.
! 150:
! 151: Before declaring any functions using any functionality the History li-
! 152: brary provides in other code, an application writer should include the
! 153: file [4m<readline/history.h>[24m in any file that uses the History library's
! 154: features. It supplies extern declarations for all of the library's
! 155: public functions and variables, and declares all of the public data
! 156: structures.
1.1 misho 157:
1.1.1.2 ! misho 158: [1mHistory Storage[0m
1.1 misho 159: The history list is an array of history entries. A history entry is
160: declared as follows:
161:
1.1.1.2 ! misho 162: [4mtypedef[24m [4mvoid[24m [4m*[24m [1mhistdata_t;[0m
1.1 misho 163:
164: typedef struct _hist_entry {
165: char *line;
166: char *timestamp;
167: histdata_t data;
168: } HIST_ENTRY;
169:
170: The history list itself might therefore be declared as
171:
1.1.1.2 ! misho 172: [4mHIST_ENTRY[24m [4m**[24m [1mthe_history_list;[0m
1.1 misho 173:
174: The state of the History library is encapsulated into a single struc-
175: ture:
176:
177: /*
178: * A structure used to pass around the current state of the history.
179: */
180: typedef struct _hist_state {
181: HIST_ENTRY **entries; /* Pointer to the entries themselves. */
182: int offset; /* The location pointer within this array. */
183: int length; /* Number of elements within this array. */
184: int size; /* Number of slots allocated to this array. */
185: int flags;
186: } HISTORY_STATE;
187:
1.1.1.2 ! misho 188: If the flags member includes [1mHS_STIFLED[22m, the history has been stifled.
1.1 misho 189:
1.1.1.2 ! misho 190: [1mHistory Functions[0m
! 191: This section describes the calling sequence for the various functions
1.1 misho 192: exported by the GNU History library.
193:
1.1.1.2 ! misho 194: [1mInitializing History and State Management[0m
! 195: This section describes functions used to initialize and manage the
1.1 misho 196: state of the History library when you want to use the history functions
197: in your program.
198:
1.1.1.2 ! misho 199: [4mvoid[24m [1musing_history [22m([4mvoid[24m)
! 200: Begin a session in which the history functions might be used. This
1.1 misho 201: initializes the interactive variables.
202:
1.1.1.2 ! misho 203: [4mHISTORY_STATE[24m [4m*[24m [1mhistory_get_history_state [22m([4mvoid[24m)
1.1 misho 204: Return a structure describing the current state of the input history.
205:
1.1.1.2 ! misho 206: [4mvoid[24m [1mhistory_set_history_state [22m([4mHISTORY_STATE[24m [4m*state[24m)
! 207: Set the state of the history list according to [4mstate[24m.
1.1 misho 208:
209:
1.1.1.2 ! misho 210: [1mHistory List Management[0m
! 211: These functions manage individual entries on the history list, or set
1.1 misho 212: parameters managing the list itself.
213:
1.1.1.2 ! misho 214: [4mvoid[24m [1madd_history [22m([4mconst[24m [4mchar[24m [4m*string[24m)
! 215: Place [4mstring[24m at the end of the history list. The associated data field
! 216: (if any) is set to [1mNULL[22m. If the maximum number of history entries has
! 217: been set using [1mstifle_history()[22m, and the new number of history entries
! 218: would exceed that maximum, the oldest history entry is removed.
! 219:
! 220: [4mvoid[24m [1madd_history_time [22m([4mconst[24m [4mchar[24m [4m*string[24m)
! 221: Change the time stamp associated with the most recent history entry to
! 222: [4mstring[24m.
! 223:
! 224: [4mHIST_ENTRY[24m [4m*[24m [1mremove_history [22m([4mint[24m [4mwhich[24m)
! 225: Remove history entry at offset [4mwhich[24m from the history. The removed el-
! 226: ement is returned so you can free the line, data, and containing struc-
! 227: ture.
! 228:
! 229: [4mhistdata_t[24m [1mfree_history_entry [22m([4mHIST_ENTRY[24m [4m*histent[24m)
! 230: Free the history entry [4mhistent[24m and any history library private data as-
! 231: sociated with it. Returns the application-specific data so the caller
! 232: can dispose of it.
! 233:
! 234: [4mHIST_ENTRY[24m [4m*[24m [1mreplace_history_entry [22m([4mint[24m [4mwhich,[24m [4mconst[24m [4mchar[24m [4m*line,[24m [4mhist-[0m
! 235: [4mdata_t[24m [4mdata[24m)
! 236: Make the history entry at offset [4mwhich[24m have [4mline[24m and [4mdata[24m. This re-
! 237: turns the old entry so the caller can dispose of any application-spe-
! 238: cific data. In the case of an invalid [4mwhich[24m, a [1mNULL [22mpointer is re-
! 239: turned.
1.1 misho 240:
1.1.1.2 ! misho 241: [4mvoid[24m [1mclear_history [22m([4mvoid[24m)
1.1 misho 242: Clear the history list by deleting all the entries.
243:
1.1.1.2 ! misho 244: [4mvoid[24m [1mstifle_history [22m([4mint[24m [4mmax[24m)
! 245: Stifle the history list, remembering only the last [4mmax[24m entries. The
! 246: history list will contain only [4mmax[24m entries at a time.
1.1 misho 247:
1.1.1.2 ! misho 248: [4mint[24m [1munstifle_history [22m([4mvoid[24m)
1.1 misho 249: Stop stifling the history. This returns the previously-set maximum
1.1.1.2 ! misho 250: number of history entries (as set by [1mstifle_history()[22m). history was
1.1 misho 251: stifled. The value is positive if the history was stifled, negative if
252: it wasn't.
253:
1.1.1.2 ! misho 254: [4mint[24m [1mhistory_is_stifled [22m([4mvoid[24m)
1.1 misho 255: Returns non-zero if the history is stifled, zero if it is not.
256:
257:
1.1.1.2 ! misho 258: [1mInformation About the History List[0m
! 259: These functions return information about the entire history list or in-
! 260: dividual list entries.
! 261:
! 262: [4mHIST_ENTRY[24m [4m**[24m [1mhistory_list [22m([4mvoid[24m)
! 263: Return a [1mNULL [22mterminated array of [4mHIST_ENTRY[24m [4m*[24m which is the current in-
! 264: put history. Element 0 of this list is the beginning of time. If
! 265: there is no history, return [1mNULL[22m.
1.1 misho 266:
1.1.1.2 ! misho 267: [4mint[24m [1mwhere_history [22m([4mvoid[24m)
1.1 misho 268: Returns the offset of the current history element.
269:
1.1.1.2 ! misho 270: [4mHIST_ENTRY[24m [4m*[24m [1mcurrent_history [22m([4mvoid[24m)
1.1 misho 271: Return the history entry at the current position, as determined by
1.1.1.2 ! misho 272: [1mwhere_history()[22m. If there is no entry there, return a [1mNULL [22mpointer.
1.1 misho 273:
1.1.1.2 ! misho 274: [4mHIST_ENTRY[24m [4m*[24m [1mhistory_get [22m([4mint[24m [4moffset[24m)
! 275: Return the history entry at position [4moffset[24m. The range of valid values
! 276: of [4moffset[24m starts at [1mhistory_base [22mand ends at [1mhistory_length [22m- 1. If
! 277: there is no entry there, or if [4moffset[24m is outside the valid range, re-
! 278: turn a [1mNULL [22mpointer.
1.1 misho 279:
1.1.1.2 ! misho 280: [4mtime_t[24m [1mhistory_get_time [22m([4mHIST_ENTRY[24m [4m*[24m)
! 281: Return the time stamp associated with the history entry passed as the
1.1 misho 282: argument.
283:
1.1.1.2 ! misho 284: [4mint[24m [1mhistory_total_bytes [22m([4mvoid[24m)
! 285: Return the number of bytes that the primary history entries are using.
! 286: This function returns the sum of the lengths of all the lines in the
1.1 misho 287: history.
288:
289:
1.1.1.2 ! misho 290: [1mMoving Around the History List[0m
1.1 misho 291: These functions allow the current index into the history list to be set
292: or changed.
293:
1.1.1.2 ! misho 294: [4mint[24m [1mhistory_set_pos [22m([4mint[24m [4mpos[24m)
! 295: Set the current history offset to [4mpos[24m, an absolute index into the list.
! 296: Returns 1 on success, 0 if [4mpos[24m is less than zero or greater than the
1.1 misho 297: number of history entries.
298:
1.1.1.2 ! misho 299: [4mHIST_ENTRY[24m [4m*[24m [1mprevious_history [22m([4mvoid[24m)
! 300: Back up the current history offset to the previous history entry, and
! 301: return a pointer to that entry. If there is no previous entry, return
! 302: a [1mNULL [22mpointer.
! 303:
! 304: [4mHIST_ENTRY[24m [4m*[24m [1mnext_history [22m([4mvoid[24m)
! 305: If the current history offset refers to a valid history entry, incre-
! 306: ment the current history offset. If the possibly-incremented history
! 307: offset refers to a valid history entry, return a pointer to that entry;
! 308: otherwise, return a [1mNULL [22mpointer.
1.1 misho 309:
310:
1.1.1.2 ! misho 311: [1mSearching the History List[0m
1.1 misho 312: These functions allow searching of the history list for entries con-
313: taining a specific string. Searching may be performed both forward and
1.1.1.2 ! misho 314: backward from the current history position. The search may be [4man-[0m
! 315: [4mchored[24m, meaning that the string must match at the beginning of the his-
! 316: tory entry.
! 317:
! 318: [4mint[24m [1mhistory_search [22m([4mconst[24m [4mchar[24m [4m*string,[24m [4mint[24m [4mdirection[24m)
! 319: Search the history for [4mstring[24m, starting at the current history offset.
! 320: If [4mdirection[24m is less than 0, then the search is through previous en-
! 321: tries, otherwise through subsequent entries. If [4mstring[24m is found, then
! 322: the current history index is set to that history entry, and the value
! 323: returned is the offset in the line of the entry where [4mstring[24m was found.
! 324: Otherwise, nothing is changed, and a -1 is returned.
! 325:
! 326: [4mint[24m [1mhistory_search_prefix [22m([4mconst[24m [4mchar[24m [4m*string,[24m [4mint[24m [4mdirection[24m)
! 327: Search the history for [4mstring[24m, starting at the current history offset.
! 328: The search is anchored: matching lines must begin with [4mstring[24m. If [4mdi-[0m
! 329: [4mrection[24m is less than 0, then the search is through previous entries,
! 330: otherwise through subsequent entries. If [4mstring[24m is found, then the
1.1 misho 331: current history index is set to that entry, and the return value is 0.
332: Otherwise, nothing is changed, and a -1 is returned.
333:
1.1.1.2 ! misho 334: [4mint[24m [1mhistory_search_pos [22m([4mconst[24m [4mchar[24m [4m*string,[24m [4mint[24m [4mdirection,[24m [4mint[24m [4mpos[24m)
! 335: Search for [4mstring[24m in the history list, starting at [4mpos[24m, an absolute in-
! 336: dex into the list. If [4mdirection[24m is negative, the search proceeds back-
! 337: ward from [4mpos[24m, otherwise forward. Returns the absolute index of the
! 338: history element where [4mstring[24m was found, or -1 otherwise.
1.1 misho 339:
340:
1.1.1.2 ! misho 341: [1mManaging the History File[0m
1.1 misho 342: The History library can read the history from and write it to a file.
343: This section documents the functions for managing a history file.
344:
1.1.1.2 ! misho 345: [4mint[24m [1mread_history [22m([4mconst[24m [4mchar[24m [4m*filename[24m)
! 346: Add the contents of [4mfilename[24m to the history list, a line at a time. If
! 347: [4mfilename[24m is [1mNULL[22m, then read from [4m~/.history[24m. Returns 0 if successful,
! 348: or [1merrno [22mif not.
! 349:
! 350: [4mint[24m [1mread_history_range [22m([4mconst[24m [4mchar[24m [4m*filename,[24m [4mint[24m [4mfrom,[24m [4mint[24m [4mto[24m)
! 351: Read a range of lines from [4mfilename[24m, adding them to the history list.
! 352: Start reading at line [4mfrom[24m and end at [4mto[24m. If [4mfrom[24m is zero, start at
! 353: the beginning. If [4mto[24m is less than [4mfrom[24m, then read until the end of the
! 354: file. If [4mfilename[24m is [1mNULL[22m, then read from [4m~/.history[24m. Returns 0 if
! 355: successful, or [1merrno [22mif not.
! 356:
! 357: [4mint[24m [1mwrite_history [22m([4mconst[24m [4mchar[24m [4m*filename[24m)
! 358: Write the current history to [4mfilename[24m, overwriting [4mfilename[24m if neces-
! 359: sary. If [4mfilename[24m is [1mNULL[22m, then write the history list to [4m~/.history[24m.
! 360: Returns 0 on success, or [1merrno [22mon a read or write error.
! 361:
! 362:
! 363: [4mint[24m [1mappend_history [22m([4mint[24m [4mnelements,[24m [4mconst[24m [4mchar[24m [4m*filename[24m)
! 364: Append the last [4mnelements[24m of the history list to [4mfilename[24m. If [4mfilename[0m
! 365: is [1mNULL[22m, then append to [4m~/.history[24m. Returns 0 on success, or [1merrno [22mon
1.1 misho 366: a read or write error.
367:
1.1.1.2 ! misho 368: [4mint[24m [1mhistory_truncate_file [22m([4mconst[24m [4mchar[24m [4m*filename,[24m [4mint[24m [4mnlines[24m)
! 369: Truncate the history file [4mfilename[24m, leaving only the last [4mnlines[24m lines.
! 370: If [4mfilename[24m is [1mNULL[22m, then [4m~/.history[24m is truncated. Returns 0 on suc-
! 371: cess, or [1merrno [22mon failure.
1.1 misho 372:
373:
1.1.1.2 ! misho 374: [1mHistory Expansion[0m
1.1 misho 375: These functions implement history expansion.
376:
1.1.1.2 ! misho 377: [4mint[24m [1mhistory_expand [22m([4mchar[24m [4m*string,[24m [4mchar[24m [4m**output[24m)
! 378: Expand [4mstring[24m, placing the result into [4moutput[24m, a pointer to a string.
1.1 misho 379: Returns:
380: 0 If no expansions took place (or, if the only change in
381: the text was the removal of escape characters preceding
382: the history expansion character);
383: 1 if expansions did take place;
384: -1 if there was an error in expansion;
385: 2 if the returned line should be displayed, but not exe-
1.1.1.2 ! misho 386: cuted, as with the [1m:p [22mmodifier.
! 387: If an error occurred in expansion, then [4moutput[24m contains a descriptive
1.1 misho 388: error message.
389:
1.1.1.2 ! misho 390: [4mchar[24m [4m*[24m [1mget_history_event [22m([4mconst[24m [4mchar[24m [4m*string,[24m [4mint[24m [4m*cindex,[24m [4mint[24m [4mqchar[24m)
! 391: Returns the text of the history event beginning at [4mstring[24m + [4m*cindex[24m.
! 392: [4m*cindex[24m is modified to point to after the event specifier. At function
! 393: entry, [4mcindex[24m points to the index into [4mstring[24m where the history event
! 394: specification begins. [4mqchar[24m is a character that is allowed to end the
1.1 misho 395: event specification in addition to the ``normal'' terminating charac-
396: ters.
397:
1.1.1.2 ! misho 398: [4mchar[24m [4m**[24m [1mhistory_tokenize [22m([4mconst[24m [4mchar[24m [4m*string[24m)
! 399: Return an array of tokens parsed out of [4mstring[24m, much as the shell
! 400: might. The tokens are split on the characters in the [1mhistory_word_de-[0m
! 401: [1mlimiters [22mvariable, and shell quoting conventions are obeyed.
! 402:
! 403: [4mchar[24m [4m*[24m [1mhistory_arg_extract [22m([4mint[24m [4mfirst,[24m [4mint[24m [4mlast,[24m [4mconst[24m [4mchar[24m [4m*string[24m)
! 404: Extract a string segment consisting of the [4mfirst[24m through [4mlast[24m arguments
! 405: present in [4mstring[24m. Arguments are split using [1mhistory_tokenize()[22m.
1.1 misho 406:
407:
1.1.1.2 ! misho 408: [1mHistory Variables[0m
1.1 misho 409: This section describes the externally-visible variables exported by the
410: GNU History Library.
411:
1.1.1.2 ! misho 412: [4mint[24m [1mhistory_base[0m
1.1 misho 413: The logical offset of the first entry in the history list.
414:
1.1.1.2 ! misho 415: [4mint[24m [1mhistory_length[0m
1.1 misho 416: The number of entries currently stored in the history list.
417:
1.1.1.2 ! misho 418: [4mint[24m [1mhistory_max_entries[0m
! 419: The maximum number of history entries. This must be changed using [1msti-[0m
! 420: [1mfle_history()[22m.
1.1 misho 421:
1.1.1.2 ! misho 422: [4mint[24m [1mhistory_write_timestamps[0m
1.1 misho 423: If non-zero, timestamps are written to the history file, so they can be
424: preserved between sessions. The default value is 0, meaning that time-
1.1.1.2 ! misho 425: stamps are not saved. The current timestamp format uses the value of
! 426: [4mhistory_comment_char[24m to delimit timestamp entries in the history file.
! 427: If that variable does not have a value (the default), timestamps will
1.1 misho 428: not be written.
429:
1.1.1.2 ! misho 430: [4mchar[24m [1mhistory_expansion_char[0m
! 431: The character that introduces a history event. The default is [1m![22m. Set-
1.1 misho 432: ting this to 0 inhibits history expansion.
433:
1.1.1.2 ! misho 434: [4mchar[24m [1mhistory_subst_char[0m
1.1 misho 435: The character that invokes word substitution if found at the start of a
1.1.1.2 ! misho 436: line. The default is [1m^[22m.
1.1 misho 437:
1.1.1.2 ! misho 438: [4mchar[24m [1mhistory_comment_char[0m
! 439: During tokenization, if this character is seen as the first character
! 440: of a word, then it and all subsequent characters up to a newline are
! 441: ignored, suppressing history expansion for the remainder of the line.
1.1 misho 442: This is disabled by default.
443:
1.1.1.2 ! misho 444: [4mchar[24m [4m*[24m [1mhistory_word_delimiters[0m
! 445: The characters that separate tokens for [1mhistory_tokenize()[22m. The de-
! 446: fault value is [1m" \t\n()<>;&|"[22m.
1.1 misho 447:
1.1.1.2 ! misho 448: [4mchar[24m [4m*[24m [1mhistory_no_expand_chars[0m
1.1 misho 449: The list of characters which inhibit history expansion if found immedi-
1.1.1.2 ! misho 450: ately following [1mhistory_expansion_char[22m. The default is space, tab,
! 451: newline, [1m\r[22m, and [1m=[22m.
1.1 misho 452:
1.1.1.2 ! misho 453: [4mchar[24m [4m*[24m [1mhistory_search_delimiter_chars[0m
! 454: The list of additional characters which can delimit a history search
! 455: string, in addition to space, tab, [4m:[24m and [4m?[24m in the case of a substring
1.1 misho 456: search. The default is empty.
457:
1.1.1.2 ! misho 458: [4mint[24m [1mhistory_quotes_inhibit_expansion[0m
! 459: If non-zero, double-quoted words are not scanned for the history expan-
! 460: sion character or the history comment character. The default value is
! 461: 0.
1.1 misho 462:
1.1.1.2 ! misho 463: [4mrl_linebuf_func_t[24m [4m*[24m [1mhistory_inhibit_expansion_function[0m
1.1 misho 464: This should be set to the address of a function that takes two argu-
1.1.1.2 ! misho 465: ments: a [1mchar * [22m([4mstring[24m) and an [1mint [22mindex into that string ([4mi[24m). It
1.1 misho 466: should return a non-zero value if the history expansion starting at
1.1.1.2 ! misho 467: [4mstring[i][24m should not be performed; zero if the expansion should be
! 468: done. It is intended for use by applications like [1mbash [22mthat use the
1.1 misho 469: history expansion character for additional purposes. By default, this
1.1.1.2 ! misho 470: variable is set to [1mNULL[22m.
1.1 misho 471:
1.1.1.2 ! misho 472: [1mFILES[0m
! 473: [4m~/.history[0m
1.1 misho 474: Default filename for reading and writing saved history
475:
1.1.1.2 ! misho 476: [1mSEE ALSO[0m
! 477: [4mThe[24m [4mGnu[24m [4mReadline[24m [4mLibrary[24m, Brian Fox and Chet Ramey
! 478: [4mThe[24m [4mGnu[24m [4mHistory[24m [4mLibrary[24m, Brian Fox and Chet Ramey
! 479: [4mbash[24m(1)
! 480: [4mreadline[24m(3)
1.1 misho 481:
1.1.1.2 ! misho 482: [1mAUTHORS[0m
1.1 misho 483: Brian Fox, Free Software Foundation
484: bfox@gnu.org
485:
486: Chet Ramey, Case Western Reserve University
487: chet.ramey@case.edu
488:
1.1.1.2 ! misho 489: [1mBUG REPORTS[0m
! 490: If you find a bug in the [1mhistory [22mlibrary, you should report it. But
! 491: first, you should make sure that it really is a bug, and that it ap-
! 492: pears in the latest version of the [1mhistory [22mlibrary that you have.
1.1 misho 493:
494: Once you have determined that a bug actually exists, mail a bug report
1.1.1.2 ! misho 495: to [4mbug-readline[24m@[4mgnu.org[24m. If you have a fix, you are welcome to mail
1.1 misho 496: that as well! Suggestions and `philosophical' bug reports may be
1.1.1.2 ! misho 497: mailed to [4mbug-readline[24m@[4mgnu.org[24m or posted to the Usenet newsgroup
! 498: [1mgnu.bash.bug[22m.
1.1 misho 499:
500: Comments and bug reports concerning this manual page should be directed
1.1.1.2 ! misho 501: to [4mchet.ramey@case.edu[24m.
1.1 misho 502:
503:
504:
1.1.1.2 ! misho 505: GNU History 8.1 2020 July 17 HISTORY(3)
FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>