microcode no longer provides this service.
#| -*-Scheme-*-
-$Header: /Users/cph/tmp/foo/mit-scheme/mit-scheme/v7/src/runtime/emacs.scm,v 14.4 1990/06/20 20:28:56 cph Exp $
+$Header: /Users/cph/tmp/foo/mit-scheme/mit-scheme/v7/src/runtime/emacs.scm,v 14.5 1990/06/22 01:04:32 cph Exp $
Copyright (c) 1988, 1989, 1990 Massachusetts Institute of Technology
(define (emacs/set-working-directory-pathname! pathname)
(transmit-signal-with-argument #\w (pathname->string pathname)))
+
+(define (emacs/clean-input/flush-typeahead character)
+ character
+ (let loop ()
+ (if (not (char=? #\NUL (input-port/read-char console-input-port)))
+ (loop)))
+ true)
\f
(define normal/gc-start)
(define normal/gc-finish)
(define normal/^G-interrupt)
(define normal/set-working-directory-pathname!)
(define normal/presentation)
+(define normal/clean-input/flush-typeahead)
(define (initialize-package!)
(set! normal/gc-start hook/gc-start)
(set! normal/set-working-directory-pathname!
hook/set-working-directory-pathname!)
;;(set! normal/presentation hook/presentation)
+ (set! normal/clean-input/flush-typeahead hook/clean-input/flush-typeahead)
(add-event-receiver! event:after-restore install!)
(install!))
\f
(set! hook/set-working-directory-pathname!
emacs/set-working-directory-pathname!)
;;(set! hook/presentation (lambda (thunk) (thunk)))
+ (set! hook/clean-input/flush-typeahead emacs/clean-input/flush-typeahead)
unspecific)
(define (install-normal-hooks!)
(set! hook/set-working-directory-pathname!
normal/set-working-directory-pathname!)
;;(set! hook/presentation normal/presentation)
+ (set! hook/clean-input/flush-typeahead normal/clean-input/flush-typeahead)
unspecific)
\ No newline at end of file
#| -*-Scheme-*-
-$Header: /Users/cph/tmp/foo/mit-scheme/mit-scheme/v7/src/runtime/intrpt.scm,v 14.3 1988/10/21 00:18:13 cph Rel $
+$Header: /Users/cph/tmp/foo/mit-scheme/mit-scheme/v7/src/runtime/intrpt.scm,v 14.4 1990/06/22 01:04:36 cph Exp $
-Copyright (c) 1988 Massachusetts Institute of Technology
+Copyright (c) 1988, 1990 Massachusetts Institute of Technology
This material was developed by the Scheme project at the Massachusetts
Institute of Technology, Department of Electrical Engineering and
#| (#\P ,(flush-typeahead ^P-interrupt-handler)) |#
#| (#\Z ,(flush-typeahead ^Z-interrupt-handler)) |#))
table))
+ (set! hook/clean-input/flush-typeahead default/clean-input)
+ (set! hook/clean-input/keep-typeahead default/clean-input)
(set! hook/^B-interrupt default/^B-interrupt)
(set! hook/^G-interrupt default/^G-interrupt)
(set! hook/^U-interrupt default/^U-interrupt)
(define-primitives
(clear-interrupts! 1)
- check-and-clean-up-input-channel
- get-next-interrupt-character
+ (tty-next-interrupt-char 0)
set-fixed-objects-vector!
(setup-timer-interrupt 2))
(define (external-interrupt-handler interrupt-code interrupt-enables)
interrupt-code
(clear-interrupts! interrupt-bit/kbd)
- (external-interrupt (get-next-interrupt-character) interrupt-enables))
+ (external-interrupt (tty-next-interrupt-char) interrupt-enables))
(define (with-external-interrupts-handler handler thunk)
(fluid-let ((external-interrupt (flush-typeahead handler)))
(define keyboard-interrupts)
-;;; The following definitions must match the microcode.
-(define until-most-recent-interrupt-character 0)
-(define multiple-copies-only 1)
-
(define ((flush-typeahead kernel) character interrupt-enables)
- (if (check-and-clean-up-input-channel until-most-recent-interrupt-character
- character)
+ (if (hook/clean-input/flush-typeahead character)
(kernel character interrupt-enables)))
(define ((keep-typeahead kernel) character interrupt-enables)
- (if (check-and-clean-up-input-channel multiple-copies-only character)
+ (if (hook/clean-input/keep-typeahead character)
(kernel character interrupt-enables)))
+
+(define hook/clean-input/flush-typeahead)
+(define hook/clean-input/keep-typeahead)
+(define (default/clean-input character) character true)
\f
(define (^B-interrupt-handler character interrupt-enables)
character
#| -*-Scheme-*-
-$Header: /Users/cph/tmp/foo/mit-scheme/mit-scheme/v7/src/runtime/runtime.pkg,v 14.68 1990/06/21 22:11:42 cph Exp $
+$Header: /Users/cph/tmp/foo/mit-scheme/mit-scheme/v7/src/runtime/runtime.pkg,v 14.69 1990/06/22 01:04:42 cph Exp $
Copyright (c) 1988, 1989, 1990 Massachusetts Institute of Technology
timer-interrupt
with-external-interrupts-handler)
(export (runtime emacs-interface)
- hook/^g-interrupt)
+ hook/^g-interrupt
+ hook/clean-input/flush-typeahead)
(initialization (initialize-package!)))
(define-package (runtime lambda-abstraction)
#| -*-Scheme-*-
-$Header: /Users/cph/tmp/foo/mit-scheme/mit-scheme/v7/src/runtime/version.scm,v 14.83 1990/06/21 22:11:52 cph Exp $
+$Header: /Users/cph/tmp/foo/mit-scheme/mit-scheme/v7/src/runtime/version.scm,v 14.84 1990/06/22 01:04:48 cph Exp $
Copyright (c) 1988, 1989, 1990 Massachusetts Institute of Technology
'()))
(add-system! microcode-system)
(add-event-receiver! event:after-restore snarf-microcode-version!)
- (add-identification! "Runtime" 14 83))
+ (add-identification! "Runtime" 14 84))
(define microcode-system)
#| -*-Scheme-*-
-$Header: /Users/cph/tmp/foo/mit-scheme/mit-scheme/v8/src/runtime/runtime.pkg,v 14.68 1990/06/21 22:11:42 cph Exp $
+$Header: /Users/cph/tmp/foo/mit-scheme/mit-scheme/v8/src/runtime/runtime.pkg,v 14.69 1990/06/22 01:04:42 cph Exp $
Copyright (c) 1988, 1989, 1990 Massachusetts Institute of Technology
timer-interrupt
with-external-interrupts-handler)
(export (runtime emacs-interface)
- hook/^g-interrupt)
+ hook/^g-interrupt
+ hook/clean-input/flush-typeahead)
(initialization (initialize-package!)))
(define-package (runtime lambda-abstraction)