Subject: bug#40152: 27.0.90; icomplete vs recursive prompts

From: Eli Zaretskii <[email-masked]>
Date: Sat, 21 Mar 2020 15:36:35 +0200

> From: Kévin Le Gouguec <[email-masked]>
> Cc: [email-masked]
> Date: Sat, 21 Mar 2020 13:21:27 +0100
> 
> >> The identifier prompt is replaced with the etags prompt as soon as a
> >> single character is typed.  While in the etags prompt, one can use
> >> icomplete commands (e.g. TAB, C-.) as well as C-q CHAR to input
> >> characters one-by-one.
> >
> > What would you like to happen instead?
> 
> When the etags prompt interrupts the xref prompt, I'd like the etags
> prompt to remain uninterrupted until I exit it (with e.g. RET/C-j).  In
> particular, self-inserting characters do not cause the xref prompt to
> come back.
> 
> For example, if I'm in a buffer whose default-directory is the root of
> the Emacs source repository (e.g. in a Dired buffer, visiting the
> Makefile…) and I hit C-.

You mean, M-., right?

>(and point is not on something that looks like an identifier),

How do you do that?  If I type M-. in *scratch*, Emacs doesn't ask me
whether to visit a tags table (because the major mode is emacs-lisp).
I need to visit a C file in src/ or lib-src/, but then all I need to
type at the prompt is RET, nothing else.  And if I do the above from a
Dired buffer which shows the Emacs's root directory, then I get the
prompt about visiting the tags table without any "Find definitions"
prompt, and the problem doesn't happen.

So please show the exact recipe for how to reproduce the problem you
see.

> here's what happens:
> 
> 1. the "Find definitions of" prompt appears,
> 2. I start typing an identifier,
> 3. the "Visit tags table" prompt interrupts,
> 4. I'd like to input "src/ C-j", but every self-inserting character
>    makes the prompt go back-and-forth between "Find definitions of" and
>    "Visit tags table".  Worse, when the prompt comes back to "Visit tags
>    table", any character I had previously input has disappeared.

So the problem happens _after_ the prompt, not _with_ the prompt.
That wasn't quite clear, at least to me, from your original report:
there was no sign in it what was the actual problem and what was the
expected and result.  Now I think it's becoming clearer, thanks.