emacs-diffs
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Emacs-diffs] /srv/bzr/emacs/trunk r100616: Fix revert-buffer functional


From: Juri Linkov
Subject: [Emacs-diffs] /srv/bzr/emacs/trunk r100616: Fix revert-buffer functionality of Help mode and Info.
Date: Thu, 17 Jun 2010 23:56:17 +0300
User-agent: Bazaar (2.0.3)

------------------------------------------------------------
revno: 100616
committer: Juri Linkov <address@hidden>
branch nick: trunk
timestamp: Thu 2010-06-17 23:56:17 +0300
message:
  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.
modified:
  lisp/ChangeLog
  lisp/help-mode.el
  lisp/info.el
=== modified file 'lisp/ChangeLog'
--- a/lisp/ChangeLog    2010-06-17 16:41:13 +0000
+++ b/lisp/ChangeLog    2010-06-17 20:56:17 +0000
@@ -1,3 +1,17 @@
+2010-06-17  Juri Linkov  <address@hidden>
+
+       * help-mode.el (help-mode): Set buffer-local variable
+       revert-buffer-function to help-mode-revert-buffer.
+       (help-mode-revert-buffer): New function.
+
+       * 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.
+
 2010-06-17  Dan Nicolaescu  <address@hidden>
 
        * emacs-lisp/package.el (package-menu-mode-map): Add a menu.

=== modified file 'lisp/help-mode.el'
--- a/lisp/help-mode.el 2010-05-20 23:54:55 +0000
+++ b/lisp/help-mode.el 2010-06-17 20:56:17 +0000
@@ -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

=== modified file 'lisp/info.el'
--- a/lisp/info.el      2010-05-10 19:07:22 +0000
+++ b/lisp/info.el      2010-06-17 20:56:17 +0000
@@ -238,7 +238,9 @@
 (defcustom Info-breadcrumbs-depth 4
   "Depth of breadcrumbs to display.
 0 means do not display breadcrumbs."
-  :type 'integer)
+  :version "23.1"
+  :type 'integer
+  :group 'info)
 
 (defcustom Info-search-whitespace-regexp "\\s-+"
   "If non-nil, regular expression to match a sequence of whitespace chars.
@@ -800,17 +802,22 @@
   "Go to an Info node FILENAME and NODENAME, re-reading disk contents.
 When *info* is already displaying FILENAME and NODENAME, the window position
 is preserved, if possible."
-  (pop-to-buffer "*info*")
+  (or (eq major-mode 'Info-mode) (pop-to-buffer "*info*"))
   (let ((old-filename Info-current-file)
        (old-nodename Info-current-node)
+       (old-buffer-name (buffer-name))
        (pcolumn      (current-column))
        (pline        (count-lines (point-min) (line-beginning-position)))
        (wline        (count-lines (point-min) (window-start)))
+       (old-history-forward Info-history-forward)
        (old-history  Info-history)
        (new-history  (and Info-current-file
                           (list Info-current-file Info-current-node (point)))))
     (kill-buffer (current-buffer))
+    (pop-to-buffer (or old-buffer-name "*info*"))
+    (Info-mode)
     (Info-find-node filename nodename)
+    (setq Info-history-forward old-history-forward)
     (setq Info-history old-history)
     (if (and (equal old-filename Info-current-file)
             (equal old-nodename Info-current-node))


reply via email to

[Prev in Thread] Current Thread [Next in Thread]