22 lines
563 B
Factor
22 lines
563 B
Factor
|
! Copyright (C) 2008 Daniel Ehrenberg.
|
||
|
! See http://factorcode.org/license.txt for BSD license.
|
||
|
USING: io io.encodings kernel math io.encodings.private ;
|
||
|
IN: io.encodings.ascii
|
||
|
|
||
|
<PRIVATE
|
||
|
: encode-if< ( char stream encoding max -- )
|
||
|
nip 1- pick < [ encode-error ] [ stream-write1 ] if ; inline
|
||
|
|
||
|
: decode-if< ( stream encoding max -- character )
|
||
|
nip swap stream-read1 dup
|
||
|
[ tuck > [ drop replacement-char ] unless ] [ 2drop f ] if ; inline
|
||
|
PRIVATE>
|
||
|
|
||
|
SINGLETON: ascii
|
||
|
|
||
|
M: ascii encode-char
|
||
|
128 encode-if< ;
|
||
|
|
||
|
M: ascii decode-char
|
||
|
128 decode-if< ;
|