diff options
author | Alasdair G Kergon <agk@redhat.com> | 2016-07-14 14:46:38 +0100 |
---|---|---|
committer | Alasdair G Kergon <agk@redhat.com> | 2016-07-14 14:46:38 +0100 |
commit | 12925d8b70c88e1a7a98e69ab896eb16ed2602fc (patch) | |
tree | aad9866215f70d4c3e1c488a4d6a1945270e916b | |
parent | 5af311ddd8f5c03839b1c2a8feff5eb8dfde5606 (diff) | |
download | lvm2-12925d8b70c88e1a7a98e69ab896eb16ed2602fc.tar.gz |
string: Add first_substring().
-rw-r--r-- | lib/misc/lvm-string.c | 16 | ||||
-rw-r--r-- | lib/misc/lvm-string.h | 8 |
2 files changed, 24 insertions, 0 deletions
diff --git a/lib/misc/lvm-string.c b/lib/misc/lvm-string.c index 809c63c13..cdcc993d3 100644 --- a/lib/misc/lvm-string.c +++ b/lib/misc/lvm-string.c @@ -243,3 +243,19 @@ char *build_dm_uuid(struct dm_pool *mem, const struct logical_volume *lv, return dlid; } + +char *first_substring(const char *str, ...) +{ + char *substr, *r = NULL; + va_list ap; + + va_start(ap, str); + + while ((substr = va_arg(ap, char *))) + if ((r = strstr(str, substr))) + break; + + va_end(ap); + + return r; +} diff --git a/lib/misc/lvm-string.h b/lib/misc/lvm-string.h index d96dad580..ebdf95652 100644 --- a/lib/misc/lvm-string.h +++ b/lib/misc/lvm-string.h @@ -49,4 +49,12 @@ void copy_systemid_chars(const char *src, char *dst); int apply_lvname_restrictions(const char *name); int is_reserved_lvname(const char *name); +/* + * Provided with a NULL-terminated argument list of const char * + * substrings that might be contained within the string str, use + * strstr() to search str for each in turn and return a pointer to the + * first match or else NULL. + */ +char *first_substring(const char *str, ...); + #endif |