13e12c5d1SDavid du Colombier #include <u.h> 23e12c5d1SDavid du Colombier #include <libc.h> 33e12c5d1SDavid du Colombier 4*7dd7cddfSDavid du Colombier int utflen(char * s)53e12c5d1SDavid du Colombierutflen(char *s) 63e12c5d1SDavid du Colombier { 73e12c5d1SDavid du Colombier int c; 83e12c5d1SDavid du Colombier long n; 93e12c5d1SDavid du Colombier Rune rune; 103e12c5d1SDavid du Colombier 113e12c5d1SDavid du Colombier n = 0; 123e12c5d1SDavid du Colombier for(;;) { 133e12c5d1SDavid du Colombier c = *(uchar*)s; 143e12c5d1SDavid du Colombier if(c < Runeself) { 153e12c5d1SDavid du Colombier if(c == 0) 163e12c5d1SDavid du Colombier return n; 173e12c5d1SDavid du Colombier s++; 183e12c5d1SDavid du Colombier } else 193e12c5d1SDavid du Colombier s += chartorune(&rune, s); 203e12c5d1SDavid du Colombier n++; 213e12c5d1SDavid du Colombier } 223e12c5d1SDavid du Colombier } 23