diff options
author | Andy Wingo <wingo@pobox.com> | 2016-05-24 07:06:45 +0200 |
---|---|---|
committer | Andy Wingo <wingo@pobox.com> | 2016-05-24 07:06:45 +0200 |
commit | 690b856d59e392b0f493abf21ec08e90bb47d334 (patch) | |
tree | e86a394eb446de1bed5e95d5309be8c9da888dac | |
parent | 6bf7ec0c9c615f0b3bbb03bae15ebb10194e2bf8 (diff) | |
download | guile-690b856d59e392b0f493abf21ec08e90bb47d334.tar.gz |
Add force-output to sports
* module/ice-9/sports.scm (force-output): New implementation.
(port-bindings): Add force-output.
-rw-r--r-- | module/ice-9/sports.scm | 10 |
1 files changed, 8 insertions, 2 deletions
diff --git a/module/ice-9/sports.scm b/module/ice-9/sports.scm index 807eada0b..b506703d6 100644 --- a/module/ice-9/sports.scm +++ b/module/ice-9/sports.scm @@ -53,7 +53,8 @@ #:use-module (ice-9 ports internal) #:use-module (ice-9 match) #:replace (peek-char - read-char) + read-char + force-output) #:export (lookahead-u8 get-u8 get-bytevector-n @@ -86,6 +87,11 @@ (set-port-buffer-end! buf 0) (write-bytes port (port-buffer-bytevector buf) cur (- end cur))))) +(define* (force-output #:optional (port (current-output-port))) + (unless (and (output-port? port) (not (port-closed? port))) + (error "not an open output port" port)) + (flush-output port)) + (define (default-read-waiter port) (port-poll port "r")) (define (default-write-waiter port) (port-poll port "w")) @@ -573,7 +579,7 @@ (define saved-port-bindings #f) (define port-bindings - '(((guile) read-char peek-char) + '(((guile) read-char peek-char force-output) ((ice-9 binary-ports) get-u8 lookahead-u8 get-bytevector-n) ((ice-9 rdelim) %read-line read-line read-delimited))) (define (install-sports!) |