changeset 28755:d5ff2cd6064a

merge of '0ff7fb50305f33b84a373ff00a085c25175515c1' and 'af00ae634db8d99b296a90e1e0777bd23bd4df6a'
author Paul Aurich <paul@darkrain42.org>
date Thu, 15 Oct 2009 16:13:57 +0000
parents ef513141e960 (current diff) 29e96fb6cff3 (diff)
children 08ffa726aea2 3161c687d7bc e37f85160784 0db570ed5570
files
diffstat 4 files changed, 47 insertions(+), 5 deletions(-) [+]
line wrap: on
line diff
--- a/COPYRIGHT	Thu Oct 15 16:13:00 2009 +0000
+++ b/COPYRIGHT	Thu Oct 15 16:13:57 2009 +0000
@@ -406,11 +406,10 @@
 Carsten Schaar
 Toby Schaffer
 Jonathan Schleifer <js-pidgin@webkeks.org>
-Matteo Settenvini
-Colin Seymour
 Luke Schierer
 Ralph Schmieder
 David Schmitt
+Heiko Schmitt
 Mark Schneider
 Evan Schoenberg
 Gabriel Schulhof
@@ -420,6 +419,8 @@
 Peter Seebach
 Don Seiler
 Leonardo Serra
+Matteo Settenvini
+Colin Seymour
 Jim Seymour
 Javeed Shaikh
 Joe Shaw
--- a/ChangeLog	Thu Oct 15 16:13:00 2009 +0000
+++ b/ChangeLog	Thu Oct 15 16:13:57 2009 +0000
@@ -32,7 +32,7 @@
 
 	Pidgin:
 	* The userlist in a multiuser chat can be styled via gtkrc by using the
-	  widget name "pidgin_conv_userlist".
+	  widget name "pidgin_conv_userlist". (Heiko Schmitt)
 
 version 2.6.2 (09/05/2009):
 	libpurple:
--- a/libpurple/protocols/yahoo/libymsg.c	Thu Oct 15 16:13:00 2009 +0000
+++ b/libpurple/protocols/yahoo/libymsg.c	Thu Oct 15 16:13:57 2009 +0000
@@ -1140,10 +1140,12 @@
 			}
 		}
 
+		if(im->fed != YAHOO_FEDERATION_NONE)
+			g_free(fed_from);
+
 		g_free(im);
 	}
-	if (fed_from != im->from)
-		g_free(fed_from);
+
 	g_slist_free(list);
 }
 
--- a/pidgin/gtkutils.c	Thu Oct 15 16:13:00 2009 +0000
+++ b/pidgin/gtkutils.c	Thu Oct 15 16:13:57 2009 +0000
@@ -3901,6 +3901,40 @@
 	return (gnome_url_handlers != NULL);
 }
 
+#ifdef _WIN32
+static void
+winpidgin_register_win32_url_handlers(void)
+{
+	int idx = 0;
+	LONG ret = ERROR_SUCCESS;
+
+	do {
+		DWORD nameSize = 256;
+		char protocol[256];
+		/* I don't think we need to worry about non-ASCII protocol names */
+		ret = RegEnumKeyExA(HKEY_CLASSES_ROOT, idx++, protocol, &nameSize,
+							NULL, NULL, NULL, NULL);
+		if (ret == ERROR_SUCCESS) {
+			HKEY reg_key = NULL;
+			ret = RegOpenKeyExA(HKEY_CLASSES_ROOT, protocol, 0, KEY_READ, &reg_key);
+			if (ret == ERROR_SUCCESS) {
+				ret = RegQueryValueExA(reg_key, "URL Protocol", NULL, NULL, NULL, NULL);
+				if (ret == ERROR_SUCCESS) {
+					/* We still pass everything to the "http" "open" handler for security reasons */
+					gtk_imhtml_class_register_protocol(protocol, url_clicked_cb, link_context_menu);
+				}
+				RegCloseKey(reg_key);
+			}
+			ret = ERROR_SUCCESS;
+		}
+	} while (ret == ERROR_SUCCESS);
+
+	if (ret != ERROR_NO_MORE_ITEMS)
+		purple_debug_error("winpidgin", "Error iterating HKEY_CLASSES_ROOT subkeys: %ld\n",
+						   ret);
+}
+#endif
+
 void pidgin_utils_init(void)
 {
 	gtk_imhtml_class_register_protocol("http://", url_clicked_cb, link_context_menu);
@@ -3918,6 +3952,11 @@
 	/* If we're under GNOME, try registering the system URL handlers. */
 	if (purple_running_gnome())
 		register_gnome_url_handlers();
+
+#ifdef _WIN32
+	winpidgin_register_win32_url_handlers();
+#endif
+
 }
 
 void pidgin_utils_uninit(void)