2003-08-08 Andrew Cagney <cagney@redhat.com>

* interps.c (interp_set): Check for a NULL "old_interp".

Index: mi/ChangeLog
2003-08-08  Andrew Cagney  <cagney@redhat.com>

	* mi-main.c (captured_mi_execute_command): Add "mi2" and "mi3" to
	interpreters that hack around CLI.
	* mi-interp.c (mi3_command_loop): New function.
	(mi_interpreter_resume): Check for "mi3", default to "mi2".
This commit is contained in:
Andrew Cagney 2003-08-08 19:00:08 +00:00
parent c938e9b01d
commit f786f61510
5 changed files with 26 additions and 4 deletions

View file

@ -1,3 +1,7 @@
2003-08-08 Andrew Cagney <cagney@redhat.com>
* interps.c (interp_set): Check for a NULL "old_interp".
2003-08-08 H.J. Lu <hongjiu.lu@intel.com> 2003-08-08 H.J. Lu <hongjiu.lu@intel.com>
* Makefile.in (FLAGS_TO_PASS): Add DESTDIR. * Makefile.in (FLAGS_TO_PASS): Add DESTDIR.

View file

@ -183,7 +183,7 @@ interp_set (struct interp *interp)
if (interp->procs->resume_proc != NULL if (interp->procs->resume_proc != NULL
&& (!interp->procs->resume_proc (interp->data))) && (!interp->procs->resume_proc (interp->data)))
{ {
if (!interp_set (old_interp)) if (old_interp == NULL || !interp_set (old_interp))
internal_error (__FILE__, __LINE__, internal_error (__FILE__, __LINE__,
"Failed to initialize new interp \"%s\" %s", "Failed to initialize new interp \"%s\" %s",
interp->name, "and could not restore old interp!\n"); interp->name, "and could not restore old interp!\n");

View file

@ -1,3 +1,10 @@
2003-08-08 Andrew Cagney <cagney@redhat.com>
* mi-main.c (captured_mi_execute_command): Add "mi2" and "mi3" to
interpreters that hack around CLI.
* mi-interp.c (mi3_command_loop): New function.
(mi_interpreter_resume): Check for "mi3", default to "mi2".
2003-08-07 Andrew Cagney <cagney@redhat.com> 2003-08-07 Andrew Cagney <cagney@redhat.com>
* mi-interp.c (_initialize_mi_interp): Register "mi2" and "mi3". * mi-interp.c (_initialize_mi_interp): Register "mi2" and "mi3".

View file

@ -60,6 +60,7 @@ static int mi_interp_query_hook (const char *ctlstr, va_list ap);
static char *mi_interp_read_one_line_hook (char *prompt, int repeat, static char *mi_interp_read_one_line_hook (char *prompt, int repeat,
char *anno); char *anno);
static void mi3_command_loop (void);
static void mi2_command_loop (void); static void mi2_command_loop (void);
static void mi1_command_loop (void); static void mi1_command_loop (void);
@ -133,10 +134,12 @@ mi_interpreter_resume (void *data)
/* If we're _the_ interpreter, take control. */ /* If we're _the_ interpreter, take control. */
if (current_interp_named_p (INTERP_MI1)) if (current_interp_named_p (INTERP_MI1))
command_loop_hook = mi1_command_loop; command_loop_hook = mi1_command_loop;
else if (current_interp_named_p (INTERP_MI)) else if (current_interp_named_p (INTERP_MI2))
command_loop_hook = mi2_command_loop; command_loop_hook = mi2_command_loop;
else if (current_interp_named_p (INTERP_MI3))
command_loop_hook = mi3_command_loop;
else else
return 0; command_loop_hook = mi2_command_loop;
return 1; return 1;
} }
@ -333,6 +336,12 @@ mi2_command_loop (void)
mi_command_loop (2); mi_command_loop (2);
} }
static void
mi3_command_loop (void)
{
mi_command_loop (3);
}
static void static void
mi_command_loop (int mi_version) mi_command_loop (int mi_version)
{ {

View file

@ -1161,7 +1161,9 @@ captured_mi_execute_command (struct ui_out *uiout, void *data)
/* If we changed interpreters, DON'T print out anything. */ /* If we changed interpreters, DON'T print out anything. */
if (current_interp_named_p (INTERP_MI) if (current_interp_named_p (INTERP_MI)
|| current_interp_named_p (INTERP_MI1)) || current_interp_named_p (INTERP_MI1)
|| current_interp_named_p (INTERP_MI2)
|| current_interp_named_p (INTERP_MI3))
{ {
/* print the result */ /* print the result */
/* FIXME: Check for errors here. */ /* FIXME: Check for errors here. */