# HG changeset patch # User Chong Yidong # Date 1260125328 0 # Node ID 44e685ee32cba9e45b1a16ac3e3bbd8f28f3686d # Parent 3b1d7962549d1e75ebb109c17467295c3771e22c * simple.el (beginning-of-visual-line): Constrain to field boundaries (Bug#5106). diff -r 3b1d7962549d -r 44e685ee32cb lisp/ChangeLog --- a/lisp/ChangeLog Sun Dec 06 18:13:19 2009 +0000 +++ b/lisp/ChangeLog Sun Dec 06 18:48:48 2009 +0000 @@ -1,3 +1,8 @@ +2009-12-06 Chong Yidong + + * simple.el (beginning-of-visual-line): Constrain to field + boundaries (Bug#5106). + 2009-12-06 Ulf Jasper * xml.el (xml-substitute-numeric-entities): Moved diff -r 3b1d7962549d -r 44e685ee32cb lisp/simple.el --- a/lisp/simple.el Sun Dec 06 18:13:19 2009 +0000 +++ b/lisp/simple.el Sun Dec 06 18:48:48 2009 +0000 @@ -4576,6 +4576,8 @@ (if (/= n 1) (let ((line-move-visual t)) (line-move (1- n) t))) + ;; Unlike `move-beginning-of-line', `move-end-of-line' doesn't + ;; constrain to field boundaries, so we don't either. (vertical-motion (cons (window-width) 0))) (defun beginning-of-visual-line (&optional n) @@ -4585,10 +4587,13 @@ To ignore intangibility, bind `inhibit-point-motion-hooks' to t." (interactive "^p") (or n (setq n 1)) - (if (/= n 1) - (let ((line-move-visual t)) - (line-move (1- n) t))) - (vertical-motion 0)) + (let ((opoint (point))) + (if (/= n 1) + (let ((line-move-visual t)) + (line-move (1- n) t))) + (vertical-motion 0) + ;; Constrain to field boundaries, like `move-beginning-of-line'. + (goto-char (constrain-to-field (point) opoint (/= n 1))))) (defun kill-visual-line (&optional arg) "Kill the rest of the visual line.