Index: emacs/lisp/simple.el diff -c emacs/lisp/simple.el:1.714 emacs/lisp/simple.el:1.715 *** emacs/lisp/simple.el:1.714 Tue Apr 19 18:13:25 2005 --- emacs/lisp/simple.el Tue Apr 26 18:31:19 2005 *************** *** 3403,3421 **** (goto-char (next-char-property-change (point)))) ;; Now move a line. (end-of-line) ! (and (zerop (vertical-motion 1)) ! (if (not noerror) ! (signal 'end-of-buffer nil) ! (setq done t))) (unless done (setq arg (1- arg)))) (while (and (< arg 0) (not done)) (beginning-of-line) ! ! (if (zerop (vertical-motion -1)) ! (if (not noerror) ! (signal 'beginning-of-buffer nil) ! (setq done t))) (unless done (setq arg (1+ arg)) (while (and ;; Don't move over previous invis lines --- 3403,3435 ---- (goto-char (next-char-property-change (point)))) ;; Now move a line. (end-of-line) ! ;; If there's no invisibility here, move over the newline. ! (if (not (line-move-invisible-p (point))) ! ;; We avoid vertical-motion when possible ! ;; because that has to fontify. ! (if (eobp) ! (setq done t) ! (forward-line 1)) ! ;; Otherwise move a more sophisticated way. ! ;; (What's the logic behind this code?) ! (and (zerop (vertical-motion 1)) ! (if (not noerror) ! (signal 'end-of-buffer nil) ! (setq done t)))) (unless done (setq arg (1- arg)))) + ;; The logic of this is the same as the loop above, + ;; it just goes in the other direction. (while (and (< arg 0) (not done)) (beginning-of-line) ! (if (not (line-move-invisible-p (1- (point)))) ! (if (bobp) ! (setq done t) ! (forward-line -1)) ! (if (zerop (vertical-motion -1)) ! (if (not noerror) ! (signal 'beginning-of-buffer nil) ! (setq done t)))) (unless done (setq arg (1+ arg)) (while (and ;; Don't move over previous invis lines
_______________________________________________ Emacs-diffs mailing list Emacs-diffs@gnu.org http://lists.gnu.org/mailman/listinfo/emacs-diffs