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 ()