aboutsummaryrefslogtreecommitdiff
path: root/gdb/event-top.h
diff options
context:
space:
mode:
authorPedro Alves <palves@redhat.com>2016-03-09 18:25:00 +0000
committerPedro Alves <palves@redhat.com>2016-03-09 18:25:00 +0000
commitb69d38afdea34e4fecab5ea47ffe1e594e0b6233 (patch)
tree301f91f19eb5968ab8b281eb1510be71f40200c8 /gdb/event-top.h
parent2669cade3dcebf5d572bcd535cf21934cbc1633c (diff)
downloadfsf-binutils-gdb-b69d38afdea34e4fecab5ea47ffe1e594e0b6233.zip
fsf-binutils-gdb-b69d38afdea34e4fecab5ea47ffe1e594e0b6233.tar.gz
fsf-binutils-gdb-b69d38afdea34e4fecab5ea47ffe1e594e0b6233.tar.bz2
Command line input handling TLC
I didn't manage to usefully split this further into smaller independent pieces, so: - Use "struct buffer" more. - Split out the responsibility of composing a complete command line from multiple input lines split with backslash ( E.g.: (gdb) print \ 1 + \ 2 $1 = 3 (gdb) ) to a separate function. Note we don't need the separate readline_input_state and more_to_come globals at all. They were just obfuscating the logic. - Factor out the tricky mostly duplicated code in command_line_handler and command_line_input. gdb/ChangeLog 2016-03-09 Pedro Alves <palves@redhat.com> * event-top.c (more_to_come): Delete. (struct readline_input_state): Delete. (readline_input_state): Delete. (get_command_line_buffer): New function. (command_handler): Update comments. Don't handle NULL commands here. Do not execute commented lines. (command_line_append_input_line): New function. (handle_line_of_input): New function, partly based on command_line_handler and command_line_input. (command_line_handler): Rewrite. * event-top.h (command_handler): New declaration. (command_loop): Defer command execution to command_handler. (command_line_input): Update comments. Simplify, using struct buffer and handle_line_of_input. * top.h (struct buffer): New forward declaration. (handle_line_of_input): New declaration.
Diffstat (limited to 'gdb/event-top.h')
-rw-r--r--gdb/event-top.h2
1 files changed, 2 insertions, 0 deletions
diff --git a/gdb/event-top.h b/gdb/event-top.h
index b8c3b11..bef2530 100644
--- a/gdb/event-top.h
+++ b/gdb/event-top.h
@@ -34,6 +34,8 @@ extern void async_init_signals (void);
extern void set_async_editing_command (char *args, int from_tty,
struct cmd_list_element *c);
+extern void command_handler (char *command);
+
/* Signal to catch ^Z typed while reading a command: SIGTSTP or SIGCONT. */
#ifndef STOP_SIGNAL
#include <signal.h>