summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMaks Naumov <maksqwe1@ukr.net>2015-01-11 11:27:37 -0800
committerMatthias Clasen <mclasen@redhat.com>2015-01-11 15:46:06 -0500
commit87d36885ac713badc5187f1d26044dbba9e13309 (patch)
treeaf468fc95dcd1cf5b67773736afc74a23c225c1c
parent07cf489d2df1fd8e71bfbf8a027876490e6858c6 (diff)
downloadgtk+-87d36885ac713badc5187f1d26044dbba9e13309.tar.gz
Properly check result of g_utf8_get_char_validated()
g_utf8_get_char_validated() may return -1 or -2 return type is gunichar(guint32) Therefore such checks like 'gunichar < 0' or 'gunichar > 0' are always 'false' or 'true'(except when gunichar == 0). Signed-off-by: Maks Naumov <maksqwe1@ukr.net> https://bugzilla.gnome.org/show_bug.cgi?id=742774
-rw-r--r--gtk/gtkbuilder.c2
-rw-r--r--modules/input/gtkimcontextthai.c2
2 files changed, 2 insertions, 2 deletions
diff --git a/gtk/gtkbuilder.c b/gtk/gtkbuilder.c
index 7b7c166f46..b0775d2907 100644
--- a/gtk/gtkbuilder.c
+++ b/gtk/gtkbuilder.c
@@ -1784,7 +1784,7 @@ gtk_builder_value_from_string (GtkBuilder *builder,
gunichar c;
g_value_init (value, G_TYPE_UINT);
c = g_utf8_get_char_validated (string, strlen (string));
- if (c > 0)
+ if (c != 0 && c != (gunichar)-1 && c != (gunichar)-2)
g_value_set_uint (value, c);
return TRUE;
}
diff --git a/modules/input/gtkimcontextthai.c b/modules/input/gtkimcontextthai.c
index 254dfc78fc..73510c0360 100644
--- a/modules/input/gtkimcontextthai.c
+++ b/modules/input/gtkimcontextthai.c
@@ -195,7 +195,7 @@ get_previous_char (GtkIMContextThai *context_thai, gint offset)
if (offset == 0)
{
prev_char = g_utf8_get_char_validated (q, p - q);
- if (prev_char < 0)
+ if (prev_char == (gunichar)-1 || prev_char == (gunichar)-2)
prev_char = 0;
}
g_free (surrounding);