On Wed, Jul 01, 2015 at 03:07:12AM -0700, Ilya Zakharevich wrote: > On Wed, Mar 04, 2015 at 08:01:01PM +0200, Eli Zaretskii wrote: > > I suggest, indeed, to clean up the code so we could commit it to the > > master branch. That way, it will get wider testing, and we can fix > I had no time to work on the code itself, but > • I fixed the formatting, > • I pumped up the docs, > • I put in the suggested eassert(). The variant I sent was too primitive — it was not covering a (common?) usage case when (with AltGr-layouts) leftCtrl+rightCtrl was behaving differently than pressing AltGr: • leftCtrl+rightCtrl would trigger C-M-key; • altGr would enter the character payload. This update (0) fixes two formatting-style omissions; (A) adds A LOAD of new comments; (B) treats such important cases (as above) separately; (z) Marks a piece of old code which does not make any sense. (see the last chunk in the relative patch) Notes: • In (B), there are some decisions to make. I encapsulate these decisions into two strings. For best result, these strings should be user-customizable. However, currently they are just put into C #defines. When I sit on this more, and if these customizations turn out to be useful, one can make them into Lisp variables. • There is a bug in the (old) Emacs code which prevents some cases treated in (B) from being really useful. I did not fix it yet. To see the bug: ∘ switch to layout with AltGr; ∘ assume that AltGr-s produces ß (as with US International); ∘ pressing AltGr-rightControl-s produces Meta-ß; ∘ pressing rightControl-AltGr-s produces C-M-s. (I do not think this effect is intentional.) • And, BTW, is it documented anywhere that leftControl-rightControl-key produces C-M-key? I include two patches: □ absolute (ignore the previous patches) □ relative (with whitespace ignored) — for reading. Enjoy, Ilya