conterm/libc/utfnlen.c

27 lines
317 B
C
Raw Normal View History

2005-08-08 16:50:13 +04:00
#include <u.h>
#include <libc.h>
int
utfnlen(char *s, long m)
{
int c;
long n;
Rune rune;
char *es;
es = s + m;
for(n = 0; s < es; n++) {
c = *(uchar*)s;
if(c < Runeself){
if(c == '\0')
break;
s++;
continue;
}
if(!fullrune(s, es-s))
break;
s += chartorune(&rune, s);
}
return n;
}