]> gitweb.factorcode.org Git - factor.git/commitdiff
io.encodings.utf16: guess-*coded-length hints
authorJoe Groff <arcata@gmail.com>
Sun, 16 Oct 2011 20:19:16 +0000 (13:19 -0700)
committerJoe Groff <arcata@gmail.com>
Tue, 18 Oct 2011 04:23:11 +0000 (21:23 -0700)
core/io/encodings/utf16/utf16-tests.factor
core/io/encodings/utf16/utf16.factor

index e16c1f822ea89e83919f5ac73369e7364a59a41a..2a5ac39ef73e806c1bc9cea270b356c70a8cc339 100644 (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
 
 [ { 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
index 527ad15b1499deabeb9810910060d01c8840a4f4..194e715df2a6d1c8259359f1ac05b1927124c603 100644 (file)
@@ -124,6 +124,12 @@ M: utf16be encode-string
     [ [ char>utf16be ] curry each ]
     [ 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
 
 CONSTANT: bom-le B{ HEX: ff HEX: fe }