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 <phrdina@redhat.com>
This commit is contained in:
Peter Krempa 2017-04-26 16:26:53 +02:00
parent ad97fecee7
commit c0ce84ca98
3 changed files with 22 additions and 4 deletions

View File

@ -2692,6 +2692,7 @@ virStrcpy;
virStrdup;
virStringBufferIsPrintable;
virStringEncodeBase64;
virStringHasChars;
virStringHasControlChars;
virStringIsEmpty;
virStringIsPrintable;

View File

@ -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);
}

View File

@ -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);