Subject: Re: bug#45044: 28.0.50; y-or-n-p-with-timout: allows me to go with the arrow to begin of the minibuffer

From: Eli Zaretskii <[email-masked]>
Date: Sat, 05 Dec 2020 10:54:31 +0200

tags 45044 notabug
close 45044
thanks

> Date: Sat, 5 Dec 2020 11:08:25 +0300
> From: Jean Louis <[email-masked]>
> Cc: [email-masked]
> 
> > > (y-or-n-p-with-timeout "No parent nodes, do you wish to exit? " 2 nil)
> > > 
> > > It allows me, and it should not, to move cursor with arrow left to begin
> > > of the buffer over the words "No parent nodes..."
> > 
> > Why shouldn't it?
> 
> I see that those reading functions allow user to go back. Myself
> I did not maybe use for decades arrows or C-b to go back, as I
> always used BACKSPACE and I am relying that backspace will not
> bring me into impossible situation not to be on read-only text
> when I am anyway just asked to enter something, and not to edit
> the non-editable prompt.

You cannot edit it, but you can move around there in non-destructive
ways.

> Thus from experience of using always BACKSPACE and BACKSPACE does
> not allow me to move to the read-only prompt comes also the
> expectation that arrows or C-b should not move cursor to the
> prompt itself as it is not useful to be on prompt as I just want
> to enter text.

BACKSPACE deletes, so it is not allowed in read-only text.  C-b
doesn't modify the text, so it is allowed.  It can come in handy if,
for example, you want to copy (M-w) the entire contents of the
minibuffer, or its portions that include the prompt.

> The minibuffer also does not move cursor to begin of the prompt
> when using C-a and when there is all that prevention for cursor
> not to move to the prompt then C-b and left arrow makes me
> surprised and it appears as unwanted behavior.

C-a behaves specially in these cases.  In particular, try this:

  C-a C-b C-a

> Maybe it is wanted. To me it is rather unexpected due to habit. I
> expect left arrow not to be able to move onto read-only text.

This expectation is outdated since Emacs 21.1, where "fields" were
introduced into Emacs.  Read all about fields in the node "Fields" of
the ELisp manual.

I'm therefore closing this bug report.