Subject: Re: bug#17675: 24.4.50; *gud* buffer keeps on getting buried

From: Michael Welsh Duggan <[email-masked]>
Date: Wed, 04 Jun 2014 07:20:47 -0400

martin rudalics <[email-masked]> writes:

>> It's being selected by display-buffer-in-previous-window in this
>> particular test case.  Maybe gud needs to bind inhibit-same-window to t
>> before calling display-buffer (from gud-display-line).
>
> `display-buffer-in-previous-window' should be alright in the present
> case - after all you want to show *gud-foo* in the window it was shown
> before.  What we have to find out is why `display-buffer' doesn't
> replace *scratch* by foo.c in what you describe as:
>
>   At this point, notice that *gud-foo* buffer is gone, as foo.c has
>   replaced it.  At some point in time in the past, foo.c would end up
>   replacing the other window (the *scratch* buffer).
>
> So why did foo.c replace *gud-foo* in its window and not use the
> *scratch* window instead?  Please try to find out.

When gud-gdb is started, it uses `switch-to-buffer', which places
*gud-foo* in the window previously occupied by foo.c.  When gdb gets
"start", foo.c replaces *gud-foo* instead of *scratch* because foo.c has
been in the window that *gud-foo* occupies, and not in the window that
*scratch* occupies.  This is what `display-buffer-in-previous-window'
does, no?

-- 
Michael Welsh Duggan
([email-masked])