* top.c (gdb_rl_operate_and_get_next): Make sure

operate-and-get-next functions correctly even when the history
list is completely filled.
This commit is contained in:
Mark Kettenis 2002-08-18 12:39:03 +00:00
parent c1bab85b70
commit b5686e99e9
2 changed files with 22 additions and 2 deletions

View File

@ -1,3 +1,9 @@
2002-08-17 Mark Kettenis <kettenis@gnu.org>
* top.c (gdb_rl_operate_and_get_next): Make sure
operate-and-get-next functions correctly even when the history
list is completely filled.
2002-08-18 Andrew Cagney <ac131313@redhat.com>
* MAINTAINERS (Target Instruction Set Architectures): Rename

View File

@ -1082,6 +1082,8 @@ gdb_rl_operate_and_get_next_completion (void)
static int
gdb_rl_operate_and_get_next (int count, int key)
{
int where;
if (event_loop_p)
{
/* Use the async hook. */
@ -1094,8 +1096,20 @@ gdb_rl_operate_and_get_next (int count, int key)
rl_pre_input_hook = (Function *) gdb_rl_operate_and_get_next_completion;
}
/* Add 1 because we eventually want the next line. */
operate_saved_history = where_history () + 1;
/* Find the current line, and find the next line to use. */
where = where_history();
/* FIXME: kettenis/20020817: max_input_history is renamed into
history_max_entries in readline-4.2. When we do a new readline
import, we should probably change it here too, even though
readline maintains backwards compatibility for now by still
defining max_input_history. */
if ((history_is_stifled () && (history_length >= max_input_history)) ||
(where >= history_length - 1))
operate_saved_history = where;
else
operate_saved_history = where + 1;
return rl_newline (1, key);
}