]> granicus.if.org Git - neomutt/commitdiff
Add mutt_find_list() to lookup data in lists
authorRocco Rutte <pdmef@gmx.net>
Wed, 13 May 2009 12:19:26 +0000 (14:19 +0200)
committerRocco Rutte <pdmef@gmx.net>
Wed, 13 May 2009 12:19:26 +0000 (14:19 +0200)
mutt.h
muttlib.c

diff --git a/mutt.h b/mutt.h
index 5ee1f1ba68ce91bc02694d8cb9c0ae7dad89da6f..06cdab8b3ddb95726addbe930c4f56cceb03d98d 100644 (file)
--- a/mutt.h
+++ b/mutt.h
@@ -552,6 +552,7 @@ int mutt_matches_ignore (const char *, LIST *);
 /* add an element to a list */
 LIST *mutt_add_list (LIST *, const char *);
 LIST *mutt_add_list_n (LIST*, const void *, size_t);
+LIST *mutt_find_list (LIST *, const char *);
 
 void mutt_init (int, LIST *);
 
index a031941cc2e80eaf96f12134690348f75d00e24a..590bef7a89a786227ed8620b310ee02f09148677 100644 (file)
--- a/muttlib.c
+++ b/muttlib.c
@@ -252,6 +252,21 @@ LIST *mutt_add_list_n (LIST *head, const void *data, size_t len)
   return head;
 }
 
+LIST *mutt_find_list (LIST *l, const char *data)
+{
+  LIST *p = l;
+
+  while (p)
+  {
+    if (data == p->data)
+      return p;
+    if (data && p->data && mutt_strcmp (p->data, data) == 0)
+      return p;
+    p = p->next;
+  }
+  return NULL;
+}
+
 void mutt_free_list (LIST **list)
 {
   LIST *p;