diff options
author | Juan Pablo Ugarte <juanpablougarte@gmail.com> | 2017-11-18 12:01:12 -0300 |
---|---|---|
committer | Juan Pablo Ugarte <juanpablougarte@gmail.com> | 2017-11-18 12:01:12 -0300 |
commit | 7f9cfb30062b1087b78693a3d96af76c7702946b (patch) | |
tree | 9aac6f86be3cf3fc1fbd934adffc42b61c509b18 | |
parent | e8517e5545e6f1014cd071e7432b2f3fa009cfcf (diff) | |
download | glade-7f9cfb30062b1087b78693a3d96af76c7702946b.tar.gz |
Add glade_utils_boolean_from_string() to the zoo
-rw-r--r-- | gladeui/glade-utils.c | 47 | ||||
-rw-r--r-- | gladeui/glade-utils.h | 2 |
2 files changed, 49 insertions, 0 deletions
diff --git a/gladeui/glade-utils.c b/gladeui/glade-utils.c index dcfd9d60..73b5d25f 100644 --- a/gladeui/glade-utils.c +++ b/gladeui/glade-utils.c @@ -1587,6 +1587,53 @@ glade_utils_value_from_string (GType type, return NULL; } +/** + * glade_utils_boolean_from_string: + * @string: the string to convert + * @value: return location + * + * Parse a boolean value + * + * Returns: True if there was an error on the conversion. + */ +gboolean +glade_utils_boolean_from_string (const gchar *string, gboolean *value) +{ + if (string) + { + const gchar *c = string; + + /* Skip white spaces */ + while (g_ascii_isspace (*c)) + c++; + + /* We only need the first char */ + switch (*c) + { + case '1': + case 't': + case 'T': + case 'y': + case 'Y': + if (value) + *value = TRUE; + return FALSE; + break; + + case '0': + case 'f': + case 'F': + case 'n': + case 'N': + if (value) + *value = FALSE; + return FALSE; + break; + } + } + + return TRUE; +} /** * glade_utils_string_from_value: diff --git a/gladeui/glade-utils.h b/gladeui/glade-utils.h index 9c8839c7..e5d928d6 100644 --- a/gladeui/glade-utils.h +++ b/gladeui/glade-utils.h @@ -67,6 +67,8 @@ GValue *glade_utils_value_from_string (GType type, const gchar *string, GladeProject *project); gchar *glade_utils_string_from_value (const GValue *value); +gboolean glade_utils_boolean_from_string (const gchar *string, + gboolean *value); /* Devhelp */ gboolean glade_util_have_devhelp (void); |