bug-gnu-emacs
[Top][All Lists]
Advanced

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

bug#12082: 24.1.50; Wrong character showed by "C-h c"


From: Eli Zaretskii
Subject: bug#12082: 24.1.50; Wrong character showed by "C-h c"
Date: Mon, 30 Jul 2012 18:58:44 +0300

> Date: Mon, 30 Jul 2012 17:05:01 +0200
> From: Dani Moncayo <address@hidden>
> Cc: Juanma Barranquero <address@hidden>, address@hidden
> 
> >>   . switch the keyboard to English ("EN" near the system tray), if you
> >>     can, and type a couple of pure ASCII characters
> >
> > [a]
> > warning: w32fns: WM_CHAR 0x61
> > warning: w32term: 0x61 => 0x61 (cp1252)
> >
> > [z]
> > warning: w32fns: WM_CHAR 0x7a
> > warning: w32term: 0x7a => 0x7a (cp1252)
> >
> >>   . switch the keyboard to Spanish and type ç and M-ç
> >
> > [ç]
> > warning: w32fns: WM_CHAR 0xe7
> > warning: w32term: 0xffffffe7 => 0xe7 (cp1252)
> >
> > [M-ç]
> > warning: w32term: 0xffffff87 => 0x2021 (cp1252)
> >
> > (yes, only one message for this character)
          ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
This means M-ç gets processed by some code in w32fns.c that doesn't
have a DebPrint.  Can you find out which one (by sticking DebPrint)?
For example, these two fragments look as possible suspects:

1)
        default:
          /* If not defined as a function key, change it to a WM_CHAR message. 
*/
          if (wParam > 255 || !lispy_function_keys[wParam])
            {
              DWORD modifiers = construct_console_modifiers ();

            ...
              else
                {
                  /* Let TranslateMessage handle everything else.  */
                  windows_translate = 1;
                }
            }


2)
    translate:
      if (windows_translate)
        {
          MSG windows_msg = { hwnd, msg, wParam, lParam, 0, {0,0} };
          windows_msg.time = GetMessageTime ();
          TranslateMessage (&windows_msg);
          goto dflt;
        }

Can you stick a DebPrint into each block and see which one handles
M-ç?






reply via email to

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