Subject: bug#60711: Compose fails to generate ≤ and ≥ (only those two! and only in emacs!)

From: Po Lu <[email-masked]>
Date: Mon, 16 Jan 2023 17:57:32 +0800

Gregory Heytings <[email-masked]> writes:

> Compose -> KeyPress event, keysym Multi_key, with XFilterEvent True
> _       -> KeyPress event, keysym underscore, with XFilterEvent True
>>       -> KeyPress event, keysym greater, with XFilterEvent True
>
> after which a KeyPress event, keysym U2265, with XFilterEvent False,
> and for which XmbLookupString returns "≥", is delivered to the client.
>
> What am I missing?

The part where XmbLookupString returns the correct character.  In
addition, the input method may chose to commit a string without a key
event.  This results in an XIM_COMMIT event being sent from the input
method with a string, which, in one of the worst misdesigns ever, makes
Xlib put back a fake key event onto the event queue, then stash the
string somewhere, and return it upon the next call to XmbLookupString.

What input method framework are you using, and what is Marcin using?
And, Marcin, what is the value of locale-coding-system?  If you put a
breakpoint on xim_open_dpy, then type:

  p XLocaleOfIM (xim)

after XOpenIM is called, what is the locale returned there?  What events
do you get when you complete the composition?