Subject: bug#64914: [PATCH] * gdb-mi.el: allow disabling the gdb io buffer

From: Eli Zaretskii <[email-masked]>
Date: Fri, 28 Jul 2023 18:48:28 +0300

> Date: Fri, 28 Jul 2023 10:54:02 -0400
> From: LemonBreezes <[email-masked]>
> Cc: [email-masked]
> 
> No, setting gdb-display-io-nopopup to nil does not prevent the program IO from being split off into the
> gdb-inferior-io buffer, nor does it prevent the gdb-inferior-io buffer from popping up when debugging is
> started.

I said set it non-nil, not nil. nil is its default value, under which
it does pop up the IO buffer.  You want it not to pop up, so you
should set the variable to t.

> The purpose of setting gdb-display-io-buffer to nil is to prevent the gdb-inferior-io buffer from
> being created altogether, instead outputting the program output to the GDB buffer itself. A user in the
> Doom Emacs Discord told me this used to be the behavior of gdb-mi.el but that it was changed
> without giving the user the option to opt out. I have not investigated that but the comments say that is a
> feature of GDB 6.4 onward.

If the want the old behavior, why do they use gdb-mi at all? why not
use "M-x gud-gdb" instead?  That behaves exactly like the old GDB
interface.

But OK, if someone wants to downgrade gdb-mi this way, why not them
have it.  So I have a comment to your patch:

> +(defcustom gdb-display-io-buffer t
> +  "When non-nil, display the `gdb-inferior-io' buffer.  Otherwise,
> +send program output to the GDB buffer."
> +  :type 'boolean
> +  :group 'gdb
> +  :version "30.1")

The first line of a doc string should be a single complete sentence.

And please describe the behavior in the doc string better: this is not
about displaying the IO buffer, this is about not separating the
program's I/O from the GDB I/O and not redirecting the program's I/O
to a separate buffer.

And finally, please accompany your patch with a ChangeLog-style commit
log message (see CONTRIBUTE for details, if you need them).

Thanks.