]> git.eshelyaron.com Git - emacs.git/commitdiff
Allow using xref buttons in non-*Help* buffers
authorStephen Berman <stephen.berman@gmx.net>
Mon, 6 Jun 2022 14:11:50 +0000 (16:11 +0200)
committerLars Ingebrigtsen <larsi@gnus.org>
Mon, 6 Jun 2022 14:12:39 +0000 (16:12 +0200)
* lisp/help-mode.el (help-buffer): Allow using the xref buttons in
non-*Help* buffers (bug#8147) (but display the result in a *Help*
buffer).

lisp/help-mode.el
test/lisp/help-mode-tests.el

index 2fcb8b9f3e60a770e518296173c9f3910292798a..a50524253ba95cc1897317995f4acfd89abc38ca 100644 (file)
@@ -515,17 +515,16 @@ restore it properly when going back."
 ;;;###autoload
 (defun help-buffer ()
   "Return the name of a buffer for inserting help.
-If `help-xref-following' is non-nil, this is the name of the
-current buffer.  Signal an error if this buffer is not derived
-from `help-mode'.
+If `help-xref-following' is non-nil and the current buffer is
+derived from `help-mode', this is the name of the current buffer.
+
 Otherwise, return \"*Help*\", creating a buffer with that name if
 it does not already exist."
-  (buffer-name                         ;for with-output-to-temp-buffer
-   (if (not help-xref-following)
-       (get-buffer-create "*Help*")
-     (unless (derived-mode-p 'help-mode)
-       (error "Current buffer is not in Help mode"))
-     (current-buffer))))
+  (buffer-name                         ;for with-output-to-temp-buffer
+   (if (and help-xref-following
+            (derived-mode-p 'help-mode))
+       (current-buffer)
+     (get-buffer-create "*Help*"))))
 
 (defvar describe-symbol-backends
   `((nil ,#'fboundp ,(lambda (s _b _f) (describe-function s)))
index b5bdf6b8d49b43185f9f3a081585c5785fb510a3..04241f31383a4ac66cea3d3ff7a687b92b54354f 100644 (file)
       (should (equal (buffer-name (current-buffer))
                      (help-buffer))))))
 
-(ert-deftest help-mode-tests-help-buffer-current-buffer-error ()
-  (with-temp-buffer
-    (let ((help-xref-following t))
-      (should-error (help-buffer)))))
-
 (ert-deftest help-mode-tests-make-xrefs ()
   (with-temp-buffer
     (insert "car is a built-in function in ‘C source code’.