Mercurial > emacs
comparison lisp/desktop.el @ 18581:45f27efe77c7
(desktop-clear-preserve-buffers): New variable.
(desktop-clear): Kill all buffers except internal ones
and those listed in desktop-clear-preserve-buffers.
author | Richard M. Stallman <rms@gnu.org> |
---|---|
date | Fri, 04 Jul 1997 00:13:36 +0000 |
parents | bb491744ccd7 |
children | ec0a8ccddd6c |
comparison
equal
deleted
inserted
replaced
18580:717e09103d06 | 18581:45f27efe77c7 |
---|---|
225 "Truncate LIST to at most N elements destructively." | 225 "Truncate LIST to at most N elements destructively." |
226 (let ((here (nthcdr (1- n) l))) | 226 (let ((here (nthcdr (1- n) l))) |
227 (if (consp here) | 227 (if (consp here) |
228 (setcdr here nil)))) | 228 (setcdr here nil)))) |
229 ;; ---------------------------------------------------------------------------- | 229 ;; ---------------------------------------------------------------------------- |
230 (defun desktop-clear () "Empty the Desktop." | 230 (defcustom desktop-clear-preserve-buffers |
231 '("*scratch*" "*Messages*") | |
232 "*Buffer names that `desktop-clear' should not delete." | |
233 :type '(repeat string) | |
234 :group 'desktop) | |
235 | |
236 (defun desktop-clear () | |
237 "Empty the Desktop. | |
238 This kills all buffers except for internal ones | |
239 and those listed in `desktop-clear-preserve-buffers'." | |
231 (interactive) | 240 (interactive) |
232 (setq kill-ring nil | 241 (setq kill-ring nil |
233 kill-ring-yank-pointer nil | 242 kill-ring-yank-pointer nil |
234 search-ring nil | 243 search-ring nil |
235 search-ring-yank-pointer nil | 244 search-ring-yank-pointer nil |
236 regexp-search-ring nil | 245 regexp-search-ring nil |
237 regexp-search-ring-yank-pointer nil) | 246 regexp-search-ring-yank-pointer nil) |
238 ;;; What a screw! | 247 (let ((buffers (buffer-list))) |
239 ;;; (mapcar (function kill-buffer) (buffer-list)) | 248 (while buffers |
249 (or (member (buffer-name (car buffers)) desktop-clear-preserve-buffers) | |
250 ;; Don't kill buffers made for internal purposes. | |
251 (and (not (equal (buffer-name (car buffers)) "")) | |
252 (eq (aref (buffer-name (car buffers)) 0) ?\ )) | |
253 (kill-buffer (car buffers))) | |
254 (setq buffers (cdr buffers)))) | |
240 (delete-other-windows)) | 255 (delete-other-windows)) |
241 ;; ---------------------------------------------------------------------------- | 256 ;; ---------------------------------------------------------------------------- |
242 (add-hook 'kill-emacs-hook 'desktop-kill) | 257 (add-hook 'kill-emacs-hook 'desktop-kill) |
243 | 258 |
244 (defun desktop-kill () | 259 (defun desktop-kill () |