diff options
author | Andy Wingo <wingo@pobox.com> | 2011-01-21 08:27:08 +0100 |
---|---|---|
committer | Andy Wingo <wingo@pobox.com> | 2011-01-21 08:27:08 +0100 |
commit | b04f841d5fa6d3448bb8f976bb27ee3e9a06f83c (patch) | |
tree | 20d18a47ddbaaac69d3ab93145e46daec7376844 /module/rnrs | |
parent | dc78bee588718ce4df252e5d1773b9d895c6f43f (diff) | |
download | guile-b04f841d5fa6d3448bb8f976bb27ee3e9a06f83c.tar.gz |
implement port-eof?
* module/rnrs/io/ports.scm (port-eof?): Implement.
* module/rnrs.scm: Re-export port-eof?.
* test-suite/tests/r6rs-ports.test ("7.2.5 End-of-File Object"): Add
test.
Thanks to Göran Weinholt for the report.
Diffstat (limited to 'module/rnrs')
-rw-r--r-- | module/rnrs/io/ports.scm | 8 |
1 files changed, 7 insertions, 1 deletions
diff --git a/module/rnrs/io/ports.scm b/module/rnrs/io/ports.scm index 854ea0919..15d62bd3f 100644 --- a/module/rnrs/io/ports.scm +++ b/module/rnrs/io/ports.scm @@ -1,6 +1,6 @@ ;;;; ports.scm --- R6RS port API -*- coding: utf-8 -*- -;;;; Copyright (C) 2009, 2010 Free Software Foundation, Inc. +;;;; Copyright (C) 2009, 2010, 2011 Free Software Foundation, Inc. ;;;; ;;;; This library is free software; you can redistribute it and/or ;;;; modify it under the terms of the GNU Lesser General Public @@ -37,6 +37,7 @@ ;; input & output ports port? input-port? output-port? + port-eof? port-transcoder binary-port? transcoded-port port-position set-port-position! port-has-port-position? port-has-set-port-position!? @@ -191,6 +192,11 @@ ;; So far, we don't support transcoders other than the binary transcoder. #t) +(define (port-eof? port) + (eof-object? (if (binary-port? port) + (lookahead-u8 port) + (lookahead-char port)))) + (define (transcoded-port port transcoder) "Return a new textual port based on @var{port}, using @var{transcoder} to encode and decode data written to or |