~ chicken-core (chicken-5) fa248a734d6d59c8eed72579d08ab0e31af0a957


commit fa248a734d6d59c8eed72579d08ab0e31af0a957
Author:     Evan Hanson <evhan@foldling.org>
AuthorDate: Sat May 17 20:43:58 2014 -0700
Commit:     Peter Bex <peter.bex@xs4all.nl>
CommitDate: Sun May 18 12:49:16 2014 +0200

    Fix read-string! and u8vector! types.db entries to allow false length arguments
    
    Signed-off-by: Peter Bex <peter.bex@xs4all.nl>

diff --git a/types.db b/types.db
index ab012d29..a66f044b 100644
--- a/types.db
+++ b/types.db
@@ -1302,7 +1302,7 @@
 (read-line (#(procedure #:enforce) read-line (#!optional input-port (or false fixnum)) (or eof string)))
 (read-lines (#(procedure #:enforce) read-lines (#!optional (or input-port string) fixnum) (list-of string)))
 (read-string (#(procedure #:enforce) read-string (#!optional * input-port) string))
-(read-string! (#(procedure #:enforce) read-string! (fixnum string #!optional input-port fixnum) fixnum))
+(read-string! (#(procedure #:enforce) read-string! ((or fixnum false) string #!optional input-port fixnum) fixnum))
 (read-token (#(procedure #:enforce) read-token ((procedure (char) *) #!optional input-port) string))
 (sprintf (#(procedure #:enforce) sprintf (string #!rest) string))
 (write-byte (#(procedure #:enforce) write-byte (fixnum #!optional output-port) undefined))
@@ -2457,7 +2457,7 @@
 (make-u32vector (#(procedure #:clean #:enforce) make-u32vector (fixnum #!optional * * *) (struct u32vector)))
 (make-u8vector (#(procedure #:clean #:enforce) make-u8vector (fixnum #!optional * * *) (struct u8vector)))
 (read-u8vector (#(procedure #:enforce) read-u8vector (#!optional fixnum input-port) (struct u8vector)))
-(read-u8vector! (#(procedure #:enforce) read-u8vector! (fixnum (struct u8vector) #!optional input-port fixnum) number))
+(read-u8vector! (#(procedure #:enforce) read-u8vector! ((or fixnum false) (struct u8vector) #!optional input-port fixnum) number))
 (release-number-vector (procedure release-number-vector (*) undefined))
 (s16vector (#(procedure #:clean #:enforce) s16vector (#!rest fixnum) (struct s16vector)))
 (s16vector->blob (#(procedure #:clean #:enforce) s16vector->blob ((struct s16vector)) blob))
Trap