[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Emacs-diffs] Changes to emacs/lisp/menu-bar.el,v
From: |
Stefan Monnier |
Subject: |
[Emacs-diffs] Changes to emacs/lisp/menu-bar.el,v |
Date: |
Tue, 11 Mar 2008 17:44:40 +0000 |
CVSROOT: /sources/emacs
Module name: emacs
Changes by: Stefan Monnier <monnier> 08/03/11 17:44:40
Index: menu-bar.el
===================================================================
RCS file: /sources/emacs/emacs/lisp/menu-bar.el,v
retrieving revision 1.321
retrieving revision 1.322
diff -u -b -r1.321 -r1.322
--- menu-bar.el 29 Feb 2008 23:37:54 -0000 1.321
+++ menu-bar.el 11 Mar 2008 17:44:38 -0000 1.322
@@ -1537,23 +1537,10 @@
(defvar list-buffers-directory nil)
-(defvar menu-bar-update-buffers-maxbuf)
-
-(defun menu-bar-select-buffer ()
- (interactive)
- (switch-to-buffer last-command-event))
-
-(defun menu-bar-select-frame ()
- (interactive)
- (let (frame)
- (dolist (f (frame-list))
- (when (equal last-command-event (frame-parameter f 'name))
- (setq frame f)))
- ;; FRAME can be nil when user specifies the selected frame.
- (setq frame (or frame (selected-frame)))
+(defun menu-bar-select-frame (frame)
(make-frame-visible frame)
(raise-frame frame)
- (select-frame frame)))
+ (select-frame frame))
(defun menu-bar-update-buffers-1 (elt)
(let* ((buf (car elt))
@@ -1597,60 +1584,50 @@
;; Make the menu of buffers proper.
(setq buffers-menu
- (let* ((buffer-list
- (mapcar 'list buffers))
- (menu-bar-update-buffers-maxbuf 0)
- alist)
+ (let (alist)
;; Put into each element of buffer-list
;; the name for actual display,
;; perhaps truncated in the middle.
- (dolist (buf buffer-list)
- (let ((name (buffer-name (car buf))))
- (setcdr buf
+ (dolist (buf buffers)
+ (let ((name (buffer-name buf)))
+ (unless (eq ?\s (aref name 0))
+ (push (menu-bar-update-buffers-1
+ (cons buf
(if (> (length name) 27)
(concat (substring name 0 12)
"..."
(substring name -12))
- name))))
- ;; Compute the maximum length of any name.
- (dolist (buf buffer-list)
- (unless (eq ?\s (aref (cdr buf) 0))
- (setq menu-bar-update-buffers-maxbuf
- (max menu-bar-update-buffers-maxbuf
- (length (cdr buf))))))
- ;; Set ALIST to an alist of the form
- ;; ITEM-STRING . BUFFER
- (dolist (buf buffer-list)
- (unless (eq ?\s (aref (cdr buf) 0))
- (push (menu-bar-update-buffers-1 buf) alist)))
- ;; Now make the actual list of items, and add
- ;; some miscellaneous buffer commands to the end.
- (mapcar (lambda (pair)
- ;; This is somewhat risque, to use
- ;; the buffer name itself as the event
- ;; type to define, but it works.
- ;; It would not work to use the buffer
- ;; since a buffer as an event has its
- ;; own meaning.
- (nconc (list (buffer-name (cdr pair))
- (car pair)
+ name)))
+ alist))))
+ ;; Now make the actual list of items.
+ (let ((buffers-vec (make-vector (length alist) nil))
+ (i (length alist)))
+ (dolist (pair alist)
+ (setq i (1- i))
+ (aset buffers-vec i
+ (nconc (list (car pair)
(cons nil nil))
- 'menu-bar-select-buffer))
- (nreverse alist))))
+ `(lambda ()
+ (interactive)
+ (switch-to-buffer ,(cdr pair))))))
+ (list buffers-vec))))
;; Make a Frames menu if we have more than one frame.
(when (cdr frames)
- (let ((frames-menu
+ (let* ((frames-vec (make-vector (length frames) nil))
+ (frames-menu
(cons 'keymap
- (cons "Select Frame"
- (mapcar
- (lambda (frame)
+ (list "Select Frame" frames-vec)))
+ (i 0))
+ (dolist (frame frames)
+ (aset frames-vec i
(nconc
- (list (frame-parameter frame 'name)
+ (list
(frame-parameter frame 'name)
(cons nil nil))
- 'menu-bar-select-frame))
- frames)))))
+ `(lambda ()
+ (interactive) (menu-bar-select-frame ,frame))))
+ (setq i (1+ i)))
;; Put it after the normal buffers
(setq buffers-menu
(nconc buffers-menu
- [Emacs-diffs] Changes to emacs/lisp/menu-bar.el,v,
Stefan Monnier <=
- [Emacs-diffs] Changes to emacs/lisp/menu-bar.el,v, Stefan Monnier, 2008/03/11
- [Emacs-diffs] Changes to emacs/lisp/menu-bar.el,v, Dan Nicolaescu, 2008/03/14
- [Emacs-diffs] Changes to emacs/lisp/menu-bar.el,v, Juri Linkov, 2008/03/16
- [Emacs-diffs] Changes to emacs/lisp/menu-bar.el,v, Andreas Schwab, 2008/03/23
- [Emacs-diffs] Changes to emacs/lisp/menu-bar.el,v, Andreas Schwab, 2008/03/23