aboutsummaryrefslogtreecommitdiffstats
path: root/lisp/desktop.el
diff options
context:
space:
mode:
Diffstat (limited to 'lisp/desktop.el')
-rw-r--r--lisp/desktop.el50
1 files changed, 29 insertions, 21 deletions
diff --git a/lisp/desktop.el b/lisp/desktop.el
index 64e8770ffd0..55ebd662df6 100644
--- a/lisp/desktop.el
+++ b/lisp/desktop.el
@@ -129,7 +129,8 @@ determine where the desktop is saved."
129 (const :tag "Ask if desktop file exists, else don't save" ask-if-exists) 129 (const :tag "Ask if desktop file exists, else don't save" ask-if-exists)
130 (const :tag "Save if desktop file exists, else don't" if-exists) 130 (const :tag "Save if desktop file exists, else don't" if-exists)
131 (const :tag "Never save" nil)) 131 (const :tag "Never save" nil))
132 :group 'desktop) 132 :group 'desktop
133 :version "21.4")
133 134
134(defcustom desktop-base-file-name 135(defcustom desktop-base-file-name
135 (convert-standard-filename ".emacs.desktop") 136 (convert-standard-filename ".emacs.desktop")
@@ -142,7 +143,8 @@ determine where the desktop is saved."
142 "List of directories to search for the desktop file. 143 "List of directories to search for the desktop file.
143The base name of the file is specified in `desktop-base-file-name'." 144The base name of the file is specified in `desktop-base-file-name'."
144 :type '(repeat directory) 145 :type '(repeat directory)
145 :group 'desktop) 146 :group 'desktop
147 :version "21.4")
146 148
147(defcustom desktop-missing-file-warning nil 149(defcustom desktop-missing-file-warning nil
148 "*If non-nil then `desktop-read' asks if a non-existent file should be recreated. 150 "*If non-nil then `desktop-read' asks if a non-existent file should be recreated.
@@ -151,19 +153,22 @@ Also pause for a moment to display message about errors signaled in
151 153
152If nil, just print error messages in the message buffer." 154If nil, just print error messages in the message buffer."
153 :type 'boolean 155 :type 'boolean
154 :group 'desktop) 156 :group 'desktop
157 :version "21.4")
155 158
156(defcustom desktop-no-desktop-file-hook nil 159(defcustom desktop-no-desktop-file-hook nil
157 "Normal hook run when `desktop-read' can't find a desktop file. 160 "Normal hook run when `desktop-read' can't find a desktop file.
158May e.g. be used to show a dired buffer." 161May e.g. be used to show a dired buffer."
159 :type 'hook 162 :type 'hook
160 :group 'desktop) 163 :group 'desktop
164 :version "21.4")
161 165
162(defcustom desktop-after-read-hook nil 166(defcustom desktop-after-read-hook nil
163 "Normal hook run after a successful `desktop-read'. 167 "Normal hook run after a successful `desktop-read'.
164May e.g. be used to show a buffer list." 168May e.g. be used to show a buffer list."
165 :type 'hook 169 :type 'hook
166 :group 'desktop) 170 :group 'desktop
171 :version "21.4")
167 172
168(defcustom desktop-save-hook nil 173(defcustom desktop-save-hook nil
169 "Normal hook run before the desktop is saved in a desktop file. 174 "Normal hook run before the desktop is saved in a desktop file.
@@ -198,14 +203,16 @@ An element may be variable name (a symbol) or a cons cell of the form
198\(VAR . FORM). Symbols are set to nil and for cons cells VAR is set 203\(VAR . FORM). Symbols are set to nil and for cons cells VAR is set
199to the value obtained by evaluateing FORM." 204to the value obtained by evaluateing FORM."
200 :type '(repeat (restricted-sexp :match-alternatives (symbolp consp))) 205 :type '(repeat (restricted-sexp :match-alternatives (symbolp consp)))
201 :group 'desktop) 206 :group 'desktop
207 :version "21.4")
202 208
203(defcustom desktop-clear-preserve-buffers-regexp 209(defcustom desktop-clear-preserve-buffers-regexp
204 "^\\(\\*scratch\\*\\|\\*Messages\\*\\|\\*tramp/.+\\*\\)$" 210 "^\\(\\*scratch\\*\\|\\*Messages\\*\\|\\*tramp/.+\\*\\)$"
205 "Regexp identifying buffers that `desktop-clear' should not delete. 211 "Regexp identifying buffers that `desktop-clear' should not delete.
206See also `desktop-clear-preserve-buffers'." 212See also `desktop-clear-preserve-buffers'."
207 :type 'regexp 213 :type 'regexp
208 :group 'desktop) 214 :group 'desktop
215 :version "21.4")
209 216
210(defcustom desktop-clear-preserve-buffers nil 217(defcustom desktop-clear-preserve-buffers nil
211 "*List of buffer names that `desktop-clear' should not delete. 218 "*List of buffer names that `desktop-clear' should not delete.
@@ -257,7 +264,8 @@ Possible values are:
257 tilde -- Relative to ~. 264 tilde -- Relative to ~.
258 local -- Relative to directory of desktop file." 265 local -- Relative to directory of desktop file."
259 :type '(choice (const absolute) (const tilde) (const local)) 266 :type '(choice (const absolute) (const tilde) (const local))
260 :group 'desktop) 267 :group 'desktop
268 :version "21.4")
261 269
262;;;###autoload 270;;;###autoload
263(defvar desktop-save-buffer nil 271(defvar desktop-save-buffer nil
@@ -628,7 +636,7 @@ See also `desktop-base-file-name'."
628 ";; Desktop file format version " desktop-file-version "\n" 636 ";; Desktop file format version " desktop-file-version "\n"
629 ";; Emacs version " emacs-version "\n\n" 637 ";; Emacs version " emacs-version "\n\n"
630 ";; Global section:\n") 638 ";; Global section:\n")
631 (mapcar (function desktop-outvar) desktop-globals-to-save) 639 (mapc (function desktop-outvar) desktop-globals-to-save)
632 (if (memq 'kill-ring desktop-globals-to-save) 640 (if (memq 'kill-ring desktop-globals-to-save)
633 (insert 641 (insert
634 "(setq kill-ring-yank-pointer (nthcdr " 642 "(setq kill-ring-yank-pointer (nthcdr "
@@ -636,15 +644,15 @@ See also `desktop-base-file-name'."
636 " kill-ring))\n")) 644 " kill-ring))\n"))
637 645
638 (insert "\n;; Buffer section -- buffers listed in same order as in buffer list:\n") 646 (insert "\n;; Buffer section -- buffers listed in same order as in buffer list:\n")
639 (mapcar #'(lambda (l) 647 (mapc #'(lambda (l)
640 (if (apply 'desktop-save-buffer-p l) 648 (if (apply 'desktop-save-buffer-p l)
641 (progn 649 (progn
642 (insert "(desktop-create-buffer " desktop-file-version) 650 (insert "(desktop-create-buffer " desktop-file-version)
643 (mapcar #'(lambda (e) 651 (mapc #'(lambda (e)
644 (insert "\n " (desktop-value-to-string e))) 652 (insert "\n " (desktop-value-to-string e)))
645 l) 653 l)
646 (insert ")\n\n")))) 654 (insert ")\n\n"))))
647 info) 655 info)
648 (setq default-directory dirname) 656 (setq default-directory dirname)
649 (when (file-exists-p filename) (delete-file filename)) 657 (when (file-exists-p filename) (delete-file filename))
650 (let ((coding-system-for-write 'emacs-mule)) 658 (let ((coding-system-for-write 'emacs-mule))
@@ -865,9 +873,9 @@ directory DIRNAME."
865 ((equal '(nil) desktop-buffer-minor-modes) ; backwards compatible 873 ((equal '(nil) desktop-buffer-minor-modes) ; backwards compatible
866 (auto-fill-mode 0)) 874 (auto-fill-mode 0))
867 (t 875 (t
868 (mapcar #'(lambda (minor-mode) 876 (mapc #'(lambda (minor-mode)
869 (when (functionp minor-mode) (funcall minor-mode 1))) 877 (when (functionp minor-mode) (funcall minor-mode 1)))
870 desktop-buffer-minor-modes))) 878 desktop-buffer-minor-modes)))
871 ;; Even though point and mark are non-nil when written by `desktop-save' 879 ;; Even though point and mark are non-nil when written by `desktop-save'
872 ;; they may be modified by handlers wanting to set point or mark themselves. 880 ;; they may be modified by handlers wanting to set point or mark themselves.
873 (when desktop-buffer-point 881 (when desktop-buffer-point