mirror of
https://github.com/espressif/binutils-gdb.git
synced 2025-08-06 14:49:38 +08:00
* defs.h (gdb_readline_wrapper): Declare.
* utils.c (prompt_for_continue): Use gdb_readline_wrapper. * tracepoint.c (read_actions): Use gdb_readline_wrapper. * top.c (gdb_readline_wrapper): New function. (command_line_input): Use it.
This commit is contained in:
@ -1,3 +1,11 @@
|
|||||||
|
2002-07-24 Tom Tromey <tromey@redhat.com>
|
||||||
|
|
||||||
|
* defs.h (gdb_readline_wrapper): Declare.
|
||||||
|
* utils.c (prompt_for_continue): Use gdb_readline_wrapper.
|
||||||
|
* tracepoint.c (read_actions): Use gdb_readline_wrapper.
|
||||||
|
* top.c (gdb_readline_wrapper): New function.
|
||||||
|
(command_line_input): Use it.
|
||||||
|
|
||||||
2002-07-24 Andrew Cagney <cagney@redhat.com>
|
2002-07-24 Andrew Cagney <cagney@redhat.com>
|
||||||
|
|
||||||
* regcache.h (regcache_raw_read, regcache_raw_write): Replace
|
* regcache.h (regcache_raw_read, regcache_raw_write): Replace
|
||||||
|
@ -535,6 +535,8 @@ extern char *skip_quoted (char *);
|
|||||||
|
|
||||||
extern char *gdb_readline (char *);
|
extern char *gdb_readline (char *);
|
||||||
|
|
||||||
|
extern char *gdb_readline_wrapper (char *);
|
||||||
|
|
||||||
extern char *command_line_input (char *, int, char *);
|
extern char *command_line_input (char *, int, char *);
|
||||||
|
|
||||||
extern void print_prompt (void);
|
extern void print_prompt (void);
|
||||||
|
25
gdb/top.c
25
gdb/top.c
@ -947,6 +947,29 @@ static int write_history_p;
|
|||||||
static int history_size;
|
static int history_size;
|
||||||
static char *history_filename;
|
static char *history_filename;
|
||||||
|
|
||||||
|
/* This is like readline(), but it has some gdb-specific behavior.
|
||||||
|
gdb can use readline in both the synchronous and async modes during
|
||||||
|
a single gdb invocation. At the ordinary top-level prompt we might
|
||||||
|
be using the async readline. That means we can't use
|
||||||
|
rl_pre_input_hook, since it doesn't work properly in async mode.
|
||||||
|
However, for a secondary prompt (" >", such as occurs during a
|
||||||
|
`define'), gdb just calls readline() directly, running it in
|
||||||
|
synchronous mode. So for operate-and-get-next to work in this
|
||||||
|
situation, we have to switch the hooks around. That is what
|
||||||
|
gdb_readline_wrapper is for. */
|
||||||
|
char *
|
||||||
|
gdb_readline_wrapper (char *prompt)
|
||||||
|
{
|
||||||
|
/* Set the hook that works in this case. */
|
||||||
|
if (event_loop_p && after_char_processing_hook)
|
||||||
|
{
|
||||||
|
rl_pre_input_hook = (Function *) after_char_processing_hook;
|
||||||
|
after_char_processing_hook = NULL;
|
||||||
|
}
|
||||||
|
|
||||||
|
return readline (prompt);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
#ifdef STOP_SIGNAL
|
#ifdef STOP_SIGNAL
|
||||||
static void
|
static void
|
||||||
@ -1174,7 +1197,7 @@ command_line_input (char *prompt_arg, int repeat, char *annotation_suffix)
|
|||||||
}
|
}
|
||||||
else if (command_editing_p && instream == stdin && ISATTY (instream))
|
else if (command_editing_p && instream == stdin && ISATTY (instream))
|
||||||
{
|
{
|
||||||
rl = readline (local_prompt);
|
rl = gdb_readline_wrapper (local_prompt);
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
|
@ -854,7 +854,7 @@ read_actions (struct tracepoint *t)
|
|||||||
line = (*readline_hook) (prompt);
|
line = (*readline_hook) (prompt);
|
||||||
else if (instream == stdin && ISATTY (instream))
|
else if (instream == stdin && ISATTY (instream))
|
||||||
{
|
{
|
||||||
line = readline (prompt);
|
line = gdb_readline_wrapper (prompt);
|
||||||
if (line && *line) /* add it to command history */
|
if (line && *line) /* add it to command history */
|
||||||
add_history (line);
|
add_history (line);
|
||||||
}
|
}
|
||||||
|
@ -1603,7 +1603,7 @@ prompt_for_continue (void)
|
|||||||
/* Call readline, not gdb_readline, because GO32 readline handles control-C
|
/* Call readline, not gdb_readline, because GO32 readline handles control-C
|
||||||
whereas control-C to gdb_readline will cause the user to get dumped
|
whereas control-C to gdb_readline will cause the user to get dumped
|
||||||
out to DOS. */
|
out to DOS. */
|
||||||
ignore = readline (cont_prompt);
|
ignore = gdb_readline_wrapper (cont_prompt);
|
||||||
|
|
||||||
if (annotation_level > 1)
|
if (annotation_level > 1)
|
||||||
printf_unfiltered ("\n\032\032post-prompt-for-continue\n");
|
printf_unfiltered ("\n\032\032post-prompt-for-continue\n");
|
||||||
|
Reference in New Issue
Block a user