[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: UP and DOWN with multi-line minibuffer history
From: |
Eli Zaretskii |
Subject: |
Re: UP and DOWN with multi-line minibuffer history |
Date: |
Mon, 14 Dec 2015 18:00:26 +0200 |
> From: David Kastrup <address@hidden>
> Cc: Juri Linkov <address@hidden>, address@hidden
> Date: Mon, 14 Dec 2015 10:25:20 +0100
>
> Eli Zaretskii <address@hidden> writes:
>
> > Sorry, I don't understand why supporting goal-column must have this
> > side effect. In a normal buffer, we do support goal-column (in the
> > visual-line sense), and still we don't jump to the firs screen line of
> > a long logical line.
>
> Really?
>
> >From simple.el:
>
> (defun line-move (arg &optional noerror to-end try-vscroll)
> "Move forward ARG lines.
> If NOERROR, don't signal an error if we can't move ARG lines.
> TO-END is unused.
> TRY-VSCROLL controls whether to vscroll tall lines: if either
> `auto-window-vscroll' or TRY-VSCROLL is nil, this function will
> not vscroll."
> [...]
> (if (and line-move-visual
> ;; Display-based column are incompatible with goal-column.
> (not goal-column)
>
> A bit of git-blame work reveals that this was introduced by a certain
> Eli Zaretskii in:
>
> commit 064f328a6ac90698c719b6eace60d6f4c90e3f08
> Author: Eli Zaretskii <address@hidden>
> Date: Fri Sep 16 20:15:16 2011 +0300
>
> Fix bug #971 with next/previous-line when goal-column is set.
>
> lisp/simple.el (line-move): If goal-column is set, move by logical
> lines, not by display lines.
> (next-line, previous-line, goal-column, line-move-visual): Doc fix
> to reflect the above change.
I said "in the visual-line sense", and I meant it. You are looking at
the wrong part of the code; you should instead look at how
line-move-visual calls vertical-motion passing it the value of
temporary-goal-column.