/* Header file for GDB CLI command implementation library.
- Copyright (C) 2000-2013 Free Software Foundation, Inc.
+ Copyright (C) 2000-2021 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
You should have received a copy of the GNU General Public License
along with this program. If not, see <http://www.gnu.org/licenses/>. */
-#if !defined (CLI_CMDS_H)
-#define CLI_CMDS_H 1
+#ifndef CLI_CLI_CMDS_H
+#define CLI_CLI_CMDS_H
+
+#include "gdbsupport/filestuff.h"
+#include "gdbsupport/gdb_optional.h"
+#include "completer.h"
/* Chain containing all defined commands. */
extern struct cmd_list_element *killlist;
-/* Chain containing all defined toggle subcommands. */
-
-extern struct cmd_list_element *togglelist;
-
/* Chain containing all defined stop subcommands. */
extern struct cmd_list_element *stoplist;
extern struct cmd_list_element *maintenanceprintlist;
+/* Chain containing all defined "maintenance flush" subcommands. */
+
+extern struct cmd_list_element *maintenanceflushlist;
+
+/* Chain containing all defined "maintenance check" subcommands. */
+
+extern struct cmd_list_element *maintenancechecklist;
+
+/* Chain containing all defined "maintenance set" subcommands. */
+
+extern struct cmd_list_element *maintenance_set_cmdlist;
+
+/* Chain containing all defined "maintenance show" subcommands. */
+
+extern struct cmd_list_element *maintenance_show_cmdlist;
+
extern struct cmd_list_element *setprintlist;
extern struct cmd_list_element *showprintlist;
+/* Chain containing all defined "set print raw" subcommands. */
+
+extern struct cmd_list_element *setprintrawlist;
+
+/* Chain containing all defined "show print raw" subcommands. */
+
+extern struct cmd_list_element *showprintrawlist;
+
+/* Chain containing all defined "set print type" subcommands. */
+
+extern struct cmd_list_element *setprinttypelist;
+
+/* Chain containing all defined "show print type" subcommands. */
+
+extern struct cmd_list_element *showprinttypelist;
+
extern struct cmd_list_element *setdebuglist;
extern struct cmd_list_element *showdebuglist;
extern struct cmd_list_element *showchecklist;
+/* Chain containing all defined "save" subcommands. */
+
+extern struct cmd_list_element *save_cmdlist;
+
+/* Chain containing all defined "set source" subcommands. */
+
+extern struct cmd_list_element *setsourcelist;
+
+/* Chain containing all defined "show source" subcommands. */
+
+extern struct cmd_list_element *showsourcelist;
+
+/* Limit the call depth of user-defined commands */
+
+extern unsigned int max_user_call_depth;
+
/* Exported to gdb/top.c */
void init_cmd_lists (void);
-void init_cli_cmds (void);
-
int is_complete_command (struct cmd_list_element *cmd);
/* Exported to gdb/main.c */
-extern void cd_command (char *, int);
+extern void cd_command (const char *, int);
/* Exported to gdb/top.c and gdb/main.c */
-extern void quit_command (char *, int);
+extern void quit_command (const char *, int);
extern void source_script (const char *, int);
/* Exported to objfiles.c. */
-extern int find_and_open_script (const char *file, int search_path,
- FILE **streamp, char **full_path);
+/* The script that was opened. */
+struct open_script
+{
+ gdb_file_up stream;
+ gdb::unique_xmalloc_ptr<char> full_path;
+
+ open_script (gdb_file_up &&stream_,
+ gdb::unique_xmalloc_ptr<char> &&full_path_)
+ : stream (std::move (stream_)),
+ full_path (std::move (full_path_))
+ {
+ }
+};
+
+extern gdb::optional<open_script>
+ find_and_open_script (const char *file, int search_path);
/* Command tracing state. */
extern int source_verbose;
-extern int trace_commands;
-
-#endif /* !defined (CLI_CMDS_H) */
+extern bool trace_commands;
+
+/* Common code for the "with" and "maintenance with" commands.
+ SET_CMD_PREFIX is the spelling of the corresponding "set" command
+ prefix: i.e., "set " or "maintenance set ". SETLIST is the command
+ element for the same "set" command prefix. */
+extern void with_command_1 (const char *set_cmd_prefix,
+ cmd_list_element *setlist,
+ const char *args, int from_tty);
+
+/* Common code for the completers of the "with" and "maintenance with"
+ commands. SET_CMD_PREFIX is the spelling of the corresponding
+ "set" command prefix: i.e., "set " or "maintenance set ". */
+extern void with_command_completer_1 (const char *set_cmd_prefix,
+ completion_tracker &tracker,
+ const char *text);
+
+#endif /* CLI_CLI_CMDS_H */