cygwin上のemacs22のschemeモードでC-cC-l時に自動でwindowを分割する

/usr/local/emacs/22.1/lispに以下のパッチをあてる。
強制保存と*scheme*バッファは3/10のウインドウが割り当てられる。
ファイル名を問い合わせるところはカレントバッファに固定。

$ diff -u cmuscheme.el.orig cmuscheme.el
--- cmuscheme.el.orig   2007-12-13 18:30:19.000000000 +0900
+++ cmuscheme.el        2007-12-13 19:27:19.000000000 +0900
@@ -436,17 +436,24 @@
 `scheme-compile-file' command.  Used for determining the default
 in the next one.")
 
-(defun scheme-load-file (file-name)
+(defun scheme-load-file ()
   "Load a Scheme file FILE-NAME into the inferior Scheme process."
-  (interactive (comint-get-source "Load Scheme file: " scheme-prev-l/c-dir/file
-                                 scheme-source-modes t)) ; t because `load'
-                                                          ; needs an exact name
-  (comint-check-source file-name) ; Check to see if buffer needs saved.
-  (setq scheme-prev-l/c-dir/file (cons (file-name-directory    file-name)
-                                      (file-name-nondirectory file-name)))
-  (comint-send-string (scheme-proc) (concat "(load \""
-                                           file-name
-                                           "\"\)\n")))
+  (interactive)
+  (let ((file-name (buffer-file-name)))
+    (save-buffer)
+    (comint-check-source file-name) ; Check to see if buffer needs saved.
+    (setq scheme-prev-l/c-dir/file (cons (file-name-directory    file-name)
+                                        (file-name-nondirectory file-name)))
+    (comint-send-string (scheme-proc) (concat "(load \""
+                                             file-name
+                                             "\"\)\n"))
+    (let ((file-buffer (current-buffer)))
+      (if (not (get-buffer-window-list "*scheme*"))
+         (let ((new-window (split-window (selected-window) (round (* (window-height) 0.7))))
+               (old-window (selected-window)))
+           (select-window new-window)
+           (switch-to-buffer "*scheme*")
+           (select-window old-window) )))))
 
 (defun scheme-compile-file (file-name)
   "Compile a Scheme file FILE-NAME in the inferior Scheme process."