unofficial mirror of bug-gnu-emacs@gnu.org 
 help / color / mirror / code / Atom feed
* bug#68081: 30.0.50; derived-mode and display-buffer-alist
@ 2023-12-28 13:26 German Pacenza
  2023-12-28 14:07 ` Eli Zaretskii
  0 siblings, 1 reply; 26+ messages in thread
From: German Pacenza @ 2023-12-28 13:26 UTC (permalink / raw)
  To: 68081


Hi,
display-buffer-alist rules that use derived-mode or major-mode are
ignored on first use.

emacs -Q:

(setq display-buffer-alist '(((derived-mode . Info-mode)
                              (display-buffer-in-side-window))))
"C-h i"
The info buffer takes the whole window
"q"
"C-h i"
The info buffer opens in side window as expected

Info and Compilation modes are affected, but Help and Man work as expected


In GNU Emacs 30.0.50 (build 3, x86_64-pc-linux-gnu, GTK+ Version
 3.24.39, cairo version 1.18.0) of 2023-12-27 built on KRONOS
Repository revision: 9e0eeb2d49ccd443bb667be9231fe932be67bb10
Repository branch: master
System Description: Manjaro Linux

Configured using:
 'configure --with-pgtk --with-native-compilation --without-gsettings
 --without-sound --without-compress-install'

Configured features:
ACL CAIRO DBUS FREETYPE GIF GLIB GMP GNUTLS GPM HARFBUZZ JPEG JSON LCMS2
LIBOTF LIBSYSTEMD LIBXML2 MODULES NATIVE_COMP NOTIFY INOTIFY PDUMPER
PGTK PNG RSVG SECCOMP SQLITE3 THREADS TIFF TOOLKIT_SCROLL_BARS
TREE_SITTER WEBP XIM GTK3 ZLIB

Important settings:
  value of $LANG: en_US.UTF-8
  locale-coding-system: utf-8-unix

Major mode: Messages

Minor modes in effect:
  savehist-mode: t
  vertico-mode: t
  delete-selection-mode: t
  spacious-padding-mode: t
  tooltip-mode: t
  global-eldoc-mode: t
  show-paren-mode: t
  electric-indent-mode: t
  mouse-wheel-mode: t
  file-name-shadow-mode: t
  global-font-lock-mode: t
  font-lock-mode: t
  blink-cursor-mode: t
  minibuffer-regexp-mode: t
  buffer-read-only: t
  line-number-mode: t
  transient-mark-mode: t
  auto-composition-mode: t
  auto-encryption-mode: t
  auto-compression-mode: t

Load-path shadows:
/home/german/.emacs.d/elpa/ef-themes-1.4.1/theme-loaddefs hides /home/german/.emacs.d/elpa/standard-themes-2.0.1/theme-loaddefs
/home/german/.emacs.d/elpa/transient-20231216.1908/transient hides /usr/local/share/emacs/30.0.50/lisp/transient
/home/german/.emacs.d/elpa/ef-themes-1.4.1/theme-loaddefs hides /usr/local/share/emacs/30.0.50/lisp/theme-loaddefs

Features:
(shadow sort mail-extr emacsbug message mailcap yank-media puny dired
dired-loaddefs rfc822 mml mml-sec password-cache epa derived epg rfc6068
epg-config gnus-util mm-decode mm-bodies mm-encode mail-parse rfc2231
mailabbrev gmm-utils mailheader sendmail rfc2047 rfc2045 ietf-drums
mm-util mail-prsvr mail-utils mule-util ibuffer ibuffer-loaddefs pulse
color misearch multi-isearch executable cl-print debug backtrace
find-func cl-macs time-date comp comp-cstr warnings icons subr-x
disp-table view jka-compr woman tabify files-x imenu compile comint
ansi-osc ring man ansi-color shortdoc pcase help-fns radix-tree
thingatpt cl-seq project byte-opt gv comp-run bytecomp byte-compile
comp-common rx cl-extra help-mode orderless cursor-sensor vc-git
diff-mode easy-mmode vc-dispatcher consult bookmark text-property-search
pp cl-loaddefs cl-lib completion-preview elec-pair savehist init
g3r-windows g3r-vertico vertico compat g3r-vc g3r-shells g3r-settings
delsel g3r-search g3r-project g3r-package g3r-modeline g3r-minibuffer
g3r-mail g3r-functions g3r-expand_region g3r-erc g3r-embark g3r-elfeed
g3r-consult g3r-completion g3r-bindings g3r-appearance spacious-padding
fontaine g3r-dark-theme init-dir info cape-autoloads
color-theme-sanityinc-tomorrow-autoloads consult-autoloads
dirvish-autoloads do-at-point-autoloads doom-themes-autoloads
eat-autoloads ef-themes-autoloads elfeed-autoloads embark-autoloads
expand-region-autoloads fontaine-autoloads golden-ratio-autoloads
hc-zenburn-theme-autoloads init-dir-autoloads kkp-autoloads
magit-autoloads git-commit-autoloads magit-section-autoloads
dash-autoloads markdown-mode-autoloads orderless-autoloads
rainbow-mode-autoloads spacious-padding-autoloads
standard-themes-autoloads sudoku-autoloads transient-dwim-autoloads
transient-autoloads vertico-autoloads with-editor-autoloads
compat-autoloads zenburn-theme-autoloads early-init rmc iso-transl
tooltip cconv eldoc paren electric uniquify ediff-hook vc-hooks
lisp-float-type elisp-mode mwheel term/pgtk-win pgtk-win term/common-win
pgtk-dnd tool-bar dnd fontset image regexp-opt fringe tabulated-list
replace newcomment text-mode lisp-mode prog-mode register page tab-bar
menu-bar rfn-eshadow isearch easymenu timer select scroll-bar mouse
jit-lock font-lock syntax font-core term/tty-colors frame minibuffer
nadvice seq simple cl-generic indonesian philippine cham georgian
utf-8-lang misc-lang vietnamese tibetan thai tai-viet lao korean
japanese eucjp-ms cp51932 hebrew greek romanian slovak czech european
ethiopic indian cyrillic chinese composite emoji-zwj charscript charprop
case-table epa-hook jka-cmpr-hook help abbrev obarray oclosure
cl-preloaded button loaddefs theme-loaddefs faces cus-face macroexp
files window text-properties overlay sha1 md5 base64 format env
code-pages mule custom widget keymap hashtable-print-readable backquote
threads dbusbind inotify dynamic-setting font-render-setting cairo gtk
pgtk lcms2 multi-tty move-toolbar make-network-process native-compile
emacs)

Memory information:
((conses 16 278958 357388) (symbols 48 12466 8)
 (strings 32 71116 11685) (string-bytes 1 2237572) (vectors 16 24796)
 (vector-slots 8 483019 124700) (floats 8 207 5606)
 (intervals 56 561 412) (buffers 992 12))

-- 
German Pacenza





^ permalink raw reply	[flat|nested] 26+ messages in thread

* bug#68081: 30.0.50; derived-mode and display-buffer-alist
  2023-12-28 13:26 bug#68081: 30.0.50; derived-mode and display-buffer-alist German Pacenza
@ 2023-12-28 14:07 ` Eli Zaretskii
  2023-12-29  9:02   ` martin rudalics via Bug reports for GNU Emacs, the Swiss army knife of text editors
  0 siblings, 1 reply; 26+ messages in thread
From: Eli Zaretskii @ 2023-12-28 14:07 UTC (permalink / raw)
  To: German Pacenza, martin rudalics; +Cc: 68081

> From: German Pacenza <germanp82@hotmail.com>
> Date: Thu, 28 Dec 2023 10:26:37 -0300
> 
> display-buffer-alist rules that use derived-mode or major-mode are
> ignored on first use.
> 
> emacs -Q:
> 
> (setq display-buffer-alist '(((derived-mode . Info-mode)
>                               (display-buffer-in-side-window))))
> "C-h i"
> The info buffer takes the whole window
> "q"
> "C-h i"
> The info buffer opens in side window as expected
> 
> Info and Compilation modes are affected, but Help and Man work as expected

Martin, any comments or suggestions?





^ permalink raw reply	[flat|nested] 26+ messages in thread

* bug#68081: 30.0.50; derived-mode and display-buffer-alist
  2023-12-28 14:07 ` Eli Zaretskii
