summaryrefslogtreecommitdiff
path: root/gtk/gtkbuilder.c
diff options
context:
space:
mode:
authorJohan Dahlin <jdahlin@async.com.br>2007-06-30 06:57:47 +0000
committerJohan Dahlin <johan@src.gnome.org>2007-06-30 06:57:47 +0000
commit357e2cbfff1c0b36035ea73007c8faf7c20daf64 (patch)
tree83a8dc38f1d088058812ad329f2110604cb9f1d6 /gtk/gtkbuilder.c
parent9a779e8e2d0925a4aece07c4102af359f6e5e980 (diff)
downloadgtk+-357e2cbfff1c0b36035ea73007c8faf7c20daf64.tar.gz
Make boolean string parsing consistent, #452464
2007-06-30 Johan Dahlin <jdahlin@async.com.br> * gtk/gtkbuilder.c: (gtk_builder_value_from_string_type): * gtk/gtkbuilderparser.c: (_gtk_builder_parse_boolean), (parse_property), (parse_signal): * gtk/gtkbuilderprivate.h: * tests/buildertest.c: (test_value_from_string): Make boolean string parsing consistent, #452464 svn path=/trunk/; revision=18305
Diffstat (limited to 'gtk/gtkbuilder.c')
-rw-r--r--gtk/gtkbuilder.c31
1 files changed, 4 insertions, 27 deletions
diff --git a/gtk/gtkbuilder.c b/gtk/gtkbuilder.c
index 03f28817ea..22228acdc1 100644
--- a/gtk/gtkbuilder.c
+++ b/gtk/gtkbuilder.c
@@ -1038,33 +1038,10 @@ gtk_builder_value_from_string_type (GtkBuilder *builder,
{
gboolean b;
- switch (g_ascii_tolower (string[0]))
- {
- case 't':
- case 'y':
- b = TRUE;
- break;
- case 'f':
- case 'n':
- b = FALSE;
- break;
- default:
- {
- gchar *endptr;
- errno = 0;
- b = strtol (string, &endptr, 0);
- if (errno || endptr == string)
- {
- g_set_error (error,
- GTK_BUILDER_ERROR,
- GTK_BUILDER_ERROR_INVALID_VALUE,
- "Could not parse boolean `%s'",
- string);
- ret = FALSE;
- break;
- }
- }
- break;
+ if (!_gtk_builder_parse_boolean (string, &b, error))
+ {
+ ret = FALSE;
+ break;
}
g_value_set_boolean (value, b);
break;