io.streams.sequence: bounds check sequence-read-until.
parent
0b04d3f279
commit
ee9ead89f8
|
@ -15,9 +15,7 @@ M: string-reader stream-read-unsafe
|
|||
[ dup string? [ "not a string" throw ] unless ]
|
||||
[ sequence-read-unsafe ] tri* ;
|
||||
M: string-reader stream-read1 sequence-read1 ;
|
||||
M: string-reader stream-read-until
|
||||
dup >sequence-stream< bounds-check?
|
||||
[ sequence-read-until ] [ 2drop f f ] if ;
|
||||
M: string-reader stream-read-until sequence-read-until ;
|
||||
M: string-reader stream-readln
|
||||
dup >sequence-stream< bounds-check? [
|
||||
"\r\n" over sequence-read-until CHAR: \r eq? [
|
||||
|
|
|
@ -35,11 +35,15 @@ SLOT: i
|
|||
[ member-eq? ] curry [ find-from swap ] curry 2keep
|
||||
pick [ drop - ] [ length swap - nip ] if ; inline
|
||||
|
||||
: sequence-read-until ( seps stream -- seq sep/f )
|
||||
: (sequence-read-until) ( seps stream -- seq sep/f )
|
||||
[ find-separator ] keep
|
||||
[ [ (sequence-read-unsafe) ] (read-into-new) ]
|
||||
[ [ 1 + ] change-i drop ] bi swap ; inline
|
||||
|
||||
: sequence-read-until ( seps stream -- seq sep/f )
|
||||
dup >sequence-stream< bounds-check?
|
||||
[ (sequence-read-until) ] [ 2drop f f ] if ; inline
|
||||
|
||||
! Writers
|
||||
M: growable dispose drop ;
|
||||
|
||||
|
|
Loading…
Reference in New Issue