Commit | Line | Data |
---|---|---|
775e241e TT |
1 | This document details the changes between this version, readline-7.0, and the |
2 | previous version, readline-6.3. | |
3 | ||
4 | 1. Changes to Readline | |
5 | ||
6 | a. A bug that caused vi-mode `.' to be unable to redo `c', `d', and `y' | |
7 | commands with modifiers was fixed. | |
8 | ||
9 | b. Fixed a bug that caused callback mode to dump core when reading a | |
10 | multiple-key sequence (e.g., arrow keys). | |
11 | ||
12 | c. Fixed a bug that caused the redisplay code to erase some of the line when | |
13 | using horizontal scrolling with incremental search. | |
14 | ||
15 | d. Readline's input handler now performs signal processing if read(2) is | |
16 | interrupted by SIGALRM or SIGVTALRM. | |
17 | ||
18 | e. Fixed a problem with revert-all-at-newline freeing freed memory. | |
19 | ||
20 | f. Clarified the documentation for the history_quotes_inhibit_expansion | |
21 | variable to note that it inhibits scanning for the history comment | |
22 | character and that it only affects double-quoted strings. | |
23 | ||
24 | g. Fixed an off-by-one error in the prompt printed when performing searches. | |
25 | ||
26 | h. Use pselect(2), if available, to wait for input before calling read(2), so | |
27 | a SIGWINCH can interrupt it, since it doesn't interrupt read(2). | |
28 | ||
29 | i. Some memory leaks caused by signals interrupting filename completion have | |
30 | been fixed. | |
31 | ||
32 | j. Reading EOF twice on a non-empty line causes EOF to be returned, rather | |
33 | than the partial line. This can cause partial lines to be executed on | |
34 | SIGHUP, for example. | |
35 | ||
36 | k. Fixed a bug concerning deleting multibyte characters from the search | |
37 | string while performing an incremental search. | |
38 | ||
39 | l. Fixed a bug with tilde expanding directory names in filename completion. | |
40 | ||
41 | m. Fixed a bug that did not allow binding sequences beginning with a `\'. | |
42 | ||
43 | n. Fixed a redisplay bug involving incorrect line wrapping when the prompt | |
44 | contains a multibyte character in the last screen column. | |
45 | ||
46 | o. Fixed a bug that caused history expansion to disregard characters that are | |
47 | documented to delimit a history event specifier without requiring `:'. | |
48 | ||
49 | p. Fixed a bug that could cause reading past the end of a string when reading | |
50 | the value when binding the set of isearch terminators. | |
51 | ||
52 | q. Fixed a bug that caused readline commands that depend on knowing which | |
53 | key invoked them to misbehave when dispatching key sequences that are | |
54 | prefixes of other key bindings. | |
55 | ||
56 | r. Paren matching now works in vi insert mode. | |
57 | ||
58 | s. Colored completion prefixes are now displayed using a different color, less | |
59 | likely to collide with files. | |
60 | ||
61 | t. Fixed a bug that caused vi-mode character search to misbehave when | |
62 | running in callback mode. | |
63 | ||
64 | u. Fixed a bug that caused output to be delayed when input is coming from a | |
65 | macro in vi-mode. | |
66 | ||
67 | v. Fixed a bug that caused the vi-mode `.' command to misbehave when redoing | |
68 | a multi-key key sequence via a macro. | |
69 | ||
70 | w. Fixed a bug that caused problems with applications that supply their own | |
71 | input function when performing completion. | |
72 | ||
73 | x. When read returns -1/EIO when attempting to read a key, return an error | |
74 | instead of line termination back to the caller. | |
75 | ||
76 | y. Updated tty auditing feature based on patch from Red Hat. | |
77 | ||
78 | z. Fixed a bug that could cause the history library to crash on overflows | |
79 | introduced by malicious editing of timestamps in the history file. | |
80 | ||
81 | aa. The history file writing functions only attempt to create and use a backup | |
82 | history file if the history file exists and is a regular file. | |
83 | ||
84 | bb. Fixed an out-of-bounds read in readline's internal tilde expansion interface. | |
85 | ||
86 | cc. Fixed several redisplay bugs with prompt strings containing multibyte | |
87 | and non-visible characters whose physical length is longer than the screen | |
88 | width. | |
89 | ||
90 | dd. Fixed a redisplay bug with prompt strings containing invisible characters | |
91 | whose physical length exceeds the screen width and using incremental search. | |
92 | ||
93 | ee. Readline prints more descriptive error messages when it encounters errors | |
94 | while reading an inputrc file. | |
95 | ||
96 | ff. Fixed a bug in the character insertion code that attempts to optimize | |
97 | typeahead when it reads a character that is not bound to self-insert and | |
98 | resets the key sequence state. | |
99 | ||
100 | gg. When refreshing the line as the result of a key sequence, Readline attempts | |
101 | to redraw only the last line of a multiline prompt. | |
102 | ||
103 | hh. Fixed an issue that caused completion of git commands to display | |
104 | incorrectly when using colored-completion-prefix. | |
105 | ||
106 | ii. Fixed several redisplay bugs having to do with multibyte characters and | |
107 | invisible characters in prompt strings. | |
108 | ||
109 | jj. Fixed a bug that caused mode strings to be displayed incorrectly if the | |
110 | prompt was shorter than the mode string. | |
111 | ||
112 | 2. New Features in Readline | |
113 | ||
114 | a. The history truncation code now uses the same error recovery mechansim as | |
115 | the history writing code, and restores the old version of the history file | |
116 | on error. The error recovery mechanism handles symlinked history files. | |
117 | ||
118 | b. There is a new bindable variable, `enable-bracketed-paste', which enables | |
119 | support for a terminal's bracketed paste mode. | |
120 | ||
121 | c. The editing mode indicators can now be strings and are user-settable | |
122 | (new `emacs-mode-string', `vi-cmd-mode-string' and `vi-ins-mode-string' | |
123 | variables). Mode strings can contain invisible character sequences. | |
124 | Setting mode strings to null strings restores the defaults. | |
125 | ||
126 | d. Prompt expansion adds the mode string to the last line of a multi-line | |
127 | prompt (one with embedded newlines). | |
128 | ||
129 | e. There is a new bindable variable, `colored-completion-prefix', which, if | |
130 | set, causes the common prefix of a set of possible completions to be | |
131 | displayed in color. | |
132 | ||
133 | f. There is a new bindable command `vi-yank-pop', a vi-mode version of emacs- | |
134 | mode yank-pop. | |
135 | ||
136 | g. The redisplay code underwent several efficiency improvements for multibyte | |
137 | locales. | |
138 | ||
139 | h. The insert-char function attempts to batch-insert all pending typeahead | |
140 | that maps to self-insert, as long as it is coming from the terminal. | |
141 | ||
142 | i. rl_callback_sigcleanup: a new application function that can clean up and | |
143 | unset any state set by readline's callback mode. Intended to be used | |
144 | after a signal. | |
145 | ||
146 | j. If an incremental search string has its last character removed with DEL, the | |
147 | resulting empty search string no longer matches the previous line. | |
148 | ||
149 | k. If readline reads a history file that begins with `#' (or the value of | |
150 | the history comment character) and has enabled history timestamps, the history | |
151 | entries are assumed to be delimited by timestamps. This allows multi-line | |
152 | history entries. | |
153 | ||
154 | l. Readline now throws an error if it parses a key binding without a terminating | |
155 | `:' or whitespace. | |
156 | ||
157 | m. The default binding for ^W in vi mode now uses word boundaries specified | |
158 | by Posix (vi-unix-word-rubout is bindable command name). | |
159 | ||
160 | n. rl_clear_visible_line: new application-callable function; clears all | |
161 | screen lines occupied by the current visible readline line. | |
162 | ||
163 | o. rl_tty_set_echoing: application-callable function that controls whether | |
164 | or not readline thinks it is echoing terminal output. | |
165 | ||
166 | p. Handle >| and strings of digits preceding and following redirection | |
167 | specifications as single tokens when tokenizing the line for history | |
168 | expansion. | |
169 | ||
170 | q. Fixed a bug with displaying completions when the prefix display length | |
171 | is greater than the length of the completions to be displayed. | |
172 | ||
173 | r. The :p history modifier now applies to the entire line, so any expansion | |
174 | specifying :p causes the line to be printed instead of expanded. | |
175 | ||
176 | s. New application-callable function: rl_pending_signal(): returns the signal | |
177 | number of any signal readline has caught but not yet handled. | |
178 | ||
179 | t. New application-settable variable: rl_persistent_signal_handlers: if set | |
180 | to a non-zero value, readline will enable the readline-6.2 signal handler | |
181 | behavior in callback mode: handlers are installed when | |
182 | rl_callback_handler_install is called and removed removed when a complete | |
183 | line has been read. | |
184 | ||
185 | ------------------------------------------------------------------------------- | |
186 | This document details the changes between this version, readline-6.3, and the | |
187 | previous version, readline-6.2. | |
188 | ||
189 | 1. Changes to Readline | |
190 | ||
191 | a. Fixed a bug that did not allow the `dd', `cc', or `yy' vi editing mode | |
192 | commands to work on the entire line. | |
193 | ||
194 | b. Fixed a bug that caused redisplay problems with prompts longer than 128 | |
195 | characters and history searches. | |
196 | ||
197 | c. Fixed a bug that caused readline to try and run code to modify its idea | |
198 | of the screen size in a signal handler context upon receiving a SIGWINCH. | |
199 | ||
200 | d. Fixed a bug that caused the `meta' key to be enabled beyond the duration | |
201 | of an individual call top readline(). | |
202 | ||
203 | e. Added a workaround for a wcwidth bug in Mac OS X that caused readline's | |
204 | redisplay to mishandle zero-width combining characters. | |
205 | ||
206 | f. Fixed a bug that caused readline to `forget' part of a key sequence when | |
207 | a multiple-key sequence caused it to break out of an incremental search. | |
208 | ||
209 | g. Fixed bugs that caused readline to execute code in a signal handler | |
210 | context if interrupted while reading from the file system during completion. | |
211 | ||
212 | h. Fixed a bug that caused readline to `forget' part of a key sequence when | |
213 | reading an unbound multi-character key sequence. | |
214 | ||
215 | i. Fixed a bug that caused Readline's signal handlers to be installed beyond | |
216 | the bounds of a single call to readline(). | |
217 | ||
218 | j. Fixed a bug that caused the `.' command to not redo the most recent `R' | |
219 | command in vi mode. | |
220 | ||
221 | k. Fixed a bug that caused ignoring case in completion matches to result in | |
222 | readline using the wrong match. | |
223 | ||
224 | l. Paren matching now works in vi insert mode. | |
225 | ||
226 | m. Fix menu-completion to make show-all-if-ambiguous and menu-complete-display-prefix | |
227 | work together. | |
228 | ||
229 | n. Fixed a bug that didn't allow the `cc', `dd', or `yy' commands to be redone | |
230 | in vi editing mode. | |
231 | ||
232 | o. Fixed a bug that caused the filename comparison code to not compare | |
233 | multibyte characters correctly when using case-sensitive or case-mapping | |
234 | comparisons. | |
235 | ||
236 | p. Fixed the input reading loop to call the input hook function only when there | |
237 | is no terminal input available. | |
238 | ||
239 | q. Fixed a bug that caused binding a macro to a multi-character key sequence | |
240 | where the sequence and macro value share a common prefix to not perform | |
241 | the macro replacement. | |
242 | ||
243 | r. Fixed several redisplay errors with multibyte characters and prompts | |
244 | containing invisible characters when using horizontal scrolling. | |
245 | ||
246 | s. Fixed a bug that caused redisplay errors when trying to overwrite | |
247 | existing characters using multibyte characters. | |
248 | ||
249 | t. Fixed a bug in vi mode that caused the arrow keys to set the saved last | |
250 | vi-mode command to the wrong value. | |
251 | ||
252 | u. Fixed a bug that caused double-quoted strings to be scanned incorrectly | |
253 | when being used as the value of a readline variable assignment. | |
254 | ||
255 | v. Fixed a bug with vi mode that prevented `.' from repeating a command | |
256 | entered on a previous line (command). | |
257 | ||
258 | w. Fixed a bug that could cause completion to core dump if it was interrupted | |
259 | by a signal. | |
260 | ||
261 | x. Fixed a bug that could cause readline to crash and seg fault attempting to | |
262 | expand an empty history entry. | |
263 | ||
264 | y. Fixed a bug that caused display problems with multi-line prompts containing | |
265 | invisible characters on multiple lines. | |
266 | ||
267 | z. Fixed a bug that caused effects made by undoing changes to a history line to | |
268 | be discarded. | |
269 | ||
270 | 2. New Features in Readline | |
271 | ||
272 | a. Readline is now more responsive to SIGHUP and other fatal signals when | |
273 | reading input from the terminal or performing word completion but no | |
274 | longer attempts to run any not-allowable functions from a signal handler | |
275 | context. | |
276 | ||
277 | b. There are new bindable commands to search the history for the string of | |
278 | characters between the beginning of the line and the point | |
279 | (history-substring-search-forward, history-substring-search-backward) | |
280 | ||
281 | c. Readline allows quoted strings as the values of variables when setting | |
282 | them with `set'. As a side effect, trailing spaces and tabs are ignored | |
283 | when setting a string variable's value. | |
284 | ||
285 | d. The history library creates a backup of the history file when writing it | |
286 | and restores the backup on a write error. | |
287 | ||
288 | e. New application-settable variable: rl_filename_stat_hook: a function called | |
289 | with a filename before using it in a call to stat(2). Bash uses it to | |
290 | expand shell variables so things like $HOME/Downloads have a slash | |
291 | appended. | |
292 | ||
293 | f. New bindable function `print-last-kbd-macro', prints the most-recently- | |
294 | defined keyboard macro in a reusable format. | |
295 | ||
296 | g. New user-settable variable `colored-stats', enables use of colored text | |
297 | to denote file types when displaying possible completions (colored analog | |
298 | of visible-stats). | |
299 | ||
300 | h. New user-settable variable `keyseq-timout', acts as an inter-character | |
301 | timeout when reading input or incremental search strings. | |
302 | ||
303 | i. New application-callable function: rl_clear_history. Clears the history list | |
304 | and frees all readline-associated private data. | |
305 | ||
306 | j. New user-settable variable, show-mode-in-prompt, adds a characters to the | |
307 | beginning of the prompt indicating the current editing mode. | |
308 | ||
309 | k. New application-settable variable: rl_input_available_hook; function to be | |
310 | called when readline needs to check whether there is data available on its | |
311 | input source. The default hook checks rl_instream. | |
312 | ||
313 | l. Readline calls an application-set event hook (rl_signal_event_hook) after | |
314 | it gets a signal while reading input (read returns -1/EINTR but readline | |
315 | does not handle the signal immediately) to allow the application to handle | |
316 | or otherwise note it. Not currently called for SIGHUP or SIGTERM. | |
317 | ||
318 | m. If the user-settable variable `history-size' is set to a value less than | |
319 | 0, the history list size is unlimited. | |
320 | ||
321 | n. When creating shared libraries on Mac OS X, the pathname written into the | |
322 | library (install_name) no longer includes the minor version number. | |
323 | ||
324 | ------------------------------------------------------------------------------- | |
cc88a640 JK |
325 | This document details the changes between this version, readline-6.2, |
326 | and the previous version, readline-6.1. | |
327 | ||
328 | 1. Changes to Readline | |
329 | ||
330 | a. Fixed a bug that caused the unconverted filename to be added to the list of | |
331 | completions when the application specified filename conversion functions. | |
332 | ||
333 | b. Fixed a bug that caused the wrong filename to be passed to opendir when the | |
334 | application has specified a filename dequoting function. | |
335 | ||
336 | c. Fixed a bug when repeating a character search in vi mode in the case where | |
337 | there was no search to repeat. | |
338 | ||
339 | d. When show-all-if-ambiguous is set, the completion routines no longer insert | |
340 | a common match prefix that is shorter than the text being completed. | |
341 | ||
342 | e. The full set of vi editing commands may now be used in callback mode. | |
343 | ||
344 | f. Fixed a bug that caused readline to not update its idea of the terminal | |
345 | dimensions while running in `no-echo' mode. | |
346 | ||
347 | h. Fixed a bug that caused readline to dump core if an application called | |
348 | rl_prep_terminal without setting rl_instream. | |
349 | ||
350 | i. Fixed a bug that caused meta-prefixed characters bound to incremental | |
351 | search forward or backward to not be recognized if they were typed | |
352 | subsequently. | |
353 | ||
354 | j. The incremental search code treats key sequences that map to the same | |
355 | functions as (default) ^G, ^W, and ^Y as equivalent to those characters. | |
356 | ||
357 | k. Fixed a bug in menu-complete that caused it to misbehave with large | |
358 | negative argument. | |
359 | ||
360 | l. Fixed a bug that caused vi-mode yank-last-arg to ring the bell when invoked | |
361 | at the end of the line. | |
362 | ||
363 | m. Fixed a bug that made an explicit argument of 0 to yank-last-arg behave | |
364 | as if it were a negative argument. | |
365 | ||
366 | n. Fixed a bug that caused directory names in words to be completed to not | |
367 | be dequoted correctly. | |
368 | ||
369 | 2. New Features in Readline | |
370 | ||
371 | a. The history library does not try to write the history filename in the | |
372 | current directory if $HOME is unset. This closes a potential security | |
373 | problem if the application does not specify a history filename. | |
374 | ||
375 | b. New bindable variable `completion-display-width' to set the number of | |
376 | columns used when displaying completions. | |
377 | ||
378 | c. New bindable variable `completion-case-map' to cause case-insensitive | |
379 | completion to treat `-' and `_' as identical. | |
380 | ||
381 | d. There are new bindable vi-mode command names to avoid readline's case- | |
382 | insensitive matching not allowing them to be bound separately. | |
383 | ||
384 | e. New bindable variable `menu-complete-display-prefix' causes the menu | |
385 | completion code to display the common prefix of the possible completions | |
386 | before cycling through the list, instead of after. | |
387 | ||
388 | ------------------------------------------------------------------------------- | |
389 | This document details the changes between this version, readline-6.1, | |
390 | and the previous version, readline-6.0. | |
391 | ||
392 | 1. Changes to Readline | |
393 | ||
394 | a. The SIGWINCH signal handler now avoids calling the redisplay code if | |
395 | one arrives while in the middle of redisplay. | |
396 | ||
397 | b. Changes to the timeout code to make sure that timeout values greater | |
398 | than one second are handled better. | |
399 | ||
400 | c. Fixed a bug in the redisplay code that was triggered by a prompt | |
401 | containing invisible characters exactly the width of the screen. | |
402 | ||
403 | d. Fixed a bug in the redisplay code encountered when running in horizontal | |
404 | scroll mode. | |
405 | ||
406 | e. Fixed a bug that prevented menu completion from properly completing | |
407 | filenames. | |
408 | ||
409 | f. Fixed a redisplay bug caused by a multibyte character causing a line to | |
410 | wrap. | |
411 | ||
412 | g. Fixed a bug that caused key sequences of two characters to not be | |
413 | recognized when a longer sequence identical in the first two characters | |
414 | was bound. | |
415 | ||
416 | h. Fixed a bug that caused history expansion to be attempted on $'...' | |
417 | single-quoted strings. | |
418 | ||
419 | i. Fixed a bug that caused incorrect redisplay when the prompt contained | |
420 | multibyte characters in an `invisible' sequence bracketed by \[ and | |
421 | \]. | |
422 | ||
423 | j. Fixed a bug that caused history expansion to short-circuit after | |
424 | encountering a multibyte character. | |
425 | ||
426 | k. Fixed a bug that caused applications using the callback interface to not | |
427 | react to SIGINT (or other signals) until another character arrived. | |
428 | ||
429 | 2. New Features in Readline | |
430 | ||
431 | a. New bindable function: menu-complete-backward. | |
432 | ||
433 | b. In the vi insertion keymap, C-n is now bound to menu-complete by default, | |
434 | and C-p to menu-complete-backward. | |
435 | ||
436 | c. When in vi command mode, repeatedly hitting ESC now does nothing, even | |
437 | when ESC introduces a bound key sequence. This is closer to how | |
438 | historical vi behaves. | |
439 | ||
440 | d. New bindable function: skip-csi-sequence. Can be used as a default to | |
441 | consume key sequences generated by keys like Home and End without having | |
442 | to bind all keys. | |
443 | ||
444 | e. New application-settable function: rl_filename_rewrite_hook. Can be used | |
445 | to rewite or modify filenames read from the file system before they are | |
446 | compared to the word to be completed. | |
447 | ||
448 | f. New bindable variable: skip-completed-text, active when completing in the | |
449 | middle of a word. If enabled, it means that characters in the completion | |
450 | that match characters in the remainder of the word are "skipped" rather | |
451 | than inserted into the line. | |
452 | ||
453 | g. The pre-readline-6.0 version of menu completion is available as | |
454 | "old-menu-complete" for users who do not like the readline-6.0 version. | |
455 | ||
456 | h. New bindable variable: echo-control-characters. If enabled, and the | |
457 | tty ECHOCTL bit is set, controls the echoing of characters corresponding | |
458 | to keyboard-generated signals. | |
459 | ||
460 | i. New bindable variable: enable-meta-key. Controls whether or not readline | |
461 | sends the smm/rmm sequences if the terminal indicates it has a meta key | |
462 | that enables eight-bit characters. | |
463 | ||
464 | ------------------------------------------------------------------------------- | |
465 | This document details the changes between this version, readline-6.0, | |
466 | and the previous version, readline-5.2. | |
467 | ||
468 | 1. Changes to Readline | |
469 | ||
470 | a. Fixed a number of redisplay errors in environments supporting multibyte | |
471 | characters. | |
472 | ||
473 | b. Fixed bugs in vi command mode that caused motion commands to inappropriately | |
474 | set the mark. | |
475 | ||
476 | c. When using the arrow keys in vi insertion mode, readline allows movement | |
477 | beyond the current end of the line (unlike command mode). | |
478 | ||
479 | d. Fixed bugs that caused readline to loop when the terminal has been taken | |
480 | away and reads return -1/EIO. | |
481 | ||
482 | e. Fixed bugs in redisplay occurring when displaying prompts containing | |
483 | invisible characters. | |
484 | ||
485 | f. Fixed a bug that caused the completion append character to not be reset to | |
486 | the default after an application-specified completion function changed it. | |
487 | ||
488 | g. Fixed a problem that caused incorrect positioning of the cursor while in | |
489 | emacs editing mode when moving forward at the end of a line while using | |
490 | a locale supporting multibyte characters. | |
491 | ||
492 | h. Fixed an off-by-one error that caused readline to drop every 511th | |
493 | character of buffered input. | |
494 | ||
495 | i. Fixed a bug that resulted in SIGTERM not being caught or cleaned up. | |
496 | ||
497 | j. Fixed redisplay bugs caused by multiline prompts with invisible characters | |
498 | or no characters following the final newline. | |
499 | ||
500 | k. Fixed redisplay bug caused by prompts consisting solely of invisible | |
501 | characters. | |
502 | ||
503 | l. Fixed a bug in the code that buffers characters received very quickly in | |
504 | succession which caused characters to be dropped. | |
505 | ||
506 | m. Fixed a bug that caused readline to reference uninitialized data structures | |
507 | if it received a SIGWINCH before completing initialzation. | |
508 | ||
509 | n. Fixed a bug that caused the vi-mode `last command' to be set incorrectly | |
510 | and therefore unrepeatable. | |
511 | ||
512 | o. Fixed a bug that caused readline to disable echoing when it was being used | |
513 | with an output file descriptor that was not a terminal. | |
514 | ||
515 | p. Readline now blocks SIGINT while manipulating internal data structures | |
516 | during redisplay. | |
517 | ||
518 | q. Fixed a bug in redisplay that caused readline to segfault when pasting a | |
519 | very long line (over 130,000 characters). | |
520 | ||
521 | r. Fixed bugs in redisplay when using prompts with no visible printing | |
522 | characters. | |
523 | ||
524 | s. Fixed a bug that caused redisplay errors when using prompts with invisible | |
525 | characters and numeric arguments to a command in a multibyte locale. | |
526 | ||
527 | t. Fixed a bug that caused redisplay errors when using prompts with invisible | |
528 | characters spanning more than two physical screen lines. | |
529 | ||
530 | 2. New Features in Readline | |
531 | ||
532 | a. A new variable, rl_sort_completion_matches; allows applications to inhibit | |
533 | match list sorting (but beware: some things don't work right if | |
534 | applications do this). | |
535 | ||
536 | b. A new variable, rl_completion_invoking_key; allows applications to discover | |
537 | the key that invoked rl_complete or rl_menu_complete. | |
538 | ||
539 | c. The functions rl_block_sigint and rl_release_sigint are now public and | |
540 | available to calling applications who want to protect critical sections | |
541 | (like redisplay). | |
542 | ||
543 | d. The functions rl_save_state and rl_restore_state are now public and | |
544 | available to calling applications; documented rest of readline's state | |
545 | flag values. | |
546 | ||
547 | e. A new user-settable variable, `history-size', allows setting the maximum | |
548 | number of entries in the history list. | |
549 | ||
550 | f. There is a new implementation of menu completion, with several improvements | |
551 | over the old; the most notable improvement is a better `completions | |
552 | browsing' mode. | |
553 | ||
554 | g. The menu completion code now uses the rl_menu_completion_entry_function | |
555 | variable, allowing applications to provide their own menu completion | |
556 | generators. | |
557 | ||
558 | h. There is support for replacing a prefix of a pathname with a `...' when | |
559 | displaying possible completions. This is controllable by setting the | |
560 | `completion-prefix-display-length' variable. Matches with a common prefix | |
561 | longer than this value have the common prefix replaced with `...'. | |
562 | ||
563 | i. There is a new `revert-all-at-newline' variable. If enabled, readline will | |
564 | undo all outstanding changes to all history lines when `accept-line' is | |
565 | executed. | |
566 | ||
567 | ------------------------------------------------------------------------------- | |
568 | This document details the changes between this version, readline-5.2, | |
569 | and the previous version, readline-5.1. | |
570 | ||
571 | 1. Changes to Readline | |
572 | ||
573 | a. Fixed a problem that caused segmentation faults when using readline in | |
574 | callback mode and typing consecutive DEL characters on an empty line. | |
575 | ||
576 | b. Fixed several redisplay problems with multibyte characters, all having to | |
577 | do with the different code paths and variable meanings between single-byte | |
578 | and multibyte character redisplay. | |
579 | ||
580 | c. Fixed a problem with key sequence translation when presented with the | |
581 | sequence \M-\C-x. | |
582 | ||
583 | d. Fixed a problem that prevented the `a' command in vi mode from being | |
584 | undone and redone properly. | |
585 | ||
586 | e. Fixed a problem that prevented empty inserts in vi mode from being undone | |
587 | properly. | |
588 | ||
589 | f. Fixed a problem that caused readline to initialize with an incorrect idea | |
590 | of whether or not the terminal can autowrap. | |
591 | ||
592 | g. Fixed output of key bindings (like bash `bind -p') to honor the setting of | |
593 | convert-meta and use \e where appropriate. | |
594 | ||
595 | h. Changed the default filename completion function to call the filename | |
596 | dequoting function if the directory completion hook isn't set. This means | |
597 | that any directory completion hooks need to dequote the directory name, | |
598 | since application-specific hooks need to know how the word was quoted, | |
599 | even if no other changes are made. | |
600 | ||
601 | i. Fixed a bug with creating the prompt for a non-interactive search string | |
602 | when there are non-printing characters in the primary prompt. | |
603 | ||
604 | j. Fixed a bug that caused prompts with invisible characters to be redrawn | |
605 | multiple times in a multibyte locale. | |
606 | ||
607 | k. Fixed a bug that could cause the key sequence scanning code to return the | |
608 | wrong function. | |
609 | ||
610 | l. Fixed a problem with the callback interface that caused it to fail when | |
611 | using multi-character keyboard macros. | |
612 | ||
613 | m. Fixed a bug that could cause a core dump when an edited history entry was | |
614 | re-executed under certain conditions. | |
615 | ||
616 | n. Fixed a bug that caused readline to reference freed memory when attmpting | |
617 | to display a portion of the prompt. | |
618 | ||
619 | o. Fixed a bug with prompt redisplay in a multi-byte locale to avoid redrawing | |
620 | the prompt and input line multiple times. | |
621 | ||
622 | p. Fixed history expansion to not be confused by here-string redirection. | |
623 | ||
624 | q. Readline no longer treats read errors by converting them to newlines, as | |
625 | it does with EOF. This caused partial lines to be returned from readline(). | |
626 | ||
627 | r. Fixed a redisplay bug that occurred in multibyte-capable locales when the | |
628 | prompt was one character longer than the screen width. | |
629 | ||
630 | 2. New Features in Readline | |
631 | ||
632 | a. Calling applications can now set the keyboard timeout to 0, allowing | |
633 | poll-like behavior. | |
634 | ||
635 | b. The value of SYS_INPUTRC (configurable at compilation time) is now used as | |
636 | the default last-ditch startup file. | |
637 | ||
638 | c. The history file reading functions now allow windows-like \r\n line | |
639 | terminators. | |
640 | ||
641 | ------------------------------------------------------------------------------- | |
5bdf8622 DJ |
642 | This document details the changes between this version, readline-5.1, |
643 | and the previous version, readline-5.0. | |
644 | ||
645 | 1. Changes to Readline | |
646 | ||
647 | a. Fixed a bug that caused multiliine prompts to be wrapped and displayed | |
648 | incorrectly. | |
649 | ||
650 | b. Fixed a bug that caused ^P/^N in emacs mode to fail to display the current | |
651 | line correctly. | |
652 | ||
653 | c. Fixed a problem in computing the number of invisible characters on the first | |
654 | line of a prompt whose length exceeds the screen width. | |
655 | ||
656 | d. Fixed vi-mode searching so that failure preserves the current line rather | |
657 | than the last line in the history list. | |
658 | ||
659 | e. Fixed the vi-mode `~' command (change-case) to have the correct behavior at | |
660 | end-of-line when manipulating multibyte characters. | |
661 | ||
662 | f. Fixed the vi-mode `r' command (change-char) to have the correct behavior at | |
663 | end-of-line when manipulating multibyte characters. | |
664 | ||
665 | g. Fixed multiple bugs in the redisplay of multibyte characters: displaying | |
666 | prompts longer than the screen width containing multibyte characters, | |
667 | ||
668 | h. Fix the calculation of the number of physical characters in the prompt | |
669 | string when it contains multibyte characters. | |
670 | ||
671 | i. A non-zero value for the `rl_complete_suppress_append' variable now causes | |
672 | no `/' to be appended to a directory name. | |
673 | ||
674 | j. Fixed forward-word and backward-word to work when words contained | |
675 | multibyte characters. | |
676 | ||
677 | k. Fixed a bug in finding the delimiter of a `?' substring when performing | |
678 | history expansion in a locale that supports multibyte characters. | |
679 | ||
680 | l. Fixed a memory leak caused by not freeing the timestamp in a history entry. | |
681 | ||
682 | m. Fixed a bug that caused "\M-x" style key bindings to not obey the setting | |
683 | of the `convert-meta' variable. | |
684 | ||
685 | n. Fixed saving and restoring primary prompt when prompting for incremental | |
686 | and non-incremental searches; search prompts now display multibyte | |
687 | characters correctly. | |
688 | ||
689 | o. Fixed a bug that caused keys originally bound to self-insert but shadowed | |
690 | by a multi-character key sequence to not be inserted. | |
691 | ||
692 | p. Fixed code so rl_prep_term_function and rl_deprep_term_function aren't | |
693 | dereferenced if NULL (matching the documentation). | |
694 | ||
695 | q. Extensive changes to readline to add enough state so that commands | |
696 | requiring additional characters (searches, multi-key sequences, numeric | |
697 | arguments, commands requiring an additional specifier character like | |
698 | vi-mode change-char, etc.) work without synchronously waiting for | |
699 | additional input. | |
700 | ||
701 | r. Lots of changes so readline builds and runs on MinGW. | |
702 | ||
703 | s. Readline no longer tries to modify the terminal settings when running in | |
704 | callback mode. | |
705 | ||
706 | t. The Readline display code no longer sets the location of the last invisible | |
707 | character in the prompt if the \[\] sequence is empty. | |
708 | ||
709 | u. The `change-case' command now correctly changes the case of multibyte | |
710 | characters. | |
711 | ||
712 | v. Changes to the shared library construction scripts to deal with Windows | |
713 | DLL naming conventions for Cygwin. | |
714 | ||
715 | w. Fixed the redisplay code to avoid core dumps resulting from a poorly-timed | |
716 | SIGWINCH. | |
717 | ||
718 | x. Fixed the non-incremental search code in vi mode to dispose of any current | |
719 | undo list when copying a line from the history into the current editing | |
720 | buffer. | |
721 | ||
722 | y. Fixed a bug that caused reversing the incremental search direction to | |
723 | not work correctly. | |
724 | ||
725 | z. Fixed the vi-mode `U' command to only undo up to the first time insert mode | |
726 | was entered, as Posix specifies. | |
727 | ||
728 | aa. Fixed a bug in the vi-mode `r' command that left the cursor in the wrong | |
729 | place. | |
730 | ||
731 | bb. Fixed a redisplay bug caused by moving the cursor vertically to a line | |
732 | with invisible characters in the prompt in a multibyte locale. | |
733 | ||
734 | cc. Fixed a bug that could cause the terminal special chars to be bound in the | |
735 | wrong keymap in vi mode. | |
736 | ||
737 | 2. New Features in Readline | |
738 | ||
739 | a. The key sequence sent by the keypad `delete' key is now automatically | |
740 | bound to delete-char. | |
741 | ||
742 | b. A negative argument to menu-complete now cycles backward through the | |
743 | completion list. | |
744 | ||
745 | c. A new bindable readline variable: bind-tty-special-chars. If non-zero, | |
746 | readline will bind the terminal special characters to their readline | |
747 | equivalents when it's called (on by default). | |
748 | ||
749 | d. New bindable command: vi-rubout. Saves deleted text for possible | |
750 | reinsertion, as with any vi-mode `text modification' command; `X' is bound | |
751 | to this in vi command mode. | |
752 | ||
753 | e. If the rl_completion_query_items is set to a value < 0, readline never | |
754 | asks the user whether or not to view the possible completions. | |
755 | ||
756 | f. The `C-w' binding in incremental search now understands multibyte | |
757 | characters. | |
758 | ||
759 | g. New application-callable auxiliary function, rl_variable_value, returns | |
760 | a string corresponding to a readline variable's value. | |
761 | ||
762 | h. When parsing inputrc files and variable binding commands, the parser | |
763 | strips trailing whitespace from values assigned to boolean variables | |
764 | before checking them. | |
765 | ||
766 | i. A new external application-controllable variable that allows the LINES | |
767 | and COLUMNS environment variables to set the window size regardless of | |
768 | what the kernel returns. | |
769 | ||
770 | ------------------------------------------------------------------------------- | |
771 | This document details the changes between this version, readline-5.0, | |
772 | and the previous version, readline-4.3. | |
773 | ||
774 | 1. Changes to Readline | |
775 | ||
776 | a. Fixes to avoid core dumps because of null pointer references in the | |
777 | multibyte character code. | |
778 | ||
779 | b. Fix to avoid infinite recursion caused by certain key combinations. | |
780 | ||
781 | c. Fixed a bug that caused the vi-mode `last command' to be set incorrectly. | |
782 | ||
783 | d. Readline no longer tries to read ahead more than one line of input, even | |
784 | when more is available. | |
785 | ||
786 | e. Fixed the code that adjusts the point to not mishandle null wide | |
787 | characters. | |
788 | ||
789 | f. Fixed a bug in the history expansion `g' modifier that caused it to skip | |
790 | every other match. | |
791 | ||
792 | g. Fixed a bug that caused the prompt to overwrite previous output when the | |
793 | output doesn't contain a newline and the locale supports multibyte | |
794 | characters. This same change fixes the problem of readline redisplay | |
795 | slowing down dramatically as the line gets longer in multibyte locales. | |
796 | ||
797 | h. History traversal with arrow keys in vi insertion mode causes the cursor | |
798 | to be placed at the end of the new line, like in emacs mode. | |
799 | ||
800 | i. The locale initialization code does a better job of using the right | |
801 | precedence and defaulting when checking the appropriate environment | |
802 | variables. | |
803 | ||
804 | j. Fixed the history word tokenizer to handle <( and >( better when used as | |
805 | part of bash. | |
806 | ||
807 | k. The overwrite mode code received several bug fixes to improve undo. | |
808 | ||
809 | l. Many speedups to the multibyte character redisplay code. | |
810 | ||
811 | m. The callback character reading interface should not hang waiting to read | |
812 | keyboard input. | |
813 | ||
814 | n. Fixed a bug with redoing vi-mode `s' command. | |
815 | ||
816 | o. The code that initializes the terminal tracks changes made to the terminal | |
817 | special characters with stty(1) (or equivalent), so that these changes | |
818 | are reflected in the readline bindings. New application-callable function | |
819 | to make it work: rl_tty_unset_default_bindings(). | |
820 | ||
821 | p. Fixed a bug that could cause garbage to be inserted in the buffer when | |
822 | changing character case in vi mode when using a multibyte locale. | |
823 | ||
824 | q. Fixed a bug in the redisplay code that caused problems on systems | |
825 | supporting multibyte characters when moving between history lines when the | |
826 | new line has more glyphs but fewer bytes. | |
827 | ||
828 | r. Undo and redo now work better after exiting vi insertion mode. | |
829 | ||
830 | s. Make sure system calls are restarted after a SIGWINCH is received using | |
831 | SA_RESTART. | |
832 | ||
833 | t. Improvements to the code that displays possible completions when using | |
834 | multibyte characters. | |
835 | ||
836 | u. Fixed a problem when parsing nested if statements in inputrc files. | |
837 | ||
838 | v. The completer now takes multibyte characters into account when looking for | |
839 | quoted substrings on which to perform completion. | |
840 | ||
841 | w. The history search functions now perform better bounds checking on the | |
842 | history list. | |
843 | ||
844 | x. Change to history expansion functions to treat `^' as equivalent to word | |
845 | one, as the documention states. | |
846 | ||
847 | y. Some changes to the display code to improve display and redisplay of | |
848 | multibyte characters. | |
849 | ||
850 | z. Changes to speed up the multibyte character redisplay code. | |
851 | ||
852 | aa. Fixed a bug in the vi-mode `E' command that caused it to skip over the | |
853 | last character of a word if invoked while point was on the word's | |
854 | next-to-last character. | |
855 | ||
856 | bb. Fixed a bug that could cause incorrect filename quoting when | |
857 | case-insensitive completion was enabled and the word being completed | |
858 | contained backslashes quoting word break characters. | |
859 | ||
860 | cc. Fixed a bug in redisplay triggered when the prompt string contains | |
861 | invisible characters. | |
862 | ||
863 | dd. Fixed some display (and other) bugs encountered in multibyte locales | |
864 | when a non-ascii character was the last character on a line. | |
865 | ||
866 | ee. Fixed some display bugs caused by multibyte characters in prompt strings. | |
867 | ||
868 | ff. Fixed a problem with history expansion caused by non-whitespace characters | |
869 | used as history word delimiters. | |
870 | ||
871 | gg. Fixed a problem that could cause readline to refer to freed memory when | |
872 | moving between history lines while doing searches. | |
873 | ||
874 | hh. Improvements to the code that expands and displays prompt strings | |
875 | containing multibyte characters. | |
876 | ||
877 | ii. Fixed a problem with vi-mode not correctly remembering the numeric argument | |
878 | to the last `c'hange command for later use with `.'. | |
879 | ||
880 | jj. Fixed a bug in vi-mode that caused multi-digit count arguments to work | |
881 | incorrectly. | |
882 | ||
883 | kk. Fixed a problem in vi-mode that caused the last text modification command | |
884 | to not be remembered across different command lines. | |
885 | ||
886 | ll. Fixed problems with changing characters and changing case at the end of | |
887 | the line. | |
888 | ||
889 | mm. Fixed a problem with readline saving the contents of the current line | |
890 | before beginning a non-interactive search. | |
891 | ||
892 | nn. Fixed a problem with EOF detection when using rl_event_hook. | |
893 | ||
894 | oo. Fixed a problem with the vi mode `p' and `P' commands ignoring numeric | |
895 | arguments. | |
896 | ||
897 | 2. New Features in Readline | |
898 | ||
899 | a. History expansion has a new `a' modifier equivalent to the `g' modifier | |
900 | for compatibility with the BSD csh. | |
901 | ||
902 | b. History expansion has a new `G' modifier equivalent to the BSD csh `g' | |
903 | modifier, which performs a substitution once per word. | |
904 | ||
905 | c. All non-incremental search operations may now undo the operation of | |
906 | replacing the current line with the history line. | |
907 | ||
908 | d. The text inserted by an `a' command in vi mode can be reinserted with | |
909 | `.'. | |
910 | ||
911 | e. New bindable variable, `show-all-if-unmodified'. If set, the readline | |
912 | completer will list possible completions immediately if there is more | |
913 | than one completion and partial completion cannot be performed. | |
914 | ||
915 | f. There is a new application-callable `free_history_entry()' function. | |
916 | ||
917 | g. History list entries now contain timestamp information; the history file | |
918 | functions know how to read and write timestamp information associated | |
919 | with each entry. | |
920 | ||
921 | h. Four new key binding functions have been added: | |
922 | ||
923 | rl_bind_key_if_unbound() | |
924 | rl_bind_key_if_unbound_in_map() | |
925 | rl_bind_keyseq_if_unbound() | |
926 | rl_bind_keyseq_if_unbound_in_map() | |
927 | ||
928 | i. New application variable, rl_completion_quote_character, set to any | |
929 | quote character readline finds before it calls the application completion | |
930 | function. | |
931 | ||
932 | j. New application variable, rl_completion_suppress_quote, settable by an | |
933 | application completion function. If set to non-zero, readline does not | |
934 | attempt to append a closing quote to a completed word. | |
935 | ||
936 | k. New application variable, rl_completion_found_quote, set to a non-zero | |
937 | value if readline determines that the word to be completed is quoted. | |
938 | Set before readline calls any application completion function. | |
939 | ||
940 | l. New function hook, rl_completion_word_break_hook, called when readline | |
941 | needs to break a line into words when completion is attempted. Allows | |
942 | the word break characters to vary based on position in the line. | |
943 | ||
944 | m. New bindable command: unix-filename-rubout. Does the same thing as | |
945 | unix-word-rubout, but adds `/' to the set of word delimiters. | |
946 | ||
947 | n. When listing completions, directories have a `/' appended if the | |
948 | `mark-directories' option has been enabled. | |
949 | ||
950 | ------------------------------------------------------------------------------- | |
9255ee31 EZ |
951 | This document details the changes between this version, readline-4.3, |
952 | and the previous version, readline-4.2a. | |
953 | ||
954 | 1. Changes to Readline | |
955 | ||
956 | a. Fixed output of comment-begin character when listing variable values. | |
957 | ||
958 | b. Added some default key bindings for common escape sequences produced by | |
959 | HOME and END keys. | |
960 | ||
961 | c. Fixed the mark handling code to be more emacs-compatible. | |
962 | ||
963 | d. A bug was fixed in the code that prints possible completions to keep it | |
964 | from printing empty strings in certain circumstances. | |
965 | ||
966 | e. Change the key sequence printing code to print ESC as M\- if ESC is a | |
967 | meta-prefix character -- it's easier for users to understand than \e. | |
968 | ||
969 | f. Fixed unstifle_history() to return values that match the documentation. | |
970 | ||
971 | g. Fixed the event loop (rl_event_hook) to handle the case where the input | |
972 | file descriptor is invalidated. | |
973 | ||
974 | h. Fixed the prompt display code to work better when the application has a | |
975 | custom redisplay function. | |
976 | ||
977 | i. Changes to make reading and writing the history file a little faster, and | |
978 | to cope with huge history files without calling abort(3) from xmalloc. | |
979 | ||
980 | j. The vi-mode `S' and `s' commands are now undone correctly. | |
981 | ||
982 | k. Fixed a problem which caused the display to be messed up when the last | |
983 | line of a multi-line prompt (possibly containing invisible characters) | |
984 | was longer than the screen width. | |
985 | ||
986 | 2. New Features in Readline | |
987 | ||
988 | a. Support for key `subsequences': allows, e.g., ESC and ESC-a to both | |
989 | be bound to readline functions. Now the arrow keys may be used in vi | |
990 | insert mode. | |
991 | ||
992 | b. When listing completions, and the number of lines displayed is more than | |
993 | the screen length, readline uses an internal pager to display the results. | |
994 | This is controlled by the `page-completions' variable (default on). | |
995 | ||
996 | c. New code to handle editing and displaying multibyte characters. | |
997 | ||
998 | d. The behavior introduced in bash-2.05a of deciding whether or not to | |
999 | append a slash to a completed name that is a symlink to a directory has | |
1000 | been made optional, controlled by the `mark-symlinked-directories' | |
1001 | variable (default is the 2.05a behavior). | |
1002 | ||
1003 | e. The `insert-comment' command now acts as a toggle if given a numeric | |
1004 | argument: if the first characters on the line don't specify a | |
1005 | comment, insert one; if they do, delete the comment text | |
1006 | ||
1007 | f. New application-settable completion variable: | |
1008 | rl_completion_mark_symlink_dirs, allows an application's completion | |
1009 | function to temporarily override the user's preference for appending | |
1010 | slashes to names which are symlinks to directories. | |
1011 | ||
1012 | g. New function available to application completion functions: | |
1013 | rl_completion_mode, to tell how the completion function was invoked | |
1014 | and decide which argument to supply to rl_complete_internal (to list | |
1015 | completions, etc.). | |
1016 | ||
1017 | h. Readline now has an overwrite mode, toggled by the `overwrite-mode' | |
1018 | bindable command, which could be bound to `Insert'. | |
1019 | ||
1020 | i. New application-settable completion variable: | |
1021 | rl_completion_suppress_append, inhibits appending of | |
1022 | rl_completion_append_character to completed words. | |
1023 | ||
1024 | j. New key bindings when reading an incremental search string: ^W yanks | |
1025 | the currently-matched word out of the current line into the search | |
1026 | string; ^Y yanks the rest of the current line into the search string, | |
1027 | DEL or ^H deletes characters from the search string. | |
1028 | ||
1029 | ------------------------------------------------------------------------------- | |
1030 | This document details the changes between this version, readline-4.2a, | |
1031 | and the previous version, readline-4.2. | |
1032 | ||
1033 | 1. Changes to Readline | |
1034 | ||
1035 | a. More `const' and type casting fixes. | |
1036 | ||
1037 | b. Changed rl_message() to use vsnprintf(3) (if available) to fix buffer | |
1038 | overflow problems. | |
1039 | ||
1040 | c. The completion code no longer appends a `/' or ` ' to a match when | |
1041 | completing a symbolic link that resolves to a directory name, unless | |
1042 | the match does not add anything to the word being completed. This | |
1043 | means that a tab will complete the word up to the full name, but not | |
1044 | add anything, and a subsequent tab will add a slash. | |
1045 | ||
1046 | d. Fixed a trivial typo that made the vi-mode `dT' command not work. | |
1047 | ||
1048 | e. Fixed the tty code so that ^S and ^Q can be inserted with rl_quoted_insert. | |
1049 | ||
1050 | f. Fixed the tty code so that ^V works more than once. | |
1051 | ||
1052 | g. Changed the use of __P((...)) for function prototypes to PARAMS((...)) | |
1053 | because the use of __P in typedefs conflicted g++ and glibc. | |
1054 | ||
1055 | h. The completion code now attempts to do a better job of preserving the | |
1056 | case of the word the user typed if ignoring case in completions. | |
1057 | ||
1058 | i. Readline defaults to not echoing the input and lets the terminal | |
1059 | initialization code enable echoing if there is a controlling terminal. | |
1060 | ||
1061 | j. The key binding code now processes only two hex digits after a `\x' | |
1062 | escape sequence, and the documentation was changed to note that the | |
1063 | octal and hex escape sequences result in an eight-bit value rather | |
1064 | than strict ASCII. | |
1065 | ||
1066 | k. Fixed a few places where negative array subscripts could have occurred. | |
1067 | ||
1068 | l. Fixed the vi-mode code to use a better method to determine the bounds of | |
1069 | the array used to hold the marks, and to avoid out-of-bounds references. | |
1070 | ||
1071 | m. Fixed the defines in chardefs.h to work better when chars are signed. | |
1072 | ||
1073 | n. Fixed configure.in to use the new names for bash autoconf macros. | |
1074 | ||
1075 | o. Readline no longer attempts to define its own versions of some ctype | |
1076 | macros if they are implemented as functions in libc but not as macros in | |
1077 | <ctype.h>. | |
1078 | ||
1079 | p. Fixed a problem where rl_backward could possibly set point to before | |
1080 | the beginning of the line. | |
1081 | ||
1082 | q. Fixed Makefile to not put -I/usr/include into CFLAGS, since it can cause | |
1083 | include file problems. | |
1084 | ||
1085 | 2. New Features in Readline | |
1086 | ||
1087 | a. Added extern declaration for rl_get_termcap to readline.h, making it a | |
1088 | public function (it was always there, just not in readline.h). | |
1089 | ||
1090 | b. New #defines in readline.h: RL_READLINE_VERSION, currently 0x0402, | |
1091 | RL_VERSION_MAJOR, currently 4, and RL_VERSION_MINOR, currently 2. | |
1092 | ||
1093 | c. New readline variable: rl_readline_version, mirrors RL_READLINE_VERSION. | |
1094 | ||
1095 | d. New bindable boolean readline variable: match-hidden-files. Controls | |
1096 | completion of files beginning with a `.' (on Unix). Enabled by default. | |
1097 | ||
1098 | e. The history expansion code now allows any character to terminate a | |
1099 | `:first-' modifier, like csh. | |
1100 | ||
1101 | f. The incremental search code remembers the last search string and uses | |
1102 | it if ^R^R is typed without a search string. | |
1103 | ||
1104 | h. New bindable variable `history-preserve-point'. If set, the history | |
1105 | code attempts to place the user at the same location on each history | |
1106 | line retrived with previous-history or next-history. | |
1107 | ||
1108 | ------------------------------------------------------------------------------- | |
1109 | This document details the changes between this version, readline-4.2, | |
1110 | and the previous version, readline-4.1. | |
1111 | ||
1112 | 1. Changes to Readline | |
1113 | ||
1114 | a. When setting the terminal attributes on systems using `struct termio', | |
1115 | readline waits for output to drain before changing the attributes. | |
1116 | ||
1117 | b. A fix was made to the history word tokenization code to avoid attempts to | |
1118 | dereference a null pointer. | |
1119 | ||
1120 | c. Readline now defaults rl_terminal_name to $TERM if the calling application | |
1121 | has left it unset, and tries to initialize with the resultant value. | |
1122 | ||
1123 | d. Instead of calling (*rl_getc_function)() directly to get input in certain | |
1124 | places, readline now calls rl_read_key() consistently. | |
1125 | ||
1126 | e. Fixed a bug in the completion code that allowed a backslash to quote a | |
1127 | single quote inside a single-quoted string. | |
1128 | ||
1129 | f. rl_prompt is no longer assigned directly from the argument to readline(), | |
1130 | but uses memory allocated by readline. This allows constant strings to | |
1131 | be passed to readline without problems arising when the prompt processing | |
1132 | code wants to modify the string. | |
1133 | ||
1134 | g. Fixed a bug that caused non-interactive history searches to return the | |
1135 | wrong line when performing multiple searches backward for the same string. | |
1136 | ||
1137 | h. Many variables, function arguments, and function return values are now | |
1138 | declared `const' where appropriate, to improve behavior when linking with | |
1139 | C++ code. | |
1140 | ||
1141 | i. The control character detection code now works better on systems where | |
1142 | `char' is unsigned by default. | |
1143 | ||
1144 | j. The vi-mode numeric argument is now capped at 999999, just like emacs mode. | |
1145 | ||
1146 | k. The Function, CPFunction, CPPFunction, and VFunction typedefs have been | |
1147 | replaced with a set of specific prototyped typedefs, though they are | |
1148 | still in the readline header files for backwards compatibility. | |
1149 | ||
1150 | m. Nearly all of the (undocumented) internal global variables in the library | |
1151 | now have an _rl_ prefix -- there were a number that did not, like | |
1152 | screenheight, screenwidth, alphabetic, etc. | |
1153 | ||
1154 | n. The ding() convenience function has been renamed to rl_ding(), though the | |
1155 | old function is still defined for backwards compatibility. | |
1156 | ||
1157 | o. The completion convenience functions filename_completion_function, | |
1158 | username_completion_function, and completion_matches now have an rl_ | |
1159 | prefix, though the old names are still defined for backwards compatibility. | |
1160 | ||
1161 | p. The functions shared by readline and bash (linkage is satisfied from bash | |
1162 | when compiling with bash, and internally otherwise) now have an sh_ prefix. | |
1163 | ||
1164 | q. Changed the shared library creation procedure on Linux and BSD/OS 4.x so | |
1165 | that the `soname' contains only the major version number rather than the | |
1166 | major and minor numbers. | |
1167 | ||
1168 | r. Fixed a redisplay bug that occurred when the prompt spanned more than one | |
1169 | physical line and contained invisible characters. | |
1170 | ||
1171 | s. Added a missing `includedir' variable to the Makefile. | |
1172 | ||
1173 | t. When installing the shared libraries, make sure symbolic links are relative. | |
1174 | ||
1175 | u. Added configure test so that it can set `${MAKE}' appropriately. | |
1176 | ||
1177 | v. Fixed a bug in rl_forward that could cause the point to be set to before | |
1178 | the beginning of the line in vi mode. | |
1179 | ||
1180 | w. Fixed a bug in the callback read-char interface to make it work when a | |
1181 | readline function pushes some input onto the input stream with | |
1182 | rl_execute_next (like the incremental search functions). | |
1183 | ||
1184 | x. Fixed a file descriptor leak in the history file manipulation code that | |
1185 | was tripped when attempting to truncate a non-regular file (like | |
1186 | /dev/null). | |
1187 | ||
1188 | y. Changes to make all of the exported readline functions declared in | |
1189 | readline.h have an rl_ prefix (rltty_set_default_bindings is now | |
1190 | rl_tty_set_default_bindings, crlf is now rl_crlf, etc.) | |
1191 | ||
1192 | z. The formatted documentation included in the base readline distribution | |
1193 | is no longer removed on a `make distclean'. | |
1194 | ||
1195 | aa. Some changes were made to avoid gcc warnings with -Wall. | |
1196 | ||
1197 | bb. rl_get_keymap_by_name now finds keymaps case-insensitively, so | |
1198 | `set keymap EMACS' works. | |
1199 | ||
1200 | cc. The history file writing and truncation functions now return a useful | |
1201 | status on error. | |
1202 | ||
1203 | dd. Fixed a bug that could cause applications to dereference a NULL pointer | |
1204 | if a NULL second argument was passed to history_expand(). | |
1205 | ||
1206 | ee. If a hook function assigned to rl_event_hook sets rl_done to a non-zero | |
1207 | value, rl_read_key() now immediately returns '\n' (which is assumed to | |
1208 | be bound to accept-line). | |
1209 | ||
1210 | 2. New Features in Readline | |
1211 | ||
1212 | a. The blink timeout for paren matching is now settable by applications, | |
1213 | via the rl_set_paren_blink_timeout() function. | |
1214 | ||
1215 | b. _rl_executing_macro has been renamed to rl_executing_macro, which means | |
1216 | it's now part of the public interface. | |
1217 | ||
1218 | c. Readline has a new variable, rl_readline_state, which is a bitmap that | |
1219 | encapsulates the current state of the library; intended for use by | |
1220 | callbacks and hook functions. | |
1221 | ||
1222 | d. rlfe has a new -l option to log input and output (-a appends to logfile), | |
1223 | a new -n option to set the readline application name, and -v and -h | |
1224 | options for version and help information. | |
1225 | ||
1226 | e. rlfe can now perform filename completion for the inferior process if the | |
1227 | OS has a /proc/<PID>/cwd that can be read with readlink(2) to get the | |
1228 | inferior's current working directory. | |
1229 | ||
1230 | f. A new file, rltypedefs.h, contains the new typedefs for function pointers | |
1231 | and is installed by `make install'. | |
1232 | ||
1233 | g. New application-callable function rl_set_prompt(const char *prompt): | |
1234 | expands its prompt string argument and sets rl_prompt to the result. | |
1235 | ||
1236 | h. New application-callable function rl_set_screen_size(int rows, int cols): | |
1237 | public method for applications to set readline's idea of the screen | |
1238 | dimensions. | |
1239 | ||
1240 | i. The history example program (examples/histexamp.c) is now built as one | |
1241 | of the examples. | |
1242 | ||
1243 | j. The documentation has been updated to cover nearly all of the public | |
1244 | functions and variables declared in readline.h. | |
1245 | ||
1246 | k. New function, rl_get_screen_size (int *rows, int *columns), returns | |
1247 | readline's idea of the screen dimensions. | |
1248 | ||
1249 | l. The timeout in rl_gather_tyi (readline keyboard input polling function) | |
1250 | is now settable via a function (rl_set_keyboard_input_timeout()). | |
1251 | ||
1252 | m. Renamed the max_input_history variable to history_max_entries; the old | |
1253 | variable is maintained for backwards compatibility. | |
1254 | ||
1255 | n. The list of characters that separate words for the history tokenizer is | |
1256 | now settable with a variable: history_word_delimiters. The default | |
1257 | value is as before. | |
1258 | ||
1259 | o. There is a new history.3 manual page documenting the history library. | |
1260 | ||
1261 | ------------------------------------------------------------------------------- | |
1b17e766 EZ |
1262 | This document details the changes between this version, readline-4.1, |
1263 | and the previous version, readline-4.0. | |
1264 | ||
1265 | 1. Changes to Readline | |
1266 | ||
1267 | a. Changed the HTML documents so that the table-of-contents is no longer | |
1268 | a separate file. | |
1269 | ||
1270 | b. Changes to the shared object configuration for: Irix 5.x, Irix 6.x, | |
1271 | OSF/1. | |
1272 | ||
1273 | c. The shared library major and minor versions are now constructed | |
1274 | automatically by configure and substituted into the makefiles. | |
1275 | ||
1276 | d. It's now possible to install the shared libraries separately from the | |
1277 | static libraries. | |
1278 | ||
1279 | e. The history library tries to truncate the history file only if it is a | |
1280 | regular file. | |
1281 | ||
1282 | f. A bug that caused _rl_dispatch to address negative array indices on | |
1283 | systems with signed chars was fixed. | |
1284 | ||
1285 | g. rl-yank-nth-arg now leaves the history position the same as when it was | |
1286 | called. | |
1287 | ||
1288 | h. Changes to the completion code to handle MS-DOS drive-letter:pathname | |
1289 | filenames. | |
1290 | ||
1291 | i. Completion is now case-insensitive by default on MS-DOS. | |
1292 | ||
1293 | j. Fixes to the history file manipulation code for MS-DOS. | |
1294 | ||
1295 | k. Readline attempts to bind the arrow keys to appropriate defaults on MS-DOS. | |
1296 | ||
1297 | l. Some fixes were made to the redisplay code for better operation on MS-DOS. | |
1298 | ||
1299 | m. The quoted-insert code will now insert tty special chars like ^C. | |
1300 | ||
1301 | n. A bug was fixed that caused the display code to reference memory before | |
1302 | the start of the prompt string. | |
1303 | ||
1304 | o. More support for __EMX__ (OS/2). | |
1305 | ||
1306 | p. A bug was fixed in readline's signal handling that could cause infinite | |
1307 | recursion in signal handlers. | |
1308 | ||
1309 | q. A bug was fixed that caused the point to be less than zero when rl_forward | |
1310 | was given a very large numeric argument. | |
1311 | ||
1312 | r. The vi-mode code now gets characters via the application-settable value | |
1313 | of rl_getc_function rather than calling rl_getc directly. | |
1314 | ||
1315 | s. The history file code now uses O_BINARY mode when reading and writing | |
1316 | the history file on cygwin32. | |
1317 | ||
1318 | t. Fixed a bug in the redisplay code for lines with more than 256 line | |
1319 | breaks. | |
1320 | ||
1321 | u. A bug was fixed which caused invisible character markers to not be | |
1322 | stripped from the prompt string if the terminal was in no-echo mode. | |
1323 | ||
1324 | v. Readline no longer tries to get the variables it needs for redisplay | |
1325 | from the termcap entry if the calling application has specified its | |
1326 | own redisplay function. Readline treats the terminal as `dumb' in | |
1327 | this case. | |
1328 | ||
1329 | w. Fixes to the SIGWINCH code so that a multiple-line prompt with escape | |
1330 | sequences is redrawn correctly. | |
1331 | ||
1332 | x. Changes to the install and install-shared targets so that the libraries | |
1333 | and header files are installed separately. | |
1334 | ||
1335 | 2. New Features in Readline | |
1336 | ||
1337 | a. A new Readline `user manual' is in doc/rluserman.texinfo. | |
1338 | ||
1339 | b. Parentheses matching is now always compiled into readline, and enabled | |
1340 | or disabled when the value of the `blink-matching-paren' variable is | |
1341 | changed. | |
1342 | ||
1343 | c. MS-DOS systems now use ~/_inputrc as the last-ditch inputrc filename. | |
1344 | ||
1345 | d. MS-DOS systems now use ~/_history as the default history file. | |
1346 | ||
1347 | e. history-search-{forward,backward} now leave the point at the end of the | |
1348 | line when the string to search for is empty, like | |
1349 | {reverse,forward}-search-history. | |
1350 | ||
1351 | f. history-search-{forward,backward} now leave the last history line found | |
1352 | in the readline buffer if the second or subsequent search fails. | |
1353 | ||
1354 | g. New function for use by applications: rl_on_new_line_with_prompt, used | |
1355 | when an application displays the prompt itself before calling readline(). | |
1356 | ||
1357 | h. New variable for use by applications: rl_already_prompted. An application | |
1358 | that displays the prompt itself before calling readline() must set this to | |
1359 | a non-zero value. | |
1360 | ||
1361 | i. A new variable, rl_gnu_readline_p, always 1. The intent is that an | |
1362 | application can verify whether or not it is linked with the `real' | |
1363 | readline library or some substitute. | |
1364 | ||
1365 | j. Per Bothner's `rlfe' (pronounced `Ralphie') readline front-end program | |
1366 | is included in the examples subdirectory, though it is not built | |
1367 | by default. | |
1368 | ||
1369 | ------------------------------------------------------------------------------- | |
c862e87b | 1370 | This document details the changes between this version, readline-4.0, |
d60d9f65 SS |
1371 | and the previous version, readline-2.2. |
1372 | ||
1373 | 1. Changes to Readline | |
1374 | ||
c862e87b JM |
1375 | a. The version number is now 4.0, to match the major and minor version |
1376 | numbers on the shared readline and history libraries. Future | |
1377 | releases will maintain the identical numbering. | |
d60d9f65 | 1378 | |
c862e87b JM |
1379 | b. Fixed a typo in the `make install' recipe that copied libreadline.a |
1380 | to libhistory.old right after installing it. | |
d60d9f65 | 1381 | |
c862e87b JM |
1382 | c. The readline and history info files are now installed out of the source |
1383 | directory if they are not found in the build directory. | |
d60d9f65 | 1384 | |
c862e87b JM |
1385 | d. The library no longer exports a function named `savestring' -- backwards |
1386 | compatibility be damned. | |
d60d9f65 | 1387 | |
c862e87b JM |
1388 | e. There is no longer any #ifdef SHELL code in the source files. |
1389 | ||
1390 | f. Some changes were made to the key binding code to fix memory leaks and | |
1391 | better support Win32 systems. | |
1392 | ||
1393 | g. Fixed a silly typo in the paren matching code -- it's microseconds, not | |
1394 | milliseconds. | |
1395 | ||
1396 | h. The readline library should be compilable by C++ compilers. | |
1397 | ||
1398 | i. The readline.h public header file now includes function prototypes for | |
1399 | all readline functions, and some changes were made to fix errors in the | |
1400 | source files uncovered by the use of prototypes. | |
1401 | ||
1402 | j. The maximum numeric argument is now clamped at 1000000. | |
1403 | ||
1404 | k. Fixes to rl_yank_last_arg to make it behave better. | |
1405 | ||
1406 | l. Fixed a bug in the display code that caused core dumps if the prompt | |
1407 | string length exceeded 1024 characters. | |
1408 | ||
1409 | m. The menu completion code was fixed to properly insert a single completion | |
1410 | if there is only one match. | |
1411 | ||
1412 | n. A bug was fixed that caused the display code to improperly display tabs | |
1413 | after newlines. | |
1414 | ||
1415 | o. A fix was made to the completion code in which a typo caused the wrong | |
1416 | value to be passed to the function that computed the longest common | |
1417 | prefix of the list of matches. | |
1418 | ||
1419 | p. The completion code now checks the value of rl_filename_completion_desired, | |
1420 | which is set by application-supplied completion functions to indicate | |
1421 | that filename completion is being performed, to decide whether or not to | |
1422 | call an application-supplied `ignore completions' function. | |
1423 | ||
1424 | q. Code was added to the history library to catch history substitutions | |
1425 | using `&' without a previous history substitution or search having been | |
1426 | performed. | |
1427 | ||
1428 | ||
1429 | 2. New Features in Readline | |
1430 | ||
1431 | a. There is a new script, support/shobj-conf, to do system-specific shared | |
1432 | object and library configuration. It generates variables for configure | |
1433 | to substitute into makefiles. The README file provides a detailed | |
1434 | explanation of the shared library creation process. | |
1435 | ||
1436 | b. Shared libraries and objects are now built in the `shlib' subdirectory. | |
1437 | There is a shlib/Makefile.in to control the build process. `make shared' | |
1438 | from the top-level directory is still the right way to build shared | |
1439 | versions of the libraries. | |
1440 | ||
1441 | c. rlconf.h is now installed, so applications can find out which features | |
1442 | have been compiled into the installed readline and history libraries. | |
1443 | ||
1444 | d. rlstdc.h is now an installed header file. | |
1445 | ||
1446 | e. Many changes to the signal handling: | |
1447 | o Readline now catches SIGQUIT and cleans up the tty before returning; | |
1448 | o A new variable, rl_catch_signals, is available to application writers | |
1449 | to indicate to readline whether or not it should install its own | |
1450 | signal handlers for SIGINT, SIGTERM, SIGQUIT, SIGALRM, SIGTSTP, | |
1451 | SIGTTIN, and SIGTTOU; | |
1452 | o A new variable, rl_catch_sigwinch, is available to application | |
1453 | writers to indicate to readline whether or not it should install its | |
1454 | own signal handler for SIGWINCH, which will chain to the calling | |
1455 | applications's SIGWINCH handler, if one is installed; | |
1456 | o There is a new function, rl_free_line_state, for application signal | |
1457 | handlers to call to free up the state associated with the current | |
1458 | line after receiving a signal; | |
1459 | o There is a new function, rl_cleanup_after_signal, to clean up the | |
1460 | display and terminal state after receiving a signal; | |
1461 | o There is a new function, rl_reset_after_signal, to reinitialize the | |
1462 | terminal and display state after an application signal handler | |
1463 | returns and readline continues | |
1464 | ||
1465 | f. There is a new function, rl_resize_terminal, to reset readline's idea of | |
1466 | the screen size after a SIGWINCH. | |
1467 | ||
1468 | g. New public functions: rl_save_prompt and rl_restore_prompt. These were | |
1469 | previously private functions with a `_' prefix. These functions are | |
1470 | used when an application wants to write a message to the `message area' | |
1471 | with rl_message and have the prompt restored correctly when the message | |
1472 | is erased. | |
1473 | ||
1474 | h. New function hook: rl_pre_input_hook, called just before readline starts | |
1475 | reading input, after initialization. | |
1476 | ||
1477 | i. New function hook: rl_display_matches_hook, called when readline would | |
1478 | display the list of completion matches. The new function | |
1479 | rl_display_match_list is what readline uses internally, and is available | |
1480 | for use by application functions called via this hook. | |
1481 | ||
1482 | j. New bindable function, delete-char-or-list, like tcsh. | |
1483 | ||
1484 | k. A new variable, rl_erase_empty_line, which, if set by an application using | |
1485 | readline, will cause readline to erase, prompt and all, lines on which the | |
1486 | only thing typed was a newline. | |
1487 | ||
1488 | l. There is a new script, support/shlib-install, to install and uninstall | |
1489 | the shared readline and history libraries. | |
1490 | ||
1491 | m. A new bindable variable, `isearch-terminators', which is a string | |
1492 | containing the set of characters that should terminate an incremental | |
1493 | search without being executed as a command. | |
1494 | ||
1495 | n. A new bindable function, forward-backward-delete-char. | |
1496 | ||
1497 | ------------------------------------------------------------------------------- | |
d60d9f65 SS |
1498 | This document details the changes between this version, readline-2.2, |
1499 | and the previous version, readline-2.1. | |
1500 | ||
1501 | 1. Changes to Readline | |
1502 | ||
1503 | a. Added a missing `extern' to a declaration in readline.h that kept | |
1504 | readline from compiling cleanly on some systems. | |
1505 | ||
1506 | b. The history file is now opened with mode 0600 when it is written for | |
1507 | better security. | |
1508 | ||
1509 | c. Changes were made to the SIGWINCH handling code so that prompt redisplay | |
1510 | is done better. | |
1511 | ||
1512 | d. ^G now interrupts incremental searches correctly. | |
1513 | ||
1514 | e. A bug that caused a core dump when the set of characters to be quoted | |
1515 | when completing words was empty was fixed. | |
1516 | ||
1517 | f. Fixed a problem in the readline test program rltest.c that caused a core | |
1518 | dump. | |
1519 | ||
1520 | g. The code that handles parser directives in inputrc files now displays | |
1521 | more error messages. | |
1522 | ||
1523 | h. The history expansion code was fixed so that the appearance of the | |
1524 | history comment character at the beginning of a word inhibits history | |
1525 | expansion for that word and the rest of the input line. | |
1526 | ||
1527 | i. The code that prints completion listings now behaves better if one or | |
1528 | more of the filenames contains non-printable characters. | |
1529 | ||
1530 | j. The time delay when showing matching parentheses is now 0.5 seconds. | |
1531 | ||
1532 | ||
1533 | 2. New Features in Readline | |
1534 | ||
1535 | a. There is now an option for `iterative' yank-last-arg handline, so a user | |
1536 | can keep entering `M-.', yanking the last argument of successive history | |
1537 | lines. | |
1538 | ||
1539 | b. New variable, `print-completions-horizontally', which causes completion | |
1540 | matches to be displayed across the screen (like `ls -x') rather than up | |
1541 | and down the screen (like `ls'). | |
1542 | ||
1543 | c. New variable, `completion-ignore-case', which causes filename completion | |
1544 | and matching to be performed case-insensitively. | |
1545 | ||
1546 | d. There is a new bindable command, `magic-space', which causes history | |
1547 | expansion to be performed on the current readline buffer and a space to | |
1548 | be inserted into the result. | |
1549 | ||
1550 | e. There is a new bindable command, `menu-complete', which enables tcsh-like | |
1551 | menu completion (successive executions of menu-complete insert a single | |
1552 | completion match, cycling through the list of possible completions). | |
1553 | ||
1554 | f. There is a new bindable command, `paste-from-clipboard', for use on Win32 | |
1555 | systems, to insert the text from the Win32 clipboard into the editing | |
1556 | buffer. | |
1557 | ||
1558 | g. The key sequence translation code now understands printf-style backslash | |
1559 | escape sequences, including \NNN octal escapes. These escape sequences | |
1560 | may be used in key sequence definitions or macro values. | |
1561 | ||
1562 | h. An `$include' inputrc file parser directive has been added. |