pidgin.next.minor: d5a2c4e4: Revert the URL scheme passing changes, k...

rlaager at pidgin.im rlaager at pidgin.im
Mon Dec 1 14:45:44 EST 2008


-----------------------------------------------------------------
Revision: d5a2c4e40e3f1c9b49ca4835dbe2b9b60bd74264
Ancestor: cc734dce829ffdefc3efcf3e9d9778914406a819
Author: rlaager at pidgin.im
Date: 2008-12-01T19:37:11
Branch: im.pidgin.pidgin.next.minor
URL: http://d.pidgin.im/viewmtn/revision/info/d5a2c4e40e3f1c9b49ca4835dbe2b9b60bd74264

Modified files:
        pidgin/gtkimhtml.c pidgin/gtkimhtml.h pidgin/gtkutils.c

ChangeLog: 

Revert the URL scheme passing changes, keeping the miscellaneous other stuff
that was thrown in with that commit.

-------------- next part --------------
============================================================
--- pidgin/gtkimhtml.c	ce9df3ada7661779ecffb588968bba05c21ba385
+++ pidgin/gtkimhtml.c	2240f9b65d6192a9a67927cab2d934d391171295
@@ -5749,16 +5749,13 @@ gboolean gtk_imhtml_class_register_proto
 {
 	GtkIMHtmlClass *klass;
 	GtkIMHtmlProtocol *proto;
-	char *protocol;
 
 	g_return_val_if_fail(name, FALSE);
 
 	klass = g_type_class_ref(GTK_TYPE_IMHTML);
 	g_return_val_if_fail(klass, FALSE);
 
-	protocol = g_strdup_printf("%s:", name);
-	if ((proto = imhtml_find_protocol(protocol))) {
-		g_free(protocol);
+	if ((proto = imhtml_find_protocol(name))) {
 		g_return_val_if_fail(!activate, FALSE);
 		g_free(proto->name);
 		g_free(proto);
@@ -5769,8 +5766,8 @@ gboolean gtk_imhtml_class_register_proto
 	}
 
 	proto = g_new0(GtkIMHtmlProtocol, 1);
-	proto->name = protocol;
-	proto->length = strlen(protocol);
+	proto->name = g_strdup(name);
+	proto->length = strlen(name);
 	proto->activate = activate;
 	proto->context_menu = context_menu;
 	klass->protocols = g_list_prepend(klass->protocols, proto);
============================================================
--- pidgin/gtkimhtml.h	691a4172b8a0441f807b7b0ea35ec75a16e5e3d6
+++ pidgin/gtkimhtml.h	d684251b6a734966c1304959aec53134cab55408
@@ -892,7 +892,7 @@ void gtk_imhtml_smiley_destroy(GtkIMHtml
  * Register a protocol with the GtkIMHtml widget. Registering a protocol would
  * allow certain text to be clickable.
  *
- * @param name      The name of the protocol (e.g. http)
+ * @param name      The name of the protocol (e.g. http://)
  * @param activate  The callback to trigger when the protocol text is clicked.
  *                  Removes any current protocol definition if @c NULL. The
  *                  callback should return @c TRUE if the link was activated
============================================================
--- pidgin/gtkutils.c	43546c1f1475f314af1477820c9938dd38c07d9c
+++ pidgin/gtkutils.c	d5f2c260e5746d8159b86c91aa287f5529c3ce7d
@@ -3621,12 +3621,10 @@ register_gnome_url_handlers()
 				}
 
 				start += sizeof("/desktop/gnome/url-handlers/") - 1;
-				protocol = g_strdup(start);
+				protocol = g_strdup_printf("%s:", start);
 				gnome_url_handlers = g_list_prepend(gnome_url_handlers, protocol);
 
-				purple_debug_info("url-handlers", "Registering handler for %s.\n", protocol);
-
-				if (!strcmp(protocol, "mailto"))
+				if (!strcmp(protocol, "mailto:"))
 					gtk_imhtml_class_register_protocol(protocol, url_clicked_cb, copy_email_address);
 				else
 					gtk_imhtml_class_register_protocol(protocol, url_clicked_cb, link_context_menu);
@@ -3640,22 +3638,22 @@ void pidgin_utils_init(void)
 
 void pidgin_utils_init(void)
 {
-	gtk_imhtml_class_register_protocol("open", open_dialog, dummy);
+	gtk_imhtml_class_register_protocol("open://", open_dialog, dummy);
 
 	/* If we're under GNOME, try registering the system URL handlers. */
 	if (purple_running_gnome() && register_gnome_url_handlers())
 		return;
 
-	gtk_imhtml_class_register_protocol("http",   url_clicked_cb, link_context_menu);
-	gtk_imhtml_class_register_protocol("https",  url_clicked_cb, link_context_menu);
-	gtk_imhtml_class_register_protocol("ftp",    url_clicked_cb, link_context_menu);
-	gtk_imhtml_class_register_protocol("gopher", url_clicked_cb, link_context_menu);
-	gtk_imhtml_class_register_protocol("mailto", url_clicked_cb, copy_email_address);
+	gtk_imhtml_class_register_protocol("http://", url_clicked_cb, link_context_menu);
+	gtk_imhtml_class_register_protocol("https://", url_clicked_cb, link_context_menu);
+	gtk_imhtml_class_register_protocol("ftp://", url_clicked_cb, link_context_menu);
+	gtk_imhtml_class_register_protocol("gopher://", url_clicked_cb, link_context_menu);
+	gtk_imhtml_class_register_protocol("mailto:", url_clicked_cb, copy_email_address);
 }
 
 void pidgin_utils_uninit(void)
 {
-	gtk_imhtml_class_register_protocol("open", NULL, NULL);
+	gtk_imhtml_class_register_protocol("open://", NULL, NULL);
 
 	/* If we have GNOME handlers registered, unregister them. */
 	if (gnome_url_handlers)
@@ -3671,10 +3669,10 @@ void pidgin_utils_uninit(void)
 		return;
 	}
 
-	gtk_imhtml_class_register_protocol("http",   NULL, NULL);
-	gtk_imhtml_class_register_protocol("https",  NULL, NULL);
-	gtk_imhtml_class_register_protocol("ftp",    NULL, NULL);
-	gtk_imhtml_class_register_protocol("mailto", NULL, NULL);
-	gtk_imhtml_class_register_protocol("gopher", NULL, NULL);
+	gtk_imhtml_class_register_protocol("http://", NULL, NULL);
+	gtk_imhtml_class_register_protocol("https://", NULL, NULL);
+	gtk_imhtml_class_register_protocol("ftp://", NULL, NULL);
+	gtk_imhtml_class_register_protocol("mailto:", NULL, NULL);
+	gtk_imhtml_class_register_protocol("gopher://", NULL, NULL);
 }
 


More information about the Commits mailing list