Eliminate async_annotation_suffix

The comments and existence of this global are a bit of misleading
obfuscation, since this is only ever used to print the prompt
annotation, and never changes.  Just hardcode "prompt" where
necessary, as done for most other annotations.

gdb/ChangeLog:
2016-03-09  Pedro Alves  <palves@redhat.com>

	* event-top.c (async_annotation_suffix): Delete.
	(top_level_prompt, command_line_handler): Don't use
	'async_annotation_suffix' and simplify.
	* event-top.h (async_annotation_suffix): Delete declaration.
	(init_main): Remove reference to 'async_annotation_suffix'.
This commit is contained in:
Pedro Alves 2016-03-09 18:24:59 +00:00
parent c70061cf94
commit 608ff013aa
4 changed files with 16 additions and 43 deletions

View File

@ -1,3 +1,11 @@
2016-03-09 Pedro Alves <palves@redhat.com>
* event-top.c (async_annotation_suffix): Delete.
(top_level_prompt, command_line_handler): Don't use
'async_annotation_suffix' and simplify.
* event-top.h (async_annotation_suffix): Delete declaration.
(init_main): Remove reference to 'async_annotation_suffix'.
2016-03-09 Pedro Alves <palves@redhat.com>
* event-top.c (gdb_readline2): Rename to ...

View File

@ -107,10 +107,6 @@ void (*call_readline) (gdb_client_data);
loop as default engine, and event-top.c is merged into top.c. */
int async_command_editing_p;
/* This is the annotation suffix that will be used when the
annotation_level is 2. */
char *async_annotation_suffix;
/* This is used to display the notification of the completion of an
asynchronous execution command. */
int exec_done_display_p = 0;
@ -363,49 +359,27 @@ display_gdb_prompt (const char *new_prompt)
static char *
top_level_prompt (void)
{
char *prefix;
char *prompt = NULL;
char *suffix;
char *composed_prompt;
size_t prompt_length;
char *prompt;
/* Give observers a chance of changing the prompt. E.g., the python
`gdb.prompt_hook' is installed as an observer. */
observer_notify_before_prompt (get_prompt ());
prompt = xstrdup (get_prompt ());
prompt = get_prompt ();
if (annotation_level >= 2)
{
/* Prefix needs to have new line at end. */
prefix = (char *) alloca (strlen (async_annotation_suffix) + 10);
strcpy (prefix, "\n\032\032pre-");
strcat (prefix, async_annotation_suffix);
strcat (prefix, "\n");
const char prefix[] = "\n\032\032pre-prompt\n";
/* Suffix needs to have a new line at end and \032 \032 at
beginning. */
suffix = (char *) alloca (strlen (async_annotation_suffix) + 6);
strcpy (suffix, "\n\032\032");
strcat (suffix, async_annotation_suffix);
strcat (suffix, "\n");
}
else
{
prefix = "";
suffix = "";
const char suffix[] = "\n\032\032prompt\n";
return concat (prefix, prompt, suffix, NULL);
}
prompt_length = strlen (prefix) + strlen (prompt) + strlen (suffix);
composed_prompt = (char *) xmalloc (prompt_length + 1);
strcpy (composed_prompt, prefix);
strcat (composed_prompt, prompt);
strcat (composed_prompt, suffix);
xfree (prompt);
return composed_prompt;
return xstrdup (prompt);
}
/* When there is an event ready on the stdin file desriptor, instead
@ -517,11 +491,7 @@ command_line_handler (char *rl)
int repeat = (instream == stdin);
if (annotation_level > 1 && instream == stdin)
{
printf_unfiltered (("\n\032\032post-"));
puts_unfiltered (async_annotation_suffix);
printf_unfiltered (("\n"));
}
printf_unfiltered (("\n\032\032post-prompt\n"));
if (linebuffer == 0)
{

View File

@ -54,7 +54,6 @@ extern void async_enable_stdin (void);
extern int async_command_editing_p;
extern int exec_done_display_p;
extern char *async_annotation_suffix;
extern struct prompts the_prompts;
extern void (*call_readline) (void *);
extern void (*input_handler) (char *);

View File

@ -1897,10 +1897,6 @@ init_main (void)
the DEFAULT_PROMPT is. */
set_prompt (DEFAULT_PROMPT);
/* Set things up for annotation_level > 1, if the user ever decides
to use it. */
async_annotation_suffix = "prompt";
/* Set the important stuff up for command editing. */
command_editing_p = 1;
history_expansion_p = 0;