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