Subject: bug#17272: bug#19064: bug#17272: bug#19064: 25.0.50; `message' overwrites `y-or-n-p' prompt, so user misses it

From: Drew Adams <[email-masked]>
Date: Thu, 14 Nov 2019 08:28:50 -0800 (PST)

> > [I still don't understand why it's said that your
> > minibuffer input gets permanently hidden, in that
> > scenario.  I suppose that if the result of your
> > `y-or-n-p' answer causes Emacs to quit or to kill
> > stuff then that could happen, but I wouldn't think
> > it would happen generally.  Your input is in the
> > minibuffer; the prompt from `y-or-n-p' is in the
> > echo area.]
> 
> You misunderstood the word "permanently": We didn't mean you can't get
> the y-or-n-p prompt back but that the prompt doesn't come back from
> alone without user interaction, no matter how long you wait.

The statement made wasn't about the prompt.  It was
about minibuffer input.

My reply was that input is in the minibuffer,
and both `message' and `y-or-n-p' write to the
echo area (or at least they both did), so I
can't imagine how minibuffer input is lost or
"permanently hidden".

> > > AFAICT only the behavior for these special
> > > situations have been made a bit more user
> > > friendly, and all other calls of message or
> > > mb-message are uneffected (is that correct,
> > > Juri?) so that third party stuff should
> > > not be affected.
> >
> > I see.  I hope that's right.  I got the impression
> > that a change was being made to detect whether the
> > minibuffer is active, and, when so, make `message'
> > calls behave instead like `minibuffer-message'.
> > That would not be good.
> >
> > Can someone please confirm that that's not the case?
> 
> I think Juri did that.

I didn't think so - not explicitly.  He confirmed
your "AFAICT only the behavior..." description, but
also your statement that "`y-or-n-p' has been
reimplemented to use read-from-minibuffer instead of
read-key" statement. (Or perhaps just one of those?)

There are mentions in this thread (and others?) of
`minibuffer-message' being used in place of `message'
when the minibuffer is active.  So it's still not
clear to me that such a change is not being made.

And I disagreed that `y-or-n-p' should read from
the minibuffer instead of reading a key.  I guessed
that the problem that that tries to solve should
still exist for all uses of `read-key' that issue
a prompt (which is probably all uses of it).  No?

A general statement that "third party stuff should
not be affected" is great, as far as it goes.  But
I guess I'll just have to wait till Emacs 27 to see
the devil in the details.