;;; msb.el --- customizable buffer-selection with multiple menus
-;; Copyright (C) 1993-1995, 1997-2015 Free Software Foundation, Inc.
+;; Copyright (C) 1993-1995, 1997-2016 Free Software Foundation, Inc.
;; Author: Lars Lindberg <lars.lindberg@home.se>
;; Maintainer: emacs-devel@gnu.org
(defun msb--create-function-info (menu-cond-elt)
"Create a vector from an element MENU-COND-ELT of `msb-menu-cond'.
This takes the form:
-\[BUFFER-LIST-VARIABLE CONDITION MENU-SORT-KEY MENU-TITLE ITEM-HANDLER SORTER]
+[BUFFER-LIST-VARIABLE CONDITION MENU-SORT-KEY MENU-TITLE ITEM-HANDLER SORTER]
See `msb-menu-cond' for a description of its elements."
(let* ((list-symbol (make-symbol "-msb-buffer-list"))
(tmp-ih (and (> (length menu-cond-elt) 3)
(msb--add-to-menu buffer info max-buffer-name-length)))
(error (unless msb--error
(setq msb--error
- (format
+ (format-message
"In msb-menu-cond, error for buffer `%s'."
(buffer-name buffer)))
(error "%s" msb--error))))))
Example:
\(msb--aggregate-alist
- '((a . a1) (a . a2) (b . b1) (c . c3) (a . a4) (a . a3) (b . b3) (b . b2))
+ \\='((a . a1) (a . a2) (b . b1) (c . c3) (a . a4) (a . a3) (b . b3) (b . b2))
(function string=)
(lambda (item1 item2)
(string< (symbol-name item1) (symbol-name item2))))
list))
(defun msb--make-keymap-menu (raw-menu)
- (let ((end (cons '(nil) 'menu-bar-select-buffer))
+ (let ((end 'menu-bar-select-buffer)
(mcount 0))
(mapcar
(lambda (sub-menu)
(setcdr (nthcdr msb-max-menu-items frames) nil))
(setq frames-menu
(nconc
- (list 'frame f-title '(nil) 'keymap f-title)
+ (list 'frame f-title 'keymap f-title)
(mapcar
(lambda (frame)
(nconc
(list (frame-parameter frame 'name)
- (frame-parameter frame 'name)
- (cons nil nil))
+ (frame-parameter frame 'name))
`(lambda ()
(interactive) (menu-bar-select-frame ,frame))))
frames)))))