Commit | Line | Data |
---|---|---|
c862e87b | 1 | This document details the changes between this version, readline-4.0, |
d60d9f65 SS |
2 | and the previous version, readline-2.2. |
3 | ||
4 | 1. Changes to Readline | |
5 | ||
c862e87b JM |
6 | a. The version number is now 4.0, to match the major and minor version |
7 | numbers on the shared readline and history libraries. Future | |
8 | releases will maintain the identical numbering. | |
d60d9f65 | 9 | |
c862e87b JM |
10 | b. Fixed a typo in the `make install' recipe that copied libreadline.a |
11 | to libhistory.old right after installing it. | |
d60d9f65 | 12 | |
c862e87b JM |
13 | c. The readline and history info files are now installed out of the source |
14 | directory if they are not found in the build directory. | |
d60d9f65 | 15 | |
c862e87b JM |
16 | d. The library no longer exports a function named `savestring' -- backwards |
17 | compatibility be damned. | |
d60d9f65 | 18 | |
c862e87b JM |
19 | e. There is no longer any #ifdef SHELL code in the source files. |
20 | ||
21 | f. Some changes were made to the key binding code to fix memory leaks and | |
22 | better support Win32 systems. | |
23 | ||
24 | g. Fixed a silly typo in the paren matching code -- it's microseconds, not | |
25 | milliseconds. | |
26 | ||
27 | h. The readline library should be compilable by C++ compilers. | |
28 | ||
29 | i. The readline.h public header file now includes function prototypes for | |
30 | all readline functions, and some changes were made to fix errors in the | |
31 | source files uncovered by the use of prototypes. | |
32 | ||
33 | j. The maximum numeric argument is now clamped at 1000000. | |
34 | ||
35 | k. Fixes to rl_yank_last_arg to make it behave better. | |
36 | ||
37 | l. Fixed a bug in the display code that caused core dumps if the prompt | |
38 | string length exceeded 1024 characters. | |
39 | ||
40 | m. The menu completion code was fixed to properly insert a single completion | |
41 | if there is only one match. | |
42 | ||
43 | n. A bug was fixed that caused the display code to improperly display tabs | |
44 | after newlines. | |
45 | ||
46 | o. A fix was made to the completion code in which a typo caused the wrong | |
47 | value to be passed to the function that computed the longest common | |
48 | prefix of the list of matches. | |
49 | ||
50 | p. The completion code now checks the value of rl_filename_completion_desired, | |
51 | which is set by application-supplied completion functions to indicate | |
52 | that filename completion is being performed, to decide whether or not to | |
53 | call an application-supplied `ignore completions' function. | |
54 | ||
55 | q. Code was added to the history library to catch history substitutions | |
56 | using `&' without a previous history substitution or search having been | |
57 | performed. | |
58 | ||
59 | ||
60 | 2. New Features in Readline | |
61 | ||
62 | a. There is a new script, support/shobj-conf, to do system-specific shared | |
63 | object and library configuration. It generates variables for configure | |
64 | to substitute into makefiles. The README file provides a detailed | |
65 | explanation of the shared library creation process. | |
66 | ||
67 | b. Shared libraries and objects are now built in the `shlib' subdirectory. | |
68 | There is a shlib/Makefile.in to control the build process. `make shared' | |
69 | from the top-level directory is still the right way to build shared | |
70 | versions of the libraries. | |
71 | ||
72 | c. rlconf.h is now installed, so applications can find out which features | |
73 | have been compiled into the installed readline and history libraries. | |
74 | ||
75 | d. rlstdc.h is now an installed header file. | |
76 | ||
77 | e. Many changes to the signal handling: | |
78 | o Readline now catches SIGQUIT and cleans up the tty before returning; | |
79 | o A new variable, rl_catch_signals, is available to application writers | |
80 | to indicate to readline whether or not it should install its own | |
81 | signal handlers for SIGINT, SIGTERM, SIGQUIT, SIGALRM, SIGTSTP, | |
82 | SIGTTIN, and SIGTTOU; | |
83 | o A new variable, rl_catch_sigwinch, is available to application | |
84 | writers to indicate to readline whether or not it should install its | |
85 | own signal handler for SIGWINCH, which will chain to the calling | |
86 | applications's SIGWINCH handler, if one is installed; | |
87 | o There is a new function, rl_free_line_state, for application signal | |
88 | handlers to call to free up the state associated with the current | |
89 | line after receiving a signal; | |
90 | o There is a new function, rl_cleanup_after_signal, to clean up the | |
91 | display and terminal state after receiving a signal; | |
92 | o There is a new function, rl_reset_after_signal, to reinitialize the | |
93 | terminal and display state after an application signal handler | |
94 | returns and readline continues | |
95 | ||
96 | f. There is a new function, rl_resize_terminal, to reset readline's idea of | |
97 | the screen size after a SIGWINCH. | |
98 | ||
99 | g. New public functions: rl_save_prompt and rl_restore_prompt. These were | |
100 | previously private functions with a `_' prefix. These functions are | |
101 | used when an application wants to write a message to the `message area' | |
102 | with rl_message and have the prompt restored correctly when the message | |
103 | is erased. | |
104 | ||
105 | h. New function hook: rl_pre_input_hook, called just before readline starts | |
106 | reading input, after initialization. | |
107 | ||
108 | i. New function hook: rl_display_matches_hook, called when readline would | |
109 | display the list of completion matches. The new function | |
110 | rl_display_match_list is what readline uses internally, and is available | |
111 | for use by application functions called via this hook. | |
112 | ||
113 | j. New bindable function, delete-char-or-list, like tcsh. | |
114 | ||
115 | k. A new variable, rl_erase_empty_line, which, if set by an application using | |
116 | readline, will cause readline to erase, prompt and all, lines on which the | |
117 | only thing typed was a newline. | |
118 | ||
119 | l. There is a new script, support/shlib-install, to install and uninstall | |
120 | the shared readline and history libraries. | |
121 | ||
122 | m. A new bindable variable, `isearch-terminators', which is a string | |
123 | containing the set of characters that should terminate an incremental | |
124 | search without being executed as a command. | |
125 | ||
126 | n. A new bindable function, forward-backward-delete-char. | |
127 | ||
128 | ------------------------------------------------------------------------------- | |
d60d9f65 SS |
129 | This document details the changes between this version, readline-2.2, |
130 | and the previous version, readline-2.1. | |
131 | ||
132 | 1. Changes to Readline | |
133 | ||
134 | a. Added a missing `extern' to a declaration in readline.h that kept | |
135 | readline from compiling cleanly on some systems. | |
136 | ||
137 | b. The history file is now opened with mode 0600 when it is written for | |
138 | better security. | |
139 | ||
140 | c. Changes were made to the SIGWINCH handling code so that prompt redisplay | |
141 | is done better. | |
142 | ||
143 | d. ^G now interrupts incremental searches correctly. | |
144 | ||
145 | e. A bug that caused a core dump when the set of characters to be quoted | |
146 | when completing words was empty was fixed. | |
147 | ||
148 | f. Fixed a problem in the readline test program rltest.c that caused a core | |
149 | dump. | |
150 | ||
151 | g. The code that handles parser directives in inputrc files now displays | |
152 | more error messages. | |
153 | ||
154 | h. The history expansion code was fixed so that the appearance of the | |
155 | history comment character at the beginning of a word inhibits history | |
156 | expansion for that word and the rest of the input line. | |
157 | ||
158 | i. The code that prints completion listings now behaves better if one or | |
159 | more of the filenames contains non-printable characters. | |
160 | ||
161 | j. The time delay when showing matching parentheses is now 0.5 seconds. | |
162 | ||
163 | ||
164 | 2. New Features in Readline | |
165 | ||
166 | a. There is now an option for `iterative' yank-last-arg handline, so a user | |
167 | can keep entering `M-.', yanking the last argument of successive history | |
168 | lines. | |
169 | ||
170 | b. New variable, `print-completions-horizontally', which causes completion | |
171 | matches to be displayed across the screen (like `ls -x') rather than up | |
172 | and down the screen (like `ls'). | |
173 | ||
174 | c. New variable, `completion-ignore-case', which causes filename completion | |
175 | and matching to be performed case-insensitively. | |
176 | ||
177 | d. There is a new bindable command, `magic-space', which causes history | |
178 | expansion to be performed on the current readline buffer and a space to | |
179 | be inserted into the result. | |
180 | ||
181 | e. There is a new bindable command, `menu-complete', which enables tcsh-like | |
182 | menu completion (successive executions of menu-complete insert a single | |
183 | completion match, cycling through the list of possible completions). | |
184 | ||
185 | f. There is a new bindable command, `paste-from-clipboard', for use on Win32 | |
186 | systems, to insert the text from the Win32 clipboard into the editing | |
187 | buffer. | |
188 | ||
189 | g. The key sequence translation code now understands printf-style backslash | |
190 | escape sequences, including \NNN octal escapes. These escape sequences | |
191 | may be used in key sequence definitions or macro values. | |
192 | ||
193 | h. An `$include' inputrc file parser directive has been added. |