gdb: cleanup command creation in infcmd.c
authorAndrew Burgess <aburgess@redhat.com>
Tue, 4 Apr 2023 08:34:54 +0000 (09:34 +0100)
committerAndrew Burgess <aburgess@redhat.com>
Fri, 28 Apr 2023 21:50:46 +0000 (22:50 +0100)
In infcmd.c, in order to add command completion to some of the 'set'
commands, we are currently creating the command, then looking up the
command by calling lookup_cmd.

This is no longer necessary, we already return the relevant
cmd_list_element object when the set/show command is created, and we
can use that to set the command completion callback.

I don't know if there's actually any tests for completion of these
commands, but I manually checked, and each command still appears to
offer the expected filename completion.

There should be no user visible changes after this commit.

Reviewed-By: Tom Tromey <tom@tromey.com>
gdb/infcmd.c

index 103899432f765a76a861cc95390d84a37ba27c1b..86555dfc74ecb21eba648fff569d7098fc02929a 100644 (file)
@@ -3138,55 +3138,48 @@ _initialize_infcmd ()
 {
   static struct cmd_list_element *info_proc_cmdlist;
   struct cmd_list_element *c = nullptr;
-  const char *cmd_name;
 
   /* Add the filename of the terminal connected to inferior I/O.  */
-  add_setshow_optional_filename_cmd ("inferior-tty", class_run,
-                                    &inferior_io_terminal_scratch, _("\
-Set terminal for future runs of program being debugged."), _("\
-Show terminal for future runs of program being debugged."), _("\
-Usage: set inferior-tty [TTY]\n\n\
-If TTY is omitted, the default behavior of using the same terminal as GDB\n\
+  auto tty_set_show
+    = add_setshow_optional_filename_cmd ("inferior-tty", class_run,
+                                        &inferior_io_terminal_scratch, _("\
+Set terminal for future runs of program being debugged."), _("         \
+Show terminal for future runs of program being debugged."), _("                \
+Usage: set inferior-tty [TTY]\n\n                                      \
+If TTY is omitted, the default behavior of using the same terminal as GDB\n \
 is restored."),
-                                    set_inferior_tty_command,
-                                    show_inferior_tty_command,
-                                    &setlist, &showlist);
-  cmd_name = "inferior-tty";
-  c = lookup_cmd (&cmd_name, setlist, "", nullptr, -1, 1);
-  gdb_assert (c != nullptr);
-  add_alias_cmd ("tty", c, class_run, 0, &cmdlist);
-
-  cmd_name = "args";
-  add_setshow_string_noescape_cmd (cmd_name, class_run,
-                                  &inferior_args_scratch, _("\
+                                        set_inferior_tty_command,
+                                        show_inferior_tty_command,
+                                        &setlist, &showlist);
+  add_alias_cmd ("tty", tty_set_show.set, class_run, 0, &cmdlist);
+
+  auto args_set_show
+    = add_setshow_string_noescape_cmd ("args", class_run,
+                                      &inferior_args_scratch, _("\
 Set argument list to give program being debugged when it is started."), _("\
 Show argument list to give program being debugged when it is started."), _("\
 Follow this command with any number of args, to be passed to the program."),
-                                  set_args_command,
-                                  show_args_command,
-                                  &setlist, &showlist);
-  c = lookup_cmd (&cmd_name, setlist, "", nullptr, -1, 1);
-  gdb_assert (c != nullptr);
-  set_cmd_completer (c, filename_completer);
-
-  cmd_name = "cwd";
-  add_setshow_string_noescape_cmd (cmd_name, class_run,
-                                  &inferior_cwd_scratch, _("\
-Set the current working directory to be used when the inferior is started.\n\
-Changing this setting does not have any effect on inferiors that are\n\
+                                      set_args_command,
+                                      show_args_command,
+                                      &setlist, &showlist);
+  set_cmd_completer (args_set_show.set, filename_completer);
+
+  auto cwd_set_show
+    = add_setshow_string_noescape_cmd ("cwd", class_run,
+                                      &inferior_cwd_scratch, _("\
+Set the current working directory to be used when the inferior is started.\n \
+Changing this setting does not have any effect on inferiors that are\n \
 already running."),
-                                  _("\
+                                      _("\
 Show the current working directory that is used when the inferior is started."),
-                                  _("\
+                                      _("\
 Use this command to change the current working directory that will be used\n\
 when the inferior is started.  This setting does not affect GDB's current\n\
 working directory."),
-                                  set_cwd_command,
-                                  show_cwd_command,
-                                  &setlist, &showlist);
-  c = lookup_cmd (&cmd_name, setlist, "", nullptr, -1, 1);
-  gdb_assert (c != nullptr);
-  set_cmd_completer (c, filename_completer);
+                                      set_cwd_command,
+                                      show_cwd_command,
+                                      &setlist, &showlist);
+  set_cmd_completer (cwd_set_show.set, filename_completer);
 
   c = add_cmd ("environment", no_class, environment_info, _("\
 The environment to give the program, or one variable's value.\n\