#include "value.h"
#include "language.h"
#include "terminal.h"
-#include "common/job-control.h"
+#include "gdbsupport/job-control.h"
#include "annotate.h"
#include "completer.h"
#include "top.h"
-#include "common/version.h"
+#include "gdbsupport/version.h"
#include "serial.h"
#include "main.h"
#include "event-loop.h"
#include "maint.h"
#include "filenames.h"
#include "frame.h"
-#include "common/buffer.h"
+#include "gdbsupport/buffer.h"
#include "gdb_select.h"
-#include "common/scope-exit.h"
+#include "gdbsupport/scope-exit.h"
+#include "gdbarch.h"
/* readline include files. */
#include "readline/readline.h"
gen_ret_current_ui_field_ptr (struct ui_file *, gdb_stdlog)
gen_ret_current_ui_field_ptr (struct ui_out *, current_uiout)
-/* Initialization file name for gdb. This is host-dependent. */
-
-const char gdbinit[] = GDBINIT;
-
int inhibit_gdbinit = 0;
-extern char lang_frame_mismatch_warn[]; /* language.c */
-
/* Flag for whether we want to confirm potentially dangerous
operations. Default is yes. */
-int confirm = 1;
+bool confirm = true;
static void
show_confirm (struct ui_file *file, int from_tty,
void (*deprecated_attach_hook) (void);
void (*deprecated_detach_hook) (void);
-/* Called during long calculations to allow GUI to repair window
- damage, and to check for stop buttons, etc... */
-
-void (*deprecated_interactive_hook) (void);
-
/* Called when going to wait for the target. Usually allows the GUI
to run while waiting for target events. */
static void
new_ui_command (const char *args, int from_tty)
{
- gdb_file_up stream[3];
- int i;
int argc;
const char *interpreter_name;
const char *tty_name;
{
scoped_restore save_ui = make_scoped_restore (¤t_ui);
- /* Open specified terminal, once for each of
- stdin/stdout/stderr. */
- for (i = 0; i < 3; i++)
- stream[i] = open_terminal_stream (tty_name);
+ /* Open specified terminal. Note: we used to open it three times,
+ once for each of stdin/stdout/stderr, but that does not work
+ with Windows named pipes. */
+ gdb_file_up stream = open_terminal_stream (tty_name);
std::unique_ptr<ui> ui
- (new struct ui (stream[0].get (), stream[1].get (), stream[2].get ()));
+ (new struct ui (stream.get (), stream.get (), stream.get ()));
ui->async = 1;
interp_pre_command_loop (top_level_interpreter ());
- /* Make sure the files are not closed. */
- stream[0].release ();
- stream[1].release ();
- stream[2].release ();
+ /* Make sure the file is not closed. */
+ stream.release ();
ui.release ();
}
&& flang != language_unknown
&& flang != current_language->la_language)
{
- printf_filtered ("%s\n", lang_frame_mismatch_warn);
+ printf_filtered ("%s\n", _(lang_frame_mismatch_warn));
warned = 1;
}
}
auto cleanup_if_error = make_scope_exit (bpstat_clear_actions);
scoped_value_mark cleanup = prepare_execute_command ();
- /* Force cleanup of any alloca areas if using C alloca instead of
- a builtin alloca. */
- alloca (0);
-
/* This can happen when command_line_input hits end of file. */
if (p == NULL)
{
/* See command.h */
-void
+const char *
repeat_previous ()
{
/* Do not repeat this command, as this command is a repeating command. */
so swap it with previous_saved_command_line. */
std::swap (previous_saved_command_line, saved_command_line);
std::swap (previous_repeat_arguments, repeat_arguments);
+
+ const char *prev = skip_spaces (get_saved_command_line ());
+ if (*prev == '\0')
+ error (_("No previous command to relaunch"));
+ return prev;
}
/* See command.h. */
/* Variables which control command line editing and history
substitution. These variables are given default values at the end
of this file. */
-static int command_editing_p;
+static bool command_editing_p;
/* NOTE 1999-04-29: This variable will be static again, once we modify
gdb to use the event loop as the default command loop and we merge
event-top.c into this file, top.c. */
-/* static */ int history_expansion_p;
+/* static */ bool history_expansion_p;
-static int write_history_p;
+static bool write_history_p;
static void
show_write_history_p (struct ui_file *file, int from_tty,
struct cmd_list_element *c, const char *value)
--without-intel-pt\n\
"));
#endif
-#if HAVE_LIBMCHECK
- fprintf_filtered (stream, _("\
- --enable-libmcheck\n\
-"));
-#else
- fprintf_filtered (stream, _("\
- --disable-libmcheck\n\
-"));
-#endif
#if HAVE_LIBMPFR
fprintf_filtered (stream, _("\
--with-mpfr\n\
cmd_show_list (showhistlist, from_tty, "");
}
-int info_verbose = 0; /* Default verbose msgs off. */
+bool info_verbose = false; /* Default verbose msgs off. */
/* Called by do_set_command. An elaborate joke. */
void
struct cmd_list_element *c, const char *value)
{
fprintf_filtered (file, _("GDB's data directory is \"%s\".\n"),
- gdb_datadir);
+ gdb_datadir.c_str ());
}
static void
add_setshow_string_cmd ("prompt", class_support,
&top_prompt,
- _("Set gdb's prompt"),
- _("Show gdb's prompt"),
+ _("Set gdb's prompt."),
+ _("Show gdb's prompt."),
NULL, NULL,
show_prompt,
&setlist, &showlist);
add_setshow_zuinteger_unlimited_cmd ("size", no_class,
&history_size_setshow_var, _("\
-Set the size of the command history,"), _("\
-Show the size of the command history,"), _("\
-ie. the number of previous commands to keep a record of.\n\
+Set the size of the command history."), _("\
+Show the size of the command history."), _("\
+This is the number of previous commands to keep a record of.\n\
If set to \"unlimited\", the number of commands kept in the history\n\
list is unlimited. This defaults to the value of the environment\n\
variable \"GDBHISTSIZE\", or to 256 if this variable is not set."),
&sethistlist, &showhistlist);
add_setshow_filename_cmd ("filename", no_class, &history_filename, _("\
-Set the filename in which to record the command history"), _("\
-Show the filename in which to record the command history"), _("\
+Set the filename in which to record the command history."), _("\
+Show the filename in which to record the command history."), _("\
(the list of previous commands of which a record is kept)."),
set_history_filename,
show_history_filename,
&setlist, &showlist);
c = add_cmd ("new-ui", class_support, new_ui_command, _("\
-Create a new UI. It takes two arguments:\n\
+Create a new UI.\n\
+Usage: new-ui INTERPRETER TTY\n\
The first argument is the name of the interpreter to run.\n\
-The second argument is the terminal the UI runs on.\n"), &cmdlist);
+The second argument is the terminal the UI runs on."), &cmdlist);
set_cmd_completer (c, interpreter_completer);
}
init_cmd_lists (); /* This needs to be done first. */
initialize_targets (); /* Setup target_terminal macros for utils.c. */
- initialize_utils (); /* Make errors and warnings possible. */
init_page_info ();
initialize_progspace ();
initialize_inferiors ();
initialize_current_architecture ();
- init_cli_cmds();
init_main (); /* But that omits this file! Do it now. */
initialize_stdin_serial ();