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