diff --git a/basis/hints/hints.factor b/basis/hints/hints.factor index d1272b45d8..3dc8dff936 100644 --- a/basis/hints/hints.factor +++ b/basis/hints/hints.factor @@ -141,5 +141,3 @@ set-specializer M\ hashtable set-at { { object fixnum object } { object word object } } set-specializer - -\ encode-string { string object object } set-specializer diff --git a/core/io/encodings/ascii/ascii.factor b/core/io/encodings/ascii/ascii.factor index 45217748a4..2c7a475217 100644 --- a/core/io/encodings/ascii/ascii.factor +++ b/core/io/encodings/ascii/ascii.factor @@ -1,7 +1,7 @@ ! Copyright (C) 2008 Daniel Ehrenberg. ! See http://factorcode.org/license.txt for BSD license. USING: accessors byte-arrays io io.encodings -io.encodings.private kernel math sequences ; +io.encodings.private kernel math sequences strings ; IN: io.encodings.ascii SINGLETON: ascii @@ -10,15 +10,20 @@ M: ascii encode-char drop over 127 <= [ stream-write1 ] [ encode-error ] if ; inline + ( string -- byte-array ) + +M: string ascii> + dup aux>> + [ [ dup 127 <= [ encode-error ] unless ] B{ } map-as ] + [ string>byte-array-fast ] if ; inline + +PRIVATE> + M: ascii encode-string drop - [ - dup aux>> - [ [ dup 127 <= [ encode-error ] unless ] B{ } map-as ] - [ string>byte-array-fast ] - if - ] dip - stream-write ; + [ ascii> ] dip stream-write ; M: ascii decode-char drop