]> git.eshelyaron.com Git - emacs.git/commitdiff
* keymap.c (push_key_description): Print M-TAB as C-M-i.
authorChong Yidong <cyd@gnu.org>
Sun, 2 Sep 2012 03:50:29 +0000 (11:50 +0800)
committerChong Yidong <cyd@gnu.org>
Sun, 2 Sep 2012 03:50:29 +0000 (11:50 +0800)
Fixes: debbugs:11758
src/ChangeLog
src/keymap.c

index 095effcf3bd299452fdd982734f4dbd0d05c04bb..cb1ef00a542b39f2af7f02db0bc02f226edacd7e 100644 (file)
@@ -1,3 +1,8 @@
+2012-09-02  Chong Yidong  <cyd@gnu.org>
+
+       * keymap.c (push_key_description): Print M-TAB as C-M-i
+       (Bug#11758).
+
 2012-09-02  Juanma Barranquero  <lekktu@gmail.com>
 
        * makefile.w32-in (CCL_H, W32FONT_H): New macros.
index 4031091501cf8b961268ed48d378e91c994c8843..85c384b818034cc2a5b1f3e2abd2fff972cd6ef7 100644 (file)
@@ -2157,7 +2157,7 @@ The `kbd' macro is an approximate inverse of this.  */)
 char *
 push_key_description (EMACS_INT ch, char *p, int force_multibyte)
 {
-  int c, c2;
+  int c, c2, tab_as_ci;
 
   /* Clear all the meaningless bits above the meta bit.  */
   c = ch & (meta_modifier | ~ - meta_modifier);
@@ -2171,6 +2171,8 @@ push_key_description (EMACS_INT ch, char *p, int force_multibyte)
       return p;
     }
 
+  tab_as_ci = (c2 == '\t' && (c & meta_modifier));
+
   if (c & alt_modifier)
     {
       *p++ = 'A';
@@ -2178,7 +2180,8 @@ push_key_description (EMACS_INT ch, char *p, int force_multibyte)
       c -= alt_modifier;
     }
   if ((c & ctrl_modifier) != 0
-      || (c2 < ' ' && c2 != 27 && c2 != '\t' && c2 != Ctl ('M')))
+      || (c2 < ' ' && c2 != 27 && c2 != '\t' && c2 != Ctl ('M'))
+      || tab_as_ci)
     {
       *p++ = 'C';
       *p++ = '-';
@@ -2216,6 +2219,10 @@ push_key_description (EMACS_INT ch, char *p, int force_multibyte)
          *p++ = 'S';
          *p++ = 'C';
        }
+      else if (tab_as_ci)
+       {
+         *p++ = 'i';
+       }
       else if (c == '\t')
        {
          *p++ = 'T';