* tui.c (tui_rl_switch_mode): Remove unecessary TUI switch printfs.
authorStephane Carrez <stcarrez@nerim.fr>
Fri, 13 Sep 2002 20:06:56 +0000 (20:06 +0000)
committerStephane Carrez <stcarrez@nerim.fr>
Fri, 13 Sep 2002 20:06:56 +0000 (20:06 +0000)
(tui_initialize_readline): Allow to use space to leave SingleKey
to enter one gdb command.
(tui_enable): Restore the TUI keymap when we are back to TUI.
(tui_disable): Restore normal keymap when leaving TUI.
* tuiIO.c (tui_redisplay_readline): Restore the SingleKey mode
when the buffer becomes empty and we are in tui_one_command_mode.

gdb/tui/ChangeLog
gdb/tui/tui.c
gdb/tui/tuiIO.c

index be718aeecfd582e678d4e31e9701109f8124d76d..edff2bd9c07adeabfc42277dc2b99a250ffeb30d 100644 (file)
@@ -1,3 +1,13 @@
+2002-09-13  Stephane Carrez  <stcarrez@nerim.fr>
+
+       * tui.c (tui_rl_switch_mode): Remove unecessary TUI switch printfs.
+       (tui_initialize_readline): Allow to use space to leave SingleKey
+       to enter one gdb command.
+       (tui_enable): Restore the TUI keymap when we are back to TUI.
+       (tui_disable): Restore normal keymap when leaving TUI.
+       * tuiIO.c (tui_redisplay_readline): Restore the SingleKey mode
+       when the buffer becomes empty and we are in tui_one_command_mode.
+
 2002-09-13  Stephane Carrez  <stcarrez@nerim.fr>
 
        * tuiIO.c (tui_setup_io): rl_already_prompted must be cleared
index 8bf467da289c9c66a8eeff823bf2e10964d9ec70..81edd8b85c785249cabb34d6dd0dce44ba354610 100644 (file)
@@ -106,14 +106,11 @@ tui_rl_switch_mode (void)
     {
       tui_disable ();
       rl_prep_terminal (0);
-
-      printf_filtered ("Left the TUI mode\n");
     }
   else
     {
       rl_deprep_terminal ();
       tui_enable ();
-      printf_filtered ("Entered the TUI mode\n");
     }
 
   /* Clear the readline in case switching occurred in middle of something.  */
@@ -312,7 +309,7 @@ tui_initialize_readline ()
 
   /* Bind all other keys to tui_rl_command_mode so that we switch
      temporarily from SingleKey mode and can enter a gdb command.  */
-  for (i = ' ' + 1; i < 0x7f; i++)
+  for (i = ' '; i < 0x7f; i++)
     {
       int j;
 
@@ -399,6 +396,8 @@ tui_enable (void)
   if (selected_frame)
      tuiShowFrameInfo (selected_frame);
 
+  /* Restore TUI keymap.  */
+  tui_set_key_mode (tui_current_key_mode);
   refresh ();
 
   /* Update gdb's knowledge of its terminal.  */
@@ -416,6 +415,9 @@ tui_disable (void)
   if (!tui_active)
     return;
 
+  /* Restore initial readline keymap.  */
+  rl_set_keymap (tui_readline_standard_keymap);
+
   /* Remove TUI hooks.  */
   tui_remove_hooks ();
   rl_startup_hook = 0;
index 2e3d79f2f4bdfdd80367a07d0746ca2e21f13831..f70df8f47487861998d24298c900207225c76f45 100644 (file)
@@ -185,7 +185,12 @@ tui_redisplay_readline (void)
   WINDOW *w;
   char *prompt;
   int start_line;
-  
+
+  /* Detect when we temporarily left SingleKey and now the readline
+     edit buffer is empty, automatically restore the SingleKey mode.  */
+  if (tui_current_key_mode == tui_one_command_mode && rl_end == 0)
+    tui_set_key_mode (tui_single_key_mode);
+
   if (tui_current_key_mode == tui_single_key_mode)
     prompt = "";
   else