From: Ken Thompson Date: Mon, 13 Apr 2009 05:34:36 +0000 (-0700) Subject: tweak X-Git-Tag: weekly.2009-11-06~1856 X-Git-Url: http://www.git.cypherpunks.su/?a=commitdiff_plain;h=907509de4a9590a2bb13274e2a8a2d070ffee57e;p=gostls13.git tweak R=r OCL=27344 CL=27344 --- diff --git a/src/runtime/string.c b/src/runtime/string.c index b9b361861e..c62731ea31 100644 --- a/src/runtime/string.c +++ b/src/runtime/string.c @@ -198,7 +198,7 @@ enum void sys·stringiter(String s, int32 k, int32 retk) { - int32 l, n; + int32 l; if(k >= s.len) { // retk=0 is end of iteration @@ -207,14 +207,13 @@ sys·stringiter(String s, int32 k, int32 retk) } l = s.str[k]; - n = 1; - - if(l >= Runeself) { - // multi-char rune - n = charntorune(&l, s.str+k, s.len-k); + if(l < Runeself) { + retk = k+1; + goto out; } - retk = k+n; + // multi-char rune + retk = k + charntorune(&l, s.str+k, s.len-k); out: FLUSH(&retk); @@ -224,7 +223,7 @@ out: void sys·stringiter2(String s, int32 k, int32 retk, int32 retv) { - int32 l, n; + int32 l; if(k >= s.len) { // retk=0 is end of iteration @@ -233,16 +232,14 @@ sys·stringiter2(String s, int32 k, int32 retk, int32 retv) goto out; } - l = s.str[k]; - n = 1; - - if(l >= Runeself) { - // multi-char rune - n = charntorune(&l, s.str+k, s.len-k); + retv = s.str[k]; + if(retv < Runeself) { + retk = k+1; + goto out; } - retk = k+n; - retv = l; + // multi-char rune + retk = k + charntorune(&retv, s.str+k, s.len-k); out: FLUSH(&retk);