(Fdefine_key, Flookup_key): Only do the 0x80->meta_modifier
authorStefan Monnier <monnier@iro.umontreal.ca>
Mon, 7 May 2007 15:41:37 +0000 (15:41 +0000)
committerStefan Monnier <monnier@iro.umontreal.ca>
Mon, 7 May 2007 15:41:37 +0000 (15:41 +0000)
mapping for unibyte strings.

src/ChangeLog
src/keymap.c

index 4491b7c..b6340a1 100644 (file)
@@ -1,3 +1,8 @@
+2007-05-07  Stefan Monnier  <monnier@iro.umontreal.ca>
+
+       * keymap.c (Fdefine_key, Flookup_key): Only do the 0x80->meta_modifier
+       mapping for unibyte strings.
+
 2007-05-01  YAMAMOTO Mitsuharu  <mituharu@math.s.chiba-u.ac.jp>
 
        * macmenu.c (mac_dialog_show): Apply 2007-04-27 change for xmenu.c.
@@ -62,8 +67,8 @@
 
 2007-04-16  Chong Yidong  <cyd@stupidchicken.com>
 
-       * dispnew.c (adjust_frame_glyphs_for_frame_redisplay): Set
-       garbaged flag in presence of window margins.
+       * dispnew.c (adjust_frame_glyphs_for_frame_redisplay):
+       Set garbaged flag in presence of window margins.
        (showing_window_margins_p): New function.
 
        * xdisp.c (cursor_row_p): Only end row on newline if it's a
index c61f5f3..145d872 100644 (file)
@@ -1156,7 +1156,8 @@ binding KEY to DEF is added at the front of KEYMAP.  */)
   if (SYMBOLP (def) && !EQ (Vdefine_key_rebound_commands, Qt))
     Vdefine_key_rebound_commands = Fcons (def, Vdefine_key_rebound_commands);
 
-  meta_bit = VECTORP (key) ? meta_modifier : 0x80;
+  meta_bit = (VECTORP (key) || STRINGP (key) && STRING_MULTIBYTE (key)
+             ? meta_modifier : 0x80);
 
   if (VECTORP (def) && ASIZE (def) > 0 && CONSP (AREF (def, 0)))
     { /* DEF is apparently an XEmacs-style keyboard macro.  */
@@ -1312,7 +1313,7 @@ recognize the default bindings, just as `read-key-sequence' does.  */)
        c = Fevent_convert_list (c);
 
       /* Turn the 8th bit of string chars into a meta modifier.  */
-      if (INTEGERP (c) && XINT (c) & 0x80 && STRINGP (key))
+      if (STRINGP (key) && XINT (c) & 0x8 && !STRING_MULTIBYTE (key))
        XSETINT (c, (XINT (c) | meta_modifier) & ~0x80);
 
       /* Allow string since binding for `menu-bar-select-buffer'