PR tui/9584
authorStephane Carrez <stcarrez@nerim.fr>
Sat, 10 Nov 2012 12:25:07 +0000 (12:25 +0000)
committerStephane Carrez <stcarrez@nerim.fr>
Sat, 10 Nov 2012 12:25:07 +0000 (12:25 +0000)
* tui/tui.c (tui_rl_command_key): Do not call execute_command
  but insert the command to execute in readline's buffer.

gdb/ChangeLog
gdb/tui/tui.c

index 661985c4ee67fb9577f11e7bf0a552a81521785c..e85145be0b50661b823a2c694ce94accd53b8a6a 100644 (file)
@@ -1,3 +1,10 @@
+2012-11-10  Stephane Carrez  <Stephane.Carrez@gmail.com>
+
+       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  <tromey@redhat.com>
 
        * gdbarch.sh (target_gdbarch): Remove macro.
index 9ef3c309e3be6d2eb4c62a28eb48227032965174..3e79b32233695c71a21d19f6557fb72ac18f8108 100644 (file)
@@ -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;
         }
     }