Import of readline 4.3.
[deliverable/binutils-gdb.git] / readline / doc / history.0
1
2
3
4 HISTORY(3) HISTORY(3)
5
6
7 N\bNA\bAM\bME\bE
8 history - GNU History Library
9
10 C\bCO\bOP\bPY\bYR\bRI\bIG\bGH\bHT\bT
11 The GNU History Library is Copyright (C) 1989-2002 by the
12 Free Software Foundation, Inc.
13
14 D\bDE\bES\bSC\bCR\bRI\bIP\bPT\bTI\bIO\bON\bN
15 Many programs read input from the user a line at a time.
16 The GNU History library is able to keep track of those
17 lines, associate arbitrary data with each line, and uti-
18 lize information from previous lines in composing new
19 ones.
20
21
22 H\bHI\bIS\bST\bTO\bOR\bRY\bY E\bEX\bXP\bPA\bAN\bNS\bSI\bIO\bON\bN
23 The history library supports a history expansion feature
24 that is identical to the history expansion in b\bba\bas\bsh\bh.\b. This
25 section describes what syntax features are available.
26
27 History expansions introduce words from the history list
28 into the input stream, making it easy to repeat commands,
29 insert the arguments to a previous command into the cur-
30 rent input line, or fix errors in previous commands
31 quickly.
32
33 History expansion is usually performed immediately after a
34 complete line is read. It takes place in two parts. The
35 first is to determine which line from the history list to
36 use during substitution. The second is to select portions
37 of that line for inclusion into the current one. The line
38 selected from the history is the _\be_\bv_\be_\bn_\bt, and the portions
39 of that line that are acted upon are _\bw_\bo_\br_\bd_\bs. Various _\bm_\bo_\bd_\bi_\b-
40 _\bf_\bi_\be_\br_\bs are available to manipulate the selected words. The
41 line is broken into words in the same fashion as b\bba\bas\bsh\bh does
42 when reading input, so that several words that would oth-
43 erwise be separated are considered one word when sur-
44 rounded by quotes (see the description of h\bhi\bis\bst\bto\bor\bry\by_\b_t\bto\bok\bk-\b-
45 e\ben\bni\biz\bze\be(\b()\b) below). History expansions are introduced by the
46 appearance of the history expansion character, which is !\b!
47 by default. Only backslash (\\b\) and single quotes can
48 quote the history expansion character.
49
50 E\bEv\bve\ben\bnt\bt D\bDe\bes\bsi\big\bgn\bna\bat\bto\bor\brs\bs
51 An event designator is a reference to a command line entry
52 in the history list.
53
54 !\b! Start a history substitution, except when followed
55 by a b\bbl\bla\ban\bnk\bk, newline, = or (.
56 !\b!_\bn Refer to command line _\bn.
57 !\b!-\b-_\bn Refer to the current command line minus _\bn.
58 !\b!!\b! Refer to the previous command. This is a synonym
59 for `!-1'.
60
61
62
63
64 GNU History 4.3 2002 January 31 1
65
66
67
68
69
70 HISTORY(3) HISTORY(3)
71
72
73 !\b!_\bs_\bt_\br_\bi_\bn_\bg
74 Refer to the most recent command starting with
75 _\bs_\bt_\br_\bi_\bn_\bg.
76 !\b!?\b?_\bs_\bt_\br_\bi_\bn_\bg[\b[?\b?]\b]
77 Refer to the most recent command containing _\bs_\bt_\br_\bi_\bn_\bg.
78 The trailing ?\b? may be omitted if _\bs_\bt_\br_\bi_\bn_\bg is followed
79 immediately by a newline.
80 ^\b^_\bs_\bt_\br_\bi_\bn_\bg_\b1^\b^_\bs_\bt_\br_\bi_\bn_\bg_\b2^\b^
81 Quick substitution. Repeat the last command,
82 replacing _\bs_\bt_\br_\bi_\bn_\bg_\b1 with _\bs_\bt_\br_\bi_\bn_\bg_\b2. Equivalent to
83 ``!!:s/_\bs_\bt_\br_\bi_\bn_\bg_\b1/_\bs_\bt_\br_\bi_\bn_\bg_\b2/'' (see M\bMo\bod\bdi\bif\bfi\bie\ber\brs\bs below).
84 !\b!#\b# The entire command line typed so far.
85
86 W\bWo\bor\brd\bd D\bDe\bes\bsi\big\bgn\bna\bat\bto\bor\brs\bs
87 Word designators are used to select desired words from the
88 event. A :\b: separates the event specification from the
89 word designator. It may be omitted if the word designator
90 begins with a ^\b^, $\b$, *\b*, -\b-, or %\b%. Words are numbered from
91 the beginning of the line, with the first word being
92 denoted by 0 (zero). Words are inserted into the current
93 line separated by single spaces.
94
95 0\b0 (\b(z\bze\ber\bro\bo)\b)
96 The zeroth word. For the shell, this is the com-
97 mand word.
98 _\bn The _\bnth word.
99 ^\b^ The first argument. That is, word 1.
100 $\b$ The last argument.
101 %\b% The word matched by the most recent `?_\bs_\bt_\br_\bi_\bn_\bg?'
102 search.
103 _\bx-\b-_\by A range of words; `-_\by' abbreviates `0-_\by'.
104 *\b* All of the words but the zeroth. This is a synonym
105 for `_\b1_\b-_\b$'. It is not an error to use *\b* if there is
106 just one word in the event; the empty string is
107 returned in that case.
108 x\bx*\b* Abbreviates _\bx_\b-_\b$.
109 x\bx-\b- Abbreviates _\bx_\b-_\b$ like x\bx*\b*, but omits the last word.
110
111 If a word designator is supplied without an event specifi-
112 cation, the previous command is used as the event.
113
114 M\bMo\bod\bdi\bif\bfi\bie\ber\brs\bs
115 After the optional word designator, there may appear a
116 sequence of one or more of the following modifiers, each
117 preceded by a `:'.
118
119 h\bh Remove a trailing file name component, leaving only
120 the head.
121 t\bt Remove all leading file name components, leaving
122 the tail.
123 r\br Remove a trailing suffix of the form _\b._\bx_\bx_\bx, leaving
124 the basename.
125 e\be Remove all but the trailing suffix.
126 p\bp Print the new command but do not execute it.
127
128
129
130 GNU History 4.3 2002 January 31 2
131
132
133
134
135
136 HISTORY(3) HISTORY(3)
137
138
139 q\bq Quote the substituted words, escaping further sub-
140 stitutions.
141 x\bx Quote the substituted words as with q\bq, but break
142 into words at b\bbl\bla\ban\bnk\bks\bs and newlines.
143 s\bs/\b/_\bo_\bl_\bd/\b/_\bn_\be_\bw/\b/
144 Substitute _\bn_\be_\bw for the first occurrence of _\bo_\bl_\bd in
145 the event line. Any delimiter can be used in place
146 of /. The final delimiter is optional if it is the
147 last character of the event line. The delimiter
148 may be quoted in _\bo_\bl_\bd and _\bn_\be_\bw with a single back-
149 slash. If & appears in _\bn_\be_\bw, it is replaced by _\bo_\bl_\bd.
150 A single backslash will quote the &. If _\bo_\bl_\bd is
151 null, it is set to the last _\bo_\bl_\bd substituted, or, if
152 no previous history substitutions took place, the
153 last _\bs_\bt_\br_\bi_\bn_\bg in a !\b!?\b?_\bs_\bt_\br_\bi_\bn_\bg[\b[?\b?]\b] search.
154 &\b& Repeat the previous substitution.
155 g\bg Cause changes to be applied over the entire event
156 line. This is used in conjunction with `:\b:s\bs' (e.g.,
157 `:\b:g\bgs\bs/\b/_\bo_\bl_\bd/\b/_\bn_\be_\bw/\b/') or `:\b:&\b&'. If used with `:\b:s\bs', any
158 delimiter can be used in place of /, and the final
159 delimiter is optional if it is the last character
160 of the event line.
161
162 P\bPR\bRO\bOG\bGR\bRA\bAM\bMM\bMI\bIN\bNG\bG W\bWI\bIT\bTH\bH H\bHI\bIS\bST\bTO\bOR\bRY\bY F\bFU\bUN\bNC\bCT\bTI\bIO\bON\bNS\bS
163 This section describes how to use the History library in
164 other programs.
165
166 I\bIn\bnt\btr\bro\bod\bdu\buc\bct\bti\bio\bon\bn t\bto\bo H\bHi\bis\bst\bto\bor\bry\by
167 The programmer using the History library has available
168 functions for remembering lines on a history list, associ-
169 ating arbitrary data with a line, removing lines from the
170 list, searching through the list for a line containing an
171 arbitrary text string, and referencing any line in the
172 list directly. In addition, a history _\be_\bx_\bp_\ba_\bn_\bs_\bi_\bo_\bn function
173 is available which provides for a consistent user inter-
174 face across different programs.
175
176 The user using programs written with the History library
177 has the benefit of a consistent user interface with a set
178 of well-known commands for manipulating the text of previ-
179 ous lines and using that text in new commands. The basic
180 history manipulation commands are identical to the history
181 substitution provided by b\bba\bas\bsh\bh.
182
183 If the programmer desires, he can use the Readline
184 library, which includes some history manipulation by
185 default, and has the added advantage of command line edit-
186 ing.
187
188 Before declaring any functions using any functionality the
189 History library provides in other code, an application
190 writer should include the file _\b<_\br_\be_\ba_\bd_\bl_\bi_\bn_\be_\b/_\bh_\bi_\bs_\bt_\bo_\br_\by_\b._\bh_\b> in any
191 file that uses the History library's features. It sup-
192 plies extern declarations for all of the library's public
193
194
195
196 GNU History 4.3 2002 January 31 3
197
198
199
200
201
202 HISTORY(3) HISTORY(3)
203
204
205 functions and variables, and declares all of the public
206 data structures.
207
208
209 H\bHi\bis\bst\bto\bor\bry\by S\bSt\bto\bor\bra\bag\bge\be
210 The history list is an array of history entries. A his-
211 tory entry is declared as follows:
212
213 _\bt_\by_\bp_\be_\bd_\be_\bf _\bv_\bo_\bi_\bd _\b* h\bhi\bis\bst\btd\bda\bat\bta\ba_\b_t\bt;\b;
214
215 typedef struct _hist_entry {
216 char *line;
217 histdata_t data;
218 } HIST_ENTRY;
219
220 The history list itself might therefore be declared as
221
222 _\bH_\bI_\bS_\bT_\b__\bE_\bN_\bT_\bR_\bY _\b*_\b* t\bth\bhe\be_\b_h\bhi\bis\bst\bto\bor\bry\by_\b_l\bli\bis\bst\bt;\b;
223
224 The state of the History library is encapsulated into a
225 single structure:
226
227 /*
228 * A structure used to pass around the current state of the history.
229 */
230 typedef struct _hist_state {
231 HIST_ENTRY **entries; /* Pointer to the entries themselves. */
232 int offset; /* The location pointer within this array. */
233 int length; /* Number of elements within this array. */
234 int size; /* Number of slots allocated to this array. */
235 int flags;
236 } HISTORY_STATE;
237
238 If the flags member includes H\bHS\bS_\b_S\bST\bTI\bIF\bFL\bLE\bED\bD, the history has
239 been stifled.
240
241 H\bHi\bis\bst\bto\bor\bry\by F\bFu\bun\bnc\bct\bti\bio\bon\bns\bs
242 This section describes the calling sequence for the vari-
243 ous functions exported by the GNU History library.
244
245 I\bIn\bni\bit\bti\bia\bal\bli\biz\bzi\bin\bng\bg H\bHi\bis\bst\bto\bor\bry\by a\ban\bnd\bd S\bSt\bta\bat\bte\be M\bMa\ban\bna\bag\bge\bem\bme\ben\bnt\bt
246 This section describes functions used to initialize and
247 manage the state of the History library when you want to
248 use the history functions in your program.
249
250 _\bv_\bo_\bi_\bd u\bus\bsi\bin\bng\bg_\b_h\bhi\bis\bst\bto\bor\bry\by (_\bv_\bo_\bi_\bd)
251 Begin a session in which the history functions might be
252 used. This initializes the interactive variables.
253
254 _\bH_\bI_\bS_\bT_\bO_\bR_\bY_\b__\bS_\bT_\bA_\bT_\bE _\b* h\bhi\bis\bst\bto\bor\bry\by_\b_g\bge\bet\bt_\b_h\bhi\bis\bst\bto\bor\bry\by_\b_s\bst\bta\bat\bte\be (_\bv_\bo_\bi_\bd)
255 Return a structure describing the current state of the
256 input history.
257
258 _\bv_\bo_\bi_\bd h\bhi\bis\bst\bto\bor\bry\by_\b_s\bse\bet\bt_\b_h\bhi\bis\bst\bto\bor\bry\by_\b_s\bst\bta\bat\bte\be (_\bH_\bI_\bS_\bT_\bO_\bR_\bY_\b__\bS_\bT_\bA_\bT_\bE _\b*_\bs_\bt_\ba_\bt_\be)
259
260
261
262 GNU History 4.3 2002 January 31 4
263
264
265
266
267
268 HISTORY(3) HISTORY(3)
269
270
271 Set the state of the history list according to _\bs_\bt_\ba_\bt_\be.
272
273
274 H\bHi\bis\bst\bto\bor\bry\by L\bLi\bis\bst\bt M\bMa\ban\bna\bag\bge\bem\bme\ben\bnt\bt
275 These functions manage individual entries on the history
276 list, or set parameters managing the list itself.
277
278 _\bv_\bo_\bi_\bd a\bad\bdd\bd_\b_h\bhi\bis\bst\bto\bor\bry\by (_\bc_\bo_\bn_\bs_\bt _\bc_\bh_\ba_\br _\b*_\bs_\bt_\br_\bi_\bn_\bg)
279 Place _\bs_\bt_\br_\bi_\bn_\bg at the end of the history list. The associ-
280 ated data field (if any) is set to N\bNU\bUL\bLL\bL.
281
282 _\bH_\bI_\bS_\bT_\b__\bE_\bN_\bT_\bR_\bY _\b* r\bre\bem\bmo\bov\bve\be_\b_h\bhi\bis\bst\bto\bor\bry\by (_\bi_\bn_\bt _\bw_\bh_\bi_\bc_\bh)
283 Remove history entry at offset _\bw_\bh_\bi_\bc_\bh from the history.
284 The removed element is returned so you can free the line,
285 data, and containing structure.
286
287 _\bH_\bI_\bS_\bT_\b__\bE_\bN_\bT_\bR_\bY _\b* r\bre\bep\bpl\bla\bac\bce\be_\b_h\bhi\bis\bst\bto\bor\bry\by_\b_e\ben\bnt\btr\bry\by (_\bi_\bn_\bt _\bw_\bh_\bi_\bc_\bh_\b, _\bc_\bo_\bn_\bs_\bt _\bc_\bh_\ba_\br
288 _\b*_\bl_\bi_\bn_\be_\b, _\bh_\bi_\bs_\bt_\bd_\ba_\bt_\ba_\b__\bt _\bd_\ba_\bt_\ba)
289 Make the history entry at offset _\bw_\bh_\bi_\bc_\bh have _\bl_\bi_\bn_\be and _\bd_\ba_\bt_\ba.
290 This returns the old entry so you can dispose of the data.
291 In the case of an invalid _\bw_\bh_\bi_\bc_\bh, a N\bNU\bUL\bLL\bL pointer is
292 returned.
293
294 _\bv_\bo_\bi_\bd c\bcl\ble\bea\bar\br_\b_h\bhi\bis\bst\bto\bor\bry\by (_\bv_\bo_\bi_\bd)
295 Clear the history list by deleting all the entries.
296
297 _\bv_\bo_\bi_\bd s\bst\bti\bif\bfl\ble\be_\b_h\bhi\bis\bst\bto\bor\bry\by (_\bi_\bn_\bt _\bm_\ba_\bx)
298 Stifle the history list, remembering only the last _\bm_\ba_\bx
299 entries.
300
301 _\bi_\bn_\bt u\bun\bns\bst\bti\bif\bfl\ble\be_\b_h\bhi\bis\bst\bto\bor\bry\by (_\bv_\bo_\bi_\bd)
302 Stop stifling the history. This returns the previously-
303 set maximum number of history entries (as set by s\bst\bti\bi-\b-
304 f\bfl\ble\be_\b_h\bhi\bis\bst\bto\bor\bry\by(\b()\b)). history was stifled. The value is posi-
305 tive if the history was stifled, negative if it wasn't.
306
307 _\bi_\bn_\bt h\bhi\bis\bst\bto\bor\bry\by_\b_i\bis\bs_\b_s\bst\bti\bif\bfl\ble\bed\bd (_\bv_\bo_\bi_\bd)
308 Returns non-zero if the history is stifled, zero if it is
309 not.
310
311
312 I\bIn\bnf\bfo\bor\brm\bma\bat\bti\bio\bon\bn A\bAb\bbo\bou\but\bt t\bth\bhe\be H\bHi\bis\bst\bto\bor\bry\by L\bLi\bis\bst\bt
313 These functions return information about the entire his-
314 tory list or individual list entries.
315
316 _\bH_\bI_\bS_\bT_\b__\bE_\bN_\bT_\bR_\bY _\b*_\b* h\bhi\bis\bst\bto\bor\bry\by_\b_l\bli\bis\bst\bt (_\bv_\bo_\bi_\bd)
317 Return a N\bNU\bUL\bLL\bL terminated array of _\bH_\bI_\bS_\bT_\b__\bE_\bN_\bT_\bR_\bY _\b* which is
318 the current input history. Element 0 of this list is the
319 beginning of time. If there is no history, return N\bNU\bUL\bLL\bL.
320
321 _\bi_\bn_\bt w\bwh\bhe\ber\bre\be_\b_h\bhi\bis\bst\bto\bor\bry\by (_\bv_\bo_\bi_\bd)
322 Returns the offset of the current history element.
323
324 _\bH_\bI_\bS_\bT_\b__\bE_\bN_\bT_\bR_\bY _\b* c\bcu\bur\brr\bre\ben\bnt\bt_\b_h\bhi\bis\bst\bto\bor\bry\by (_\bv_\bo_\bi_\bd)
325
326
327
328 GNU History 4.3 2002 January 31 5
329
330
331
332
333
334 HISTORY(3) HISTORY(3)
335
336
337 Return the history entry at the current position, as
338 determined by w\bwh\bhe\ber\bre\be_\b_h\bhi\bis\bst\bto\bor\bry\by(\b()\b). If there is no entry
339 there, return a N\bNU\bUL\bLL\bL pointer.
340
341 _\bH_\bI_\bS_\bT_\b__\bE_\bN_\bT_\bR_\bY _\b* h\bhi\bis\bst\bto\bor\bry\by_\b_g\bge\bet\bt (_\bi_\bn_\bt _\bo_\bf_\bf_\bs_\be_\bt)
342 Return the history entry at position _\bo_\bf_\bf_\bs_\be_\bt, starting from
343 h\bhi\bis\bst\bto\bor\bry\by_\b_b\bba\bas\bse\be. If there is no entry there, or if _\bo_\bf_\bf_\bs_\be_\bt is
344 greater than the history length, return a N\bNU\bUL\bLL\bL pointer.
345
346 _\bi_\bn_\bt h\bhi\bis\bst\bto\bor\bry\by_\b_t\bto\bot\bta\bal\bl_\b_b\bby\byt\bte\bes\bs (_\bv_\bo_\bi_\bd)
347 Return the number of bytes that the primary history
348 entries are using. This function returns the sum of the
349 lengths of all the lines in the history.
350
351
352 M\bMo\bov\bvi\bin\bng\bg A\bAr\bro\bou\bun\bnd\bd t\bth\bhe\be H\bHi\bis\bst\bto\bor\bry\by L\bLi\bis\bst\bt
353 These functions allow the current index into the history
354 list to be set or changed.
355
356 _\bi_\bn_\bt h\bhi\bis\bst\bto\bor\bry\by_\b_s\bse\bet\bt_\b_p\bpo\bos\bs (_\bi_\bn_\bt _\bp_\bo_\bs)
357 Set the current history offset to _\bp_\bo_\bs, an absolute index
358 into the list. Returns 1 on success, 0 if _\bp_\bo_\bs is less
359 than zero or greater than the number of history entries.
360
361 _\bH_\bI_\bS_\bT_\b__\bE_\bN_\bT_\bR_\bY _\b* p\bpr\bre\bev\bvi\bio\bou\bus\bs_\b_h\bhi\bis\bst\bto\bor\bry\by (_\bv_\bo_\bi_\bd)
362 Back up the current history offset to the previous history
363 entry, and return a pointer to that entry. If there is no
364 previous entry, return a N\bNU\bUL\bLL\bL pointer.
365
366 _\bH_\bI_\bS_\bT_\b__\bE_\bN_\bT_\bR_\bY _\b* n\bne\bex\bxt\bt_\b_h\bhi\bis\bst\bto\bor\bry\by (_\bv_\bo_\bi_\bd)
367 Move the current history offset forward to the next his-
368 tory entry, and return the a pointer to that entry. If
369 there is no next entry, return a N\bNU\bUL\bLL\bL pointer.
370
371
372 S\bSe\bea\bar\brc\bch\bhi\bin\bng\bg t\bth\bhe\be H\bHi\bis\bst\bto\bor\bry\by L\bLi\bis\bst\bt
373 These functions allow searching of the history list for
374 entries containing a specific string. Searching may be
375 performed both forward and backward from the current his-
376 tory position. The search may be _\ba_\bn_\bc_\bh_\bo_\br_\be_\bd, meaning that
377 the string must match at the beginning of the history
378 entry.
379
380 _\bi_\bn_\bt h\bhi\bis\bst\bto\bor\bry\by_\b_s\bse\bea\bar\brc\bch\bh (_\bc_\bo_\bn_\bs_\bt _\bc_\bh_\ba_\br _\b*_\bs_\bt_\br_\bi_\bn_\bg_\b, _\bi_\bn_\bt _\bd_\bi_\br_\be_\bc_\bt_\bi_\bo_\bn)
381 Search the history for _\bs_\bt_\br_\bi_\bn_\bg, starting at the current
382 history offset. If _\bd_\bi_\br_\be_\bc_\bt_\bi_\bo_\bn is less than 0, then the
383 search is through previous entries, otherwise through sub-
384 sequent entries. If _\bs_\bt_\br_\bi_\bn_\bg is found, then the current
385 history index is set to that history entry, and the value
386 returned is the offset in the line of the entry where
387 _\bs_\bt_\br_\bi_\bn_\bg was found. Otherwise, nothing is changed, and a -1
388 is returned.
389
390 _\bi_\bn_\bt h\bhi\bis\bst\bto\bor\bry\by_\b_s\bse\bea\bar\brc\bch\bh_\b_p\bpr\bre\bef\bfi\bix\bx (_\bc_\bo_\bn_\bs_\bt _\bc_\bh_\ba_\br _\b*_\bs_\bt_\br_\bi_\bn_\bg_\b, _\bi_\bn_\bt
391
392
393
394 GNU History 4.3 2002 January 31 6
395
396
397
398
399
400 HISTORY(3) HISTORY(3)
401
402
403 _\bd_\bi_\br_\be_\bc_\bt_\bi_\bo_\bn)
404 Search the history for _\bs_\bt_\br_\bi_\bn_\bg, starting at the current
405 history offset. The search is anchored: matching lines
406 must begin with _\bs_\bt_\br_\bi_\bn_\bg. If _\bd_\bi_\br_\be_\bc_\bt_\bi_\bo_\bn is less than 0, then
407 the search is through previous entries, otherwise through
408 subsequent entries. If _\bs_\bt_\br_\bi_\bn_\bg is found, then the current
409 history index is set to that entry, and the return value
410 is 0. Otherwise, nothing is changed, and a -1 is
411 returned.
412
413 _\bi_\bn_\bt h\bhi\bis\bst\bto\bor\bry\by_\b_s\bse\bea\bar\brc\bch\bh_\b_p\bpo\bos\bs (_\bc_\bo_\bn_\bs_\bt _\bc_\bh_\ba_\br _\b*_\bs_\bt_\br_\bi_\bn_\bg_\b, _\bi_\bn_\bt _\bd_\bi_\br_\be_\bc_\bt_\bi_\bo_\bn_\b,
414 _\bi_\bn_\bt _\bp_\bo_\bs)
415 Search for _\bs_\bt_\br_\bi_\bn_\bg in the history list, starting at _\bp_\bo_\bs, an
416 absolute index into the list. If _\bd_\bi_\br_\be_\bc_\bt_\bi_\bo_\bn is negative,
417 the search proceeds backward from _\bp_\bo_\bs, otherwise forward.
418 Returns the absolute index of the history element where
419 _\bs_\bt_\br_\bi_\bn_\bg was found, or -1 otherwise.
420
421
422 M\bMa\ban\bna\bag\bgi\bin\bng\bg t\bth\bhe\be H\bHi\bis\bst\bto\bor\bry\by F\bFi\bil\ble\be
423 The History library can read the history from and write it
424 to a file. This section documents the functions for man-
425 aging a history file.
426
427 _\bi_\bn_\bt r\bre\bea\bad\bd_\b_h\bhi\bis\bst\bto\bor\bry\by (_\bc_\bo_\bn_\bs_\bt _\bc_\bh_\ba_\br _\b*_\bf_\bi_\bl_\be_\bn_\ba_\bm_\be)
428 Add the contents of _\bf_\bi_\bl_\be_\bn_\ba_\bm_\be to the history list, a line
429 at a time. If _\bf_\bi_\bl_\be_\bn_\ba_\bm_\be is N\bNU\bUL\bLL\bL, then read from _\b~_\b/_\b._\bh_\bi_\bs_\b-
430 _\bt_\bo_\br_\by. Returns 0 if successful, or e\ber\brr\brn\bno\bo if not.
431
432 _\bi_\bn_\bt r\bre\bea\bad\bd_\b_h\bhi\bis\bst\bto\bor\bry\by_\b_r\bra\ban\bng\bge\be (_\bc_\bo_\bn_\bs_\bt _\bc_\bh_\ba_\br _\b*_\bf_\bi_\bl_\be_\bn_\ba_\bm_\be_\b, _\bi_\bn_\bt _\bf_\br_\bo_\bm_\b,
433 _\bi_\bn_\bt _\bt_\bo)
434 Read a range of lines from _\bf_\bi_\bl_\be_\bn_\ba_\bm_\be, adding them to the
435 history list. Start reading at line _\bf_\br_\bo_\bm and end at _\bt_\bo.
436 If _\bf_\br_\bo_\bm is zero, start at the beginning. If _\bt_\bo is less
437 than _\bf_\br_\bo_\bm, then read until the end of the file. If _\bf_\bi_\bl_\be_\b-
438 _\bn_\ba_\bm_\be is N\bNU\bUL\bLL\bL, then read from _\b~_\b/_\b._\bh_\bi_\bs_\bt_\bo_\br_\by. Returns 0 if
439 successful, or e\ber\brr\brn\bno\bo if not.
440
441 _\bi_\bn_\bt w\bwr\bri\bit\bte\be_\b_h\bhi\bis\bst\bto\bor\bry\by (_\bc_\bo_\bn_\bs_\bt _\bc_\bh_\ba_\br _\b*_\bf_\bi_\bl_\be_\bn_\ba_\bm_\be)
442 Write the current history to _\bf_\bi_\bl_\be_\bn_\ba_\bm_\be, overwriting _\bf_\bi_\bl_\be_\b-
443 _\bn_\ba_\bm_\be if necessary. If _\bf_\bi_\bl_\be_\bn_\ba_\bm_\be is N\bNU\bUL\bLL\bL, then write the
444 history list to _\b~_\b/_\b._\bh_\bi_\bs_\bt_\bo_\br_\by. Returns 0 on success, or
445 e\ber\brr\brn\bno\bo on a read or write error.
446
447
448 _\bi_\bn_\bt a\bap\bpp\bpe\ben\bnd\bd_\b_h\bhi\bis\bst\bto\bor\bry\by (_\bi_\bn_\bt _\bn_\be_\bl_\be_\bm_\be_\bn_\bt_\bs_\b, _\bc_\bo_\bn_\bs_\bt _\bc_\bh_\ba_\br _\b*_\bf_\bi_\bl_\be_\bn_\ba_\bm_\be)
449 Append the last _\bn_\be_\bl_\be_\bm_\be_\bn_\bt_\bs of the history list to _\bf_\bi_\bl_\be_\bn_\ba_\bm_\be.
450 If _\bf_\bi_\bl_\be_\bn_\ba_\bm_\be is N\bNU\bUL\bLL\bL, then append to _\b~_\b/_\b._\bh_\bi_\bs_\bt_\bo_\br_\by. Returns 0
451 on success, or e\ber\brr\brn\bno\bo on a read or write error.
452
453 _\bi_\bn_\bt h\bhi\bis\bst\bto\bor\bry\by_\b_t\btr\bru\bun\bnc\bca\bat\bte\be_\b_f\bfi\bil\ble\be (_\bc_\bo_\bn_\bs_\bt _\bc_\bh_\ba_\br _\b*_\bf_\bi_\bl_\be_\bn_\ba_\bm_\be_\b, _\bi_\bn_\bt
454 _\bn_\bl_\bi_\bn_\be_\bs)
455 Truncate the history file _\bf_\bi_\bl_\be_\bn_\ba_\bm_\be, leaving only the last
456 _\bn_\bl_\bi_\bn_\be_\bs lines. If _\bf_\bi_\bl_\be_\bn_\ba_\bm_\be is N\bNU\bUL\bLL\bL, then _\b~_\b/_\b._\bh_\bi_\bs_\bt_\bo_\br_\by is
457
458
459
460 GNU History 4.3 2002 January 31 7
461
462
463
464
465
466 HISTORY(3) HISTORY(3)
467
468
469 truncated. Returns 0 on success, or e\ber\brr\brn\bno\bo on failure.
470
471
472 H\bHi\bis\bst\bto\bor\bry\by E\bEx\bxp\bpa\ban\bns\bsi\bio\bon\bn
473 These functions implement history expansion.
474
475 _\bi_\bn_\bt h\bhi\bis\bst\bto\bor\bry\by_\b_e\bex\bxp\bpa\ban\bnd\bd (_\bc_\bh_\ba_\br _\b*_\bs_\bt_\br_\bi_\bn_\bg_\b, _\bc_\bh_\ba_\br _\b*_\b*_\bo_\bu_\bt_\bp_\bu_\bt)
476 Expand _\bs_\bt_\br_\bi_\bn_\bg, placing the result into _\bo_\bu_\bt_\bp_\bu_\bt, a pointer
477 to a string. Returns:
478 0 If no expansions took place (or, if the only
479 change in the text was the removal of escape
480 characters preceding the history expansion
481 character);
482 1 if expansions did take place;
483 -1 if there was an error in expansion;
484 2 if the returned line should be displayed,
485 but not executed, as with the :\b:p\bp modifier.
486 If an error ocurred in expansion, then _\bo_\bu_\bt_\bp_\bu_\bt contains a
487 descriptive error message.
488
489 _\bc_\bh_\ba_\br _\b* g\bge\bet\bt_\b_h\bhi\bis\bst\bto\bor\bry\by_\b_e\bev\bve\ben\bnt\bt (_\bc_\bo_\bn_\bs_\bt _\bc_\bh_\ba_\br _\b*_\bs_\bt_\br_\bi_\bn_\bg_\b, _\bi_\bn_\bt _\b*_\bc_\bi_\bn_\bd_\be_\bx_\b,
490 _\bi_\bn_\bt _\bq_\bc_\bh_\ba_\br)
491 Returns the text of the history event beginning at _\bs_\bt_\br_\bi_\bn_\bg
492 + _\b*_\bc_\bi_\bn_\bd_\be_\bx. _\b*_\bc_\bi_\bn_\bd_\be_\bx is modified to point to after the
493 event specifier. At function entry, _\bc_\bi_\bn_\bd_\be_\bx points to the
494 index into _\bs_\bt_\br_\bi_\bn_\bg where the history event specification
495 begins. _\bq_\bc_\bh_\ba_\br is a character that is allowed to end the
496 event specification in addition to the ``normal'' termi-
497 nating characters.
498
499 _\bc_\bh_\ba_\br _\b*_\b* h\bhi\bis\bst\bto\bor\bry\by_\b_t\bto\bok\bke\ben\bni\biz\bze\be (_\bc_\bo_\bn_\bs_\bt _\bc_\bh_\ba_\br _\b*_\bs_\bt_\br_\bi_\bn_\bg)
500 Return an array of tokens parsed out of _\bs_\bt_\br_\bi_\bn_\bg, much as
501 the shell might. The tokens are split on the characters
502 in the h\bhi\bis\bst\bto\bor\bry\by_\b_w\bwo\bor\brd\bd_\b_d\bde\bel\bli\bim\bmi\bit\bte\ber\brs\bs variable, and shell quoting
503 conventions are obeyed.
504
505 _\bc_\bh_\ba_\br _\b* h\bhi\bis\bst\bto\bor\bry\by_\b_a\bar\brg\bg_\b_e\bex\bxt\btr\bra\bac\bct\bt (_\bi_\bn_\bt _\bf_\bi_\br_\bs_\bt_\b, _\bi_\bn_\bt _\bl_\ba_\bs_\bt_\b, _\bc_\bo_\bn_\bs_\bt
506 _\bc_\bh_\ba_\br _\b*_\bs_\bt_\br_\bi_\bn_\bg)
507 Extract a string segment consisting of the _\bf_\bi_\br_\bs_\bt through
508 _\bl_\ba_\bs_\bt arguments present in _\bs_\bt_\br_\bi_\bn_\bg. Arguments are split
509 using h\bhi\bis\bst\bto\bor\bry\by_\b_t\bto\bok\bke\ben\bni\biz\bze\be(\b()\b).
510
511
512 H\bHi\bis\bst\bto\bor\bry\by V\bVa\bar\bri\bia\bab\bbl\ble\bes\bs
513 This section describes the externally-visible variables
514 exported by the GNU History Library.
515
516 _\bi_\bn_\bt h\bhi\bis\bst\bto\bor\bry\by_\b_b\bba\bas\bse\be
517 The logical offset of the first entry in the history list.
518
519 _\bi_\bn_\bt h\bhi\bis\bst\bto\bor\bry\by_\b_l\ble\ben\bng\bgt\bth\bh
520 The number of entries currently stored in the history
521 list.
522
523
524
525
526 GNU History 4.3 2002 January 31 8
527
528
529
530
531
532 HISTORY(3) HISTORY(3)
533
534
535 _\bi_\bn_\bt h\bhi\bis\bst\bto\bor\bry\by_\b_m\bma\bax\bx_\b_e\ben\bnt\btr\bri\bie\bes\bs
536 The maximum number of history entries. This must be
537 changed using s\bst\bti\bif\bfl\ble\be_\b_h\bhi\bis\bst\bto\bor\bry\by(\b()\b).
538
539 _\bc_\bh_\ba_\br h\bhi\bis\bst\bto\bor\bry\by_\b_e\bex\bxp\bpa\ban\bns\bsi\bio\bon\bn_\b_c\bch\bha\bar\br
540 The character that introduces a history event. The
541 default is !\b!. Setting this to 0 inhibits history expan-
542 sion.
543
544 _\bc_\bh_\ba_\br h\bhi\bis\bst\bto\bor\bry\by_\b_s\bsu\bub\bbs\bst\bt_\b_c\bch\bha\bar\br
545 The character that invokes word substitution if found at
546 the start of a line. The default is ^\b^.
547
548 _\bc_\bh_\ba_\br h\bhi\bis\bst\bto\bor\bry\by_\b_c\bco\bom\bmm\bme\ben\bnt\bt_\b_c\bch\bha\bar\br
549 During tokenization, if this character is seen as the
550 first character of a word, then it and all subsequent
551 characters up to a newline are ignored, suppressing his-
552 tory expansion for the remainder of the line. This is
553 disabled by default.
554
555 _\bc_\bh_\ba_\br _\b* h\bhi\bis\bst\bto\bor\bry\by_\b_w\bwo\bor\brd\bd_\b_d\bde\bel\bli\bim\bmi\bit\bte\ber\brs\bs
556 The characters that separate tokens for h\bhi\bis\bst\bto\bor\bry\by_\b_t\bto\bok\bk-\b-
557 e\ben\bni\biz\bze\be(\b()\b). The default value is "\b" \\b\t\bt\\b\n\bn(\b()\b)<\b<>\b>;\b;&\b&|\b|"\b".
558
559 _\bc_\bh_\ba_\br _\b* h\bhi\bis\bst\bto\bor\bry\by_\b_n\bno\bo_\b_e\bex\bxp\bpa\ban\bnd\bd_\b_c\bch\bha\bar\brs\bs
560 The list of characters which inhibit history expansion if
561 found immediately following h\bhi\bis\bst\bto\bor\bry\by_\b_e\bex\bxp\bpa\ban\bns\bsi\bio\bon\bn_\b_c\bch\bha\bar\br. The
562 default is space, tab, newline, \\b\r\br, and =\b=.
563
564 _\bc_\bh_\ba_\br _\b* h\bhi\bis\bst\bto\bor\bry\by_\b_s\bse\bea\bar\brc\bch\bh_\b_d\bde\bel\bli\bim\bmi\bit\bte\ber\br_\b_c\bch\bha\bar\brs\bs
565 The list of additional characters which can delimit a his-
566 tory search string, in addition to space, tab, _\b: and _\b? in
567 the case of a substring search. The default is empty.
568
569 _\bi_\bn_\bt h\bhi\bis\bst\bto\bor\bry\by_\b_q\bqu\buo\bot\bte\bes\bs_\b_i\bin\bnh\bhi\bib\bbi\bit\bt_\b_e\bex\bxp\bpa\ban\bns\bsi\bio\bon\bn
570 If non-zero, single-quoted words are not scanned for the
571 history expansion character. The default value is 0.
572
573 _\br_\bl_\b__\bl_\bi_\bn_\be_\bb_\bu_\bf_\b__\bf_\bu_\bn_\bc_\b__\bt _\b* h\bhi\bis\bst\bto\bor\bry\by_\b_i\bin\bnh\bhi\bib\bbi\bit\bt_\b_e\bex\bxp\bpa\ban\bns\bsi\bio\bon\bn_\b_f\bfu\bun\bnc\bct\bti\bio\bon\bn
574 This should be set to the address of a function that takes
575 two arguments: a c\bch\bha\bar\br *\b* (_\bs_\bt_\br_\bi_\bn_\bg) and an i\bin\bnt\bt index into
576 that string (_\bi). It should return a non-zero value if the
577 history expansion starting at _\bs_\bt_\br_\bi_\bn_\bg_\b[_\bi_\b] should not be per-
578 formed; zero if the expansion should be done. It is
579 intended for use by applications like b\bba\bas\bsh\bh that use the
580 history expansion character for additional purposes. By
581 default, this variable is set to N\bNU\bUL\bLL\bL.
582
583 F\bFI\bIL\bLE\bES\bS
584 _\b~_\b/_\b._\bh_\bi_\bs_\bt_\bo_\br_\by
585 Default filename for reading and writing saved his-
586 tory
587
588
589
590
591
592 GNU History 4.3 2002 January 31 9
593
594
595
596
597
598 HISTORY(3) HISTORY(3)
599
600
601 S\bSE\bEE\bE A\bAL\bLS\bSO\bO
602 _\bT_\bh_\be _\bG_\bn_\bu _\bR_\be_\ba_\bd_\bl_\bi_\bn_\be _\bL_\bi_\bb_\br_\ba_\br_\by, Brian Fox and Chet Ramey
603 _\bT_\bh_\be _\bG_\bn_\bu _\bH_\bi_\bs_\bt_\bo_\br_\by _\bL_\bi_\bb_\br_\ba_\br_\by, Brian Fox and Chet Ramey
604 _\bb_\ba_\bs_\bh(1)
605 _\br_\be_\ba_\bd_\bl_\bi_\bn_\be(3)
606
607 A\bAU\bUT\bTH\bHO\bOR\bRS\bS
608 Brian Fox, Free Software Foundation
609 bfox@gnu.org
610
611 Chet Ramey, Case Western Reserve University
612 chet@ins.CWRU.Edu
613
614 B\bBU\bUG\bG R\bRE\bEP\bPO\bOR\bRT\bTS\bS
615 If you find a bug in the h\bhi\bis\bst\bto\bor\bry\by library, you should
616 report it. But first, you should make sure that it really
617 is a bug, and that it appears in the latest version of the
618 h\bhi\bis\bst\bto\bor\bry\by library that you have.
619
620 Once you have determined that a bug actually exists, mail
621 a bug report to _\bb_\bu_\bg_\b-_\br_\be_\ba_\bd_\bl_\bi_\bn_\be@_\bg_\bn_\bu_\b._\bo_\br_\bg. If you have a fix,
622 you are welcome to mail that as well! Suggestions and
623 `philosophical' bug reports may be mailed to _\bb_\bu_\bg_\b-_\br_\be_\ba_\bd_\b-
624 _\bl_\bi_\bn_\be@_\bg_\bn_\bu_\b._\bo_\br_\bg or posted to the Usenet newsgroup
625 g\bgn\bnu\bu.\b.b\bba\bas\bsh\bh.\b.b\bbu\bug\bg.
626
627 Comments and bug reports concerning this manual page
628 should be directed to _\bc_\bh_\be_\bt_\b@_\bi_\bn_\bs_\b._\bC_\bW_\bR_\bU_\b._\bE_\bd_\bu.
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658 GNU History 4.3 2002 January 31 10
659
660
This page took 0.064827 seconds and 4 git commands to generate.