Implement INPUT-PORT/EOF?.
authorChris Hanson <org/chris-hanson/cph>
Wed, 12 Sep 2007 23:35:01 +0000 (23:35 +0000)
committerChris Hanson <org/chris-hanson/cph>
Wed, 12 Sep 2007 23:35:01 +0000 (23:35 +0000)
v7/src/runtime/input.scm
v7/src/runtime/runtime.pkg

index 5ff127e8b071e6b6da0790e42bb5c19eac5ec064..560acab08ad69a1eb7d5f547fb74f261bf69250f 100644 (file)
@@ -1,6 +1,6 @@
 #| -*-Scheme-*-
 
-$Id: input.scm,v 14.36 2007/07/07 17:22:19 cph Exp $
+$Id: input.scm,v 14.37 2007/09/12 23:35:00 cph Exp $
 
 Copyright (C) 1986, 1987, 1988, 1989, 1990, 1991, 1992, 1993, 1994,
     1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005,
@@ -139,6 +139,11 @@ USA.
 
 (define (eof-object? object)
   (eq? object (object-new-type (ucode-type constant) 6)))
+
+(define (input-port/eof? port)
+  (let ((eof? (port/operation port 'EOF?)))
+    (and eof?
+        (eof? port))))
 \f
 ;;;; High level
 
@@ -178,10 +183,8 @@ USA.
   (let ((port (optional-input-port port 'READ-CHAR-NO-HANG)))
     (if (input-port/char-ready? port)
        (input-port/read-char port)
-       (let ((eof? (port/operation port 'EOF?)))
-         (and eof?
-              (eof? port)
-              (eof-object))))))
+       (and (input-port/eof? port)
+            (eof-object)))))
 
 (define (read-string delimiters #!optional port)
   (input-port/read-string (optional-input-port port 'READ-STRING) delimiters))
index f7535d3295a55e5e0c9e865b987611fabb2451c5..48ed51d0b50e85b7755e0578256a89caeb368fa0 100644 (file)
@@ -1,6 +1,6 @@
 #| -*-Scheme-*-
 
-$Id: runtime.pkg,v 14.625 2007/08/10 19:07:13 cph Exp $
+$Id: runtime.pkg,v 14.626 2007/09/12 23:35:01 cph Exp $
 
 Copyright (C) 1986, 1987, 1988, 1989, 1990, 1991, 1992, 1993, 1994,
     1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005,
@@ -2052,6 +2052,7 @@ USA.
          eof-object?
          input-port/char-ready?
          input-port/discard-chars
+         input-port/eof?
          input-port/peek-char
          input-port/read-char
          input-port/read-external-string!