Subject: Logical line movement is illogical

From: Kelly Dean <[email-masked]>
Date: Tue, 27 Nov 2012 04:46:15 -0800 (PST)

Using 24.2 on X, not in a terminal emulator:
emacs -Q
(column-number-mode t)
(set-face-attribute 'default nil :font "DejaVu Sans")
(set-face-attribute 'default nil :height 90)
(global-set-key '[S-up] 'previous-logical-line)
(global-set-key '[S-down] 'next-logical-line)
[ret] C-u 40 W [ret] C-u 40 i
So you have 40 "W"s and 40 "i"s, and point is on column 40 at the end of the "i"s.
Now press [up]. Point moves to the "W" at column 10, which is correct since visual line movement is the default.
Now press [S-down]. Where should point go? If the rule is visual line movement, it should move to column 40 at the end of the "i"s. If the rule is to stay on the same column, it should move to the "i" at column 10. But it does neither; instead, it moves to the "i" at column 17. There's no way this is correct.
Now press [S-up]. Point moves to the "W" at column 17, suggesting that the rule is to stay on the same column, which is what the rule ought to be.
Now do:
[C-end] [ret] [ret] C-u 40 W [ret] C-u 40 u
Leaving point on column 40 at the end of the "u"s. Press [up], and point moves to the "W" at column 29, which is correct. Now press [S-down]. Point moves to column 40 at the end of the "u"s, suggesting that the rule is visual line movement, contradicting both the [S-down] and the [S-up] behavior shown previously.
Even if there is some sense to this, it isn't user friendly.