emacs-diffs
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Emacs-diffs] Changes to emacs/lisp/simple.el


From: Richard M . Stallman
Subject: [Emacs-diffs] Changes to emacs/lisp/simple.el
Date: Tue, 26 Apr 2005 14:31:20 -0400

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




reply via email to

[Prev in Thread] Current Thread [Next in Thread]