Mercurial > emacs
changeset 73109:4a02fd618570
* simple.el (line-move-finish): Handle corner case for fields in
continued lines.
(line-move-1): Remove flawed test for that case.
author | Chong Yidong <cyd@stupidchicken.com> |
---|---|
date | Sun, 24 Sep 2006 21:58:12 +0000 |
parents | e6a2cb7ec280 |
children | 1f708673d34f |
files | lisp/ChangeLog lisp/simple.el |
diffstat | 2 files changed, 18 insertions(+), 9 deletions(-) [+] |
line wrap: on
line diff
--- a/lisp/ChangeLog Sun Sep 24 20:44:52 2006 +0000 +++ b/lisp/ChangeLog Sun Sep 24 21:58:12 2006 +0000 @@ -1,3 +1,9 @@ +2006-09-24 Chong Yidong <cyd@stupidchicken.com> + + * simple.el (line-move-finish): Handle corner case for fields in + continued lines. + (line-move-1): Remove flawed test for that case. + 2006-09-24 Ken Manheimer <ken.manheimer@gmail.com> * icomplete.el (icomplete-simple-completing-p): Use the correct
--- a/lisp/simple.el Sun Sep 24 20:44:52 2006 +0000 +++ b/lisp/simple.el Sun Sep 24 21:58:12 2006 +0000 @@ -3604,15 +3604,6 @@ (let ((inhibit-field-text-motion t)) (setq line-end (line-end-position))) (goto-char (constrain-to-field line-end (point) t t)) - ;; When moving a single line, update the goal-column - ;; if we couldn't move to the end of line due to a - ;; field boundary. Otherwise we'll get stuck at the - ;; original position during the column motion in - ;; line-move-finish. - (and (/= line-end (point)) - (= orig-arg 1) - (setq temporary-goal-column - (max temporary-goal-column (current-column)))) ;; If there's no invisibility here, move over the newline. (cond ((eobp) @@ -3679,6 +3670,7 @@ (setq repeat nil) (let (new + (old (point)) (line-beg (save-excursion (beginning-of-line) (point))) (line-end ;; Compute the end of the line @@ -3693,6 +3685,17 @@ ;; Move to the desired column. (line-move-to-column column) + + ;; Corner case: suppose we start out in a field boundary in + ;; the middle of a continued line. When we get to + ;; line-move-finish, point is at the start of a new *screen* + ;; line but the same text line; then line-move-to-column would + ;; move us backwards. Test using C-n with point on the "x" in + ;; (insert "a" (propertize "x" 'field t) (make-string 89 ?y)) + (and forward + (< (point) old) + (goto-char old)) + (setq new (point)) ;; Process intangibility within a line.