shithub: mc

Download patch

ref: 8e6d42ba014b19f789f59ec1ee1576e848f67773
parent: 2a051dffce96e453afec5bc00e6cee64063371ea
parent: fc00f618566dc04bf1b06ec64953ca5e770638f5
author: Ori Bernstein <[email protected]>
date: Fri Aug 3 21:56:41 EDT 2012

Merge branch 'master' of git+ssh://mimir.eigenstate.org/git/ori/libmyr

--- a/chartype.myr
+++ b/chartype.myr
@@ -1041,19 +1041,24 @@
 	var l
 	var m
 
-	l = t
-	while l.len > nelt
-		m = l.len/2
-		l = t[m+nelt, t.len]
-		if c >= l[0]
-			t = l[m, l.len]
-		else
-			t = l[0,m]
+	/* we're processing in chunks of size 
+	   nelt, so 1 chunk is of length 'nelt' */
+	while t.len > nelt
+		sz /= 2
+		m = sz*nelt
+		l = t[m, t.len]
+		if c == l[0]
+			t = l[0, nelt]
+		elif c > l[0]
+			t = l[1,t.len]
+		elif c < l[0]
+			t = t[0,m]
 		;;
 	;;
 
-	if l.len != 0 && c >= t[0]
-		*ret = l
+	write(1, "found")
+	if t.len != 0 && c >= t[0]
+		*ret = t
 		-> true
 	else
 		-> false
@@ -1096,10 +1101,10 @@
 
 const isspace = {c
 	var l
-	var c
 	var sl
 	var len
 
+	l = tabspace2[0,tabspace2.len]
 	sl = tabspace2[0,tabspace2.len]
 	len = tabspace2.len/2
 	if findc(c, sl, len, 2, &l)
--- a/test.myr
+++ b/test.myr
@@ -31,14 +31,16 @@
 	var s
 	var c
 
-	s = "世界 123\n"
+	s = "  \n"
 	for (c, s) = std.striter(s); s.len != 0; (c, s) = std.striter(s)
 		if std.isspace(c)
 			std.write(1, "Space\n")
+		/*
 		elif std.isalpha(c)
 			std.write(1, "Alpha\n")
 		elif std.isnum(c)
 			std.write(1, "Num\n")
+		*/
 		;;
 	;;
 }