]> git.eshelyaron.com Git - emacs.git/commitdiff
Add `slow' and `history' tags to the desktop data.
authorJuri Linkov <juri@jurta.org>
Wed, 5 May 2010 21:56:15 +0000 (00:56 +0300)
committerJuri Linkov <juri@jurta.org>
Wed, 5 May 2010 21:56:15 +0000 (00:56 +0300)
* info.el (Info-virtual-nodes) [*Index*]: Add `slow' tag.
(Info-virtual-files) [*Apropos*]: Add `slow' tag.
(Info-finder-find-node): Require `finder.el' to be able
to restore node from the desktop.
(Info-desktop-buffer-misc-data): Save all nodes.  Save additional
data `Info-history' and `slow' tag in the assoc list.
(Info-restore-desktop-buffer): Don't restore nodes with the
`slow' tag.  Restore `Info-history'.

lisp/ChangeLog
lisp/info.el

index 23e81510cb11e963c045e17f02365baa6ba9764c..d35340beb10d3e83827caf834a48e06cac13bcc5 100644 (file)
@@ -1,3 +1,16 @@
+2010-05-05  Juri Linkov  <juri@jurta.org>
+
+       Add `slow' and `history' tags to the desktop data.
+
+       * info.el (Info-virtual-nodes) [*Index*]: Add `slow' tag.
+       (Info-virtual-files) [*Apropos*]: Add `slow' tag.
+       (Info-finder-find-node): Require `finder.el' to be able
+       to restore node from the desktop.
+       (Info-desktop-buffer-misc-data): Save all nodes.  Save additional
+       data `Info-history' and `slow' tag in the assoc list.
+       (Info-restore-desktop-buffer): Don't restore nodes with the
+       `slow' tag.  Restore `Info-history'.
+
 2010-05-05  Michael Albinus  <michael.albinus@gmx.de>
 
        Add FORCE argument to `delete-file'.
index b8eb1339d17b802ef99c5ada2add95f5a0ea033b..505bf859aba0a2ac4cdd9bf6af49470d53b8e3e6 100644 (file)
@@ -3104,6 +3104,7 @@ Give an empty topic name to go to the Index node itself."
 (add-to-list 'Info-virtual-nodes
             '("\\`\\*Index.*\\*\\'"
               (find-node . Info-virtual-index-find-node)
+              (slow . t)
               ))
 
 (defvar Info-virtual-index-nodes nil
@@ -3193,6 +3194,7 @@ search results."
               (toc-nodes . Info-apropos-toc-nodes)
               (find-file . Info-apropos-find-file)
               (find-node . Info-apropos-find-node)
+              (slow . t)
               ))
 
 (defvar Info-apropos-file "*Apropos*"
@@ -3348,6 +3350,7 @@ Build a menu of the possible matches."
 
 (defun Info-finder-find-node (filename nodename &optional no-going-back)
   "Finder-specific implementation of Info-find-node-2."
+  (require 'finder)
   (cond
    ((equal nodename "Top")
     ;; Display Top menu with descriptions of the keywords
@@ -4836,21 +4839,35 @@ BUFFER is the buffer speedbar is requesting buttons for."
 
 (defun Info-desktop-buffer-misc-data (desktop-dirname)
   "Auxiliary information to be saved in desktop file."
-  (unless (Info-virtual-file-p Info-current-file)
-    (list Info-current-file Info-current-node)))
+  (list Info-current-file
+       Info-current-node
+       ;; Additional data as an association list.
+       (delq nil (list
+                  (and Info-history
+                       (cons 'history Info-history))
+                  (and (Info-virtual-fun
+                        'slow Info-current-file Info-current-node)
+                       (cons 'slow t))))))
 
 (defun Info-restore-desktop-buffer (desktop-buffer-file-name
                                     desktop-buffer-name
                                     desktop-buffer-misc)
   "Restore an Info buffer specified in a desktop file."
-  (let ((first (nth 0 desktop-buffer-misc))
-        (second (nth 1 desktop-buffer-misc)))
-  (when (and first second)
-    (when desktop-buffer-name
-      (set-buffer (get-buffer-create desktop-buffer-name))
-      (Info-mode))
-    (Info-find-node first second)
-    (current-buffer))))
+  (let* ((file (nth 0 desktop-buffer-misc))
+        (node (nth 1 desktop-buffer-misc))
+        (data (nth 2 desktop-buffer-misc))
+        (hist (assq 'history data))
+        (slow (assq 'slow data)))
+    ;; Don't restore nodes slow to regenerate.
+    (unless slow
+      (when (and file node)
+       (when desktop-buffer-name
+         (set-buffer (get-buffer-create desktop-buffer-name))
+         (Info-mode))
+       (Info-find-node file node)
+       (when hist
+         (setq Info-history (cdr hist)))
+       (current-buffer)))))
 
 (add-to-list 'desktop-buffer-mode-handlers
             '(Info-mode . Info-restore-desktop-buffer))