From c0ce84ca9897eceb774206359aa5198d8afb6a38 Mon Sep 17 00:00:00 2001 From: Peter Krempa Date: Wed, 26 Apr 2017 16:26:53 +0200 Subject: [PATCH] util: string: Introduce virStringHasChars The helper returns true if a string contains any of the given chars. virStringHasControlChars can be reimplemented using that helper. Reviewed-by: Pavel Hrdina --- src/libvirt_private.syms | 1 + src/util/virstring.c | 23 +++++++++++++++++++---- src/util/virstring.h | 2 ++ 3 files changed, 22 insertions(+), 4 deletions(-) diff --git a/src/libvirt_private.syms b/src/libvirt_private.syms index 7b477a561e..2149b11b74 100644 --- a/src/libvirt_private.syms +++ b/src/libvirt_private.syms @@ -2692,6 +2692,7 @@ virStrcpy; virStrdup; virStringBufferIsPrintable; virStringEncodeBase64; +virStringHasChars; virStringHasControlChars; virStringIsEmpty; virStringIsPrintable; diff --git a/src/util/virstring.c b/src/util/virstring.c index 58abf9dd61..0288d1e677 100644 --- a/src/util/virstring.c +++ b/src/util/virstring.c @@ -1195,6 +1195,24 @@ virStringStripIPv6Brackets(char *str) } +/** + * virStringHasChars: + * @str: string to look for chars in + * @chars: chars to find in string @str + * + * Returns true if @str contains any of the chars in @chars. + */ +bool +virStringHasChars(const char *str, + const char *chars) +{ + if (!str) + return false; + + return str[strcspn(str, chars)] != '\0'; +} + + static const char control_chars[] = "\x01\x02\x03\x04\x05\x06\x07" "\x08" /* \t \n */ "\x0B\x0C" /* \r */ "\x0E\x0F" @@ -1204,10 +1222,7 @@ static const char control_chars[] = bool virStringHasControlChars(const char *str) { - if (!str) - return false; - - return str[strcspn(str, control_chars)] != '\0'; + return virStringHasChars(str, control_chars); } diff --git a/src/util/virstring.h b/src/util/virstring.h index ff5f0148d6..1290fcce15 100644 --- a/src/util/virstring.h +++ b/src/util/virstring.h @@ -286,6 +286,8 @@ char *virStringReplace(const char *haystack, ATTRIBUTE_NONNULL(1) ATTRIBUTE_NONNULL(2) ATTRIBUTE_NONNULL(3); void virStringStripIPv6Brackets(char *str); +bool virStringHasChars(const char *str, + const char *chars); bool virStringHasControlChars(const char *str); void virStringStripControlChars(char *str);