changeset 22428:a8e4dde401e0

merge of '6b600951723c4797bafdc840f751b75c3f0f95af' and 'd5c0cb15bed84a2a8662c85cf02f430e9d82272d'
author Mark Doliner <mark@kingant.net>
date Fri, 07 Mar 2008 18:52:19 +0000
parents 85193a3dca5e (current diff) 7a7cb6b8fdce (diff)
children a7d2683c8d19
files
diffstat 7 files changed, 52 insertions(+), 18 deletions(-) [+]
line wrap: on
line diff
--- a/ChangeLog	Thu Mar 06 17:00:51 2008 +0000
+++ b/ChangeLog	Fri Mar 07 18:52:19 2008 +0000
@@ -1,6 +1,32 @@
 Pidgin and Finch: The Pimpin' Penguin IM Clients That're Good for the Soul
 
+version 2.4.1 ():
+	http://developer.pidgin.im/query?status=closed&milestone=2.4.1
+
+	libpurple:
+	* Treat AIM Unicode messages as UTF-16 rather than UCS-2; this
+	  should have no functional effect, other than continued support
+	  on systems which have dropped UCS-2 conversions.
+	* Add support for setting buddy icons on Gadu-Gadu (Tomasz Salacinski)
+	* Fix a crash when clearing the buddy icon for an account on XMPP
+	* Fix a crash during login for some ICQ accounts
+	* Prefer more available resources on XMPP when priorities are equal
+	* Fix incorrectly marking some Yahoo! contacts as blocked
+	* Improved handling of UTF-8 group names on ICQ (beret)
+
+	Pidgin:
+	* Remove a workaround for older versions gstreamer that was causing
+	  crashes on some non-Linux systems such as HPUX
+	* Fix some cases of the conversation input entry area being 1 pixel high
+
+	Finch:
+	* Fix compiling with Glib older than 2.6
+	* Ensure existing conversations selected from the 'Send IM' dialog are
+	  given focus
+
 version 2.4.0 (02/29/2008):
+	http://developer.pidgin.im/query?status=closed&milestone=2.4.0
+
 	libpurple:
 	* Added support for offline messages for AIM accounts (thanks to
 	  Matthew Goldstein)
--- a/finch/gntsound.c	Thu Mar 06 17:00:51 2008 +0000
+++ b/finch/gntsound.c	Fri Mar 07 18:52:19 2008 +0000
@@ -358,6 +358,11 @@
 	
 #ifdef USE_GSTREAMER
 	purple_debug_info("sound", "Initializing sound output drivers.\n");
