diff options
author | Tom Tromey <tom@tromey.com> | 2018-04-18 15:40:57 -0600 |
---|---|---|
committer | Tom Tromey <tom@tromey.com> | 2018-05-04 15:58:06 -0600 |
commit | 1263a9d5f1c6198cdb4e73bafe86ca451d35684d (patch) | |
tree | ec865758d5817f7babdd1eaef24c3cda4a3aaf5d /gdb/cli | |
parent | 12973681f5d46a2407a8dc97c3352fa6c9971716 (diff) | |
download | gdb-1263a9d5f1c6198cdb4e73bafe86ca451d35684d.zip gdb-1263a9d5f1c6198cdb4e73bafe86ca451d35684d.tar.gz gdb-1263a9d5f1c6198cdb4e73bafe86ca451d35684d.tar.bz2 |
Make print_command_trace varargs
I noticed some code in execute_control_command_1 that could be
simplified by making print_command_trace a printf-like function. This
patch makes this change.
ChangeLog
2018-05-04 Tom Tromey <tom@tromey.com>
* top.c (execute_command): Update.
* cli/cli-script.h (print_command_lines): Now varargs.
* cli/cli-script.c (print_command_lines): Now varargs.
(execute_control_command_1) <case while_control, case if_control>:
Update.
Diffstat (limited to 'gdb/cli')
-rw-r--r-- | gdb/cli/cli-script.c | 22 | ||||
-rw-r--r-- | gdb/cli/cli-script.h | 3 |
2 files changed, 12 insertions, 13 deletions
diff --git a/gdb/cli/cli-script.c b/gdb/cli/cli-script.c index b066da7..c7d405c 100644 --- a/gdb/cli/cli-script.c +++ b/gdb/cli/cli-script.c @@ -426,8 +426,9 @@ reset_command_nest_depth (void) via while_command or if_command. Inner levels of 'if' and 'while' are dealt with directly. Therefore we can use these functions to determine whether the command has been printed already or not. */ +ATTRIBUTE_PRINTF (1, 2) void -print_command_trace (const char *cmd) +print_command_trace (const char *fmt, ...) { int i; @@ -443,7 +444,12 @@ print_command_trace (const char *cmd) for (i=0; i < command_nest_depth; i++) printf_filtered ("+"); - printf_filtered ("%s\n", cmd); + va_list args; + + va_start (args, fmt); + vprintf_filtered (fmt, args); + va_end (args); + puts_filtered ("\n"); } /* Helper for execute_control_command. */ @@ -490,11 +496,7 @@ execute_control_command_1 (struct command_line *cmd) case while_control: { - int len = strlen (cmd->line) + 7; - char *buffer = (char *) alloca (len); - - xsnprintf (buffer, len, "while %s", cmd->line); - print_command_trace (buffer); + print_command_trace ("while %s", cmd->line); /* Parse the loop control expression for the while statement. */ std::string new_line = insert_user_defined_cmd_args (cmd->line); @@ -555,11 +557,7 @@ execute_control_command_1 (struct command_line *cmd) case if_control: { - int len = strlen (cmd->line) + 4; - char *buffer = (char *) alloca (len); - - xsnprintf (buffer, len, "if %s", cmd->line); - print_command_trace (buffer); + print_command_trace ("if %s", cmd->line); /* Parse the conditional for the if statement. */ std::string new_line = insert_user_defined_cmd_args (cmd->line); diff --git a/gdb/cli/cli-script.h b/gdb/cli/cli-script.h index 58dede23..10b6c17 100644 --- a/gdb/cli/cli-script.h +++ b/gdb/cli/cli-script.h @@ -148,7 +148,8 @@ extern std::string insert_user_defined_cmd_args (const char *line); /* Exported to top.c */ -extern void print_command_trace (const char *cmd); +extern void print_command_trace (const char *cmd, ...) + ATTRIBUTE_PRINTF (1, 2); /* Exported to event-top.c */ |