diff -r a3348556c57d -r 67bcacd6ece9 pidgin/gtkimhtml.c --- a/pidgin/gtkimhtml.c Sun May 25 18:05:19 2008 +0000 +++ b/pidgin/gtkimhtml.c Sun May 25 23:46:19 2008 +0000 @@ -1001,19 +1001,14 @@ char *selection; #ifndef _WIN32 gsize len; - GString *str = g_string_new(NULL); if (primary) { text = gtk_imhtml_get_markup_range(imhtml, &start, &end); } else text = html_clipboard; /* Mozilla asks that we start our text/html with the Unicode byte order mark */ - str = g_string_append_unichar(str, 0xfeff); - str = g_string_append(str, text); - str = g_string_append_unichar(str, 0x0000); - selection = g_convert(str->str, str->len, "UTF-16", "UTF-8", NULL, &len, NULL); + selection = g_convert(text, -1, "UTF-16", "UTF-8", NULL, &len, NULL); gtk_selection_data_set(selection_data, gdk_atom_intern("text/html", FALSE), 16, (const guchar *)selection, len); - g_string_free(str, TRUE); #else selection = clipboard_html_to_win32(html_clipboard); gtk_selection_data_set(selection_data, gdk_atom_intern("HTML Format", FALSE), 8, (const guchar *)selection, strlen(selection));