Function: Buffer-menu-execute
Buffer-menu-execute is an interactive and byte-compiled function
defined in buff-menu.el.gz.
Signature
(Buffer-menu-execute)
Documentation
Save and/or delete marked buffers in the Buffer Menu.
Buffers marked with s (Buffer-menu-save) are saved.
Buffers marked with d (Buffer-menu-delete) are deleted.
Key Bindings
Source Code
;; Defined in /usr/src/emacs/lisp/buff-menu.el.gz
(defun Buffer-menu-execute ()
"Save and/or delete marked buffers in the Buffer Menu.
Buffers marked with \\<Buffer-menu-mode-map>\\[Buffer-menu-save] are saved.
Buffers marked with \\<Buffer-menu-mode-map>\\[Buffer-menu-delete] are deleted."
(interactive nil Buffer-menu-mode)
(save-excursion
(Buffer-menu-beginning)
(while (not (eobp))
(let ((buffer (tabulated-list-get-id))
(entry (tabulated-list-get-entry)))
(cond ((null entry)
(forward-line 1))
((not (buffer-live-p buffer))
(tabulated-list-delete-entry))
(t
(let ((delete (eq (char-after) ?D)))
(when (equal (aref entry 2) "S")
(condition-case nil
(progn
(with-current-buffer buffer
(save-buffer))
(tabulated-list-set-col 2 " " t))
(error (warn "Error saving %s" buffer))))
(if (and delete
(not (eq buffer (current-buffer)))
(kill-buffer buffer))
(tabulated-list-delete-entry)
(forward-line 1)))))))))