io.encodings.utf16: guess-*coded-length hints

db4
Joe Groff 2011-10-16 13:19:16 -07:00
parent 4bdef412fc
commit 5443664df7
2 changed files with 11 additions and 0 deletions

View File

@ -23,3 +23,8 @@ IN: io.encodings.utf16.tests
[ { CHAR: x } ] [ B{ HEX: fe HEX: ff 0 CHAR: x } utf16 decode >array ] unit-test [ { CHAR: x } ] [ B{ HEX: fe HEX: ff 0 CHAR: x } utf16 decode >array ] unit-test
[ { HEX: ff HEX: fe 120 0 52 216 30 221 } ] [ { CHAR: x HEX: 1d11e } >string utf16 encode >array ] unit-test [ { HEX: ff HEX: fe 120 0 52 216 30 221 } ] [ { CHAR: x HEX: 1d11e } >string utf16 encode >array ] unit-test
! test ascii encoding path
[ B{ CHAR: a 0 CHAR: b 0 CHAR: c 0 } ] [ "abc" utf16le encode ] unit-test
[ B{ 0 CHAR: a 0 CHAR: b 0 CHAR: c } ] [ "abc" utf16be encode ] unit-test

View File

@ -124,6 +124,12 @@ M: utf16be encode-string
[ [ char>utf16be ] curry each ] [ [ char>utf16be ] curry each ]
[ ascii-string>utf16be ] if ; [ ascii-string>utf16be ] if ;
M: utf16le guess-encoded-length drop 2 * ; inline
M: utf16le guess-decoded-length drop 2 /i ; inline
M: utf16be guess-encoded-length drop 2 * ; inline
M: utf16be guess-decoded-length drop 2 /i ; inline
! UTF-16 ! UTF-16
CONSTANT: bom-le B{ HEX: ff HEX: fe } CONSTANT: bom-le B{ HEX: ff HEX: fe }