all messages for Emacs-related lists mirrored at yhetil.org
 help / color / mirror / code / Atom feed
From: Dima Kogan <dima@secretsauce.net>
To: 20034@debbugs.gnu.org
Subject: bug#20034: 25.0.50; [PATCH] gud never displays a source buffer over the gud window
Date: Sat, 07 Mar 2015 17:59:01 -0800	[thread overview]
Message-ID: <87sidgp7ve.fsf@secretsauce.net> (raw)

[-- Attachment #1: Type: text/plain, Size: 1193 bytes --]

Hi.

Sometime between emacs 23 and emacs 24 the behavior of display-buffer
changed to show the buffer in the current window at times (emacs 23
always used a different window). As a (presumably unwanted) side-effect
it is now possible for a gud user to lose the gud window as one
interacts with gud. I often encounter this when I open a core dump in
gud-gdb, then invoke "up" repeatedly to traverse the call stack.
Eventually a source buffer takes over the gud window and I have to
switch back to gud to keep navigating the stack.

Trivial recipe:

 1. Create any C program in /tmp/tst.c. Can be as simple as

  int main(void)
  {
      return 0;
  }

 2. gcc -g -o tst tst.c

 3. emacs -Q

 4. C-x 3 (split window horizontally)

 5. C-x C-f tst.c (open tst.c)

 6. M-x gud-gdb, 'gdb --fullname /tmp/tst' (start up gud in the same
    window that's currently showing tst.c)

 7. b main

 8. r

On my machine this switches to tst.c on top of the gud buffer, replacing
gud in its window. With the attached patch this does not happen.

This is similar, but not identical to bug

 http://debbugs.gnu.org/cgi/bugreport.cgi?bug=17675

The proposed fix in that bug does not handle the above recipe.



[-- Warning: decoded text below may be mangled, UTF-8 assumed --]
[-- Attachment #2: 0001-gud-never-displays-a-source-buffer-over-the-gud-wind.patch --]
[-- Type: text/x-diff, Size: 816 bytes --]

From d3b42eb74be145969dd829aeedcb7ceac629de03 Mon Sep 17 00:00:00 2001
From: Dima Kogan <dima@secretsauce.net>
Date: Sat, 7 Mar 2015 17:37:20 -0800
Subject: [PATCH] gud never displays a source buffer over the gud window

---
 lisp/progmodes/gud.el | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/lisp/progmodes/gud.el b/lisp/progmodes/gud.el
index 42c5b20..ac830e7 100644
--- a/lisp/progmodes/gud.el
+++ b/lisp/progmodes/gud.el
@@ -2813,7 +2813,7 @@ Obeying it means displaying in another window the specified file and line."
 	    (gud-find-file true-file)))
 	 (window (and buffer
 		      (or (get-buffer-window buffer)
-			  (display-buffer buffer))))
+			  (display-buffer buffer '(nil (inhibit-same-window . t))))))
 	 (pos))
     (when buffer
       (with-current-buffer buffer
-- 
2.1.4


             reply	other threads:[~2015-03-08  1:59 UTC|newest]

Thread overview: 8+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2015-03-08  1:59 Dima Kogan [this message]
2015-03-08 10:03 ` bug#20034: 25.0.50; [PATCH] gud never displays a source buffer over the gud window martin rudalics
2015-03-09  1:25   ` Dima Kogan
2015-03-09 10:37     ` martin rudalics
2015-03-09 16:01       ` Dima Kogan
2015-03-10  8:09         ` martin rudalics
2015-03-16 19:32           ` Dima Kogan
2015-03-17 10:25             ` martin rudalics

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=87sidgp7ve.fsf@secretsauce.net \
    --to=dima@secretsauce.net \
    --cc=20034@debbugs.gnu.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
Code repositories for project(s) associated with this external index

	https://git.savannah.gnu.org/cgit/emacs.git
	https://git.savannah.gnu.org/cgit/emacs/org-mode.git

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.