forked from AuroraMiddleware/gtk
wayland: implement text_property_to_utf8_list()
Of some sort, this is enough to get text transfers on wayland, anything but utf8 as plain/text should be pretty rare. https://bugzilla.gnome.org/show_bug.cgi?id=697855
This commit is contained in:
parent
bd410421d8
commit
32bf03c053
@ -77,7 +77,37 @@ _gdk_wayland_display_text_property_to_utf8_list (GdkDisplay *display,
|
||||
gint length,
|
||||
gchar ***list)
|
||||
{
|
||||
return 0;
|
||||
GPtrArray *array;
|
||||
const gchar *ptr;
|
||||
gsize chunk_len;
|
||||
gchar *copy;
|
||||
guint nitems;
|
||||
|
||||
ptr = (const gchar *) text;
|
||||
array = g_ptr_array_new ();
|
||||
|
||||
while (ptr < (const gchar *) &text[length])
|
||||
{
|
||||
chunk_len = strlen (ptr);
|
||||
|
||||
if (g_utf8_validate (ptr, chunk_len, NULL))
|
||||
{
|
||||
copy = g_strndup (ptr, chunk_len);
|
||||
g_ptr_array_add (array, copy);
|
||||
}
|
||||
|
||||
ptr = &ptr[chunk_len + 1];
|
||||
}
|
||||
|
||||
nitems = array->len;
|
||||
g_ptr_array_add (array, NULL);
|
||||
|
||||
if (list)
|
||||
*list = (gchar **) g_ptr_array_free (array, FALSE);
|
||||
else
|
||||
g_ptr_array_free (array, TRUE);
|
||||
|
||||
return nitems;
|
||||
}
|
||||
|
||||
gchar *
|
||||
|
Loading…
Reference in New Issue
Block a user