1165670SacheThis document details the changes between this version, readline-5.2, 2165670Sacheand the previous version, readline-5.1. 3165670Sache 4165670Sache1. Changes to Readline 5165670Sache 6165670Sachea. Fixed a problem that caused segmentation faults when using readline in 7165670Sache callback mode and typing consecutive DEL characters on an empty line. 8165670Sache 9165670Sacheb. Fixed several redisplay problems with multibyte characters, all having to 10165670Sache do with the different code paths and variable meanings between single-byte 11165670Sache and multibyte character redisplay. 12165670Sache 13165670Sachec. Fixed a problem with key sequence translation when presented with the 14165670Sache sequence \M-\C-x. 15165670Sache 16165670Sached. Fixed a problem that prevented the `a' command in vi mode from being 17165670Sache undone and redone properly. 18165670Sache 19165670Sachee. Fixed a problem that prevented empty inserts in vi mode from being undone 20165670Sache properly. 21165670Sache 22165670Sachef. Fixed a problem that caused readline to initialize with an incorrect idea 23165670Sache of whether or not the terminal can autowrap. 24165670Sache 25165670Sacheg. Fixed output of key bindings (like bash `bind -p') to honor the setting of 26165670Sache convert-meta and use \e where appropriate. 27165670Sache 28165670Sacheh. Changed the default filename completion function to call the filename 29165670Sache dequoting function if the directory completion hook isn't set. This means 30165670Sache that any directory completion hooks need to dequote the directory name, 31165670Sache since application-specific hooks need to know how the word was quoted, 32165670Sache even if no other changes are made. 33165670Sache 34165670Sachei. Fixed a bug with creating the prompt for a non-interactive search string 35165670Sache when there are non-printing characters in the primary prompt. 36165670Sache 37165670Sachej. Fixed a bug that caused prompts with invisible characters to be redrawn 38165670Sache multiple times in a multibyte locale. 39165670Sache 40165670Sachek. Fixed a bug that could cause the key sequence scanning code to return the 41165670Sache wrong function. 42165670Sache 43165670Sachel. Fixed a problem with the callback interface that caused it to fail when 44165670Sache using multi-character keyboard macros. 45165670Sache 46165670Sachem. Fixed a bug that could cause a core dump when an edited history entry was 47165670Sache re-executed under certain conditions. 48165670Sache 49165670Sachen. Fixed a bug that caused readline to reference freed memory when attmpting 50165670Sache to display a portion of the prompt. 51165670Sache 52165670Sacheo. Fixed a bug with prompt redisplay in a multi-byte locale to avoid redrawing 53165670Sache the prompt and input line multiple times. 54165670Sache 55165670Sachep. Fixed history expansion to not be confused by here-string redirection. 56165670Sache 57165670Sacheq. Readline no longer treats read errors by converting them to newlines, as 58165670Sache it does with EOF. This caused partial lines to be returned from readline(). 59165670Sache 60165670Sacher. Fixed a redisplay bug that occurred in multibyte-capable locales when the 61165670Sache prompt was one character longer than the screen width. 62165670Sache 63165670Sache2. New Features in Readline 64165670Sache 65165670Sachea. Calling applications can now set the keyboard timeout to 0, allowing 66165670Sache poll-like behavior. 67165670Sache 68165670Sacheb. The value of SYS_INPUTRC (configurable at compilation time) is now used as 69165670Sache the default last-ditch startup file. 70165670Sache 71165670Sachec. The history file reading functions now allow windows-like \r\n line 72165670Sache terminators. 73165670Sache 74165670Sache------------------------------------------------------------------------------- 75157184SacheThis document details the changes between this version, readline-5.1, 76157184Sacheand the previous version, readline-5.0. 77157184Sache 78157184Sache1. Changes to Readline 79157184Sache 80157184Sachea. Fixed a bug that caused multiliine prompts to be wrapped and displayed 81157184Sache incorrectly. 82157184Sache 83157184Sacheb. Fixed a bug that caused ^P/^N in emacs mode to fail to display the current 84157184Sache line correctly. 85157184Sache 86157184Sachec. Fixed a problem in computing the number of invisible characters on the first 87157184Sache line of a prompt whose length exceeds the screen width. 88157184Sache 89157184Sached. Fixed vi-mode searching so that failure preserves the current line rather 90157184Sache than the last line in the history list. 91157184Sache 92157184Sachee. Fixed the vi-mode `~' command (change-case) to have the correct behavior at 93157184Sache end-of-line when manipulating multibyte characters. 94157184Sache 95157184Sachef. Fixed the vi-mode `r' command (change-char) to have the correct behavior at 96157184Sache end-of-line when manipulating multibyte characters. 97157184Sache 98157184Sacheg. Fixed multiple bugs in the redisplay of multibyte characters: displaying 99157184Sache prompts longer than the screen width containing multibyte characters, 100157184Sache 101157184Sacheh. Fix the calculation of the number of physical characters in the prompt 102157184Sache string when it contains multibyte characters. 103157184Sache 104157184Sachei. A non-zero value for the `rl_complete_suppress_append' variable now causes 105157184Sache no `/' to be appended to a directory name. 106157184Sache 107157184Sachej. Fixed forward-word and backward-word to work when words contained 108157184Sache multibyte characters. 109157184Sache 110157184Sachek. Fixed a bug in finding the delimiter of a `?' substring when performing 111157184Sache history expansion in a locale that supports multibyte characters. 112157184Sache 113157184Sachel. Fixed a memory leak caused by not freeing the timestamp in a history entry. 114157184Sache 115157184Sachem. Fixed a bug that caused "\M-x" style key bindings to not obey the setting 116157184Sache of the `convert-meta' variable. 117157184Sache 118157184Sachen. Fixed saving and restoring primary prompt when prompting for incremental 119157184Sache and non-incremental searches; search prompts now display multibyte 120157184Sache characters correctly. 121157184Sache 122157184Sacheo. Fixed a bug that caused keys originally bound to self-insert but shadowed 123157184Sache by a multi-character key sequence to not be inserted. 124157184Sache 125157184Sachep. Fixed code so rl_prep_term_function and rl_deprep_term_function aren't 126157184Sache dereferenced if NULL (matching the documentation). 127157184Sache 128157184Sacheq. Extensive changes to readline to add enough state so that commands 129157184Sache requiring additional characters (searches, multi-key sequences, numeric 130157184Sache arguments, commands requiring an additional specifier character like 131157184Sache vi-mode change-char, etc.) work without synchronously waiting for 132157184Sache additional input. 133157184Sache 134157184Sacher. Lots of changes so readline builds and runs on MinGW. 135157184Sache 136157184Saches. Readline no longer tries to modify the terminal settings when running in 137157184Sache callback mode. 138157184Sache 139157184Sachet. The Readline display code no longer sets the location of the last invisible 140157184Sache character in the prompt if the \[\] sequence is empty. 141157184Sache 142157184Sacheu. The `change-case' command now correctly changes the case of multibyte 143157184Sache characters. 144157184Sache 145157184Sachev. Changes to the shared library construction scripts to deal with Windows 146157184Sache DLL naming conventions for Cygwin. 147157184Sache 148157184Sachew. Fixed the redisplay code to avoid core dumps resulting from a poorly-timed 149157184Sache SIGWINCH. 150157184Sache 151157184Sachex. Fixed the non-incremental search code in vi mode to dispose of any current 152157184Sache undo list when copying a line from the history into the current editing 153157184Sache buffer. 154157184Sache 155157184Sachey. Fixed a bug that caused reversing the incremental search direction to 156157184Sache not work correctly. 157157184Sache 158157184Sachez. Fixed the vi-mode `U' command to only undo up to the first time insert mode 159157184Sache was entered, as Posix specifies. 160157184Sache 161157184Sacheaa. Fixed a bug in the vi-mode `r' command that left the cursor in the wrong 162157184Sache place. 163157184Sache 164157184Sachebb. Fixed a redisplay bug caused by moving the cursor vertically to a line 165157184Sache with invisible characters in the prompt in a multibyte locale. 166157184Sache 167157184Sachecc. Fixed a bug that could cause the terminal special chars to be bound in the 168157184Sache wrong keymap in vi mode. 169157184Sache 170157184Sache2. New Features in Readline 171157184Sache 172157184Sachea. The key sequence sent by the keypad `delete' key is now automatically 173157184Sache bound to delete-char. 174157184Sache 175157184Sacheb. A negative argument to menu-complete now cycles backward through the 176157184Sache completion list. 177157184Sache 178157184Sachec. A new bindable readline variable: bind-tty-special-chars. If non-zero, 179157184Sache readline will bind the terminal special characters to their readline 180157184Sache equivalents when it's called (on by default). 181157184Sache 182157184Sached. New bindable command: vi-rubout. Saves deleted text for possible 183157184Sache reinsertion, as with any vi-mode `text modification' command; `X' is bound 184157184Sache to this in vi command mode. 185157184Sache 186157184Sachee. If the rl_completion_query_items is set to a value < 0, readline never 187157184Sache asks the user whether or not to view the possible completions. 188157184Sache 189157184Sachef. The `C-w' binding in incremental search now understands multibyte 190157184Sache characters. 191157184Sache 192157184Sacheg. New application-callable auxiliary function, rl_variable_value, returns 193157184Sache a string corresponding to a readline variable's value. 194157184Sache 195157184Sacheh. When parsing inputrc files and variable binding commands, the parser 196157184Sache strips trailing whitespace from values assigned to boolean variables 197157184Sache before checking them. 198157184Sache 199157184Sachei. A new external application-controllable variable that allows the LINES 200157184Sache and COLUMNS environment variables to set the window size regardless of 201157184Sache what the kernel returns. 202157184Sache 203157184Sache------------------------------------------------------------------------------- 204136644SacheThis document details the changes between this version, readline-5.0, 205136644Sacheand the previous version, readline-4.3. 206136644Sache 207136644Sache1. Changes to Readline 208136644Sache 209136644Sachea. Fixes to avoid core dumps because of null pointer references in the 210136644Sache multibyte character code. 211136644Sache 212136644Sacheb. Fix to avoid infinite recursion caused by certain key combinations. 213136644Sache 214136644Sachec. Fixed a bug that caused the vi-mode `last command' to be set incorrectly. 215136644Sache 216136644Sached. Readline no longer tries to read ahead more than one line of input, even 217136644Sache when more is available. 218136644Sache 219136644Sachee. Fixed the code that adjusts the point to not mishandle null wide 220136644Sache characters. 221136644Sache 222136644Sachef. Fixed a bug in the history expansion `g' modifier that caused it to skip 223136644Sache every other match. 224136644Sache 225136644Sacheg. Fixed a bug that caused the prompt to overwrite previous output when the 226136644Sache output doesn't contain a newline and the locale supports multibyte 227136644Sache characters. This same change fixes the problem of readline redisplay 228136644Sache slowing down dramatically as the line gets longer in multibyte locales. 229136644Sache 230136644Sacheh. History traversal with arrow keys in vi insertion mode causes the cursor 231136644Sache to be placed at the end of the new line, like in emacs mode. 232136644Sache 233136644Sachei. The locale initialization code does a better job of using the right 234136644Sache precedence and defaulting when checking the appropriate environment 235136644Sache variables. 236136644Sache 237136644Sachej. Fixed the history word tokenizer to handle <( and >( better when used as 238136644Sache part of bash. 239136644Sache 240136644Sachek. The overwrite mode code received several bug fixes to improve undo. 241136644Sache 242136644Sachel. Many speedups to the multibyte character redisplay code. 243136644Sache 244136644Sachem. The callback character reading interface should not hang waiting to read 245136644Sache keyboard input. 246136644Sache 247136644Sachen. Fixed a bug with redoing vi-mode `s' command. 248136644Sache 249136644Sacheo. The code that initializes the terminal tracks changes made to the terminal 250136644Sache special characters with stty(1) (or equivalent), so that these changes 251136644Sache are reflected in the readline bindings. New application-callable function 252136644Sache to make it work: rl_tty_unset_default_bindings(). 253136644Sache 254136644Sachep. Fixed a bug that could cause garbage to be inserted in the buffer when 255136644Sache changing character case in vi mode when using a multibyte locale. 256136644Sache 257136644Sacheq. Fixed a bug in the redisplay code that caused problems on systems 258136644Sache supporting multibyte characters when moving between history lines when the 259136644Sache new line has more glyphs but fewer bytes. 260136644Sache 261136644Sacher. Undo and redo now work better after exiting vi insertion mode. 262136644Sache 263136644Saches. Make sure system calls are restarted after a SIGWINCH is received using 264136644Sache SA_RESTART. 265136644Sache 266136644Sachet. Improvements to the code that displays possible completions when using 267136644Sache multibyte characters. 268136644Sache 269136644Sacheu. Fixed a problem when parsing nested if statements in inputrc files. 270136644Sache 271136644Sachev. The completer now takes multibyte characters into account when looking for 272136644Sache quoted substrings on which to perform completion. 273136644Sache 274136644Sachew. The history search functions now perform better bounds checking on the 275136644Sache history list. 276136644Sache 277136644Sachex. Change to history expansion functions to treat `^' as equivalent to word 278136644Sache one, as the documention states. 279136644Sache 280136644Sachey. Some changes to the display code to improve display and redisplay of 281136644Sache multibyte characters. 282136644Sache 283136644Sachez. Changes to speed up the multibyte character redisplay code. 284136644Sache 285136644Sacheaa. Fixed a bug in the vi-mode `E' command that caused it to skip over the 286136644Sache last character of a word if invoked while point was on the word's 287136644Sache next-to-last character. 288136644Sache 289136644Sachebb. Fixed a bug that could cause incorrect filename quoting when 290136644Sache case-insensitive completion was enabled and the word being completed 291136644Sache contained backslashes quoting word break characters. 292136644Sache 293136644Sachecc. Fixed a bug in redisplay triggered when the prompt string contains 294136644Sache invisible characters. 295136644Sache 296136644Sachedd. Fixed some display (and other) bugs encountered in multibyte locales 297136644Sache when a non-ascii character was the last character on a line. 298136644Sache 299136644Sacheee. Fixed some display bugs caused by multibyte characters in prompt strings. 300136644Sache 301136644Sacheff. Fixed a problem with history expansion caused by non-whitespace characters 302136644Sache used as history word delimiters. 303136644Sache 304136644Sachegg. Fixed a problem that could cause readline to refer to freed memory when 305136644Sache moving between history lines while doing searches. 306136644Sache 307136644Sachehh. Improvements to the code that expands and displays prompt strings 308136644Sache containing multibyte characters. 309136644Sache 310136644Sacheii. Fixed a problem with vi-mode not correctly remembering the numeric argument 311136644Sache to the last `c'hange command for later use with `.'. 312136644Sache 313136644Sachejj. Fixed a bug in vi-mode that caused multi-digit count arguments to work 314136644Sache incorrectly. 315136644Sache 316136644Sachekk. Fixed a problem in vi-mode that caused the last text modification command 317136644Sache to not be remembered across different command lines. 318136644Sache 319136644Sachell. Fixed problems with changing characters and changing case at the end of 320136644Sache the line. 321136644Sache 322136644Sachemm. Fixed a problem with readline saving the contents of the current line 323136644Sache before beginning a non-interactive search. 324136644Sache 325136644Sachenn. Fixed a problem with EOF detection when using rl_event_hook. 326136644Sache 327136644Sacheoo. Fixed a problem with the vi mode `p' and `P' commands ignoring numeric 328136644Sache arguments. 329136644Sache 330136644Sache2. New Features in Readline 331136644Sache 332136644Sachea. History expansion has a new `a' modifier equivalent to the `g' modifier 333136644Sache for compatibility with the BSD csh. 334136644Sache 335136644Sacheb. History expansion has a new `G' modifier equivalent to the BSD csh `g' 336136644Sache modifier, which performs a substitution once per word. 337136644Sache 338136644Sachec. All non-incremental search operations may now undo the operation of 339136644Sache replacing the current line with the history line. 340136644Sache 341136644Sached. The text inserted by an `a' command in vi mode can be reinserted with 342136644Sache `.'. 343136644Sache 344136644Sachee. New bindable variable, `show-all-if-unmodified'. If set, the readline 345136644Sache completer will list possible completions immediately if there is more 346136644Sache than one completion and partial completion cannot be performed. 347136644Sache 348136644Sachef. There is a new application-callable `free_history_entry()' function. 349136644Sache 350136644Sacheg. History list entries now contain timestamp information; the history file 351136644Sache functions know how to read and write timestamp information associated 352136644Sache with each entry. 353136644Sache 354136644Sacheh. Four new key binding functions have been added: 355136644Sache 356136644Sache rl_bind_key_if_unbound() 357136644Sache rl_bind_key_if_unbound_in_map() 358136644Sache rl_bind_keyseq_if_unbound() 359136644Sache rl_bind_keyseq_if_unbound_in_map() 360136644Sache 361136644Sachei. New application variable, rl_completion_quote_character, set to any 362136644Sache quote character readline finds before it calls the application completion 363136644Sache function. 364136644Sache 365136644Sachej. New application variable, rl_completion_suppress_quote, settable by an 366136644Sache application completion function. If set to non-zero, readline does not 367136644Sache attempt to append a closing quote to a completed word. 368136644Sache 369136644Sachek. New application variable, rl_completion_found_quote, set to a non-zero 370136644Sache value if readline determines that the word to be completed is quoted. 371136644Sache Set before readline calls any application completion function. 372136644Sache 373136644Sachel. New function hook, rl_completion_word_break_hook, called when readline 374136644Sache needs to break a line into words when completion is attempted. Allows 375136644Sache the word break characters to vary based on position in the line. 376136644Sache 377136644Sachem. New bindable command: unix-filename-rubout. Does the same thing as 378136644Sache unix-word-rubout, but adds `/' to the set of word delimiters. 379136644Sache 380136644Sachen. When listing completions, directories have a `/' appended if the 381136644Sache `mark-directories' option has been enabled. 382136644Sache 383136644Sache------------------------------------------------------------------------------- 384119610SacheThis document details the changes between this version, readline-4.3, 385119610Sacheand the previous version, readline-4.2a. 386119610Sache 387119610Sache1. Changes to Readline 388119610Sache 389119610Sachea. Fixed output of comment-begin character when listing variable values. 390119610Sache 391119610Sacheb. Added some default key bindings for common escape sequences produced by 392119610Sache HOME and END keys. 393119610Sache 394119610Sachec. Fixed the mark handling code to be more emacs-compatible. 395119610Sache 396119610Sached. A bug was fixed in the code that prints possible completions to keep it 397119610Sache from printing empty strings in certain circumstances. 398119610Sache 399119610Sachee. Change the key sequence printing code to print ESC as M\- if ESC is a 400119610Sache meta-prefix character -- it's easier for users to understand than \e. 401119610Sache 402119610Sachef. Fixed unstifle_history() to return values that match the documentation. 403119610Sache 404119610Sacheg. Fixed the event loop (rl_event_hook) to handle the case where the input 405119610Sache file descriptor is invalidated. 406119610Sache 407119610Sacheh. Fixed the prompt display code to work better when the application has a 408119610Sache custom redisplay function. 409119610Sache 410119610Sachei. Changes to make reading and writing the history file a little faster, and 411119610Sache to cope with huge history files without calling abort(3) from xmalloc. 412119610Sache 413119610Sachej. The vi-mode `S' and `s' commands are now undone correctly. 414119610Sache 415119610Sachek. Fixed a problem which caused the display to be messed up when the last 416119610Sache line of a multi-line prompt (possibly containing invisible characters) 417119610Sache was longer than the screen width. 418119610Sache 419119610Sache2. New Features in Readline 420119610Sache 421119610Sachea. Support for key `subsequences': allows, e.g., ESC and ESC-a to both 422119610Sache be bound to readline functions. Now the arrow keys may be used in vi 423119610Sache insert mode. 424119610Sache 425119610Sacheb. When listing completions, and the number of lines displayed is more than 426119610Sache the screen length, readline uses an internal pager to display the results. 427119610Sache This is controlled by the `page-completions' variable (default on). 428119610Sache 429119610Sachec. New code to handle editing and displaying multibyte characters. 430119610Sache 431119610Sached. The behavior introduced in bash-2.05a of deciding whether or not to 432119610Sache append a slash to a completed name that is a symlink to a directory has 433119610Sache been made optional, controlled by the `mark-symlinked-directories' 434119610Sache variable (default is the 2.05a behavior). 435119610Sache 436119610Sachee. The `insert-comment' command now acts as a toggle if given a numeric 437119610Sache argument: if the first characters on the line don't specify a 438119610Sache comment, insert one; if they do, delete the comment text 439119610Sache 440119610Sachef. New application-settable completion variable: 441119610Sache rl_completion_mark_symlink_dirs, allows an application's completion 442119610Sache function to temporarily override the user's preference for appending 443119610Sache slashes to names which are symlinks to directories. 444119610Sache 445119610Sacheg. New function available to application completion functions: 446119610Sache rl_completion_mode, to tell how the completion function was invoked 447119610Sache and decide which argument to supply to rl_complete_internal (to list 448119610Sache completions, etc.). 449119610Sache 450119610Sacheh. Readline now has an overwrite mode, toggled by the `overwrite-mode' 451119610Sache bindable command, which could be bound to `Insert'. 452119610Sache 453119610Sachei. New application-settable completion variable: 454119610Sache rl_completion_suppress_append, inhibits appending of 455119610Sache rl_completion_append_character to completed words. 456119610Sache 457119610Sachej. New key bindings when reading an incremental search string: ^W yanks 458119610Sache the currently-matched word out of the current line into the search 459119610Sache string; ^Y yanks the rest of the current line into the search string, 460119610Sache DEL or ^H deletes characters from the search string. 461119610Sache 462119610Sache------------------------------------------------------------------------------- 463119610SacheThis document details the changes between this version, readline-4.2a, 464119610Sacheand the previous version, readline-4.2. 465119610Sache 466119610Sache1. Changes to Readline 467119610Sache 468119610Sachea. More `const' and type casting fixes. 469119610Sache 470119610Sacheb. Changed rl_message() to use vsnprintf(3) (if available) to fix buffer 471119610Sache overflow problems. 472119610Sache 473119610Sachec. The completion code no longer appends a `/' or ` ' to a match when 474119610Sache completing a symbolic link that resolves to a directory name, unless 475119610Sache the match does not add anything to the word being completed. This 476119610Sache means that a tab will complete the word up to the full name, but not 477119610Sache add anything, and a subsequent tab will add a slash. 478119610Sache 479119610Sached. Fixed a trivial typo that made the vi-mode `dT' command not work. 480119610Sache 481119610Sachee. Fixed the tty code so that ^S and ^Q can be inserted with rl_quoted_insert. 482119610Sache 483119610Sachef. Fixed the tty code so that ^V works more than once. 484119610Sache 485119610Sacheg. Changed the use of __P((...)) for function prototypes to PARAMS((...)) 486119610Sache because the use of __P in typedefs conflicted g++ and glibc. 487119610Sache 488119610Sacheh. The completion code now attempts to do a better job of preserving the 489119610Sache case of the word the user typed if ignoring case in completions. 490119610Sache 491119610Sachei. Readline defaults to not echoing the input and lets the terminal 492119610Sache initialization code enable echoing if there is a controlling terminal. 493119610Sache 494119610Sachej. The key binding code now processes only two hex digits after a `\x' 495119610Sache escape sequence, and the documentation was changed to note that the 496119610Sache octal and hex escape sequences result in an eight-bit value rather 497119610Sache than strict ASCII. 498119610Sache 499119610Sachek. Fixed a few places where negative array subscripts could have occurred. 500119610Sache 501119610Sachel. Fixed the vi-mode code to use a better method to determine the bounds of 502119610Sache the array used to hold the marks, and to avoid out-of-bounds references. 503119610Sache 504119610Sachem. Fixed the defines in chardefs.h to work better when chars are signed. 505119610Sache 506119610Sachen. Fixed configure.in to use the new names for bash autoconf macros. 507119610Sache 508119610Sacheo. Readline no longer attempts to define its own versions of some ctype 509119610Sache macros if they are implemented as functions in libc but not as macros in 510119610Sache <ctype.h>. 511119610Sache 512119610Sachep. Fixed a problem where rl_backward could possibly set point to before 513119610Sache the beginning of the line. 514119610Sache 515119610Sacheq. Fixed Makefile to not put -I/usr/include into CFLAGS, since it can cause 516119610Sache include file problems. 517119610Sache 518119610Sache2. New Features in Readline 519119610Sache 520119610Sachea. Added extern declaration for rl_get_termcap to readline.h, making it a 521119610Sache public function (it was always there, just not in readline.h). 522119610Sache 523119610Sacheb. New #defines in readline.h: RL_READLINE_VERSION, currently 0x0402, 524119610Sache RL_VERSION_MAJOR, currently 4, and RL_VERSION_MINOR, currently 2. 525119610Sache 526119610Sachec. New readline variable: rl_readline_version, mirrors RL_READLINE_VERSION. 527119610Sache 528119610Sached. New bindable boolean readline variable: match-hidden-files. Controls 529119610Sache completion of files beginning with a `.' (on Unix). Enabled by default. 530119610Sache 531119610Sachee. The history expansion code now allows any character to terminate a 532119610Sache `:first-' modifier, like csh. 533119610Sache 534119610Sachef. The incremental search code remembers the last search string and uses 535119610Sache it if ^R^R is typed without a search string. 536119610Sache 537119610Sacheh. New bindable variable `history-preserve-point'. If set, the history 538119610Sache code attempts to place the user at the same location on each history 539119610Sache line retrived with previous-history or next-history. 540119610Sache 541119610Sache------------------------------------------------------------------------------- 54275406SacheThis document details the changes between this version, readline-4.2, 54375406Sacheand the previous version, readline-4.1. 54475406Sache 54575406Sache1. Changes to Readline 54675406Sache 54775406Sachea. When setting the terminal attributes on systems using `struct termio', 54875406Sache readline waits for output to drain before changing the attributes. 54975406Sache 55075406Sacheb. A fix was made to the history word tokenization code to avoid attempts to 55175406Sache dereference a null pointer. 55275406Sache 55375406Sachec. Readline now defaults rl_terminal_name to $TERM if the calling application 55475406Sache has left it unset, and tries to initialize with the resultant value. 55575406Sache 55675406Sached. Instead of calling (*rl_getc_function)() directly to get input in certain 55775406Sache places, readline now calls rl_read_key() consistently. 55875406Sache 55975406Sachee. Fixed a bug in the completion code that allowed a backslash to quote a 56075406Sache single quote inside a single-quoted string. 56175406Sache 56275406Sachef. rl_prompt is no longer assigned directly from the argument to readline(), 56375406Sache but uses memory allocated by readline. This allows constant strings to 56475406Sache be passed to readline without problems arising when the prompt processing 56575406Sache code wants to modify the string. 56675406Sache 56775406Sacheg. Fixed a bug that caused non-interactive history searches to return the 56875406Sache wrong line when performing multiple searches backward for the same string. 56975406Sache 57075406Sacheh. Many variables, function arguments, and function return values are now 57175406Sache declared `const' where appropriate, to improve behavior when linking with 57275406Sache C++ code. 57375406Sache 57475406Sachei. The control character detection code now works better on systems where 57575406Sache `char' is unsigned by default. 57675406Sache 57775406Sachej. The vi-mode numeric argument is now capped at 999999, just like emacs mode. 57875406Sache 57975406Sachek. The Function, CPFunction, CPPFunction, and VFunction typedefs have been 58075406Sache replaced with a set of specific prototyped typedefs, though they are 58175406Sache still in the readline header files for backwards compatibility. 58275406Sache 58375406Sachem. Nearly all of the (undocumented) internal global variables in the library 58475406Sache now have an _rl_ prefix -- there were a number that did not, like 58575406Sache screenheight, screenwidth, alphabetic, etc. 58675406Sache 58775406Sachen. The ding() convenience function has been renamed to rl_ding(), though the 58875406Sache old function is still defined for backwards compatibility. 58975406Sache 59075406Sacheo. The completion convenience functions filename_completion_function, 59175406Sache username_completion_function, and completion_matches now have an rl_ 59275406Sache prefix, though the old names are still defined for backwards compatibility. 59375406Sache 59475406Sachep. The functions shared by readline and bash (linkage is satisfied from bash 59575406Sache when compiling with bash, and internally otherwise) now have an sh_ prefix. 59675406Sache 59775406Sacheq. Changed the shared library creation procedure on Linux and BSD/OS 4.x so 59875406Sache that the `soname' contains only the major version number rather than the 59975406Sache major and minor numbers. 60075406Sache 60175406Sacher. Fixed a redisplay bug that occurred when the prompt spanned more than one 60275406Sache physical line and contained invisible characters. 60375406Sache 60475406Saches. Added a missing `includedir' variable to the Makefile. 60575406Sache 60675406Sachet. When installing the shared libraries, make sure symbolic links are relative. 60775406Sache 60875406Sacheu. Added configure test so that it can set `${MAKE}' appropriately. 60975406Sache 61075406Sachev. Fixed a bug in rl_forward that could cause the point to be set to before 61175406Sache the beginning of the line in vi mode. 61275406Sache 61375406Sachew. Fixed a bug in the callback read-char interface to make it work when a 61475406Sache readline function pushes some input onto the input stream with 61575406Sache rl_execute_next (like the incremental search functions). 61675406Sache 61775406Sachex. Fixed a file descriptor leak in the history file manipulation code that 61875406Sache was tripped when attempting to truncate a non-regular file (like 61975406Sache /dev/null). 62075406Sache 62175406Sachey. Changes to make all of the exported readline functions declared in 62275406Sache readline.h have an rl_ prefix (rltty_set_default_bindings is now 62375406Sache rl_tty_set_default_bindings, crlf is now rl_crlf, etc.) 62475406Sache 62575406Sachez. The formatted documentation included in the base readline distribution 62675406Sache is no longer removed on a `make distclean'. 62775406Sache 62875406Sacheaa. Some changes were made to avoid gcc warnings with -Wall. 62975406Sache 63075406Sachebb. rl_get_keymap_by_name now finds keymaps case-insensitively, so 63175406Sache `set keymap EMACS' works. 63275406Sache 63375406Sachecc. The history file writing and truncation functions now return a useful 63475406Sache status on error. 63575406Sache 63675406Sachedd. Fixed a bug that could cause applications to dereference a NULL pointer 63775406Sache if a NULL second argument was passed to history_expand(). 63875406Sache 63975406Sacheee. If a hook function assigned to rl_event_hook sets rl_done to a non-zero 64075406Sache value, rl_read_key() now immediately returns '\n' (which is assumed to 64175406Sache be bound to accept-line). 64275406Sache 64375406Sache2. New Features in Readline 64475406Sache 64575406Sachea. The blink timeout for paren matching is now settable by applications, 64675406Sache via the rl_set_paren_blink_timeout() function. 64775406Sache 64875406Sacheb. _rl_executing_macro has been renamed to rl_executing_macro, which means 64975406Sache it's now part of the public interface. 65075406Sache 65175406Sachec. Readline has a new variable, rl_readline_state, which is a bitmap that 65275406Sache encapsulates the current state of the library; intended for use by 65375406Sache callbacks and hook functions. 65475406Sache 65575406Sached. rlfe has a new -l option to log input and output (-a appends to logfile), 65675406Sache a new -n option to set the readline application name, and -v and -h 65775406Sache options for version and help information. 65875406Sache 65975406Sachee. rlfe can now perform filename completion for the inferior process if the 66075406Sache OS has a /proc/<PID>/cwd that can be read with readlink(2) to get the 66175406Sache inferior's current working directory. 66275406Sache 66375406Sachef. A new file, rltypedefs.h, contains the new typedefs for function pointers 66475406Sache and is installed by `make install'. 66575406Sache 66675406Sacheg. New application-callable function rl_set_prompt(const char *prompt): 66775406Sache expands its prompt string argument and sets rl_prompt to the result. 66875406Sache 66975406Sacheh. New application-callable function rl_set_screen_size(int rows, int cols): 67075406Sache public method for applications to set readline's idea of the screen 67175406Sache dimensions. 67275406Sache 67375406Sachei. The history example program (examples/histexamp.c) is now built as one 67475406Sache of the examples. 67575406Sache 67675406Sachej. The documentation has been updated to cover nearly all of the public 67775406Sache functions and variables declared in readline.h. 67875406Sache 67975406Sachek. New function, rl_get_screen_size (int *rows, int *columns), returns 68075406Sache readline's idea of the screen dimensions. 68175406Sache 68275406Sachel. The timeout in rl_gather_tyi (readline keyboard input polling function) 68375406Sache is now settable via a function (rl_set_keyboard_input_timeout()). 68475406Sache 68575406Sachem. Renamed the max_input_history variable to history_max_entries; the old 68675406Sache variable is maintained for backwards compatibility. 68775406Sache 68875406Sachen. The list of characters that separate words for the history tokenizer is 68975406Sache now settable with a variable: history_word_delimiters. The default 69075406Sache value is as before. 69175406Sache 69275406Sacheo. There is a new history.3 manual page documenting the history library. 69375406Sache 69475406Sache------------------------------------------------------------------------------- 69558310SacheThis document details the changes between this version, readline-4.1, 69658310Sacheand the previous version, readline-4.0. 69758310Sache 69858310Sache1. Changes to Readline 69958310Sache 70058310Sachea. Changed the HTML documents so that the table-of-contents is no longer 70158310Sache a separate file. 70258310Sache 70358310Sacheb. Changes to the shared object configuration for: Irix 5.x, Irix 6.x, 70458310Sache OSF/1. 70558310Sache 70658310Sachec. The shared library major and minor versions are now constructed 70758310Sache automatically by configure and substituted into the makefiles. 70858310Sache 70958310Sached. It's now possible to install the shared libraries separately from the 71058310Sache static libraries. 71158310Sache 71258310Sachee. The history library tries to truncate the history file only if it is a 71358310Sache regular file. 71458310Sache 71558310Sachef. A bug that caused _rl_dispatch to address negative array indices on 71658310Sache systems with signed chars was fixed. 71758310Sache 71858310Sacheg. rl-yank-nth-arg now leaves the history position the same as when it was 71958310Sache called. 72058310Sache 72158310Sacheh. Changes to the completion code to handle MS-DOS drive-letter:pathname 72258310Sache filenames. 72358310Sache 72458310Sachei. Completion is now case-insensitive by default on MS-DOS. 72558310Sache 72658310Sachej. Fixes to the history file manipulation code for MS-DOS. 72758310Sache 72858310Sachek. Readline attempts to bind the arrow keys to appropriate defaults on MS-DOS. 72958310Sache 73058310Sachel. Some fixes were made to the redisplay code for better operation on MS-DOS. 73158310Sache 73258310Sachem. The quoted-insert code will now insert tty special chars like ^C. 73358310Sache 73458310Sachen. A bug was fixed that caused the display code to reference memory before 73558310Sache the start of the prompt string. 73658310Sache 73758310Sacheo. More support for __EMX__ (OS/2). 73858310Sache 73958310Sachep. A bug was fixed in readline's signal handling that could cause infinite 74058310Sache recursion in signal handlers. 74158310Sache 74258310Sacheq. A bug was fixed that caused the point to be less than zero when rl_forward 74358310Sache was given a very large numeric argument. 74458310Sache 74558310Sacher. The vi-mode code now gets characters via the application-settable value 74658310Sache of rl_getc_function rather than calling rl_getc directly. 74758310Sache 74858310Saches. The history file code now uses O_BINARY mode when reading and writing 74958310Sache the history file on cygwin32. 75058310Sache 75158310Sachet. Fixed a bug in the redisplay code for lines with more than 256 line 75258310Sache breaks. 75358310Sache 75458310Sacheu. A bug was fixed which caused invisible character markers to not be 75558310Sache stripped from the prompt string if the terminal was in no-echo mode. 75658310Sache 75758310Sachev. Readline no longer tries to get the variables it needs for redisplay 75858310Sache from the termcap entry if the calling application has specified its 75958310Sache own redisplay function. Readline treats the terminal as `dumb' in 76058310Sache this case. 76158310Sache 76258310Sachew. Fixes to the SIGWINCH code so that a multiple-line prompt with escape 76358310Sache sequences is redrawn correctly. 76458310Sache 76558310Sachex. Changes to the install and install-shared targets so that the libraries 76658310Sache and header files are installed separately. 76758310Sache 76858310Sache2. New Features in Readline 76958310Sache 77058310Sachea. A new Readline `user manual' is in doc/rluserman.texinfo. 77158310Sache 77258310Sacheb. Parentheses matching is now always compiled into readline, and enabled 77358310Sache or disabled when the value of the `blink-matching-paren' variable is 77458310Sache changed. 77558310Sache 77658310Sachec. MS-DOS systems now use ~/_inputrc as the last-ditch inputrc filename. 77758310Sache 77858310Sached. MS-DOS systems now use ~/_history as the default history file. 77958310Sache 78058310Sachee. history-search-{forward,backward} now leave the point at the end of the 78158310Sache line when the string to search for is empty, like 78258310Sache {reverse,forward}-search-history. 78358310Sache 78458310Sachef. history-search-{forward,backward} now leave the last history line found 78558310Sache in the readline buffer if the second or subsequent search fails. 78658310Sache 78758310Sacheg. New function for use by applications: rl_on_new_line_with_prompt, used 78858310Sache when an application displays the prompt itself before calling readline(). 78958310Sache 79058310Sacheh. New variable for use by applications: rl_already_prompted. An application 79158310Sache that displays the prompt itself before calling readline() must set this to 79258310Sache a non-zero value. 79358310Sache 79458310Sachei. A new variable, rl_gnu_readline_p, always 1. The intent is that an 79558310Sache application can verify whether or not it is linked with the `real' 79658310Sache readline library or some substitute. 79758310Sache 79858310Sachej. Per Bothner's `rlfe' (pronounced `Ralphie') readline front-end program 79958310Sache is included in the examples subdirectory, though it is not built 80058310Sache by default. 80158310Sache 80258310Sache------------------------------------------------------------------------------- 80347558SacheThis document details the changes between this version, readline-4.0, 80447558Sacheand the previous version, readline-2.2. 80547558Sache 80647558Sache1. Changes to Readline 80747558Sache 80847558Sachea. The version number is now 4.0, to match the major and minor version 80947558Sache numbers on the shared readline and history libraries. Future 81047558Sache releases will maintain the identical numbering. 81147558Sache 81247558Sacheb. Fixed a typo in the `make install' recipe that copied libreadline.a 81347558Sache to libhistory.old right after installing it. 81447558Sache 81547558Sachec. The readline and history info files are now installed out of the source 81647558Sache directory if they are not found in the build directory. 81747558Sache 81847558Sached. The library no longer exports a function named `savestring' -- backwards 81947558Sache compatibility be damned. 82047558Sache 82147558Sachee. There is no longer any #ifdef SHELL code in the source files. 82247558Sache 82347558Sachef. Some changes were made to the key binding code to fix memory leaks and 82447558Sache better support Win32 systems. 82547558Sache 82647558Sacheg. Fixed a silly typo in the paren matching code -- it's microseconds, not 82747558Sache milliseconds. 82847558Sache 82947558Sacheh. The readline library should be compilable by C++ compilers. 83047558Sache 83147558Sachei. The readline.h public header file now includes function prototypes for 83247558Sache all readline functions, and some changes were made to fix errors in the 83347558Sache source files uncovered by the use of prototypes. 83447558Sache 83547558Sachej. The maximum numeric argument is now clamped at 1000000. 83647558Sache 83747558Sachek. Fixes to rl_yank_last_arg to make it behave better. 83847558Sache 83947558Sachel. Fixed a bug in the display code that caused core dumps if the prompt 84047558Sache string length exceeded 1024 characters. 84147558Sache 84247558Sachem. The menu completion code was fixed to properly insert a single completion 84347558Sache if there is only one match. 84447558Sache 84547558Sachen. A bug was fixed that caused the display code to improperly display tabs 84647558Sache after newlines. 84747558Sache 84847558Sacheo. A fix was made to the completion code in which a typo caused the wrong 84947558Sache value to be passed to the function that computed the longest common 85047558Sache prefix of the list of matches. 85147558Sache 85247558Sachep. The completion code now checks the value of rl_filename_completion_desired, 85347558Sache which is set by application-supplied completion functions to indicate 85447558Sache that filename completion is being performed, to decide whether or not to 85547558Sache call an application-supplied `ignore completions' function. 85647558Sache 85747558Sacheq. Code was added to the history library to catch history substitutions 85847558Sache using `&' without a previous history substitution or search having been 85947558Sache performed. 86047558Sache 86147558Sache 86247558Sache2. New Features in Readline 86347558Sache 86447558Sachea. There is a new script, support/shobj-conf, to do system-specific shared 86547558Sache object and library configuration. It generates variables for configure 86647558Sache to substitute into makefiles. The README file provides a detailed 86747558Sache explanation of the shared library creation process. 86847558Sache 86947558Sacheb. Shared libraries and objects are now built in the `shlib' subdirectory. 87047558Sache There is a shlib/Makefile.in to control the build process. `make shared' 87147558Sache from the top-level directory is still the right way to build shared 87247558Sache versions of the libraries. 87347558Sache 87447558Sachec. rlconf.h is now installed, so applications can find out which features 87547558Sache have been compiled into the installed readline and history libraries. 87647558Sache 87747558Sached. rlstdc.h is now an installed header file. 87847558Sache 87947558Sachee. Many changes to the signal handling: 88047558Sache o Readline now catches SIGQUIT and cleans up the tty before returning; 88147558Sache o A new variable, rl_catch_signals, is available to application writers 88247558Sache to indicate to readline whether or not it should install its own 88347558Sache signal handlers for SIGINT, SIGTERM, SIGQUIT, SIGALRM, SIGTSTP, 88447558Sache SIGTTIN, and SIGTTOU; 88547558Sache o A new variable, rl_catch_sigwinch, is available to application 88647558Sache writers to indicate to readline whether or not it should install its 88747558Sache own signal handler for SIGWINCH, which will chain to the calling 88847558Sache applications's SIGWINCH handler, if one is installed; 88947558Sache o There is a new function, rl_free_line_state, for application signal 89047558Sache handlers to call to free up the state associated with the current 89147558Sache line after receiving a signal; 89247558Sache o There is a new function, rl_cleanup_after_signal, to clean up the 89347558Sache display and terminal state after receiving a signal; 89447558Sache o There is a new function, rl_reset_after_signal, to reinitialize the 89547558Sache terminal and display state after an application signal handler 89647558Sache returns and readline continues 89747558Sache 89847558Sachef. There is a new function, rl_resize_terminal, to reset readline's idea of 89947558Sache the screen size after a SIGWINCH. 90047558Sache 90147558Sacheg. New public functions: rl_save_prompt and rl_restore_prompt. These were 90247558Sache previously private functions with a `_' prefix. These functions are 90347558Sache used when an application wants to write a message to the `message area' 90447558Sache with rl_message and have the prompt restored correctly when the message 90547558Sache is erased. 90647558Sache 90747558Sacheh. New function hook: rl_pre_input_hook, called just before readline starts 90847558Sache reading input, after initialization. 90947558Sache 91047558Sachei. New function hook: rl_display_matches_hook, called when readline would 91147558Sache display the list of completion matches. The new function 91247558Sache rl_display_match_list is what readline uses internally, and is available 91347558Sache for use by application functions called via this hook. 91447558Sache 91547558Sachej. New bindable function, delete-char-or-list, like tcsh. 91647558Sache 91747558Sachek. A new variable, rl_erase_empty_line, which, if set by an application using 91847558Sache readline, will cause readline to erase, prompt and all, lines on which the 91947558Sache only thing typed was a newline. 92047558Sache 92147558Sachel. There is a new script, support/shlib-install, to install and uninstall 92247558Sache the shared readline and history libraries. 92347558Sache 92447558Sachem. A new bindable variable, `isearch-terminators', which is a string 92547558Sache containing the set of characters that should terminate an incremental 92647558Sache search without being executed as a command. 92747558Sache 92847558Sachen. A new bindable function, forward-backward-delete-char. 92947558Sache 93047558Sache------------------------------------------------------------------------------- 93135486SacheThis document details the changes between this version, readline-2.2, 93235486Sacheand the previous version, readline-2.1. 93335486Sache 93435486Sache1. Changes to Readline 93535486Sache 93635486Sachea. Added a missing `extern' to a declaration in readline.h that kept 93735486Sache readline from compiling cleanly on some systems. 93835486Sache 93935486Sacheb. The history file is now opened with mode 0600 when it is written for 94035486Sache better security. 94135486Sache 94235486Sachec. Changes were made to the SIGWINCH handling code so that prompt redisplay 94335486Sache is done better. 94435486Sache 94535486Sached. ^G now interrupts incremental searches correctly. 94635486Sache 94735486Sachee. A bug that caused a core dump when the set of characters to be quoted 94835486Sache when completing words was empty was fixed. 94935486Sache 95035486Sachef. Fixed a problem in the readline test program rltest.c that caused a core 95135486Sache dump. 95235486Sache 95335486Sacheg. The code that handles parser directives in inputrc files now displays 95435486Sache more error messages. 95535486Sache 95635486Sacheh. The history expansion code was fixed so that the appearance of the 95735486Sache history comment character at the beginning of a word inhibits history 95835486Sache expansion for that word and the rest of the input line. 95935486Sache 96035486Sachei. The code that prints completion listings now behaves better if one or 96135486Sache more of the filenames contains non-printable characters. 96235486Sache 96335486Sachej. The time delay when showing matching parentheses is now 0.5 seconds. 96435486Sache 96535486Sache 96635486Sache2. New Features in Readline 96735486Sache 96835486Sachea. There is now an option for `iterative' yank-last-arg handline, so a user 96935486Sache can keep entering `M-.', yanking the last argument of successive history 97035486Sache lines. 97135486Sache 97235486Sacheb. New variable, `print-completions-horizontally', which causes completion 97335486Sache matches to be displayed across the screen (like `ls -x') rather than up 97435486Sache and down the screen (like `ls'). 97535486Sache 97635486Sachec. New variable, `completion-ignore-case', which causes filename completion 97735486Sache and matching to be performed case-insensitively. 97835486Sache 97935486Sached. There is a new bindable command, `magic-space', which causes history 98035486Sache expansion to be performed on the current readline buffer and a space to 98135486Sache be inserted into the result. 98235486Sache 98335486Sachee. There is a new bindable command, `menu-complete', which enables tcsh-like 98435486Sache menu completion (successive executions of menu-complete insert a single 98535486Sache completion match, cycling through the list of possible completions). 98635486Sache 98735486Sachef. There is a new bindable command, `paste-from-clipboard', for use on Win32 98835486Sache systems, to insert the text from the Win32 clipboard into the editing 98935486Sache buffer. 99035486Sache 99135486Sacheg. The key sequence translation code now understands printf-style backslash 99235486Sache escape sequences, including \NNN octal escapes. These escape sequences 99335486Sache may be used in key sequence definitions or macro values. 99435486Sache 99535486Sacheh. An `$include' inputrc file parser directive has been added. 996