0.8.7.31:
authorChristophe Rhodes <csr21@cam.ac.uk>
Thu, 29 Jan 2004 15:17:26 +0000 (15:17 +0000)
committerChristophe Rhodes <csr21@cam.ac.uk>
Thu, 29 Jan 2004 15:17:26 +0000 (15:17 +0000)
Make READ-BYTE and WRITE-BYTE signal errors on non-streams
as required

NEWS
src/pcl/gray-streams.lisp
version.lisp-expr

diff --git a/NEWS b/NEWS
index aaca703..5402e4b 100644 (file)
--- a/NEWS
+++ b/NEWS
@@ -2288,6 +2288,8 @@ changes in sbcl-0.8.8 relative to sbcl-0.8.7:
     ** DIRECTORY on logical pathnames is more correct.
     ** CLEAR-INPUT, CLEAR-OUTPUT, FINISH-OUTPUT and FORCE-OUTPUT
        signal a TYPE-ERROR if their argument is not a stream.
+    ** READ-BYTE and WRITE-BYTE signal a TYPE-ERROR if their stream
+       designator argument does not designate a stream.
 
 planned incompatible changes in 0.8.x:
   * (not done yet, but planned:) When the profiling interface settles
index fbf769a..a99099f 100644 (file)
    "Used by READ-BYTE; returns either an integer, or the symbol :EOF
   if the stream is at end-of-file."))
 
+(defmethod stream-read-byte ((stream stream))
+  (bug-or-error stream 'stream-read-byte))
+(defmethod stream-read-byte ((non-stream t))
+  (error 'type-error :datum non-stream :expected-type 'stream))
+
 (defgeneric stream-write-byte (stream integer)
   #+sb-doc
   (:documentation
    "Implements WRITE-BYTE; writes the integer to the stream and
   returns the integer as the result."))
 
+(defmethod stream-write-byte ((stream stream) integer)
+  (bug-or-error stream 'stream-write-byte))
+(defmethod stream-write-byte ((non-stream t) integer)
+  (error 'type-error :datum non-stream :expected-type 'stream))
+
 ;; Provide a reasonable default for binary Gray streams.  We might be
 ;; able to do better by specializing on the sequence type, but at
 ;; least the behaviour is reasonable. --tony 2003/05/08.
index d6d2e29..2ef449c 100644 (file)
@@ -17,4 +17,4 @@
 ;;; checkins which aren't released. (And occasionally for internal
 ;;; versions, especially for internal versions off the main CVS
 ;;; branch, it gets hairier, e.g. "0.pre7.14.flaky4.13".)
-"0.8.7.30"
+"0.8.7.31"