emacs-diffs
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Emacs-diffs] trunk r117242: Avoid the type error on f10 when lookup-key


From: Sam Steingold
Subject: [Emacs-diffs] trunk r117242: Avoid the type error on f10 when lookup-key returns an number.
Date: Mon, 02 Jun 2014 19:02:33 +0000
User-agent: Bazaar (2.6b2)

------------------------------------------------------------
revno: 117242
revision-id: address@hidden
parent: address@hidden
committer: Sam Steingold <address@hidden>
branch nick: trunk
timestamp: Mon 2014-06-02 15:02:31 -0400
message:
  Avoid the type error on f10 when lookup-key returns an number.
  
  * lisp/menu-bar.el (lookup-key-ignore-too-long): Extract from...
  (popup-menu): ...here.
  (menu-bar-open): Use it to avoid an error when `lookup-key'
  returns a number.
modified:
  lisp/ChangeLog                 changelog-20091113204419-o5vbwnq5f7feedwu-1432
  lisp/menu-bar.el               menubar.el-20091113204419-o5vbwnq5f7feedwu-546
=== modified file 'lisp/ChangeLog'
--- a/lisp/ChangeLog    2014-06-02 18:36:47 +0000
+++ b/lisp/ChangeLog    2014-06-02 19:02:31 +0000
@@ -1,3 +1,10 @@
+2014-06-02  Sam Steingold  <address@hidden>
+
+       * menu-bar.el (lookup-key-ignore-too-long): Extract from...
+       (popup-menu): ...here.
+       (menu-bar-open): Use it to avoid an error when `lookup-key'
+       returns a number.
+
 2014-06-02  Michael Albinus  <address@hidden>
 
        * net/tramp.el (tramp-call-process): Add traces.

=== modified file 'lisp/menu-bar.el'
--- a/lisp/menu-bar.el  2014-05-21 16:35:31 +0000
+++ b/lisp/menu-bar.el  2014-06-02 19:02:31 +0000
@@ -2140,6 +2140,13 @@
 (declare-function x-menu-bar-open "term/x-win" (&optional frame))
 (declare-function w32-menu-bar-open "term/w32-win" (&optional frame))
 
+(defun lookup-key-ignore-too-long (map key)
+  "Call `lookup-key' and convert numeric values to nil."
+  (let ((binding (lookup-key map key)))
+    (if (numberp binding)       ; `too long'
+        nil
+      binding)))
+
 (defun popup-menu (menu &optional position prefix from-menu-bar)
   "Popup the given menu and call the selected option.
 MENU can be a keymap, an easymenu-style menu or a list of keymaps as for
@@ -2192,11 +2199,9 @@
              (let ((mouse-click (apply 'vector event))
                    binding)
                (while (and map (null binding))
-                 (setq binding (lookup-key (car map) mouse-click))
-                 (if (numberp binding) ; `too long'
-                     (setq binding nil))
+                 (setq binding (lookup-key-ignore-too-long (car map) 
mouse-click))
                  (setq map (cdr map)))
-                 binding))
+                binding))
             (t
              ;; We were given a single keymap.
              (lookup-key map (apply 'vector event)))))
@@ -2270,8 +2275,10 @@
       (let* ((x tty-menu--initial-menu-x)
             (menu (menu-bar-menu-at-x-y x 0 frame)))
        (popup-menu (or
-                    (lookup-key global-map (vector 'menu-bar menu))
-                    (lookup-key (current-local-map) (vector 'menu-bar menu))
+                    (lookup-key-ignore-too-long
+                      global-map (vector 'menu-bar menu))
+                    (lookup-key-ignore-too-long
+                      (current-local-map) (vector 'menu-bar menu))
                     (cdar (minor-mode-key-binding (vector 'menu-bar menu))))
                    (posn-at-x-y x 0 nil t) nil t)))
      (t (with-selected-frame (or frame (selected-frame))


reply via email to

[Prev in Thread] Current Thread [Next in Thread]