aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorGerd Moellmann2001-10-23 13:52:45 +0000
committerGerd Moellmann2001-10-23 13:52:45 +0000
commit1d500ca6e8b6329f50934c51c3db9b8fd359d41a (patch)
treefc4ff9031663c544362253511721ccb04fd86297
parentf0487f056a0ea8b8db3c77855b10d28f2310b073 (diff)
downloademacs-1d500ca6e8b6329f50934c51c3db9b8fd359d41a.tar.gz
emacs-1d500ca6e8b6329f50934c51c3db9b8fd359d41a.zip
(desktop-last-buffer): New variable.
(desktop-create-buffer): Set it. (desktop-read): Bind it and switch to that buffer.
-rw-r--r--lisp/desktop.el15
1 files changed, 14 insertions, 1 deletions
diff --git a/lisp/desktop.el b/lisp/desktop.el
index 4ccdaed7a94..dd1d0b68209 100644
--- a/lisp/desktop.el
+++ b/lisp/desktop.el
@@ -576,9 +576,17 @@ This is a no-op when Emacs is running in batch mode."
576 (setq dirs (cdr dirs))) 576 (setq dirs (cdr dirs)))
577 (setq desktop-dirname (and dirs (expand-file-name (car dirs)))) 577 (setq desktop-dirname (and dirs (expand-file-name (car dirs))))
578 (if desktop-dirname 578 (if desktop-dirname
579 (progn 579 (let ((desktop-last-buffer nil))
580 ;; `load-with-code-conversion' calls `eval-buffer' which
581 ;; contains a `save-excursion', so we end up with the same
582 ;; buffer before and after the load. This is a problem
583 ;; when the desktop is read initially when Emacs starts up
584 ;; because, if we still are in *scratch* after running
585 ;; `after-init-hook', the splash screen will be displayed.
580 (load (expand-file-name desktop-basefilename desktop-dirname) 586 (load (expand-file-name desktop-basefilename desktop-dirname)
581 t t t) 587 t t t)
588 (when desktop-last-buffer
589 (switch-to-buffer desktop-last-buffer))
582 (run-hooks 'desktop-delay-hook) 590 (run-hooks 'desktop-delay-hook)
583 (setq desktop-delay-hook nil) 591 (setq desktop-delay-hook nil)
584 (message "Desktop loaded.")) 592 (message "Desktop loaded."))
@@ -666,6 +674,10 @@ to provide correct modes for autoloaded files."
666;; ---------------------------------------------------------------------------- 674;; ----------------------------------------------------------------------------
667;; Create a buffer, load its file, set is mode, ...; called from Desktop file 675;; Create a buffer, load its file, set is mode, ...; called from Desktop file
668;; only. 676;; only.
677
678(defvar desktop-last-buffer nil
679 "Last buffer read. Dynamically bound in `desktop-read'.")
680
669(defun desktop-create-buffer (ver desktop-buffer-file-name desktop-buffer-name 681(defun desktop-create-buffer (ver desktop-buffer-file-name desktop-buffer-name
670 desktop-buffer-major-mode 682 desktop-buffer-major-mode
671 mim pt mk ro desktop-buffer-misc 683 mim pt mk ro desktop-buffer-misc
@@ -678,6 +690,7 @@ to provide correct modes for autoloaded files."
678 (setq result (funcall handler)) 690 (setq result (funcall handler))
679 (setq hlist (cdr hlist))) 691 (setq hlist (cdr hlist)))
680 (when (bufferp result) 692 (when (bufferp result)
693 (setq desktop-last-buffer result)
681 (set-buffer result) 694 (set-buffer result)
682 (if (not (equal (buffer-name) desktop-buffer-name)) 695 (if (not (equal (buffer-name) desktop-buffer-name))
683 (rename-buffer desktop-buffer-name)) 696 (rename-buffer desktop-buffer-name))