@ 2023-12-29  9:02   ` martin rudalics via Bug reports for GNU Emacs, the Swiss army knife of text editors
  2023-12-29 11:41     ` Eli Zaretskii
  0 siblings, 1 reply; 26+ messages in thread
From: martin rudalics via Bug reports for GNU Emacs, the Swiss army knife of text editors @ 2023-12-29  9:02 UTC (permalink / raw)
  To: Eli Zaretskii, German Pacenza; +Cc: 68081

 >> display-buffer-alist rules that use derived-mode or major-mode are
 >> ignored on first use.
 >>
 >> emacs -Q:
 >>
 >> (setq display-buffer-alist '(((derived-mode . Info-mode)
 >>                                (display-buffer-in-side-window))))
 >> "C-h i"
 >> The info buffer takes the whole window
 >> "q"
 >> "C-h i"
 >> The info buffer opens in side window as expected
 >>
 >> Info and Compilation modes are affected, but Help and Man work as expected
 >
 > Martin, any comments or suggestions?

C-h i does

   (info-setup file-or-node
	      (pop-to-buffer-same-window (or buffer "*info*"))))

In the first call BUFFER is nil and the

                        (provided-mode-derived-p
                         (buffer-local-value 'major-mode buffer)
                         mode))

rigmarole in 'buffer-match-p' won't report a match because the major
mode of *info* is still fundamental mode.  In later calls the *info*
buffer exists already, is in Info-mode, and 'buffer-match-p' will
produce the desired result.

We could try to call 'Info-mode' _before_ calling 'display-buffer' but
I'm not sure of the consequences this would have.

martin





^ permalink raw reply	[flat|nested] 26+ messages in thread

* bug#68081: 30.0.50; derived-mode and display-buffer-alist
  2023-12-29  9:02   ` martin rudalics via Bug reports for GNU Emacs, the Swiss army knife of text editors
@ 2023-12-29 11:41     ` Eli Zaretskii
  2023-12-30  9:30       ` martin rudalics via Bug reports for GNU Emacs, the Swiss army knife of text editors
  0 siblings, 1 reply; 26+ messages in thread
From: Eli Zaretskii @ 2023-12-29 11:41 UTC (permalink / raw)
  To: martin rudalics; +Cc: germanp82, 68081

> Date: Fri, 29 Dec 2023 10:02:50 +0100
> Cc: 68081@debbugs.gnu.org
> From: martin rudalics <rudalics@gmx.at>
> 
>  >> display-buffer-alist rules that use derived-mode or major-mode are
>  >> ignored on first use.
>  >>
>  >> emacs -Q:
>  >>
>  >> (setq display-buffer-alist '(((derived-mode . Info-mode)
>  >>                                (display-buffer-in-side-window))))
>  >> "C-h i"
>  >> The info buffer takes the whole window
>  >> "q"
>  >> "C-h i"
>  >> The info buffer opens in side window as expected
>  >>
>  >> Info and Compilation modes are affected, but Help and Man work as expected
>  >
>  > Martin, any comments or suggestions?
> 
> C-h i does
> 
>    (info-setup file-or-node
> 	      (pop-to-buffer-same-window (or buffer "*info*"))))
> 
> In the first call BUFFER is nil and the
> 
>                         (provided-mode-derived-p
>                          (buffer-local-value 'major-mode buffer)
>                          mode))
> 
> rigmarole in 'buffer-match-p' won't report a match because the major
> mode of *info* is still fundamental mode.  In later calls the *info*
> buffer exists already, is in Info-mode, and 'buffer-match-p' will
> produce the desired result.
> 
> We could try to call 'Info-mode' _before_ calling 'display-buffer' but
> I'm not sure of the consequences this would have.

Thanks.  I tend to document this subtlety, and otherwise leave it
alone.





^ permalink raw reply	[flat|nested] 26+ messages in thread

* bug#68081: 30.0.50; derived-mode and display-buffer-alist
  2023-12-29 11:41     ` Eli Zaretskii
@ 2023-12-30  9:30       ` martin rudalics via Bug reports for GNU Emacs, the Swiss army knife of text editors
  2023-12-30 10:12         ` Eli Zaretskii
  0 siblings, 1 reply; 26+ messages in thread
From: martin rudalics via Bug reports for GNU Emacs, the Swiss army knife of text editors @ 2023-12-30  9:30 UTC (permalink / raw)
  To: Eli Zaretskii; +Cc: germanp82, 68081

 > Thanks.  I tend to document this subtlety, and otherwise leave it
 > alone.

This was not an issue when 'display-buffer' was rewritten in 2011.  It
became an issue when it started to use 'buffer-match-p' in 2022.

A fairly safe fix would be

diff --git a/lisp/info.el b/lisp/info.el
index 51e9eb72edf..e0d35591ee5 100644
--- a/lisp/info.el
+++ b/lisp/info.el
@@ -768,6 +768,12 @@ info
      ;; of names that might have been wrapped (in emails, etc.).
      (setq file-or-node
            (string-replace "\n" " " file-or-node)))
+
+  (unless (or buffer (derived-mode-p 'Info-mode))
+    (setq buffer (get-buffer-create "*info*"))
+    (with-current-buffer buffer
+      (Info-mode)))
+
    (info-setup file-or-node
  	      (pop-to-buffer-same-window (or buffer "*info*"))))

A still conservative but more advanced fix (that should DTRT in the case
no window can be found) would be

diff --git a/lisp/info.el b/lisp/info.el
index 51e9eb72edf..11e228b9bf8 100644
--- a/lisp/info.el
+++ b/lisp/info.el
@@ -768,8 +768,16 @@ info
      ;; of names that might have been wrapped (in emails, etc.).
      (setq file-or-node
            (string-replace "\n" " " file-or-node)))
