From 86639b9df0898adbbc5bac39fb19d7126eafc020 Mon Sep 17 00:00:00 2001 From: John Benediktsson Date: Tue, 14 Jul 2015 22:18:12 -0700 Subject: [PATCH] io.encodings.ascii: make sure encode-string gets a string. --- basis/hints/hints.factor | 2 -- core/io/encodings/ascii/ascii.factor | 21 +++++++++++++-------- 2 files changed, 13 insertions(+), 10 deletions(-) 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