ref: 815fc3522ecffb70ccfec63115e693a4df3a0296
parent: da430a8a9f67f9483af71bb98bfaaaa08c14be2b
author: Ori Bernstein <[email protected]>
date: Sun Aug 5 21:09:13 EDT 2012
Add test for encoding.
--- a/str.myr
+++ b/str.myr
@@ -72,6 +72,7 @@
var tmp
if !str.len
+ /* empty string: no resync needed */
-> (Badchar, str)
;;
c = str[0]
@@ -91,6 +92,7 @@
;;
if len == 0 || len > str.len
+ /* again, we want to try to resync */
-> (Badchar, str[1,str.len])
;;
--- a/test.myr
+++ b/test.myr
@@ -30,11 +30,10 @@
const chartypes = {
var s
var c
- var d
+ var buf : byte[32]
s = " 1世界\n"
for (c, s) = std.striter(s); s.len != 0; (c, s) = std.striter(s)
- d = s.len
if std.isspace(c)
std.write(1, "Space\n")
elif std.isalpha(c)
@@ -42,5 +41,10 @@
elif std.isnum(c)
std.write(1, "Num\n")
;;
+ if !std.encode(c, buf[0,std.charlen(c)])
+ std.write(1, "couldn't encode\n")
+ ;;
+ std.write(1, buf[0,std.charlen(c)])
+ std.write(1, "\n")
;;
}