Implement stream-read on memory-streams. This allows alien>string to work with utf16 encoding
parent
5a50046791
commit
b7dc7296db
|
@ -1,6 +1,6 @@
|
||||||
USING: alien.strings tools.test kernel libc
|
USING: alien.strings tools.test kernel libc
|
||||||
io.encodings.8-bit io.encodings.utf8 io.encodings.utf16
|
io.encodings.8-bit io.encodings.utf8 io.encodings.utf16
|
||||||
io.encodings.ascii alien ;
|
io.encodings.ascii alien io.encodings.string ;
|
||||||
IN: alien.strings.tests
|
IN: alien.strings.tests
|
||||||
|
|
||||||
[ "\u0000ff" ]
|
[ "\u0000ff" ]
|
||||||
|
@ -28,3 +28,7 @@ unit-test
|
||||||
] unit-test
|
] unit-test
|
||||||
|
|
||||||
[ f ] [ f utf8 alien>string ] unit-test
|
[ f ] [ f utf8 alien>string ] unit-test
|
||||||
|
|
||||||
|
[ "hello" ] [ "hello" utf16 encode utf16 decode ] unit-test
|
||||||
|
|
||||||
|
[ "hello" ] [ "hello" utf16 string>alien utf16 alien>string ] unit-test
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
! Copyright (C) 2008 Slava Pestov.
|
! Copyright (C) 2008 Slava Pestov.
|
||||||
! See http://factorcode.org/license.txt for BSD license.
|
! See http://factorcode.org/license.txt for BSD license.
|
||||||
USING: kernel accessors alien.accessors math io ;
|
USING: kernel accessors alien alien.c-types alien.accessors math io ;
|
||||||
IN: io.streams.memory
|
IN: io.streams.memory
|
||||||
|
|
||||||
TUPLE: memory-stream alien index ;
|
TUPLE: memory-stream alien index ;
|
||||||
|
@ -11,3 +11,9 @@ TUPLE: memory-stream alien index ;
|
||||||
M: memory-stream stream-read1
|
M: memory-stream stream-read1
|
||||||
[ [ alien>> ] [ index>> ] bi alien-unsigned-1 ]
|
[ [ alien>> ] [ index>> ] bi alien-unsigned-1 ]
|
||||||
[ [ 1+ ] change-index drop ] bi ;
|
[ [ 1+ ] change-index drop ] bi ;
|
||||||
|
|
||||||
|
M: memory-stream stream-read
|
||||||
|
[
|
||||||
|
[ index>> ] [ alien>> ] bi <displaced-alien>
|
||||||
|
swap memory>byte-array
|
||||||
|
] [ [ + ] change-index drop ] 2bi ;
|
||||||
|
|
Loading…
Reference in New Issue