ref: 12c9d2fc728b51aa1eb9a70d0d331eb9464912d9
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; }