void
execute_command (char *p, int from_tty)
{
- register struct cmd_list_element *c;
- register enum language flang;
+ struct cmd_list_element *c;
+ enum language flang;
static int warned = 0;
char *line;
{
static char *linebuffer = 0;
static unsigned linelength = 0;
- register char *p;
+ char *p;
char *p1;
char *rl;
char *local_prompt = prompt_arg;
return 1;
}
-/* Quit without asking for confirmation. */
+/* Helper routine for quit_force that requires error handling. */
-void
-quit_force (char *args, int from_tty)
+struct qt_args
{
- int exit_code = 0;
-
- /* An optional expression may be used to cause gdb to terminate with the
- value of that expression. */
- if (args)
- {
- struct value *val = parse_and_eval (args);
+ char *args;
+ int from_tty;
+};
- exit_code = (int) value_as_long (val);
- }
+static int
+quit_target (void *arg)
+{
+ struct qt_args *qt = (struct qt_args *)arg;
if (! ptid_equal (inferior_ptid, null_ptid) && target_has_execution)
{
if (attach_flag)
- target_detach (args, from_tty);
+ target_detach (qt->args, qt->from_tty);
else
- target_kill ();
+ target_kill ();
}
/* UDI wants this, to kill the TIP. */
do_final_cleanups (ALL_CLEANUPS); /* Do any final cleanups before exiting */
+ return 0;
+}
+
+/* Quit without asking for confirmation. */
+
+void
+quit_force (char *args, int from_tty)
+{
+ int exit_code = 0;
+ struct qt_args qt;
+
+ /* An optional expression may be used to cause gdb to terminate with the
+ value of that expression. */
+ if (args)
+ {
+ struct value *val = parse_and_eval (args);
+
+ exit_code = (int) value_as_long (val);
+ }
+
+ qt.args = args;
+ qt.from_tty = from_tty;
+
+ /* We want to handle any quit errors and exit regardless. */
+ catch_errors (quit_target, &qt,
+ "Quitting: ", RETURN_MASK_ALL);
+
exit (exit_code);
}
return gdb_has_a_terminal () && (instream == stdin) & caution;
}
\f
-/* ARGSUSED */
static void
dont_repeat_command (char *ignored, int from_tty)
{
}
/* Called by do_setshow_command. */
-/* ARGSUSED */
static void
set_history_size_command (char *args, int from_tty, struct cmd_list_element *c)
{
}
}
-/* ARGSUSED */
void
set_history (char *args, int from_tty)
{
help_list (sethistlist, "set history ", -1, gdb_stdout);
}
-/* ARGSUSED */
void
show_history (char *args, int from_tty)
{
int info_verbose = 0; /* Default verbose msgs off */
/* Called by do_setshow_command. An elaborate joke. */
-/* ARGSUSED */
void
set_verbose (char *args, int from_tty, struct cmd_list_element *c)
{