From: Chong Yidong Date: Sat, 5 Mar 2011 21:10:03 +0000 (-0500) Subject: Fix to help-buffer to ensure it returns a valid buffer (Bug#8147). X-Git-Tag: emacs-pretest-24.0.90~104^2~275^2~674^2~22 X-Git-Url: http://git.eshelyaron.com/gitweb/?a=commitdiff_plain;h=d23ae2b03fdaaf6ff2015f177c0770792c409d96;p=emacs.git 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. --- 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)))