+#if (GST_VERSION_MAJOR > 0 || \
+	(GST_VERSION_MAJOR == 0 && GST_VERSION_MINOR > 10) || \
+	 (GST_VERSION_MAJOR == 0 && GST_VERSION_MINOR == 10 && GST_VERSION_MICRO >= 10))
+	gst_registry_fork_set_enabled(FALSE);
+#endif
 	if ((gst_init_failed = !gst_init_check(NULL, NULL, &error))) {
 		purple_notify_error(NULL, _("GStreamer Failure"),
 					_("GStreamer failed to initialize."),
--- a/finch/libgnt/gntentry.c	Thu Mar 06 17:00:51 2008 +0000
+++ b/finch/libgnt/gntentry.c	Fri Mar 07 18:52:19 2008 +0000
@@ -419,7 +419,7 @@
 }
 
 static gboolean
-history_prev(GntBindable *bind, GList *null)
+history_next(GntBindable *bind, GList *null)
 {
 	GntEntry *entry = GNT_ENTRY(bind);
 	if (entry->histlength && entry->history->prev)
@@ -436,7 +436,7 @@
 }
 
 static gboolean
-history_next(GntBindable *bind, GList *null)
+history_prev(GntBindable *bind, GList *null)
 {
 	GntEntry *entry = GNT_ENTRY(bind);
 	if (entry->histlength && entry->history->next)
@@ -904,10 +904,12 @@
 				GNT_KEY_DOWN, NULL);
 	gnt_bindable_class_register_action(bindable, "suggest-prev", suggest_prev,
 				GNT_KEY_UP, NULL);
-	gnt_bindable_class_register_action(bindable, "history-prev", history_prev,
+	gnt_bindable_class_register_action(bindable, "history-next", history_next,
 				GNT_KEY_CTRL_DOWN, NULL);
-	gnt_bindable_class_register_action(bindable, "history-next", history_next,
+	gnt_bindable_class_register_action(bindable, "history-prev", history_prev,
 				GNT_KEY_CTRL_UP, NULL);
+	gnt_bindable_register_binding(bindable, "history-prev", GNT_KEY_CTRL_P, NULL);
+	gnt_bindable_register_binding(bindable, "history-next", GNT_KEY_CTRL_N, NULL);
 	gnt_bindable_class_register_action(bindable, "clipboard-paste", clipboard_paste,
 				GNT_KEY_CTRL_V, NULL);
 
--- a/libpurple/protocols/oscar/family_locate.c	Thu Mar 06 17:00:51 2008 +0000
+++ b/libpurple/protocols/oscar/family_locate.c	Fri Mar 07 18:52:19 2008 +0000
@@ -1031,7 +1031,7 @@
  * restricted to a few choices.  I am currently aware of:
  *
  * us-ascii		Just that
- * unicode-2-0		UCS2-BE
+ * unicode-2-0		UTF-16BE
  *
  * profile_len and awaymsg_len MUST be set similarly, and they MUST
  * be the length of their respective strings in bytes.
--- a/libpurple/protocols/oscar/oscar.c	Thu Mar 06 17:00:51 2008 +0000
+++ b/libpurple/protocols/oscar/oscar.c	Fri Mar 07 18:52:19 2008 +0000
@@ -245,7 +245,7 @@
 	}
 
 	/*
-	 * Must we send this message as UNICODE (in the UCS-2BE encoding)?
+	 * Must we send this message as UNICODE (in the UTF-16BE encoding)?
 	 */
 	while (utf8[i])
 	{
@@ -314,14 +314,14 @@
 	} else if (!g_ascii_strcasecmp(encoding, "unicode-2-0")) {
 		/* Some official ICQ clients are apparently total crack,
 		 * and have been known to save a UTF-8 string converted
-		 * from the locale character set to UCS-2 (not from UTF-8
-		 * to UCS-2!) in the away message.  This hack should find
+		 * from the locale character set to UTF-16 (not from UTF-8
+		 * to UTF-16!) in the away message.  This hack should find
 		 * and do something (un)reasonable with that, and not
 		 * mess up too much else. */
 		const gchar *charset = purple_account_get_string(account, "encoding", NULL);
 		if (charset) {
 			gsize len;
-			utf8 = g_convert(text, textlen, charset, "UCS-2BE", &len, NULL, NULL);
+			utf8 = g_convert(text, textlen, charset, "UTF-16BE", &len, NULL, NULL);
 			if (!utf8 || len != textlen || !g_utf8_validate(utf8, -1, NULL)) {
 				g_free(utf8);
 				utf8 = NULL;
@@ -330,7 +330,7 @@
 			}
 		}
 		if (!utf8)
-			utf8 = g_convert(text, textlen, "UTF-8", "UCS-2BE", NULL, NULL, NULL);
+			utf8 = g_convert(text, textlen, "UTF-8", "UTF-16BE", NULL, NULL, NULL);
 	} else if (g_ascii_strcasecmp(encoding, "utf-8")) {
 		purple_debug_warning("oscar", "Unrecognized character encoding \"%s\", "
 						   "attempting to convert to UTF-8 anyway\n", encoding);
@@ -423,7 +423,7 @@
 		return NULL;
 
 	if (charset == AIM_CHARSET_UNICODE) {
-		charsetstr1 = "UCS-2BE";
+		charsetstr1 = "UTF-16BE";
 		charsetstr2 = "UTF-8";
 	} else if (charset == AIM_CHARSET_CUSTOM) {
 		if ((sourcesn != NULL) && aim_snvalid_icq(sourcesn))
@@ -495,7 +495,7 @@
 	 * If we're sending to an ICQ user, and they are in our
 	 * buddy list, and they are advertising the Unicode
 	 * capability, and they are online, then attempt to send
-	 * as UCS-2BE.
+	 * as UTF-16BE.
 	 */
 	if ((destsn != NULL) && aim_snvalid_icq(destsn))
 		userinfo = aim_locate_finduserinfo(od, destsn);
@@ -506,7 +506,7 @@
 		b = purple_find_buddy(account, destsn);
 		if ((b != NULL) && (PURPLE_BUDDY_IS_ONLINE(b)))
 		{
-			*msg = g_convert(from, -1, "UCS-2BE", "UTF-8", NULL, &msglen, NULL);
+			*msg = g_convert(from, -1, "UTF-16BE", "UTF-8", NULL, &msglen, NULL);
 			if (*msg != NULL)
 			{
 				*charset = AIM_CHARSET_UNICODE;
@@ -538,9 +538,9 @@
 	}
 
 	/*
-	 * Nothing else worked, so send as UCS-2BE.
+	 * Nothing else worked, so send as UTF-16BE.
 	 */
-	*msg = g_convert(from, -1, "UCS-2BE", "UTF-8", NULL, &msglen, &err);
+	*msg = g_convert(from, -1, "UTF-16BE", "UTF-8", NULL, &msglen, &err);
 	if (*msg != NULL) {
 		*charset = AIM_CHARSET_UNICODE;
 		*charsubset = 0x0000;
@@ -4436,7 +4436,7 @@
 
 	charset = oscar_charset_check(str);
 	if (charset == AIM_CHARSET_UNICODE) {
-		encoded = g_convert(str, -1, "UCS-2BE", "UTF-8", NULL, ret_len, NULL);
+		encoded = g_convert(str, -1, "UTF-16BE", "UTF-8", NULL, ret_len, NULL);
 		*encoding = "unicode-2-0";
 	} else if (charset == AIM_CHARSET_CUSTOM) {
 		encoded = g_convert(str, -1, "ISO-8859-1", "UTF-8", NULL, ret_len, NULL);
--- a/libpurple/protocols/oscar/oscar.h	Thu Mar 06 17:00:51 2008 +0000
+++ b/libpurple/protocols/oscar/oscar.h	Fri Mar 07 18:52:19 2008 +0000
@@ -754,7 +754,7 @@
 #define AIM_IMFLAGS_TYPINGNOT			0x1000 /* typing notification */
 
 #define AIM_CHARSET_ASCII		0x0000
-#define AIM_CHARSET_UNICODE	0x0002 /* UCS-2BE */
+#define AIM_CHARSET_UNICODE	0x0002 /* UTF-16BE */
 #define AIM_CHARSET_CUSTOM	0x0003
 
 /*
--- a/pidgin/gtkconv.c	Thu Mar 06 17:00:51 2008 +0000
+++ b/pidgin/gtkconv.c	Fri Mar 07 18:52:19 2008 +0000
@@ -4738,6 +4738,8 @@
 
 	g_signal_connect_swapped(G_OBJECT(gtkconv->entry_buffer), "changed",
 				 G_CALLBACK(resize_imhtml_cb), gtkconv);
+	g_signal_connect_swapped(G_OBJECT(gtkconv->entry), "realize",
+				 G_CALLBACK(resize_imhtml_cb), gtkconv);
 
 	default_formatize(gtkconv);
 	g_signal_connect_after(G_OBJECT(gtkconv->entry), "format_function_clear",
@@ -5014,7 +5016,6 @@
 		gtk_widget_show(gtkconv->toolbar);
 	else
 		gtk_widget_hide(gtkconv->toolbar);
-	g_idle_add((GSourceFunc)resize_imhtml_cb, gtkconv);
 
 	if (purple_prefs_get_bool(PIDGIN_PREFS_ROOT "/conversations/im/show_buddy_icons"))
 		gtk_widget_show(gtkconv->infopane_hbox);