Re: Patch for gdb/mi 604

Elena Zannoni
2002-10-21T22:28:34Z

J. Johnston writes:
> The following patches mi-main.c to turn on the console output prefix prior
> to outputting the gdb startup messages. The code checks for mi level
> and defers to old behavior for mi1.
>
> Ok to commit?
>

Wouldn't this affect the testsuite as well?
Or is this behavior not tested?

Elena

> mi/ChangeLog:
>
> 2002-10-02 Jeff Johnston <jjohnstn@redhat.com>
>
> * mi-main.c: (mi_init_ui): If mi level > 1, set up gdb_stdout with
> console prefix. Fix for PR gdb/604.
> (mi_command_loop): Add check for mi level. If <= 1, set up gdb_stdout
> with console prefix.
>
> -- Jeff J.Index: mi/mi-main.c
> ===================================================================
> RCS file: /cvs/src/src/gdb/mi/mi-main.c,v
> retrieving revision 1.32
> diff -u -r1.32 mi-main.c
> --- mi/mi-main.c 1 Oct 2002 21:15:43 -0000 1.32
> +++ mi/mi-main.c 2 Oct 2002 18:34:12 -0000
> @@ -1459,12 +1459,16 @@
> static void
> mi_command_loop (int mi_version)
> {
> - /* HACK: Force stdout/stderr to point at the console. This avoids
> - any potential side effects caused by legacy code that is still
> - using the TUI / fputs_unfiltered_hook */
> - raw_stdout = stdio_fileopen (stdout);
> - /* Route normal output through the MIx */
> - gdb_stdout = mi_console_file_new (raw_stdout, "~");
> + if (mi_version <= 1)
> + {
> + /* HACK: Force stdout/stderr to point at the console. This avoids
> + any potential side effects caused by legacy code that is still
> + using the TUI / fputs_unfiltered_hook */
> + raw_stdout = stdio_fileopen (stdout);
> + /* Route normal output through the MIx */
> + gdb_stdout = mi_console_file_new (raw_stdout, "~");
> + }
> +
> /* Route error and log output through the MI */
> gdb_stderr = mi_console_file_new (raw_stdout, "&");
> gdb_stdlog = gdb_stderr;
> @@ -1536,8 +1540,16 @@
> static void
> mi_init_ui (char *arg0)
> {
> - /* Eventually this will contain code that takes control of the
> - console. */
> + if (strlen (interpreter_p) <= 2 ||
> + interpreter_p[2] > '1')
> + {
> + /* HACK: Force stdout/stderr to point at the console. This avoids
> + any potential side effects caused by legacy code that is still
> + using the TUI / fputs_unfiltered_hook */
> + raw_stdout = stdio_fileopen (stdout);
> + /* Route normal output through the MIx */
> + gdb_stdout = mi_console_file_new (raw_stdout, "~");
> + }
> }
>
> void