From: Andrew Cagney Date: Fri, 8 Aug 2003 18:35:23 +0000 (+0000) Subject: 2003-08-08 Andrew Cagney X-Git-Tag: gdb_6_0-2003-10-04-release~133 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=2dfa49141a49eb7c36b8f5bfdf8b7182662ef2ff;p=thirdparty%2Fbinutils-gdb.git 2003-08-08 Andrew Cagney * interps.c (interp_set): Check for a NULL "old_interp". Index: mi/ChangeLog 2003-08-08 Andrew Cagney * 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". --- diff --git a/gdb/ChangeLog b/gdb/ChangeLog index 8d5909fa01e..bd55c04c83a 100644 --- a/gdb/ChangeLog +++ b/gdb/ChangeLog @@ -1,3 +1,7 @@ +2003-08-08 Andrew Cagney + + * interps.c (interp_set): Check for a NULL "old_interp". + 2003-08-08 H.J. Lu * Makefile.in (FLAGS_TO_PASS): Add DESTDIR. diff --git a/gdb/interps.c b/gdb/interps.c index 6df1d4bf17f..82e9af690b1 100644 --- a/gdb/interps.c +++ b/gdb/interps.c @@ -183,7 +183,7 @@ interp_set (struct interp *interp) if (interp->procs->resume_proc != NULL && (!interp->procs->resume_proc (interp->data))) { - if (!interp_set (old_interp)) + if (old_interp == NULL || !interp_set (old_interp)) internal_error (__FILE__, __LINE__, "Failed to initialize new interp \"%s\" %s", interp->name, "and could not restore old interp!\n"); diff --git a/gdb/mi/ChangeLog b/gdb/mi/ChangeLog index 47fe133c32c..aed5c4801de 100644 --- a/gdb/mi/ChangeLog +++ b/gdb/mi/ChangeLog @@ -1,3 +1,10 @@ +2003-08-08 Andrew Cagney + + * 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 * mi-interp.c (_initialize_mi_interp): Register "mi2" and "mi3". diff --git a/gdb/mi/mi-interp.c b/gdb/mi/mi-interp.c index e00e32989e4..b72d7ef0bc2 100644 --- a/gdb/mi/mi-interp.c +++ b/gdb/mi/mi-interp.c @@ -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, char *anno); +static void mi3_command_loop (void); static void mi2_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 (current_interp_named_p (INTERP_MI1)) 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; + else if (current_interp_named_p (INTERP_MI3)) + command_loop_hook = mi3_command_loop; else - return 0; + command_loop_hook = mi2_command_loop; return 1; } @@ -333,6 +336,12 @@ mi2_command_loop (void) mi_command_loop (2); } +static void +mi3_command_loop (void) +{ + mi_command_loop (3); +} + static void mi_command_loop (int mi_version) { diff --git a/gdb/mi/mi-main.c b/gdb/mi/mi-main.c index 5e55913fb94..3d1cccbf4b9 100644 --- a/gdb/mi/mi-main.c +++ b/gdb/mi/mi-main.c @@ -1162,7 +1162,9 @@ captured_mi_execute_command (struct ui_out *uiout, void *data) /* If we changed interpreters, DON'T print out anything. */ 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 */ /* FIXME: Check for errors here. */