From 79907ad256f5b84f36cbebdc92e5a05d9e266557 Mon Sep 17 00:00:00 2001 From: "Neal H. Walfield" Date: Fri, 13 Mar 2015 15:08:22 +0100 Subject: [PATCH] Add new function strlist_find. * common/strlist.h (strlist_find): New declaration. * common/strlist.c (strlist_find): New function. -- Signed-off-by: Neal H. Walfield --- common/strlist.c | 14 ++++++++++++++ common/strlist.h | 3 +++ 2 files changed, 17 insertions(+) diff --git a/common/strlist.c b/common/strlist.c index d9aed16f2..6816dcf1a 100644 --- a/common/strlist.c +++ b/common/strlist.c @@ -1,5 +1,6 @@ /* strlist.c - string helpers * Copyright (C) 1998, 2000, 2001, 2006 Free Software Foundation, Inc. + * Copyright (C) 2015 g10 Code GmbH * * This file is part of JNLIB, which is a subsystem of GnuPG. * @@ -212,3 +213,16 @@ strlist_pop (strlist_t *list) return str; } + +/* Return the first element of the string list HAYSTACK whose string + matches NEEDLE. If no elements match, return NULL. */ +strlist_t +strlist_find (strlist_t haystack, const char *needle) +{ + for (; + haystack; + haystack = haystack->next) + if (strcmp (haystack->d, needle) == 0) + return haystack; + return NULL; +} diff --git a/common/strlist.h b/common/strlist.h index c72549fe8..94567df0a 100644 --- a/common/strlist.h +++ b/common/strlist.h @@ -55,6 +55,9 @@ strlist_t strlist_prev (strlist_t head, strlist_t node); strlist_t strlist_last (strlist_t node); char * strlist_pop (strlist_t *list); +strlist_t strlist_find (strlist_t haystack, const char *needle); + + #define FREE_STRLIST(a) do { free_strlist((a)); (a) = NULL ; } while(0)