]> git.eshelyaron.com Git - emacs.git/commitdiff
(push_key_description): If C without modifiers is < 32,
authorGerd Moellmann <gerd@gnu.org>
Mon, 14 Aug 2000 12:44:38 +0000 (12:44 +0000)
committerGerd Moellmann <gerd@gnu.org>
Mon, 14 Aug 2000 12:44:38 +0000 (12:44 +0000)
make sure to print `C-' before `M-', like in the manual.

src/keymap.c

index d577fb7acbc0777bf5ac6caeab56882f1b852fba..3d6cf0c472375eabcf8a44595b44f703b799ad3c 100644 (file)
@@ -1824,8 +1824,12 @@ push_key_description (c, p)
      register unsigned int c;
      register char *p;
 {
+  unsigned c2;
+  
   /* Clear all the meaningless bits above the meta bit.  */
   c &= meta_modifier | ~ - meta_modifier;
+  c2 = c & ~(alt_modifier | ctrl_modifier | hyper_modifier
+            | meta_modifier | shift_modifier | super_modifier);
 
   if (c & alt_modifier)
     {
@@ -1833,11 +1837,12 @@ push_key_description (c, p)
       *p++ = '-';
       c -= alt_modifier;
     }
-  if (c & ctrl_modifier)
+  if ((c & ctrl_modifier) != 0
+      || (c2 < ' ' && c2 != 27 && c2 != '\t' && c2 != Ctl ('M')))
     {
       *p++ = 'C';
       *p++ = '-';
-      c -= ctrl_modifier;
+      c &= ~ctrl_modifier;
     }
   if (c & hyper_modifier)
     {
@@ -1885,8 +1890,7 @@ push_key_description (c, p)
        }
       else
        {
-         *p++ = 'C';
-         *p++ = '-';
+         /* `C-' already added above.  */
          if (c > 0 && c <= Ctl ('Z'))
            *p++ = c + 0140;
          else