1*8ccd4a63SDavid du Colombier #include <u.h> 2*8ccd4a63SDavid du Colombier #include <libc.h> 3*8ccd4a63SDavid du Colombier 4*8ccd4a63SDavid du Colombier int utflen(char * s)5*8ccd4a63SDavid du Colombierutflen(char *s) 6*8ccd4a63SDavid du Colombier { 7*8ccd4a63SDavid du Colombier int c; 8*8ccd4a63SDavid du Colombier long n; 9*8ccd4a63SDavid du Colombier Rune rune; 10*8ccd4a63SDavid du Colombier 11*8ccd4a63SDavid du Colombier n = 0; 12*8ccd4a63SDavid du Colombier for(;;) { 13*8ccd4a63SDavid du Colombier c = *(uchar*)s; 14*8ccd4a63SDavid du Colombier if(c < Runeself) { 15*8ccd4a63SDavid du Colombier if(c == 0) 16*8ccd4a63SDavid du Colombier return n; 17*8ccd4a63SDavid du Colombier s++; 18*8ccd4a63SDavid du Colombier } else 19*8ccd4a63SDavid du Colombier s += chartorune(&rune, s); 20*8ccd4a63SDavid du Colombier n++; 21*8ccd4a63SDavid du Colombier } 22*8ccd4a63SDavid du Colombier return 0; 23*8ccd4a63SDavid du Colombier } 24