xref: /plan9/sys/src/cmd/unix/drawterm/libc/utflen.c (revision 8ccd4a6360d974db7bd7bbd4f37e7018419ea908)
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 Colombier utflen(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