1
0
mirror of https://git.savannah.gnu.org/git/emacs.git synced 2024-11-29 07:58:28 +00:00

(easy-menu-return-item): Find menu items with a nil command binding.

This commit is contained in:
Stefan Monnier 2005-06-01 16:22:00 +00:00
parent 358e4d6d1d
commit 6cb9fac363
2 changed files with 15 additions and 3 deletions

View File

@ -1,3 +1,8 @@
2005-06-01 Stefan Monnier <monnier@iro.umontreal.ca>
* emacs-lisp/easymenu.el (easy-menu-return-item): Quick fix to find
menu items with a nil command binding.
2005-06-01 Juanma Barranquero <lekktu@gmail.com> 2005-06-01 Juanma Barranquero <lekktu@gmail.com>
* emacs-lisp/cl-macs.el (defsetf): * emacs-lisp/cl-macs.el (defsetf):

View File

@ -1,6 +1,6 @@
;;; easymenu.el --- support the easymenu interface for defining a menu ;;; 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 ;; Keywords: emulations
;; Author: Richard Stallman <rms@gnu.org> ;; Author: Richard Stallman <rms@gnu.org>
@ -534,7 +534,7 @@ earlier by `easy-menu-define' or `easy-menu-create-menu'."
(easy-menu-do-add-item map item before))) (easy-menu-do-add-item map item before)))
(defun easy-menu-item-present-p (map path name) (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'. 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." 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)) (easy-menu-return-item (easy-menu-get-map map path) name))
@ -552,7 +552,14 @@ NAME should be a string, the name of the element to be removed."
"In menu MENU try to look for menu item with name NAME. "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 a menu item is found, return (NAME . item), otherwise return nil.
If item is an old format item, a new format item is returned." 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) ret enable cache label)
(cond (cond
((stringp (car-safe item)) ((stringp (car-safe item))