Subject: bug#60740: 29.0.60; Broken isearch-emoji-by-name

From: Daniel Martín <[email-masked]>
Date: Thu, 12 Jan 2023 12:25:03 +0100

Eli Zaretskii <[email-masked]> writes:

>> From: Juri Linkov <[email-masked]>
>> Date: Wed, 11 Jan 2023 21:45:44 +0200
>> 
>> etc/NEWS:
>> 
>>   +++
>>   *** New command 'isearch-emoji-by-name'.
>>   It is bound to 'C-x 8 e RET' during an incremental search.  The
>>   command accepts the Unicode name of an Emoji (for example, "smiling
>>   face" or "heart with arrow"), like 'C-x 8 e e', with minibuffer
>>   completion, and adds the Emoji into the search string.
>> 
>> These examples "smiling face" and "heart with arrow" work fine.
>> 
>> But typing e.g. 'C-s C-x 8 e RET waving hand RET' fails with:
>> 
>>   ⛔ Error (transient): Inconsistent transient state detected.
>>   This should never happen.
>>   Please open an issue and post the shown command log.
>>   This is a heisenbug, so any additional details might help.
>>   Thanks!
>
> Looks like a problem with any Emoji that has variants, where you need
> to select one of the variants?
>

The command suspends the isearch while the emoji-search command is
invoked, but I see that the isearch reactivates prematurely, when the
Transient menu is shown (M-x debug-watch RET isearch-suspended RET is
helpful here).

Perhaps this is conflicting with Transient in some way.  We should try
to keep the isearch suspended until after the Transient menu interaction
has finished, I think.