* 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.
This commit is contained in:
Stephane Carrez 2002-09-13 20:06:56 +00:00
parent bd9b0abf4e
commit e3da6fc58a
3 changed files with 22 additions and 5 deletions

View 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> 2002-09-13 Stephane Carrez <stcarrez@nerim.fr>
* tuiIO.c (tui_setup_io): rl_already_prompted must be cleared * tuiIO.c (tui_setup_io): rl_already_prompted must be cleared

View file

@ -106,14 +106,11 @@ tui_rl_switch_mode (void)
{ {
tui_disable (); tui_disable ();
rl_prep_terminal (0); rl_prep_terminal (0);
printf_filtered ("Left the TUI mode\n");
} }
else else
{ {
rl_deprep_terminal (); rl_deprep_terminal ();
tui_enable (); tui_enable ();
printf_filtered ("Entered the TUI mode\n");
} }
/* Clear the readline in case switching occurred in middle of something. */ /* 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 /* Bind all other keys to tui_rl_command_mode so that we switch
temporarily from SingleKey mode and can enter a gdb command. */ temporarily from SingleKey mode and can enter a gdb command. */
for (i = ' ' + 1; i < 0x7f; i++) for (i = ' '; i < 0x7f; i++)
{ {
int j; int j;
@ -399,6 +396,8 @@ tui_enable (void)
if (selected_frame) if (selected_frame)
tuiShowFrameInfo (selected_frame); tuiShowFrameInfo (selected_frame);
/* Restore TUI keymap. */
tui_set_key_mode (tui_current_key_mode);
refresh (); refresh ();
/* Update gdb's knowledge of its terminal. */ /* Update gdb's knowledge of its terminal. */
@ -416,6 +415,9 @@ tui_disable (void)
if (!tui_active) if (!tui_active)
return; return;
/* Restore initial readline keymap. */
rl_set_keymap (tui_readline_standard_keymap);
/* Remove TUI hooks. */ /* Remove TUI hooks. */
tui_remove_hooks (); tui_remove_hooks ();
rl_startup_hook = 0; rl_startup_hook = 0;

View file

@ -185,7 +185,12 @@ tui_redisplay_readline (void)
WINDOW *w; WINDOW *w;
char *prompt; char *prompt;
int start_line; 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) if (tui_current_key_mode == tui_single_key_mode)
prompt = ""; prompt = "";
else else