2008-02-21 16:22:49 -05:00
|
|
|
! Copyright (C) 2008 Daniel Ehrenberg.
|
|
|
|
! See http://factorcode.org/license.txt for BSD license.
|
2009-03-31 09:03:27 -04:00
|
|
|
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 -- )
|
2009-08-13 20:21:44 -04:00
|
|
|
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 )
|
2008-06-17 06:22:33 -04:00
|
|
|
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>
|
2008-03-06 16:07:00 -05:00
|
|
|
|
2008-05-10 21:17:24 -04:00
|
|
|
SINGLETON: ascii
|
2008-02-16 17:25:45 -05:00
|
|
|
|
2008-03-14 04:09:51 -04:00
|
|
|
M: ascii encode-char
|
2009-08-17 23:32:21 -04:00
|
|
|
128 encode-if< ; inline
|
2008-02-16 17:25:45 -05:00
|
|
|
|
2008-03-14 04:09:51 -04:00
|
|
|
M: ascii decode-char
|
2009-08-17 23:32:21 -04:00
|
|
|
128 decode-if< ; inline
|