Ensure that the prefix is valid UTF-8. (#419568, Nickolay V. Shmyrev)
2007-03-18 Matthias Clasen <mclasen@redhat.com> * gtk/gtkentrycompletion.c (gtk_entry_completion_compute_prefix): Ensure that the prefix is valid UTF-8. (#419568, Nickolay V. Shmyrev) svn path=/trunk/; revision=17543
This commit is contained in:
committed by
Matthias Clasen
parent
f326c1e9ec
commit
a5978a15ec
@ -1,3 +1,8 @@
|
|||||||
|
2007-03-18 Matthias Clasen <mclasen@redhat.com>
|
||||||
|
|
||||||
|
* gtk/gtkentrycompletion.c (gtk_entry_completion_compute_prefix):
|
||||||
|
Ensure that the prefix is valid UTF-8. (#419568, Nickolay V. Shmyrev)
|
||||||
|
|
||||||
2007-03-18 Matthias Clasen <mclasen@redhat.com>
|
2007-03-18 Matthias Clasen <mclasen@redhat.com>
|
||||||
|
|
||||||
* modules/input/gtkimcontextmultipress.[hc]:
|
* modules/input/gtkimcontextmultipress.[hc]:
|
||||||
|
|||||||
@ -1500,7 +1500,7 @@ gtk_entry_completion_compute_prefix (GtkEntryCompletion *completion)
|
|||||||
else
|
else
|
||||||
{
|
{
|
||||||
gchar *p = prefix;
|
gchar *p = prefix;
|
||||||
const gchar *q = text;
|
gchar *q = text;
|
||||||
|
|
||||||
while (*p && *p == *q)
|
while (*p && *p == *q)
|
||||||
{
|
{
|
||||||
@ -1509,6 +1509,19 @@ gtk_entry_completion_compute_prefix (GtkEntryCompletion *completion)
|
|||||||
}
|
}
|
||||||
|
|
||||||
*p = '\0';
|
*p = '\0';
|
||||||
|
|
||||||
|
if (p > prefix)
|
||||||
|
{
|
||||||
|
/* strip a partial multibyte character */
|
||||||
|
q = g_utf8_find_prev_char (prefix, p);
|
||||||
|
switch (g_utf8_get_char_validated (q, p - q))
|
||||||
|
{
|
||||||
|
case (gunichar)-2:
|
||||||
|
case (gunichar)-1:
|
||||||
|
*q = 0;
|
||||||
|
default: ;
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user