diff options
author | Stephane Carrez <stcarrez@nerim.fr> | 2002-10-26 10:38:57 +0000 |
---|---|---|
committer | Stephane Carrez <stcarrez@nerim.fr> | 2002-10-26 10:38:57 +0000 |
commit | 6d6d22f2091791a4dd4d88b91543d19251454aef (patch) | |
tree | ffb12c9c5a389afbd540449a6498c7e0818602b8 | |
parent | 1963abc6a65f8b1af78d3c17ca2023287b718242 (diff) | |
download | gdb-6d6d22f2091791a4dd4d88b91543d19251454aef.tar.gz |
* tuiIO.c (tui_prep_terminal): Save the prompt registered in readline.
(tui_redisplay_readline): Use the last saved prompt.
(tui_rl_saved_prompt): New.
-rw-r--r-- | gdb/tui/ChangeLog | 6 | ||||
-rw-r--r-- | gdb/tui/tuiIO.c | 13 |
2 files changed, 17 insertions, 2 deletions
diff --git a/gdb/tui/ChangeLog b/gdb/tui/ChangeLog index 7d67b5e8b53..c0fb2bed878 100644 --- a/gdb/tui/ChangeLog +++ b/gdb/tui/ChangeLog @@ -1,3 +1,9 @@ +2002-10-26 Stephane Carrez <stcarrez@nerim.fr> + + * tuiIO.c (tui_prep_terminal): Save the prompt registered in readline. + (tui_redisplay_readline): Use the last saved prompt. + (tui_rl_saved_prompt): New. + 2002-10-25 Stephane Carrez <stcarrez@nerim.fr> Fix PR gdb/787 diff --git a/gdb/tui/tuiIO.c b/gdb/tui/tuiIO.c index 3968a0a270e..b9b373c6646 100644 --- a/gdb/tui/tuiIO.c +++ b/gdb/tui/tuiIO.c @@ -124,6 +124,10 @@ static FILE *tui_old_rl_outstream; static int tui_readline_pipe[2]; #endif +/* The last gdb prompt that was registered in readline. + This may be the main gdb prompt or a secondary prompt. */ +static char *tui_rl_saved_prompt; + static unsigned int _tuiHandleResizeDuringIO (unsigned int); static void @@ -194,7 +198,7 @@ tui_redisplay_readline (void) if (tui_current_key_mode == tui_single_key_mode) prompt = ""; else - prompt = get_prompt (); + prompt = tui_rl_saved_prompt; c_pos = -1; c_line = -1; @@ -256,10 +260,15 @@ tui_redisplay_readline (void) } /* Readline callback to prepare the terminal. It is called once - each time we enter readline. There is nothing to do in curses mode. */ + each time we enter readline. Terminal is already setup in curses mode. */ static void tui_prep_terminal (void) { + /* Save the prompt registered in readline to correctly display it. + (we can't use gdb_prompt() due to secondary prompts and can't use + rl_prompt because it points to an alloca buffer). */ + xfree (tui_rl_saved_prompt); + tui_rl_saved_prompt = xstrdup (rl_prompt); } /* Readline callback to restore the terminal. It is called once |