changeset 7235:03f22e564311

[gaim-migrate @ 7810] I added some deps to the rpm, those should be there, right? Also... [ 821937 ] Fix for away message tooltip In Gaim 0.71, the tooltip text for Oscar is not properly escaped. This causes away messages such as "failed <-- this is a fact, not a prediction" to break the tooltip. Other protocols do not have this issue, since they call g_markup_escape_text() in the appropriate places. The call to gaim_markup_strip_html() is not sufficient in cases such as the example, since complete HTML tags are not present but HTML special characters are. This patch simply calls g_markup_escape_text() before adding the away message to the tooltip text. Patch is against the 0.71 source, since I don't think anoymous CVS is up-to-date. --Daniel Westermann-Clark (potpieman) committer: Tailor Script <tailor@pidgin.im>
author Mark Doliner <mark@kingant.net>
date Sun, 12 Oct 2003 03:15:38 +0000
parents cd0cedf0edd0
children 7346c92b01c7
files gaim.spec.in src/protocols/oscar/locate.c src/protocols/oscar/oscar.c
diffstat 3 files changed, 8 insertions(+), 6 deletions(-) [+]
line wrap: on
line diff
--- a/gaim.spec.in	Sat Oct 11 01:58:59 2003 +0000
+++ b/gaim.spec.in	Sun Oct 12 03:15:38 2003 +0000
@@ -11,8 +11,8 @@
 Packager:   Rob Flynn <rob@marko.net>
 BuildRoot:  %{_tmppath}/%{name}-%{version}-root
 %if "%{_vendor}" != "MandrakeSoft"
-Requires:   gtk2 >= 2.0.0, mozilla-nss
-BuildRequires: libao-devel, gtk2-devel, gtkspell-devel, libtool, audiofile-devel, pkgconfig, mozilla-nss-devel
+Requires:   gtk2 >= 2.0.0, mozilla-nss, gtkspell, audiofile, libao
+BuildRequires: libao-devel, gtk2-devel, gtkspell-devel, libtool, audiofile-devel, libao-devel, pkgconfig, mozilla-nss-devel
 %else
 Requires:   gtk+2.0 >= 2.0.0, libnss3
 BuildRequires: libao-devel, libgtk+2.0_0-devel, gtkspell-devel, libtool, audiofile-devel, pkgconfig, libnss3-devel
--- a/src/protocols/oscar/locate.c	Sat Oct 11 01:58:59 2003 +0000
+++ b/src/protocols/oscar/locate.c	Sun Oct 12 03:15:38 2003 +0000
@@ -218,7 +218,7 @@
 		free(cur->info_encoding);
 		cur->info = (char *)malloc(userinfo->info_len);
 		memcpy(cur->info, userinfo->info, userinfo->info_len);
-		cur->info_encoding = strdup(userinfo->info_encoding); /* XXX - This seems to leak occasionally */
+		cur->info_encoding = strdup(userinfo->info_encoding);
 		cur->info_len = userinfo->info_len;
 	}
 
@@ -227,7 +227,7 @@
 		free(cur->away_encoding);
 		cur->away = (char *)malloc(userinfo->away_len);
 		memcpy(cur->away, userinfo->away, userinfo->away_len);
-		cur->away_encoding = strdup(userinfo->away_encoding); /* XXX - This seems to leak occasionally */
+		cur->away_encoding = strdup(userinfo->away_encoding);
 		cur->away_len = userinfo->away_len;
 	}
 }
--- a/src/protocols/oscar/oscar.c	Sat Oct 11 01:58:59 2003 +0000
+++ b/src/protocols/oscar/oscar.c	Sun Oct 12 03:15:38 2003 +0000
@@ -4356,7 +4356,7 @@
 	if (od->icq && isdigit(name[0]))
 		aim_icq_getallinfo(od->sess, name);
 	else
-		aim_locate_getinfoshort(od->sess, name, 0x00000007);
+		aim_locate_getinfoshort(od->sess, name, 0x00000003);
 }
 
 static void oscar_get_away(GaimConnection *gc, const char *who) {
@@ -5425,8 +5425,10 @@
 				tmp1 = gaim_strreplace(away_utf8, "<BR>", "\n");
 				tmp2 = gaim_markup_strip_html(tmp1);
 				g_free(tmp1);
-				tmp3 = gaim_str_sub_away_formatters(tmp2, gaim_account_get_username(gaim_connection_get_account(gc)));
+				tmp1 = g_markup_escape_text(tmp2, strlen(tmp2));
 				g_free(tmp2);
+				tmp3 = gaim_str_sub_away_formatters(tmp1, gaim_account_get_username(gaim_connection_get_account(gc)));
+				g_free(tmp1);
 				tmp = ret;
 				ret = g_strconcat(tmp, _("<b>Away Message:</b> "), tmp3, "\n", NULL);
 				g_free(tmp);