;;; Commentary:
-;; who says one can't have typeout windows in gnu emacs?
-;; like ^r select buffer from its emacs lunar or tmacs libraries.
+;; Who says one can't have typeout windows in GNU Emacs? The entry
+;; point, `electric-buffer-list' works like ^r select buffer from the
+;; ITS Emacs lunar or tmacs libraries.
;;; Code:
(setq select
(catch 'electric-buffer-menu-select
(message "<<< Press Space to bury the buffer list >>>")
- (if (= (setq unread-command-char (read-char)) ?\ )
- (progn (setq unread-command-char -1)
+ (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))
(forward-line 2)
(put 'Electric-buffer-menu-undefined 'suppress-keymap t)
(if electric-buffer-menu-mode-map
nil
- (let ((map (make-keymap)))
- (fillarray map 'Electric-buffer-menu-undefined)
- (define-key map "\e" (make-keymap))
- (fillarray (lookup-key map "\e") 'Electric-buffer-menu-undefined)
+ (let ((map (make-keymap)) (submap (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 "\C-z" 'suspend-emacs)
(define-key map "v" 'Electric-buffer-menu-mode-view-buffer)
- (define-key map help-char 'Helper-help)
+ (define-key map (char-to-string help-char) 'Helper-help)
(define-key map "?" 'Helper-describe-bindings)
(define-key map "\C-c" nil)
(define-key map "\C-c\C-c" 'Electric-buffer-menu-quit)
(defun Electric-buffer-menu-exit ()
(interactive)
- (setq unread-command-char last-input-char)
+ (setq unread-command-events (listify-key-sequence (this-command-keys)))
;; for robustness
(condition-case ()
(throw 'electric-buffer-menu-select nil)
(ding)
(message (if (and (eq (key-binding "\C-c\C-c") 'Electric-buffer-menu-quit)
(eq (key-binding " ") 'Electric-buffer-menu-select)
- (eq (key-binding help-key) 'Helper-help)
+ (eq (key-binding (char-to-string help-char)) 'Helper-help)
(eq (key-binding "?") 'Helper-describe-bindings))
(substitute-command-keys "Type C-c C-c to exit, Space to select, \\[Helper-help] for help, ? for commands")
(substitute-command-keys "\