[PATCH 1/3] util: string: Add helper to check whether string is empty

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



The helper checks whether a string contains only whitespace or is NULL.
This will be helpful to skip cases where a user string is optional, but
may be provided empty with the same meaning.
---
 src/libvirt_private.syms |  1 +
 src/util/virstring.c     | 16 ++++++++++++++++
 src/util/virstring.h     |  2 ++
 3 files changed, 19 insertions(+)

diff --git a/src/libvirt_private.syms b/src/libvirt_private.syms
index 9f749b7..d6b752e 100644
--- a/src/libvirt_private.syms
+++ b/src/libvirt_private.syms
@@ -1999,6 +1999,7 @@ virStrdup;
 virStringArrayHasString;
 virStringFreeList;
 virStringFreeListCount;
+virStringIsEmpty;
 virStringJoin;
 virStringListLength;
 virStringReplace;
diff --git a/src/util/virstring.c b/src/util/virstring.c
index df6464a..3dad9dd 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 40ebaeb..2ec60fa 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)
-- 
2.1.0

--
libvir-list mailing list
libvir-list@xxxxxxxxxx
https://www.redhat.com/mailman/listinfo/libvir-list




[Index of Archives]     [Virt Tools]     [Libvirt Users]     [Lib OS Info]     [Fedora Users]     [Fedora Desktop]     [Fedora SELinux]     [Big List of Linux Books]     [Yosemite News]     [KDE Users]     [Fedora Tools]