* src/keymap.c (Fdefine_key): Fix Lisp_Object/int mixup; apply some CSE.
authorStefan Monnier <monnier@iro.umontreal.ca>
Tue, 2 Aug 2011 16:02:52 +0000 (12:02 -0400)
committerStefan Monnier <monnier@iro.umontreal.ca>
Tue, 2 Aug 2011 16:02:52 +0000 (12:02 -0400)
src/ChangeLog
src/keymap.c

index 858833d..59f0951 100644 (file)
@@ -1,3 +1,7 @@
+2011-08-02  Stefan Monnier  <monnier@iro.umontreal.ca>
+
+       * keymap.c (Fdefine_key): Fix Lisp_Object/int mixup; apply some CSE.
+
 2010-12-03  Don March  <don@ohspite.net>
 
        * keymap.c (Fdefine_key): Fix non-prefix key error message when
index 03688ab..c461fdd 100644 (file)
@@ -1217,16 +1217,9 @@ binding KEY to DEF is added at the front of KEYMAP.  */)
       keymap = get_keymap (cmd, 0, 1);
       if (!CONSP (keymap))
        {
-         char trailing_esc[5];
-         if (c == meta_prefix_char && metized)
-           {
-             if (idx == 0)
-               strcpy(trailing_esc, "ESC");
-             else
-               strcpy(trailing_esc, " ESC");
-           }
-         else
-             strcpy(trailing_esc, "");
+         const char *trailing_esc = ((EQ (c, meta_prefix_char) && metized)
+                                     ? (idx == 0 ? "ESC" : " ESC")
+                                     : "");
 
          /* We must use Fkey_description rather than just passing key to
             error; key might be a vector, not a string.  */