diff options
Diffstat (limited to 'lisp/desktop.el')
| -rw-r--r-- | lisp/desktop.el | 50 |
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. |
| 143 | The base name of the file is specified in `desktop-base-file-name'." | 144 | The 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 | ||
| 152 | If nil, just print error messages in the message buffer." | 154 | If 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. |
| 158 | May e.g. be used to show a dired buffer." | 161 | May 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'. |
| 164 | May e.g. be used to show a buffer list." | 168 | May 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 |
| 199 | to the value obtained by evaluateing FORM." | 204 | to 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. |
| 206 | See also `desktop-clear-preserve-buffers'." | 212 | See 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 |