-  (info-setup file-or-node
-	      (pop-to-buffer-same-window (or buffer "*info*"))))
+
+  (unless buffer
+    (if (derived-mode-p 'Info-mode)
+	(setq buffer "*info*")
+      (setq buffer (get-buffer-create "*info*"))
+      (with-current-buffer buffer
+	(Info-mode))))
+
+  (pop-to-buffer-same-window buffer)
+  (info-setup file-or-node buffer))

  (defun info-setup (file-or-node buffer)
    "Display Info node FILE-OR-NODE in BUFFER."

Otherwise, you could suggest using

(setq display-buffer-alist '(((derived-mode . Info-mode)
                               (display-buffer-in-side-window))
			     ("*info*" (display-buffer-in-side-window))))

as a fallback.

martin





^ permalink raw reply related	[flat|nested] 26+ messages in thread

* bug#68081: 30.0.50; derived-mode and display-buffer-alist
  2023-12-30  9:30       ` martin rudalics via Bug reports for GNU Emacs, the Swiss army knife of text editors
@ 2023-12-30 10:12         ` Eli Zaretskii
  2023-12-31  8:57           ` martin rudalics via Bug reports for GNU Emacs, the Swiss army knife of text editors
  0 siblings, 1 reply; 26+ messages in thread
From: Eli Zaretskii @ 2023-12-30 10:12 UTC (permalink / raw)
  To: martin rudalics; +Cc: germanp82, 68081

> Date: Sat, 30 Dec 2023 10:30:40 +0100
> Cc: germanp82@hotmail.com, 68081@debbugs.gnu.org
> From: martin rudalics <rudalics@gmx.at>
> 
>  > Thanks.  I tend to document this subtlety, and otherwise leave it
>  > alone.
> 
> This was not an issue when 'display-buffer' was rewritten in 2011.  It
> became an issue when it started to use 'buffer-match-p' in 2022.

I guess it's a problem on the emacs-29 branch as well, then?

> A fairly safe fix would be
> 
> diff --git a/lisp/info.el b/lisp/info.el
> index 51e9eb72edf..e0d35591ee5 100644
> --- a/lisp/info.el
> +++ b/lisp/info.el
> @@ -768,6 +768,12 @@ info
>       ;; of names that might have been wrapped (in emails, etc.).
>       (setq file-or-node
>             (string-replace "\n" " " file-or-node)))
> +
> +  (unless (or buffer (derived-mode-p 'Info-mode))
> +    (setq buffer (get-buffer-create "*info*"))
> +    (with-current-buffer buffer
> +      (Info-mode)))
> +
>     (info-setup file-or-node
>   	      (pop-to-buffer-same-window (or buffer "*info*"))))
> 
> A still conservative but more advanced fix (that should DTRT in the case
> no window can be found) would be
> 
> diff --git a/lisp/info.el b/lisp/info.el
> index 51e9eb72edf..11e228b9bf8 100644
> --- a/lisp/info.el
> +++ b/lisp/info.el
> @@ -768,8 +768,16 @@ info
>       ;; of names that might have been wrapped (in emails, etc.).
>       (setq file-or-node
>             (string-replace "\n" " " file-or-node)))
> -  (info-setup file-or-node
> -	      (pop-to-buffer-same-window (or buffer "*info*"))))
> +
> +  (unless buffer
> +    (if (derived-mode-p 'Info-mode)
> +	(setq buffer "*info*")
> +      (setq buffer (get-buffer-create "*info*"))
> +      (with-current-buffer buffer
> +	(Info-mode))))
> +
> +  (pop-to-buffer-same-window buffer)
> +  (info-setup file-or-node buffer))
> 
>   (defun info-setup (file-or-node buffer)
>     "Display Info node FILE-OR-NODE in BUFFER."
> 
> Otherwise, you could suggest using
> 
> (setq display-buffer-alist '(((derived-mode . Info-mode)
>                                (display-buffer-in-side-window))
> 			     ("*info*" (display-buffer-in-side-window))))
> 
> as a fallback.

Thanks.  Would you recommend any of the above for the emacs-29 branch?
Or are these not safe enough there?





^ permalink raw reply	[flat|nested] 26+ messages in thread

* bug#68081: 30.0.50; derived-mode and display-buffer-alist
  2023-12-30 10:12         ` Eli Zaretskii
@ 2023-12-31  8:57           ` martin rudalics via Bug reports for GNU Emacs, the Swiss army knife of text editors
  2023-12-31 10:30             ` German Pacenza
  0 siblings, 1 reply; 26+ messages in thread
From: martin rudalics via Bug reports for GNU Emacs, the Swiss army knife of text editors @ 2023-12-31  8:57 UTC (permalink / raw)
  To: Eli Zaretskii; +Cc: germanp82, 68081

 >> This was not an issue when 'display-buffer' was rewritten in 2011.  It
 >> became an issue when it started to use 'buffer-match-p' in 2022.
 >
 > I guess it's a problem on the emacs-29 branch as well, then?

Yes.

 > Thanks.  Would you recommend any of the above for the emacs-29 branch?
 > Or are these not safe enough there?

The "fixes" I proposed are not "nice" since they depend on the
idempotence of 'Info-mode' which in the case we talk about here would be
called twice - once by 'info' and once by 'info-setup'.  Whether this
makes the fixes less "safe" is something I wouldn't try to experiment
with on a release branch.

So for Emacs-29 I would recommend to add to the Elisp manual, where it
says that "Each condition is passed to ‘buffer-match-p’ ...", that using
'derived-mode' and 'major-mode' as conditions might not work if
'display-buffer' is called before the major mode of the buffer has been
established.  And I would add a similar remark to the description of
'buffer-match-p' itself.

martin

^ permalink raw reply	[flat|nested] 26+ messages in thread

* bug#68081: 30.0.50; derived-mode and display-buffer-alist
  2023-12-31  8:57           ` martin rudalics via Bug reports for GNU Emacs, the Swiss army knife of text editors
@ 2023-12-31 10:30             ` German Pacenza
  2024-01-01  9:38               ` martin rudalics via Bug reports for GNU Emacs, the Swiss army knife of text editors
  0 siblings, 1 reply; 26+ messages in thread
From: German Pacenza @ 2023-12-31 10:30 UTC (permalink / raw)
  To: martin rudalics; +Cc: 68081, Eli Zaretskii

martin rudalics <rudalics@gmx.at> writes:

> So for Emacs-29 I would recommend to add to the Elisp manual, where it
> says that "Each condition is passed to ‘buffer-match-p’ ...", that using
> 'derived-mode' and 'major-mode' as conditions might not work if
> 'display-buffer' is called before the major mode of the buffer has been
> established.  And I would add a similar remark to the description of
> 'buffer-match-p' itself.

I agree, Info mode is only one of the affected modes, compilation-mode
also shows this behaviour and others might as well.

-- 
German Pacenza





^ permalink raw reply	[flat|nested] 26+ messages in thread

* bug#68081: 30.0.50; derived-mode and display-buffer-alist
  2023-12-31 10:30             ` German Pacenza
@ 2024-01-01  9:38               ` martin rudalics via Bug reports for GNU Emacs, the Swiss army knife of text editors
  2024-01-01 12:17                 ` Eli Zaretskii
  0 siblings, 1 reply; 26+ messages in thread
