Function: desktop-kill
desktop-kill is a byte-compiled function defined in desktop.el.gz.
Signature
(desktop-kill)
Documentation
If desktop-save-mode(var)/desktop-save-mode(fun) is non-nil, do what desktop-save(var)/desktop-save(fun) says to do.
If the desktop should be saved and desktop-dirname
is nil, ask the user where to save the desktop.
Source Code
;; Defined in /usr/src/emacs/lisp/desktop.el.gz
(defun desktop-kill ()
"If `desktop-save-mode' is non-nil, do what `desktop-save' says to do.
If the desktop should be saved and `desktop-dirname'
is nil, ask the user where to save the desktop."
(when (and desktop-save-mode
(let ((exists (file-exists-p (desktop-full-file-name))))
(or (eq desktop-save t)
(and exists (eq desktop-save 'if-exists))
;; If it exists, but we aren't using it, we are going
;; to ask for a new directory below.
(and exists desktop-dirname (eq desktop-save 'ask-if-new))
(and
(or (memq desktop-save '(ask ask-if-new))
(and exists (eq desktop-save 'ask-if-exists)))
(y-or-n-p "Save desktop? ")))))
(unless desktop-dirname
(setq desktop-dirname
(file-name-as-directory
(expand-file-name
(read-directory-name "Directory for desktop file: " nil nil t)))))
(condition-case err
(desktop-save desktop-dirname t)
(file-error
(unless (yes-or-no-p "Error while saving the desktop. Ignore? ")
(signal (car err) (cdr err))))))
(desktop--on-kill)
t)