When doing (read-char) from the terminal, check for any characters in
authorChris Hanson <org/chris-hanson/cph>
Sat, 7 Mar 1987 17:36:00 +0000 (17:36 +0000)
committerChris Hanson <org/chris-hanson/cph>
Sat, 7 Mar 1987 17:36:00 +0000 (17:36 +0000)
the input buffer before asking Emacs to read one.

v7/src/runtime/emacs.scm

index efeb59ad4e960b5d1d1dc04331b58dcad7db30be..4a85891ae87622ad8ba980e3685e27f14c4819d5 100644 (file)
@@ -1,6 +1,6 @@
 ;;; -*-Scheme-*-
 ;;;
-;;;    $Header: /Users/cph/tmp/foo/mit-scheme/mit-scheme/v7/src/runtime/emacs.scm,v 13.41 1987/01/23 00:11:34 jinx Exp $
+;;;    $Header: /Users/cph/tmp/foo/mit-scheme/mit-scheme/v7/src/runtime/emacs.scm,v 13.42 1987/03/07 17:36:00 cph Exp $
 ;;;
 ;;;    Copyright (c) 1987 Massachusetts Institute of Technology
 ;;;
@@ -88,7 +88,7 @@
   (with-output-to-string
     (lambda ()
       (write object))))
-
+\f
 (define (emacs-read-char-immediate)
   (define (loop)
     (let ((char (primitive-read-char-immediate)))
          (begin (emacs-read-finish)
                 char))))
   (emacs-read-start)
-  (transmit-signal-without-gc #\c)
+  (if (not (primitive-read-char-ready? 0))
+      (transmit-signal-without-gc #\c))
   (loop))
 
+(define primitive-read-char-ready?
+  (make-primitive-procedure 'TTY-READ-CHAR-READY?))
+
 (define primitive-read-char-immediate
   (make-primitive-procedure 'TTY-READ-CHAR-IMMEDIATE))
 
 (install!)
 
 ;;; end EMACS-INTERFACE-PACKAGE
-))
 ))
\ No newline at end of file