> No, AFAIR this is all done in C. What about functions like `read-event'? It returns integers if I press M-[letter] or C-[letter]. Paul On Wed, 28 Oct 2020 at 17:31, Eli Zaretskii wrote: > > From: Paul Pogonyshev > > Date: Wed, 28 Oct 2020 17:16:59 +0100 > > Cc: Juri Linkov , 43830@debbugs.gnu.org > > > > > > However, in Elisp this is further complicated by there being no > > > > real KeyEvent structure, instead it's a single integer as far as I > > > > can see. > > > > > > Why would you need that? If we decide to use XkbTranslateKeyCode, we > > > could translate the keycode in C, according to some logic that took > > > into account the modifiers and perhaps also some user options, and > > > returned the resulting translated character. > > > > The point is that the character is not enough, you need to know both > > the character and the physical key (you cannot reconstruct the key > > from the character alone). E.g. suppose I type 'й' in Russian layout. > > If it is a self-inserting command, character 'й' should be added to the > > active buffer. But if I'm typing a multikey binding, it should be > > interpreted as 'q' (it's the same physical key), so that e.g. 'C-ч й' is > > translated to 'C-x q'. Without looking, I'm pretty sure this goes well > > into Elisp part of Emacs > > No, AFAIR this is all done in C. >