Annotation of embedaddon/readline/CHANGES, revision 1.1.1.1

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

FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>