/* Header file for GDB CLI command implementation library.
- Copyright (c) 2000,2006,2007,2008,2009 Free Software Foundation, Inc.
+ Copyright (C) 2000-2017 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
#if !defined (CLI_CMDS_H)
#define CLI_CMDS_H 1
+#include "common/filestuff.h"
+#include "common/gdb_optional.h"
+
/* Chain containing all defined commands. */
extern struct cmd_list_element *cmdlist;
extern struct cmd_list_element *infolist;
-/* Chain containing all defined enable subcommands. */
+/* Chain containing all defined enable subcommands. */
extern struct cmd_list_element *enablelist;
-/* Chain containing all defined disable subcommands. */
+/* Chain containing all defined disable subcommands. */
extern struct cmd_list_element *disablelist;
-/* Chain containing all defined delete subcommands. */
+/* Chain containing all defined delete subcommands. */
extern struct cmd_list_element *deletelist;
-/* Chain containing all defined detach subcommands. */
+/* Chain containing all defined detach subcommands. */
extern struct cmd_list_element *detachlist;
extern struct cmd_list_element *killlist;
-/* Chain containing all defined toggle subcommands. */
-
-extern struct cmd_list_element *togglelist;
-
-/* Chain containing all defined stop subcommands. */
+/* Chain containing all defined stop subcommands. */
extern struct cmd_list_element *stoplist;
-/* Chain containing all defined "enable breakpoint" subcommands. */
-
-extern struct cmd_list_element *enablebreaklist;
-
/* Chain containing all defined set subcommands */
extern struct cmd_list_element *setlist;
extern struct cmd_list_element *unsethistlist;
-/* Chain containing all defined maintenance subcommands. */
+/* Chain containing all defined maintenance subcommands. */
extern struct cmd_list_element *maintenancelist;
-/* Chain containing all defined "maintenance info" subcommands. */
+/* Chain containing all defined "maintenance info" subcommands. */
extern struct cmd_list_element *maintenanceinfolist;
-/* Chain containing all defined "maintenance print" subcommands. */
+/* Chain containing all defined "maintenance print" subcommands. */
extern struct cmd_list_element *maintenanceprintlist;
extern void quit_command (char *, int);
-extern void source_script (char *, int);
+extern void source_script (const char *, int);
+
+/* Exported to objfiles.c. */
+
+/* The script that was opened. */
+struct open_script
+{
+ gdb_file_up stream;
+ gdb::unique_xmalloc_ptr<char> full_path;
-/* Used everywhere whenever at least one parameter is required and
- none is specified. */
+ open_script (gdb_file_up &&stream_,
+ gdb::unique_xmalloc_ptr<char> &&full_path_)
+ : stream (std::move (stream_)),
+ full_path (std::move (full_path_))
+ {
+ }
+};
-extern NORETURN void error_no_arg (char *) ATTR_NORETURN;
+extern gdb::optional<open_script>
+ find_and_open_script (const char *file, int search_path);
/* Command tracing state. */