From: Timo Sirainen Date: Sat, 21 Jun 2008 06:21:38 +0000 (+0300) Subject: Added str_array_icase_find(). X-Git-Tag: 1.2.alpha1~246 X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=81e901f1e597caafdb81af2acbd2e195d6f011e4;p=thirdparty%2Fdovecot%2Fcore.git Added str_array_icase_find(). --HG-- branch : HEAD --- diff --git a/src/lib/strfuncs.c b/src/lib/strfuncs.c index 9bc76f0d09..1015524347 100644 --- a/src/lib/strfuncs.c +++ b/src/lib/strfuncs.c @@ -541,6 +541,15 @@ bool str_array_remove(const char **arr, const char *value) return FALSE; } +bool str_array_icase_find(const char *const *arr, const char *value) +{ + for (; *arr != NULL; arr++) { + if (strcasecmp(*arr, value) == 0) + return TRUE; + } + return FALSE; +} + const char *dec2str(uintmax_t number) { char *buffer; diff --git a/src/lib/strfuncs.h b/src/lib/strfuncs.h index eb0b59e0f3..63902bc35b 100644 --- a/src/lib/strfuncs.h +++ b/src/lib/strfuncs.h @@ -80,6 +80,9 @@ const char *t_strarray_join(const char *const *arr, const char *separator) ATTR_MALLOC; /* Removes a value from NULL-terminated string array. Returns TRUE if found. */ bool str_array_remove(const char **arr, const char *value); +/* Returns TRUE if value exists in NULL-terminated string array. + Strings are compared case-insensitively. */ +bool str_array_icase_find(const char *const *arr, const char *value); /* INTERNAL */ char *t_noalloc_strdup_vprintf(const char *format, va_list args,