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