]> code.delx.au - gnu-emacs/blobdiff - lisp/xscheme.el
(calendar-astro-from-absolute): Autoload it.
[gnu-emacs] / lisp / xscheme.el
index dea0a6befb71fbec6265218882838ff30c946432..bb017f0c33f579dcf6f251625f0622e55229bd97 100644 (file)
@@ -1,15 +1,15 @@
 ;;; xscheme.el --- run Scheme under Emacs
 
-;;; Maintainer: FSF
-;;; Last-Modified: 21 Jan 1987
-
 ;; Copyright (C) 1986, 1987, 1989, 1990 Free Software Foundation, Inc.
 
+;; Maintainer: FSF
+;; Keywords: languages, lisp
+
 ;; This file is part of GNU Emacs.
 
 ;; GNU Emacs is free software; you can redistribute it and/or modify
 ;; it under the terms of the GNU General Public License as published by
-;; the Free Software Foundation; either version 1, or (at your option)
+;; the Free Software Foundation; either version 2, or (at your option)
 ;; any later version.
 
 ;; GNU Emacs is distributed in the hope that it will be useful,
 
 ;;; Commentary:
 
-;;; Requires C-Scheme release 5 or later
-;;; Changes to Control-G handler require runtime version 13.85 or later
+;; A major mode for editing Scheme and interacting with MIT's C-Scheme.
+;;
+;; Requires C-Scheme release 5 or later
+;; Changes to Control-G handler require runtime version 13.85 or later
 
 ;;; Code:
 
-;;; $Header: xscheme.el,v 1.26 90/09/11 01:51:20 GMT cph Exp $
-
 (require 'scheme)
 \f
 (defvar scheme-program-name "scheme"
@@ -77,9 +77,8 @@ Is processed with `substitute-command-keys' first.")
 (xscheme-evaluation-commands scheme-mode-map)
 (xscheme-interrupt-commands scheme-mode-map)
 \f
-;;;###autoload
 (defun run-scheme (command-line)
-  "Run an inferior Scheme process.
+  "Run MIT Scheme in an inferior process.
 Output goes to the buffer `*scheme*'.
 With argument, asks for a command line."
   (interactive
@@ -90,7 +89,7 @@ With argument, asks for a command line."
               (read-string "Run Scheme: " default)
               default))))
   (setq xscheme-process-command-line command-line)
-  (switch-to-buffer (xscheme-start-process command-line)))
+  (pop-to-buffer (xscheme-start-process command-line)))
 
 (defun reset-scheme ()
   "Reset the Scheme process."
@@ -675,12 +674,7 @@ When called, the current buffer will be the Scheme process-buffer.")
 
 (defun xscheme-set-runlight (runlight)
   (setq xscheme-runlight-string runlight)
-  (xscheme-modeline-redisplay))
-
-(defun xscheme-modeline-redisplay ()
-  (save-excursion (set-buffer (other-buffer)))
-  (set-buffer-modified-p (buffer-modified-p))
-  (sit-for 0))
+  (force-mode-line-update t))
 \f
 ;;;; Process Filter Operations
 
@@ -812,7 +806,7 @@ the remaining input.")
   (setq xscheme-prompt string)
   (xscheme-guarantee-newlines 2)
   (setq xscheme-mode-string (xscheme-coerce-prompt string))
-  (xscheme-modeline-redisplay))
+  (force-mode-line-update t))
 
 (defun xscheme-output-goto ()
   (xscheme-goto-output-point)
@@ -878,4 +872,6 @@ the remaining input.")
                     (if (nth 2 state) 'many 'one)))))
        (set-syntax-table old-syntax-table)))))
 
+(provide 'xscheme)
+
 ;;; xscheme.el ends here