[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
bug#32607: 27.0.50; pop-to-buffer in next-error-no-select
From: |
Juri Linkov |
Subject: |
bug#32607: 27.0.50; pop-to-buffer in next-error-no-select |
Date: |
Mon, 03 Sep 2018 01:43:02 +0300 |
User-agent: |
Gnus/5.13 (Gnus v5.13) Emacs/27.0.50 (x86_64-pc-linux-gnu) |
>> Suppose we have such customization:
>>
>> (setq display-buffer-alist '(("\\`\\*grep\\*\\'"
>> display-buffer-same-window)))
>>
>> Now after running grep with a non-empty output in ‘emacs -Q’,
>> typing ‘C-o’ (compilation-display-error) will display two identical
>> buffers instead of displaying the buffer with the found grep hit.
>>
>> The problem is with pop-to-buffer in next-error-no-select.
>> I wonder what is an idiomatic way to ensure a buffer is already
>> displayed in some window, to not display the same buffer
>> in other window?
>
> I'm not quite sure I understand: Is there a reason you did not supply
> 'display-buffer-reuse-window' in the above customization?
Because it's an idiomatic way to tell the Emacs window manager to
display the *grep* buffer in the same window (an old way to do the same
was using same-window-buffer-names and same-window-regexps)
when manually running M-x grep.
But it fails when using C-o from the already displayed *grep*.
I think next-error-no-select should override the user setting with
display-buffer-overriding-action because the purpose of pop-to-buffer in
next-error-no-select is to ensure the *grep* buffer is displayed somewhere:
diff --git a/lisp/simple.el b/lisp/simple.el
index 0ccf2f1d22..df7d86a835 100644
--- a/lisp/simple.el
+++ b/lisp/simple.el
@@ -385,7 +385,8 @@ next-error-no-select
(interactive "p")
(let ((next-error-highlight next-error-highlight-no-select))
(next-error n))
- (pop-to-buffer next-error-last-buffer))
+ (let ((display-buffer-overriding-action '(display-buffer-reuse-window)))
+ (pop-to-buffer next-error-last-buffer)))
(defun previous-error-no-select (&optional n)
"Move point to the previous error in the `next-error' buffer and highlight
match.
- bug#32607: 27.0.50; pop-to-buffer in next-error-no-select, Juri Linkov, 2018/09/01
- bug#32607: 27.0.50; pop-to-buffer in next-error-no-select, martin rudalics, 2018/09/02
- bug#32607: 27.0.50; pop-to-buffer in next-error-no-select,
Juri Linkov <=
- bug#32607: 27.0.50; pop-to-buffer in next-error-no-select, martin rudalics, 2018/09/03
- bug#32607: 27.0.50; pop-to-buffer in next-error-no-select, Juri Linkov, 2018/09/03
- bug#32607: 27.0.50; pop-to-buffer in next-error-no-select, martin rudalics, 2018/09/04
- bug#32607: 27.0.50; pop-to-buffer in next-error-no-select, Juri Linkov, 2018/09/04
- bug#32607: 27.0.50; pop-to-buffer in next-error-no-select, martin rudalics, 2018/09/05
- bug#32607: 27.0.50; pop-to-buffer in next-error-no-select, Juri Linkov, 2018/09/05
- bug#32607: 27.0.50; pop-to-buffer in next-error-no-select, martin rudalics, 2018/09/06
- bug#32607: 27.0.50; pop-to-buffer in next-error-no-select, Juri Linkov, 2018/09/06
- bug#32607: 27.0.50; pop-to-buffer in next-error-no-select, Eli Zaretskii, 2018/09/07
- bug#32607: 27.0.50; pop-to-buffer in next-error-no-select, Juri Linkov, 2018/09/08