;;; ebuff-menu.el --- electric-buffer-list mode
-;; Copyright (C) 1985, 1986 Free Software Foundation, Inc.
+;; Copyright (C) 1985, 1986, 1994 Free Software Foundation, Inc.
;; Author: Richard Mlynarik <mly@ai.mit.edu>
(Electric-buffer-menu-mode)
(setq select
(catch 'electric-buffer-menu-select
- (message "<<< Press Space to bury the buffer list >>>")
+ (message "<<< Press Return to bury the buffer list >>>")
(if (eq (setq unread-command-events (list (read-event)))
?\ )
(progn (setq unread-command-events nil)
(throw 'electric-buffer-menu-select nil)))
- (let ((first (progn (goto-char (point-min))
+ (let ((start-point (point))
+ (first (progn (goto-char (point-min))
(forward-line 2)
(point)))
(last (progn (goto-char (point-max))
(forward-line -1)
(point)))
(goal-column 0))
- (goto-char first)
+ ;; Use start-point if it is meaningful.
+ (goto-char (if (or (< start-point first)
+ (> start-point last))
+ first
+ start-point))
(Electric-command-loop 'electric-buffer-menu-select
nil
t
(define-key map "\C-]" 'Electric-buffer-menu-quit)
(define-key map "q" 'Electric-buffer-menu-quit)
(define-key map " " 'Electric-buffer-menu-select)
+ (define-key map "\C-m" 'Electric-buffer-menu-select)
(define-key map "\C-l" 'recenter)
(define-key map "s" 'Buffer-menu-save)
(define-key map "d" 'Buffer-menu-delete)
(define-key map "\e\C-v" 'scroll-other-window)
(define-key map "\e>" 'end-of-buffer)
(define-key map "\e<" 'beginning-of-buffer)
+ (define-key map "\e\e" nil)
+ (define-key map "\e\e\e" 'Electric-buffer-menu-quit)
+ (define-key map [escape escape escape] 'Electric-buffer-menu-quit)
+ (define-key map [mouse-2] 'Electric-buffer-menu-mouse-select)
(setq electric-buffer-menu-mode-map map)))
(defun Electric-buffer-menu-exit ()
(interactive)
(throw 'electric-buffer-menu-select (point)))
+(defun Electric-buffer-menu-mouse-select (event)
+ (interactive "e")
+ (select-window (posn-window (event-end event)))
+ (set-buffer (window-buffer (selected-window)))
+ (goto-char (posn-point (event-end event)))
+ (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."