summaryrefslogtreecommitdiff
path: root/gtk/gtkbuilder.c
diff options
context:
space:
mode:
authorMatthias Clasen <mclasen@redhat.com>2014-08-21 14:20:28 -0400
committerMatthias Clasen <mclasen@redhat.com>2014-08-21 14:22:13 -0400
commit23fcc5e373e87008aaf67cdf062fb4669193c1ba (patch)
tree4276c376b6cf3bd13d6402ddcf991b3e0ab57267 /gtk/gtkbuilder.c
parentbeae42c49b7316edb2456a128a405bce3c01302e (diff)
downloadgtk+-23fcc5e373e87008aaf67cdf062fb4669193c1ba.tar.gz
GtkBuilder: Support parsing int64/uin64 values
This was missing; the code to parse these numbers was there, but the switch didn't have cases for these types. https://bugzilla.gnome.org/show_bug.cgi?id=602443
Diffstat (limited to 'gtk/gtkbuilder.c')
-rw-r--r--gtk/gtkbuilder.c15
1 files changed, 11 insertions, 4 deletions
diff --git a/gtk/gtkbuilder.c b/gtk/gtkbuilder.c
index 1be1589af5..c6f5795dc5 100644
--- a/gtk/gtkbuilder.c
+++ b/gtk/gtkbuilder.c
@@ -1869,9 +1869,11 @@ gtk_builder_value_from_string_type (GtkBuilder *builder,
}
case G_TYPE_INT:
case G_TYPE_LONG:
+ case G_TYPE_INT64:
{
- long l;
+ gint64 l;
gchar *endptr = NULL;
+
errno = 0;
l = g_ascii_strtoll (string, &endptr, 0);
if (errno || endptr == string)
@@ -1886,14 +1888,17 @@ gtk_builder_value_from_string_type (GtkBuilder *builder,
}
if (G_VALUE_HOLDS_INT (value))
g_value_set_int (value, l);
- else
+ else if (G_VALUE_HOLDS_LONG (value))
g_value_set_long (value, l);
+ else
+ g_value_set_int64 (value, l);
break;
}
case G_TYPE_UINT:
case G_TYPE_ULONG:
+ case G_TYPE_UINT64:
{
- gulong ul;
+ guint64 ul;
gchar *endptr = NULL;
errno = 0;
ul = g_ascii_strtoull (string, &endptr, 0);
@@ -1909,8 +1914,10 @@ gtk_builder_value_from_string_type (GtkBuilder *builder,
}
if (G_VALUE_HOLDS_UINT (value))
g_value_set_uint (value, ul);
- else
+ else if (G_VALUE_HOLDS_ULONG (value))
g_value_set_ulong (value, ul);
+ else
+ g_value_set_uint64 (value, ul);
break;
}
case G_TYPE_ENUM: