/* Top level stuff for GDB, the GNU debugger.
- Copyright 1986, 1987, 1988, 1989, 1990, 1991, 1992, 1993, 1994,
- 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005
+ Copyright (C) 1986, 1987, 1988, 1989, 1990, 1991, 1992, 1993, 1994,
+ 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006
Free Software Foundation, Inc.
This file is part of GDB.
You should have received a copy of the GNU General Public License
along with this program; if not, write to the Free Software
- Foundation, Inc., 59 Temple Place - Suite 330,
- Boston, MA 02111-1307, USA. */
+ Foundation, Inc., 51 Franklin Street, Fifth Floor,
+ Boston, MA 02110-1301, USA. */
#include "defs.h"
#include "gdbcmd.h"
#include "serial.h"
#include "doublest.h"
#include "gdb_assert.h"
+#include "main.h"
/* readline include files */
#include "readline/readline.h"
FILE *instream;
+/* Flag to indicate whether a user defined command is currently running. */
+
+int in_user_command;
+
/* Current working directory. */
char *current_directory;
target is off and running, which gdb is doing something else. */
int target_executing = 0;
-/* Level of control structure. */
-static int control_level;
-
/* Sbrk location on entry to main. Used for statistics only. */
#ifdef HAVE_SBRK
char *lim_at_start;
char *arg;
line = p;
+ /* If trace-commands is set then this will print this command. */
+ print_command_trace (p);
+
c = lookup_cmd (&p, cmdlist, "", 0, 1);
/* If the target is running, we allow only a limited set of
}
/* Don't use fancy stuff if not talking to stdin. */
- if (deprecated_readline_hook && instream == NULL)
+ if (deprecated_readline_hook && input_from_terminal_p ())
{
rl = (*deprecated_readline_hook) (local_prompt);
}
- else if (command_editing_p && instream == stdin && ISATTY (instream))
+ else if (command_editing_p && input_from_terminal_p ())
{
rl = gdb_readline_wrapper (local_prompt);
}
/* Second line is a copyright notice. */
- fprintf_filtered (stream, "Copyright 2004 Free Software Foundation, Inc.\n");
+ fprintf_filtered (stream, "Copyright (C) 2006 Free Software Foundation, Inc.\n");
/* Following the copyright is a brief statement that the program is
free software, that users are free to copy and change it on
{
int exit_code = 0;
struct qt_args qt;
- extern int return_child_result, return_child_result_value;
/* An optional expression may be used to cause gdb to terminate with the
value of that expression. */
exit (exit_code);
}
-/* Returns whether GDB is running on a terminal and whether the user
- desires that questions be asked of them on that terminal. */
+/* Returns whether GDB is running on a terminal and input is
+ currently coming from that terminal. */
int
input_from_terminal_p (void)
{
- return gdb_has_a_terminal () && (instream == stdin) & caution;
+ if (gdb_has_a_terminal () && instream == stdin)
+ return 1;
+
+ /* If INSTREAM is unset, and we are not in a user command, we
+ must be in Insight. That's like having a terminal, for our
+ purposes. */
+ if (instream == NULL && !in_user_command)
+ return 1;
+
+ return 0;
}
\f
static void
init_cli_cmds();
init_main (); /* But that omits this file! Do it now */
+ initialize_stdin_serial ();
+
async_init_signals ();
/* We need a default language for parsing expressions, so simple things like