Browse Source

r11722@Kushana: nickm | 2006-12-28 13:51:42 -0500
Add a helper function for case-insensitive search through a smartlist


svn:r9198

Nick Mathewson 17 years ago
parent
commit
4cd302a1eb
2 changed files with 16 additions and 0 deletions
  1. 14 0
      src/common/container.c
  2. 2 0
      src/common/container.h

+ 14 - 0
src/common/container.c

@@ -197,6 +197,20 @@ smartlist_string_isin(const smartlist_t *sl, const char *element)
   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
  * to the decimal encoding of <b>num</b>.
  */

+ 2 - 0
src/common/container.h

@@ -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_string_isin(const smartlist_t *sl, const char *element)
   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_overlap(const smartlist_t *sl1, const smartlist_t *sl2)
   ATTR_PURE;