From 85c4be7c83b80acf647e6ffcaed0f0cdbcb8c3eb Mon Sep 17 00:00:00 2001 From: Tom Tromey Date: Thu, 12 Oct 2017 08:27:21 -0600 Subject: Add set_repeat_arguments function The "x", "list", and "show commands" commands have special repetition behavior: repeating the command doesn't re-run it with the same arguments This is currently implemented by modifying the passed-in argument; but that won't work properly with const arguments (and seems pretty obscure besides). This patch adds a new "set_repeat_arguments" function and changes the relevant places to call it. gdb/ChangeLog 2017-11-07 Tom Tromey * printcmd.c (x_command): Call set_repeat_arguments. * cli/cli-cmds.c (list_command): Call set_repeat_arguments. * top.c (repeat_arguments): New global. (set_repeat_arguments): New function. (execute_command): Handle repeat_arguments. (show_commands): Calls set_repeat_arguments. * command.h (set_repeat_arguments): Declare. --- gdb/command.h | 5 +++++ 1 file changed, 5 insertions(+) (limited to 'gdb/command.h') diff --git a/gdb/command.h b/gdb/command.h index a995445..63c7658 100644 --- a/gdb/command.h +++ b/gdb/command.h @@ -445,6 +445,11 @@ extern void dont_repeat (void); extern scoped_restore_tmpl prevent_dont_repeat (void); +/* Set the arguments that will be passed if the current command is + repeated. Note that the passed-in string must be a constant. */ + +extern void set_repeat_arguments (const char *args); + /* Used to mark commands that don't do anything. If we just leave the function field NULL, the command is interpreted as a help topic, or as a class of commands. */ -- cgit v1.1