Annotation of embedaddon/readline/NEWS, revision 1.1.1.2
1.1.1.2 ! misho 1: This is a terse description of the new features added to readline-8.1 since
! 2: the release of readline-8.0.
! 3:
! 4: New Features in Readline
! 5:
! 6: a. If a second consecutive completion attempt produces matches where the first
! 7: did not, treat it as a new completion attempt and insert a match as
! 8: appropriate.
! 9:
! 10: b. Bracketed paste mode works in more places: incremental search strings, vi
! 11: overstrike mode, character search, and reading numeric arguments.
! 12:
! 13: c. Readline automatically switches to horizontal scrolling if the terminal has
! 14: only one line.
! 15:
! 16: d. Unbinding all key sequences bound to a particular readline function now
! 17: descends into keymaps for multi-key sequences.
! 18:
! 19: e. rl-clear-display: new bindable command that clears the screen and, if
! 20: possible, the scrollback buffer (bound to emacs mode M-C-l by default).
! 21:
! 22: f. New active mark and face feature: when enabled, it will highlight the text
! 23: inserted by a bracketed paste (the `active region') and the text found by
! 24: incremental and non-incremental history searches. This is tied to bracketed
! 25: paste and can be disabled by turning off bracketed paste.
! 26:
! 27: g. Readline sets the mark in several additional commands.
! 28:
! 29: h. Bracketed paste mode is enabled by default. There is a configure-time
! 30: option (--enable-bracketed-paste-default) to set the default to on or off.
! 31:
! 32: i. Readline tries to take advantage of the more regular structure of UTF-8
! 33: characters to identify the beginning and end of characters when moving
! 34: through the line buffer.
! 35:
! 36: j. The bindable operate-and-get-next command (and its default bindings) are
! 37: now part of readline instead of a bash-specific addition.
! 38:
! 39: k. The signal cleanup code now blocks SIGINT while processing after a SIGINT.
! 40:
! 41: -------------------------------------------------------------------------------
! 42: This is a terse description of the new features added to readline-8.0 since
! 43: the release of readline-7.0.
! 44:
! 45: New Features in Readline
! 46:
! 47: a. Non-incremental vi-mode search (`N', `n') can search for a shell pattern, as
! 48: Posix specifies (uses fnmatch(3) if available).
! 49:
! 50: b. There are new `next-screen-line' and `previous-screen-line' bindable
! 51: commands, which move the cursor to the same column in the next, or previous,
! 52: physical line, respectively.
! 53:
! 54: c. There are default key bindings for control-arrow-key key combinations.
! 55:
! 56: d. A negative argument (-N) to `quoted-insert' means to insert the next N
! 57: characters using quoted-insert.
! 58:
! 59: e. New public function: rl_check_signals(), which allows applications to
! 60: respond to signals that readline catches while waiting for input using
! 61: a custom read function.
! 62:
! 63: f. There is new support for conditionally testing the readline version in an
! 64: inputrc file, with a full set of arithmetic comparison operators available.
! 65:
! 66: g. There is a simple variable comparison facility available for use within an
! 67: inputrc file. Allowable operators are equality and inequality; string
! 68: variables may be compared to a value; boolean variables must be compared to
! 69: either `on' or `off'; variable names are separated from the operator by
! 70: whitespace.
! 71:
! 72: h. The history expansion library now understands command and process
! 73: substitution and extended globbing and allows them to appear anywhere in a
! 74: word.
! 75:
! 76: i. The history library has a new variable that allows applications to set the
! 77: initial quoting state, so quoting state can be inherited from a previous
! 78: line.
! 79:
! 80: j. Readline now allows application-defined keymap names; there is a new public
! 81: function, rl_set_keymap_name(), to do that.
! 82:
! 83: k. The "Insert" keypad key, if available, now puts readline into overwrite
! 84: mode.
! 85:
! 86: -------------------------------------------------------------------------------
! 87: This is a terse description of the new features added to readline-7.0 since
! 88: the release of readline-6.3.
! 89:
! 90: New Features in Readline
! 91:
! 92: a. The history truncation code now uses the same error recovery mechansim as
! 93: the history writing code, and restores the old version of the history file
! 94: on error. The error recovery mechanism handles symlinked history files.
! 95:
! 96: b. There is a new bindable variable, `enable-bracketed-paste', which enables
! 97: support for a terminal's bracketed paste mode.
! 98:
! 99: c. The editing mode indicators can now be strings and are user-settable
! 100: (new `emacs-mode-string', `vi-cmd-mode-string' and `vi-ins-mode-string'
! 101: variables). Mode strings can contain invisible character sequences.
! 102: Setting mode strings to null strings restores the defaults.
! 103:
! 104: d. Prompt expansion adds the mode string to the last line of a multi-line
! 105: prompt (one with embedded newlines).
! 106:
! 107: e. There is a new bindable variable, `colored-completion-prefix', which, if
! 108: set, causes the common prefix of a set of possible completions to be
! 109: displayed in color.
! 110:
! 111: f. There is a new bindable command `vi-yank-pop', a vi-mode version of emacs-
! 112: mode yank-pop.
! 113:
! 114: g. The redisplay code underwent several efficiency improvements for multibyte
! 115: locales.
! 116:
! 117: h. The insert-char function attempts to batch-insert all pending typeahead
! 118: that maps to self-insert, as long as it is coming from the terminal.
! 119:
! 120: i. rl_callback_sigcleanup: a new application function that can clean up and
! 121: unset any state set by readline's callback mode. Intended to be used
! 122: after a signal.
! 123:
! 124: j. If an incremental search string has its last character removed with DEL, the
! 125: resulting empty search string no longer matches the previous line.
! 126:
! 127: k. If readline reads a history file that begins with `#' (or the value of
! 128: the history comment character) and has enabled history timestamps, the history
! 129: entries are assumed to be delimited by timestamps. This allows multi-line
! 130: history entries.
! 131:
! 132: l. Readline now throws an error if it parses a key binding without a terminating
! 133: `:' or whitespace.
! 134:
! 135: m. The default binding for ^W in vi mode now uses word boundaries specified
! 136: by Posix (vi-unix-word-rubout is bindable command name).
! 137:
! 138: n. rl_clear_visible_line: new application-callable function; clears all
! 139: screen lines occupied by the current visible readline line.
! 140:
! 141: o. rl_tty_set_echoing: application-callable function that controls whether
! 142: or not readline thinks it is echoing terminal output.
! 143:
! 144: p. Handle >| and strings of digits preceding and following redirection
! 145: specifications as single tokens when tokenizing the line for history
! 146: expansion.
! 147:
! 148: q. Fixed a bug with displaying completions when the prefix display length
! 149: is greater than the length of the completions to be displayed.
! 150:
! 151: r. The :p history modifier now applies to the entire line, so any expansion
! 152: specifying :p causes the line to be printed instead of expanded.
! 153:
! 154: s. New application-callable function: rl_pending_signal(): returns the signal
! 155: number of any signal readline has caught but not yet handled.
! 156:
! 157: t. New application-settable variable: rl_persistent_signal_handlers: if set
! 158: to a non-zero value, readline will enable the readline-6.2 signal handler
! 159: behavior in callback mode: handlers are installed when
! 160: rl_callback_handler_install is called and removed removed when a complete
! 161: line has been read.
! 162:
! 163: -------------------------------------------------------------------------------
1.1 misho 164: This is a terse description of the new features added to readline-6.3 since
165: the release of readline-6.2.
166:
167: New Features in Readline
168:
169: a. Readline is now more responsive to SIGHUP and other fatal signals when
170: reading input from the terminal or performing word completion but no
171: longer attempts to run any not-allowable functions from a signal handler
172: context.
173:
174: b. There are new bindable commands to search the history for the string of
175: characters between the beginning of the line and the point
176: (history-substring-search-forward, history-substring-search-backward)
177:
178: c. Readline allows quoted strings as the values of variables when setting
179: them with `set'. As a side effect, trailing spaces and tabs are ignored
180: when setting a string variable's value.
181:
182: d. The history library creates a backup of the history file when writing it
183: and restores the backup on a write error.
184:
185: e. New application-settable variable: rl_filename_stat_hook: a function called
186: with a filename before using it in a call to stat(2). Bash uses it to
187: expand shell variables so things like $HOME/Downloads have a slash
188: appended.
189:
190: f. New bindable function `print-last-kbd-macro', prints the most-recently-
191: defined keyboard macro in a reusable format.
192:
193: g. New user-settable variable `colored-stats', enables use of colored text
194: to denote file types when displaying possible completions (colored analog
195: of visible-stats).
196:
197: h. New user-settable variable `keyseq-timout', acts as an inter-character
198: timeout when reading input or incremental search strings.
199:
200: i. New application-callable function: rl_clear_history. Clears the history list
201: and frees all readline-associated private data.
202:
203: j. New user-settable variable, show-mode-in-prompt, adds a characters to the
204: beginning of the prompt indicating the current editing mode.
205:
206: k. New application-settable variable: rl_input_available_hook; function to be
207: called when readline detects there is data available on its input file
208: descriptor.
209:
210: l. Readline calls an application-set event hook (rl_event_hook) after it gets
211: a signal while reading input (read returns -1/EINTR but readline does not
212: handle the signal immediately) to allow the application to handle or
213: otherwise note it.
214:
215: m. If the user-settable variable `history-size' is set to a value less than
216: 0, the history list size is unlimited.
217:
218: n. New application-settable variable: rl_signal_event_hook; function that is
219: called when readline is reading terminal input and read(2) is interrupted
220: by a signal. Currently not called for SIGHUP or SIGTERM.
1.1.1.2 ! misho 221:
! 222: -------------------------------------------------------------------------------
! 223: This is a terse description of the new features added to readline-6.2 since
! 224: the release of readline-6.1.
! 225:
! 226: a. The history library does not try to write the history filename in the
! 227: current directory if $HOME is unset. This closes a potential security
! 228: problem if the application does not specify a history filename.
! 229:
! 230: b. New bindable variable `completion-display-width' to set the number of
! 231: columns used when displaying completions.
! 232:
! 233: c. New bindable variable `completion-case-map' to cause case-insensitive
! 234: completion to treat `-' and `_' as identical.
! 235:
! 236: d. There are new bindable vi-mode command names to avoid readline's case-
! 237: insensitive matching not allowing them to be bound separately.
! 238:
! 239: e. New bindable variable `menu-complete-display-prefix' causes the menu
! 240: completion code to display the common prefix of the possible completions
! 241: before cycling through the list, instead of after.
! 242:
! 243: -------------------------------------------------------------------------------
! 244: This is a terse description of the new features added to readline-6.1 since
! 245: the release of readline-6.0.
! 246:
! 247: New Features in Readline
! 248:
! 249: a. New bindable function: menu-complete-backward.
! 250:
! 251: b. In the vi insertion keymap, C-n is now bound to menu-complete by default,
! 252: and C-p to menu-complete-backward.
! 253:
! 254: c. When in vi command mode, repeatedly hitting ESC now does nothing, even
! 255: when ESC introduces a bound key sequence. This is closer to how
! 256: historical vi behaves.
! 257:
! 258: d. New bindable function: skip-csi-sequence. Can be used as a default to
! 259: consume key sequences generated by keys like Home and End without having
! 260: to bind all keys.
! 261:
! 262: e. New application-settable function: rl_filename_rewrite_hook. Can be used
! 263: to rewite or modify filenames read from the file system before they are
! 264: compared to the word to be completed.
! 265:
! 266: f. New bindable variable: skip-completed-text, active when completing in the
! 267: middle of a word. If enabled, it means that characters in the completion
! 268: that match characters in the remainder of the word are "skipped" rather
! 269: than inserted into the line.
! 270:
! 271: g. The pre-readline-6.0 version of menu completion is available as
! 272: "old-menu-complete" for users who do not like the readline-6.0 version.
! 273:
! 274: h. New bindable variable: echo-control-characters. If enabled, and the
! 275: tty ECHOCTL bit is set, controls the echoing of characters corresponding
! 276: to keyboard-generated signals.
! 277:
! 278: i. New bindable variable: enable-meta-key. Controls whether or not readline
! 279: sends the smm/rmm sequences if the terminal indicates it has a meta key
! 280: that enables eight-bit characters.
! 281:
! 282: -------------------------------------------------------------------------------
! 283: This is a terse description of the new features added to readline-6.0 since
! 284: the release of readline-5.2.
! 285:
! 286: New Features in Readline
! 287:
! 288: a. A new variable, rl_sort_completion_matches; allows applications to inhibit
! 289: match list sorting (but beware: some things don't work right if
! 290: applications do this).
! 291:
! 292: b. A new variable, rl_completion_invoking_key; allows applications to discover
! 293: the key that invoked rl_complete or rl_menu_complete.
! 294:
! 295: c. The functions rl_block_sigint and rl_release_sigint are now public and
! 296: available to calling applications who want to protect critical sections
! 297: (like redisplay).
! 298:
! 299: d. The functions rl_save_state and rl_restore_state are now public and
! 300: available to calling applications; documented rest of readline's state
! 301: flag values.
! 302:
! 303: e. A new user-settable variable, `history-size', allows setting the maximum
! 304: number of entries in the history list.
! 305:
! 306: f. There is a new implementation of menu completion, with several improvements
! 307: over the old; the most notable improvement is a better `completions
! 308: browsing' mode.
! 309:
! 310: g. The menu completion code now uses the rl_menu_completion_entry_function
! 311: variable, allowing applications to provide their own menu completion
! 312: generators.
! 313:
! 314: h. There is support for replacing a prefix of a pathname with a `...' when
! 315: displaying possible completions. This is controllable by setting the
! 316: `completion-prefix-display-length' variable. Matches with a common prefix
! 317: longer than this value have the common prefix replaced with `...'.
! 318:
! 319: i. There is a new `revert-all-at-newline' variable. If enabled, readline will
! 320: undo all outstanding changes to all history lines when `accept-line' is
! 321: executed.
! 322:
! 323: -------------------------------------------------------------------------------
! 324: This is a terse description of the new features added to readline-5.2 since
! 325: the release of readline-5.1.
! 326:
! 327: New Features in Readline
! 328:
! 329: a. Calling applications can now set the keyboard timeout to 0, allowing
! 330: poll-like behavior.
! 331:
! 332: b. The value of SYS_INPUTRC (configurable at compilation time) is now used as
! 333: the default last-ditch startup file.
! 334:
! 335: c. The history file reading functions now allow windows-like \r\n line
! 336: terminators.
! 337:
! 338: -------------------------------------------------------------------------------
! 339: This is a terse description of the new features added to readline-5.1 since
! 340: the release of readline-5.0.
! 341:
! 342: New Features in Readline
! 343:
! 344: a. The key sequence sent by the keypad `delete' key is now automatically
! 345: bound to delete-char.
! 346:
! 347: b. A negative argument to menu-complete now cycles backward through the
! 348: completion list.
! 349:
! 350: c. A new bindable readline variable: bind-tty-special-chars. If non-zero,
! 351: readline will bind the terminal special characters to their readline
! 352: equivalents when it's called (on by default).
! 353:
! 354: d. New bindable command: vi-rubout. Saves deleted text for possible
! 355: reinsertion, as with any vi-mode `text modification' command; `X' is bound
! 356: to this in vi command mode.
! 357:
! 358: e. If the rl_completion_query_items is set to a value < 0, readline never
! 359: asks the user whether or not to view the possible completions.
! 360:
! 361: f. New application-callable auxiliary function, rl_variable_value, returns
! 362: a string corresponding to a readline variable's value.
! 363:
! 364: g. When parsing inputrc files and variable binding commands, the parser
! 365: strips trailing whitespace from values assigned to boolean variables
! 366: before checking them.
! 367:
! 368: h. A new external application-controllable variable that allows the LINES
! 369: and COLUMNS environment variables to set the window size regardless of
! 370: what the kernel returns.
! 371:
! 372:
! 373: -------------------------------------------------------------------------------
! 374: This is a terse description of the new features added to readline-5.0 since
! 375: the release of readline-4.3.
! 376:
! 377: New Features in Readline
! 378:
! 379: a. History expansion has a new `a' modifier equivalent to the `g' modifier
! 380: for compatibility with the BSD csh.
! 381:
! 382: b. History expansion has a new `G' modifier equivalent to the BSD csh `g'
! 383: modifier, which performs a substitution once per word.
! 384:
! 385: c. All non-incremental search operations may now undo the operation of
! 386: replacing the current line with the history line.
! 387:
! 388: d. The text inserted by an `a' command in vi mode can be reinserted with
! 389: `.'.
! 390:
! 391: e. New bindable variable, `show-all-if-unmodified'. If set, the readline
! 392: completer will list possible completions immediately if there is more
! 393: than one completion and partial completion cannot be performed.
! 394:
! 395: f. There is a new application-callable `free_history_entry()' function.
! 396:
! 397: g. History list entries now contain timestamp information; the history file
! 398: functions know how to read and write timestamp information associated
! 399: with each entry.
! 400:
! 401: h. Four new key binding functions have been added:
! 402:
! 403: rl_bind_key_if_unbound()
! 404: rl_bind_key_if_unbound_in_map()
! 405: rl_bind_keyseq_if_unbound()
! 406: rl_bind_keyseq_if_unbound_in_map()
! 407:
! 408: i. New application variable, rl_completion_quote_character, set to any
! 409: quote character readline finds before it calls the application completion
! 410: function.
! 411:
! 412: j. New application variable, rl_completion_suppress_quote, settable by an
! 413: application completion function. If set to non-zero, readline does not
! 414: attempt to append a closing quote to a completed word.
! 415:
! 416: k. New application variable, rl_completion_found_quote, set to a non-zero
! 417: value if readline determines that the word to be completed is quoted.
! 418: Set before readline calls any application completion function.
! 419:
! 420: l. New function hook, rl_completion_word_break_hook, called when readline
! 421: needs to break a line into words when completion is attempted. Allows
! 422: the word break characters to vary based on position in the line.
! 423:
! 424: m. New bindable command: unix-filename-rubout. Does the same thing as
! 425: unix-word-rubout, but adds `/' to the set of word delimiters.
! 426:
! 427: n. When listing completions, directories have a `/' appended if the
! 428: `mark-directories' option has been enabled.
FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>