[Top][All Lists]

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Readline-7.0 Release Available

From: Chet Ramey
Subject: Readline-7.0 Release Available
Date: Sat, 17 Sep 2016 12:54:18 -0400

The first public release of the GNU Readline library, version 7.0,
is now available for FTP with the URLs

and from the GNU git repository and the usual GNU mirror sites.

GNU Readline is a library which provides programs with an input
facility including command-line editing and history.  Editing
commands similar to both emacs and vi are included.  The GNU
History library, which provides facilities for managing a list of
previously-typed command lines and an interactive command line
recall facility similar to that provided by csh, is also present.
The history library is built as part of the readline as well as

This distribution is essentially a standalone version of the
readline library that appears in Bash-4.4 together with
an `autoconf' framework.  The documentation has been updated and
is current.  Postscript, DVI, and Info versions of the Readline
and History manuals are included.  A list of changes in this
release is appended to this announcement.

This release accompanies the simultaneous release of bash-4.4.
There are more improvements in the programming interface and new
user-visible variables and bindable commands.

The signal handling has been reworked so that it will not run code in
a signal handler context, and there are additional signal and event
handling hooks to improve application responsiveness.  The history
file manipulation functions now do a better job of restoring the old
history file on write errors.  There is a new bindable variable to
enable a `bracketed paste' mode, which is available in new terminal
emulators and indicates to programs when input is coming from a paste
instead of the keyboard, so the input can be handled as one big chunk
of text to insert.  Similarly, the text insert functions attempt to
batch-insert all pending typeahead characters that map to
`self-insert' as long as the input is coming from a terminal.  The
editing mode indicators are now user-settable strings that can contain
non-printing characters.  It is now possible to have the common prefix
of a set of completions displayed in a different color when listing
possible completions. 

Please send readline bug reports to address@hidden

As always, thanks for your help.


+========== CHANGES ==========+
This document details the changes between this version, readline-7.0, and the
previous version, readline-6.3.

1.  Changes to Readline

a.  A bug that caused vi-mode `.' to be unable to redo `c', `d', and `y'
    commands with modifiers was fixed.

b.  Fixed a bug that caused callback mode to dump core when reading a
    multiple-key sequence (e.g., arrow keys).

c.  Fixed a bug that caused the redisplay code to erase some of the line when
    using horizontal scrolling with incremental search.

d.  Readline's input handler now performs signal processing if read(2) is
    interrupted by SIGALRM or SIGVTALRM.

e.  Fixed a problem with revert-all-at-newline freeing freed memory.

f.  Clarified the documentation for the history_quotes_inhibit_expansion
    variable to note that it inhibits scanning for the history comment
    character and that it only affects double-quoted strings.

g.  Fixed an off-by-one error in the prompt printed when performing searches.

h.  Use pselect(2), if available, to wait for input before calling read(2), so
    a SIGWINCH can interrupt it, since it doesn't interrupt read(2).

i.  Some memory leaks caused by signals interrupting filename completion have
    been fixed.

j.  Reading EOF twice on a non-empty line causes EOF to be returned, rather
    than the partial line.  This can cause partial lines to be executed on
    SIGHUP, for example.

k.  Fixed a bug concerning deleting multibyte characters from the search
    string while performing an incremental search.

l.  Fixed a bug with tilde expanding directory names in filename completion.

m.  Fixed a bug that did not allow binding sequences beginning with a `\'.

n.  Fixed a redisplay bug involving incorrect line wrapping when the prompt
    contains a multibyte character in the last screen column.

o.  Fixed a bug that caused history expansion to disregard characters that are
    documented to delimit a history event specifier without requiring `:'.

p.  Fixed a bug that could cause reading past the end of a string when reading
    the value when binding the set of isearch terminators.

q.  Fixed a bug that caused readline commands that depend on knowing which  
    key invoked them to misbehave when dispatching key sequences that are
    prefixes of other key bindings. 

r.  Paren matching now works in vi insert mode.

s.  Colored completion prefixes are now displayed using a different color, less
    likely to collide with files.

t.  Fixed a bug that caused vi-mode character search to misbehave when
    running in callback mode.

u.  Fixed a bug that caused output to be delayed when input is coming from a
    macro in vi-mode.

