diff lisp/help-mode.el @ 109021:35894ae393bb

Fix revert-buffer functionality of Help mode and Info. * lisp/help-mode.el (help-mode): Set buffer-local variable revert-buffer-function to help-mode-revert-buffer. (help-mode-revert-buffer): New function. * lisp/info.el (Info-revert-find-node): Check for major-mode Info-mode before popping to "*info*" (like in other Info functions). Keep buffer-name in old-buffer-name. Keep Info-history-forward in old-history-forward. Pop to old-buffer-name or "*info*" to recreate the killed buffer. Set Info-history-forward from old-history-forward. (Info-breadcrumbs-depth): Add :group and :version.
author Juri Linkov <juri@jurta.org>
date Thu, 17 Jun 2010 23:56:17 +0300
parents 57f3f40827c1
children c138aa96dae8
line wrap: on
line diff
--- a/lisp/help-mode.el	Thu Jun 17 09:41:13 2010 -0700
+++ b/lisp/help-mode.el	Thu Jun 17 23:56:17 2010 +0300
@@ -272,6 +272,9 @@
 	  (with-current-buffer buffer
 	    (bury-buffer))))
 
+  (set (make-local-variable 'revert-buffer-function)
+       'help-mode-revert-buffer)
+
   (run-mode-hooks 'help-mode-hook))
 
 ;;;###autoload
@@ -783,6 +786,17 @@
 	      (fboundp sym) (facep sym))
       (help-do-xref pos #'help-xref-interned (list sym)))))
 
+(defun help-mode-revert-buffer (ignore-auto noconfirm)
+  (when (or noconfirm (yes-or-no-p "Revert help buffer? "))
+    (let ((pos (point))
+	  (item help-xref-stack-item)
+	  ;; Pretend there is no current item to add to the history.
+	  (help-xref-stack-item nil)
+	  ;; Use the current buffer.
+	  (help-xref-following t))
+      (apply (car item) (cdr item))
+      (goto-char pos))))
+
 (defun help-insert-string (string)
   "Insert STRING to the help buffer and install xref info for it.
 This function can be used to restore the old contents of the help buffer