ref: 6a51a03b801b21f42e2eb3dfa02c99e96c86b10c
dir: /3rd/utf/utfnlen.c/
#include "platform.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 = *(uint8_t*)s;
if(c < Runeself){
if(c == '\0')
break;
s++;
continue;
}
if(!fullrune(s, es-s))
break;
s += chartorune(&rune, s);
}
return n;
}