Index: emacs/lisp/simple.el
diff -c emacs/lisp/simple.el:1.738 emacs/lisp/simple.el:1.739
*** emacs/lisp/simple.el:1.738 Wed Jul 13 10:29:38 2005
--- emacs/lisp/simple.el Wed Jul 13 13:45:30 2005
***************
*** 3440,3488 ****
;; Now move a line.
(end-of-line)
;; If there's no invisibility here, move over the newline.
! (let ((pos-before (point))
! line-done)
! (if (eobp)
! (if (not noerror)
! (signal 'end-of-buffer nil)
! (setq done t)))
! (when (and (not done)
! (> arg 1) ;; Use vertical-motion for last move
! (not (integerp selective-display))
! (not (line-move-invisible-p (point))))
! ;; We avoid vertical-motion when possible
! ;; because that has to fontify.
! (forward-line 1)
! (setq line-done t))
! (and (not done) (not line-done)
! ;; Otherwise move a more sophisticated way.
! (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)
! (let ((pos-before (point))
! line-done)
! (if (bobp)
! (if (not noerror)
! (signal 'beginning-of-buffer nil)
! (setq done t)))
! (when (and (not done)
! (< arg -1) ;; Use vertical-motion for last move
! (not (integerp selective-display))
! (not (line-move-invisible-p (1- (point)))))
! (forward-line -1)
! (setq line-done t))
! (and (not done) (not line-done)
! (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
--- 3440,3480 ----
;; Now move a line.
(end-of-line)
;; If there's no invisibility here, move over the newline.
! (cond
! ((eobp)
! (if (not noerror)
! (signal 'end-of-buffer nil)
! (setq done t)))
! ((and (> arg 1) ;; Use vertical-motion for last move
! (not (integerp selective-display))
! (not (line-move-invisible-p (point))))
! ;; We avoid vertical-motion when possible
! ;; because that has to fontify.
! (forward-line 1))
! ;; Otherwise move a more sophisticated way.
! ((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)
! (cond
! ((bobp)
! (if (not noerror)
! (signal 'beginning-of-buffer nil)
! (setq done t)))
! ((and (< arg -1) ;; Use vertical-motion for last move
! (not (integerp selective-display))
! (not (line-move-invisible-p (1- (point)))))
! (forward-line -1))
! ((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
[email protected]
http://lists.gnu.org/mailman/listinfo/emacs-diffs