Commit 29eb3fba authored by Matthias Clasen's avatar Matthias Clasen

Fix gdk_x11_display_text_property_to_text_list

This was an incomplete attempt to get rid of the custom free function.
Lets just keep it for now. Bug 637849, patch by Dan Winship.

Also add a test case for this function.
parent 92f163d4
......@@ -23,6 +23,10 @@ TEST_PROGS += gdk-color
gdk_color_SOURCES = gdk-color.c
gdk_color_LDADD = $(progs_ldadd)
TEST_PROGS += encoding
encoding_SOURCES = encoding.c
encoding_LDADD = $(progs_ldadd)
CLEANFILES = \
cairosurface.png \
gdksurface.png
......
#include <gdk/gdk.h>
#ifdef GDK_WINDOWING_X11
#include "x11/gdkx.h"
#endif
static void
test_to_text_list (void)
{
GdkDisplay *display;
display = gdk_display_get_default ();
#ifdef GDK_WINDOWING_X11
if (GDK_IS_X11_DISPLAY (display))
{
GdkAtom encoding;
gint format;
const guchar *text;
gint length;
gchar **list;
gint n;
encoding = gdk_atom_intern ("UTF8_STRING", FALSE);
format = 8;
text = (const guchar*)"abcdef \304\201 \304\205\0ABCDEF \304\200 \304\204";
length = 25;
n = gdk_x11_display_text_property_to_text_list (display, encoding, format, text, length, &list);
g_assert_cmpint (n, ==, 2);
g_assert (g_str_has_prefix (list[0], "abcdef "));
g_assert (g_str_has_prefix (list[1], "ABCDEF "));
gdk_x11_free_text_list (list);
}
#endif
}
int
main (int argc, char *argv[])
{
g_test_init (&argc, &argv, NULL);
gdk_init (&argc, &argv);
g_test_add_func ("/encoding/to-text-list", test_to_text_list);
return g_test_run ();
}
......@@ -340,7 +340,7 @@ _gdk_x11_display_send_selection_notify (GdkDisplay *display,
* @format: the format of the property
* @text: The text data
* @length: The number of items to transform
* @list: location to store a terminated array of strings in
* @list: location to store an array of strings in
* the encoding of the current locale. This array should be
* freed using gdk_free_text_list().
*
......@@ -385,7 +385,7 @@ gdk_x11_display_text_property_to_text_list (GdkDisplay *display,
else
{
if (list)
*list = g_strdupv (local_list);
*list = local_list;
else
XFreeStringList (local_list);
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment