X-Git-Url: http://mj.ucw.cz/gitweb/?a=blobdiff_plain;f=ucw%2Fstring.c;h=29cfa42b5e50699de6fd5f4e62645fbb380c8d15;hb=6c4c397f94ec5f5df6bcc178fb5fa4e84d3505fc;hp=195976978a4e369e78ee00263961af141d4c0ee5;hpb=f18211c316437c9cdefb3366699f4b575f3aa4d7;p=libucw.git diff --git a/ucw/string.c b/ucw/string.c index 19597697..29cfa42b 100644 --- a/ucw/string.c +++ b/ucw/string.c @@ -2,7 +2,7 @@ * UCW Library -- String Routines * * (c) 2006 Pavel Charvat - * (c) 2007--2008 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,14 +10,25 @@ #undef LOCAL_DEBUG -#include "ucw/lib.h" -#include "ucw/string.h" +#include +#include + +#ifdef CONFIG_DARWIN +size_t +strnlen(const char *str, size_t 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) +str_format_flags(char *dest, const char *fmt, uint flags) { char *start = dest; - for (uns i=0; fmt[i]; i++) + for (uint i=0; fmt[i]; i++) { if (flags & (1 << i)) *dest++ = fmt[i]; @@ -28,11 +39,11 @@ str_format_flags(char *dest, const char *fmt, uns flags) return start; } -uns -str_count_char(const char *str, uns chr) +size_t +str_count_char(const char *str, uint chr) { const byte *s = str; - uns i = 0; + size_t i = 0; while (*s) if (*s++ == chr) i++;