emacs-diffs
[Top][All Lists]
Advanced

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

[Emacs-diffs] emacs/src ChangeLog keyboard.c


From: Stefan Monnier
Subject: [Emacs-diffs] emacs/src ChangeLog keyboard.c
Date: Sun, 08 Nov 2009 15:06:52 +0000

CVSROOT:        /sources/emacs
Module name:    emacs
Changes by:     Stefan Monnier <monnier>        09/11/08 15:06:52

Modified files:
        src            : ChangeLog keyboard.c 

Log message:
        (parse_menu_item): Handle `notreal' a bit earlier.
        Use `tem' less.  Make sure KEYEQ holds a string or nil (bug#4879).

CVSWeb URLs:
http://cvs.savannah.gnu.org/viewcvs/emacs/src/ChangeLog?cvsroot=emacs&r1=1.7847&r2=1.7848
http://cvs.savannah.gnu.org/viewcvs/emacs/src/keyboard.c?cvsroot=emacs&r1=1.1017&r2=1.1018

Patches:
Index: ChangeLog
===================================================================
RCS file: /sources/emacs/emacs/src/ChangeLog,v
retrieving revision 1.7847
retrieving revision 1.7848
diff -u -b -r1.7847 -r1.7848
--- ChangeLog   8 Nov 2009 00:14:30 -0000       1.7847
+++ ChangeLog   8 Nov 2009 15:06:50 -0000       1.7848
@@ -1,3 +1,8 @@
+2009-11-08  Stefan Monnier  <address@hidden>
+
+       * keyboard.c (parse_menu_item): Handle `notreal' a bit earlier.
+       Use `tem' less.  Make sure KEYEQ holds a string or nil (bug#4879).
+
 2009-11-08  Chong Yidong  <address@hidden>
 
        * xmenu.c (Fx_popup_menu): Extract event timestamp.  Pass it to

Index: keyboard.c
===================================================================
RCS file: /sources/emacs/emacs/src/keyboard.c,v
retrieving revision 1.1017
retrieving revision 1.1018
diff -u -b -r1.1017 -r1.1018
--- keyboard.c  6 Nov 2009 06:50:57 -0000       1.1017
+++ keyboard.c  8 Nov 2009 15:06:51 -0000       1.1018
@@ -8068,15 +8068,22 @@
   if (inmenubar > 0)
     return 1;
 
-  /* This is a command.  See if there is an equivalent key binding. */
-  tem = AREF (item_properties, ITEM_PROPERTY_KEYEQ);
+  
+  /* If we only want to precompute equivalent key bindings (which we
+     don't even do any more anyway), stop here.  */
+  if (notreal)
+    return 1;
+
+  { /* This is a command.  See if there is an equivalent key binding. */
+    Lisp_Object keyeq = AREF (item_properties, ITEM_PROPERTY_KEYEQ);
+
   /* The previous code preferred :key-sequence to :keys, so we
      preserve this behavior.  */
-  if (STRINGP (tem) && !CONSP (keyhint))
-    tem = Fsubstitute_command_keys (tem);
+    if (STRINGP (keyeq) && !CONSP (keyhint))
+      keyeq = Fsubstitute_command_keys (keyeq);
   else
     {
-      Lisp_Object prefix = AREF (item_properties, ITEM_PROPERTY_KEYEQ);
+       Lisp_Object prefix = keyeq;
       Lisp_Object keys = Qnil;
 
       if (CONSP (prefix))
@@ -8115,18 +8122,16 @@
              if (STRINGP (XCDR (prefix)))
                tem = concat2 (tem, XCDR (prefix));
            }
-         tem = concat2 (build_string ("  "), tem);
-         /* tem = concat3 (build_string ("  ("), tem, build_string (")")); */
+           keyeq = concat2 (build_string ("  "), tem);
+           /* keyeq = concat3(build_string("  ("),tem,build_string(")")); */
        }
+       else
+         keyeq = Qnil;
     }
   
-
-  /* If we only want to precompute equivalent key bindings, stop here. */
-  if (notreal)
-    return 1;
-
   /* If we have an equivalent key binding, use that.  */
-  ASET (item_properties, ITEM_PROPERTY_KEYEQ, tem);
+    ASET (item_properties, ITEM_PROPERTY_KEYEQ, keyeq);
+  }  
 
   /* Include this when menu help is implemented.
   tem = XVECTOR (item_properties)->contents[ITEM_PROPERTY_HELP];




reply via email to

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