(defvar electric-buffer-menu-mode-map nil)
+(defvar electric-buffer-menu-mode-hook nil
+ "Normal hook run by `electric-buffer-list'.")
+
;;;###autoload
(defun electric-buffer-list (arg)
- "Pops up a buffer describing the set of Emacs buffers.
+ "Pop up a buffer describing the set of Emacs buffers.
Vaguely like ITS lunar select buffer; combining typeoutoid buffer
listing with menuoid buffer selection.
To exit and select a new buffer, type a space when the cursor is on
the appropriate line of the buffer-list window. Other commands are
-much like those of buffer-menu-mode.
+much like those of `Buffer-menu-mode'.
-Calls value of `electric-buffer-menu-mode-hook' on entry if non-nil.
+Run hooks in `electric-buffer-menu-mode-hook' on entry.
\\{electric-buffer-menu-mode-map}"
(interactive "P")
(throw 'electric-buffer-menu-select nil)))
(let ((start-point (point))
(first (progn (goto-char (point-min))
- (forward-line 2)
+ (unless Buffer-menu-use-header-line
+ (forward-line 2))
(point)))
(last (progn (goto-char (point-max))
(forward-line -1)
(signal (car condition) (cdr condition)))
((< (point) (car state))
(goto-char (point-min))
- (forward-line 2))
+ (unless Buffer-menu-use-header-line
+ (forward-line 2)))
((> (point) (cdr state))
(goto-char (point-max))
(forward-line -1)
\\{electric-buffer-menu-mode-map}
-Entry to this mode via command electric-buffer-list calls the value of
-electric-buffer-menu-mode-hook if it is non-nil."
- (kill-all-local-variables)
+Entry to this mode via command `electric-buffer-list' calls the value of
+`electric-buffer-menu-mode-hook'."
+ (let ((saved header-line-format))
+ (kill-all-local-variables)
+ (setq header-line-format saved))
(use-local-map electric-buffer-menu-mode-map)
(setq mode-name "Electric Buffer Menu")
(setq mode-line-buffer-identification "Electric Buffer List")
(defun Electric-buffer-menu-select ()
"Leave Electric Buffer Menu, selecting buffers and executing changes.
-Saves buffers marked \"S\". Deletes buffers marked \"K\".
-Selects buffer at point and displays buffers marked \">\" in other windows."
+Save buffers marked \"S\". Delete buffers marked \"K\".
+Select buffer at point and display buffers marked \">\" in other windows."
(interactive)
(throw 'electric-buffer-menu-select (point)))
(defun Electric-buffer-menu-quit ()
"Leave Electric Buffer Menu, restoring previous window configuration.
-Does not execute select, save, or delete commands."
+Skip execution of select, save, and delete commands."
(interactive)
(throw 'electric-buffer-menu-select nil))
(defun Electric-buffer-menu-mode-view-buffer ()
"View buffer on current line in Electric Buffer Menu.
-Returns to Electric Buffer Menu when done."
+Return to Electric Buffer Menu when done."
(interactive)
(let ((bufnam (Buffer-menu-buffer nil)))
(if bufnam
(defvar electric-buffer-overlay nil)
(defun electric-buffer-update-highlight ()
- ;; Make sure we have an overlay to use.
- (or electric-buffer-overlay
- (progn
- (make-local-variable 'electric-buffer-overlay)
- (setq electric-buffer-overlay (make-overlay (point) (point)))))
- (move-overlay electric-buffer-overlay
- (save-excursion (beginning-of-line) (point))
- (save-excursion (end-of-line) (point)))
- (overlay-put electric-buffer-overlay 'face 'highlight))
+ (when (eq major-mode 'Electric-buffer-menu-mode)
+ ;; Make sure we have an overlay to use.
+ (or electric-buffer-overlay
+ (progn
+ (make-local-variable 'electric-buffer-overlay)
+ (setq electric-buffer-overlay (make-overlay (point) (point)))))
+ (move-overlay electric-buffer-overlay
+ (save-excursion (beginning-of-line) (point))
+ (save-excursion (end-of-line) (point)))
+ (overlay-put electric-buffer-overlay 'face 'highlight)))
(provide 'ebuff-menu)
+;;; arch-tag: 1d4509b3-eece-4d4f-95ea-77c83eaf0275
;;; ebuff-menu.el ends here