CHANGES revision 75406
1This document details the changes between this version, readline-4.2, 2and the previous version, readline-4.1. 3 41. Changes to Readline 5 6a. When setting the terminal attributes on systems using `struct termio', 7 readline waits for output to drain before changing the attributes. 8 9b. A fix was made to the history word tokenization code to avoid attempts to 10 dereference a null pointer. 11 12c. Readline now defaults rl_terminal_name to $TERM if the calling application 13 has left it unset, and tries to initialize with the resultant value. 14 15d. Instead of calling (*rl_getc_function)() directly to get input in certain 16 places, readline now calls rl_read_key() consistently. 17 18e. Fixed a bug in the completion code that allowed a backslash to quote a 19 single quote inside a single-quoted string. 20 21f. rl_prompt is no longer assigned directly from the argument to readline(), 22 but uses memory allocated by readline. This allows constant strings to 23 be passed to readline without problems arising when the prompt processing 24 code wants to modify the string. 25 26g. Fixed a bug that caused non-interactive history searches to return the 27 wrong line when performing multiple searches backward for the same string. 28 29h. Many variables, function arguments, and function return values are now 30 declared `const' where appropriate, to improve behavior when linking with 31 C++ code. 32 33i. The control character detection code now works better on systems where 34 `char' is unsigned by default. 35 36j. The vi-mode numeric argument is now capped at 999999, just like emacs mode. 37 38k. The Function, CPFunction, CPPFunction, and VFunction typedefs have been 39 replaced with a set of specific prototyped typedefs, though they are 40 still in the readline header files for backwards compatibility. 41 42m. Nearly all of the (undocumented) internal global variables in the library 43 now have an _rl_ prefix -- there were a number that did not, like 44 screenheight, screenwidth, alphabetic, etc. 45 46n. The ding() convenience function has been renamed to rl_ding(), though the 47 old function is still defined for backwards compatibility. 48 49o. The completion convenience functions filename_completion_function, 50 username_completion_function, and completion_matches now have an rl_ 51 prefix, though the old names are still defined for backwards compatibility. 52 53p. The functions shared by readline and bash (linkage is satisfied from bash 54 when compiling with bash, and internally otherwise) now have an sh_ prefix. 55 56q. Changed the shared library creation procedure on Linux and BSD/OS 4.x so 57 that the `soname' contains only the major version number rather than the 58 major and minor numbers. 59 60r. Fixed a redisplay bug that occurred when the prompt spanned more than one 61 physical line and contained invisible characters. 62 63s. Added a missing `includedir' variable to the Makefile. 64 65t. When installing the shared libraries, make sure symbolic links are relative. 66 67u. Added configure test so that it can set `${MAKE}' appropriately. 68 69v. Fixed a bug in rl_forward that could cause the point to be set to before 70 the beginning of the line in vi mode. 71 72w. Fixed a bug in the callback read-char interface to make it work when a 73 readline function pushes some input onto the input stream with 74 rl_execute_next (like the incremental search functions). 75 76x. Fixed a file descriptor leak in the history file manipulation code that 77 was tripped when attempting to truncate a non-regular file (like 78 /dev/null). 79 80y. Changes to make all of the exported readline functions declared in 81 readline.h have an rl_ prefix (rltty_set_default_bindings is now 82 rl_tty_set_default_bindings, crlf is now rl_crlf, etc.) 83 84z. The formatted documentation included in the base readline distribution 85 is no longer removed on a `make distclean'. 86 87aa. Some changes were made to avoid gcc warnings with -Wall. 88 89bb. rl_get_keymap_by_name now finds keymaps case-insensitively, so 90 `set keymap EMACS' works. 91 92cc. The history file writing and truncation functions now return a useful 93 status on error. 94 95dd. Fixed a bug that could cause applications to dereference a NULL pointer 96 if a NULL second argument was passed to history_expand(). 97 98ee. If a hook function assigned to rl_event_hook sets rl_done to a non-zero 99 value, rl_read_key() now immediately returns '\n' (which is assumed to 100 be bound to accept-line). 101 1022. New Features in Readline 103 104a. The blink timeout for paren matching is now settable by applications, 105 via the rl_set_paren_blink_timeout() function. 106 107b. _rl_executing_macro has been renamed to rl_executing_macro, which means 108 it's now part of the public interface. 109 110c. Readline has a new variable, rl_readline_state, which is a bitmap that 111 encapsulates the current state of the library; intended for use by 112 callbacks and hook functions. 113 114d. rlfe has a new -l option to log input and output (-a appends to logfile), 115 a new -n option to set the readline application name, and -v and -h 116 options for version and help information. 117 118e. rlfe can now perform filename completion for the inferior process if the 119 OS has a /proc/<PID>/cwd that can be read with readlink(2) to get the 120 inferior's current working directory. 121 122f. A new file, rltypedefs.h, contains the new typedefs for function pointers 123 and is installed by `make install'. 124 125g. New application-callable function rl_set_prompt(const char *prompt): 126 expands its prompt string argument and sets rl_prompt to the result. 127 128h. New application-callable function rl_set_screen_size(int rows, int cols): 129 public method for applications to set readline's idea of the screen 130 dimensions. 131 132i. The history example program (examples/histexamp.c) is now built as one 133 of the examples. 134 135j. The documentation has been updated to cover nearly all of the public 136 functions and variables declared in readline.h. 137 138k. New function, rl_get_screen_size (int *rows, int *columns), returns 139 readline's idea of the screen dimensions. 140 141l. The timeout in rl_gather_tyi (readline keyboard input polling function) 142 is now settable via a function (rl_set_keyboard_input_timeout()). 143 144m. Renamed the max_input_history variable to history_max_entries; the old 145 variable is maintained for backwards compatibility. 146 147n. The list of characters that separate words for the history tokenizer is 148 now settable with a variable: history_word_delimiters. The default 149 value is as before. 150 151o. There is a new history.3 manual page documenting the history library. 152 153------------------------------------------------------------------------------- 154This document details the changes between this version, readline-4.1, 155and the previous version, readline-4.0. 156 1571. Changes to Readline 158 159a. Changed the HTML documents so that the table-of-contents is no longer 160 a separate file. 161 162b. Changes to the shared object configuration for: Irix 5.x, Irix 6.x, 163 OSF/1. 164 165c. The shared library major and minor versions are now constructed 166 automatically by configure and substituted into the makefiles. 167 168d. It's now possible to install the shared libraries separately from the 169 static libraries. 170 171e. The history library tries to truncate the history file only if it is a 172 regular file. 173 174f. A bug that caused _rl_dispatch to address negative array indices on 175 systems with signed chars was fixed. 176 177g. rl-yank-nth-arg now leaves the history position the same as when it was 178 called. 179 180h. Changes to the completion code to handle MS-DOS drive-letter:pathname 181 filenames. 182 183i. Completion is now case-insensitive by default on MS-DOS. 184 185j. Fixes to the history file manipulation code for MS-DOS. 186 187k. Readline attempts to bind the arrow keys to appropriate defaults on MS-DOS. 188 189l. Some fixes were made to the redisplay code for better operation on MS-DOS. 190 191m. The quoted-insert code will now insert tty special chars like ^C. 192 193n. A bug was fixed that caused the display code to reference memory before 194 the start of the prompt string. 195 196o. More support for __EMX__ (OS/2). 197 198p. A bug was fixed in readline's signal handling that could cause infinite 199 recursion in signal handlers. 200 201q. A bug was fixed that caused the point to be less than zero when rl_forward 202 was given a very large numeric argument. 203 204r. The vi-mode code now gets characters via the application-settable value 205 of rl_getc_function rather than calling rl_getc directly. 206 207s. The history file code now uses O_BINARY mode when reading and writing 208 the history file on cygwin32. 209 210t. Fixed a bug in the redisplay code for lines with more than 256 line 211 breaks. 212 213u. A bug was fixed which caused invisible character markers to not be 214 stripped from the prompt string if the terminal was in no-echo mode. 215 216v. Readline no longer tries to get the variables it needs for redisplay 217 from the termcap entry if the calling application has specified its 218 own redisplay function. Readline treats the terminal as `dumb' in 219 this case. 220 221w. Fixes to the SIGWINCH code so that a multiple-line prompt with escape 222 sequences is redrawn correctly. 223 224x. Changes to the install and install-shared targets so that the libraries 225 and header files are installed separately. 226 2272. New Features in Readline 228 229a. A new Readline `user manual' is in doc/rluserman.texinfo. 230 231b. Parentheses matching is now always compiled into readline, and enabled 232 or disabled when the value of the `blink-matching-paren' variable is 233 changed. 234 235c. MS-DOS systems now use ~/_inputrc as the last-ditch inputrc filename. 236 237d. MS-DOS systems now use ~/_history as the default history file. 238 239e. history-search-{forward,backward} now leave the point at the end of the 240 line when the string to search for is empty, like 241 {reverse,forward}-search-history. 242 243f. history-search-{forward,backward} now leave the last history line found 244 in the readline buffer if the second or subsequent search fails. 245 246g. New function for use by applications: rl_on_new_line_with_prompt, used 247 when an application displays the prompt itself before calling readline(). 248 249h. New variable for use by applications: rl_already_prompted. An application 250 that displays the prompt itself before calling readline() must set this to 251 a non-zero value. 252 253i. A new variable, rl_gnu_readline_p, always 1. The intent is that an 254 application can verify whether or not it is linked with the `real' 255 readline library or some substitute. 256 257j. Per Bothner's `rlfe' (pronounced `Ralphie') readline front-end program 258 is included in the examples subdirectory, though it is not built 259 by default. 260 261------------------------------------------------------------------------------- 262This document details the changes between this version, readline-4.0, 263and the previous version, readline-2.2. 264 2651. Changes to Readline 266 267a. The version number is now 4.0, to match the major and minor version 268 numbers on the shared readline and history libraries. Future 269 releases will maintain the identical numbering. 270 271b. Fixed a typo in the `make install' recipe that copied libreadline.a 272 to libhistory.old right after installing it. 273 274c. The readline and history info files are now installed out of the source 275 directory if they are not found in the build directory. 276 277d. The library no longer exports a function named `savestring' -- backwards 278 compatibility be damned. 279 280e. There is no longer any #ifdef SHELL code in the source files. 281 282f. Some changes were made to the key binding code to fix memory leaks and 283 better support Win32 systems. 284 285g. Fixed a silly typo in the paren matching code -- it's microseconds, not 286 milliseconds. 287 288h. The readline library should be compilable by C++ compilers. 289 290i. The readline.h public header file now includes function prototypes for 291 all readline functions, and some changes were made to fix errors in the 292 source files uncovered by the use of prototypes. 293 294j. The maximum numeric argument is now clamped at 1000000. 295 296k. Fixes to rl_yank_last_arg to make it behave better. 297 298l. Fixed a bug in the display code that caused core dumps if the prompt 299 string length exceeded 1024 characters. 300 301m. The menu completion code was fixed to properly insert a single completion 302 if there is only one match. 303 304n. A bug was fixed that caused the display code to improperly display tabs 305 after newlines. 306 307o. A fix was made to the completion code in which a typo caused the wrong 308 value to be passed to the function that computed the longest common 309 prefix of the list of matches. 310 311p. The completion code now checks the value of rl_filename_completion_desired, 312 which is set by application-supplied completion functions to indicate 313 that filename completion is being performed, to decide whether or not to 314 call an application-supplied `ignore completions' function. 315 316q. Code was added to the history library to catch history substitutions 317 using `&' without a previous history substitution or search having been 318 performed. 319 320 3212. New Features in Readline 322 323a. There is a new script, support/shobj-conf, to do system-specific shared 324 object and library configuration. It generates variables for configure 325 to substitute into makefiles. The README file provides a detailed 326 explanation of the shared library creation process. 327 328b. Shared libraries and objects are now built in the `shlib' subdirectory. 329 There is a shlib/Makefile.in to control the build process. `make shared' 330 from the top-level directory is still the right way to build shared 331 versions of the libraries. 332 333c. rlconf.h is now installed, so applications can find out which features 334 have been compiled into the installed readline and history libraries. 335 336d. rlstdc.h is now an installed header file. 337 338e. Many changes to the signal handling: 339 o Readline now catches SIGQUIT and cleans up the tty before returning; 340 o A new variable, rl_catch_signals, is available to application writers 341 to indicate to readline whether or not it should install its own 342 signal handlers for SIGINT, SIGTERM, SIGQUIT, SIGALRM, SIGTSTP, 343 SIGTTIN, and SIGTTOU; 344 o A new variable, rl_catch_sigwinch, is available to application 345 writers to indicate to readline whether or not it should install its 346 own signal handler for SIGWINCH, which will chain to the calling 347 applications's SIGWINCH handler, if one is installed; 348 o There is a new function, rl_free_line_state, for application signal 349 handlers to call to free up the state associated with the current 350 line after receiving a signal; 351 o There is a new function, rl_cleanup_after_signal, to clean up the 352 display and terminal state after receiving a signal; 353 o There is a new function, rl_reset_after_signal, to reinitialize the 354 terminal and display state after an application signal handler 355 returns and readline continues 356 357f. There is a new function, rl_resize_terminal, to reset readline's idea of 358 the screen size after a SIGWINCH. 359 360g. New public functions: rl_save_prompt and rl_restore_prompt. These were 361 previously private functions with a `_' prefix. These functions are 362 used when an application wants to write a message to the `message area' 363 with rl_message and have the prompt restored correctly when the message 364 is erased. 365 366h. New function hook: rl_pre_input_hook, called just before readline starts 367 reading input, after initialization. 368 369i. New function hook: rl_display_matches_hook, called when readline would 370 display the list of completion matches. The new function 371 rl_display_match_list is what readline uses internally, and is available 372 for use by application functions called via this hook. 373 374j. New bindable function, delete-char-or-list, like tcsh. 375 376k. A new variable, rl_erase_empty_line, which, if set by an application using 377 readline, will cause readline to erase, prompt and all, lines on which the 378 only thing typed was a newline. 379 380l. There is a new script, support/shlib-install, to install and uninstall 381 the shared readline and history libraries. 382 383m. A new bindable variable, `isearch-terminators', which is a string 384 containing the set of characters that should terminate an incremental 385 search without being executed as a command. 386 387n. A new bindable function, forward-backward-delete-char. 388 389------------------------------------------------------------------------------- 390This document details the changes between this version, readline-2.2, 391and the previous version, readline-2.1. 392 3931. Changes to Readline 394 395a. Added a missing `extern' to a declaration in readline.h that kept 396 readline from compiling cleanly on some systems. 397 398b. The history file is now opened with mode 0600 when it is written for 399 better security. 400 401c. Changes were made to the SIGWINCH handling code so that prompt redisplay 402 is done better. 403 404d. ^G now interrupts incremental searches correctly. 405 406e. A bug that caused a core dump when the set of characters to be quoted 407 when completing words was empty was fixed. 408 409f. Fixed a problem in the readline test program rltest.c that caused a core 410 dump. 411 412g. The code that handles parser directives in inputrc files now displays 413 more error messages. 414 415h. The history expansion code was fixed so that the appearance of the 416 history comment character at the beginning of a word inhibits history 417 expansion for that word and the rest of the input line. 418 419i. The code that prints completion listings now behaves better if one or 420 more of the filenames contains non-printable characters. 421 422j. The time delay when showing matching parentheses is now 0.5 seconds. 423 424 4252. New Features in Readline 426 427a. There is now an option for `iterative' yank-last-arg handline, so a user 428 can keep entering `M-.', yanking the last argument of successive history 429 lines. 430 431b. New variable, `print-completions-horizontally', which causes completion 432 matches to be displayed across the screen (like `ls -x') rather than up 433 and down the screen (like `ls'). 434 435c. New variable, `completion-ignore-case', which causes filename completion 436 and matching to be performed case-insensitively. 437 438d. There is a new bindable command, `magic-space', which causes history 439 expansion to be performed on the current readline buffer and a space to 440 be inserted into the result. 441 442e. There is a new bindable command, `menu-complete', which enables tcsh-like 443 menu completion (successive executions of menu-complete insert a single 444 completion match, cycling through the list of possible completions). 445 446f. There is a new bindable command, `paste-from-clipboard', for use on Win32 447 systems, to insert the text from the Win32 clipboard into the editing 448 buffer. 449 450g. The key sequence translation code now understands printf-style backslash 451 escape sequences, including \NNN octal escapes. These escape sequences 452 may be used in key sequence definitions or macro values. 453 454h. An `$include' inputrc file parser directive has been added. 455