From: martin rudalics via Bug reports for GNU Emacs, the Swiss army knife of text editors @ 2024-01-01  9:38 UTC (permalink / raw)
  To: German Pacenza; +Cc: 68081, Eli Zaretskii

 > I agree, Info mode is only one of the affected modes, compilation-mode
 > also shows this behaviour and others might as well.

And these cannot be reasonably fixed all by moving the -mode calls in
front of the 'display-buffer' call in a consistent manner.

The original problem is with 'window-normalize-buffer-to-switch-to'.  It
should never be called in non-interactive use, so 'info' would have been
forced to provide a buffer as argument and not just a name.

I'm afraid that this inconsistency makes 'buffer-match-p' pretty useless
for 'pop-to-buffer' and its like.  A strong warning seems appropriate.

martin





^ permalink raw reply	[flat|nested] 26+ messages in thread

* bug#68081: 30.0.50; derived-mode and display-buffer-alist
  2024-01-01  9:38               ` martin rudalics via Bug reports for GNU Emacs, the Swiss army knife of text editors
@ 2024-01-01 12:17                 ` Eli Zaretskii
  2024-01-02 10:46                   ` martin rudalics via Bug reports for GNU Emacs, the Swiss army knife of text editors
  2024-01-03 10:35                   ` martin rudalics via Bug reports for GNU Emacs, the Swiss army knife of text editors
  0 siblings, 2 replies; 26+ messages in thread
From: Eli Zaretskii @ 2024-01-01 12:17 UTC (permalink / raw)
  To: martin rudalics; +Cc: germanp82, 68081

> Date: Mon, 1 Jan 2024 10:38:09 +0100
> Cc: Eli Zaretskii <eliz@gnu.org>, 68081@debbugs.gnu.org
> From: martin rudalics <rudalics@gmx.at>
> 
>  > I agree, Info mode is only one of the affected modes, compilation-mode
>  > also shows this behaviour and others might as well.
> 
> And these cannot be reasonably fixed all by moving the -mode calls in
> front of the 'display-buffer' call in a consistent manner.
> 
> The original problem is with 'window-normalize-buffer-to-switch-to'.  It
> should never be called in non-interactive use, so 'info' would have been
> forced to provide a buffer as argument and not just a name.
> 
> I'm afraid that this inconsistency makes 'buffer-match-p' pretty useless
> for 'pop-to-buffer' and its like.  A strong warning seems appropriate.

Thanks, but now I wonder whether we should revert the change which
made display-buffer call buffer-match-p.  It sounds like fixing the
breakage in any other way is either hard or fragile or nigh
impossible.





^ permalink raw reply	[flat|nested] 26+ messages in thread

* bug#68081: 30.0.50; derived-mode and display-buffer-alist
  2024-01-01 12:17                 ` Eli Zaretskii
@ 2024-01-02 10:46                   ` martin rudalics via Bug reports for GNU Emacs, the Swiss army knife of text editors
  2024-01-03 11:59                     ` Eli Zaretskii
  2024-01-03 10:35                   ` martin rudalics via Bug reports for GNU Emacs, the Swiss army knife of text editors
  1 sibling, 1 reply; 26+ messages in thread
From: martin rudalics via Bug reports for GNU Emacs, the Swiss army knife of text editors @ 2024-01-02 10:46 UTC (permalink / raw)
  To: Eli Zaretskii; +Cc: germanp82, 68081

 > Thanks, but now I wonder whether we should revert the change which
 > made display-buffer call buffer-match-p.

The problem is not with 'display-buffer'.  The problem is with
'pop-to-buffer' and 'switch-to-buffer'.  What would you tell people who
already customized 'display-buffer-alist' and are happy with how it
works with 'display-buffer'?

 > It sounds like fixing the
 > breakage in any other way is either hard or fragile or nigh
 > impossible.

'info' initially used 'switch-to-buffer'

     (if (get-buffer "*info*")
	(switch-to-buffer "*info*")
       (Info-directory))))

Later it called 'pop-to-buffer' as

     (if (get-buffer "*info*")
	(pop-to-buffer "*info*")
       (Info-directory))))

The breakage occurred when it started to call

   (pop-to-buffer "*info*")

without checking whether that buffer exists.  It sometimes backfires to
use a feature meant for interactive use (like 'pop-to-buffer' creating
its buffer autonomously) in non-interactive calls.  Sometimes it happens
decades after that feature was misused.

BTW note that C-h F ignores _any_ efforts you put into customizing
'display-buffer-alist' like say

