Annotation of embedaddon/readline/CHANGES, revision 1.1

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

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