Subject: bug#16645: 24.3; in xterm, keypad = is translated to M-o x

From: Vincent Lefevre <[email-masked]>
Date: Sat, 28 Mar 2020 02:23:27 +0100

On 2020-03-28 01:55:40 +0100, Stefan Kangas wrote:
> Vincent Lefevre <[email-masked]> writes:
> 
> > On 2014-02-05 01:15:48 +0100, Vincent Lefevre wrote:
> >> On 2014-02-05 00:58:14 +0100, Vincent Lefevre wrote:
> >> > With "emacs -Q -nw" in xterm, the keypad = key (keysym 0xffbd, KP_Equal)
> >> > is translated to M-o x instead of the = character.
> >> 
> >> According to "tack", the keypad "=" gives:
> >> 
> >> ^[OX       Unknown
> >> 
> >> instead of
> >> 
> >> =          Unknown
> >> 
> >> Then, I don't know yet whether this is intentional or this is a bug
> >> in xterm.
> >
> > It was due to my XKB settings (only the "=" keypad key gave a
> > KP_something keysym due to missing configuration for this key,
> > contrary to the other keypad ones).
> 
> So it seems like this was not a bug in Emacs?

I think that there's something missing for Emacs. As I've said, the
xterm.el file contains only:

    (define-key map "\eOj" [kp-multiply])
    (define-key map "\eOk" [kp-add])
    (define-key map "\eOl" [kp-separator])
    (define-key map "\eOm" [kp-subtract])
    (define-key map "\eOo" [kp-divide])
    (define-key map "\eOp" [kp-0])
    (define-key map "\eOq" [kp-1])
    (define-key map "\eOr" [kp-2])
    (define-key map "\eOs" [kp-3])
    (define-key map "\eOt" [kp-4])
    (define-key map "\eOu" [kp-5])
    (define-key map "\eOv" [kp-6])
    (define-key map "\eOw" [kp-7])
    (define-key map "\eOx" [kp-8])
    (define-key map "\eOy" [kp-9])

Why nothing for [kp-equal]?

> >                                     So, now that the "=" keypad
> > key gives a normal "=" keysym, the problem is no longer visible
> > in Emacs on my machine. However I'm still wondering about the
> > remarks below:
> 
> I'm assuming you are here referring the difference between "^[OX" and
> "\eOx"?  It seems to me that it's just a difference in how this keysym
> is displayed by Emacs and tack.

But my point is that the case for "O" and "X" matters. For instance,
M-O A moves the cursor up, but M-O a is undefined.

-- 
Vincent Lefèvre <[email-masked]> - Web: <https://www.vinc17.net/>
100% accessible validated (X)HTML - Blog: <https://www.vinc17.net/blog/>
Work: CR INRIA - computer arithmetic / AriC project (LIP, ENS-Lyon)