;; Author: Richard Mlynarik <mly@ai.mit.edu>
;; Maintainer: FSF
+;; Keywords: convenience
;; This file is part of GNU Emacs.
(interactive "P")
(let (select buffer)
(save-window-excursion
- (save-window-excursion (list-buffers arg))
- (setq buffer (window-buffer (Electric-pop-up-window "*Buffer List*")))
+ (setq buffer (list-buffers-noselect arg))
+ (Electric-pop-up-window buffer)
(unwind-protect
(progn
(set-buffer buffer)
(Electric-buffer-menu-mode)
+ (electric-buffer-update-highlight)
(setq select
(catch 'electric-buffer-menu-select
(message "<<< Press Return to bury the buffer list >>>")
(goto-char (point-max))
(forward-line -1)
(if (pos-visible-in-window-p (point-max))
- (recenter -1)))))
+ (recenter -1))))
+ (electric-buffer-update-highlight))
(put 'Electric-buffer-menu-mode 'mode-class 'special)
(defun Electric-buffer-menu-mode ()
(put 'Electric-buffer-menu-undefined 'suppress-keymap t)
(if electric-buffer-menu-mode-map
nil
- (let ((map (make-keymap)) (submap (make-keymap)))
+ (let ((map (make-keymap)))
(fillarray (car (cdr map)) 'Electric-buffer-menu-undefined)
- (define-key map "\e" submap)
- (fillarray (car (cdr submap)) 'Electric-buffer-menu-undefined)
+ (define-key map "\e" nil)
(define-key map "\C-z" 'suspend-emacs)
(define-key map "v" 'Electric-buffer-menu-mode-view-buffer)
(define-key map (char-to-string help-char) 'Helper-help)
(message "Buffer %s does not exist!" bufnam)
(sit-for 4))))
+(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))
+
(provide 'ebuff-menu)
;;; ebuff-menu.el ends here