/* Manages interpreters for GDB, the GNU debugger.
- Copyright (C) 2000-2013 Free Software Foundation, Inc.
+ Copyright (C) 2000-2014 Free Software Foundation, Inc.
Written by Jim Ingham <jingham@apple.com> of Apple Computer, Inc.
#include "event-top.h"
#include "interps.h"
#include "completer.h"
-#include "gdb_string.h"
+#include <string.h>
#include "gdb_assert.h"
#include "top.h" /* For command_loop. */
#include "exceptions.h"
{
struct interp *new_interp;
- new_interp = XMALLOC (struct interp);
+ new_interp = XNEW (struct interp);
new_interp->name = xstrdup (name);
new_interp->data = NULL;
new_interp->procs = procs;
new_interp->inited = 0;
+ /* Check for required procs. */
+ gdb_assert (procs->command_loop_proc != NULL);
+
return new_interp;
}
void
current_interp_command_loop (void)
{
- /* Somewhat messy. For the moment prop up all the old ways of
- selecting the command loop. */
- if (current_interpreter != NULL
- && current_interpreter->procs->command_loop_proc != NULL)
- current_interpreter->procs->command_loop_proc (current_interpreter->data);
- else
- cli_command_loop ();
+ gdb_assert (current_interpreter != NULL);
+
+ current_interpreter->procs->command_loop_proc (current_interpreter->data);
}
int
/* interp_exec - This executes COMMAND_STR in the current
interpreter. */
-int
-interp_exec_p (struct interp *interp)
-{
- return interp->procs->exec_proc != NULL;
-}
struct gdb_exception
interp_exec (struct interp *interp, const char *command_str)
{
- if (interp->procs->exec_proc != NULL)
- {
- return interp->procs->exec_proc (interp->data, command_str);
- }
- return exception_none;
+ gdb_assert (interp->procs->exec_proc != NULL);
+
+ return interp->procs->exec_proc (interp->data, command_str);
}
/* A convenience routine that nulls out all the common command hooks.