Subject: bug#49587: Where are links in describe-symbol minor-mode?

From: Juri Linkov <[email-masked]>
Date: Sun, 17 Jul 2022 21:30:37 +0300

>> Another problem is that with 'C-h o' the same Help buffer is displayed twice
>> that breaks some window-displaying commands.
>
> I'm not sure what can be done about that -- the `C-h o' function
> basically just calls `C-h f' and `C-h v'.  But what setups do they break
> in practice?

With a setup like this

  (push `("\\*Help\\*" display-buffer-same-window
          (inhibit-same-window . nil))
        display-buffer-alist)

  M-x windmove-display-left RET
  C-h o dired-hide-details-mode RET

the *Help* buffer is displayed in two windows.
This is because of these lines in display-buffer-override-next-command:

                       ;; Reset display-buffer-overriding-action
                       ;; after the first display-buffer action (bug#39722).
                       (funcall clearfun)

In bug#39722 the same buffer was displayed in two tabs,
so now display-buffer-overriding-action affects only
the next display, and once the buffer is displayed,
it resets the specified location of the window to the
default location that is configured to the same window.

Does `C-h o' really need to display the same buffer twice?

BTW, I noticed that the generated docstring of define-minor-mode
refers back to the help of both function/variable, whereas it should
refer only to the variable:

```
diff --git a/lisp/emacs-lisp/easy-mmode.el b/lisp/emacs-lisp/easy-mmode.el
index c3a4e9fc7a..ab91c2bc37 100644
--- a/lisp/emacs-lisp/easy-mmode.el
+++ b/lisp/emacs-lisp/easy-mmode.el
@@ -91,7 +91,7 @@ easy-mmode--arg-docstring
 Disable the mode if ARG is a negative number.
 
 To check whether the minor mode is enabled in the current buffer,
-evaluate `%s'.
+evaluate the variable `%s'.
 
 The mode's hook is called both when the mode is enabled and when
 it is disabled.")
```