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)