factor/basis/io/encodings/ascii/ascii.factor

23 lines
601 B
Factor
Raw Normal View History

2008-02-21 16:22:49 -05:00
! Copyright (C) 2008 Daniel Ehrenberg.
! See http://factorcode.org/license.txt for BSD license.
USING: io io.encodings kernel math io.encodings.private ;
2008-02-16 17:25:45 -05:00
IN: io.encodings.ascii
2008-03-14 04:09:51 -04:00
<PRIVATE
: encode-if< ( char stream encoding max -- )
nip 1 - pick < [ encode-error ] [ stream-write1 ] if ; inline
2008-02-16 17:25:45 -05:00
2008-03-14 04:09:51 -04:00
: decode-if< ( stream encoding max -- character )
nip swap stream-read1 dup
2009-01-23 19:20:47 -05:00
[ [ nip ] [ > ] 2bi [ >fixnum ] [ drop replacement-char ] if ]
[ 2drop f ] if ; inline
2008-03-14 04:09:51 -04:00
PRIVATE>
SINGLETON: ascii
2008-02-16 17:25:45 -05:00
2008-03-14 04:09:51 -04:00
M: ascii encode-char
128 encode-if< ; inline
2008-02-16 17:25:45 -05:00
2008-03-14 04:09:51 -04:00
M: ascii decode-char
128 decode-if< ; inline