9119d9
From b9dbdee2b7d35cb6d338e6f24c7a8fd09409b80e Mon Sep 17 00:00:00 2001
9119d9
Message-Id: <b9dbdee2b7d35cb6d338e6f24c7a8fd09409b80e@dist-git>
9119d9
From: Peter Krempa <pkrempa@redhat.com>
9119d9
Date: Wed, 22 Oct 2014 18:29:45 +0200
9119d9
Subject: [PATCH] util: string: Add helper to check whether string is empty
9119d9
9119d9
https://bugzilla.redhat.com/show_bug.cgi?id=1142693
9119d9
9119d9
The helper checks whether a string contains only whitespace or is NULL.
9119d9
This will be helpful to skip cases where a user string is optional, but
9119d9
may be provided empty with the same meaning.
9119d9
9119d9
(cherry picked from commit 0eeafeedebe4469fce33d7942551957853856619)
9119d9
9119d9
Signed-off-by: Jiri Denemark <jdenemar@redhat.com>
9119d9
---
9119d9
 src/libvirt_private.syms |  1 +
9119d9
 src/util/virstring.c     | 16 ++++++++++++++++
9119d9
 src/util/virstring.h     |  2 ++
9119d9
 3 files changed, 19 insertions(+)
9119d9
9119d9
diff --git a/src/libvirt_private.syms b/src/libvirt_private.syms
9119d9
index 138d84f..f569417 100644
9119d9
--- a/src/libvirt_private.syms
9119d9
+++ b/src/libvirt_private.syms
9119d9
@@ -1964,6 +1964,7 @@ virStrdup;
9119d9
 virStringArrayHasString;
9119d9
 virStringFreeList;
9119d9
 virStringFreeListCount;
9119d9
+virStringIsEmpty;
9119d9
 virStringJoin;
9119d9
 virStringListLength;
9119d9
 virStringReplace;
9119d9
diff --git a/src/util/virstring.c b/src/util/virstring.c
9119d9
index b14f785..583ffd0 100644
9119d9
--- a/src/util/virstring.c
9119d9
+++ b/src/util/virstring.c
9119d9
@@ -616,6 +616,22 @@ virSkipSpacesBackwards(const char *str, char **endp)
9119d9
         *endp = NULL;
9119d9
 }
9119d9
 
9119d9
+/**
9119d9
+ * virStringIsEmpty:
9119d9
+ * @str: string to check
9119d9
+ *
9119d9
+ * Returns true if string is empty (may contain only whitespace) or NULL.
9119d9
+ */
9119d9
+bool
9119d9
+virStringIsEmpty(const char *str)
9119d9
+{
9119d9
+    if (!str)
9119d9
+        return true;
9119d9
+
9119d9
+    virSkipSpaces(&str);
9119d9
+    return str[0] == '\0';
9119d9
+}
9119d9
+
9119d9
 char *
9119d9
 virArgvToString(const char *const *argv)
9119d9
 {
9119d9
diff --git a/src/util/virstring.h b/src/util/virstring.h
9119d9
index 267fbd0..2ec9a4d 100644
9119d9
--- a/src/util/virstring.h
9119d9
+++ b/src/util/virstring.h
9119d9
@@ -105,6 +105,8 @@ void virTrimSpaces(char *str, char **endp) ATTRIBUTE_NONNULL(1);
9119d9
 void virSkipSpacesBackwards(const char *str, char **endp)
9119d9
     ATTRIBUTE_NONNULL(1) ATTRIBUTE_NONNULL(2);
9119d9
 
9119d9
+bool virStringIsEmpty(const char *str);
9119d9
+
9119d9
 char *virStrncpy(char *dest, const char *src, size_t n, size_t destbytes)
9119d9
     ATTRIBUTE_RETURN_CHECK;
9119d9
 char *virStrcpy(char *dest, const char *src, size_t destbytes)
9119d9
-- 
9119d9
2.1.3
9119d9