diff lisp/simple.el @ 83256:389421e988c2

Merged from miles@gnu.org--gnu-2005 (patch 17-26, 107-116) Patches applied: * miles@gnu.org--gnu-2005/emacs--cvs-trunk--0--patch-107 Update from CVS * miles@gnu.org--gnu-2005/emacs--cvs-trunk--0--patch-108 Update from CVS * miles@gnu.org--gnu-2005/emacs--cvs-trunk--0--patch-109 Update from CVS * miles@gnu.org--gnu-2005/emacs--cvs-trunk--0--patch-110 Update from CVS * miles@gnu.org--gnu-2005/emacs--cvs-trunk--0--patch-111 Merge from gnus--rel--5.10 * miles@gnu.org--gnu-2005/emacs--cvs-trunk--0--patch-112 Update from CVS * miles@gnu.org--gnu-2005/emacs--cvs-trunk--0--patch-113 Update from CVS * miles@gnu.org--gnu-2005/emacs--cvs-trunk--0--patch-114 <no summary provided> * miles@gnu.org--gnu-2005/emacs--cvs-trunk--0--patch-115 Update from CVS * miles@gnu.org--gnu-2005/emacs--cvs-trunk--0--patch-116 Update from CVS * miles@gnu.org--gnu-2005/gnus--rel--5.10--patch-17 Update from CVS * miles@gnu.org--gnu-2005/gnus--rel--5.10--patch-18 Update from CVS * miles@gnu.org--gnu-2005/gnus--rel--5.10--patch-19 Update from CVS * miles@gnu.org--gnu-2005/gnus--rel--5.10--patch-20 Merge from emacs--cvs-trunk--0 * miles@gnu.org--gnu-2005/gnus--rel--5.10--patch-21 More work on moving images to etc/images * miles@gnu.org--gnu-2005/gnus--rel--5.10--patch-22 Update from CVS * miles@gnu.org--gnu-2005/gnus--rel--5.10--patch-23 Fix errors with image-file installation * miles@gnu.org--gnu-2005/gnus--rel--5.10--patch-24 etc/Makefile.in (install): Put gnus-tut.txt in the right place. * miles@gnu.org--gnu-2005/gnus--rel--5.10--patch-25 etc/Makefile.in (install, uninstall): Fix installed image dirs. * miles@gnu.org--gnu-2005/gnus--rel--5.10--patch-26 etc/Makefile.in (install): Create $(etcdir)/images/gnus dir. git-archimport-id: lorentey@elte.hu--2004/emacs--multi-tty--0--patch-296
author Karoly Lorentey <lorentey@elte.hu>
date Sun, 20 Feb 2005 18:47:54 +0000
parents c0215e820840 9440f8bb9f71
children 1f334cdd7020
line wrap: on
line diff
--- a/lisp/simple.el	Sat Feb 19 00:06:48 2005 +0000
+++ b/lisp/simple.el	Sun Feb 20 18:47:54 2005 +0000
@@ -3162,12 +3162,12 @@
 	  (let ((abbrev-mode nil))
 	    (end-of-line)
 	    (insert "\n"))
-	(line-move arg))
+	(line-move arg nil nil t))
     (if (interactive-p)
 	(condition-case nil
-	    (line-move arg)
+	    (line-move arg nil nil t)
 	  ((beginning-of-buffer end-of-buffer) (ding)))
-      (line-move arg)))
+      (line-move arg nil nil t)))
   nil)
 
 (defun previous-line (&optional arg)
@@ -3190,9 +3190,9 @@
   (or arg (setq arg 1))
   (if (interactive-p)
       (condition-case nil
-	  (line-move (- arg))
+	  (line-move (- arg) nil nil t)
 	((beginning-of-buffer end-of-buffer) (ding)))
-    (line-move (- arg)))
+    (line-move (- arg) nil nil t))
   nil)
 
 (defcustom track-eol nil
@@ -3231,8 +3231,8 @@
 	  (assq prop buffer-invisibility-spec)))))
 
 ;; Perform vertical scrolling of tall images if necessary.
-(defun line-move (arg &optional noerror to-end)
-  (if auto-window-vscroll
+(defun line-move (arg &optional noerror to-end try-vscroll)
+  (if (and auto-window-vscroll try-vscroll)
       (let ((forward (> arg 0))
 	    (part (nth 2 (pos-visible-in-window-p (point) nil t))))
 	(if (and (consp part)
@@ -3248,7 +3248,14 @@
 					       (* (frame-char-height) (- arg))))))
 				t)
 	  (set-window-vscroll nil 0)
-	  (line-move-1 arg noerror to-end)))
+	  (when (line-move-1 arg noerror to-end)
+	    (sit-for 0)
+	    (if (and (not forward)
+		     (setq part (nth 2 (pos-visible-in-window-p
+					(line-beginning-position) nil t)))
+		     (> (cdr part) 0))
+		(set-window-vscroll nil (cdr part) t))
+	    t)))
     (line-move-1 arg noerror to-end)))
 
 ;; This is the guts of next-line and previous-line.