File:  [ELWIX - Embedded LightWeight unIX -] / embedaddon / readline / CHANGES
Revision 1.1.1.1 (vendor branch): download - view: text, annotated - select for diffs - revision graph
Wed Jul 30 08:16:45 2014 UTC (9 years, 11 months ago) by misho
Branches: readline, MAIN
CVS tags: v6_3p10_cross, v6_3p10, v6_3, p6, HEAD
readline 6.3

    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>