[PATCH 10/10] Command line input handling TLC
Luis Machado
lgustavo@codesourcery.com
Wed Feb 24 12:41:00 GMT 2016
On 02/18/2016 03:40 PM, Pedro Alves wrote:
> I didn't manage to usefully split this further into smaller
> independent pieces, so:
>
> - Use "struct buffer" more.
>
> - Split out the responsability 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-02-18 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.
> ---
> gdb/event-top.c | 340 +++++++++++++++++++++++++++-----------------------------
> gdb/event-top.h | 2 +
> gdb/top.c | 170 +++++-----------------------
> gdb/top.h | 6 +
> 4 files changed, 200 insertions(+), 318 deletions(-)
>
This and the rest of the series look good to me. That's a nice cleanup.
Thanks,
Luis
More information about the Gdb-patches
mailing list