summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPedro Alves <palves@redhat.com>2016-03-09 18:24:59 +0000
committerPedro Alves <palves@redhat.com>2016-03-09 18:24:59 +0000
commit608ff013aae02e3ac4687691db57bbcb8984fe18 (patch)
tree0372ce45e0af7447aaa90a41370e6f6c1e5bb634
parentc70061cf94691182484924c79cbbdd2203ef92d5 (diff)
downloadbinutils-gdb-608ff013aae02e3ac4687691db57bbcb8984fe18.tar.gz
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'.
-rw-r--r--gdb/ChangeLog8
-rw-r--r--gdb/event-top.c46
-rw-r--r--gdb/event-top.h1
-rw-r--r--gdb/top.c4
4 files changed, 16 insertions, 43 deletions
diff --git a/gdb/ChangeLog b/gdb/ChangeLog
index 09b382624d1..264c8a74a44 100644
--- a/gdb/ChangeLog
+++ b/gdb/ChangeLog
@@ -1,5 +1,13 @@
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 ...
(gdb_readline_no_editing_callback): ... this.
(change_line_handler, stdin_event_handler)
diff --git a/gdb/event-top.c b/gdb/event-top.c
index e3fa589c918..722bddffdb0 100644
--- a/gdb/event-top.c
+++ b/gdb/event-top.c
@@ -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";
- 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 concat (prefix, prompt, suffix, NULL);
+ }
- 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)
{
diff --git a/gdb/event-top.h b/gdb/event-top.h
index f9bd7b944ec..b8c3b118eb9 100644
--- a/gdb/event-top.h
+++ b/gdb/event-top.h
@@ -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 *);
diff --git a/gdb/top.c b/gdb/top.c
index b5ee4af33fd..fb1657a006d 100644
--- a/gdb/top.c
+++ b/gdb/top.c
@@ -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;