Annotation of embedaddon/readline/CHANGES, revision 1.1.1.2

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

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