emacs-diffs
[Top][All Lists]
Advanced

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

[Emacs-diffs] /srv/bzr/emacs/trunk r109851: * keymap.c (push_key_descrip


From: Chong Yidong
Subject: [Emacs-diffs] /srv/bzr/emacs/trunk r109851: * keymap.c (push_key_description): Print M-TAB as C-M-i.
Date: Sun, 02 Sep 2012 11:50:29 +0800
User-agent: Bazaar (2.5.0)

------------------------------------------------------------
revno: 109851
fixes bug: http://debbugs.gnu.org/11758
committer: Chong Yidong <address@hidden>
branch nick: trunk
timestamp: Sun 2012-09-02 11:50:29 +0800
message:
  * keymap.c (push_key_description): Print M-TAB as C-M-i.
modified:
  src/ChangeLog
  src/keymap.c
=== modified file 'src/ChangeLog'
--- a/src/ChangeLog     2012-09-02 02:22:33 +0000
+++ b/src/ChangeLog     2012-09-02 03:50:29 +0000
@@ -1,3 +1,8 @@
+2012-09-02  Chong Yidong  <address@hidden>
+
+       * keymap.c (push_key_description): Print M-TAB as C-M-i
+       (Bug#11758).
+
 2012-09-02  Juanma Barranquero  <address@hidden>
 
        * makefile.w32-in (CCL_H, W32FONT_H): New macros.

=== modified file 'src/keymap.c'
--- a/src/keymap.c      2012-08-28 06:20:08 +0000
+++ b/src/keymap.c      2012-09-02 03:50:29 +0000
@@ -2157,7 +2157,7 @@
 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 @@
       return p;
     }
 
+  tab_as_ci = (c2 == '\t' && (c & meta_modifier));
+
   if (c & alt_modifier)
     {
       *p++ = 'A';
@@ -2178,7 +2180,8 @@
       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 @@
          *p++ = 'S';
          *p++ = 'C';
        }
+      else if (tab_as_ci)
+       {
+         *p++ = 'i';
+       }
       else if (c == '\t')
        {
          *p++ = 'T';


reply via email to

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