#include "platform.h"#include "utf.h" intutfnlen(const char *s, long m){ int c; long n; Rune rune; const char *es; es = s + m; for(n = 0; s < es; n++) { c = *(const u8int*)s; if(c < Runeself){ if(c == '\0') break; s++; continue; } if(!fullrune(s, es-s)) break; s += chartorune(&rune, s); } return n;}
#include "platform.h"
#include "utf.h"
int
utfnlen(const char *s, long m)
{
int c;
long n;
Rune rune;
const char *es;
es = s + m;
for(n = 0; s < es; n++) {
c = *(const u8int*)s;
if(c < Runeself){
if(c == '\0')
break;
s++;
continue;
}
if(!fullrune(s, es-s))
break;
s += chartorune(&rune, s);
}
return n;
}