X-Git-Url: http://mj.ucw.cz/gitweb/?a=blobdiff_plain;f=charset%2Fstrlen.c;h=1fb0f7562a46657cb34076357945145cb4f54494;hb=ddb01cbb4eb8431b042918438e6543003851a87f;hp=b1f282b15d12f0b5275b778bd7ffe861405a3b8e;hpb=0860307de69e9a3fe012afb5311465a5ff1f1186;p=libucw.git diff --git a/charset/strlen.c b/charset/strlen.c index b1f282b1..1fb0f756 100644 --- a/charset/strlen.c +++ b/charset/strlen.c @@ -1,9 +1,14 @@ /* * The UniCode Library -- String Length * - * (c) 1997 Martin Mares, + * (c) 1997--2003 Martin Mares + * (c) 2003 Robert Spalek + * + * This software may be freely distributed and used according to the terms + * of the GNU Lesser General Public License. */ +#include "lib/lib.h" #include "charset/unicode.h" uns @@ -15,3 +20,28 @@ Ustrlen(word *w) z++; return z - w; } + +uns +utf8_strlen(byte *str) +{ + uns len = 0; + while (*str) + { + UTF8_SKIP(str); + len++; + } + return len; +} + +uns +utf8_strnlen(byte *str, uns n) +{ + uns len = 0; + byte *end = str + n; + while (str < end) + { + UTF8_SKIP(str); + len++; + } + return len; +}