unofficial mirror of bug-gnu-emacs@gnu.org 
 help / color / mirror / code / Atom feed
From: Eli Zaretskii <eliz@gnu.org>
To: Juri Linkov <juri@linkov.net>
Cc: 22544@debbugs.gnu.org
Subject: bug#22544: 25.0.90; Long history items cause surprising positioning of cursor in minibuffer
Date: Fri, 05 Feb 2016 11:53:44 +0200	[thread overview]
Message-ID: <83h9hnv5xz.fsf@gnu.org> (raw)
In-Reply-To: <87fux82bp7.fsf@mail.linkov.net> (message from Juri Linkov on Fri, 05 Feb 2016 02:42:12 +0200)

> From: Juri Linkov <juri@linkov.net>
> Cc: 22544@debbugs.gnu.org
> Date: Fri, 05 Feb 2016 02:42:12 +0200
> 
> >> Sorry, I don't understand: it's unexpected that the cursor jumps
> >> to the previous visual line (this is because of line-move-visual),
> >> or an invalid column position on the previous visual line?
> >
> > The latter.
> 
> It was a bug caused by an old value of temporary-goal-column
> not re-calculated in previous-line when previous-line fails
> by bumping against the top of the minibuffer (and going to the previous
> history element with an invalidated value of temporary-goal-column).
> It can be fixed by this patch:

Thanks, please commit that to emacs-25.

> >> This is because it keeps the last column before navigating
> >> to the previous history element.  The last column was near
> >> the beginning of the top visual line.
> >
> > But if a long line is not in history, then the cursor is not
> > positioned on the same column, it is positioned at the end of the
> > history item.  So this behavior is inconsistent, and depends on
> > whether long items are or aren't in the history.
> 
> There are a few other possibilities for alternative behavior:
> 
> 1. Put the cursor at the end of the top visual line, not logical line.
>    Drawback: the cursor will be in the middle of the logical line.
> 
> 2. Go to the previous history element when the cursor is anywhere
>    on any of the several visual lines of the top logical line,
>    not just the top visual line.
>    Drawback: can't move the cursor to the top visual line to edit text in it.
> 
> 3. When moving the cursor from one visual line to another visual line of
>    the logical line, keep the cursor at the end of the visual line.
>    The problem is that this behavior should be implemented in previous-line.
> 
> 4. Set temporary-goal-column like in the patch above, but instead of 0,
>    set it to the column of the end of the top visual line, so <UP>
>    will put the cursor at the end of the top visual line in your test case.

Can't we special-case a line that isn't broken into several visual
lines, and put the cursor at the end of such lines only?  That'd be
the best.

If that is too hard, I guess 1 is the second best.  (I'm not really
sure how 1 is different from 4, so maybe I actually mean 4 here.)

Thanks.





  reply	other threads:[~2016-02-05  9:53 UTC|newest]

Thread overview: 12+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2016-02-03 16:32 bug#22544: 25.0.90; Long history items cause surprising positioning of cursor in minibuffer Eli Zaretskii
2016-02-04  0:49 ` Juri Linkov
2016-02-04 16:28   ` Eli Zaretskii
2016-02-05  0:42     ` Juri Linkov
2016-02-05  9:53       ` Eli Zaretskii [this message]
2016-02-06  0:52         ` Juri Linkov
2016-02-06  7:45           ` Eli Zaretskii
2016-02-07  0:49             ` Juri Linkov
2016-02-07 19:29               ` Eli Zaretskii
2016-02-08  0:40                 ` Juri Linkov
2016-02-08 18:23                   ` Eli Zaretskii
2016-02-10  0:32                     ` Juri Linkov

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

  List information: https://www.gnu.org/software/emacs/

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=83h9hnv5xz.fsf@gnu.org \
    --to=eliz@gnu.org \
    --cc=22544@debbugs.gnu.org \
    --cc=juri@linkov.net \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
Code repositories for project(s) associated with this public inbox

	https://git.savannah.gnu.org/cgit/emacs.git

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).