remove duplication in io.streams.limited

db4
U-C4\Administrator 2009-01-20 12:04:20 -06:00
parent 8676ebafea
commit 0dd3dc770b
1 changed files with 4 additions and 3 deletions

View File

@ -42,17 +42,18 @@ ERROR: bad-stream-mode mode ;
] when ; inline
: maybe-read ( n limited-stream quot: ( n stream -- seq/f ) -- seq/f )
[ adjust-limit ] dip
pick 0 <= [ 3drop f ] [ [ stream>> ] dip call ] if ; inline
M: limited-stream stream-read1
1 swap adjust-limit
1 swap
[ nip stream-read1 ] maybe-read ;
M: limited-stream stream-read
adjust-limit [ stream-read ] maybe-read ;
[ stream-read ] maybe-read ;
M: limited-stream stream-read-partial
adjust-limit [ stream-read-partial ] maybe-read ;
[ stream-read-partial ] maybe-read ;
: (read-until) ( stream seps buf -- stream seps buf sep/f )
3dup [ [ stream-read1 dup ] dip memq? ] dip