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>