On Wed, Mar 13, 2019 at 03:30:10PM +0900, Shotaro Gotanda wrote:
This function parse the string "yes" into bool true and
"no" into false, and returns 0.
If the string is anything other than "yes|no",
this function returns -1.
Signed-off-by: Shotaro Gotanda <g.sho1500(a)gmail.com>
---
src/util/virstring.c | 21 +++++++++++++++++++++
src/util/virstring.h | 3 +++
2 files changed, 24 insertions(+)
diff --git a/src/util/virstring.c b/src/util/virstring.c
index 33f8191f45..3bbe36ea25 100644
--- a/src/util/virstring.c
+++ b/src/util/virstring.c
@@ -1548,3 +1548,24 @@ virStringParsePort(const char *str,
return 0;
}
+
+
+/**
+ * virStringParseYesNo:
+ * @str: "yes|no" to parse, and the value must not be NULL.
+ * @port: pointer to parse and convert "yes|no" into
^This one looks like a copy-paste from virStringParsePort ;)
+ *
+ * Parses a string "yes|no" and convert it into true|false.
...converts it into a boolean.
+ * Returns 0 on success and -1 on error.
+ */
+int virStringParseYesNo(const char *str, bool *result)
+{
+ if (STREQ(str, "yes"))
+ *result = true;
+ else if (STREQ(str, "no"))
+ *result = false;
+ else
+ return -1;
+
+ return 0;
+}
diff --git a/src/util/virstring.h b/src/util/virstring.h
index 1e36ac459c..9b01e8568a 100644
--- a/src/util/virstring.h
+++ b/src/util/virstring.h
@@ -316,6 +316,9 @@ int virStringParsePort(const char *str,
unsigned int *port)
ATTRIBUTE_NONNULL(2) ATTRIBUTE_RETURN_CHECK;
+int virStringParseYesNo(const char *str,
+ bool *result)
^misaligned
The function should also be added to src/libvirt_private.syms
I tweaked the commit message a tiny bit and I'll perform the adjustments I
noted before pushing by squashing the following:
diff --git a/src/libvirt_private.syms b/src/libvirt_private.syms
index 960a97cf1d..92a86943b1 100644
--- a/src/libvirt_private.syms
+++ b/src/libvirt_private.syms
@@ -2988,6 +2988,7 @@ virStringListRemove;
virStringMatch;
virStringMatchesNameSuffix;
virStringParsePort;
+virStringParseYesNo;
virStringReplace;
virStringSearch;
virStringSortCompare;
diff --git a/src/util/virstring.c b/src/util/virstring.c
index d9d6c0a33e..95bd7d225e 100644
--- a/src/util/virstring.c
+++ b/src/util/virstring.c
@@ -1552,10 +1552,11 @@ virStringParsePort(const char *str,
/**
* virStringParseYesNo:
- * @str: "yes|no" to parse, and the value must not be NULL.
- * @port: pointer to parse and convert "yes|no" into
+ * @str: "yes|no" to parse, must not be NULL.
+ * @result: pointer to the boolean result of @str conversion
+ *
+ * Parses a "yes|no" string and converts it into a boolean.
*
- * Parses a string "yes|no" and convert it into true|false.
* Returns 0 on success and -1 on error.
*/
int virStringParseYesNo(const char *str, bool *result)
diff --git a/src/util/virstring.h b/src/util/virstring.h
index 9b01e8568a..b0fedf96a3 100644
--- a/src/util/virstring.h
+++ b/src/util/virstring.h
@@ -317,7 +317,7 @@ int virStringParsePort(const char *str,
ATTRIBUTE_NONNULL(2) ATTRIBUTE_RETURN_CHECK;
int virStringParseYesNo(const char *str,
- bool *result)
+ bool *result)
ATTRIBUTE_RETURN_CHECK;
/**
Reviewed-by: Erik Skultety <eskultet(a)redhat.com>