summaryrefslogtreecommitdiff
path: root/net-im
diff options
context:
space:
mode:
authorJoe Marcus Clarke <marcus@FreeBSD.org>2004-05-04 22:11:53 +0000
committerJoe Marcus Clarke <marcus@FreeBSD.org>2004-05-04 22:11:53 +0000
commit0051d74cb825381d2677de3a666963328ced4f10 (patch)
tree298e8fce520552750ac9621e4be0750900229e69 /net-im
parent- Solve ffs()-clash on -CURRENT [1] (diff)
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.
Notes
Notes: svn path=/head/; revision=108408
Diffstat (limited to 'net-im')
-rw-r--r--net-im/gaim/Makefile1
-rw-r--r--net-im/gaim/files/patch-src-gtkimhtml32
2 files changed, 31 insertions, 2 deletions
diff --git a/net-im/gaim/Makefile b/net-im/gaim/Makefile
index 105a48e99ac9..a0dcea02f99b 100644
--- a/net-im/gaim/Makefile
+++ b/net-im/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-im/gaim/files/patch-src-gtkimhtml b/net-im/gaim/files/patch-src-gtkimhtml
index f5b06e9f1f43..4bf981d8a39c 100644
--- a/net-im/gaim/files/patch-src-gtkimhtml
+++ b/net-im/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;
+ }
+ }