Subject: Re: bug#32108: 27.0.50; Insertion of char from input method during macro invocation duplicates the char

From: Eli Zaretskii <[email-masked]>
Date: Sat, 21 Jul 2018 12:15:57 +0300

> Date: Wed, 11 Jul 2018 12:29:03 +0300
> From: Eli Zaretskii <[email-masked]>
> Cc: [email-masked], [email-masked]
> 
> > From: Glenn Morris <[email-masked]>
> > Cc: Eli Zaretskii <[email-masked]>,  [email-masked]
> > Date: Tue, 10 Jul 2018 20:54:31 -0400
> > 
> > bisects to 30a6b1f81412044aa7dda5573b0142a0a03c4fd3.
> 
> AFAICS, this happens because when an input method is active, read_char
> is called recursively from quail-start-translation, and that recursive
> call records the same character for the second time.
> 
> Any ideas except introduction of a new variable, inhibit-record-char,
> which quail-start-translation would bind to prevent recording of the
> same key more than once?

No other ideas, so I pushed to the master branch a fix along the above
lines (except it turned out to be slightly more tricky due to input
methods that translate sequences of two or more keys).  Please test.

Btw, it turned out the offending commit also caused us in this
situation to output keys twice to the dribble file and insert them
twice into recent-keys, so this fix resolves those problems as well.

Let's see how much I broke this time...