r11722@Kushana: nickm | 2006-12-28 13:51:42 -0500

Add a helper function for case-insensitive search through a smartlist


svn:r9198
This commit is contained in:
Nick Mathewson 2006-12-28 21:29:03 +00:00
parent e631b0a56f
commit 4cd302a1eb
2 changed files with 16 additions and 0 deletions

View File

@ -197,6 +197,20 @@ smartlist_string_isin(const smartlist_t *sl, const char *element)
return 0; return 0;
} }
/** Return true iff <b>sl</b> has some element E such that
* !strcasecmp(E,<b>element</b>)
*/
int
smartlist_string_isin_case(const smartlist_t *sl, const char *element)
{
int i;
if (!sl) return 0;
for (i=0; i < sl->num_used; i++)
if (strcasecmp((const char*)sl->list[i],element)==0)
return 1;
return 0;
}
/** Return true iff <b>sl</b> has some element E such that E is equal /** Return true iff <b>sl</b> has some element E such that E is equal
* to the decimal encoding of <b>num</b>. * to the decimal encoding of <b>num</b>.
*/ */

View File

@ -35,6 +35,8 @@ void smartlist_string_remove(smartlist_t *sl, const char *element);
int smartlist_isin(const smartlist_t *sl, const void *element) ATTR_PURE; int smartlist_isin(const smartlist_t *sl, const void *element) ATTR_PURE;
int smartlist_string_isin(const smartlist_t *sl, const char *element) int smartlist_string_isin(const smartlist_t *sl, const char *element)
ATTR_PURE; ATTR_PURE;
int smartlist_string_isin_case(const smartlist_t *sl, const char *element)
ATTR_PURE;
int smartlist_string_num_isin(const smartlist_t *sl, int num) ATTR_PURE; int smartlist_string_num_isin(const smartlist_t *sl, int num) ATTR_PURE;
int smartlist_overlap(const smartlist_t *sl1, const smartlist_t *sl2) int smartlist_overlap(const smartlist_t *sl1, const smartlist_t *sl2)
ATTR_PURE; ATTR_PURE;