ref: ad50f75a7c9276fa04a0e91c54be24d2cec74b28
dir: /3rd/utf/utfnlen.c/
#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;
}