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.
This commit is contained in:
@ -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
|
||||
|
||||
46
gdk/tests/encoding.c
Normal file
46
gdk/tests/encoding.c
Normal file
@ -0,0 +1,46 @@
|
||||
#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 ();
|
||||
}
|
||||
Reference in New Issue
Block a user