From 0051d74cb825381d2677de3a666963328ced4f10 Mon Sep 17 00:00:00 2001 From: Joe Marcus Clarke Date: Tue, 4 May 2004 22:11:53 +0000 Subject: Fix the rich text copy/paste problem. Basically, text from any rich text application (e.g. gaim itself, Mozilla, Galeon, etc.) would fail to paste or paste incorrectly into Gaim. This has been fixed, and has been committed to Gaim CVS. --- net/gaim/Makefile | 1 + net/gaim/files/patch-src-gtkimhtml | 32 ++++++++++++++++++++++++++++++-- 2 files changed, 31 insertions(+), 2 deletions(-) (limited to 'net/gaim') diff --git a/net/gaim/Makefile b/net/gaim/Makefile index 105a48e99ac9..a0dcea02f99b 100644 --- a/net/gaim/Makefile +++ b/net/gaim/Makefile @@ -6,6 +6,7 @@ PORTNAME= gaim PORTVERSION= 0.77 +PORTREVISION= 1 CATEGORIES?= net MASTER_SITES= ${MASTER_SITE_SOURCEFORGE} MASTER_SITE_SUBDIR= ${PORTNAME} diff --git a/net/gaim/files/patch-src-gtkimhtml b/net/gaim/files/patch-src-gtkimhtml index f5b06e9f1f43..4bf981d8a39c 100644 --- a/net/gaim/files/patch-src-gtkimhtml +++ b/net/gaim/files/patch-src-gtkimhtml @@ -1,5 +1,5 @@ ---- src/gtkimhtml.c.orig Fri Apr 23 04:24:05 2004 -+++ src/gtkimhtml.c Sat Apr 24 05:37:14 2004 +--- src/gtkimhtml.c.orig Tue May 4 18:09:10 2004 ++++ src/gtkimhtml.c Tue May 4 18:09:12 2004 @@ -542,10 +542,11 @@ GtkTextIter start, end; GtkTextMark *sel = gtk_text_buffer_get_selection_bound(imhtml->text_buffer); @@ -14,3 +14,31 @@ if (info == TARGET_HTML) { int len; +@@ -684,7 +685,6 @@ + static void paste_received_cb (GtkClipboard *clipboard, GtkSelectionData *selection_data, gpointer data) + { + char *text; +- guint16 c; + GtkIMHtml *imhtml = data; + GtkTextIter iter; + GtkIMHtmlOptions flags = GTK_IMHTML_NO_NEWLINE; +@@ -756,14 +756,14 @@ + memcpy(text, selection_data->data, selection_data->length); + } + +- memcpy (&c, text, 2); +- if (c == 0xfeff) { +- /* This is UCS2 */ +- char *utf8 = g_convert(text+2, selection_data->length - 2, "UTF-8", "UCS-2", NULL, NULL, NULL); ++ if (selection_data->length >= 2 && ++ (*(guint16 *)text == 0xfeff || *(guint16 *)text == 0xfffe)) { ++ /* This is UCS-2 */ ++ char *utf8 = g_convert(text, selection_data->length, "UTF-8", "UCS-2", NULL, NULL, NULL); + g_free(text); + text = utf8; + if (!text) { +- gaim_debug_warning("gtkimhtml", "g_convert failed in paste_received_cb\n"); ++ gaim_debug_warning("gtkimhtml", "g_convert from UCS-2 failed in paste_received_cb\n"); + return; + } + } -- cgit v1.2.3