mirror of
git://git.sv.gnu.org/emacs.git
synced 2026-02-17 10:27:41 +00:00
(desktop-clear-preserve-buffers): New variable.
(desktop-clear): Kill all buffers except internal ones and those listed in desktop-clear-preserve-buffers.
This commit is contained in:
parent
3443c83291
commit
f9be457422
1 changed files with 18 additions and 3 deletions
|
|
@ -227,7 +227,16 @@ the like shorter."
|
|||
(if (consp here)
|
||||
(setcdr here nil))))
|
||||
;; ----------------------------------------------------------------------------
|
||||
(defun desktop-clear () "Empty the Desktop."
|
||||
(defcustom desktop-clear-preserve-buffers
|
||||
'("*scratch*" "*Messages*")
|
||||
"*Buffer names that `desktop-clear' should not delete."
|
||||
:type '(repeat string)
|
||||
:group 'desktop)
|
||||
|
||||
(defun desktop-clear ()
|
||||
"Empty the Desktop.
|
||||
This kills all buffers except for internal ones
|
||||
and those listed in `desktop-clear-preserve-buffers'."
|
||||
(interactive)
|
||||
(setq kill-ring nil
|
||||
kill-ring-yank-pointer nil
|
||||
|
|
@ -235,8 +244,14 @@ the like shorter."
|
|||
search-ring-yank-pointer nil
|
||||
regexp-search-ring nil
|
||||
regexp-search-ring-yank-pointer nil)
|
||||
;;; What a screw!
|
||||
;;; (mapcar (function kill-buffer) (buffer-list))
|
||||
(let ((buffers (buffer-list)))
|
||||
(while buffers
|
||||
(or (member (buffer-name (car buffers)) desktop-clear-preserve-buffers)
|
||||
;; Don't kill buffers made for internal purposes.
|
||||
(and (not (equal (buffer-name (car buffers)) ""))
|
||||
(eq (aref (buffer-name (car buffers)) 0) ?\ ))
|
||||
(kill-buffer (car buffers)))
|
||||
(setq buffers (cdr buffers))))
|
||||
(delete-other-windows))
|
||||
;; ----------------------------------------------------------------------------
|
||||
(add-hook 'kill-emacs-hook 'desktop-kill)
|
||||
|
|
|
|||
Loading…
Reference in a new issue