(customize-set-variable
  'display-buffer-alist
  '(("\\*info\\*" display-buffer-pop-up-window (inhibit-same-window . t))))

So there is worse than C-h i.

martin





^ permalink raw reply	[flat|nested] 26+ messages in thread

* bug#68081: 30.0.50; derived-mode and display-buffer-alist
  2024-01-01 12:17                 ` Eli Zaretskii
  2024-01-02 10:46                   ` martin rudalics via Bug reports for GNU Emacs, the Swiss army knife of text editors
@ 2024-01-03 10:35                   ` martin rudalics via Bug reports for GNU Emacs, the Swiss army knife of text editors
  2024-01-03 13:22                     ` Eli Zaretskii
  2024-01-06  9:50                     ` Eli Zaretskii
  1 sibling, 2 replies; 26+ messages in thread
From: martin rudalics via Bug reports for GNU Emacs, the Swiss army knife of text editors @ 2024-01-03 10:35 UTC (permalink / raw)
  To: Eli Zaretskii; +Cc: germanp82, 68081

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

Attached find a patch for info.el on master that should handle all cases
I found in a fairly sane way.  Please test it with the info commands you
know of.

I've not eliminated things like

   (save-window-excursion
     (or (derived-mode-p 'Info-mode) (info-pop-to-buffer))
     (Info-goto-node (Info-extract-pointer "next"))))

While these will hardly DTRT with multiple frames and occasionally
produce some flickering here, they allow to navigate info buffers that
are not displayed (however useful that is).

As for compilation modes, please provide an example of how they
misbehave.

Thanks, martin

[-- Attachment #2: info.el.diff --]
[-- Type: text/x-patch, Size: 5334 bytes --]

diff --git a/lisp/info.el b/lisp/info.el
index 51e9eb72edf..6f69af99958 100644
--- a/lisp/info.el
+++ b/lisp/info.el
@@ -732,8 +732,53 @@ info-other-window
 		    (read-file-name "Info file name: " nil nil t))
 		(if (numberp current-prefix-arg)
 		    (format "*info*<%s>" current-prefix-arg))))
-  (info-setup file-or-node
-	      (switch-to-buffer-other-window (or buffer "*info*"))))
+  (info-pop-to-buffer file-or-node buffer t))
+
+(defun info-pop-to-buffer (&optional file-or-node buffer-or-name other-window)
+  "Put Info node FILE-OR-NODE in specified buffer and display it.
+Optional argument FILE-OR-NODE is as for `info'.
+
+If the optional argument BUFFER-OR-NAME is a buffer, use that
+buffer.  If it is a string, use that string as the name of the
+buffer, creating it if it does not exist.  Otherwise, use a
+buffer with the name `*info*', creating it if it does not exist.
+
+Optional argument OTHER-WINDOW nil means to prefer the selected
+window.  OTHER-WINDOW non-nil means to prefer another window.
+Select the window used, if it has been made."
+  (let ((buffer (cond
+		 ((bufferp buffer-or-name)
+		  buffer-or-name)
+		 ((stringp buffer-or-name)
+		  (get-buffer-create buffer-or-name))
+		 (t
+		  (get-buffer-create "*info*")))))
+    (with-current-buffer buffer
+      (unless (derived-mode-p 'Info-mode)
+	(Info-mode)))
+
+    (let* ((window
+	    (display-buffer buffer
+			    (if other-window
+				'(nil (inhibit-same-window . t))
+			      '(display-buffer-same-window)))))
+      (with-current-buffer buffer
+	(if file-or-node
+	    ;; If argument already contains parentheses, don't add another set
+	    ;; since the argument will then be parsed improperly.  This also
+	    ;; has the added benefit of allowing node names to be included
+	    ;; following the parenthesized filename.
+	    (Info-goto-node
+	     (if (and (stringp file-or-node) (string-match "(.*)" file-or-node))
+		 file-or-node
+               (concat "(" file-or-node ")")))
+	  (if (and (zerop (buffer-size))
+		   (null Info-history))
+	      ;; If we just created the Info buffer, go to the directory.
+	      (Info-directory))))
+
+      (when window
+	(select-window window)))))
 
 ;;;###autoload (put 'info 'info-file (purecopy "emacs"))
 ;;;###autoload
@@ -768,8 +813,8 @@ info
     ;; of names that might have been wrapped (in emails, etc.).
     (setq file-or-node
           (string-replace "\n" " " file-or-node)))
-  (info-setup file-or-node
-	      (pop-to-buffer-same-window (or buffer "*info*"))))
+
+  (info-pop-to-buffer file-or-node buffer))
 
 (defun info-setup (file-or-node buffer)
   "Display Info node FILE-OR-NODE in BUFFER."
@@ -789,6 +834,8 @@ info-setup
 	;; If we just created the Info buffer, go to the directory.
 	(Info-directory))))
 
+(make-obsolete 'info-setup "use `info-pop-to-buffer' instead" "30.1")
+
 ;;;###autoload
 (defun info-emacs-manual ()
   "Display the Emacs manual in Info mode."
@@ -927,7 +974,7 @@ Info-find-node
   (setq nodename (info--node-canonicalize-whitespace nodename))
   (setq filename (Info-find-file filename noerror))
   ;; Go into Info buffer.
-  (or (derived-mode-p 'Info-mode) (switch-to-buffer "*info*"))
+  (or (derived-mode-p 'Info-mode) (info-pop-to-buffer filename))
   ;; Record the node we are leaving, if we were in one.
   (and (not no-going-back)
        Info-current-file
@@ -957,7 +1004,7 @@ Info-revert-find-node
   "Go to an Info node FILENAME and NODENAME, re-reading disk contents.
 When *info* is already displaying FILENAME and NODENAME, the window position
 is preserved, if possible."
-  (or (derived-mode-p 'Info-mode) (switch-to-buffer "*info*"))
+  (or (derived-mode-p 'Info-mode) (info-pop-to-buffer filename))
   (let ((old-filename Info-current-file)
 	(old-nodename Info-current-node)
 	(window-selected (eq (selected-window) (get-buffer-window)))
@@ -2290,7 +2337,7 @@ Info-next
   (interactive nil Info-mode)
   ;; In case another window is currently selected
   (save-window-excursion
-    (or (derived-mode-p 'Info-mode) (switch-to-buffer "*info*"))
+    (or (derived-mode-p 'Info-mode) (info-pop-to-buffer))
     (Info-goto-node (Info-extract-pointer "next"))))
 
 (defun Info-prev ()
@@ -2299,7 +2346,7 @@ Info-prev
   (interactive nil Info-mode)
   ;; In case another window is currently selected
   (save-window-excursion
-    (or (derived-mode-p 'Info-mode) (switch-to-buffer "*info*"))
+    (or (derived-mode-p 'Info-mode) (info-pop-to-buffer))
     (Info-goto-node (Info-extract-pointer "prev[ious]*" "previous"))))
 
 (defun Info-up (&optional same-file)
@@ -2308,7 +2355,7 @@ Info-up
   (interactive nil Info-mode)
   ;; In case another window is currently selected
   (save-window-excursion
-    (or (derived-mode-p 'Info-mode) (switch-to-buffer "*info*"))
+    (or (derived-mode-p 'Info-mode) (info-pop-to-buffer))
     (let ((old-node Info-current-node)
 	  (old-file Info-current-file)
 	  (node (Info-extract-pointer "up")) p)
@@ -5485,7 +5532,7 @@ info-display-manual
                 (raise-frame (window-frame window))
                 (select-frame-set-input-focus (window-frame window))
                 (select-window window))
-	    (switch-to-buffer found)))
+	    (info-pop-to-buffer nil found)))
       ;; The buffer doesn't exist; create it.
       (info-initialize)
       (info (Info-find-file manual)

^ permalink raw reply related	[flat|nested] 26+ messages in thread

* bug#68081: 30.0.50; derived-mode and display-buffer-alist
  2024-01-02 10:46                   ` martin rudalics via Bug reports for GNU Emacs, the Swiss army knife of text editors
@ 2024-01-03 11:59                     ` Eli Zaretskii
  2024-01-04 10:21                       ` martin rudalics via Bug reports for GNU Emacs, the Swiss army knife of text editors
  0 siblings, 1 reply; 26+ messages in thread
From: Eli Zaretskii @ 2024-01-03 11:59 UTC (permalink / raw)
  To: martin rudalics; +Cc: germanp82, 68081

> Date: Tue, 2 Jan 2024 11:46:26 +0100
> Cc: germanp82@hotmail.com, 68081@debbugs.gnu.org
> From: martin rudalics <rudalics@gmx.at>
> 
>  > Thanks, but now I wonder whether we should revert the change which
>  > made display-buffer call buffer-match-p.
> 
> The problem is not with 'display-buffer'.  The problem is with
> 'pop-to-buffer' and 'switch-to-buffer'.  What would you tell people who
> already customized 'display-buffer-alist' and are happy with how it
> works with 'display-buffer'?
> 
>  > It sounds like fixing the
>  > breakage in any other way is either hard or fragile or nigh
>  > impossible.
> 
> 'info' initially used 'switch-to-buffer'
> 
>      (if (get-buffer "*info*")
> 	(switch-to-buffer "*info*")
>        (Info-directory))))
> 
> Later it called 'pop-to-buffer' as
> 
>      (if (get-buffer "*info*")
> 	(pop-to-buffer "*info*")
>        (Info-directory))))
> 
> The breakage occurred when it started to call
> 
>    (pop-to-buffer "*info*")
> 
> without checking whether that buffer exists.  It sometimes backfires to
> use a feature meant for interactive use (like 'pop-to-buffer' creating
> its buffer autonomously) in non-interactive calls.  Sometimes it happens
> decades after that feature was misused.

Do other places that are affected by the same change do the same
mistake of unconditionally calling pop-to-buffer?





^ permalink raw reply	[flat|nested] 26+ messages in thread

* bug#68081: 30.0.50; derived-mode and display-buffer-alist
  2024-01-03 10:35                   ` martin rudalics via Bug reports for GNU Emacs, the Swiss army knife of text editors
@ 2024-01-03 13:22                     ` Eli Zaretskii
  2024-01-04 10:21                       ` martin rudalics via Bug reports for GNU Emacs, the Swiss army knife of text editors
  2024-01-06  9:50                     ` Eli Zaretskii
  1 sibling, 1 reply; 26+ messages in thread
From: Eli Zaretskii @ 2024-01-03 13:22 UTC (permalink / raw)
  To: martin rudalics; +Cc: germanp82, 68081

> Date: Wed, 3 Jan 2024 11:35:25 +0100
> Cc: germanp82@hotmail.com, 68081@debbugs.gnu.org
> From: martin rudalics <rudalics@gmx.at>
> 
> Attached find a patch for info.el on master that should handle all cases
> I found in a fairly sane way.  Please test it with the info commands you
> know of.

Thanks.  This is a significant change, so probably not suitable for
the release branch.  Do you think the simple change of using the old

     (if (get-buffer "*info*")
	(pop-to-buffer "*info*")
       (Info-directory))))

is okay for installing on the release branch, or would you recommend
to leave the release branch without a fix and only fix this on master?





^ permalink raw reply	[flat|nested] 26+ messages in thread

* bug#68081: 30.0.50; derived-mode and display-buffer-alist
  2024-01-03 11:59                     ` Eli Zaretskii
@ 2024-01-04 10:21                       ` martin rudalics via Bug reports for GNU Emacs, the Swiss army knife of text editors
  2024-01-04 10:39                         ` Eli Zaretskii
  0 siblings, 1 reply; 26+ messages in thread
From: martin rudalics via Bug reports for GNU Emacs, the Swiss army knife of text editors @ 2024-01-04 10:21 UTC (permalink / raw)
  To: Eli Zaretskii; +Cc: germanp82, 68081

 >> 'info' initially used 'switch-to-buffer'
 >>
 >>       (if (get-buffer "*info*")
 >> 	(switch-to-buffer "*info*")
 >>         (Info-directory))))
 >>
 >> Later it called 'pop-to-buffer' as
 >>
 >>       (if (get-buffer "*info*")
 >> 	(pop-to-buffer "*info*")
 >>         (Info-directory))))
 >>
 >> The breakage occurred when it started to call
 >>
 >>     (pop-to-buffer "*info*")
 >>
 >> without checking whether that buffer exists.  It sometimes backfires to
 >> use a feature meant for interactive use (like 'pop-to-buffer' creating
 >> its buffer autonomously) in non-interactive calls.  Sometimes it happens
 >> decades after that feature was misused.
 >
 > Do other places that are affected by the same change do the same
 > mistake of unconditionally calling pop-to-buffer?

Maybe my formulation was not clear.  Basically, all calls of 'info'
without first argument are affected by the change.  But note that the
"callers" do not call 'pop-to-buffer' - 'info' does that.  And the
problem became virulent only when 'buffer-match-p' started to ask for
the buffer's derived mode.  With other words: Emacs versions before that
change were prepared for the eventual use of 'buffer-match-p'.  Later
versions were not.

The real crux is that non-interactively, 'info' displays the buffer at
all.  This considerably confuses programmers.  Take this (arbitrarily
taken) snippet from 'prolog-build-info-alist' and note how the author
tries to override the buffer display behavior of 'info' with the help of
two window excursions.

           (save-excursion
             (save-window-excursion
               ;; select any window but the minibuffer (as we cannot switch
               ;; buffers in minibuffer window.
               ;; I am not sure this is the right/best way
               (if (active-minibuffer-window)  ; nil if none active
                   (select-window (next-window)))
               ;; Do this after going away from minibuffer window
               (save-window-excursion
                 (info))
               (Info-goto-node prolog-info-predicate-index)

Or a similar snippet from 'cperl-info-buffer':

       (save-window-excursion
	;; Get Info running
	(require 'info)
	(cond (oldbuf
	       (set-buffer oldbuf)
	       (rename-buffer "*info-perl-tmp*")))
	(save-window-excursion
	  (info))
	(Info-find-node cperl-info-page (if type "perlvar" "perlfunc"))

Now if a user does

(customize-set-variable
  'display-buffer-alist
  '(("\\*info\\*" display-buffer-pop-up-frame)))

to display 'info' in a separate frame, restoring the previous window
configuration in these cases will not restore anything.  All these
usually "work" by virtue of one fact: That 'display-buffer' by default
reuses a window that shows the info buffer already and that the node
eventually found will be displayed in that window regardless of which
frame it is on.  All this is fragile though and will fail as soon as a
users starts to more thoroughly customize 'display-buffer-alist'.

The idea that info inherently works on displayed buffers only is also a
problem for info itself: 'Info-next' does

   (save-window-excursion
     (or (derived-mode-p 'Info-mode) (switch-to-buffer "*info*"))
     (Info-goto-node (Info-extract-pointer "next"))))

If you call it with the info window not selected, this first displays
*info* in the selected window and goes to the next node there.  Then it
shows the original buffer in the selected window again in the hope that
the effect shows up in any other window that displays *info*.  I have no
idea why info does not just work on the info buffer here as also Chong's
change log entry

     * info.el (Info-next, Info-prev, Info-up): Select info buffer, in
             case the user clicks on the link while another window is selected.

would indicate.

martin





^ permalink raw reply	[flat|nested] 26+ messages in thread

* bug#68081: 30.0.50; derived-mode and display-buffer-alist
  2024-01-03 13:22                     ` Eli Zaretskii
@ 2024-01-04 10:21                       ` martin rudalics via Bug reports for GNU Emacs, the Swiss army knife of text editors
  0 siblings, 0 replies; 26+ messages in thread
From: martin rudalics via Bug reports for GNU Emacs, the Swiss army knife of text editors @ 2024-01-04 10:21 UTC (permalink / raw)
  To: Eli Zaretskii; +Cc: germanp82, 68081

 > Thanks.  This is a significant change, so probably not suitable for
 > the release branch.  Do you think the simple change of using the old
 >
 >       (if (get-buffer "*info*")
 > 	(pop-to-buffer "*info*")
 >         (Info-directory))))
 >
 > is okay for installing on the release branch,

Where would we do that?  The context for that snippet has vanished long
ago and we need a buffer we can pass to 'info-setup'.

 > or would you recommend
 > to leave the release branch without a fix and only fix this on master?

Only fix this on master.  The warning for 'buffer-match-p' would be
needed for both - release branch and master - anyway.  Who knows how
many cases similar to this we have.

martin





^ permalink raw reply	[flat|nested] 26+ messages in thread

* bug#68081: 30.0.50; derived-mode and display-buffer-alist
  2024-01-04 10:21                       ` martin rudalics via Bug reports for GNU Emacs, the Swiss army knife of text editors
@ 2024-01-04 10:39                         ` Eli Zaretskii
  2024-01-05  9:22                           ` martin rudalics via Bug reports for GNU Emacs, the Swiss army knife of text editors
  0 siblings, 1 reply; 26+ messages in thread
From: Eli Zaretskii @ 2024-01-04 10:39 UTC (permalink / raw)
  To: martin rudalics; +Cc: germanp82, 68081

> Date: Thu, 4 Jan 2024 11:21:17 +0100
> Cc: germanp82@hotmail.com, 68081@debbugs.gnu.org
> From: martin rudalics <rudalics@gmx.at>
> 
>  >> 'info' initially used 'switch-to-buffer'
>  >>
>  >>       (if (get-buffer "*info*")
>  >> 	(switch-to-buffer "*info*")
>  >>         (Info-directory))))
>  >>
>  >> Later it called 'pop-to-buffer' as
>  >>
>  >>       (if (get-buffer "*info*")
>  >> 	(pop-to-buffer "*info*")
>  >>         (Info-directory))))
>  >>
>  >> The breakage occurred when it started to call
>  >>
>  >>     (pop-to-buffer "*info*")
>  >>
>  >> without checking whether that buffer exists.  It sometimes backfires to
>  >> use a feature meant for interactive use (like 'pop-to-buffer' creating
>  >> its buffer autonomously) in non-interactive calls.  Sometimes it happens
>  >> decades after that feature was misused.
>  >
>  > Do other places that are affected by the same change do the same
>  > mistake of unconditionally calling pop-to-buffer?
> 
> Maybe my formulation was not clear.  Basically, all calls of 'info'
> without first argument are affected by the change.

Thanks, but I was asking about callers of pop-to-buffer other than
'info'.  German said in
https://debbugs.gnu.org/cgi/bugreport.cgi?bug=68081#26 that other
callers, in addition to 'info' are also affected.





^ permalink raw reply	[flat|nested] 26+ messages in thread

* bug#68081: 30.0.50; derived-mode and display-buffer-alist
  2024-01-04 10:39                         ` Eli Zaretskii
@ 2024-01-05  9:22                           ` martin rudalics via Bug reports for GNU Emacs, the Swiss army knife of text editors
  2024-01-05 10:18                             ` German Pacenza
  0 siblings, 1 reply; 26+ messages in thread
From: martin rudalics via Bug reports for GNU Emacs, the Swiss army knife of text editors @ 2024-01-05  9:22 UTC (permalink / raw)
  To: Eli Zaretskii; +Cc: germanp82, 68081

 > Thanks, but I was asking about callers of pop-to-buffer other than
 > 'info'.  German said in
 > https://debbugs.gnu.org/cgi/bugreport.cgi?bug=68081#26 that other
 > callers, in addition to 'info' are also affected.

He mentioned 'compilation-mode' but I need an example for reproducing
the bug.  The only occurrence of 'pop-to-buffer' in compile.el is in
'compilation-goto-locus' and I don't think the problem happens there.

martin







^ permalink raw reply	[flat|nested] 26+ messages in thread

* bug#68081: 30.0.50; derived-mode and display-buffer-alist
  2024-01-05  9:22                           ` martin rudalics via Bug reports for GNU Emacs, the Swiss army knife of text editors
@ 2024-01-05 10:18                             ` German Pacenza
  2024-01-06  8:56                               ` martin rudalics via Bug reports for GNU Emacs, the Swiss army knife of text editors
  0 siblings, 1 reply; 26+ messages in thread
From: German Pacenza @ 2024-01-05 10:18 UTC (permalink / raw)
  To: 68081; +Cc: rudalics, eliz


> He mentioned 'compilation-mode' but I need an example for reproducing
> the bug.  The only occurrence of 'pop-to-buffer' in compile.el is in
> 'compilation-goto-locus' and I don't think the problem happens there.

(setq display-buffer-alist
    '(((derived-mode . compilation-mode)
       (display-buffer-in-side-window)
       (side . top))))

Run 'vc-update' command which creates a compilation-mode buffer.

-- 
German Pacenza





^ permalink raw reply	[flat|nested] 26+ messages in thread

* bug#68081: 30.0.50; derived-mode and display-buffer-alist
  2024-01-05 10:18                             ` German Pacenza
@ 2024-01-06  8:56                               ` martin rudalics via Bug reports for GNU Emacs, the Swiss army knife of text editors
  2024-01-06 10:35                                 ` German Pacenza
  0 siblings, 1 reply; 26+ messages in thread
From: martin rudalics via Bug reports for GNU Emacs, the Swiss army knife of text editors @ 2024-01-06  8:56 UTC (permalink / raw)
  To: germanp82, 68081; +Cc: eliz

 > (setq display-buffer-alist
 >      '(((derived-mode . compilation-mode)
 >         (display-buffer-in-side-window)
 >         (side . top))))
 >
 > Run 'vc-update' command which creates a compilation-mode buffer.

Thanks, but this doesn't create a compilation-mode buffer here.
'vc-log-internal-common' has these lines

     ;; Display after setting up major-mode, so display-buffer-alist can know
     ;; the major-mode.
     (pop-to-buffer buffer)

so vc.el seems to be aware of the problem.  Can you please spot the
'pop-to-buffer' call responsible for the misbehavior in your scenario?

Thanks, martin





^ permalink raw reply	[flat|nested] 26+ messages in thread

* bug#68081: 30.0.50; derived-mode and display-buffer-alist
  2024-01-03 10:35                   ` martin rudalics via Bug reports for GNU Emacs, the Swiss army knife of text editors
  2024-01-03 13:22                     ` Eli Zaretskii
@ 2024-01-06  9:50                     ` Eli Zaretskii
  1 sibling, 0 replies; 26+ messages in thread
From: Eli Zaretskii @ 2024-01-06  9:50 UTC (permalink / raw)
  To: martin rudalics; +Cc: germanp82, 68081

> Date: Wed, 3 Jan 2024 11:35:25 +0100
> Cc: germanp82@hotmail.com, 68081@debbugs.gnu.org
> From: martin rudalics <rudalics@gmx.at>
> 
> Attached find a patch for info.el on master that should handle all cases
> I found in a fairly sane way.  Please test it with the info commands you
> know of.

Thanks, installed on master.





^ permalink raw reply	[flat|nested] 26+ messages in thread

* bug#68081: 30.0.50; derived-mode and display-buffer-alist
  2024-01-06  8:56                               ` martin rudalics via Bug reports for GNU Emacs, the Swiss army knife of text editors
@ 2024-01-06 10:35                                 ` German Pacenza
  2024-01-06 11:39                                   ` Eli Zaretskii
  0 siblings, 1 reply; 26+ messages in thread
From: German Pacenza @ 2024-01-06 10:35 UTC (permalink / raw)
  To: martin rudalics; +Cc: 68081, eliz

martin rudalics <rudalics@gmx.at> writes:

> Thanks, but this doesn't create a compilation-mode buffer here.

On second inspection, you are right. The buffer is created in
fundamental-mode and then converted in compilation-mode. Commands
like 'compile' that create buffers in compilation-mode work as expected.
So I think there is nothing to fix here.

Thanks

-- 
German Pacenza





^ permalink raw reply	[flat|nested] 26+ messages in thread

* bug#68081: 30.0.50; derived-mode and display-buffer-alist
  2024-01-06 10:35                                 ` German Pacenza
@ 2024-01-06 11:39                                   ` Eli Zaretskii
  2024-01-06 11:55                                     ` German Pacenza
  2024-01-13  9:30                                     ` Eli Zaretskii
  0 siblings, 2 replies; 26+ messages in thread
From: Eli Zaretskii @ 2024-01-06 11:39 UTC (permalink / raw)
  To: German Pacenza; +Cc: 68081, rudalics

> From: German Pacenza <germanp82@hotmail.com>
> Cc: martin rudalics via Bug reports for GNU "Emacs," the Swiss army knife of
>  text editors <bug-gnu-emacs@gnu.org>,  Eli Zaretskii <eliz@gnu.org>,
>   68081@debbugs.gnu.org
> Date: Sat, 06 Jan 2024 07:35:33 -0300
> 
> martin rudalics <rudalics@gmx.at> writes:
> 
> > Thanks, but this doesn't create a compilation-mode buffer here.
> 
> On second inspection, you are right. The buffer is created in
> fundamental-mode and then converted in compilation-mode. Commands
> like 'compile' that create buffers in compilation-mode work as expected.
> So I think there is nothing to fix here.

Thanks.

is there anything else to do here, or can we now close this bug?





^ permalink raw reply	[flat|nested] 26+ messages in thread

* bug#68081: 30.0.50; derived-mode and display-buffer-alist
  2024-01-06 11:39                                   ` Eli Zaretskii
@ 2024-01-06 11:55                                     ` German Pacenza
  2024-01-06 12:01                                       ` Eli Zaretskii
  2024-01-13  9:30                                     ` Eli Zaretskii
  1 sibling, 1 reply; 26+ messages in thread
From: German Pacenza @ 2024-01-06 11:55 UTC (permalink / raw)
  To: Eli Zaretskii; +Cc: 68081, rudalics

Eli Zaretskii <eliz@gnu.org> writes:

> is there anything else to do here, or can we now close this bug?

Everything looks correct.

Thanks

-- 
German Pacenza





^ permalink raw reply	[flat|nested] 26+ messages in thread

* bug#68081: 30.0.50; derived-mode and display-buffer-alist
  2024-01-06 11:55                                     ` German Pacenza
@ 2024-01-06 12:01                                       ` Eli Zaretskii
  0 siblings, 0 replies; 26+ messages in thread
From: Eli Zaretskii @ 2024-01-06 12:01 UTC (permalink / raw)
  To: German Pacenza; +Cc: 68081-done, rudalics

> From: German Pacenza <germanp82@hotmail.com>
> Cc: 68081@debbugs.gnu.org,  rudalics@gmx.at
> Date: Sat, 06 Jan 2024 08:55:01 -0300
> 
> Eli Zaretskii <eliz@gnu.org> writes:
> 
> > is there anything else to do here, or can we now close this bug?
> 
> Everything looks correct.

Thanks, closing.





^ permalink raw reply	[flat|nested] 26+ messages in thread

* bug#68081: 30.0.50; derived-mode and display-buffer-alist
  2024-01-06 11:39                                   ` Eli Zaretskii
  2024-01-06 11:55                                     ` German Pacenza
@ 2024-01-13  9:30                                     ` Eli Zaretskii
  1 sibling, 0 replies; 26+ messages in thread
From: Eli Zaretskii @ 2024-01-13  9:30 UTC (permalink / raw)
  To: germanp82; +Cc: 68081-done, rudalics

> Cc: 68081@debbugs.gnu.org, rudalics@gmx.at
> Date: Sat, 06 Jan 2024 13:39:49 +0200
> From: Eli Zaretskii <eliz@gnu.org>
> 
> > From: German Pacenza <germanp82@hotmail.com>
> > Cc: martin rudalics via Bug reports for GNU "Emacs," the Swiss army knife of
> >  text editors <bug-gnu-emacs@gnu.org>,  Eli Zaretskii <eliz@gnu.org>,
> >   68081@debbugs.gnu.org
> > Date: Sat, 06 Jan 2024 07:35:33 -0300
> > 
> > martin rudalics <rudalics@gmx.at> writes:
> > 
> > > Thanks, but this doesn't create a compilation-mode buffer here.
> > 
> > On second inspection, you are right. The buffer is created in
> > fundamental-mode and then converted in compilation-mode. Commands
> > like 'compile' that create buffers in compilation-mode work as expected.
> > So I think there is nothing to fix here.
> 
> Thanks.
> 
> is there anything else to do here, or can we now close this bug?

No further comments, so I'm no closing this bug.





^ permalink raw reply	[flat|nested] 26+ messages in thread

end of thread, other threads:[~2024-01-13  9:30 UTC | newest]

Thread overview: 26+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2023-12-28 13:26 bug#68081: 30.0.50; derived-mode and display-buffer-alist German Pacenza
2023-12-28 14:07 ` Eli Zaretskii
2023-12-29  9:02   ` martin rudalics via Bug reports for GNU Emacs, the Swiss army knife of text editors
2023-12-29 11:41     ` Eli Zaretskii
2023-12-30  9:30       ` martin rudalics via Bug reports for GNU Emacs, the Swiss army knife of text editors
2023-12-30 10:12         ` Eli Zaretskii
2023-12-31  8:57           ` martin rudalics via Bug reports for GNU Emacs, the Swiss army knife of text editors
2023-12-31 10:30             ` German Pacenza
2024-01-01  9:38               ` martin rudalics via Bug reports for GNU Emacs, the Swiss army knife of text editors
2024-01-01 12:17                 ` Eli Zaretskii
2024-01-02 10:46                   ` martin rudalics via Bug reports for GNU Emacs, the Swiss army knife of text editors
2024-01-03 11:59                     ` Eli Zaretskii
2024-01-04 10:21                       ` martin rudalics via Bug reports for GNU Emacs, the Swiss army knife of text editors
2024-01-04 10:39                         ` Eli Zaretskii
2024-01-05  9:22                           ` martin rudalics via Bug reports for GNU Emacs, the Swiss army knife of text editors
2024-01-05 10:18                             ` German Pacenza
2024-01-06  8:56                               ` martin rudalics via Bug reports for GNU Emacs, the Swiss army knife of text editors
2024-01-06 10:35                                 ` German Pacenza
2024-01-06 11:39                                   ` Eli Zaretskii
2024-01-06 11:55                                     ` German Pacenza
2024-01-06 12:01                                       ` Eli Zaretskii
2024-01-13  9:30                                     ` Eli Zaretskii
2024-01-03 10:35                   ` martin rudalics via Bug reports for GNU Emacs, the Swiss army knife of text editors
2024-01-03 13:22                     ` Eli Zaretskii
2024-01-04 10:21                       ` martin rudalics via Bug reports for GNU Emacs, the Swiss army knife of text editors
2024-01-06  9:50                     ` Eli Zaretskii

Code repositories for project(s) associated with this public inbox

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

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).