X-Git-Url: http://mj.ucw.cz/gitweb/?a=blobdiff_plain;ds=inline;f=ucw%2Fstring.c;h=bd9303ee8142a92b548e18580830705d3a1e3eab;hb=6e853991c33e997ce6197f9039662c83c506b31d;hp=c235292a3acf7c45a60829350e2c7c8a1a27e629;hpb=031256ad2e123eec58521f8e3eb9496c197641d2;p=libucw.git diff --git a/ucw/string.c b/ucw/string.c index c235292a..bd9303ee 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--2008 Martin Mares * * This software may be freely distributed and used according to the terms * of the GNU Lesser General Public License. @@ -13,6 +13,17 @@ #include "ucw/lib.h" #include "ucw/string.h" +#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; +}