Mercurial > emacs
changeset 62953:925395d813a9
(easy-menu-return-item): Find menu items with a nil command binding.
author | Stefan Monnier <monnier@iro.umontreal.ca> |
---|---|
date | Wed, 01 Jun 2005 16:21:35 +0000 |
parents | 95c3843ef1b8 |
children | c3194d15a21a |
files | lisp/emacs-lisp/easymenu.el |
diffstat | 1 files changed, 10 insertions(+), 3 deletions(-) [+] |
line wrap: on
line diff
--- a/lisp/emacs-lisp/easymenu.el Wed Jun 01 15:33:50 2005 +0000 +++ b/lisp/emacs-lisp/easymenu.el Wed Jun 01 16:21:35 2005 +0000 @@ -1,6 +1,6 @@ ;;; easymenu.el --- support the easymenu interface for defining a menu -;; Copyright (C) 1994,96,98,1999,2000,2004 Free Software Foundation, Inc. +;; Copyright (C) 1994,96,98,1999,2000,2004,2005 Free Software Foundation, Inc. ;; Keywords: emulations ;; Author: Richard Stallman <rms@gnu.org> @@ -534,7 +534,7 @@ (easy-menu-do-add-item map item before))) (defun easy-menu-item-present-p (map path name) - "In submenu of MAP with path PATH, return true iff item NAME is present. + "In submenu of MAP with path PATH, return non-nil iff item NAME is present. MAP and PATH are defined as in `easy-menu-add-item'. NAME should be a string, the name of the element to be looked for." (easy-menu-return-item (easy-menu-get-map map path) name)) @@ -552,7 +552,14 @@ "In menu MENU try to look for menu item with name NAME. If a menu item is found, return (NAME . item), otherwise return nil. If item is an old format item, a new format item is returned." - (let ((item (lookup-key menu (vector (easy-menu-intern name)))) + ;; The call to `lookup-key' also calls the C function `get_keyelt' which + ;; looks inside a menu-item to only return the actual command. This is + ;; not what we want here. We should either add an arg to lookup-key to be + ;; able to turn off this "feature", or else we could use map-keymap here. + ;; In the mean time, I just use `assq' which is an OK approximation since + ;; menus are rarely built from vectors or char-tables. + (let ((item (or (cdr (assq name menu)) + (lookup-key menu (vector (easy-menu-intern name))))) ret enable cache label) (cond ((stringp (car-safe item))