changeset 108:8644955999f0

*** empty log message ***
author Richard M. Stallman <rms@gnu.org>
date Mon, 22 Oct 1990 03:36:55 +0000
parents 0676c0c9346f
children d649664df7e0
files lisp/window.el
diffstat 1 files changed, 15 insertions(+), 4 deletions(-) [+]
line wrap: on
line diff
--- a/lisp/window.el	Sat Oct 20 02:38:04 1990 +0000
+++ b/lisp/window.el	Mon Oct 22 03:36:55 1990 +0000
@@ -43,11 +43,18 @@
 
 (defun split-window-vertically (&optional arg)
   "Split current window into two windows, one above the other.
-This window becomes the uppermost of the two, and gets
-ARG lines.  No arg means split equally."
+The uppermost window gets ARG lines and the other gets the rest.
+With no argument, split equally or close to it.
+Both windows display the same buffer now current.
+The new selected window is the one that the current value of point
+appears in.
+
+The value of point can change if the text around point 
+is hidden by the new mode line."
   (interactive "P")
   (let ((old-w (selected-window))
-	new-w bottom)
+	(old-point (point))
+	new-w bottom switch)
     (setq new-w (split-window nil (and arg (prefix-numeric-value arg))))
     (save-excursion
       (set-buffer (window-buffer))
@@ -59,7 +66,11 @@
       (vertical-motion -1)
       (setq bottom (point)))
     (if (<= bottom (point))
-	(set-window-point old-w (1- bottom)))))
+	(set-window-point old-w (1- bottom)))
+    (if (< (window-start new-w) old-point)
+	(progn
+	  (set-window-point new-w old-point)
+	  (select-window new-w)))))
 
 (defun split-window-horizontally (&optional arg)
   "Split current window into two windows side by side.