From: Stephane Carrez Date: Sat, 10 Nov 2012 12:25:07 +0000 (+0000) Subject: PR tui/9584 X-Git-Url: https://git.libre-soc.org/?a=commitdiff_plain;h=e840f632eb1879fd022f88ab1e2f5ce3a41d3cbe;p=binutils-gdb.git PR tui/9584 * tui/tui.c (tui_rl_command_key): Do not call execute_command but insert the command to execute in readline's buffer. --- diff --git a/gdb/ChangeLog b/gdb/ChangeLog index 661985c4ee6..e85145be0b5 100644 --- a/gdb/ChangeLog +++ b/gdb/ChangeLog @@ -1,3 +1,10 @@ +2012-11-10 Stephane Carrez + + PR tui/9584 + + * tui/tui.c (tui_rl_command_key): Do not call execute_command + but insert the command to execute in readline's buffer. + 2012-11-09 Tom Tromey * gdbarch.sh (target_gdbarch): Remove macro. diff --git a/gdb/tui/tui.c b/gdb/tui/tui.c index 9ef3c309e3b..3e79b322336 100644 --- a/gdb/tui/tui.c +++ b/gdb/tui/tui.c @@ -240,12 +240,13 @@ tui_rl_command_key (int count, int key) { if (tui_commands[i].key == key) { - /* Must save the command because it can be modified by - execute_command. */ - char *cmd = alloca (strlen (tui_commands[i].cmd) + 1); - - strcpy (cmd, tui_commands[i].cmd); - execute_command (cmd, TRUE); + /* Insert the command in the readline buffer. + Avoid calling the gdb command here since it creates + a possible recursion on readline if prompt_for_continue + is called (See PR 9584). The command will also appear + in the readline history which turns out to be better. */ + rl_insert_text (tui_commands[i].cmd); + rl_newline (1, '\n'); return 0; } }