/* * This file is part of the UCB release of Plan 9. It is subject to the license * terms in the LICENSE file found in the top-level directory of this * distribution and at http://akaros.cs.berkeley.edu/files/Plan9License. No * part of the UCB release of Plan 9, including this file, may be copied, * modified, propagated, or distributed except according to the terms contained * in the LICENSE file. */ #include #include int jehanne_utflen(const char *s) { int c; int32_t n; Rune rune; n = 0; for(;;) { c = *(uint8_t*)s; if(c < Runeself) { if(c == 0) return n; s++; } else s += jehanne_chartorune(&rune, s); n++; } }