ref: 4b8271cd44fd92d2580e9e2da23c5dcc85b1ffad
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 uint8_t*)s;
if(c < Runeself){
if(c == '\0')
break;
s++;
continue;
}
if(!fullrune(s, es-s))
break;
s += chartorune(&rune, s);
}
return n;
}