diff --git a/src/libvirt_private.syms b/src/libvirt_private.syms index 7cbc35b2c691e0bc703200c2aea7ad4c6f62e22e..9b98d4c86da304304d619f5f01367b573d52a406 100644 --- a/src/libvirt_private.syms +++ b/src/libvirt_private.syms @@ -1991,6 +1991,7 @@ virStrdup; virStringArrayHasString; virStringFreeList; virStringFreeListCount; +virStringIsEmpty; virStringJoin; virStringListLength; virStringReplace; diff --git a/src/util/virstring.c b/src/util/virstring.c index 54c0b6fb9324028e940998e439e2f7417e4cebce..8291617a103bf1b57dd5dc1a3cd3f4b34496873f 100644 --- a/src/util/virstring.c +++ b/src/util/virstring.c @@ -633,6 +633,22 @@ virSkipSpacesBackwards(const char *str, char **endp) *endp = NULL; } +/** + * virStringIsEmpty: + * @str: string to check + * + * Returns true if string is empty (may contain only whitespace) or NULL. + */ +bool +virStringIsEmpty(const char *str) +{ + if (!str) + return true; + + virSkipSpaces(&str); + return str[0] == '\0'; +} + char * virArgvToString(const char *const *argv) { diff --git a/src/util/virstring.h b/src/util/virstring.h index b82ef2af36a25a010e557ccac362bec29d4ca819..0c87fadbb3f1dd4a416c3492ce83cb1f055488ae 100644 --- a/src/util/virstring.h +++ b/src/util/virstring.h @@ -107,6 +107,8 @@ void virTrimSpaces(char *str, char **endp) ATTRIBUTE_NONNULL(1); void virSkipSpacesBackwards(const char *str, char **endp) ATTRIBUTE_NONNULL(1) ATTRIBUTE_NONNULL(2); +bool virStringIsEmpty(const char *str); + char *virStrncpy(char *dest, const char *src, size_t n, size_t destbytes) ATTRIBUTE_RETURN_CHECK; char *virStrcpy(char *dest, const char *src, size_t destbytes)