From d23ae2b03fdaaf6ff2015f177c0770792c409d96 Mon Sep 17 00:00:00 2001 From: Chong Yidong Date: Sat, 5 Mar 2011 16:10:03 -0500 Subject: [PATCH] Fix to help-buffer to ensure it returns a valid buffer (Bug#8147). * lisp/help-mode.el (help-buffer): If we are to return the current buffer, signal an error if it's not in Help mode. --- lisp/ChangeLog | 5 +++++ lisp/help-mode.el | 15 +++++++++------ 2 files changed, 14 insertions(+), 6 deletions(-) diff --git a/lisp/ChangeLog b/lisp/ChangeLog index 707464670e9..55935189af6 100644 --- a/lisp/ChangeLog +++ b/lisp/ChangeLog @@ -1,3 +1,8 @@ +2011-03-05 Chong Yidong + + * help-mode.el (help-buffer): If we are to return the current + buffer, signal an error if it's not in Help mode (Bug#8147). + 2011-03-05 Reuben Thomas * files.el (file-name-version-regexp): Handle backup files of the diff --git a/lisp/help-mode.el b/lisp/help-mode.el index 724b0186679..51d18235e1b 100644 --- a/lisp/help-mode.el +++ b/lisp/help-mode.el @@ -409,13 +409,16 @@ restore it properly when going back." (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. -Otherwise, it is *Help*; if no buffer with that name currently -exists, it is created." +current buffer. Signal an error if this buffer is not derived +from `help-mode'. +Otherwise, return \"*Help*\", creating a buffer with that name if +it does not already exist." (buffer-name ;for with-output-to-temp-buffer - (if help-xref-following - (current-buffer) - (get-buffer-create "*Help*")))) + (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)))) (defvar help-xref-override-view-map (let ((map (make-sparse-keymap))) -- 2.39.5