diff options
Diffstat (limited to 'lisp')
-rw-r--r-- | lisp/ChangeLog | 5 | ||||
-rw-r--r-- | 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 <cyd@stupidchicken.com> + + * 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 <rrt@sc3d.org> * 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))) |