[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Emacs-diffs] /srv/bzr/emacs/trunk r111025: Add desktop support for rest
From: |
Glenn Morris |
Subject: |
[Emacs-diffs] /srv/bzr/emacs/trunk r111025: Add desktop support for restoring vc-dir buffers (bug#10606) |
Date: |
Wed, 28 Nov 2012 20:16:51 -0500 |
User-agent: |
Bazaar (2.5.0) |
------------------------------------------------------------
revno: 111025
committer: Glenn Morris <address@hidden>
branch nick: trunk
timestamp: Wed 2012-11-28 20:16:51 -0500
message:
Add desktop support for restoring vc-dir buffers (bug#10606)
* lisp/vc/vc-dir.el (vc-dir-mode): Autoload it (for desktop restore).
Set buffer-local value of desktop-save-buffer.
(vc-dir-desktop-buffer-misc-data, vc-dir-restore-desktop-buffer):
New functions.
(desktop-buffer-mode-handlers): Add vc-dir-mode entry.
* lisp/desktop.el (desktop-save-buffer-p): Treat vc-dir like dired.
modified:
lisp/ChangeLog
lisp/desktop.el
lisp/vc/vc-dir.el
=== modified file 'lisp/ChangeLog'
--- a/lisp/ChangeLog 2012-11-29 01:13:33 +0000
+++ b/lisp/ChangeLog 2012-11-29 01:16:51 +0000
@@ -1,5 +1,13 @@
2012-11-29 Glenn Morris <address@hidden>
+ Add desktop support for restoring vc-dir buffers. (Bug#10606)
+ * vc/vc-dir.el (vc-dir-mode): Autoload it (for desktop restore).
+ Set buffer-local value of desktop-save-buffer.
+ (vc-dir-desktop-buffer-misc-data, vc-dir-restore-desktop-buffer):
+ New functions.
+ (desktop-buffer-mode-handlers): Add vc-dir-mode entry.
+ * desktop.el (desktop-save-buffer-p): Treat vc-dir like dired.
+
* files.el (inhibit-local-variables-ignore-case): New. (Bug#10610)
(inhibit-local-variables-p): Use inhibit-local-variables-ignore-case.
Doc fix.
=== modified file 'lisp/desktop.el'
--- a/lisp/desktop.el 2012-09-25 04:13:02 +0000
+++ b/lisp/desktop.el 2012-11-29 01:16:51 +0000
@@ -825,7 +825,7 @@
(or (and filename
(stringp desktop-files-not-to-save)
(not (string-match desktop-files-not-to-save filename)))
- (and (eq mode 'dired-mode)
+ (and (memq mode '(dired-mode vc-dir-mode))
(with-current-buffer bufname
(not (setq dired-skip
(string-match desktop-files-not-to-save
=== modified file 'lisp/vc/vc-dir.el'
--- a/lisp/vc/vc-dir.el 2012-08-13 21:31:56 +0000
+++ b/lisp/vc/vc-dir.el 2012-11-29 01:16:51 +0000
@@ -930,6 +930,8 @@
(defvar use-vc-backend) ;; dynamically bound
+;; Autoload cookie needed by desktop.el.
+;;;###autoload
(define-derived-mode vc-dir-mode special-mode "VC dir"
"Major mode for VC directory buffers.
Marking/Unmarking key bindings and actions:
@@ -967,6 +969,8 @@
\\{vc-dir-mode-map}"
(set (make-local-variable 'vc-dir-backend) use-vc-backend)
+ (set (make-local-variable 'desktop-save-buffer)
+ 'vc-dir-desktop-buffer-misc-data)
(setq buffer-read-only t)
(when (boundp 'tool-bar-map)
(set (make-local-variable 'tool-bar-map) vc-dir-tool-bar-map))
@@ -1288,6 +1292,31 @@
"Default absence of extra information returned for a file."
nil)
+
+;;; Support for desktop.el (adapted from what dired.el does).
+
+(declare-function desktop-file-name "desktop" (filename dirname))
+
+(defun vc-dir-desktop-buffer-misc-data (dirname)
+ "Auxiliary information to be saved in desktop file."
+ (cons (desktop-file-name default-directory dirname) vc-dir-backend))
+
+(defun vc-dir-restore-desktop-buffer (_filename _buffername misc-data)
+ "Restore a `vc-dir' buffer specified in a desktop file."
+ (let ((dir (car misc-data))
+ (backend (cdr misc-data)))
+ (if (file-directory-p dir)
+ (progn
+ (vc-dir dir backend)
+ (current-buffer))
+ (message "Desktop: Directory %s no longer exists." dir)
+ (when desktop-missing-file-warning (sit-for 1))
+ nil)))
+
+(add-to-list 'desktop-buffer-mode-handlers
+ '(vc-dir-mode . vc-dir-restore-desktop-buffer))
+
+
(provide 'vc-dir)
;;; vc-dir.el ends here
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- [Emacs-diffs] /srv/bzr/emacs/trunk r111025: Add desktop support for restoring vc-dir buffers (bug#10606),
Glenn Morris <=