From: Stefan Monnier Date: Fri, 30 Aug 2002 21:46:15 +0000 (+0000) Subject: (easy-menu-filter-return): Handle the X-Git-Tag: emacs-pretest-21.2.91~82 X-Git-Url: http://git.eshelyaron.com/gitweb/?a=commitdiff_plain;h=2cc562bc83dbfe5c97d207f7c4964c7dcd717482;p=emacs.git (easy-menu-filter-return): Handle the case where the filter returns a single menu-entry. --- diff --git a/lisp/emacs-lisp/easymenu.el b/lisp/emacs-lisp/easymenu.el index d0bdef92a79..a41ed5ef72b 100644 --- a/lisp/emacs-lisp/easymenu.el +++ b/lisp/emacs-lisp/easymenu.el @@ -184,11 +184,17 @@ In Emacs a menu filter must return a menu (a keymap), in XEmacs a filter must return a menu items list (without menu name and keywords). This function returns the right thing in the two cases. If NAME is provided, it is used for the keymap." - (when (and (not (keymapp menu)) (consp menu)) + (cond + ((and (not (keymapp menu)) (consp menu)) ;; If it's a cons but not a keymap, then it can't be right ;; unless it's an XEmacs menu. (setq menu (easy-menu-create-menu (or name "") menu))) - (easy-menu-get-map menu nil)) ; Get past indirections. + ((vectorp menu) + ;; It's just a menu entry. + (setq menu (cdr (easy-menu-convert-item menu))))) + (if (keymapp menu) + (easy-menu-get-map menu nil) ; Get past indirections. + menu)) ;;;###autoload (defun easy-menu-create-menu (menu-name menu-items)