/* Top level stuff for GDB, the GNU debugger.
- Copyright 1986, 87, 88, 89, 90, 91, 92, 93, 94, 95, 1999
- Free Software Foundation, Inc.
+ Copyright 1986-1995, 1999-2000 Free Software Foundation, Inc.
This file is part of GDB.
#include "gdb_string.h"
#include "event-loop.h"
+#include "ui-out.h"
#if defined (TUI) || defined (GDBTK)
/* FIXME: cagney/2000-01-31: This #include is to allow older code such
as that found in the TUI to continue to build. */
processes UI events asynchronously. */
int event_loop_p = 1;
+#ifdef UI_OUT
+/* Has an interpreter been specified and if so, which. */
+char *interpreter_p;
+#endif
+
/* Whether this is the command line version or not */
int tui_version = 0;
/* Whether dbx commands will be handled */
int dbx_commands = 0;
-GDB_FILE *gdb_stdout;
-GDB_FILE *gdb_stderr;
-GDB_FILE *gdb_stdlog;
-GDB_FILE *gdb_stdtarg;
+struct ui_file *gdb_stdout;
+struct ui_file *gdb_stderr;
+struct ui_file *gdb_stdlog;
+struct ui_file *gdb_stdtarg;
/* Used to initialize error() - defined in utils.c */
/* Whether to enable writing into executable and core files */
extern int write_files;
-static void print_gdb_help PARAMS ((GDB_FILE *));
+static void print_gdb_help (struct ui_file *);
/* These two are used to set the external editor commands when gdb is farming
out files to be edited by another program. */
#if defined (TUI) || defined (GDBTK)
/* Older code uses the tui_file and fputs_unfiltered_hook(). It
- should be using a customized GDB_FILE object and re-initializing
+ should be using a customized UI_FILE object and re-initializing
within its own _initialize function. */
gdb_stdout = tui_fileopen (stdout);
gdb_stderr = tui_fileopen (stderr);
{"command", required_argument, 0, 'x'},
{"version", no_argument, &print_version, 1},
{"x", required_argument, 0, 'x'},
+#ifdef GDBTK
+ {"tclcommand", required_argument, 0, 'z'},
+ {"enable-external-editor", no_argument, 0, 'y'},
+ {"editor-command", required_argument, 0, 'w'},
+#endif
+#ifdef UI_OUT
+ {"ui", required_argument, 0, 'i'},
+ {"interpreter", required_argument, 0, 'i'},
+ {"i", required_argument, 0, 'i'},
+#endif
{"directory", required_argument, 0, 'd'},
{"d", required_argument, 0, 'd'},
{"cd", required_argument, 0, 11},
cmdsize * sizeof (*cmdarg));
}
break;
+#ifdef GDBTK
+ case 'z':
+ {
+ extern int gdbtk_test PARAMS ((char *));
+ if (!gdbtk_test (optarg))
+ {
+ fprintf_unfiltered (gdb_stderr, "%s: unable to load tclcommand file \"%s\"",
+ argv[0], optarg);
+ exit (1);
+ }
+ break;
+ }
+ case 'y':
+ {
+ /*
+ * This enables the edit/button in the main window, even
+ * when IDE_ENABLED is set to false. In this case you must
+ * use --tclcommand to specify a tcl/script to be called,
+ * Tcl/Variable to store the edit/command is:
+ * external_editor
+ */
+ enable_external_editor = 1;
+ break;
+ }
+ case 'w':
+ {
+ /*
+ * if editor command is enabled, both flags are set
+ */
+ enable_external_editor = 1;
+ external_editor_command = xstrdup (optarg);
+ break;
+ }
+#endif /* GDBTK */
+#ifdef UI_OUT
+ case 'i':
+ interpreter_p = optarg;
+ break;
+#endif
case 'd':
dirarg[ndir++] = optarg;
if (ndir >= dirsize)
to print. */
static void
-print_gdb_help (stream)
- GDB_FILE *stream;
+print_gdb_help (struct ui_file *stream)
{
fputs_unfiltered ("\
This is the GNU debugger. Usage:\n\n\
--exec=EXECFILE Use EXECFILE as the executable.\n\
--fullname Output information used by emacs-GDB interface.\n\
--help Print this message.\n\
+", stream);
+ fputs_unfiltered ("\
+ --interpreter=INTERP\n\
+ Select a specific interpreter / user interface\n\
", stream);
fputs_unfiltered ("\
--mapped Use mapped symbol files if supported on this system.\n\