diff --git a/src/libavrdude.h b/src/libavrdude.h index 98f3970f..65b5459e 100644 --- a/src/libavrdude.h +++ b/src/libavrdude.h @@ -1474,6 +1474,7 @@ int str_casematch(const char *pattern, const char *string); int str_matched_by(const char *string, const char *pattern); int str_casematched_by(const char *string, const char *pattern); int str_is_pattern(const char *str); +int str_is_in_list(const char *s, const char **l, size_t nl, int (*f)(const char *, const char*)); char *str_sprintf(const char *fmt, ...) #if defined(__GNUC__) // Ask gcc to check whether format and parameters match __attribute__ ((format (printf, 1, 2))) diff --git a/src/strutil.c b/src/strutil.c index a5c8b01e..41971116 100644 --- a/src/strutil.c +++ b/src/strutil.c @@ -228,6 +228,14 @@ int str_is_pattern(const char *str) { } } +// Is the string s in the list l of strings as matched by f(s, l[i])? +int str_is_in_list(const char *s, const char **l, size_t nl, int (*f)(const char *, const char*)) { + for(size_t i=0; i