Changes between Initial Version and Version 1 of Ticket #4405


Ignore:
Timestamp:
01/08/2019 09:04:59 AM (5 years ago)
Author:
Anton Maisak
Comment:

Legend:

Unmodified
Added
Removed
Modified
  • Ticket #4405 – Description

    initial v1  
    11ftp://ftp.cwru.edu/pub/bash/readline-8.0.tar.gz
     2
     3
     41.  Changes to Readline
     5
     6a. Added a guard to prevent nested macros from causing an infinite expansion
     7   loop.
     8
     9b. Instead of allocating enough history list entries to hold the maximum list
     10   size, cap the number allocated initially.
     11   
     12c. Added a strategy to avoid allocating huge amounts of memory if a block of
     13   history entries without timestamps occurs after a block with timestamps.
     14
     15d. Added support for keyboard timeouts when an ESC character is the last
     16   character in a macro.
     17
     18e. There are several performance improvements when in a UTF-8 locale.
     19
     20f. Readline does a better job of preserving the original set of blocked
     21   signals when using pselect() to wait for input.
     22
     23g. Fixed a bug that caused multibyte characters in macros to be mishandled.
     24
     25h. Fixed several bugs in the code that calculates line breaks when expanding
     26   prompts that span several lines, contain multibyte characters, and contain
     27   invisible character seqeuences.
     28
     29i. Fixed several bugs in cursor positioning when displaying lines with prompts
     30   containing invisible characters and multibyte characters.
     31
     32j. When performing case-insensitive completion, Readline no longer sorts the
     33   list of matches unless directed to do so.
     34
     35k. Fixed a problem with key sequences ending with a backslash.
     36
     37l. Fixed out-of-bounds and free memory read errors found via fuzzing.
     38
     39m. Fixed several cases where the mark was set to an invalid value.
     40
     41n. Fixed a problem with the case-changing operators in the case where the
     42   lower and upper case versions of a character do not have the same number
     43   of bytes.
     44
     45o. Handle incremental and non-incremental search character reads returning EOF.
     46
     47p. Handle the case where a failing readline command at the end of a multi-key
     48   sequence could be misinterpreted.
     49
     50q. The history library now prints a meaningful error message if the history
     51   file isn't a regular file.
     52
     53r. Fixed a problem with vi-mode redo (`.') on a command when trying to replace
     54   a multibyte character.
     55
     56s. The key binding code now attempts to remove a keymap if a key unbinding
     57   leaves it empty.
     58
     59t. Fixed a line-wrapping issue that caused problems for some terminal
     60   emulators.
     61
     62u. If there is a key bound to the tty's VDISCARD special character, readline
     63   disables VDISCARD while it is active.
     64
     65v. Fixed a problem with exiting bracketed paste mode on terminals that assume
     66   the bracketed paste mode character sequence contains visible characters.
     67
     68w. Fixed a bug that could cause a key binding command to refer to an
     69   uninitialized variable.
     70
     71x. Added more UTF-8-specific versions of multibyte functions, and optimized
     72   existing functions if the current locale uses UTF-8 encoding.
     73
     74y. Fixed a problem with bracketed-paste inserting more than one character and
     75   interacting with other readline functions.
     76
     77z. Fixed a bug that caused the history library to attempt to append a history
     78   line to a non-existent history entry.
     79
     80aa. If using bracketed paste mode, output a newline after the \r that is the
     81    last character of the mode disable string to avoid overwriting output.
     82
     83bb. Fixes to the vi-mode `b', `B', `w', `W', `e', and `E' commands to better
     84    handle multibyte characters.
     85
     86cc. Fixed a redisplay problem that caused an extra newline to be generated on
     87    accept-line when the line length is exactly the screenwidth.
     88
     89dd. Fixed a bug with adding multibyte characters to an incremental search
     90    string.
     91
     92ee. Fixed a bug with redoing text insertions in vi mode.
     93
     94ff. Fixed a bug with pasting text into an incremental search string if bracketed
     95    paste mode is enabled. ESC cannot be one of the incremental search
     96    terminator characters for this to work.
     97
     98gg. Fixed a bug with anchored search patterns when performing searches in vi
     99    mode.
     100
     1012.  New Features in Readline
     102
     103a. Non-incremental vi-mode search (`N', `n') can search for a shell pattern, as
     104   Posix specifies (uses fnmatch(3) if available).
     105
     106b. There are new `next-screen-line' and `previous-screen-line' bindable
     107   commands, which move the cursor to the same column in the next, or previous,
     108   physical line, respectively.
     109
     110c. There are default key bindings for control-arrow-key key combinations.
     111
     112d. A negative argument (-N) to `quoted-insert' means to insert the next N
     113   characters using quoted-insert.
     114
     115e. New public function: rl_check_signals(), which allows applications to
     116   respond to signals that readline catches while waiting for input using
     117   a custom read function.
     118
     119f. There is new support for conditionally testing the readline version in an
     120   inputrc file, with a full set of arithmetic comparison operators available.
     121
     122g. There is a simple variable comparison facility available for use within an
     123   inputrc file. Allowable operators are equality and inequality; string
     124   variables may be compared to a value; boolean variables must be compared to
     125   either `on' or `off'; variable names are separated from the operator by
     126   whitespace.
     127
     128h. The history expansion library now understands command and process
     129   substitution and extended globbing and allows them to appear anywhere in a
     130   word.
     131
     132i. The history library has a new variable that allows applications to set the
     133   initial quoting state, so quoting state can be inherited from a previous
     134   line.
     135
     136j. Readline now allows application-defined keymap names; there is a new public
     137   function, rl_set_keymap_name(), to do that.
     138
     139k. The "Insert" keypad key, if available, now puts readline into overwrite
     140   mode.