2007-07-01 Daniel Jacobowitz <dan@codesourcery.com>

* top.c (gdb_readline_wrapper_line): Call rl_callback_handler_remove.
	(struct gdb_readline_wrapper_cleanup): Remove prompt_orig.
	(gdb_readline_wrapper_cleanup): Do not reset the prompt.
	(gdb_readline_wrapper): Do not save the prompt.  Pass our prompt
	to display_gdb_prompt.

2007-07-01  Nick Roberts  <nickrob@snap.net.nz>
	    Daniel Jacobowitz  <dan@codesourcery.com>

	* gdb.base/annota3.exp: Test for if construct.
This commit is contained in:
Daniel Jacobowitz 2007-07-01 22:37:52 +00:00
parent 5ad3a4ca20
commit 1b05479a47
4 changed files with 42 additions and 6 deletions

View File

@ -1,3 +1,11 @@
2007-07-01 Daniel Jacobowitz <dan@codesourcery.com>
* top.c (gdb_readline_wrapper_line): Call rl_callback_handler_remove.
(struct gdb_readline_wrapper_cleanup): Remove prompt_orig.
(gdb_readline_wrapper_cleanup): Do not reset the prompt.
(gdb_readline_wrapper): Do not save the prompt. Pass our prompt
to display_gdb_prompt.
2007-07-01 Daniel Jacobowitz <dan@codesourcery.com>
PR symtab/2161

View File

@ -1,3 +1,8 @@
2007-07-01 Nick Roberts <nickrob@snap.net.nz>
Daniel Jacobowitz <dan@codesourcery.com>
* gdb.base/annota3.exp: Test for if construct.
2007-06-26 Daniel Jacobowitz <dan@codesourcery.com>
* gdb.base/chng-syms.exp: Handle glibc's __GI_exit.

View File

@ -99,7 +99,29 @@ gdb_expect_list "annotation set at level 3" "\r\n$gdb_prompt$" {
"set annotate 3"
}
#
# if construct:
#
send_gdb "if 1\n"
gdb_expect {
-re "^if 1\r\n\r\n\032\032post-prompt\r\n\r\n\032\032pre-commands\r\n >\r\n\032\032commands\r\n$" {
pass "start if construct"
}
-re ".*\032\032commands\r\n" {
fail "start if construct"
}
timeout { fail "start if construct (timeout)" }
}
send_gdb "end\n"
gdb_expect {
-re "^end\r\n\r\n\032\032post-commands\r\n$gdb_prompt$" {
pass "end if construct"
}
-re ".*$gdb_prompt$" {
fail "end if construct"
}
timeout { fail "end if construct (timeout)" }
}
#
# info break:
#

View File

@ -751,12 +751,16 @@ gdb_readline_wrapper_line (char *line)
/* Prevent operate-and-get-next from acting too early. */
saved_after_char_processing_hook = after_char_processing_hook;
after_char_processing_hook = NULL;
/* Prevent parts of the prompt from being redisplayed if annotations
are enabled, and readline's state getting out of sync. */
if (async_command_editing_p)
rl_callback_handler_remove ();
}
struct gdb_readline_wrapper_cleanup
{
void (*handler_orig) (char *);
char *prompt_orig;
int already_prompted_orig;
};
@ -766,7 +770,6 @@ gdb_readline_wrapper_cleanup (void *arg)
struct gdb_readline_wrapper_cleanup *cleanup = arg;
rl_already_prompted = cleanup->already_prompted_orig;
PROMPT (0) = cleanup->prompt_orig;
gdb_assert (input_handler == gdb_readline_wrapper_line);
input_handler = cleanup->handler_orig;
@ -790,14 +793,12 @@ gdb_readline_wrapper (char *prompt)
cleanup->handler_orig = input_handler;
input_handler = gdb_readline_wrapper_line;
cleanup->prompt_orig = get_prompt ();
PROMPT (0) = prompt;
cleanup->already_prompted_orig = rl_already_prompted;
back_to = make_cleanup (gdb_readline_wrapper_cleanup, cleanup);
/* Display our prompt and prevent double prompt display. */
display_gdb_prompt (NULL);
display_gdb_prompt (prompt);
rl_already_prompted = 1;
if (after_char_processing_hook)