X-Git-Url: http://mj.ucw.cz/gitweb/?a=blobdiff_plain;f=ucw%2Fstring.c;h=bb1fae1af01510e163f96dd630627ec5d1f08125;hb=244c4fe7e6cf5ae78cbe6343fe7f9b6dfc29b11a;hp=c235292a3acf7c45a60829350e2c7c8a1a27e629;hpb=031256ad2e123eec58521f8e3eb9496c197641d2;p=libucw.git diff --git a/ucw/string.c b/ucw/string.c index c235292a..bb1fae1a 100644 --- a/ucw/string.c +++ b/ucw/string.c @@ -2,7 +2,7 @@ * UCW Library -- String Routines * * (c) 2006 Pavel Charvat - * (c) 2007 Martin Mares + * (c) 2007--2012 Martin Mares * * This software may be freely distributed and used according to the terms * of the GNU Lesser General Public License. @@ -10,8 +10,19 @@ #undef LOCAL_DEBUG -#include "ucw/lib.h" -#include "ucw/string.h" +#include +#include + +#ifdef CONFIG_DARWIN +uns +strnlen(const char *str, uns n) +{ + const char *end = str + n; + const char *c; + for (c = str; *c && c < end; c++); + return c - str; +} +#endif char * str_format_flags(char *dest, const char *fmt, uns flags) @@ -27,3 +38,14 @@ str_format_flags(char *dest, const char *fmt, uns flags) *dest = 0; return start; } + +uns +str_count_char(const char *str, uns chr) +{ + const byte *s = str; + uns i = 0; + while (*s) + if (*s++ == chr) + i++; + return i; +}