[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