I got an emacs abort at the following place in handle_one_xevent
(xterm.c):
...
/* If not using XIM/XIC, and a compose sequence is in
progress,
we break here. Otherwise, chars_matched is always 0. */
if (compose_status.chars_matched > 0 && nbytes == 0)
break;
orig_keysym = keysym;
if (numchars > 1)
{
Lisp_Object c;
/* First deal with keysyms which have defined
translations to characters. */
if (keysym >= 32 && keysym < 128)
...
else
abort ();
}
else
====> abort ();
...
I don't understand this code; can someone explain why numchars has to
be > 1? I've attached a bit of a gdb session, though it probably isn't
very helpful...