USING: alien.strings tools.test kernel libc
-io.encodings.8-bit io.encodings.utf16 io.encodings.ascii alien ;
+io.encodings.8-bit io.encodings.utf8 io.encodings.utf16
+io.encodings.ascii alien ;
IN: alien.strings.tests
[ "\u0000ff" ]
dup utf16n alien>string swap free
] unit-test
+[ f ] [ f utf8 alien>string ] unit-test
io.encodings.utf16 system alien strings cpu.architecture ;
IN: alien.strings
-: alien>string ( alien encoding -- string )
+GENERIC# alien>string 1 ( alien encoding -- string/f )
+
+M: c-ptr alien>string
>r <memory-stream> r> <decoder>
"\0" swap stream-read-until drop ;
+M: f alien>string
+ drop ;
+
ERROR: invalid-c-string string ;
: check-string ( string -- )