shithub: mc

Download patch

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")
 	;;
 }