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:
@ -77,7 +77,37 @@ _gdk_wayland_display_text_property_to_utf8_list (GdkDisplay *display,
|
|||||||
gint length,
|
gint length,
|
||||||
gchar ***list)
|
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 *
|
gchar *
|
||||||
|
|||||||
Reference in New Issue
Block a user