v.  Fixed a bug that caused the vi-mode `.' command to misbehave when redoing
    a multi-key key sequence via a macro.

w.  Fixed a bug that caused problems with applications that supply their own
    input function when performing completion.

x.  When read returns -1/EIO when attempting to read a key, return an error
    instead of line termination back to the caller.

y.  Updated tty auditing feature based on patch from Red Hat.

z.  Fixed a bug that could cause the history library to crash on overflows
    introduced by malicious editing of timestamps in the history file.

aa. The history file writing functions only attempt to create and use a backup
    history file if the history file exists and is a regular file.

bb. Fixed an out-of-bounds read in readline's internal tilde expansion 

cc. Fixed several redisplay bugs with prompt strings containing multibyte
    and non-visible characters whose physical length is longer than the screen

dd. Fixed a redisplay bug with prompt strings containing invisible characters
    whose physical length exceeds the screen width and using incremental search.

ee. Readline prints more descriptive error messages when it encounters errors
    while reading an inputrc file.

ff. Fixed a bug in the character insertion code that attempts to optimize
    typeahead when it reads a character that is not bound to self-insert and
    resets the key sequence state.

gg.  When refreshing the line as the result of a key sequence, Readline attempts
     to redraw only the last line of a multiline prompt.

hh.  Fixed an issue that caused completion of git commands to display
     incorrectly when using colored-completion-prefix.

ii.  Fixed several redisplay bugs having to do with multibyte characters and
     invisible characters in prompt strings.

jj. Fixed a bug that caused mode strings to be displayed incorrectly if the 
prompt was
    shorter than the mode string.

2.  New Features in Readline

a.  The history truncation code now uses the same error recovery mechansim as
    the history writing code, and restores the old version of the history file
    on error.  The error recovery mechanism handles symlinked history files.

b.  There is a new bindable variable, `enable-bracketed-paste', which enables
    support for a terminal's bracketed paste mode.

c.  The editing mode indicators can now be strings and are user-settable
    (new `emacs-mode-string', `vi-cmd-mode-string' and `vi-ins-mode-string'
    variables).  Mode strings can contain invisible character sequences.
    Setting mode strings to null strings restores the defaults.

d.  Prompt expansion adds the mode string to the last line of a multi-line
    prompt (one with embedded newlines).

e.  There is a new bindable variable, `colored-completion-prefix', which, if
    set, causes the common prefix of a set of possible completions to be
    displayed in color.

f.  There is a new bindable command `vi-yank-pop', a vi-mode version of emacs-
    mode yank-pop.

g.  The redisplay code underwent several efficiency improvements for multibyte

h.  The insert-char function attempts to batch-insert all pending typeahead
    that maps to self-insert, as long as it is coming from the terminal.

i.  rl_callback_sigcleanup: a new application function that can clean up and
    unset any state set by readline's callback mode.  Intended to be used
    after a signal.

j.  If an incremental search string has its last character removed with DEL, the
    resulting empty search string no longer matches the previous line.

k.  If readline reads a history file that begins with `#' (or the value of
    the history comment character) and has enabled history timestamps, the 
    entries are assumed to be delimited by timestamps.  This allows multi-line
    history entries.

l.  Readline now throws an error if it parses a key binding without a 
    `:' or whitespace.

m.  The default binding for ^W in vi mode now uses word boundaries specified
    by Posix (vi-unix-word-rubout is bindable command name).

n.  rl_clear_visible_line: new application-callable function; clears all
    screen lines occupied by the current visible readline line.

o.  rl_tty_set_echoing: application-callable function that controls whether
    or not readline thinks it is echoing terminal output.

p.  Handle >| and strings of digits preceding and following redirection
    specifications as single tokens when tokenizing the line for history

q.  Fixed a bug with displaying completions when the prefix display length
    is greater than the length of the completions to be displayed.

r.  The :p history modifier now applies to the entire line, so any expansion
    specifying :p causes the line to be printed instead of expanded.

s.  New application-callable function: rl_pending_signal(): returns the signal
    number of any signal readline has caught but not yet handled.
t.  New application-settable variable: rl_persistent_signal_handlers: if set to 
    non-zero value, readline will enable the readline-6.2 signal handler 
    in callback mode: handlers are installed when rl_callback_handler_install is
    called and removed removed when a complete line has been read.

``The lyf so short, the craft so long to lerne.'' - Chaucer
                 ``Ars longa, vita brevis'' - Hippocrates
Chet Ramey, UTech, CWRU    address@hidden

reply via email to

[Prev in Thread] Current Thread [Next in Thread]