pidgin.next.minor: 9f81e591: Remove trailing whitespace

markdoliner at pidgin.im markdoliner at pidgin.im
Mon Jan 26 01:45:32 EST 2009


-----------------------------------------------------------------
Revision: 9f81e5912c4245df68c957dbc1a9d19c0fb17207
Ancestor: 4f069b642afcab63399b02251511521cc272bd66
Author: markdoliner at pidgin.im
Date: 2009-01-26T06:44:00
Branch: im.pidgin.pidgin.next.minor
URL: http://d.pidgin.im/viewmtn/revision/info/9f81e5912c4245df68c957dbc1a9d19c0fb17207

Modified files:
        libpurple/account.c libpurple/account.h libpurple/blist.c
        libpurple/blist.h libpurple/buddyicon.c
        libpurple/certificate.c libpurple/certificate.h
        libpurple/cipher.c libpurple/cipher.h libpurple/circbuffer.c
        libpurple/connection.c libpurple/conversation.h
        libpurple/core.h libpurple/dbus-bindings.h
        libpurple/dbus-server.h libpurple/desktopitem.c
        libpurple/desktopitem.h libpurple/eventloop.h
        libpurple/idle.c libpurple/internal.h libpurple/nat-pmp.c
        libpurple/notify.c libpurple/ntlm.h libpurple/plugin.h
        libpurple/prefs.h libpurple/privacy.h
        libpurple/protocols/oscar/family_locate.c
        libpurple/protocols/oscar/oscar.c libpurple/proxy.c
        libpurple/prpl.c libpurple/prpl.h
        libpurple/purple-send-async libpurple/server.c
        libpurple/server.h libpurple/signals.c libpurple/signals.h
        libpurple/smiley.c libpurple/sslconn.c libpurple/sslconn.h
        libpurple/upnp.c libpurple/util.c libpurple/xmlnode.c
        libpurple/xmlnode.h pidgin/eggtrayicon.c
        pidgin/eggtrayicon.h pidgin/getopt.c pidgin/getopt1.c
        pidgin/gtkaccount.c pidgin/gtkblist.c
        pidgin/gtkcellrendererexpander.c
        pidgin/gtkcellrendererexpander.h
        pidgin/gtkcellrendererprogress.c
        pidgin/gtkcellrendererprogress.h pidgin/gtkcellview.c
        pidgin/gtkconv.c pidgin/gtkdebug.c pidgin/gtkdialogs.c
        pidgin/gtkdnd-hints.c pidgin/gtkdocklet-x11.c
        pidgin/gtkdocklet.h pidgin/gtkexpander.c pidgin/gtkimhtml.c
        pidgin/gtkimhtmltoolbar.c pidgin/gtklog.h
        pidgin/gtkpluginpref.c pidgin/gtkpounce.h pidgin/gtkprefs.c
        pidgin/gtkprefs.h pidgin/gtksavedstatuses.c
        pidgin/gtkscrollbook.h pidgin/gtksession.c pidgin/gtksound.c
        pidgin/gtksourceiter.c pidgin/gtksourceiter.h
        pidgin/gtksourceundomanager.c pidgin/gtksourceundomanager.h
        pidgin/gtkstatusbox.c pidgin/gtkthemes.c pidgin/gtkutils.c
        pidgin/gtkutils.h pidgin/gtkwhiteboard.c
        pidgin/pidgincombobox.c pidgin/pidginstock.c
        pidgin/pidginstock.h

ChangeLog: 

Remove trailing whitespace

-------------- next part --------------
============================================================
--- libpurple/account.c	061ca06b763e8c8bf72364f794232685bd2a636b
+++ libpurple/account.c	7f67a5a8076d88496dd0f19fcc58aa185b8425c3
@@ -2236,9 +2236,9 @@ purple_account_add_buddy(PurpleAccount *
 	PurplePluginProtocolInfo *prpl_info = NULL;
 	PurpleConnection *gc = purple_account_get_connection(account);
 	PurplePlugin *prpl = NULL;
-	
+
 	if (gc != NULL)
-	        prpl = purple_connection_get_prpl(gc);      
+	        prpl = purple_connection_get_prpl(gc);
 
 	if (prpl != NULL)
 		prpl_info = PURPLE_PLUGIN_PROTOCOL_INFO(prpl);
@@ -2253,13 +2253,13 @@ purple_account_add_buddies(PurpleAccount
 	PurplePluginProtocolInfo *prpl_info = NULL;
 	PurpleConnection *gc = purple_account_get_connection(account);
 	PurplePlugin *prpl = NULL;
-	
+
 	if (gc != NULL)
-	        prpl = purple_connection_get_prpl(gc);      
+	        prpl = purple_connection_get_prpl(gc);
 
 	if (prpl != NULL)
 		prpl_info = PURPLE_PLUGIN_PROTOCOL_INFO(prpl);
-		
+
 	if (prpl_info) {
 		GList *cur, *groups = NULL;
 
@@ -2292,13 +2292,13 @@ purple_account_remove_buddy(PurpleAccoun
 	PurplePluginProtocolInfo *prpl_info = NULL;
 	PurpleConnection *gc = purple_account_get_connection(account);
 	PurplePlugin *prpl = NULL;
-	
+
 	if (gc != NULL)
-	        prpl = purple_connection_get_prpl(gc);      
+	        prpl = purple_connection_get_prpl(gc);
 
 	if (prpl != NULL)
 		prpl_info = PURPLE_PLUGIN_PROTOCOL_INFO(prpl);
-		
+
 	if (prpl_info && prpl_info->remove_buddy)
 		prpl_info->remove_buddy(gc, buddy, group);
 }
@@ -2309,13 +2309,13 @@ purple_account_remove_buddies(PurpleAcco
 	PurplePluginProtocolInfo *prpl_info = NULL;
 	PurpleConnection *gc = purple_account_get_connection(account);
 	PurplePlugin *prpl = NULL;
-	
+
 	if (gc != NULL)
-	        prpl = purple_connection_get_prpl(gc);      
+	        prpl = purple_connection_get_prpl(gc);
 
 	if (prpl != NULL)
 		prpl_info = PURPLE_PLUGIN_PROTOCOL_INFO(prpl);
-		
+
 	if (prpl_info) {
 		if (prpl_info->remove_buddies)
 			prpl_info->remove_buddies(gc, buddies, groups);
@@ -2337,9 +2337,9 @@ purple_account_remove_group(PurpleAccoun
 	PurplePluginProtocolInfo *prpl_info = NULL;
 	PurpleConnection *gc = purple_account_get_connection(account);
 	PurplePlugin *prpl = NULL;
-	
+
 	if (gc != NULL)
-	        prpl = purple_connection_get_prpl(gc);      
+	        prpl = purple_connection_get_prpl(gc);
 
 	if (prpl != NULL)
 		prpl_info = PURPLE_PLUGIN_PROTOCOL_INFO(prpl);
@@ -2355,11 +2355,11 @@ purple_account_change_password(PurpleAcc
 	PurplePluginProtocolInfo *prpl_info = NULL;
 	PurpleConnection *gc = purple_account_get_connection(account);
 	PurplePlugin *prpl = NULL;
-	
+
 	purple_account_set_password(account, new_pw);
-	
+
 	if (gc != NULL)
-	        prpl = purple_connection_get_prpl(gc);      
+	        prpl = purple_connection_get_prpl(gc);
 
 	if (prpl != NULL)
 		prpl_info = PURPLE_PLUGIN_PROTOCOL_INFO(prpl);
@@ -2373,16 +2373,16 @@ gboolean purple_account_supports_offline
 	PurpleConnection *gc;
 	PurplePluginProtocolInfo *prpl_info = NULL;
 	PurplePlugin *prpl = NULL;
-	
+
 	g_return_val_if_fail(account, FALSE);
 	g_return_val_if_fail(buddy, FALSE);
 
 	gc = purple_account_get_connection(account);
 	if (gc == NULL)
 		return FALSE;
-	
-	prpl = purple_connection_get_prpl(gc);      
 
+	prpl = purple_connection_get_prpl(gc);
+
 	if (prpl != NULL)
 		prpl_info = PURPLE_PLUGIN_PROTOCOL_INFO(prpl);
 
============================================================
--- libpurple/account.h	c58af3eec1c7ad35377ffe5bd10428ac67e30af7
+++ libpurple/account.h	23151d9d1b78443469601ebbf5cac9e0ad3f7fbd
@@ -253,7 +253,7 @@ void purple_account_request_add(PurpleAc
  * Notifies the user that a remote user has wants to add the local user
  * to his or her buddy list and requires authorization to do so.
  *
- * This will present a dialog informing the user of this and ask if the 
+ * This will present a dialog informing the user of this and ask if the
  * user authorizes or denies the remote user from adding him.
  *
  * @param account      The account that was added
============================================================
--- libpurple/blist.c	8e8c73d48c91f2d4ac72984be9a282f5f737c814
+++ libpurple/blist.c	2dea7fe7cd067117a1f1556ee7e7c4c355a96a2e
@@ -1137,7 +1137,7 @@ void purple_blist_rename_group(PurpleGro
 			GList *l = NULL, *buddies = NULL;
 
 			gc = purple_account_get_connection(account);
-			
+
 			if(gc)
 				prpl = purple_connection_get_prpl(gc);
 
============================================================
--- libpurple/blist.h	c289823582d1acdf4c3cce1fd2534488ccbc9321
+++ libpurple/blist.h	ebf13c7976433245d267eae0de466c38d0285b0c
@@ -761,7 +761,7 @@ const char *purple_buddy_get_contact_ali
  * Returns the correct alias for this user, ignoring server aliases.  Used
  * when a user-recognizable name is required.  In order: buddy's alias; buddy's
  * contact alias; buddy's user name.
- * 
+ *
  * @param buddy  The buddy whose alias will be returned.
  * @return       The appropriate name or alias.
  * @deprecated   Try purple_buddy_get_alias(), if server aliases are okay.
============================================================
--- libpurple/buddyicon.c	ceeb5921a7322b8fde9c1d3ac8d2fc83806d4d93
+++ libpurple/buddyicon.c	027c85d8ef0bd332f0fe4b8c44afa45c7aebeb41
@@ -153,7 +153,7 @@ purple_buddy_icon_data_cache(PurpleStore
 {
 	const char *dirname;
 	char *path;
-	
+
 	g_return_if_fail(img != NULL);
 
 	if (!purple_buddy_icons_is_caching())
@@ -175,7 +175,7 @@ purple_buddy_icon_data_cache(PurpleStore
 	}
 
 	purple_util_write_data_to_file_absolute(path, purple_imgstore_get_data(img),
-											purple_imgstore_get_size(img));	
+											purple_imgstore_get_size(img));
 	g_free(path);
 }
 
@@ -453,7 +453,7 @@ purple_buddy_icon_update(PurpleBuddyIcon
 
 	if (conv != NULL)
 		purple_conv_im_set_icon(PURPLE_CONV_IM(conv), icon_to_set);
-	
+
 	/* icon's refcount was incremented above */
 	if (icon) purple_buddy_icon_unref(icon);
 }
@@ -757,7 +757,7 @@ purple_buddy_icons_set_account_icon(Purp
 		g_hash_table_insert(pointer_icon_cache, account, img);
 	else
 		g_hash_table_remove(pointer_icon_cache, account);
-	
+
 	if (purple_account_is_connected(account))
 	{
 		PurpleConnection *gc;
============================================================
--- libpurple/certificate.c	a79459c94d3a2744be5aa0aa6da71ac34d0902f3
+++ libpurple/certificate.c	95f8b89d3f2443a1ca459df02b98a00c5125f070
@@ -51,7 +51,7 @@ purple_certificate_verify (PurpleCertifi
 {
 	PurpleCertificateVerificationRequest *vrq;
 	PurpleCertificateScheme *scheme;
-	
+
 	g_return_if_fail(subject_name != NULL);
 	/* If you don't have a cert to check, why are you requesting that it
 	   be verified? */
@@ -97,10 +97,10 @@ purple_certificate_verify_complete(Purpl
 				  "Failed to verify certificate for %s\n",
 				  vrq->subject_name);
 	}
-		
-		
-		
-	
+
+
+
+
 	/* Pass the results on to the request's callback */
 	(vrq->cb)(st, vrq->cb_data);
 
@@ -154,7 +154,7 @@ purple_certificate_destroy (PurpleCertif
 purple_certificate_destroy (PurpleCertificate *crt)
 {
 	PurpleCertificateScheme *scheme;
-	
+
 	if (NULL == crt) return;
 
 	scheme = crt->scheme;
@@ -206,7 +206,7 @@ purple_certificate_check_signature_chain
 			  "Checking signature chain for uid=%s\n",
 			  uid);
 	g_free(uid);
-	
+
 	/* If this is a single-certificate chain, say that it is valid */
 	if (chain->next == NULL) {
 		purple_debug_info("certificate",
@@ -218,9 +218,9 @@ purple_certificate_check_signature_chain
 	crt = (PurpleCertificate *)(chain->data);
 	/* And start with the second certificate in the chain */
 	for ( cur = chain->next; cur; cur = cur->next ) {
-		
+
 		issuer = (PurpleCertificate *)(cur->data);
-		
+
 		/* Check the signature for this link */
 		if (! purple_certificate_signed_by(crt, issuer) ) {
 			uid = purple_certificate_get_unique_id(issuer);
@@ -228,7 +228,7 @@ purple_certificate_check_signature_chain
 					  "...Bad or missing signature by %s\nChain is INVALID\n",
 					  uid);
 			g_free(uid);
-		
+
 			return FALSE;
 		}
 
@@ -237,7 +237,7 @@ purple_certificate_check_signature_chain
 				  "...Good signature by %s\n",
 				  uid);
 		g_free(uid);
-		
+
 		/* The issuer is now the next crt whose signature is to be
 		   checked */
 		crt = issuer;
@@ -283,7 +283,7 @@ purple_certificate_get_fingerprint_sha1(
 	g_return_val_if_fail(crt->scheme, NULL);
 
 	scheme = crt->scheme;
-	
+
 	g_return_val_if_fail(scheme->get_fingerprint_sha1, NULL);
 
 	fpr = (scheme->get_fingerprint_sha1)(crt);
@@ -354,7 +354,7 @@ purple_certificate_get_times(PurpleCerti
 	g_return_val_if_fail(crt, FALSE);
 
 	scheme = crt->scheme;
-	
+
 	g_return_val_if_fail(scheme, FALSE);
 
 	/* If both provided references are NULL, what are you doing calling
@@ -371,7 +371,7 @@ purple_certificate_pool_mkpath(PurpleCer
 {
 	gchar *path;
 	gchar *esc_scheme_name, *esc_name, *esc_id;
-	
+
 	g_return_val_if_fail(pool, NULL);
 	g_return_val_if_fail(pool->scheme_name, NULL);
 	g_return_val_if_fail(pool->name, NULL);
@@ -380,7 +380,7 @@ purple_certificate_pool_mkpath(PurpleCer
 	esc_scheme_name = pool ? g_strdup(purple_escape_filename(pool->scheme_name)) : NULL;
 	esc_name = pool ? g_strdup(purple_escape_filename(pool->name)) : NULL;
 	esc_id = id ? g_strdup(purple_escape_filename(id)) : NULL;
-	
+
 	path = g_build_filename(purple_user_dir(),
 				"certificates", /* TODO: constantize this? */
 				esc_scheme_name,
@@ -404,7 +404,7 @@ purple_certificate_pool_usable(PurpleCer
 	if (purple_certificate_find_scheme(pool->scheme_name) == NULL) {
 		return FALSE;
 	}
-	
+
 	return TRUE;
 }
 
@@ -441,7 +441,7 @@ purple_certificate_pool_store(PurpleCert
 purple_certificate_pool_store(PurpleCertificatePool *pool, const gchar *id, PurpleCertificate *crt)
 {
 	gboolean ret = FALSE;
-	
+
 	g_return_val_if_fail(pool, FALSE);
 	g_return_val_if_fail(id, FALSE);
 	g_return_val_if_fail(pool->put_cert, FALSE);
@@ -461,13 +461,13 @@ purple_certificate_pool_store(PurpleCert
 	}
 
 	return ret;
-}	
+}
 
 gboolean
 purple_certificate_pool_delete(PurpleCertificatePool *pool, const gchar *id)
 {
 	gboolean ret = FALSE;
-	
+
 	g_return_val_if_fail(pool, FALSE);
 	g_return_val_if_fail(id, FALSE);
 	g_return_val_if_fail(pool->delete_cert, FALSE);
@@ -496,7 +496,7 @@ purple_certificate_pool_destroy_idlist(G
 purple_certificate_pool_destroy_idlist(GList *idlist)
 {
 	GList *l;
-	
+
 	/* Iterate through and free them strings */
 	for ( l = idlist; l; l = l->next ) {
 		g_free(l->data);
@@ -520,7 +520,7 @@ x509_singleuse_verify_cb (PurpleCertific
 			  vrq->subject_name, id);
 
 	/* Signal what happened back to the caller */
-	if (1 == id) {		
+	if (1 == id) {
 		/* Accepted! */
 		purple_certificate_verify_complete(vrq,
 						   PURPLE_CERTIFICATE_VALID);
@@ -557,11 +557,11 @@ x509_singleuse_start_verify (PurpleCerti
 	} else {
 		cn_match = _("(DOES NOT MATCH)");
 	}
-	
+
 	/* Make messages */
 	primary = g_strdup_printf(_("%s has presented the following certificate for just-this-once use:"), vrq->subject_name);
 	secondary = g_strdup_printf(_("Common name: %s %s\nFingerprint (SHA1): %s"), cn, cn_match, sha_asc);
-	
+
 	/* Make a semi-pretty display */
 	purple_request_accept_cancel(
 		vrq->cb_data, /* TODO: Find what the handle ought to be */
@@ -575,7 +575,7 @@ x509_singleuse_start_verify (PurpleCerti
 		vrq,
 		x509_singleuse_verify_cb,
 		x509_singleuse_verify_cb );
-	
+
 	/* Cleanup */
 	g_free(primary);
 	g_free(secondary);
@@ -644,13 +644,13 @@ x509_ca_quiet_put_cert(PurpleCertificate
 
 	/* lazy_init calls this function, so calling lazy_init here is a
 	   Bad Thing */
-	
+
 	g_return_val_if_fail(crt, FALSE);
 	g_return_val_if_fail(crt->scheme, FALSE);
 	/* Make sure that this is some kind of X.509 certificate */
 	/* TODO: Perhaps just check crt->scheme->name instead? */
 	g_return_val_if_fail(crt->scheme == purple_certificate_find_scheme(x509_ca.scheme_name), FALSE);
-	
+
 	el = g_new0(x509_ca_element, 1);
 	el->dn = purple_certificate_get_unique_id(crt);
 	el->crt = purple_certificate_copy(crt);
@@ -675,7 +675,7 @@ x509_ca_lazy_init(void)
 	const gchar *entry;
 	GPatternSpec *pempat;
 	GList *iter = NULL;
-	
+
 	if (x509_ca_initialized) return TRUE;
 
 	/* Check that X.509 is registered */
@@ -832,7 +832,7 @@ x509_ca_get_cert(const gchar *id)
 	} else {
 		crt = NULL;
 	}
-	
+
 	return crt;
 }
 
@@ -840,7 +840,7 @@ x509_ca_put_cert(const gchar *id, Purple
 x509_ca_put_cert(const gchar *id, PurpleCertificate *crt)
 {
 	gboolean ret = FALSE;
-	
+
 	g_return_val_if_fail(x509_ca_lazy_init(), FALSE);
 
 	/* TODO: This is a quick way of doing this. At some point the change
@@ -854,7 +854,7 @@ x509_ca_delete_cert(const gchar *id)
 x509_ca_delete_cert(const gchar *id)
 {
 	x509_ca_element *el;
-	
+
 	g_return_val_if_fail(x509_ca_lazy_init(), FALSE);
 	g_return_val_if_fail(id, FALSE);
 
@@ -870,7 +870,7 @@ x509_ca_delete_cert(const gchar *id)
 	/* Unlink it from the memory cache and destroy it */
 	x509_ca_certs = g_list_remove(x509_ca_certs, el);
 	x509_ca_element_free(el);
-	
+
 	return TRUE;
 }
 
@@ -878,7 +878,7 @@ x509_ca_get_idlist(void)
 x509_ca_get_idlist(void)
 {
 	GList *l, *idlist;
-	
+
 	g_return_val_if_fail(x509_ca_lazy_init(), NULL);
 
 	idlist = NULL;
@@ -886,7 +886,7 @@ x509_ca_get_idlist(void)
 		x509_ca_element *el = l->data;
 		idlist = g_list_prepend(idlist, g_strdup(el->dn));
 	}
-	
+
 	return idlist;
 }
 
@@ -921,7 +921,7 @@ x509_tls_peers_init(void)
 {
 	gchar *poolpath;
 	int ret;
-	
+
 	/* Set up key cache here if it isn't already done */
 	poolpath = purple_certificate_pool_mkpath(&x509_tls_peers, NULL);
 	ret = purple_build_dir(poolpath, 0700); /* Make it this user only */
@@ -937,13 +937,13 @@ x509_tls_peers_cert_in_pool(const gchar 
 {
 	gchar *keypath;
 	gboolean ret = FALSE;
-	
+
 	g_return_val_if_fail(id, FALSE);
 
 	keypath = purple_certificate_pool_mkpath(&x509_tls_peers, id);
 
 	ret = g_file_test(keypath, G_FILE_TEST_IS_REGULAR);
-	
+
 	g_free(keypath);
 	return ret;
 }
@@ -954,14 +954,14 @@ x509_tls_peers_get_cert(const gchar *id)
 	PurpleCertificateScheme *x509;
 	PurpleCertificate *crt;
 	gchar *keypath;
-	
+
 	g_return_val_if_fail(id, NULL);
 
 	/* Is it in the pool? */
 	if ( !x509_tls_peers_cert_in_pool(id) ) {
 		return NULL;
 	}
-	
+
 	/* Look up the X.509 scheme */
 	x509 = purple_certificate_find_scheme("x509");
 	g_return_val_if_fail(x509, NULL);
@@ -990,7 +990,7 @@ x509_tls_peers_put_cert(const gchar *id,
 	/* Work out the filename and export */
 	keypath = purple_certificate_pool_mkpath(&x509_tls_peers, id);
 	ret = purple_certificate_export(keypath, crt);
-	
+
 	g_free(keypath);
 	return ret;
 }
@@ -1012,7 +1012,7 @@ x509_tls_peers_delete_cert(const gchar *
 	}
 
 	/* OK, so work out the keypath and delete the thing */
-	keypath = purple_certificate_pool_mkpath(&x509_tls_peers, id);	
+	keypath = purple_certificate_pool_mkpath(&x509_tls_peers, id);
 	if ( unlink(keypath) != 0 ) {
 		purple_debug_error("certificate/tls_peers",
 				   "Unlink of %s failed!\n",
@@ -1047,7 +1047,7 @@ x509_tls_peers_get_idlist(void)
 	while ( (entry = g_dir_read_name(dir)) != NULL ) {
 		/* Unescape the filename */
 		const char *unescaped = purple_unescape_filename(entry);
-		
+
 		/* Copy the entry name into our list (GLib owns the original
 		   string) */
 		idlist = g_list_prepend(idlist, g_strdup(unescaped));
@@ -1055,7 +1055,7 @@ x509_tls_peers_get_idlist(void)
 
 	/* Release the directory */
 	g_dir_close(dir);
-	
+
 	return idlist;
 }
 
@@ -1143,7 +1143,7 @@ x509_tls_cached_user_auth_cb (x509_tls_c
 
 	g_return_if_fail(c);
 	g_return_if_fail(c->vrq);
-	
+
 	vrq = c->vrq;
 
 	x509_tls_cached_ua_ctx_free(c);
@@ -1155,7 +1155,7 @@ x509_tls_cached_user_auth_cb (x509_tls_c
 		purple_debug_info("certificate/x509/tls_cached",
 				  "User ACCEPTED cert\nCaching first in chain for future use as %s...\n",
 				  cache_id);
-		
+
 		purple_certificate_pool_store(tls_peers, cache_id,
 					      vrq->cert_chain->data);
 
@@ -1195,7 +1195,7 @@ x509_tls_cached_user_auth(PurpleCertific
 	/* Make messages */
 	primary = g_strdup_printf(_("Accept certificate for %s?"),
 				  vrq->subject_name);
-		
+
 	/* Make a semi-pretty display */
 	purple_request_action(
 		vrq->cb_data, /* TODO: Find what the handle ought to be */
@@ -1211,7 +1211,7 @@ x509_tls_cached_user_auth(PurpleCertific
 		_("Accept"), x509_tls_cached_user_auth_accept_cb,
 		_("Reject"),  x509_tls_cached_user_auth_reject_cb,
 		_("_View Certificate..."), x509_tls_cached_show_cert);
-	
+
 	/* Cleanup */
 	g_free(primary);
 }
@@ -1225,7 +1225,7 @@ x509_tls_cached_peer_cert_changed(Purple
 			  "Certificate for %s does not match cached. "
 			  "Auto-rejecting!\n",
 			  vrq->subject_name);
-	
+
 	purple_certificate_verify_complete(vrq, PURPLE_CERTIFICATE_INVALID);
 	return;
 }
@@ -1245,7 +1245,7 @@ x509_tls_cached_cert_in_cache(PurpleCert
 	/* The peer's certificate should be the first in the list */
 	PurpleCertificate *peer_crt =
 		(PurpleCertificate *) vrq->cert_chain->data;
-	
+
 	PurpleCertificate *cached_crt;
 	GByteArray *peer_fpr, *cached_fpr;
 
@@ -1278,7 +1278,7 @@ x509_tls_cached_cert_in_cache(PurpleCert
 		/* vrq now becomes the problem of the user */
 		x509_tls_cached_unknown_peer(vrq);
 	}
-	
+
 	purple_certificate_destroy(cached_crt);
 	g_byte_array_free(peer_fpr, TRUE);
 	g_byte_array_free(cached_fpr, TRUE);
@@ -1305,7 +1305,7 @@ x509_tls_cached_unknown_peer(PurpleCerti
 	   "not self-signed" */
 	if ( purple_certificate_signed_by(peer_crt, peer_crt) ) {
 		gchar *msg;
-		
+
 		purple_debug_info("certificate/x509/tls_cached",
 				  "Certificate for %s is self-signed.\n",
 				  vrq->subject_name);
@@ -1316,13 +1316,13 @@ x509_tls_cached_unknown_peer(PurpleCerti
 					"is self-signed. It cannot be "
 					"automatically checked."),
 				      vrq->subject_name);
-				      
+
 		x509_tls_cached_user_auth(vrq,msg);
 
 		g_free(msg);
 		return;
 	} /* if (self signed) */
-	
+
 	/* Next, check that the certificate chain is valid */
 	if ( ! purple_certificate_check_signature_chain(chain) ) {
 		/* TODO: Tell the user where the chain broke? */
@@ -1390,7 +1390,7 @@ x509_tls_cached_unknown_peer(PurpleCerti
 	}
 
 	g_free(ca_id);
-	
+
 	/* Check the signature */
 	if ( !purple_certificate_signed_by(end_crt, ca_crt) ) {
 		/* TODO: If signed_by ever returns a reason, maybe mention
@@ -1406,7 +1406,7 @@ x509_tls_cached_unknown_peer(PurpleCerti
 					  "Authority from which it claims to "
 					  "have a signature."),
 					vrq->subject_name);
-		
+
 		purple_notify_error(NULL, /* TODO: Probably wrong */
 				    _("SSL Certificate Error"),
 				    _("Invalid certificate authority"
@@ -1425,7 +1425,7 @@ x509_tls_cached_unknown_peer(PurpleCerti
 						     vrq->subject_name) ) {
 		gchar *sn = purple_certificate_get_subject_name(peer_crt);
 		gchar *msg;
-		
+
 		purple_debug_info("certificate/x509/tls_cached",
 				  "Name mismatch: Certificate given for %s "
 				  "has a name of %s\n",
@@ -1441,7 +1441,7 @@ x509_tls_cached_unknown_peer(PurpleCerti
 					"connecting to the service you "
 					"believe you are."),
 				      vrq->subject_name, sn);
-				      
+
 		x509_tls_cached_user_auth(vrq,msg);
 
 		g_free(sn);
@@ -1465,7 +1465,7 @@ x509_tls_cached_unknown_peer(PurpleCerti
 				   "Unable to locate tls_peers certificate "
 				   "cache.\n");
 	}
-	
+
 	/* Whew! Done! */
 	purple_certificate_verify_complete(vrq, PURPLE_CERTIFICATE_VALID);
 }
@@ -1481,7 +1481,7 @@ x509_tls_cached_start_verify(PurpleCerti
 	purple_debug_info("certificate/x509/tls_cached",
 			  "Starting verify for %s\n",
 			  vrq->subject_name);
-	
+
 	tls_peers = purple_certificate_find_pool(x509_tls_cached.scheme_name,tls_peers_name);
 
 	if (!tls_peers) {
@@ -1494,7 +1494,7 @@ x509_tls_cached_start_verify(PurpleCerti
 		x509_tls_cached_unknown_peer(vrq);
 		return;
 	}
-	
+
 	/* Check if the peer has a certificate cached already */
 	purple_debug_info("certificate/x509/tls_cached",
 			  "Checking for cached cert...\n");
@@ -1603,7 +1603,7 @@ purple_certificate_find_scheme(const gch
 			     name);
 
 	/* TODO: Signalling and such? */
-	
+
 	return NULL;
 }
 
@@ -1631,7 +1631,7 @@ purple_certificate_register_scheme(Purpl
 	purple_debug_info("certificate",
 			  "CertificateScheme %s registered\n",
 			  scheme->name);
-	
+
 	return TRUE;
 }
 
@@ -1684,7 +1684,7 @@ purple_certificate_find_verifier(const g
 			     scheme_name, ver_name);
 
 	/* TODO: Signalling and such? */
-	
+
 	return NULL;
 }
 
@@ -1762,7 +1762,7 @@ purple_certificate_find_pool(const gchar
 			     scheme_name, pool_name);
 
 	/* TODO: Signalling and such? */
-	
+
 	return NULL;
 
 }
@@ -1850,11 +1850,11 @@ purple_certificate_unregister_pool(Purpl
 	}
 
 	cert_pools = g_list_remove(cert_pools, pool);
-	
+
 	/* TODO: Signalling? */
 	purple_signal_unregister(pool, "certificate-stored");
 	purple_signal_unregister(pool, "certificate-deleted");
-		
+
 	purple_debug_info("certificate",
 			  "CertificatePool %s unregistered\n",
 			  pool->name);
============================================================
--- libpurple/certificate.h	61a5c70514a1dc33d7cb6add064d6861c2a554bc
+++ libpurple/certificate.h	905374a767740c19c2d68fe657aa98b3dfaca142
@@ -60,7 +60,7 @@ typedef void (*PurpleCertificateVerified
 typedef void (*PurpleCertificateVerifiedCallback)
 		(PurpleCertificateVerificationStatus st,
 		 gpointer userdata);
-							  
+
 /** A certificate instance
  *
  *  An opaque data structure representing a single certificate under some
@@ -96,7 +96,7 @@ struct _PurpleCertificatePool
 
 	/** Internal pool data */
 	gpointer data;
-	
+
 	/**
 	 * Set up the Pool's internal state
 	 *
@@ -249,7 +249,7 @@ struct _PurpleCertificateScheme
 
 	/** Retrieve the certificate activation/expiration times */
 	gboolean (* get_times)(PurpleCertificate *crt, time_t *activation, time_t *expiration);
-	
+
 	void (*_purple_reserved1)(void);
 	void (*_purple_reserved2)(void);
 	void (*_purple_reserved3)(void);
@@ -276,7 +276,7 @@ struct _PurpleCertificateVerifier
 
 	/** Name of the Verifier - case insensitive */
 	gchar *name;
-	
+
 	/**
 	 * Start the verification process
 	 *
@@ -326,14 +326,14 @@ struct _PurpleCertificateVerificationReq
 	 * For X.509 certificates, this is the Common Name
 	 */
 	gchar *subject_name;
-	
+
 	/** List of certificates in the chain to be verified (such as that returned by purple_ssl_get_peer_certificates )
 	 *
 	 * This is most relevant for X.509 certificates used in SSL sessions.
 	 * The list order should be: certificate, issuer, issuer's issuer, etc.
 	 */
 	GList *cert_chain;
-	
+
 	/** Internal data used by the Verifier code */
 	gpointer data;
 
@@ -437,7 +437,7 @@ purple_certificate_destroy_list (GList *
  *
  * @return TRUE if 'crt' has a valid signature made by 'issuer',
  *         otherwise FALSE
- * @todo Find a way to give the reason (bad signature, not the issuer, etc.) 
+ * @todo Find a way to give the reason (bad signature, not the issuer, etc.)
  */
 gboolean
 purple_certificate_signed_by(PurpleCertificate *crt, PurpleCertificate *issuer);
@@ -523,7 +523,7 @@ purple_certificate_get_subject_name(Purp
 /**
  * Check the subject name against that on the certificate
  * @param crt   Certificate instance
- * @param name  Name to check. 
+ * @param name  Name to check.
  * @return TRUE if it is a match, else FALSE
  */
 gboolean
============================================================
--- libpurple/cipher.c	a36e3bfe2bf5931e3f5ea5924513e26b2a306470
+++ libpurple/cipher.c	0eaf88f9d46faea88de4e21f75a8c76d584e9444
@@ -512,7 +512,7 @@ static void
 }
 
 static void
-md4_append(PurpleCipherContext *context, const guchar *data, size_t len) 
+md4_append(PurpleCipherContext *context, const guchar *data, size_t len)
 {
 	struct MD4_Context *mctx = purple_cipher_context_get_data(context);
 	const guint32 avail = sizeof(mctx->block) - (mctx->byte_count & 0x3f);
@@ -551,7 +551,7 @@ md4_digest(PurpleCipherContext *context,
 	char *p = (char *)mctx->block + offset;
 	int padding = 56 - (offset + 1);
 
-	
+
 	if(in_len<16) return FALSE;
 	if(out_len) *out_len = 16;
 	*p++ = 0x80;
@@ -684,7 +684,7 @@ static void
 }
 
 static void
-hmac_append(PurpleCipherContext *context, const guchar *data, size_t len) 
+hmac_append(PurpleCipherContext *context, const guchar *data, size_t len)
 {
 	struct HMAC_Context *hctx = purple_cipher_context_get_data(context);
 
@@ -778,7 +778,7 @@ hmac_set_key(PurpleCipherContext *contex
 	hmac_set_key_with_len(context, key, strlen((char *)key));
 }
 
-static size_t 
+static size_t
 hmac_get_block_size(PurpleCipherContext *context)
 {
 	struct HMAC_Context *hctx = purple_cipher_context_get_data(context);
@@ -1022,11 +1022,11 @@ data[6] = (right >> 8) &0xff; data[7] = 
  *			  16 encryption rounds.
  *			  To calculate subkeys for decryption the caller
  *    			  have to reorder the generated subkeys.
- *     
+ *
  *        rawkey:	    8 Bytes of key data
  *        subkey:	    Array of at least 32 guint32s. Will be filled
  *    		    with calculated subkeys.
- *     
+ *
  **/
 static void
 des_key_schedule (const guint8 * rawkey, guint32 * subkey)
@@ -1186,7 +1186,7 @@ des_encrypt(PurpleCipherContext *context
 				buf,
 				output+offset,
 				0);
-	}	
+	}
 	return 0;
 }
 
@@ -1216,7 +1216,7 @@ des_decrypt(PurpleCipherContext *context
 				buf,
 				output+offset,
 				1);
-	}	
+	}
 	return 0;
 }
 
@@ -1947,7 +1947,7 @@ rc4_set_opt(PurpleCipherContext *context
 	}
 }
 
-static size_t 
+static size_t
 rc4_get_key_size (PurpleCipherContext *context)
 {
 	struct RC4Context *ctx;
============================================================
--- libpurple/cipher.h	8188467edcae61f5f139accf56ff4dc63247b22e
+++ libpurple/cipher.h	3845d52bfd6f49372ce4b804832cd1922010d207
@@ -422,7 +422,7 @@ size_t purple_cipher_context_get_block_s
 size_t purple_cipher_context_get_block_size(PurpleCipherContext *context);
 
 /**
- * Sets the key with a given length on a context 
+ * Sets the key with a given length on a context
  *
  * @param context The context whose key to set
  * @param key     The key
============================================================
--- libpurple/circbuffer.c	314ec304e2d7408dd5633044098f87925819d044
+++ libpurple/circbuffer.c	ff2488befea20c55ab38ed306fbbec9aa083fe6e
@@ -44,7 +44,7 @@ static void grow_circ_buffer(PurpleCircB
 static void grow_circ_buffer(PurpleCircBuffer *buf, gsize len) {
 	int in_offset = 0, out_offset = 0;
 	int start_buflen;
-	
+
 	g_return_if_fail(buf != NULL);
 
 	start_buflen = buf->buflen;
@@ -94,7 +94,7 @@ void purple_circ_buffer_append(PurpleCir
 	int len_stored;
 
 	g_return_if_fail(buf != NULL);
-	
+
 	/* Grow the buffer, if necessary */
 	if ((buf->buflen - buf->bufused) < len)
 		grow_circ_buffer(buf, len);
============================================================
--- libpurple/connection.c	2099ceaeea6339506a13da4535ca446c59831193
+++ libpurple/connection.c	ec41b43bf2e770101bac748831341a3afb34c0fe
@@ -191,16 +191,16 @@ _purple_connection_new_unregister(Purple
 	PurpleConnection *gc;
 	PurplePlugin *prpl;
 	PurplePluginProtocolInfo *prpl_info;
-	
+
 	g_return_if_fail(account != NULL);
-		
+
 	prpl = purple_find_prpl(purple_account_get_protocol_id(account));
-	
+
 	if (prpl != NULL)
 		prpl_info = PURPLE_PLUGIN_PROTOCOL_INFO(prpl);
 	else {
 		gchar *message;
-		
+
 		message = g_strdup_printf(_("Missing protocol plugin for %s"),
 								  purple_account_get_username(account));
 		purple_notify_error(NULL, _("Unregistration Error"), message, NULL);
@@ -212,7 +212,7 @@ _purple_connection_new_unregister(Purple
 		prpl_info->unregister_user(account, cb, user_data);
 		return;
 	}
-	
+
 	if (((password == NULL) || (*password == '\0')) &&
 		!(prpl_info->options & OPT_PROTO_NO_PASSWORD) &&
 		!(prpl_info->options & OPT_PROTO_PASSWORD_OPTIONAL))
@@ -221,10 +221,10 @@ _purple_connection_new_unregister(Purple
 						   "a password.\n", purple_account_get_username(account));
 		return;
 	}
-	
+
 	gc = g_new0(PurpleConnection, 1);
 	PURPLE_DBUS_REGISTER_POINTER(gc, PurpleConnection);
-	
+
 	gc->prpl = prpl;
 	if ((password != NULL) && (*password != '\0'))
 		gc->password = g_strdup(password);
@@ -232,11 +232,11 @@ _purple_connection_new_unregister(Purple
 	purple_connection_set_state(gc, PURPLE_CONNECTING);
 	connections = g_list_append(connections, gc);
 	purple_account_set_connection(account, gc);
-	
+
 	purple_signal_emit(purple_connections_get_handle(), "signing-on", gc);
-	
+
 	purple_debug_info("connection", "Unregistering.  gc = %p\n", gc);
-	
+
 	prpl_info->unregister_user(account, cb, user_data);
 }
 
============================================================
--- libpurple/conversation.h	1021377b712292c17ea95162457abce0225c0d79
+++ libpurple/conversation.h	11e5d0c3f04f8ee6d722d3101486ffc18df47738
@@ -1350,7 +1350,7 @@ void purple_conv_chat_cb_destroy(PurpleC
  * Retrieves the extended menu items for the conversation.
  *
  * @param conv The conversation.
- * 
+ *
  * @return  A list of PurpleMenuAction items, harvested by the
  *          chat-extended-menu signal. The list and the menuaction
  *          items should be freed by the caller.
============================================================
--- libpurple/core.h	0670db53150867309d624b6166c360895e4900f4
+++ libpurple/core.h	051c1a04d628b308360ce23e24e618a82ad1d5e4
@@ -90,17 +90,17 @@ void purple_core_quit(void);
 
 /**
  * <p>
- * Calls purple_core_quit().  This can be used as the function 
- * passed to purple_timeout_add() when you want to shutdown Purple 
- * in a specified amount of time.  When shutting down Purple 
+ * Calls purple_core_quit().  This can be used as the function
+ * passed to purple_timeout_add() when you want to shutdown Purple
+ * in a specified amount of time.  When shutting down Purple
  * from a plugin, you must use this instead of purple_core_quit();
- * for an immediate exit, use a timeout value of 0: 
+ * for an immediate exit, use a timeout value of 0:
  * </p>
  *
  * <code>purple_timeout_add(0, purple_core_quitcb, NULL);</code>
  *
  * <p>
- * This is ensures that code from your plugin is not being 
+ * This is ensures that code from your plugin is not being
  * executed when purple_core_quit() is called.  If the plugin
  * called purple_core_quit() directly, you would get a core dump
  * after purple_core_quit() executes and control returns to your
============================================================
--- libpurple/dbus-bindings.h	cc6bb0134c518d2969564998ff14fe14f107401e
+++ libpurple/dbus-bindings.h	55b8c581bc82b5fa70ee12d1b6e827ba16eb0b0e
@@ -84,7 +84,7 @@ purple_dbus_message_iter_get_args_valist
 					int              first_arg_type,
 					va_list          var_args);
 
-dbus_int32_t* purple_dbusify_GList(GList *list, gboolean free_memory, 
+dbus_int32_t* purple_dbusify_GList(GList *list, gboolean free_memory,
 				 dbus_int32_t *len);
 dbus_int32_t* purple_dbusify_GSList(GSList *list, gboolean free_memory,
 				  dbus_int32_t *len);
============================================================
--- libpurple/dbus-server.h	872ffe150db179a4e4038a8397b8ab5a47e46899
+++ libpurple/dbus-server.h	059e991c3fca6dd7d81013d908330d05573fdd47
@@ -173,7 +173,7 @@ void *purple_dbus_get_handle(void);
 
 /**
  * Determines whether this instance owns the DBus service name
- * 
+ *
  * @since 2.1.0
  */
 gboolean purple_dbus_is_owner(void);
============================================================
--- libpurple/desktopitem.c	389a1112f5a24456d75edc3ac58653afd552dc3c
+++ libpurple/desktopitem.c	a5e0f525287148102f5a5c228c5b0891230a629c
@@ -41,12 +41,12 @@
  * modify it under the terms of the GNU Library General Public License as
  * published by the Free Software Foundation; either version 2 of the
  * License, or (at your option) any later version.
- * 
+ *
  * The Gnome Library is distributed in the hope that it will be useful,
  * but WITHOUT ANY WARRANTY; without even the implied warranty of
  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
  * Library General Public License for more details.
- * 
+ *
  * You should have received a copy of the GNU Library General Public
  * License along with the Gnome Library; see the file COPYING.LIB.  If not,
  * write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
@@ -67,7 +67,7 @@ struct _PurpleDesktopItem {
 	GList *languages;
 
 	PurpleDesktopItemType type;
-	
+
 	/* `modified' means that the ditem has been
 	 * modified since the last save. */
 	gboolean modified;
@@ -235,7 +235,7 @@ set (PurpleDesktopItem *item, const char
 				item->keys = g_list_append (item->keys,
 							    g_strdup (key));
 
-			g_hash_table_replace (item->main_hash, 
+			g_hash_table_replace (item->main_hash,
 					      g_strdup (key),
 					      g_strdup (value));
 		} else {
@@ -280,7 +280,7 @@ _purple_desktop_item_new (void)
 	retval->main_hash = g_hash_table_new_full (g_str_hash, g_str_equal,
 						   (GDestroyNotify) g_free,
 						   (GDestroyNotify) g_free);
-	
+
 	/* These are guaranteed to be set */
 	_purple_desktop_item_set_string (retval,
 				       PURPLE_DESKTOP_ITEM_NAME,
@@ -690,7 +690,7 @@ insert_key (PurpleDesktopItem *item,
 			g_free (locale);
 			return;
 		}
-		
+
 		g_strchomp (val);
 
 		/* For old KDE entries, we can also split by a comma
@@ -794,7 +794,7 @@ setup_type (PurpleDesktopItem *item, con
 		if (purple_strequal(base, ".directory")) {
 			/* This gotta be a directory */
 			g_hash_table_replace (item->main_hash,
-					      g_strdup (PURPLE_DESKTOP_ITEM_TYPE), 
+					      g_strdup (PURPLE_DESKTOP_ITEM_TYPE),
 					      g_strdup ("Directory"));
 			item->keys = g_list_prepend
 				(item->keys, g_strdup (PURPLE_DESKTOP_ITEM_TYPE));
@@ -876,7 +876,7 @@ sanitize (PurpleDesktopItem *item, const
 		if (name == NULL)
 			name = g_strdup (_("No name"));
 		g_hash_table_replace (item->main_hash,
-				      g_strdup (PURPLE_DESKTOP_ITEM_NAME), 
+				      g_strdup (PURPLE_DESKTOP_ITEM_NAME),
 				      name);
 		item->keys = g_list_prepend
 			(item->keys, g_strdup (PURPLE_DESKTOP_ITEM_NAME));
@@ -884,7 +884,7 @@ sanitize (PurpleDesktopItem *item, const
 	if (lookup (item, PURPLE_DESKTOP_ITEM_ENCODING) == NULL) {
 		/* We store everything in UTF-8 so write that down */
 		g_hash_table_replace (item->main_hash,
-				      g_strdup (PURPLE_DESKTOP_ITEM_ENCODING), 
+				      g_strdup (PURPLE_DESKTOP_ITEM_ENCODING),
 				      g_strdup ("UTF-8"));
 		item->keys = g_list_prepend
 			(item->keys, g_strdup (PURPLE_DESKTOP_ITEM_ENCODING));
@@ -892,7 +892,7 @@ sanitize (PurpleDesktopItem *item, const
 	if (lookup (item, PURPLE_DESKTOP_ITEM_VERSION) == NULL) {
 		/* this is the version that we follow, so write it down */
 		g_hash_table_replace (item->main_hash,
-				      g_strdup (PURPLE_DESKTOP_ITEM_VERSION), 
+				      g_strdup (PURPLE_DESKTOP_ITEM_VERSION),
 				      g_strdup ("1.0"));
 		item->keys = g_list_prepend
 			(item->keys, g_strdup (PURPLE_DESKTOP_ITEM_VERSION));
@@ -953,7 +953,7 @@ ditem_load (FILE *df,
 	while ((c = getc (df)) != EOF) {
 		if (c == '\r')		/* Ignore Carriage Return */
 			continue;
-		
+
 		switch (state) {
 
 		case OnSecHeader:
@@ -1022,16 +1022,16 @@ ditem_load (FILE *df,
 			/* On first pass, don't allow dangling keys */
 			if (state == FirstBrace)
 				break;
-	    
+
 			if ((c == ' ' && state != KeyDefOnKey) || c == '\t')
 				break;
-	    
+
 			if (c == '\n' || PURPLE_DESKTOP_ITEM_OVERFLOW) { /* Abort Definition */
 				next = CharBuffer;
 				state = KeyDef;
 				break;
 			}
-	    
+
 			if (c == '=' || PURPLE_DESKTOP_ITEM_OVERFLOW){
 				*next = '\0';
 
@@ -1064,7 +1064,7 @@ ditem_load (FILE *df,
 			break;
 
 		} /* switch */
-	
+
 	} /* while ((c = getc_unlocked (f)) != EOF) */
 	if (c == EOF && state == KeyValue) {
 		*next = '\0';
@@ -1155,7 +1155,7 @@ purple_desktop_item_new_from_file (const
 		printf ("Can't open %s: %s", filename, g_strerror(errno));
 		return NULL;
 	}
-	
+
 	retval = ditem_load(dfile, FALSE, filename);
 
 	return retval;
@@ -1200,7 +1200,7 @@ purple_desktop_item_copy (const PurpleDe
 	/* Languages */
 	retval->languages = g_list_copy (item->languages);
 	for (li = retval->languages; li != NULL; li = li->next)
-		li->data = g_strdup (li->data);	
+		li->data = g_strdup (li->data);
 
 	/* Keys */
 	retval->keys = g_list_copy (item->keys);
============================================================
--- libpurple/desktopitem.h	f9dbaf03e5d066fcf58b208d7fac1d44e91908b7
+++ libpurple/desktopitem.h	f5504795bea03734b90347257eb26a9829af4507
@@ -41,12 +41,12 @@
  * modify it under the terms of the GNU Library General Public License as
  * published by the Free Software Foundation; either version 2 of the
  * License, or (at your option) any later version.
- * 
+ *
  * The Gnome Library is distributed in the hope that it will be useful,
  * but WITHOUT ANY WARRANTY; without even the implied warranty of
  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
  * Library General Public License for more details.
- * 
+ *
  * You should have received a copy of the GNU Library General Public
  * License along with the Gnome Library; see the file COPYING.LIB.  If not,
  * write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
@@ -155,7 +155,7 @@ const char *purple_desktop_item_get_stri
  *
  * @param item The item to be copied
  *
- * @return The new copy 
+ * @return The new copy
  */
 PurpleDesktopItem *purple_desktop_item_copy (const PurpleDesktopItem *item);
 
============================================================
--- libpurple/eventloop.h	1ba65776a26459824c5d3d87162d595050025191
+++ libpurple/eventloop.h	89501d488af90d218670a6e62fd7bd772eac717e
@@ -119,8 +119,8 @@ struct _PurpleEventLoopUiOps
 	 * @see purple_input_remove
 	 */
 	gboolean (*input_remove)(guint handle);
-	
-	
+
+
 	/**
 	 * If implemented, should get the current error status for an input.
 	 *
@@ -161,7 +161,7 @@ struct _PurpleEventLoopUiOps
 /*@{*/
 /**
  * Creates a callback timer.
- * 
+ *
  * The timer will repeat until the function returns @c FALSE. The
  * first call will be at the end of the first interval.
  *
@@ -185,12 +185,12 @@ guint purple_timeout_add(guint interval,
  *
  * This function allows UIs to group timers for better power efficiency.  For
  * this reason, @a interval may be rounded by up to a second.
- * 
+ *
  * @param interval	The time between calls of the function, in
  *                      seconds.
  * @param function	The function to call.
  * @param data		data to pass to @a function.
- * @return A handle to the timer which can be passed to 
+ * @return A handle to the timer which can be passed to
  *         purple_timeout_remove() to remove the timer.
  *
  * @since 2.1.0
============================================================
--- libpurple/idle.c	9952f567571e34828f4395d2ae034f9fcd877473
+++ libpurple/idle.c	2c31dca88f029b503c256c5bc8bcfe4cfed35dc0
@@ -214,7 +214,7 @@ check_idleness(void)
 
 
 /*
- * Check idle and set the timer to fire at the next idle-worth event 
+ * Check idle and set the timer to fire at the next idle-worth event
  */
 static gboolean
 check_idleness_timer(void)
============================================================
--- libpurple/internal.h	86902e7163d0f3b356dc3bdb2820ce355806f780
+++ libpurple/internal.h	2c9c20e632b46a6ed9e2654ecc8094b38cc530af
@@ -102,7 +102,7 @@
 #include <gmodule.h>
 
 #ifdef PURPLE_PLUGINS
-# ifdef HAVE_DLFCN_H 
+# ifdef HAVE_DLFCN_H
 #  include <dlfcn.h>
 # endif
 #endif
============================================================
--- libpurple/nat-pmp.c	76743175ed6081ed531da17fe04fa741397fced7
+++ libpurple/nat-pmp.c	4e4fb9bb4b636bae702827a77339dc3e6a679449
@@ -126,7 +126,7 @@ get_rtaddrs(int bitmask, struct sockaddr
 
 	for (i = 0; i < RTAX_MAX; i++)
 	{
-		if (bitmask & (1 << i)) 
+		if (bitmask & (1 << i))
 		{
 			addrs[i] = sa;
 #ifdef HAVE_STRUCT_SOCKADDR_SA_LEN
@@ -139,7 +139,7 @@ get_rtaddrs(int bitmask, struct sockaddr
 				sa = (struct sockaddr*)(sizeof(struct sockaddr_in6) + (char *)sa);
 #endif
 #endif
-		} 
+		}
 		else
 		{
 			addrs[i] = NULL;
@@ -192,7 +192,7 @@ default_gw()
     mib[5] = 0;
 
 	/* Determine the buffer side needed to get the full routing table */
-    if (sysctl(mib, 6, NULL, &needed, NULL, 0) < 0) 
+    if (sysctl(mib, 6, NULL, &needed, NULL, 0) < 0)
 	{
 		purple_debug_warning("nat-pmp", "sysctl: net.route.0.0.dump estimate\n");
 		return NULL;
@@ -205,7 +205,7 @@ default_gw()
     }
 
 	/* Read the routing table into buf */
-    if (sysctl(mib, 6, buf, &needed, NULL, 0) < 0) 
+    if (sysctl(mib, 6, buf, &needed, NULL, 0) < 0)
 	{
 		purple_debug_warning("nat-pmp", "sysctl: net.route.0.0.dump\n");
 		return NULL;
@@ -213,12 +213,12 @@ default_gw()
 
     lim = buf + needed;
 
-    for (next = buf; next < lim; next += rtm->rtm_msglen) 
+    for (next = buf; next < lim; next += rtm->rtm_msglen)
 	{
 		rtm = (struct rt_msghdr *)next;
 		sa = (struct sockaddr *)(rtm + 1);
-		
-		if (sa->sa_family == AF_INET) 
+
+		if (sa->sa_family == AF_INET)
 		{
 			sin = (struct sockaddr_in*) sa;
 
@@ -240,7 +240,7 @@ default_gw()
 					memcpy(&mask, rti_info[RTAX_NETMASK], sizeof(mask));
 
 				if (rtm->rtm_addrs & RTA_GATEWAY &&
-					is_default_route(&addr, &mask)) 
+					is_default_route(&addr, &mask))
 				{
 					if (rti_info[RTAX_GATEWAY]) {
 						struct sockaddr_in *rti_sin = (struct sockaddr_in *)rti_info[RTAX_GATEWAY];
@@ -263,7 +263,7 @@ default_gw()
 }
 
 /*!
- *	purple_pmp_get_public_ip() will return the publicly facing IP address of the 
+ *	purple_pmp_get_public_ip() will return the publicly facing IP address of the
  *	default NAT gateway. The function will return NULL if:
  *		- The gateway doesn't support NAT-PMP
  *		- The gateway errors in some other spectacular fashion
@@ -278,10 +278,10 @@ purple_pmp_get_public_ip()
 	PurplePmpIpRequest req;
 	PurplePmpIpResponse resp;
 	int sendfd;
-	
+
 	if (pmp_info.status == PURPLE_PMP_STATUS_UNABLE_TO_DISCOVER)
 		return NULL;
-	
+
 	if ((pmp_info.status == PURPLE_PMP_STATUS_DISCOVERED) && (pmp_info.publicip != NULL))
 	{
 #ifdef PMP_DEBUG
@@ -318,7 +318,7 @@ purple_pmp_get_public_ip()
 	/* The NAT-PMP spec says we should attempt to contact the gateway 9 times, doubling the time we wait each time.
 	 * Even starting with a timeout of 0.1 seconds, that means that we have a total waiting of 204.6 seconds.
 	 * With the recommended timeout of 0.25 seconds, we're talking 511.5 seconds (8.5 minutes).
-	 * 
+	 *
 	 * This seems really silly... if this were nonblocking, a couple retries might be in order, but it's not at present.
 	 */
 #ifdef PMP_DEBUG
@@ -327,7 +327,7 @@ purple_pmp_get_public_ip()
 #endif
 
 	/* TODO: Non-blocking! */
-	
+
 	if (sendto(sendfd, &req, sizeof(req), 0, (struct sockaddr *)(gateway), sizeof(struct sockaddr)) < 0)
 	{
 		purple_debug_info("nat-pmp", "There was an error sending the NAT-PMP public IP request! (%s)\n", g_strerror(errno));
@@ -370,7 +370,7 @@ purple_pmp_get_public_ip()
 
 	if (!publicsockaddr) {
 		g_free(gateway);
-		
+
 		pmp_info.status = PURPLE_PMP_STATUS_UNABLE_TO_DISCOVER;
 		return NULL;
 	}
@@ -437,7 +437,7 @@ purple_pmp_create_map(PurplePmpType type
 	/* The NAT-PMP spec says we should attempt to contact the gateway 9 times, doubling the time we wait each time.
 	 * Even starting with a timeout of 0.1 seconds, that means that we have a total waiting of 204.6 seconds.
 	 * With the recommended timeout of 0.25 seconds, we're talking 511.5 seconds (8.5 minutes).
-	 * 
+	 *
 	 * This seems really silly... if this were nonblocking, a couple retries might be in order, but it's not at present.
 	 * XXX Make this nonblocking.
 	 * XXX This code looks like the pmp_get_public_ip() code. Can it be consolidated?
============================================================
--- libpurple/notify.c	12fed73c103fe5ebab9d5fa566ff321199f576f8
+++ libpurple/notify.c	3d493ad80fda5870ddc9a7aeb89221c6b4d916e5
@@ -444,7 +444,7 @@ purple_notify_user_info_entry_new(const 
 purple_notify_user_info_entry_new(const char *label, const char *value)
 {
 	PurpleNotifyUserInfoEntry *user_info_entry;
-	
+
 	user_info_entry = g_new0(PurpleNotifyUserInfoEntry, 1);
 	PURPLE_DBUS_REGISTER_POINTER(user_info_entry, PurpleNotifyUserInfoEntry);
 	user_info_entry->label = g_strdup(label);
@@ -458,7 +458,7 @@ purple_notify_user_info_entry_destroy(Pu
 purple_notify_user_info_entry_destroy(PurpleNotifyUserInfoEntry *user_info_entry)
 {
 	g_return_if_fail(user_info_entry != NULL);
-	
+
 	g_free(user_info_entry->label);
 	g_free(user_info_entry->value);
 	PURPLE_DBUS_UNREGISTER_POINTER(user_info_entry);
@@ -469,11 +469,11 @@ purple_notify_user_info_new()
 purple_notify_user_info_new()
 {
 	PurpleNotifyUserInfo *user_info;
-	
+
 	user_info = g_new0(PurpleNotifyUserInfo, 1);
 	PURPLE_DBUS_REGISTER_POINTER(user_info, PurpleNotifyUserInfo);
 	user_info->user_info_entries = NULL;
-	
+
 	return user_info;
 }
 
@@ -484,10 +484,10 @@ purple_notify_user_info_destroy(PurpleNo
 
 	for (l = user_info->user_info_entries; l != NULL; l = l->next) {
 		PurpleNotifyUserInfoEntry *user_info_entry = l->data;
-		
+
 		purple_notify_user_info_entry_destroy(user_info_entry);
 	}
-	
+
 	g_list_free(user_info->user_info_entries);
 	PURPLE_DBUS_UNREGISTER_POINTER(user_info);
 	g_free(user_info);
@@ -506,7 +506,7 @@ purple_notify_user_info_get_text_with_ne
 {
 	GList *l;
 	GString *text;
-	
+
 	text = g_string_new("");
 
 	for (l = user_info->user_info_entries; l != NULL; l = l->next) {
@@ -532,7 +532,7 @@ purple_notify_user_info_get_text_with_ne
 		if ((user_info_entry->type != PURPLE_NOTIFY_USER_INFO_ENTRY_SECTION_BREAK) &&
 			(l->next && ((((PurpleNotifyUserInfoEntry *)(l->next->data))->type != PURPLE_NOTIFY_USER_INFO_ENTRY_SECTION_BREAK))))
 			g_string_append(text, newline);
-		
+
 		/* Add an extra newline after a section header */
 		if (user_info_entry->type == PURPLE_NOTIFY_USER_INFO_ENTRY_SECTION_HEADER)
 			g_string_append(text, newline);
@@ -563,7 +563,7 @@ purple_notify_user_info_entry_get_value(
 purple_notify_user_info_entry_get_value(PurpleNotifyUserInfoEntry *user_info_entry)
 {
 	g_return_val_if_fail(user_info_entry != NULL, NULL);
-	
+
 	return user_info_entry->value;
 }
 
@@ -596,7 +596,7 @@ purple_notify_user_info_add_pair(PurpleN
 purple_notify_user_info_add_pair(PurpleNotifyUserInfo *user_info, const char *label, const char *value)
 {
 	PurpleNotifyUserInfoEntry *entry;
-	
+
 	entry = purple_notify_user_info_entry_new(label, value);
 	user_info->user_info_entries = g_list_append(user_info->user_info_entries, entry);
 }
@@ -623,7 +623,7 @@ purple_notify_user_info_add_section_head
 purple_notify_user_info_add_section_header(PurpleNotifyUserInfo *user_info, const char *label)
 {
 	PurpleNotifyUserInfoEntry *entry;
-	
+
 	entry = purple_notify_user_info_entry_new(label, NULL);
 	entry->type = PURPLE_NOTIFY_USER_INFO_ENTRY_SECTION_HEADER;
 
@@ -634,10 +634,10 @@ purple_notify_user_info_prepend_section_
 purple_notify_user_info_prepend_section_header(PurpleNotifyUserInfo *user_info, const char *label)
 {
 	PurpleNotifyUserInfoEntry *entry;
-	
+
 	entry = purple_notify_user_info_entry_new(label, NULL);
 	entry->type = PURPLE_NOTIFY_USER_INFO_ENTRY_SECTION_HEADER;
-	
+
 	user_info->user_info_entries = g_list_prepend(user_info->user_info_entries, entry);
 }
 
@@ -645,7 +645,7 @@ purple_notify_user_info_add_section_brea
 purple_notify_user_info_add_section_break(PurpleNotifyUserInfo *user_info)
 {
 	PurpleNotifyUserInfoEntry *entry;
-	
+
 	entry = purple_notify_user_info_entry_new(NULL, NULL);
 	entry->type = PURPLE_NOTIFY_USER_INFO_ENTRY_SECTION_BREAK;
 
@@ -656,10 +656,10 @@ purple_notify_user_info_prepend_section_
 purple_notify_user_info_prepend_section_break(PurpleNotifyUserInfo *user_info)
 {
 	PurpleNotifyUserInfoEntry *entry;
-	
+
 	entry = purple_notify_user_info_entry_new(NULL, NULL);
 	entry->type = PURPLE_NOTIFY_USER_INFO_ENTRY_SECTION_BREAK;
-	
+
 	user_info->user_info_entries = g_list_prepend(user_info->user_info_entries, entry);
 }
 
============================================================
--- libpurple/ntlm.h	2041db604dc015656a3eb3413179e3d97cffd51d
+++ libpurple/ntlm.h	7c1502b700ebf85e66166a0c4c7ed807b02c2d0a
@@ -46,7 +46,7 @@ gchar *purple_ntlm_gen_type1(const gchar
  *
  * @param type2 String containing the base64 encoded type2 message
  * @param flags If not @c NULL, this will store the flags for the message
- * 
+ *
  * @return The nonce for use in message type3.  This is a statically
  *         allocated 8 byte binary string.
  */
============================================================
--- libpurple/plugin.h	b66b4aa41ed05a016dd10d93b8f32af992a605c4
+++ libpurple/plugin.h	86be4fb7dc333fc9c15c6399ad9a870b639f5489
@@ -183,7 +183,7 @@ struct _PurplePluginAction {
 	/** NULL for plugin actions menu, set to the PurpleConnection for
 	    account actions menu */
 	gpointer context;
-	
+
 	gpointer user_data;
 };
 
@@ -358,7 +358,7 @@ const gchar *purple_plugin_get_id(const 
  * Returns a plugin's name.
  *
  * @param plugin The plugin.
- * 
+ *
  * @return THe name of the plugin, or @c NULL.
  */
 const gchar *purple_plugin_get_name(const PurplePlugin *plugin);
============================================================
--- libpurple/prefs.h	059e0c6b8e352a3b486619b7a93aebcfe7de6752
+++ libpurple/prefs.h	92f8552b18883a9786ef648d15ab93ff2eaf4365
@@ -67,8 +67,8 @@ extern "C" {
 #endif
 
 /**************************************************************************/
-/** @name Prefs API                                                       
-    Preferences are named according to a directory-like structure.        
+/** @name Prefs API
+    Preferences are named according to a directory-like structure.
     Example: "/plugins/core/potato/is_from_idaho" (probably a boolean)    */
 /**************************************************************************/
 /*@{*/
============================================================
--- libpurple/privacy.h	4b529eeccd9a23776ce7ca52a9aae828f1873eba
+++ libpurple/privacy.h	0dc640630e620a4c92edfb2c4c880a6cfac87f20
@@ -125,7 +125,7 @@ gboolean purple_privacy_deny_remove(Purp
  *									changed to PURPLE_PRIVACY_ALLOW_USERS, all the
  *									buddies are added to the allow-list, and the
  *									user is also added to the allow-list.
- * 
+ *
  * @param account	The account.
  * @param who		The name of the user.
  * @param local		Whether the change is local-only.
============================================================
--- libpurple/protocols/oscar/family_locate.c	0bb13fa8146a056def8219a666626128d41c64ce
+++ libpurple/protocols/oscar/family_locate.c	f6b5835e8b5e7ef6cb3f26166d2a88eff4582da4
@@ -100,7 +100,7 @@ static const struct {
 	  0x82, 0x22, 0x44, 0x45, 0x45, 0x53, 0x54, 0x00}},
 
 	/* Supports "new status message features" (Who advertises this one?) */
-	/* OSCAR_CAPABILITY_HOST_STATUS_TEXT_AWARE */ 
+	/* OSCAR_CAPABILITY_HOST_STATUS_TEXT_AWARE */
 	{OSCAR_CAPABILITY_GENERICUNKNOWN,
 	 {0x09, 0x46, 0x01, 0x0a, 0x4c, 0x7f, 0x11, 0xd1,
 	  0x82, 0x22, 0x44, 0x45, 0x53, 0x54, 0x00, 0x00}},
@@ -112,7 +112,7 @@ static const struct {
 	  0x82, 0x22, 0x44, 0x45, 0x53, 0x54, 0x00, 0x00}},
 
 	/* Client only asserts caps for services in which it is participating */
-	/* OSCAR_CAPABILITY_SMARTCAPS */ 
+	/* OSCAR_CAPABILITY_SMARTCAPS */
 	{OSCAR_CAPABILITY_GENERICUNKNOWN,
 	 {0x09, 0x46, 0x01, 0xff, 0x4c, 0x7f, 0x11, 0xd1,
 	  0x82, 0x22, 0x44, 0x45, 0x53, 0x54, 0x00, 0x00}},
============================================================
--- libpurple/protocols/oscar/oscar.c	6a4fa46297fe813478080d05a2c8b9033a980595
+++ libpurple/protocols/oscar/oscar.c	d025af51303b8cfa55a292ee96fda7fcae40264d
@@ -1707,7 +1707,7 @@ straight_to_hell(gpointer data, gint sou
 	pos->fd = source;
 
 	if (source < 0) {
-		GHashTable *ui_info = purple_core_get_ui_info();				
+		GHashTable *ui_info = purple_core_get_ui_info();
 		buf = g_strdup_printf(_("You may be disconnected shortly.  "
 				"Check %s for updates."),
 				((ui_info && g_hash_table_lookup(ui_info, "website")) ? (char *)g_hash_table_lookup(ui_info, "website") : PURPLE_WEBSITE));
@@ -2042,7 +2042,7 @@ static int purple_parse_oncoming(OscarDa
 		PurplePresence *presence = purple_buddy_get_presence(b);
 		PurpleStatus *old_status = purple_presence_get_active_status(presence);
 		PurpleStatus *new_status = purple_presence_get_status(presence, status_id);
-		
+
 		/* If our status_id would change with this update, pass it to the core.
 		 * However, if our status_id would not change, do nothing, as we would clear out any existing
 		 * attributes on the status prematurely. purple_got_infoblock() will update the message as needed.
@@ -6915,7 +6915,7 @@ void oscar_init(PurplePluginProtocolInfo
 	option = purple_account_option_bool_new(_("Allow multiple simultaneous logins"), "allow_multiple_logins",
 											OSCAR_DEFAULT_ALLOW_MULTIPLE_LOGINS);
 	prpl_info->protocol_options = g_list_append(prpl_info->protocol_options, option);
-	
+
 	if (init)
 		return;
 	init = TRUE;
============================================================
--- libpurple/proxy.c	28c48df50e358441a2bbbd382406ff385839f312
+++ libpurple/proxy.c	fb0bdbe873a7f19440ae58b4d2772c43e8bb4185
@@ -1707,7 +1707,7 @@ s5_readchap(gpointer data, gint source, 
 			return;
 
 		msg_ret = s5_parse_chap_msg(connect_data);
-	
+
 		if (msg_ret < 0)
 			return;
 
============================================================
--- libpurple/prpl.c	6a3eb4ee5aa6d3702c9e22275801b89a07193ea6
+++ libpurple/prpl.c	e75c581346b0133dacd5ede47c4edab51660c7b6
@@ -75,7 +75,7 @@ purple_attention_type_set_icon_name(Purp
 purple_attention_type_set_icon_name(PurpleAttentionType *type, const char *name)
 {
 	g_return_if_fail(type != NULL);
-	
+
 	type->icon_name = name;
 }
 
@@ -400,7 +400,7 @@ purple_prpl_send_attention(PurpleConnect
 	PurpleConversation *conv;
 	gboolean (*send_attention)(PurpleConnection *, const char *, guint);
 	PurpleBuddy *buddy;
-	const char *alias;	
+	const char *alias;
 	gchar *description;
 	time_t mtime;
 
@@ -425,7 +425,7 @@ purple_prpl_send_attention(PurpleConnect
 	} else {
 		description = g_strdup_printf(_("Requesting %s's attention..."), alias);
 	}
-	
+
 	flags = PURPLE_MESSAGE_SEND | PURPLE_MESSAGE_NOTIFY | PURPLE_MESSAGE_SYSTEM;
 
 	purple_debug_info("server", "serv_send_attention: sending '%s' to %s\n",
============================================================
--- libpurple/prpl.h	f93c6c9088ab8fd3d2984da02ace7121f7dab5f5
+++ libpurple/prpl.h	db7ce0ba36c973d6d345590464682b7924b65a5e
@@ -211,7 +211,7 @@ struct _PurplePluginProtocolInfo
 
 	/**
 	 * Returns the base icon name for the given buddy and account.
-	 * If buddy is NULL and the account is non-NULL, it will return the 
+	 * If buddy is NULL and the account is non-NULL, it will return the
 	 * name to use for the account's icon. If both are NULL, it will
 	 * return the name to use for the protocol's icon.
 	 *
@@ -413,7 +413,7 @@ struct _PurplePluginProtocolInfo
 	 * reasons.
 	 */
 	void (*unregister_user)(PurpleAccount *, PurpleAccountUnregistrationCb cb, void *user_data);
-	
+
 	/* Attention API for sending & receiving zaps/nudges/buzzes etc. */
 	gboolean (*send_attention)(PurpleConnection *gc, const char *username, guint type);
 	GList *(*get_attention_types)(PurpleAccount *acct);
@@ -680,7 +680,7 @@ void purple_prpl_got_user_status_deactiv
  */
 void purple_prpl_got_user_status_deactive(PurpleAccount *account, const char *name,
 					const char *status_id);
- 
+
 /**
  * Informs the server that an account's status changed.
  *
@@ -717,7 +717,7 @@ void purple_prpl_send_attention(PurpleCo
  */
 void purple_prpl_send_attention(PurpleConnection *gc, const char *who, guint type_code);
 
-/** Process an incoming attention message. 
+/** Process an incoming attention message.
  *
  * @param gc The connection that received the attention message.
  * @param who Who requested your attention.
@@ -727,13 +727,13 @@ void purple_prpl_got_attention(PurpleCon
  */
 void purple_prpl_got_attention(PurpleConnection *gc, const char *who, guint type_code);
 
-/** Process an incoming attention message in a chat. 
+/** Process an incoming attention message in a chat.
  *
  * @param gc The connection that received the attention message.
  * @param id The chat id.
  * @param who Who requested your attention.
  * @param type_code An index into the prpl's attention_types list determining the type
- * 	of the attention request command to send. 
+ * 	of the attention request command to send.
  * @since 2.5.0
  */
 void purple_prpl_got_attention_in_chat(PurpleConnection *gc, int id, const char *who, guint type_code);
============================================================
--- libpurple/purple-send-async	6684a9d4b5af9c08ea4b3bd5c9c92cfb14b50da4
+++ libpurple/purple-send-async	04f066e7ff714acc024b6e42863a6e5b3c428e29
@@ -2,18 +2,18 @@ METHOD_NAME=$1
 
 METHOD_NAME=$1
 
-if test -z "$METHOD_NAME" 
+if test -z "$METHOD_NAME"
 then
-    cat <<EOF 
-This program calls purple API functions using DBus.  As opposed to purple-send, 
+    cat <<EOF
+This program calls purple API functions using DBus.  As opposed to purple-send,
 it does not print the return value.
 
 Usage:
 
    $0 method-name type1:parameter1 type2:parameter2 ...
 
-This shell script just invokes dbus-send, see man dbus-send for how 
-to specify the parameters.  
+This shell script just invokes dbus-send, see man dbus-send for how
+to specify the parameters.
 
 Examples:
 
@@ -27,4 +27,4 @@ dbus-send --dest=im.pidgin.purple.Purple
 shift
 dbus-send --dest=im.pidgin.purple.PurpleService --type=method_call /im/pidgin/purple/PurpleObject im.pidgin.purple.PurpleInterface.$METHOD_NAME "$@"
 
-echo 
+echo
============================================================
--- libpurple/server.c	de678a21a58dafae9424502b2964f90a4dd51a11
+++ libpurple/server.c	b9c6a880738b280c7302dd352dfe947ee3f7101e
@@ -172,7 +172,7 @@ void serv_get_info(PurpleConnection *gc,
 
 	if(gc)
 		prpl = purple_connection_get_prpl(gc);
-	
+
 	if(prpl)
 		prpl_info = PURPLE_PLUGIN_PROTOCOL_INFO(prpl);
 
@@ -188,7 +188,7 @@ void serv_set_info(PurpleConnection *gc,
 
 	if(gc)
 		prpl = purple_connection_get_prpl(gc);
-	
+
 	if(prpl)
 		prpl_info = PURPLE_PLUGIN_PROTOCOL_INFO(prpl);
 
============================================================
--- libpurple/server.h	594cdf94d66f7f6af6439a1ad6c4b9a10e7d0689
+++ libpurple/server.h	1d9cf80aafa4d691fc0ac52e2254468b65bd1c20
@@ -55,8 +55,8 @@ int  serv_send_im(PurpleConnection *, co
 void serv_move_buddy(PurpleBuddy *, PurpleGroup *, PurpleGroup *);
 int  serv_send_im(PurpleConnection *, const char *, const char *, PurpleMessageFlags flags);
 
-/** Get information about an account's attention commands, from the prpl. 
- * 
+/** Get information about an account's attention commands, from the prpl.
+ *
  * @return The attention command numbered 'code' from the prpl's attention_types, or NULL.
  */
 PurpleAttentionType *purple_get_attention_type_from_code(PurpleAccount *account, guint type_code);
@@ -76,14 +76,14 @@ void serv_send_attention(PurpleConnectio
  */
 void serv_send_attention(PurpleConnection *gc, const char *who, guint type_code);
 
-/** Process an incoming attention message. 
+/** Process an incoming attention message.
  *
  * @deprecated Use purple_prpl_got_attention() instead.
  *
  * @param gc The connection that received the attention message.
  * @param who Who requested your attention.
  * @param type_code An index into the prpl's attention_types list determining the type
- * 	of the attention request command to send. 
+ * 	of the attention request command to send.
  */
 void serv_got_attention(PurpleConnection *gc, const char *who, guint type_code);
 
@@ -180,7 +180,7 @@ void purple_serv_got_join_chat_failed(Pu
  *                function should be g_str_equal().
  */
 void purple_serv_got_join_chat_failed(PurpleConnection *gc, GHashTable *data);
-	
+
 void serv_got_chat_left(PurpleConnection *g, int id);
 void serv_got_chat_in(PurpleConnection *g, int id, const char *who,
 					  PurpleMessageFlags flags, const char *message, time_t mtime);
============================================================
--- libpurple/signals.c	819bf502d09507a5b94ae299b96067e570593276
+++ libpurple/signals.c	495b2f8b608279cbb850e4794a49f56abd7e9b32
@@ -487,7 +487,7 @@ purple_signal_emit_vargs(void *instance,
 	}
 
 #ifdef HAVE_DBUS
-	purple_dbus_signal_emit_purple(signal, signal_data->num_values, 
+	purple_dbus_signal_emit_purple(signal, signal_data->num_values,
 				   signal_data->values, args);
 #endif	/* HAVE_DBUS */
 
@@ -539,7 +539,7 @@ purple_signal_emit_vargs_return_1(void *
 
 #ifdef HAVE_DBUS
 	G_VA_COPY(tmp, args);
-	purple_dbus_signal_emit_purple(signal, signal_data->num_values, 
+	purple_dbus_signal_emit_purple(signal, signal_data->num_values,
 				   signal_data->values, tmp);
 	va_end(tmp);
 #endif	/* HAVE_DBUS */
============================================================
--- libpurple/signals.h	903d2697143fe490e18ef96381eb82a0eae15ed3
+++ libpurple/signals.h	43a23f0283841d3e22575607c64bd51fec8c2195
@@ -137,7 +137,7 @@ gulong purple_signal_connect_priority(vo
 /**
  * Connects a signal handler to a signal for a particular object.
  * (Its priority defaults to 0, aka #PURPLE_SIGNAL_PRIORITY_DEFAULT.)
- * 
+ *
  * Take care not to register a handler function twice. Purple will
  * not correct any mistakes for you in this area.
  *
============================================================
--- libpurple/smiley.c	fc77c4b1edd160aeb079de830ba4d197780a842e
+++ libpurple/smiley.c	525d1524918b111d3d5806f42b9ca54955a5643f
@@ -722,7 +722,7 @@ purple_smiley_new_from_file(const char *
 		smiley = purple_smiley_new_from_stream(shortcut, smiley_data,
 				smiley_data_len);
 	}
-	
+
 	return smiley;
 }
 
============================================================
--- libpurple/sslconn.c	7362480ce9f6cdda339ca629d1a26aa2b44c3b3c
+++ libpurple/sslconn.c	f3d04c0f5aba8a0f9e2289512032cc4573d4de53
@@ -216,7 +216,7 @@ purple_ssl_connect_with_host_fd(PurpleAc
 	/* TODO: Move this elsewhere */
 	gsc->verifier = purple_certificate_find_verifier("x509","tls_cached");
 
-    
+
 	ops = purple_ssl_get_ops();
 	ops->connectfunc(gsc);
 
============================================================
--- libpurple/sslconn.h	abbe7765db1356b53279697d7016a67184ab8ad5
+++ libpurple/sslconn.h	379cffcc05ffd9bc98250a9b4c29ae0ec9e2e87c
@@ -65,7 +65,7 @@ struct _PurpleSslConnection
 
 	/** File descriptor used to refer to the socket */
 	int fd;
-	/** Glib event source ID; used to refer to the received data callback 
+	/** Glib event source ID; used to refer to the received data callback
 	 * in the glib eventloop */
 	guint inpa;
 	/** Data related to the underlying TCP connection */
@@ -133,7 +133,7 @@ typedef struct
 	 *              list can be guaranteed.
 	 */
 	GList * (* get_peer_certificates)(PurpleSslConnection * gsc);
-	
+
 	void (*_purple_reserved2)(void);
 	void (*_purple_reserved3)(void);
 	void (*_purple_reserved4)(void);
============================================================
--- libpurple/upnp.c	7f99eb010eb284e1d53b9fc2b0e96b3f5164dca2
+++ libpurple/upnp.c	aa0d0c2f46f0a0601031119fe9151a216f3a0d40
@@ -715,7 +715,7 @@ purple_upnp_generate_action_message_and_
 
 	g_free(totalSendMessage);
 	g_free(addressOfControl);
-	
+
 	return gfud;
 }
 
@@ -1048,7 +1048,7 @@ purple_upnp_get_handle(void)
 purple_upnp_get_handle(void)
 {
 	static int handle;
-	
+
 	return &handle;
 }
 
============================================================
--- libpurple/util.c	63cdf725999fed1c93e7d3d4651400679e1ad4d6
+++ libpurple/util.c	e4dc9deaf75753ad9d3bf9b973fab8219a739c23
@@ -98,7 +98,7 @@ purple_util_init(void)
 void
 purple_util_init(void)
 {
-	/* This does nothing right now.  It exists for symmetry with 
+	/* This does nothing right now.  It exists for symmetry with
 	 * purple_util_uninit() and forwards compatibility. */
 }
 
@@ -2693,7 +2693,7 @@ purple_util_write_data_to_file_absolute(
 		return FALSE;
 	}
 #endif
-    
+
 	/* Close file */
 	if (fclose(file) != 0)
 	{
============================================================
--- libpurple/xmlnode.c	14e29a35b86ea347eb37200d28859dce0242d9b3
+++ libpurple/xmlnode.c	cbc6f97c3c025fe03bb99a7e6f8de15b110b1c4f
@@ -628,7 +628,7 @@ xmlnode_parser_element_text_libxml(void 
 
 	if(!xpd->current || xpd->error)
 		return;
-	
+
 	if(!text || !text_len)
 		return;
 
============================================================
--- libpurple/xmlnode.h	e8f9beb0476e8b564d323f614a95183424fa3548
+++ libpurple/xmlnode.h	a5052fe7206c9806a829fee8d931436e2a3729d4
@@ -312,7 +312,7 @@ void xmlnode_free(xmlnode *node);
  *
  * @since 2.6.0
  */
-xmlnode *xmlnode_from_file(const char *dir, const char *filename, 
+xmlnode *xmlnode_from_file(const char *dir, const char *filename,
 			   const char *description, const char *process);
 
 #ifdef __cplusplus
============================================================
--- pidgin/eggtrayicon.c	3d8df7c411c8495d0157ce5ebaea81ffbc6ed417
+++ pidgin/eggtrayicon.c	e17a340f5753e581d665b65d069f445d56893048
@@ -39,7 +39,7 @@ enum {
   PROP_0,
   PROP_ORIENTATION
 };
-         
+
 static GtkPlugClass *parent_class = NULL;
 
 static void egg_tray_icon_init (EggTrayIcon *icon);
@@ -102,7 +102,7 @@ egg_tray_icon_init (EggTrayIcon *icon)
 {
   icon->stamp = 1;
   icon->orientation = GTK_ORIENTATION_HORIZONTAL;
-  
+
   gtk_widget_add_events (GTK_WIDGET (icon), GDK_PROPERTY_CHANGE_MASK);
 }
 
@@ -250,7 +250,7 @@ egg_tray_icon_manager_filter (GdkXEvent 
 	  egg_tray_icon_manager_window_destroyed (icon);
 	}
     }
-  
+
   return GDK_FILTER_CONTINUE;
 }
 
@@ -296,7 +296,7 @@ egg_tray_icon_send_manager_message (EggT
 {
   XClientMessageEvent ev;
   Display *display;
-  
+
   ev.type = ClientMessage;
   ev.window = window;
   ev.message_type = icon->system_tray_opcode_atom;
@@ -335,7 +335,7 @@ egg_tray_icon_update_manager_window (Egg
 				     gboolean     dock_if_realized)
 {
   Display *xdisplay;
-  
+
   if (icon->manager_window != None)
     return;
 
@@ -345,7 +345,7 @@ egg_tray_icon_update_manager_window (Egg
     return;
 
   XGrabServer (xdisplay);
-  
+
   icon->manager_window = XGetSelectionOwner (xdisplay,
 					     icon->selection_atom);
 
@@ -355,7 +355,7 @@ egg_tray_icon_update_manager_window (Egg
 
   XUngrabServer (xdisplay);
   XFlush (xdisplay);
-  
+
   if (icon->manager_window != None)
     {
       GdkWindow *gdkwin;
@@ -380,7 +380,7 @@ egg_tray_icon_manager_window_destroyed (
 egg_tray_icon_manager_window_destroyed (EggTrayIcon *icon)
 {
   GdkWindow *gdkwin;
-  
+
   g_return_if_fail (icon->manager_window != None);
 
 #if GTK_CHECK_VERSION(2,1,0)
@@ -458,9 +458,9 @@ egg_tray_icon_realize (GtkWidget *widget
 	      screen);
 
   icon->selection_atom = XInternAtom (xdisplay, buffer, False);
-  
+
   icon->manager_atom = XInternAtom (xdisplay, "MANAGER", False);
-  
+
   icon->system_tray_opcode_atom = XInternAtom (xdisplay,
 						   "_NET_SYSTEM_TRAY_OPCODE",
 						   False);
@@ -514,11 +514,11 @@ egg_tray_icon_send_message (EggTrayIcon 
 			    gint         len)
 {
   guint stamp;
-  
+
   g_return_val_if_fail (EGG_IS_TRAY_ICON (icon), 0);
   g_return_val_if_fail (timeout >= 0, 0);
   g_return_val_if_fail (message != NULL, 0);
-		     
+
   if (icon->manager_window == None)
     return 0;
 
@@ -526,7 +526,7 @@ egg_tray_icon_send_message (EggTrayIcon 
     len = strlen (message);
 
   stamp = icon->stamp++;
-  
+
   /* Get ready to send the message */
   egg_tray_icon_send_manager_message (icon, SYSTEM_TRAY_BEGIN_MESSAGE,
 				      (Window)gtk_plug_get_id (GTK_PLUG (icon)),
@@ -576,7 +576,7 @@ egg_tray_icon_cancel_message (EggTrayIco
 {
   g_return_if_fail (EGG_IS_TRAY_ICON (icon));
   g_return_if_fail (id > 0);
-  
+
   egg_tray_icon_send_manager_message (icon, SYSTEM_TRAY_CANCEL_MESSAGE,
 				      (Window)gtk_plug_get_id (GTK_PLUG (icon)),
 				      id, 0, 0);
============================================================
--- pidgin/eggtrayicon.h	342f8d4fd972fa3ba945526b10a6c77bb81f6b17
+++ pidgin/eggtrayicon.h	e7bdda22c1f97fd9119983afc6526c63312970f0
@@ -33,7 +33,7 @@ G_BEGIN_DECLS
 #define EGG_IS_TRAY_ICON(obj)		(G_TYPE_CHECK_INSTANCE_TYPE ((obj), EGG_TYPE_TRAY_ICON))
 #define EGG_IS_TRAY_ICON_CLASS(klass)	(G_TYPE_CHECK_CLASS_TYPE ((klass), EGG_TYPE_TRAY_ICON))
 #define EGG_TRAY_ICON_GET_CLASS(obj)	(G_TYPE_INSTANCE_GET_CLASS ((obj), EGG_TYPE_TRAY_ICON, EggTrayIconClass))
-	
+
 typedef struct _EggTrayIcon	  EggTrayIcon;
 typedef struct _EggTrayIconClass  EggTrayIconClass;
 
@@ -42,7 +42,7 @@ struct _EggTrayIcon
   GtkPlug parent_instance;
 
   guint stamp;
-  
+
   Atom selection_atom;
   Atom manager_atom;
   Atom system_tray_opcode_atom;
@@ -74,7 +74,7 @@ GtkOrientation egg_tray_icon_get_orienta
 					   guint        id);
 
 GtkOrientation egg_tray_icon_get_orientation (EggTrayIcon *icon);
-					    
+
 G_END_DECLS
 
 #endif /* __EGG_TRAY_ICON_H__ */
============================================================
--- pidgin/getopt.c	152f19b4d715cdda7842748316f574e11faf46f3
+++ pidgin/getopt.c	4aabbc0a992aeb9b8b4c3655cb3431c8eacf2053
@@ -178,7 +178,7 @@ static enum
 {
   REQUIRE_ORDER, PERMUTE, RETURN_IN_ORDER
 } ordering;
-
+
 #ifdef	__GNU_LIBRARY__
 /* We want to avoid inclusion of string.h with non-GNU libraries
    because there are many ways it can cause trouble.
@@ -219,7 +219,7 @@ my_bcopy (from, to, size)
     to[i] = from[i];
 }
 #endif				/* GNU C library.  */
-
+
 /* Handle permutation of arguments.  */
 
 /* Describe the part of ARGV that contains non-options that have
@@ -259,7 +259,7 @@ exchange (argv)
   first_nonopt += (optind - last_nonopt);
   last_nonopt = optind;
 }
-
+
 /* Scan elements of ARGV (whose length is ARGC) for option characters
    given in OPTSTRING.
 
@@ -663,7 +663,7 @@ getopt (argc, argv, optstring)
 }
 
 #endif	/* _LIBC or not __GNU_LIBRARY__.  */
-
+
 #ifdef TEST
 
 /* Compile with -DTEST to make an executable for use in testing
============================================================
--- pidgin/getopt1.c	246f4d9044276ff210d66ffa14908cd102825aa5
+++ pidgin/getopt1.c	f3bd40699586f986b316a8afdee9aae3430f38ff
@@ -81,7 +81,7 @@ getopt_long_only (argc, argv, options, l
 
 
 #endif	/* _LIBC or not __GNU_LIBRARY__.  */
-
+
 #ifdef TEST
 
 #include <stdio.h>
============================================================
--- pidgin/gtkaccount.c	0a8eb5ce93c7bb6b834c6531fa7653ae8d035516
+++ pidgin/gtkaccount.c	09fcf60bd2b35cbe5e4b459e9e13dc06511ad4c6
@@ -301,7 +301,7 @@ screenname_nofocus_cb(GtkWidget *widget,
 		label = g_hash_table_lookup(table, "login_label");
 
 		if (*gtk_entry_get_text(GTK_ENTRY(widget)) == '\0') {
-			/* We have to avoid hitting the screenname_changed_cb function 
+			/* We have to avoid hitting the screenname_changed_cb function
 			 * because it enables buttons we don't want enabled yet ;)
 			 */
 			g_signal_handlers_block_by_func(widget, G_CALLBACK(screenname_changed_cb), dialog);
============================================================
--- pidgin/gtkblist.c	485a006d65a1c6fb6a8f0ed2cbab3fe87469bf31
+++ pidgin/gtkblist.c	5632acda972723de65ce3569e8faa8fb57f13516
@@ -1490,7 +1490,7 @@ pidgin_blist_make_buddy_menu(GtkWidget *
 	pidgin_new_item_from_stock(menu, _("Add Buddy _Pounce..."), NULL,
 			G_CALLBACK(gtk_blist_menu_bp_cb), buddy, 0, 0, NULL);
 
-	if (node->parent && node->parent->child->next && 
+	if (node->parent && node->parent->child->next &&
 	      !sub && !contact_expanded) {
 		pidgin_new_item_from_stock(menu, _("View _Log"), NULL,
 				G_CALLBACK(gtk_blist_menu_showlog_cb),
@@ -1512,7 +1512,7 @@ pidgin_blist_make_buddy_menu(GtkWidget *
 	if (!contact_expanded && contact != NULL)
 		pidgin_append_blist_node_move_to_menu(menu, (PurpleBlistNode *)contact);
 
-	if (node->parent && node->parent->child->next && 
+	if (node->parent && node->parent->child->next &&
               !sub && !contact_expanded) {
 		pidgin_separator(menu);
 		pidgin_append_blist_node_privacy_menu(menu, node);
@@ -1830,7 +1830,7 @@ pidgin_blist_show_context_menu(PurpleBli
 	return handled;
 }
 
-static gboolean 
+static gboolean
 gtk_blist_button_press_cb(GtkWidget *tv, GdkEventButton *event, gpointer user_data)
 {
 	GtkTreePath *path;
@@ -2759,7 +2759,7 @@ static GdkPixbuf *pidgin_blist_get_buddy
  *
  *
  */
-#define STATUS_SIZE 16 
+#define STATUS_SIZE 16
 #define TOOLTIP_BORDER 12
 #define SMALL_SPACE 6
 #define LARGE_SPACE 12
@@ -3021,18 +3021,18 @@ static void
 }
 
 static void
-pidgin_blist_align_tooltip(struct tooltip_data *td, GtkWidget *widget) 
-{ 
-	GtkTextDirection dir = gtk_widget_get_direction(widget); 
+pidgin_blist_align_tooltip(struct tooltip_data *td, GtkWidget *widget)
+{
+	GtkTextDirection dir = gtk_widget_get_direction(widget);
 
-	if (dir == GTK_TEXT_DIR_RTL) 
+	if (dir == GTK_TEXT_DIR_RTL)
 	{
 		char* layout_name = purple_markup_strip_html(pango_layout_get_text(td->name_layout));
 		PangoDirection dir = pango_find_base_dir(layout_name, -1);
 		if (dir == PANGO_DIRECTION_RTL || dir == PANGO_DIRECTION_NEUTRAL)
-			pango_layout_set_alignment(td->name_layout, PANGO_ALIGN_RIGHT); 
+			pango_layout_set_alignment(td->name_layout, PANGO_ALIGN_RIGHT);
 		g_free(layout_name);
-		pango_layout_set_alignment(td->layout, PANGO_ALIGN_RIGHT); 
+		pango_layout_set_alignment(td->layout, PANGO_ALIGN_RIGHT);
 	}
 }
 
@@ -3121,7 +3121,7 @@ static gboolean pidgin_blist_expand_time
 	GValue val;
 	struct _pidgin_blist_node *gtknode;
 
-	if (!gtk_tree_view_get_path_at_pos(GTK_TREE_VIEW(tv), gtkblist->tip_rect.x, gtkblist->tip_rect.y + (gtkblist->tip_rect.height/2), 
+	if (!gtk_tree_view_get_path_at_pos(GTK_TREE_VIEW(tv), gtkblist->tip_rect.x, gtkblist->tip_rect.y + (gtkblist->tip_rect.height/2),
 		&path, NULL, NULL, NULL))
 		return FALSE;
 	gtk_tree_model_get_iter(GTK_TREE_MODEL(gtkblist->treemodel), &iter, path);
@@ -3207,7 +3207,7 @@ static gboolean pidgin_blist_drag_motion
 	if (y < rect.y + (rect.height / 3) ||
 	    y > rect.y + (2 * (rect.height /3)))
 		return FALSE;
-	
+
 	rect.height = rect.height / 3;
 	rect.y += rect.height;
 
@@ -3892,7 +3892,7 @@ pidgin_blist_get_name_markup(PurpleBuddy
 		name = contact->alias;
 	else
 		name = purple_buddy_get_alias(b);
-	
+
 	nametext = g_markup_escape_text(name, strlen(name));
 
 	presence = purple_buddy_get_presence(b);
@@ -3902,14 +3902,14 @@ pidgin_blist_get_name_markup(PurpleBuddy
 
 		/* Status Info */
 		prpl = purple_find_prpl(purple_account_get_protocol_id(b->account));
-	
+
 		if (prpl != NULL)
 			prpl_info = PURPLE_PLUGIN_PROTOCOL_INFO(prpl);
-	
+
 		if (prpl_info && prpl_info->status_text && b->account->gc) {
 			char *tmp = prpl_info->status_text(b);
 			const char *end;
-	
+
 			if(tmp && !g_utf8_validate(tmp, -1, &end)) {
 				char *new = g_strndup(tmp,
 						g_utf8_pointer_to_offset(tmp, end));
@@ -3925,7 +3925,7 @@ pidgin_blist_get_name_markup(PurpleBuddy
 				gboolean inside = FALSE;
 				g_strdelimit(tmp, "\n", ' ');
 				purple_str_strip_char(tmp, '\r');
-	
+
 				while(*c && vis < 20) {
 					if(*c == '&')
 						inside = TRUE;
@@ -3935,31 +3935,31 @@ pidgin_blist_get_name_markup(PurpleBuddy
 						vis++;
 					c = g_utf8_next_char(c); /* this is fun */
 				}
-	
+
 				length = c - tmp;
 
 				if(vis == 20)
 					g_snprintf(buf, sizeof(buf), "%%.%ds...", length);
 				else
 					g_snprintf(buf, sizeof(buf), "%%s ");
-	
+
 				statustext = g_strdup_printf(buf, tmp);purple_presence_is_idle(presence)
-	
+
 				g_free(tmp);
 			}
-#else	
+#else
 			if(tmp) {
 				g_strdelimit(tmp, "\n", ' ');
 				purple_str_strip_char(tmp, '\r');
 			}
 			statustext = tmp;
-#endif	
+#endif
 		}
-	
+
 		if(!purple_presence_is_online(presence) && !statustext)
 				statustext = g_strdup(_("Offline"));
-		
-		/* Idle Text */ 
+
+		/* Idle Text */
 		if (purple_presence_is_idle(presence) && purple_prefs_get_bool(PIDGIN_PREFS_ROOT "/blist/show_idle_time")) {
 			time_t idle_secs = purple_presence_get_idle_time(presence);
 
@@ -4036,14 +4036,14 @@ pidgin_blist_get_name_markup(PurpleBuddy
 	if (aliased && biglist && (statustext || idletime)) {
 		/* using <span size='smaller'> breaks the status, so it must be seperated into <small><span>*/
 		text = g_strdup_printf("<span font_desc='%s' foreground='%s'>%s</span>\n"
-				 	"<small><span font_desc='%s' foreground='%s'>%s%s%s</span></small>", 
-					name_font, name_color, nametext, status_font, status_color, 
+				 	"<small><span font_desc='%s' foreground='%s'>%s%s%s</span></small>",
+					name_font, name_color, nametext, status_font, status_color,
 					idletime != NULL ? idletime : "",
 				        (idletime != NULL && statustext != NULL) ? " - " : "",
-				        statustext != NULL ? statustext : ""); 
+				        statustext != NULL ? statustext : "");
 
 	} else
-		text = g_strdup_printf("<span font_desc='%s' color='%s'>%s</span>", name_font, name_color, nametext); 
+		text = g_strdup_printf("<span font_desc='%s' color='%s'>%s</span>", name_font, name_color, nametext);
 
 	g_free(nametext);
 	g_free(statustext);
@@ -4097,7 +4097,7 @@ static gboolean pidgin_blist_refresh_tim
 	PurpleBlistNode *gnode, *cnode;
 
 	if (gtk_blist_visibility == GDK_VISIBILITY_FULLY_OBSCURED
-			|| !GTK_WIDGET_VISIBLE(gtkblist->window)) 
+			|| !GTK_WIDGET_VISIBLE(gtkblist->window))
 		return TRUE;
 
 	for(gnode = list->root; gnode; gnode = gnode->next) {
@@ -5307,12 +5307,12 @@ pidgin_blist_build_layout(PurpleBuddyLis
 	PidginBlistTheme *theme;
 	GtkCellRenderer *rend;
 	gint i, status_icon = 0, text = 1, emblem = 2, protocol_icon = 3, buddy_icon = 4;
-	
 
+
 	column = gtkblist->text_column;
 
 	if ((theme = pidgin_blist_get_theme()) != NULL && (layout = pidgin_blist_theme_get_layout(theme)) != NULL) {
-		status_icon = layout->status_icon ;				
+		status_icon = layout->status_icon ;
 		text = layout->text;
 		emblem = layout->emblem;
 		protocol_icon = layout->protocol_icon;
@@ -5342,12 +5342,12 @@ pidgin_blist_build_layout(PurpleBuddyLis
 #if GTK_CHECK_VERSION(2,6,0)
 					    "sensitive", CONTACT_EXPANDER_COLUMN,
 					    "cell-background-gdk", BGCOLOR_COLUMN,
-#endif  
+#endif
 					    NULL);
 
 	for (i = 0; i < 5; i++) {
 
-		if (status_icon == i) {		
+		if (status_icon == i) {
 			/* status icons */
 			rend = gtk_cell_renderer_pixbuf_new();
 			gtk_tree_view_column_pack_start(column, rend, FALSE);
@@ -5356,7 +5356,7 @@ pidgin_blist_build_layout(PurpleBuddyLis
 							    "visible", STATUS_ICON_VISIBLE_COLUMN,
 #if GTK_CHECK_VERSION(2,6,0)
 							    "cell-background-gdk", BGCOLOR_COLUMN,
-#endif	
+#endif
 							    NULL);
 			g_object_set(rend, "xalign", 0.0, "xpad", 6, "ypad", 0, NULL);
 
@@ -6041,7 +6041,7 @@ static void pidgin_blist_update_group(Pu
 
 	if (editing_blist)
 		return;
-	
+
 	if (PURPLE_BLIST_NODE_IS_GROUP(node))
 		gnode = node;
 	else if (PURPLE_BLIST_NODE_IS_BUDDY(node))
@@ -6154,7 +6154,7 @@ static char *pidgin_get_group_title(Purp
 	else
 		pair = pidgin_blist_theme_get_collapsed_text_info(theme);
 
-	
+
 	text_color = (selected || pair == NULL || pair->color == NULL) ? "black" : pair->color;
 	text_font = (pair == NULL || pair->font == NULL) ? "" : pair->font;
 
@@ -6176,7 +6176,7 @@ static void buddy_node(PurpleBuddy *budd
 	gboolean expanded = ((struct _pidgin_blist_node *)(node->parent->ui_data))->contact_expanded;
 	gboolean selected = (gtkblist->selected_node == node);
 	gboolean biglist = purple_prefs_get_bool(PIDGIN_PREFS_ROOT "/blist/show_buddy_icons");
-	PidginBlistTheme *theme;	
+	PidginBlistTheme *theme;
 
 	if (editing_blist)
 		return;
@@ -6223,7 +6223,7 @@ static void buddy_node(PurpleBuddy *budd
 			else
 				textcolor = "black";
 
-			idle = g_strdup_printf("<span color='%s' font_desc='%s'>%d:%02d</span>", textcolor, 
+			idle = g_strdup_printf("<span color='%s' font_desc='%s'>%d:%02d</span>", textcolor,
 					      (pair == NULL || pair->font == NULL) ? "" : pair->font, ihrs, imin);
 		}
 	}
@@ -6330,7 +6330,7 @@ static void pidgin_blist_update_contact(
 
 			status = pidgin_blist_get_status_icon(cnode,
 					 biglist? PIDGIN_STATUS_ICON_LARGE : PIDGIN_STATUS_ICON_SMALL);
-			
+
 			gtk_tree_store_set(gtkblist->treemodel, &iter,
 					   STATUS_ICON_COLUMN, status,
 					   STATUS_ICON_VISIBLE_COLUMN, TRUE,
@@ -6438,17 +6438,17 @@ static void pidgin_blist_update_chat(Pur
 		else
 			avatar = NULL;
 
-		mark = g_markup_escape_text(purple_chat_get_name(chat), -1);	
-	
+		mark = g_markup_escape_text(purple_chat_get_name(chat), -1);
+
 		theme = pidgin_blist_get_theme();
 
-		if (theme == NULL) 
+		if (theme == NULL)
 			pair = NULL;
 		else if (nick_said)
 			pair = pidgin_blist_theme_get_unread_message_nick_said_text_info(theme);
-		else if (hidden) 
+		else if (hidden)
 			pair = pidgin_blist_theme_get_unread_message_text_info(theme);
-		else pair = pidgin_blist_theme_get_online_text_info(theme); 
+		else pair = pidgin_blist_theme_get_online_text_info(theme);
 
 
 		font = (pair == NULL || pair->font == NULL) ? "" : pair->font;
@@ -6458,14 +6458,14 @@ static void pidgin_blist_update_chat(Pur
 		else
 			color = pair->color;
 
-		tmp = g_strdup_printf("<span font_desc='%s' color='%s' weight='%s'>%s</span>", 
+		tmp = g_strdup_printf("<span font_desc='%s' color='%s' weight='%s'>%s</span>",
 				      font, color, hidden ? "bold" : "normal", mark);
 
 		g_free(mark);
 		mark = tmp;
 
 		prpl_icon = pidgin_create_prpl_icon(chat->account, PIDGIN_PRPL_ICON_SMALL);
-		
+
 		if (theme != NULL)
 			bgcolor = pidgin_blist_theme_get_contact_color(theme);
 
@@ -7150,7 +7150,7 @@ pidgin_blist_request_add_chat(PurpleAcco
 
 	data->group_combo = pidgin_text_combo_box_entry_new(group ? group->name : NULL, groups_tree());
 	pidgin_add_widget_to_vbox(GTK_BOX(vbox), _("_Group:"), data->sg, data->group_combo, TRUE, NULL);
-	
+
 	data->autojoin = gtk_check_button_new_with_mnemonic(_("Auto_join when account becomes online."));
 	data->persistent = gtk_check_button_new_with_mnemonic(_("_Remain in chat after window is closed."));
 	gtk_box_pack_start(GTK_BOX(vbox), data->autojoin, FALSE, FALSE, 0);
@@ -7354,14 +7354,14 @@ static void buddy_signonoff_cb(PurpleBud
 			(GSourceFunc)buddy_signonoff_timeout_cb, buddy);
 }
 
-void 
+void
 pidgin_blist_set_theme(PidginBlistTheme *theme)
 {
 	PidginBuddyListPrivate *priv = PIDGIN_BUDDY_LIST_GET_PRIVATE(gtkblist);
 	PurpleBuddyList *list = purple_get_blist();
 
 	if (theme != NULL)
-		purple_prefs_set_string(PIDGIN_PREFS_ROOT "/blist/theme", 
+		purple_prefs_set_string(PIDGIN_PREFS_ROOT "/blist/theme",
 				purple_theme_get_name(PURPLE_THEME(theme)));
 	else
 		purple_prefs_set_string(PIDGIN_PREFS_ROOT "/blist/theme", "");
@@ -7377,8 +7377,8 @@ pidgin_blist_get_theme()
 PidginBlistTheme *
 pidgin_blist_get_theme()
 {
-	PidginBuddyListPrivate *priv = PIDGIN_BUDDY_LIST_GET_PRIVATE(gtkblist);	
-	
+	PidginBuddyListPrivate *priv = PIDGIN_BUDDY_LIST_GET_PRIVATE(gtkblist);
+
 	return priv->current_theme;
 }
 
============================================================
--- pidgin/gtkcellrendererexpander.c	35188ce530c0a338f31f0398b2b4b31e74b8b1a8
+++ pidgin/gtkcellrendererexpander.c	bcefeb1b9c816c0c8034a0da3b40263a0a80b6b9
@@ -18,14 +18,14 @@
  * but WITHOUT ANY WARRANTY; without even the implied warranty of
  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
  * GNU General Public License for more details.
- * 
+ *
  * You should have received a copy of the GNU General Public License
  * along with this program; if not, write to the Free Software
  * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02111-1301  USA
  *
  */
 
-/* This is taken largely from GtkCellRenderer[Text|Pixbuf|Toggle] by 
+/* This is taken largely from GtkCellRenderer[Text|Pixbuf|Toggle] by
  * Jonathon Blandford <jrb at redhat.com> for RedHat, Inc.
  */
 
@@ -74,14 +74,14 @@ enum {
 	PROP_0,
 	PROP_IS_EXPANDER
 };
-     
+
 static gpointer parent_class;
 /* static guint expander_cell_renderer_signals [LAST_SIGNAL]; */
 
 GType  pidgin_cell_renderer_expander_get_type (void)
 {
 	static GType cell_expander_type = 0;
-	
+
 	if (!cell_expander_type)
 		{
 			static const GTypeInfo cell_expander_info =
@@ -97,13 +97,13 @@ GType  pidgin_cell_renderer_expander_get
 					(GInstanceInitFunc) pidgin_cell_renderer_expander_init,
 					NULL		/* value_table */
 				};
-			
+
 			cell_expander_type =
 				g_type_register_static (GTK_TYPE_CELL_RENDERER,
 										"PidginCellRendererExpander",
 										&cell_expander_info, 0);
 		}
-	
+
 	return cell_expander_type;
 }
 
@@ -118,17 +118,17 @@ static void pidgin_cell_renderer_expande
 {
 	GObjectClass *object_class = G_OBJECT_CLASS(class);
 	GtkCellRendererClass *cell_class = GTK_CELL_RENDERER_CLASS(class);
-	
+
 	parent_class = g_type_class_peek_parent (class);
 	object_class->finalize = pidgin_cell_renderer_expander_finalize;
 
 	object_class->get_property = pidgin_cell_renderer_expander_get_property;
 	object_class->set_property = pidgin_cell_renderer_expander_set_property;
-	
+
 	cell_class->get_size = pidgin_cell_renderer_expander_get_size;
 	cell_class->render   = pidgin_cell_renderer_expander_render;
 	cell_class->activate = pidgin_cell_renderer_expander_activate;
-	
+
 	g_object_class_install_property (object_class,
 					 PROP_IS_EXPANDER,
 					 g_param_spec_boolean ("expander-visible",
@@ -162,7 +162,7 @@ static void pidgin_cell_renderer_expande
 		default:
 			G_OBJECT_WARN_INVALID_PROPERTY_ID (object, param_id, psec);
 			break;
-			
+
 		}
 }
 
@@ -199,19 +199,19 @@ static void pidgin_cell_renderer_expande
 {
 	gint calc_width;
 	gint calc_height;
-	gint expander_size; 
-	
+	gint expander_size;
+
 	gtk_widget_style_get(widget, "expander-size", &expander_size, NULL);
-	
+
 	calc_width = (gint) cell->xpad * 2 + expander_size;
 	calc_height = (gint) cell->ypad * 2 + expander_size;
-	
+
 	if (width)
 		*width = calc_width;
-	
+
 	if (height)
 		*height = calc_height;
-	
+
 	if (cell_area)
 		{
 			if (x_offset)
@@ -246,7 +246,7 @@ static void pidgin_cell_renderer_expande
 
 	width = cell_area->width;
 	height = cell_area->height;
-	
+
 #if GTK_CHECK_VERSION(2,6,0)
 	if (!cell->sensitive)
 		state = GTK_STATE_INSENSITIVE;
@@ -274,7 +274,7 @@ static void pidgin_cell_renderer_expande
 	/* only draw the line if the color isn't set - this prevents a bug where the hline appears only under the expander */
 	g_object_get(cellexpander, "cell-background-set", &set, NULL);
 	if (cell->is_expanded && !set)
-		gtk_paint_hline (widget->style, window, state, NULL, widget, NULL, 0, 
+		gtk_paint_hline (widget->style, window, state, NULL, widget, NULL, 0,
 				 widget->allocation.width, cell_area->y + cell_area->height);
 }
 
============================================================
--- pidgin/gtkcellrendererexpander.h	4c6e9f52442130eb02506513550b57c88f3da08c
+++ pidgin/gtkcellrendererexpander.h	ad30269a097fcfaa9fc43f3e86882607e5d44616
@@ -12,7 +12,7 @@
  * but WITHOUT ANY WARRANTY; without even the implied warranty of
  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
  * GNU General Public License for more details.
- * 
+ *
  * You should have received a copy of the GNU General Public License
  * along with this program; if not, write to the Free Software
  * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02111-1301  USA
============================================================
--- pidgin/gtkcellrendererprogress.c	30c75dfc4e0cdcb785a31560de9b62a3455d493c
+++ pidgin/gtkcellrendererprogress.c	ee2412a870d0a06856e063844617684bce842371
@@ -18,14 +18,14 @@
  * but WITHOUT ANY WARRANTY; without even the implied warranty of
  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
  * GNU General Public License for more details.
- * 
+ *
  * You should have received a copy of the GNU General Public License
  * along with this program; if not, write to the Free Software
  * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02111-1301  USA
  *
  */
 
-/* This is taken largely from GtkCellRenderer[Text|Pixbuf|Toggle] by 
+/* This is taken largely from GtkCellRenderer[Text|Pixbuf|Toggle] by
  * Jonathon Blandford <jrb at redhat.com> for RedHat, Inc.
  */
 
@@ -76,14 +76,14 @@ enum {
 	PROP_TEXT,
 	PROP_SHOW_TEXT
 };
-     
+
 static gpointer parent_class;
 /* static guint progress_cell_renderer_signals [LAST_SIGNAL]; */
 
 GType  pidgin_cell_renderer_progress_get_type (void)
 {
 	static GType cell_progress_type = 0;
-	
+
 	if (!cell_progress_type)
 		{
 			static const GTypeInfo cell_progress_info =
@@ -99,13 +99,13 @@ GType  pidgin_cell_renderer_progress_get
 					(GInstanceInitFunc) pidgin_cell_renderer_progress_init,
 					NULL		/* value_table */
 				};
-			
+
 			cell_progress_type =
 				g_type_register_static (GTK_TYPE_CELL_RENDERER,
 										"PidginCellRendererProgress",
 										&cell_progress_info, 0);
 		}
-	
+
 	return cell_progress_type;
 }
 
@@ -120,16 +120,16 @@ static void pidgin_cell_renderer_progres
 {
 	GObjectClass *object_class = G_OBJECT_CLASS(class);
 	GtkCellRendererClass *cell_class = GTK_CELL_RENDERER_CLASS(class);
-	
+
 	parent_class = g_type_class_peek_parent (class);
 	object_class->finalize = pidgin_cell_renderer_progress_finalize;
 
 	object_class->get_property = pidgin_cell_renderer_progress_get_property;
 	object_class->set_property = pidgin_cell_renderer_progress_set_property;
-	
+
 	cell_class->get_size = pidgin_cell_renderer_progress_get_size;
 	cell_class->render   = pidgin_cell_renderer_progress_render;
-	
+
 	g_object_class_install_property (object_class,
 					 PROP_PERCENTAGE,
 					 g_param_spec_double ("percentage",
@@ -228,16 +228,16 @@ static void pidgin_cell_renderer_progres
 {
 	gint calc_width;
 	gint calc_height;
-	
+
 	calc_width = (gint) cell->xpad * 2 + 50;
 	calc_height = (gint) cell->ypad * 2 + 12;
-	
+
 	if (width)
 		*width = calc_width;
-	
+
 	if (height)
 		*height = calc_height;
-	
+
 	if (cell_area)
 		{
 			if (x_offset)
@@ -263,13 +263,13 @@ static void pidgin_cell_renderer_progres
 					       guint            flags)
 {
 	PidginCellRendererProgress *cellprogress = (PidginCellRendererProgress *) cell;
-	
+
 	gint width, height;
 	GtkStateType state;
 
 	width = cell_area->width;
 	height = cell_area->height;
-	
+
 	if (GTK_WIDGET_HAS_FOCUS (widget))
 		state = GTK_STATE_ACTIVE;
 	else
@@ -280,7 +280,7 @@ static void pidgin_cell_renderer_progres
 
 	gtk_paint_box (widget->style,
 		       window,
-		       GTK_STATE_NORMAL, GTK_SHADOW_IN, 
+		       GTK_STATE_NORMAL, GTK_SHADOW_IN,
 		       NULL, widget, "trough",
 		       cell_area->x + cell->xpad,
 		       cell_area->y + cell->ypad,
============================================================
--- pidgin/gtkcellrendererprogress.h	b10ebde2c26ab00487a3d0155c49aefdbf08b9d7
+++ pidgin/gtkcellrendererprogress.h	af7a12507fa81c9a3985fb214a5de851d44cd015
@@ -12,7 +12,7 @@
  * but WITHOUT ANY WARRANTY; without even the implied warranty of
  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
  * GNU General Public License for more details.
- * 
+ *
  * You should have received a copy of the GNU General Public License
  * along with this program; if not, write to the Free Software
  * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02111-1301  USA
============================================================
--- pidgin/gtkcellview.c	4441e9234f7ed0d8e88c52fe5c33c11640b548a8
+++ pidgin/gtkcellview.c	a54339dc2a5787a2915cecad5ed025571ffe41e0
@@ -463,14 +463,14 @@ gtk_cell_view_expose (GtkWidget      *wi
   area = widget->allocation;
 
   /* we draw on our very own window, initialize x and y to zero */
-  area.x = widget->allocation.x + (rtl ? widget->allocation.width : 0); 
+  area.x = widget->allocation.x + (rtl ? widget->allocation.width : 0);
   area.y = widget->allocation.y;
 
   if (GTK_WIDGET_STATE (widget) == GTK_STATE_PRELIGHT)
     state = GTK_CELL_RENDERER_PRELIT;
   else
     state = 0;
-      
+
   /* PACK_START */
   for (i = cellview->priv->cell_list; i; i = i->next)
     {
@@ -483,7 +483,7 @@ gtk_cell_view_expose (GtkWidget      *wi
         continue;
 
       area.width = info->real_width;
-      if (rtl)                                             
+      if (rtl)
          area.x -= area.width;
 
       gtk_cell_renderer_render (info->cell,
@@ -492,11 +492,11 @@ gtk_cell_view_expose (GtkWidget      *wi
                                 /* FIXME! */
                                 &area, &area, &event->area, state);
 
-      if (!rtl)                                           
+      if (!rtl)
          area.x += info->real_width;
     }
 
-   area.x = rtl ? widget->allocation.x : (widget->allocation.x + widget->allocation.width);  
+   area.x = rtl ? widget->allocation.x : (widget->allocation.x + widget->allocation.width);
 
   /* PACK_END */
   for (i = cellview->priv->cell_list; i; i = i->next)
@@ -511,7 +511,7 @@ gtk_cell_view_expose (GtkWidget      *wi
 
       area.width = info->real_width;
       if (!rtl)
-         area.x -= area.width;   
+         area.x -= area.width;
 
       gtk_cell_renderer_render (info->cell,
                                 widget->window,
@@ -550,7 +550,7 @@ gtk_cell_view_set_cell_data (GtkCellView
   GtkTreePath *path;
 
   g_return_if_fail (cellview->priv->displayed_row != NULL);
-  
+
   path = gtk_tree_row_reference_get_path (cellview->priv->displayed_row);
   gtk_tree_model_get_iter (cellview->priv->model, &iter, path);
   gtk_tree_path_free (path);
@@ -666,7 +666,7 @@ gtk_cell_view_cell_layout_clear (GtkCell
       gtk_cell_view_cell_layout_clear_attributes (layout, info->cell);
       g_object_unref (G_OBJECT (info->cell));
       g_free (info);
-      cellview->priv->cell_list = g_list_delete_link (cellview->priv->cell_list, 
+      cellview->priv->cell_list = g_list_delete_link (cellview->priv->cell_list,
 						      cellview->priv->cell_list);
     }
 }
@@ -719,7 +719,7 @@ gtk_cell_view_cell_layout_clear_attribut
 	  g_free (list->data);
 	  list = list->next->next;
 	}
-      
+
       g_slist_free (info->attributes);
       info->attributes = NULL;
     }
@@ -905,7 +905,7 @@ gtk_cell_view_set_model (GtkCellView  *c
  * gtk_cell_view_set_displayed_row:
  * @cell_view: a #GtkCellView
  * @path: a #GtkTreePath or %NULL to unset.
- * 
+ *
  * Sets the row of the model that is currently displayed
  * by the #GtkCellView. If the path is unset, then the
  * contents of the cellview "stick" at their last value;
============================================================
--- pidgin/gtkconv.c	706da6029aadc2943d3ec78d1ac1fa78bffb5274
+++ pidgin/gtkconv.c	af1332121eefd8c9c4471805ea61db7d71494e7f
@@ -1395,7 +1395,7 @@ menu_logging_cb(gpointer data, guint act
 
 	if (logging == purple_conversation_is_logging(conv))
 		return;
-	
+
 	node = get_conversation_blist_node(conv);
 
 	if (logging)
@@ -1835,7 +1835,7 @@ right_click_chat_cb(GtkWidget *widget, G
 	gtk_tree_selection_select_path(GTK_TREE_SELECTION(
 			gtk_tree_view_get_selection(GTK_TREE_VIEW(gtkchat->list))), path);
 	gtk_tree_view_set_cursor(GTK_TREE_VIEW(gtkchat->list),
-							 path, NULL, FALSE); 
+							 path, NULL, FALSE);
 	gtk_widget_grab_focus(GTK_WIDGET(gtkchat->list));
 
 	gtk_tree_model_get_iter(GTK_TREE_MODEL(model), &iter, path);
@@ -1867,7 +1867,7 @@ activate_list_cb(GtkTreeView *list, GtkT
 	GtkTreeIter iter;
 	GtkTreeModel *model;
 	gchar *who;
-	
+
 	model = gtk_tree_view_get_model(GTK_TREE_VIEW(list));
 
 	gtk_tree_model_get_iter(GTK_TREE_MODEL(model), &iter, path);
@@ -2058,7 +2058,7 @@ entry_key_press_cb(GtkWidget *entry, Gdk
 	gtkconv  = (PidginConversation *)data;
 	conv     = gtkconv->active_conv;
 	win      = gtkconv->win;
-	
+
 	if (conv_keypress_common(gtkconv, event))
 		return TRUE;
 
@@ -2516,7 +2516,7 @@ pidgin_conv_get_icon(PurpleConversation 
 			if (ops && ops->update)
 				ops->update(NULL, (PurpleBlistNode*)b);
 
-			/* XXX Seanegan: We really need a util function to return a pixbuf for a Presence to avoid all this switching */	
+			/* XXX Seanegan: We really need a util function to return a pixbuf for a Presence to avoid all this switching */
 			if (purple_presence_is_status_primitive_active(p, PURPLE_STATUS_AWAY))
 				status = pidgin_create_status_icon(PURPLE_STATUS_AWAY, parent, icon_size);
 			else if (purple_presence_is_status_primitive_active(p, PURPLE_STATUS_EXTENDED_AWAY))
@@ -2542,7 +2542,7 @@ pidgin_conv_get_icon(PurpleConversation 
 			status = gtk_widget_render_icon (parent, PIDGIN_STOCK_STATUS_CHAT,
 					size, "GtkWidget");
 		}
-	}	
+	}
 	return status;
 }
 
@@ -2585,11 +2585,11 @@ update_tab_icon(PurpleConversation *conv
 	gtk_image_set_from_pixbuf(GTK_IMAGE(gtkconv->icon), status);
 	gtk_image_set_from_pixbuf(GTK_IMAGE(gtkconv->menu_icon), status);
 
-	gtk_list_store_set(GTK_LIST_STORE(gtkconv->infopane_model), 
+	gtk_list_store_set(GTK_LIST_STORE(gtkconv->infopane_model),
 			&(gtkconv->infopane_iter),
 			CONV_ICON_COLUMN, infopane_status, -1);
 
-	gtk_list_store_set(GTK_LIST_STORE(gtkconv->infopane_model), 
+	gtk_list_store_set(GTK_LIST_STORE(gtkconv->infopane_model),
 			&(gtkconv->infopane_iter),
 			CONV_EMBLEM_COLUMN, emblem, -1);
 	if (emblem)
@@ -4799,7 +4799,7 @@ setup_common_pane(PidginConversation *gt
 
 	gtkconv->infopane = gtk_cell_view_new();
 	gtkconv->infopane_model = gtk_list_store_new(CONV_NUM_COLUMNS, GDK_TYPE_PIXBUF, G_TYPE_STRING, GDK_TYPE_PIXBUF, GDK_TYPE_PIXBUF);
-	gtk_cell_view_set_model(GTK_CELL_VIEW(gtkconv->infopane), 
+	gtk_cell_view_set_model(GTK_CELL_VIEW(gtkconv->infopane),
 				GTK_TREE_MODEL(gtkconv->infopane_model));
 	g_object_unref(gtkconv->infopane_model);
 	gtk_list_store_append(gtkconv->infopane_model, &(gtkconv->infopane_iter));
@@ -5495,7 +5495,7 @@ static void pidgin_conv_calculate_newday
 	gtkconv->newday = mktime(tm);
 }
 
-/* Detect string direction and encapsulate the string in RLE/LRE/PDF unicode characters 
+/* Detect string direction and encapsulate the string in RLE/LRE/PDF unicode characters
    str - pointer to string (string is re-allocated and the pointer updated) */
 static void
 str_embed_direction_chars(char **str)
@@ -5532,14 +5532,14 @@ str_embed_direction_chars(char **str)
 }
 
 /* Returns true if the given HTML contains RTL text */
-static gboolean 
+static gboolean
 html_is_rtl(const char *html)
 {
 	GData *attributes;
 	const gchar *start, *end;
 	gboolean res = FALSE;
 
-	if (purple_markup_find_tag("span", html, &start, &end, &attributes)) 
+	if (purple_markup_find_tag("span", html, &start, &end, &attributes))
 	{
 		/* tmp is a member of attributes and is free with g_datalist_clear call */
 		const char *tmp = g_datalist_get_data(&attributes, "dir");
@@ -6463,10 +6463,10 @@ gray_stuff_out(PidginConversation *gtkco
 			PurpleBuddy *buddy = purple_find_buddy(conv->account, conv->name);
 			window_icon =
 				gdk_pixbuf_animation_get_static_image(gtkconv->u.im->anim);
-		
+
 			if (buddy &&  !PURPLE_BUDDY_IS_ONLINE(buddy))
 				gdk_pixbuf_saturate_and_pixelate(window_icon, window_icon, 0.0, FALSE);
-			
+
 			g_object_ref(window_icon);
 			l = g_list_append(l, window_icon);
 		} else {
@@ -6659,7 +6659,7 @@ pidgin_conv_update_fields(PurpleConversa
 			pango_attr_list_unref(list);
 		} else
 			gtk_label_set_attributes(GTK_LABEL(gtkconv->tab_label), NULL);
-		
+
 		if (pidgin_conv_window_is_active_conversation(conv))
 			update_typing_icon(gtkconv);
 
@@ -7231,7 +7231,7 @@ show_buddy_icons_pref_cb(const char *nam
 		PurpleConversation *conv = l->data;
 		if (!PIDGIN_CONVERSATION(conv))
 			continue;
-		if (GPOINTER_TO_INT(value)) 
+		if (GPOINTER_TO_INT(value))
 			gtk_widget_show(PIDGIN_CONVERSATION(conv)->infopane_hbox);
 		else
 			gtk_widget_hide(PIDGIN_CONVERSATION(conv)->infopane_hbox);
@@ -7641,7 +7641,7 @@ gboolean pidgin_conv_attach_to_conversat
 	list = purple_conversation_get_message_history(conv);
 	if (list) {
 		switch (purple_conversation_get_type(conv)) {
-			case PURPLE_CONV_TYPE_IM: 
+			case PURPLE_CONV_TYPE_IM:
 			{
 				GList *convs;
 				list = g_list_copy(list);
@@ -8407,7 +8407,7 @@ infopane_press_cb(GtkWidget *widget, Gdk
 								    G_CALLBACK(notebook_leave_cb), gtkconv->win);
 		return FALSE;
 	}
-	
+
 	if (e->button == 3) {
 		/* Right click was pressed. Popup the context menu. */
 		GtkWidget *menu = gtk_menu_new(), *sub;
@@ -8433,7 +8433,7 @@ infopane_press_cb(GtkWidget *widget, Gdk
 	}
 	return FALSE;
 }
- 
+
 static gboolean
 notebook_press_cb(GtkWidget *widget, GdkEventButton *e, PidginWindow *win)
 {
@@ -9013,7 +9013,7 @@ static gboolean gtk_conv_configure_cb(Gt
 
 static gboolean gtk_conv_configure_cb(GtkWidget *w, GdkEventConfigure *event, gpointer data) {
 	int x, y;
-	
+
 	if (GTK_WIDGET_VISIBLE(w))
 		gtk_window_get_position(GTK_WINDOW(w), &x, &y);
 	else
@@ -9023,7 +9023,7 @@ static gboolean gtk_conv_configure_cb(Gt
 	* when the window is being maximized */
 	if (gdk_window_get_state(w->window) & GDK_WINDOW_STATE_MAXIMIZED)
 		return FALSE;
-	
+
 	/* don't save off-screen positioning */
 	if (x + event->width < 0 ||
 	    y + event->height < 0 ||
@@ -9039,7 +9039,7 @@ static gboolean gtk_conv_configure_cb(Gt
 
 	/* continue to handle event normally */
 	return FALSE;
-						
+
 }
 
 static void
@@ -9120,8 +9120,8 @@ pidgin_conv_window_new()
 	/* Intercept keystrokes from the menu items */
 	g_signal_connect(G_OBJECT(win->window), "key_press_event",
 					 G_CALLBACK(window_keypress_cb), win);
-	
 
+
 	/* Create the notebook. */
 	win->notebook = gtk_notebook_new();
 
@@ -9282,7 +9282,7 @@ pidgin_conv_window_add_gtkconv(PidginWin
 	win->gtkconvs = g_list_append(win->gtkconvs, gtkconv);
 	gtkconv->win = win;
 
-	if (win->gtkconvs && win->gtkconvs->next && win->gtkconvs->next->next == NULL) 
+	if (win->gtkconvs && win->gtkconvs->next && win->gtkconvs->next->next == NULL)
 		pidgin_conv_tab_pack(win, ((PidginConversation*)win->gtkconvs->data));
 
 
@@ -9441,11 +9441,11 @@ pidgin_conv_tab_pack(PidginWindow *win, 
 		gtk_notebook_set_tab_label(GTK_NOTEBOOK(win->notebook), gtkconv->tab_cont, ebox);
 	}
 
-	gtk_notebook_set_tab_label_packing(GTK_NOTEBOOK(win->notebook), gtkconv->tab_cont, 
-					   !tabs_side && !angle, 
+	gtk_notebook_set_tab_label_packing(GTK_NOTEBOOK(win->notebook), gtkconv->tab_cont,
+					   !tabs_side && !angle,
 					   TRUE, GTK_PACK_START);
 
-	if (pidgin_conv_window_get_gtkconv_count(win) == 1) 
+	if (pidgin_conv_window_get_gtkconv_count(win) == 1)
 		gtk_notebook_set_show_tabs(GTK_NOTEBOOK(win->notebook),
 					   purple_prefs_get_bool(PIDGIN_PREFS_ROOT "/conversations/tabs") &&
                                            (!purple_prefs_get_bool(PIDGIN_PREFS_ROOT "/conversations/im/show_buddy_icons") ||
@@ -9656,7 +9656,7 @@ conv_placement_last_created_win(PidginCo
 	if (win == NULL) {
 		win = pidgin_conv_window_new();
 
-		g_signal_connect(G_OBJECT(win->window), "configure_event", 
+		g_signal_connect(G_OBJECT(win->window), "configure_event",
 				G_CALLBACK(gtk_conv_configure_cb), NULL);
 
 		pidgin_conv_window_add_gtkconv(win, conv);
@@ -9671,7 +9671,7 @@ conv_placement_last_created_win_type_con
 conv_placement_last_created_win_type_configured_cb(GtkWidget *w,
 		GdkEventConfigure *event, PidginConversation *conv)
 {
-	int x, y;	
+	int x, y;
 	PurpleConversationType type = purple_conversation_get_type(conv->active_conv);
 	GList *all;
 
@@ -9684,7 +9684,7 @@ conv_placement_last_created_win_type_con
 	* when the window is being maximized */
 	if (gdk_window_get_state(w->window) & GDK_WINDOW_STATE_MAXIMIZED)
 		return FALSE;
-	
+
 	/* don't save off-screen positioning */
 	if (x + event->width < 0 ||
 	    y + event->height < 0 ||
@@ -9738,11 +9738,11 @@ conv_placement_last_created_win_type(Pid
 				purple_prefs_get_int(PIDGIN_PREFS_ROOT "/conversations/chat/width"),
 				purple_prefs_get_int(PIDGIN_PREFS_ROOT "/conversations/chat/height"));
 		}
-				
+
 		pidgin_conv_window_add_gtkconv(win, conv);
 		pidgin_conv_window_show(win);
 
-		g_signal_connect(G_OBJECT(win->window), "configure_event", 
+		g_signal_connect(G_OBJECT(win->window), "configure_event",
 				G_CALLBACK(conv_placement_last_created_win_type_configured_cb), conv);
 	} else
 		pidgin_conv_window_add_gtkconv(win, conv);
@@ -9756,7 +9756,7 @@ conv_placement_new_window(PidginConversa
 
 	win = pidgin_conv_window_new();
 
-	g_signal_connect(G_OBJECT(win->window), "configure_event", 
+	g_signal_connect(G_OBJECT(win->window), "configure_event",
 			G_CALLBACK(gtk_conv_configure_cb), NULL);
 
 	pidgin_conv_window_add_gtkconv(win, conv);
============================================================
--- pidgin/gtkdebug.c	c1769dea1bb6ec96365db7ec540b8e876fd6b5a8
+++ pidgin/gtkdebug.c	2df81bffb9546e38ab42d114edfbd745b9dfebb6
@@ -769,7 +769,7 @@ debug_window_new(void)
 		win->filter =
 			gtk_toolbar_append_element(GTK_TOOLBAR(toolbar),
 									   GTK_TOOLBAR_CHILD_TOGGLEBUTTON,
-									   NULL, _("Filter"), _("Filter"), 
+									   NULL, _("Filter"), _("Filter"),
 									   NULL, NULL,
 									   G_CALLBACK(regex_filter_toggled_cb),
 									   win);
@@ -821,7 +821,7 @@ debug_window_new(void)
 		                           GTK_TOOLBAR_CHILD_WIDGET, gtk_label_new(_("Level ")),
 		                           NULL, _("Select the debug filter level."),
 		                           NULL, NULL, NULL, NULL);
-		
+
 		win->filterlevel = gtk_combo_box_new_text();
 		gtk_toolbar_append_element(GTK_TOOLBAR(toolbar),
 		                           GTK_TOOLBAR_CHILD_WIDGET, win->filterlevel,
============================================================
--- pidgin/gtkdialogs.c	169e41249fe87e9ac0dc20e349329432866c3bec
+++ pidgin/gtkdialogs.c	a81d3a4d68b537f2fa65a624196970983433a52a
@@ -349,7 +349,7 @@ static void destroy_about(void)
 }
 
 #if 0
-/* This function puts the version number onto the pixmap we use in the 'about' 
+/* This function puts the version number onto the pixmap we use in the 'about'
  * screen in Pidgin. */
 static void
 pidgin_logo_versionize(GdkPixbuf **original, GtkWidget *widget) {
@@ -487,7 +487,7 @@ void pidgin_dialogs_about()
 						   _("Retired Crazy Patch Writers"));
 	add_developers(str, retired_patch_writers);
 	g_string_append(str, "<BR/>");
-			
+
 	/* Current Translators */
 	g_string_append_printf(str, "<FONT SIZE=\"4\">%s:</FONT><BR/>",
 						   _("Current Translators"));
@@ -1116,7 +1116,7 @@ pidgin_dialogs_merge_groups(PurpleGroup 
 	ggp = g_new(struct _PidginGroupMergeObject, 1);
 	ggp->parent = source;
 	ggp->new_name = g_strdup(new_name);
-	
+
 	purple_request_action(source, NULL, _("Merge Groups"), text, 0,
 			NULL, NULL, NULL,
 			ggp, 2,
============================================================
--- pidgin/gtkdnd-hints.c	ee83f663c4e837313644d1e2d11910fc33073e69
+++ pidgin/gtkdnd-hints.c	8e45c61fe0d1753f5bb88ef80806da0e716c85d0
@@ -46,7 +46,7 @@ typedef struct
 /**
  * Info about each hint widget. See DndHintWindowId enum.
  */
-static HintWindowInfo hint_windows[] = { 
+static HintWindowInfo hint_windows[] = {
 	{ NULL, "arrow-up.xpm",   -13/2,     0 },
 	{ NULL, "arrow-down.xpm", -13/2,   -16 },
 	{ NULL, "arrow-left.xpm",     0, -13/2 },
@@ -139,7 +139,7 @@ dnd_hints_hide_all(void)
 		dnd_hints_hide(i);
 }
 
-void 
+void
 dnd_hints_hide(DndHintWindowId i)
 {
 	GtkWidget *w = hint_windows[i].widget;
@@ -148,7 +148,7 @@ dnd_hints_hide(DndHintWindowId i)
 		gtk_widget_hide(w);
 }
 
-void 
+void
 dnd_hints_show(DndHintWindowId id, gint x, gint y)
 {
 	GtkWidget *w;
@@ -165,7 +165,7 @@ dnd_hints_show(DndHintWindowId id, gint 
 	}
 }
 
-void 
+void
 dnd_hints_show_relative(DndHintWindowId id, GtkWidget *widget,
 						DndHintPosition horiz, DndHintPosition vert)
 {
============================================================
--- pidgin/gtkdocklet-x11.c	bd4f08e46e864ad14ffb37d6e09383b507c4136c
+++ pidgin/gtkdocklet-x11.c	71cf10cd25d151fb7c5d87bf3549dd77ec61591b
@@ -5,7 +5,7 @@
  * Copyright (C) 2003 Herman Bloggs <hermanator12002 at yahoo.com>
  * Inspired by a similar plugin by:
  *  John (J5) Palmieri <johnp at martianrock.com>
- * 
+ *
  * This program is free software; you can redistribute it and/or
  * modify it under the terms of the GNU General Public License as
  * published by the Free Software Foundation; either version 2 of the
@@ -15,7 +15,7 @@
  * WITHOUT ANY WARRANTY; without even the implied warranty of
  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
  * General Public License for more details.
- * 
+ *
  * You should have received a copy of the GNU General Public License
  * along with this program; if not, write to the Free Software
  * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
@@ -59,7 +59,7 @@ docklet_x11_embedded_cb(GtkWidget *widge
 docklet_x11_embedded_cb(GtkWidget *widget, void *data)
 {
 	purple_debug(PURPLE_DEBUG_INFO, "docklet", "embedded\n");
-	
+
 	g_source_remove(embed_timeout);
 	embed_timeout = 0;
 	pidgin_docklet_embedded();
@@ -211,9 +211,9 @@ docklet_x11_destroy(void)
 
 	if (embed_timeout)
 		g_source_remove(embed_timeout);
-	
+
 	pidgin_docklet_remove();
-	
+
 	g_signal_handlers_disconnect_by_func(G_OBJECT(docklet), G_CALLBACK(docklet_x11_destroyed_cb), NULL);
 	gtk_widget_destroy(GTK_WIDGET(docklet));
 
@@ -239,7 +239,7 @@ docklet_x11_embed_timeout_cb(gpointer da
 	 */
 	purple_debug_info("docklet", "failed to embed within timeout\n");
 	pidgin_docklet_remove();
-	
+
 	return FALSE;
 }
 
============================================================
--- pidgin/gtkdocklet.h	8dab0d2123705bc96206723eb99ae9919a3700c6
+++ pidgin/gtkdocklet.h	ab60eb18264813e2890efe5deb5819497d35fc57
@@ -1,11 +1,11 @@
-/* 
+/*
  * System tray icon (aka docklet) plugin for Purple
- * 
+ *
  * Copyright (C) 2002-3 Robert McQueen <robot101 at debian.org>
  * Copyright (C) 2003 Herman Bloggs <hermanator12002 at yahoo.com>
  * Inspired by a similar plugin by:
  *  John (J5) Palmieri <johnp at martianrock.com>
- * 
+ *
  * This program is free software; you can redistribute it and/or
  * modify it under the terms of the GNU General Public License as
  * published by the Free Software Foundation; either version 2 of the
@@ -15,7 +15,7 @@
  * WITHOUT ANY WARRANTY; without even the implied warranty of
  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
  * General Public License for more details.
- * 
+ *
  * You should have received a copy of the GNU General Public License
  * along with this program; if not, write to the Free Software
  * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
============================================================
--- pidgin/gtkexpander.c	475459d89f9ae5d46fa82ba98140953372af1bdc
+++ pidgin/gtkexpander.c	77150ee33bf19c05af8f999ce978844e44cf30bc
@@ -63,7 +63,7 @@ struct _GtkExpanderPrivate
 
   guint             expanded : 1;
   guint             use_underline : 1;
-  guint             use_markup : 1; 
+  guint             use_markup : 1;
   guint             button_down : 1;
   guint             prelight : 1;
 };
@@ -129,7 +129,7 @@ gtk_expander_get_type (void)
 gtk_expander_get_type (void)
 {
   static GType expander_type = 0;
-  
+
   if (!expander_type)
     {
       static const GTypeInfo expander_info =
@@ -144,12 +144,12 @@ gtk_expander_get_type (void)
 	0,		/* n_preallocs */
 	(GInstanceInitFunc) gtk_expander_init,
       };
-      
+
       expander_type = g_type_register_static (GTK_TYPE_BIN,
 					      "GtkExpander",
 					      &expander_info, 0);
     }
-  
+
   return expander_type;
 }
 
@@ -314,7 +314,7 @@ gtk_expander_set_property (GObject      
 			   GParamSpec   *pspec)
 {
   GtkExpander *expander = GTK_EXPANDER (object);
-                                                                                                             
+
   switch (prop_id)
     {
     case PROP_EXPANDED:
@@ -382,7 +382,7 @@ gtk_expander_destroy (GtkObject *object)
 gtk_expander_destroy (GtkObject *object)
 {
   GtkExpanderPrivate *priv = GTK_EXPANDER (object)->priv;
-  
+
   if (priv->animation_timeout)
     {
       g_source_remove (priv->animation_timeout);
@@ -407,7 +407,7 @@ gtk_expander_realize (GtkWidget *widget)
   border_width = GTK_CONTAINER (widget)->border_width;
 
   get_expander_bounds (GTK_EXPANDER (widget), &expander_rect);
-  
+
   attributes.window_type = GDK_WINDOW_CHILD;
   attributes.x = widget->allocation.x + border_width;
   attributes.y = expander_rect.y;
@@ -831,7 +831,7 @@ gtk_expander_paint_focus (GtkExpander  *
 			NULL);
 
   ltr = gtk_widget_get_direction (widget) != GTK_TEXT_DIR_RTL;
-  
+
   x = widget->allocation.x + border_width;
   y = widget->allocation.y + border_width;
 
@@ -853,7 +853,7 @@ gtk_expander_paint_focus (GtkExpander  *
       width += expander_size + 2 * expander_spacing;
       height = MAX (height, expander_size + 2 * expander_spacing);
     }
-      
+
   width  += 2 * focus_pad + 2 * focus_width;
   height += 2 * focus_pad + 2 * focus_width;
 
@@ -1115,16 +1115,16 @@ gtk_expander_focus (GtkWidget        *wi
 		    GtkDirectionType  direction)
 {
   GtkExpander *expander = GTK_EXPANDER (widget);
-  
+
   if (!focus_current_site (expander, direction))
     {
       GtkWidget *old_focus_child;
       gboolean widget_is_focus;
       FocusSite site = FOCUS_NONE;
-      
+
       widget_is_focus = gtk_widget_is_focus (widget);
       old_focus_child = GTK_CONTAINER (widget)->focus_child;
-      
+
       if (old_focus_child && old_focus_child == expander->priv->label_widget)
 	site = FOCUS_LABEL;
       else if (old_focus_child)
@@ -1192,9 +1192,9 @@ gtk_expander_activate (GtkExpander *expa
 /**
  * gtk_expander_new:
  * @label: the text of the label
- * 
+ *
  * Creates a new expander using @label as the text of the label.
- * 
+ *
  * Return value: a new #GtkExpander widget.
  *
  * Since: 2.4
@@ -1209,14 +1209,14 @@ gtk_expander_new (const gchar *label)
  * gtk_expander_new_with_mnemonic:
  * @label: the text of the label with an underscore in front of the
  *         mnemonic character
- * 
+ *
  * Creates a new expander using @label as the text of the label.
  * If characters in @label are preceded by an underscore, they are underlined.
- * If you need a literal underscore character in a label, use '__' (two 
- * underscores). The first underlined character represents a keyboard 
+ * If you need a literal underscore character in a label, use '__' (two
+ * underscores). The first underlined character represents a keyboard
  * accelerator called a mnemonic.
  * Pressing Alt and that key activates the button.
- * 
+ *
  * Return value: a new #GtkExpander widget.
  *
  * Since: 2.4
@@ -1328,7 +1328,7 @@ gtk_expander_set_expanded (GtkExpander *
 	{
 	  gtk_expander_start_animation (expander);
 	}
-      else 
+      else
 	{
 	  priv->expander_style = expanded ? GTK_EXPANDER_EXPANDED :
 					    GTK_EXPANDER_COLLAPSED;
@@ -1643,7 +1643,7 @@ gtk_expander_set_label_widget (GtkExpand
  * gtk_expander_set_label_widget().
  *
  * Return value: the label widget, or %NULL if there is none.
- * 
+ *
  * Since: 2.4
  **/
 GtkWidget *
============================================================
--- pidgin/gtkimhtml.c	9691adfda5012d4efbb17dcc14f775ecfee43b49
+++ pidgin/gtkimhtml.c	747dfc91cbf52712e69b9a781ab1d9c69ade5052
@@ -368,7 +368,7 @@ gtk_smiley_tree_destroy (GtkSmileyTree *
 			g_string_free (t->values, TRUE);
 			g_free (t->children);
 		}
-		
+
 		g_free (t);
 	}
 }
@@ -838,7 +838,7 @@ gtk_imhtml_expose_event (GtkWidget      
 			                                      &tag_area.x,
 			                                      &tag_area.y);
 
-		
+
 			rect.height = tag_area.y + tag_area.height - rect.y
 				+ gtk_text_view_get_pixels_above_lines(GTK_TEXT_VIEW(widget))
 				+ gtk_text_view_get_pixels_below_lines(GTK_TEXT_VIEW(widget));
@@ -2068,7 +2068,7 @@ gtk_imhtml_disassociate_smiley(GtkIMHtml
 {
 	if (smiley->imhtml) {
 		gtk_smiley_tree_remove(smiley->imhtml->default_smilies, smiley);
-		g_hash_table_foreach(smiley->imhtml->smiley_data, 
+		g_hash_table_foreach(smiley->imhtml->smiley_data,
 			gtk_imhtml_disassociate_smiley_foreach, smiley);
 		g_signal_handlers_disconnect_matched(smiley->imhtml, G_SIGNAL_MATCH_DATA,
 			0, 0, NULL, NULL, smiley);
@@ -2097,13 +2097,13 @@ gtk_imhtml_associate_smiley (GtkIMHtml  
 		g_signal_handlers_disconnect_matched(smiley->imhtml, G_SIGNAL_MATCH_DATA,
 			0, 0, NULL, NULL, smiley);
 	}
-	
+
 	smiley->imhtml = imhtml;
 
 	gtk_smiley_tree_insert (tree, smiley);
-	
+
 	/* connect destroy signal for the imhtml */
-	g_signal_connect(imhtml, "destroy", G_CALLBACK(gtk_imhtml_disconnect_smiley), 
+	g_signal_connect(imhtml, "destroy", G_CALLBACK(gtk_imhtml_disconnect_smiley),
 		smiley);
 }
 
@@ -2602,7 +2602,7 @@ parse_css_color(gchar *in_color)
 
 			count++;
 		}
-		
+
 		g_free(in_color);
 		return g_strdup_printf("#%02X%02X%02X", rgbval[0], rgbval[1], rgbval[2]);
 	}
@@ -3373,7 +3373,7 @@ void gtk_imhtml_insert_html_at_iter(GtkI
 		ws[wpos++]  = 0xE2;
 		ws[wpos++]  = 0x80;
 		ws[wpos++]  = 0x8F;
-    
+
 		if (!rtl_direction)
 		{
 			/* insert LRM character to set direction */
============================================================
--- pidgin/gtkimhtmltoolbar.c	ada2e86fb579482dc94a39b78c8e55b8a82ada7a
+++ pidgin/gtkimhtmltoolbar.c	5cb24f071177b208678b5635b0acad2f821ce10f
@@ -680,7 +680,7 @@ sort_smileys(struct smiley_button_list *
 	  is custom smiley-enabled */
 	if (supports_custom && psmiley && !(smiley->flags & GTK_IMHTML_SMILEY_CUSTOM)) {
 		gchar tip[128];
-		g_snprintf(tip, sizeof(tip), 
+		g_snprintf(tip, sizeof(tip),
 			_("This smiley is disabled because a custom smiley exists for this shortcut:\n %s"),
 			face);
 		gtk_tooltips_set_tip(toolbar->tooltips, button, tip, NULL);
@@ -808,7 +808,7 @@ insert_smiley_cb(GtkWidget *smiley, GtkI
 			unique_smileys = g_slist_prepend(unique_smileys, smiley);
 		}
 	}
-	
+
 	/* we need to reverse the list to get the smileys in the correct order */
 	unique_smileys = g_slist_reverse(unique_smileys);
 
@@ -1413,13 +1413,13 @@ static void gtk_imhtmltoolbar_init (GtkI
 	menuitem = gtk_menu_item_new_with_mnemonic(_("_Horizontal rule"));
 	g_signal_connect(G_OBJECT(menuitem), "activate"	, G_CALLBACK(insert_hr_cb), toolbar);
 	gtk_menu_shell_append(GTK_MENU_SHELL(insert_menu), menuitem);
-	toolbar->insert_hr = menuitem;	
+	toolbar->insert_hr = menuitem;
 
 	g_signal_connect_swapped(G_OBJECT(insert_button), "button-press-event", G_CALLBACK(gtk_widget_activate), insert_button);
 	g_signal_connect(G_OBJECT(insert_button), "activate", G_CALLBACK(pidgin_menu_clicked), insert_menu);
 	g_signal_connect(G_OBJECT(insert_menu), "deactivate", G_CALLBACK(pidgin_menu_deactivate), insert_button);
 	toolbar->sml = NULL;
-	
+
 	/* Sep */
 	sep = gtk_vseparator_new();
 	gtk_box_pack_start(GTK_BOX(box), sep, FALSE, FALSE, 0);
============================================================
--- pidgin/gtklog.h	256b642dbe4d1a518bdabceeba0de4f2c458aa2e
+++ pidgin/gtklog.h	37ce48cab5a824543c24ab47a1150a32f7effc90
@@ -9,7 +9,7 @@
  * Pidgin is the legal property of its developers, whose names are too numerous
  * to list here.  Please refer to the COPYRIGHT file distributed with this
  * source distribution.
- * 
+ *
  * This program is free software; you can redistribute it and/or modify
  * it under the terms of the GNU General Public License as published by
  * the Free Software Foundation; either version 2 of the License, or
============================================================
--- pidgin/gtkpluginpref.c	c06b032b81554a425918c9da7cb3836096b2c841
+++ pidgin/gtkpluginpref.c	a60cc5d8fe69d72c45769f50d1ae29d81c21f40f
@@ -93,7 +93,7 @@ make_string_pref(GtkWidget *parent, Purp
 		case PURPLE_PLUGIN_PREF_NONE:
 		default:
 			if (format == PURPLE_STRING_FORMAT_TYPE_NONE)
-			{				
+			{
 				entry = gtk_entry_new();
 				gtk_entry_set_text(GTK_ENTRY(entry), purple_prefs_get_string(pref_name));
 				gtk_entry_set_max_length(GTK_ENTRY(entry),
============================================================
--- pidgin/gtkpounce.h	cd4359109194b13403c86cff71f2d899783dbf8b
+++ pidgin/gtkpounce.h	6e83968c47511803d11c1e0e7b4ba01b724d0962
@@ -8,7 +8,7 @@
  * Pidgin is the legal property of its developers, whose names are too numerous
  * to list here.  Please refer to the COPYRIGHT file distributed with this
  * source distribution.
- * 
+ *
  * This program is free software; you can redistribute it and/or modify
  * it under the terms of the GNU General Public License as published by
  * the Free Software Foundation; either version 2 of the License, or
============================================================
--- pidgin/gtkprefs.c	e14b835c2059d6f6c606f40ac884e3eaf03814df
+++ pidgin/gtkprefs.c	3d7dfe15f2cc443a230105502998ba6b8716ff65
@@ -78,8 +78,8 @@ static GtkListStore *prefs_status_icon_t
 static GtkListStore *prefs_sound_themes;
 static GtkListStore *prefs_blist_themes;
 static GtkListStore *prefs_status_icon_themes;
- 
 
+
 /*
  * PROTOTYPES
  */
@@ -560,7 +560,7 @@ pref_sound_generate_markup()
 /* Rebuild the markup for the sound theme selection for "(Custom)" themes */
 static void
 pref_sound_generate_markup()
-{	
+{
 	gboolean print_custom, customized;
 	const gchar *name, *author, *description, *current_theme;
 	gchar *markup;
@@ -569,24 +569,24 @@ pref_sound_generate_markup()
 
 	customized = pidgin_sound_is_customized();
 	current_theme = purple_prefs_get_string(PIDGIN_PREFS_ROOT "/sound/theme");
-	
+
 	if (gtk_tree_model_get_iter_first(GTK_TREE_MODEL(prefs_sound_themes), &iter)) {
 		do {
 			gtk_tree_model_get(GTK_TREE_MODEL(prefs_sound_themes), &iter, 2, &name, -1);
 
 			print_custom = customized && g_str_equal(current_theme, name);
-			
+
 			if (g_str_equal(name, ""))
 				markup = g_strdup_printf("<b>(Default)</b>%s%s - None\n<span foreground='dim grey'>The default Pidgin sound theme</span>",
-							 print_custom ? " " : "", print_custom ? "(Custom)" : ""); 
+							 print_custom ? " " : "", print_custom ? "(Custom)" : "");
 			else {
 				theme = PURPLE_SOUND_THEME(purple_theme_manager_find_theme(name, "sound"));
 				author = purple_theme_get_author(PURPLE_THEME(theme));
 				description = purple_theme_get_description(PURPLE_THEME(theme));
-				
+
 				markup = g_strdup_printf("<b>%s</b>%s%s%s%s\n<span foreground='dim grey'>%s</span>",
-							 name, print_custom ? " " : "", print_custom ? "(Custom)" : "", 
-							 author != NULL ? " - " : "", author != NULL ? author : "", description != NULL ? description : ""); 
+							 name, print_custom ? " " : "", print_custom ? "(Custom)" : "",
+							 author != NULL ? " - " : "", author != NULL ? author : "", description != NULL ? description : "");
 			}
 
 			gtk_list_store_set(prefs_sound_themes, &iter, 1, markup, -1);
@@ -605,14 +605,14 @@ prefs_themes_sort(PurpleTheme *theme)
 	GtkTreeIter iter;
 	gchar *image_full = NULL, *markup;
 	const gchar *name, *author, *description;
-	
+
 	if (PURPLE_IS_SOUND_THEME(theme)){
-		
+
 		image_full = purple_theme_get_image_full(theme);
 		if (image_full != NULL){
 			pixbuf = gdk_pixbuf_new_from_file_at_scale(image_full, PREFS_OPTIMAL_ICON_SIZE, PREFS_OPTIMAL_ICON_SIZE, TRUE, NULL);
 			g_free(image_full);
-		} else pixbuf = NULL; 
+		} else pixbuf = NULL;
 
 		gtk_list_store_append(prefs_sound_themes, &iter);
 		gtk_list_store_set(prefs_sound_themes, &iter, 0, pixbuf, 2, purple_theme_get_name(theme), -1);
@@ -623,7 +623,7 @@ prefs_themes_sort(PurpleTheme *theme)
 	} else if (PIDGIN_IS_BLIST_THEME(theme) || PIDGIN_IS_STATUS_ICON_THEME(theme)){
 		GtkListStore *store;
 
-		if (PIDGIN_IS_BLIST_THEME(theme)) 
+		if (PIDGIN_IS_BLIST_THEME(theme))
 			store = prefs_blist_themes;
 		else store = prefs_status_icon_themes;
 
@@ -631,12 +631,12 @@ prefs_themes_sort(PurpleTheme *theme)
 		if (image_full != NULL){
 			pixbuf = gdk_pixbuf_new_from_file_at_scale(image_full, PREFS_OPTIMAL_ICON_SIZE, PREFS_OPTIMAL_ICON_SIZE, TRUE, NULL);
 			g_free(image_full);
-		} else pixbuf = NULL; 
+		} else pixbuf = NULL;
 
 		name = purple_theme_get_name(theme);
 		author = purple_theme_get_author(theme);
 		description = purple_theme_get_description(theme);
-		
+
 		markup = g_strdup_printf("<b>%s</b>%s%s\n<span foreground='dim grey'>%s</span>", name, author != NULL ? " - " : "",
 					 author != NULL ? author : "", description != NULL ? description : "");
 
@@ -646,7 +646,7 @@ prefs_themes_sort(PurpleTheme *theme)
 		g_free(markup);
 		if (pixbuf != NULL)
 			gdk_pixbuf_unref(pixbuf);
-	} 
+	}
 
 }
 
@@ -1146,7 +1146,7 @@ prefs_set_blist_theme_cb(GtkComboBox *co
 	PidginBlistTheme *theme;
 	GtkTreeIter iter;
 	gchar *name = NULL;
-	
+
 	g_return_if_fail(gtk_combo_box_get_active_iter(combo_box, &iter));
 	gtk_tree_model_get(GTK_TREE_MODEL(prefs_blist_themes), &iter, 2, &name, -1);
 
@@ -1163,7 +1163,7 @@ prefs_set_status_icon_theme_cb(GtkComboB
 	PidginStatusIconTheme *theme;
 	GtkTreeIter iter;
 	gchar *name = NULL;
-	
+
 	g_return_if_fail(gtk_combo_box_get_active_iter(combo_box, &iter));
 	gtk_tree_model_get(GTK_TREE_MODEL(prefs_status_icon_themes), &iter, 2, &name, -1);
 
@@ -1201,7 +1201,7 @@ interface_page(void)
 	gtk_box_pack_start(GTK_BOX (vbox), combo_box, FALSE, FALSE, 0);
 	g_signal_connect(G_OBJECT(combo_box), "changed", (GCallback)prefs_set_status_icon_theme_cb, NULL);
 
-	/* System Tray */	
+	/* System Tray */
 	vbox = pidgin_make_frame(ret, _("System Tray Icon"));
 	label = pidgin_prefs_dropdown(vbox, _("_Show system tray icon:"), PURPLE_PREF_STRING,
 					PIDGIN_PREFS_ROOT "/docklet/show",
@@ -2028,7 +2028,7 @@ sound_chosen_cb(void *user_data, const c
 	if (sound == sound_row_sel)
 		gtk_entry_set_text(GTK_ENTRY(sound_entry), filename);
 
-	pref_sound_generate_markup();	
+	pref_sound_generate_markup();
 }
 
 static void select_sound(GtkWidget *button, gpointer being_NULL_is_fun)
============================================================
--- pidgin/gtkprefs.h	a94d912724df09de10791e143098d4d01591bd85
+++ pidgin/gtkprefs.h	5574138388cf003ee5040f94081dbf99646eed8d
@@ -59,7 +59,7 @@ GtkWidget *pidgin_prefs_checkbox(const c
  * @param max   The maximum value of the spin button
  * @param sg    If not NULL, the size group to which the spin button will be added
  * @return      An hbox containing both the label and the spinner.  Can be
- *              used to set the widgets to sensitive or insensitive based on the 
+ *              used to set the widgets to sensitive or insensitive based on the
  *              value of a checkbox.
  */
 GtkWidget *pidgin_prefs_labeled_spin_button(GtkWidget *page,
============================================================
--- pidgin/gtksavedstatuses.c	e1925c4c1cd66396bc13a490ecf7c7e75cfd4f77
+++ pidgin/gtksavedstatuses.c	c52fc4fc055fa1ee9aa31829c9ca2a00d94a245d
@@ -1547,7 +1547,7 @@ edit_substatus(StatusEditor *status_edit
 	/* Seed the input widgets with the current values */
 
 	/* Only look at the saved status if we can't find it in the parent status dialog's substatuses model */
-	gtk_tree_model_get(GTK_TREE_MODEL(status_editor->model), &iter, 
+	gtk_tree_model_get(GTK_TREE_MODEL(status_editor->model), &iter,
 		STATUS_EDITOR_COLUMN_ENABLE_SUBSTATUS, &parent_dialog_has_substatus, -1);
 	if (parent_dialog_has_substatus) {
 		gtk_tree_model_get(GTK_TREE_MODEL(status_editor->model), &iter,
@@ -1656,7 +1656,7 @@ enum {
 	 * And whether or not that emblem is visible
 	 */
 	SS_MENU_EMBLEM_VISIBLE_COLUMN,
-	
+
 	SS_MENU_NUM_COLUMNS
 };
 
============================================================
--- pidgin/gtkscrollbook.h	dc05d1813ddc65ea353fdf7c209aea7102a3cb2b
+++ pidgin/gtkscrollbook.h	5ae33d2f401df358d6d185c7b4a09b5a04936af6
@@ -51,7 +51,7 @@ struct _PidginScrollBook
 	GtkWidget *left_arrow;
 	GtkWidget *right_arrow;
 	GList *children;
-	
+
 	/* Padding for future expansion */
 	void (*_gtk_reserved1) (void);
 	void (*_gtk_reserved2) (void);
============================================================
--- pidgin/gtksession.c	1f591915c652f817e82ab6dd1f0d440402b1c0af
+++ pidgin/gtksession.c	8ddb4cb11a8fe5c7561ae0ec3be1beba66810b4f
@@ -108,7 +108,7 @@ static void ice_connection_watch(IceConn
 	purple_debug(PURPLE_DEBUG_INFO, NULL, "done.\n");
 }
 
-/* We call any handler installed before (or after) ice_init but 
+/* We call any handler installed before (or after) ice_init but
  * avoid calling the default libICE handler which does an exit().
  *
  * This means we do nothing by default, which is probably correct,
============================================================
--- pidgin/gtksound.c	d4d59c919af6c699181f3e1b8ca6ceab548a94d5
+++ pidgin/gtksound.c	3ab401fcafc9a020fff1a06df2911d9fc22f2845
@@ -579,7 +579,7 @@ pidgin_sound_play_event(PurpleSoundEvent
 	if (purple_prefs_get_bool(enable_pref)) {
 		char *filename = g_strdup(purple_prefs_get_path(file_pref));
 		theme_name = purple_prefs_get_string(PIDGIN_PREFS_ROOT "/sound/theme");
-		
+
 		if (theme_name && *theme_name && (!filename || !*filename)) {
 			/* Use theme */
 			g_free(filename);
@@ -588,12 +588,12 @@ pidgin_sound_play_event(PurpleSoundEvent
 			filename = purple_sound_theme_get_file_full(theme, sounds[event].pref);
 
 			if(!g_file_test(filename, G_FILE_TEST_IS_REGULAR)){ /* Use Default sound in this case */
-				purple_debug_error("sound", "The file: (%s) %s\n from theme: %s, was not found or wasn't readable\n", 
+				purple_debug_error("sound", "The file: (%s) %s\n from theme: %s, was not found or wasn't readable\n",
 							sounds[event].pref, filename, theme_name);
 				g_free(filename);
 			}
 		}
-		
+
 		if (!filename || !strlen(filename)) {			    /* Use Default sounds */
 			g_free(filename);
 
@@ -610,10 +610,10 @@ pidgin_sound_play_event(PurpleSoundEvent
 	g_free(file_pref);
 }
 
-gboolean 
+gboolean
 pidgin_sound_is_customized(void)
 {
-	gint i;	
+	gint i;
 	gchar *path, *file;
 
 	for (i = 0; i < PURPLE_NUM_SOUNDS; i++) {
============================================================
--- pidgin/gtksourceiter.c	40e1a3e923072a8138c35f5e7e9118f297b60488
+++ pidgin/gtksourceiter.c	4c8ee3673af4ee9bae78b8e25dccb724ed6803d7
@@ -1,4 +1,4 @@
-/* -*- Mode: C; tab-width: 8; indent-tabs-mode: t; c-basic-offset: 8 -*- 
+/* -*- Mode: C; tab-width: 8; indent-tabs-mode: t; c-basic-offset: 8 -*-
  *  gtksourceiter.c
  *
  *  Pidgin is the legal property of its developers, whose names are too numerous
@@ -7,7 +7,7 @@
  *
  *  The following copyright notice applies to this file:
  *
- *  Copyright (C) 2000 - 2005 Paolo Maggi 
+ *  Copyright (C) 2000 - 2005 Paolo Maggi
  *  Copyright (C) 2002, 2003 Jeroen Zwartepoorte
  *
  *  This program is free software; you can redistribute it and/or modify
@@ -206,7 +206,7 @@ finally_2:
 
 finally_2:
 	g_free (normalized_s1);
-	g_free (normalized_s2);	
+	g_free (normalized_s2);
 
 	return ret;
 }
@@ -247,7 +247,7 @@ forward_chars_with_skipping (GtkTextIter
 		{
 			/* being UTF8 correct sucks; this accounts for extra
 			   offsets coming from canonical decompositions of
-			   UTF8 characters (e.g. accented characters) which 
+			   UTF8 characters (e.g. accented characters) which
 			   g_utf8_normalize() performs */
 			gchar *normal;
 			gchar buffer[6];
@@ -530,14 +530,14 @@ strbreakup (const char *string,
  * @match_start: return location for start of match, or %%NULL.
  * @match_end: return location for end of match, or %%NULL.
  * @limit: bound for the search, or %%NULL for the end of the buffer.
- * 
- * Searches forward for @str. Any match is returned by setting 
- * @match_start to the first character of the match and @match_end to the 
+ *
+ * Searches forward for @str. Any match is returned by setting
+ * @match_start to the first character of the match and @match_end to the
  * first character after the match. The search will not continue past
  * @limit. Note that a search is a linear or O(n) operation, so you
  * may wish to use @limit to avoid locking up your UI on large
  * buffers.
- * 
+ *
  * If the #GTK_SOURCE_SEARCH_VISIBLE_ONLY flag is present, the match may
  * have invisible text interspersed in @str. i.e. @str will be a
  * possibly-noncontiguous subsequence of the matched range. similarly,
@@ -550,7 +550,7 @@ strbreakup (const char *string,
  *
  * Same as gtk_text_iter_forward_search(), but supports case insensitive
  * searching.
- * 
+ *
  * Return value: whether a match was found.
  **/
 gboolean
@@ -574,7 +574,7 @@ gtk_source_iter_forward_search (const Gt
 	if ((flags & GTK_SOURCE_SEARCH_CASE_INSENSITIVE) == 0)
 		return gtk_text_iter_forward_search (iter, str, flags,
 						     match_start, match_end,
-						     limit); 
+						     limit);
 
 	if (limit && gtk_text_iter_compare (iter, limit) >= 0)
 		return FALSE;
@@ -650,10 +650,10 @@ gtk_source_iter_forward_search (const Gt
  * @match_start: return location for start of match, or %%NULL.
  * @match_end: return location for end of match, or %%NULL.
  * @limit: location of last possible @match_start, or %%NULL for start of buffer.
- * 
+ *
  * Same as gtk_text_iter_backward_search(), but supports case insensitive
  * searching.
- * 
+ *
  * Return value: whether a match was found.
  **/
 gboolean
@@ -677,7 +677,7 @@ gtk_source_iter_backward_search (const G
 	if ((flags & GTK_SOURCE_SEARCH_CASE_INSENSITIVE) == 0)
 		return gtk_text_iter_backward_search (iter, str, flags,
 						      match_start, match_end,
-						      limit); 
+						      limit);
 
 	if (limit && gtk_text_iter_compare (iter, limit) <= 0)
 		return FALSE;
============================================================
--- pidgin/gtksourceiter.h	bf6bd788e7e9ef1289eb03fd650ba64e9919a64e
+++ pidgin/gtksourceiter.h	994ef36809cae64390d8bd94e348477dd6d1f786
@@ -1,4 +1,4 @@
-/* -*- Mode: C; tab-width: 8; indent-tabs-mode: t; c-basic-offset: 8 -*- 
+/* -*- Mode: C; tab-width: 8; indent-tabs-mode: t; c-basic-offset: 8 -*-
  *  gtksourceiter.h
  *
  *  Pidgin is the legal property of its developers, whose names are too numerous
@@ -7,7 +7,7 @@
  *
  *  The following copyright notice applies to this file:
  *
- *  Copyright (C) 2000 - 2005 Paolo Maggi 
+ *  Copyright (C) 2000 - 2005 Paolo Maggi
  *  Copyright (C) 2002, 2003 Jeroen Zwartepoorte
  *
  *  This program is free software; you can redistribute it and/or modify
============================================================
--- pidgin/gtksourceundomanager.c	807a81535d640a2c9493dbf2a04d67954d3751b1
+++ pidgin/gtksourceundomanager.c	42856984057cd351c3339fc25805756158bae8b8
@@ -4,8 +4,8 @@
  * This file is part of GtkSourceView
  *
  * Copyright (C) 1998, 1999 Alex Roberts, Evan Lawrence
- * Copyright (C) 2000, 2001 Chema Celorio, Paolo Maggi 
- * Copyright (C) 2002-2005  Paolo Maggi 
+ * Copyright (C) 2000, 2001 Chema Celorio, Paolo Maggi
+ * Copyright (C) 2002-2005  Paolo Maggi
  *
  * This program is free software; you can redistribute it and/or modify
  * it under the terms of the GNU General Public License as published by
@@ -19,7 +19,7 @@
  *
  * You should have received a copy of the GNU General Public License
  * along with this program; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, 
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor,
  * Boston, MA 02111-1301, USA.
  */
 
@@ -49,14 +49,14 @@ typedef enum {
 	GTK_SOURCE_UNDO_ACTION_INSERT_ANCHOR,
 } GtkSourceUndoActionType;
 
-/* 
+/*
  * We use offsets instead of GtkTextIters because the last ones
  * require to much memory in this context without giving us any advantage.
- */ 
+ */
 
 struct _GtkSourceUndoInsertAction
 {
-	gint   pos; 
+	gint   pos;
 	gchar *text;
 	gint   length;
 	gint   chars;
@@ -79,7 +79,7 @@ struct _GtkSourceUndoAction
 struct _GtkSourceUndoAction
 {
 	GtkSourceUndoActionType action_type;
-	
+
 	union {
 		GtkSourceUndoInsertAction  insert;
 		GtkSourceUndoDeleteAction  delete;
@@ -92,7 +92,7 @@ struct _GtkSourceUndoAction
 	guint mergeable : 1;
 
 	/* It is TRUE whether the action is marked as "modified".
-	 * An action is marked as "modified" if it changed the 
+	 * An action is marked as "modified" if it changed the
 	 * state of the buffer from "not modified" to "modified". Only the first
 	 * action of a group can be marked as modified.
 	 * There can be a single action marked as "modified" in the actions list.
@@ -106,29 +106,29 @@ struct _GtkSourceUndoManagerPrivate
 struct _GtkSourceUndoManagerPrivate
 {
 	GtkTextBuffer	*document;
-	
+
 	GList*		 actions;
-	gint 		 next_redo;	
+	gint 		 next_redo;
 
 	gint 		 actions_in_current_group;
-	
+
 	gint		 running_not_undoable_actions;
 
 	gint		 num_of_groups;
 
 	gint		 max_undo_levels;
-	
+
 	guint	 	 can_undo : 1;
 	guint		 can_redo : 1;
-	
+
 	/* It is TRUE whether, while undoing an action of the current group (with order_in_group > 1),
 	 * the state of the buffer changed from "not modified" to "modified".
 	 */
-	guint	 	 modified_undoing_group : 1;	
+	guint	 	 modified_undoing_group : 1;
 
 	/* Pointer to the action (in the action list) marked as "modified".
-	 * It is NULL when no action is marked as "modified". 
-	 * It is INVALID when the action marked as "modified" has been removed 
+	 * It is NULL when no action is marked as "modified".
+	 * It is INVALID when the action marked as "modified" has been removed
 	 * from the action list (freeing the list or resizing it) */
 	GtkSourceUndoAction *modified_action;
 };
@@ -143,33 +143,33 @@ static void gtk_source_undo_manager_fina
 static void gtk_source_undo_manager_init 			(GtkSourceUndoManager 		*um);
 static void gtk_source_undo_manager_finalize 			(GObject 			*object);
 
-static void gtk_source_undo_manager_insert_text_handler 	(GtkTextBuffer 			*buffer, 
+static void gtk_source_undo_manager_insert_text_handler 	(GtkTextBuffer 			*buffer,
 							 	 GtkTextIter 			*pos,
-		                             		 	 const 	gchar 			*text, 
-							 	 gint 				 length, 
+		                             		 	 const 	gchar 			*text,
+							 	 gint 				 length,
 							 	 GtkSourceUndoManager 		*um);
 static void gtk_source_undo_manager_insert_anchor_handler (GtkTextBuffer *buffer,
 			                   GtkTextIter            *pos,
 			                   GtkTextChildAnchor     *anchor,
 			                   GtkSourceUndoManager   *um);
-static void gtk_source_undo_manager_delete_range_handler 	(GtkTextBuffer 			*buffer, 
+static void gtk_source_undo_manager_delete_range_handler 	(GtkTextBuffer 			*buffer,
 							 	 GtkTextIter 			*start,
                         		      		 	 GtkTextIter 			*end,
 							 	 GtkSourceUndoManager 		*um);
-static void gtk_source_undo_manager_begin_user_action_handler 	(GtkTextBuffer 			*buffer, 
+static void gtk_source_undo_manager_begin_user_action_handler 	(GtkTextBuffer 			*buffer,
 								 GtkSourceUndoManager 		*um);
 static void gtk_source_undo_manager_modified_changed_handler	(GtkTextBuffer                  *buffer,
 								 GtkSourceUndoManager           *um);
 
 static void gtk_source_undo_manager_free_action_list 		(GtkSourceUndoManager 		*um);
 
-static void gtk_source_undo_manager_add_action 			(GtkSourceUndoManager 		*um, 
+static void gtk_source_undo_manager_add_action 			(GtkSourceUndoManager 		*um,
 		                                         	 const GtkSourceUndoAction 	*undo_action);
-static void gtk_source_undo_manager_free_first_n_actions 	(GtkSourceUndoManager 		*um, 
+static void gtk_source_undo_manager_free_first_n_actions 	(GtkSourceUndoManager 		*um,
 								 gint 				 n);
 static void gtk_source_undo_manager_check_list_size 		(GtkSourceUndoManager 		*um);
 
-static gboolean gtk_source_undo_manager_merge_action 		(GtkSourceUndoManager 		*um, 
+static gboolean gtk_source_undo_manager_merge_action 		(GtkSourceUndoManager 		*um,
 		                                        	 const GtkSourceUndoAction 	*undo_action);
 
 static GObjectClass 	*parent_class 				= NULL;
@@ -216,7 +216,7 @@ gtk_source_undo_manager_class_init (GtkS
 
         klass->can_undo 	= NULL;
 	klass->can_redo 	= NULL;
-	
+
 	undo_manager_signals[CAN_UNDO] =
    		g_signal_new ("can_undo",
 			      G_OBJECT_CLASS_TYPE (object_class),
@@ -269,7 +269,7 @@ gtk_source_undo_manager_finalize (GObjec
 
 	g_return_if_fail (object != NULL);
 	g_return_if_fail (GTK_SOURCE_IS_UNDO_MANAGER (object));
-	
+
    	um = GTK_SOURCE_UNDO_MANAGER (object);
 
 	g_return_if_fail (um->priv != NULL);
@@ -280,19 +280,19 @@ gtk_source_undo_manager_finalize (GObjec
 	}
 
 	g_signal_handlers_disconnect_by_func (G_OBJECT (um->priv->document),
-			  G_CALLBACK (gtk_source_undo_manager_delete_range_handler), 
+			  G_CALLBACK (gtk_source_undo_manager_delete_range_handler),
 			  um);
 
 	g_signal_handlers_disconnect_by_func (G_OBJECT (um->priv->document),
-			  G_CALLBACK (gtk_source_undo_manager_insert_text_handler), 
+			  G_CALLBACK (gtk_source_undo_manager_insert_text_handler),
 			  um);
-	
+
 	g_signal_handlers_disconnect_by_func (G_OBJECT (um->priv->document),
-			  G_CALLBACK (gtk_source_undo_manager_insert_anchor_handler), 
+			  G_CALLBACK (gtk_source_undo_manager_insert_anchor_handler),
 			  um);
-	
+
 	g_signal_handlers_disconnect_by_func (G_OBJECT (um->priv->document),
-			  G_CALLBACK (gtk_source_undo_manager_begin_user_action_handler), 
+			  G_CALLBACK (gtk_source_undo_manager_begin_user_action_handler),
 			  um);
 
 	g_free (um->priv);
@@ -311,19 +311,19 @@ gtk_source_undo_manager_new (GtkTextBuff
   	um->priv->document = buffer;
 
 	g_signal_connect (G_OBJECT (buffer), "insert_text",
-			  G_CALLBACK (gtk_source_undo_manager_insert_text_handler), 
+			  G_CALLBACK (gtk_source_undo_manager_insert_text_handler),
 			  um);
 
 	g_signal_connect (G_OBJECT (buffer), "insert_child_anchor",
-			  G_CALLBACK (gtk_source_undo_manager_insert_anchor_handler), 
+			  G_CALLBACK (gtk_source_undo_manager_insert_anchor_handler),
 			  um);
 
 	g_signal_connect (G_OBJECT (buffer), "delete_range",
-			  G_CALLBACK (gtk_source_undo_manager_delete_range_handler), 
+			  G_CALLBACK (gtk_source_undo_manager_delete_range_handler),
 			  um);
 
 	g_signal_connect (G_OBJECT (buffer), "begin_user_action",
-			  G_CALLBACK (gtk_source_undo_manager_begin_user_action_handler), 
+			  G_CALLBACK (gtk_source_undo_manager_begin_user_action_handler),
 			  um);
 
 	g_signal_connect (G_OBJECT (buffer), "modified_changed",
@@ -332,7 +332,7 @@ gtk_source_undo_manager_new (GtkTextBuff
 	return um;
 }
 
-void 
+void
 gtk_source_undo_manager_begin_not_undoable_action (GtkSourceUndoManager *um)
 {
 	g_return_if_fail (GTK_SOURCE_IS_UNDO_MANAGER (um));
@@ -341,18 +341,18 @@ gtk_source_undo_manager_begin_not_undoab
 	++um->priv->running_not_undoable_actions;
 }
 
-static void 
+static void
 gtk_source_undo_manager_end_not_undoable_action_internal (GtkSourceUndoManager *um)
 {
 	g_return_if_fail (GTK_SOURCE_IS_UNDO_MANAGER (um));
 	g_return_if_fail (um->priv != NULL);
 
 	g_return_if_fail (um->priv->running_not_undoable_actions > 0);
-	
+
 	--um->priv->running_not_undoable_actions;
 }
 
-void 
+void
 gtk_source_undo_manager_end_not_undoable_action (GtkSourceUndoManager *um)
 {
 	g_return_if_fail (GTK_SOURCE_IS_UNDO_MANAGER (um));
@@ -361,26 +361,26 @@ gtk_source_undo_manager_end_not_undoable
 	gtk_source_undo_manager_end_not_undoable_action_internal (um);
 
 	if (um->priv->running_not_undoable_actions == 0)
-	{	
+	{
 		gtk_source_undo_manager_free_action_list (um);
-	
-		um->priv->next_redo = -1;	
 
+		um->priv->next_redo = -1;
+
 		if (um->priv->can_undo)
 		{
 			um->priv->can_undo = FALSE;
-			g_signal_emit (G_OBJECT (um), 
-				       undo_manager_signals [CAN_UNDO], 
-				       0, 
+			g_signal_emit (G_OBJECT (um),
+				       undo_manager_signals [CAN_UNDO],
+				       0,
 				       FALSE);
 		}
 
 		if (um->priv->can_redo)
 		{
 			um->priv->can_redo = FALSE;
-			g_signal_emit (G_OBJECT (um), 
-				       undo_manager_signals [CAN_REDO], 
-				       0, 
+			g_signal_emit (G_OBJECT (um),
+				       undo_manager_signals [CAN_REDO],
+				       0,
 				       FALSE);
 		}
 	}
@@ -395,7 +395,7 @@ gtk_source_undo_manager_can_undo (const 
 	return um->priv->can_undo;
 }
 
-gboolean 
+gboolean
 gtk_source_undo_manager_can_redo (const GtkSourceUndoManager *um)
 {
 	g_return_val_if_fail (GTK_SOURCE_IS_UNDO_MANAGER (um), FALSE);
@@ -408,31 +408,31 @@ set_cursor (GtkTextBuffer *buffer, gint 
 set_cursor (GtkTextBuffer *buffer, gint cursor)
 {
 	GtkTextIter iter;
-	
+
 	/* Place the cursor at the requested position */
 	gtk_text_buffer_get_iter_at_offset (buffer, &iter, cursor);
 	gtk_text_buffer_place_cursor (buffer, &iter);
 }
 
-static void 
+static void
 insert_text (GtkTextBuffer *buffer, gint pos, const gchar *text, gint len)
 {
 	GtkTextIter iter;
-	
+
 	gtk_text_buffer_get_iter_at_offset (buffer, &iter, pos);
 	gtk_text_buffer_insert (buffer, &iter, text, len);
 }
 
-static void 
+static void
 insert_anchor (GtkTextBuffer *buffer, gint pos, GtkTextChildAnchor *anchor)
 {
 	GtkTextIter iter;
-	
+
 	gtk_text_buffer_get_iter_at_offset (buffer, &iter, pos);
 	gtk_text_buffer_insert_child_anchor (buffer, &iter, anchor);
 }
 
-static void 
+static void
 delete_text (GtkTextBuffer *buffer, gint start, gint end)
 {
 	GtkTextIter start_iter;
@@ -464,7 +464,7 @@ get_chars (GtkTextBuffer *buffer, gint s
 	return gtk_text_buffer_get_slice (buffer, &start_iter, &end_iter, TRUE);
 }
 
-void 
+void
 gtk_source_undo_manager_undo (GtkSourceUndoManager *um)
 {
 	GtkSourceUndoAction *undo_action;
@@ -473,13 +473,13 @@ gtk_source_undo_manager_undo (GtkSourceU
 	g_return_if_fail (GTK_SOURCE_IS_UNDO_MANAGER (um));
 	g_return_if_fail (um->priv != NULL);
 	g_return_if_fail (um->priv->can_undo);
-	
+
 	um->priv->modified_undoing_group = FALSE;
 
 	gtk_source_undo_manager_begin_not_undoable_action (um);
 
 	do
-	{	
+	{
 		undo_action = g_list_nth_data (um->priv->actions, um->priv->next_redo + 1);
 		g_return_if_fail (undo_action != NULL);
 
@@ -490,7 +490,7 @@ gtk_source_undo_manager_undo (GtkSourceU
 		if (undo_action->order_in_group <= 1)
 		{
 			/* Set modified to TRUE only if the buffer did not change its state from
-			 * "not modified" to "modified" undoing an action (with order_in_group > 1) 
+			 * "not modified" to "modified" undoing an action (with order_in_group > 1)
 			 * in current group. */
 			modified = (undo_action->modified && !um->priv->modified_undoing_group);
 		}
@@ -499,31 +499,31 @@ gtk_source_undo_manager_undo (GtkSourceU
 		{
 			case GTK_SOURCE_UNDO_ACTION_DELETE:
 				insert_text (
-					um->priv->document, 
-					undo_action->action.delete.start, 
+					um->priv->document,
+					undo_action->action.delete.start,
 					undo_action->action.delete.text,
 					strlen (undo_action->action.delete.text));
 
 				if (undo_action->action.delete.forward)
 					set_cursor (
-						um->priv->document, 
+						um->priv->document,
 						undo_action->action.delete.start);
 				else
 					set_cursor (
-						um->priv->document, 
+						um->priv->document,
 						undo_action->action.delete.end);
 
 				break;
-				
+
 			case GTK_SOURCE_UNDO_ACTION_INSERT:
 				delete_text (
-					um->priv->document, 
-					undo_action->action.insert.pos, 
-					undo_action->action.insert.pos + 
-						undo_action->action.insert.chars); 
+					um->priv->document,
+					undo_action->action.insert.pos,
+					undo_action->action.insert.pos +
+						undo_action->action.insert.chars);
 
 				set_cursor (
-					um->priv->document, 
+					um->priv->document,
 					undo_action->action.insert.pos);
 				break;
 
@@ -551,29 +551,29 @@ gtk_source_undo_manager_undo (GtkSourceU
 	}
 
 	gtk_source_undo_manager_end_not_undoable_action_internal (um);
-	
+
 	um->priv->modified_undoing_group = FALSE;
 
 	if (!um->priv->can_redo)
 	{
 		um->priv->can_redo = TRUE;
-		g_signal_emit (G_OBJECT (um), 
-			       undo_manager_signals [CAN_REDO], 
-			       0, 
+		g_signal_emit (G_OBJECT (um),
+			       undo_manager_signals [CAN_REDO],
+			       0,
 			       TRUE);
 	}
 
 	if (um->priv->next_redo >= (gint)(g_list_length (um->priv->actions) - 1))
 	{
 		um->priv->can_undo = FALSE;
-		g_signal_emit (G_OBJECT (um), 
-			       undo_manager_signals [CAN_UNDO], 
-			       0, 
+		g_signal_emit (G_OBJECT (um),
+			       undo_manager_signals [CAN_UNDO],
+			       0,
 			       FALSE);
 	}
 }
 
-void 
+void
 gtk_source_undo_manager_redo (GtkSourceUndoManager *um)
 {
 	GtkSourceUndoAction *undo_action;
@@ -582,7 +582,7 @@ gtk_source_undo_manager_redo (GtkSourceU
 	g_return_if_fail (GTK_SOURCE_IS_UNDO_MANAGER (um));
 	g_return_if_fail (um->priv != NULL);
 	g_return_if_fail (um->priv->can_redo);
-	
+
 	undo_action = g_list_nth_data (um->priv->actions, um->priv->next_redo);
 	g_return_if_fail (undo_action != NULL);
 
@@ -597,29 +597,29 @@ gtk_source_undo_manager_redo (GtkSourceU
 		}
 
 		--um->priv->next_redo;
-	
+
 		switch (undo_action->action_type)
 		{
 			case GTK_SOURCE_UNDO_ACTION_DELETE:
 				delete_text (
-					um->priv->document, 
-					undo_action->action.delete.start, 
-					undo_action->action.delete.end); 
+					um->priv->document,
+					undo_action->action.delete.start,
+					undo_action->action.delete.end);
 
 				set_cursor (
 					um->priv->document,
 					undo_action->action.delete.start);
 
 				break;
-				
+
 			case GTK_SOURCE_UNDO_ACTION_INSERT:
 				set_cursor (
 					um->priv->document,
 					undo_action->action.insert.pos);
 
 				insert_text (
-					um->priv->document, 
-					undo_action->action.insert.pos, 
+					um->priv->document,
+					undo_action->action.insert.pos,
 					undo_action->action.insert.text,
 					undo_action->action.insert.length);
 
@@ -646,7 +646,7 @@ gtk_source_undo_manager_redo (GtkSourceU
 			undo_action = NULL;
 		else
 			undo_action = g_list_nth_data (um->priv->actions, um->priv->next_redo);
-			
+
 	} while ((undo_action != NULL) && (undo_action->order_in_group > 1));
 
 	if (modified)
@@ -689,7 +689,7 @@ gtk_source_undo_action_free (GtkSourceUn
 	g_free (action);
 }
 
-static void 
+static void
 gtk_source_undo_manager_free_action_list (GtkSourceUndoManager *um)
 {
 	GList *l;
@@ -712,18 +712,18 @@ gtk_source_undo_manager_free_action_list
 	}
 
 	g_list_free (um->priv->actions);
-	um->priv->actions = NULL;	
+	um->priv->actions = NULL;
 }
 
-static void 
-gtk_source_undo_manager_insert_text_handler (GtkTextBuffer 		*buffer, 
+static void
+gtk_source_undo_manager_insert_text_handler (GtkTextBuffer 		*buffer,
 					     GtkTextIter 		*pos,
-		                             const gchar 		*text, 
-					     gint 			 length, 
+		                             const gchar 		*text,
+					     gint 			 length,
 					     GtkSourceUndoManager 	*um)
 {
 	GtkSourceUndoAction undo_action;
-	
+
 	if (um->priv->running_not_undoable_actions > 0)
 		return;
 
@@ -766,15 +766,15 @@ static void gtk_source_undo_manager_inse
 	gtk_source_undo_manager_add_action (um, &undo_action);
 }
 
-static void 
-gtk_source_undo_manager_delete_range_handler (GtkTextBuffer 		*buffer, 
+static void
+gtk_source_undo_manager_delete_range_handler (GtkTextBuffer 		*buffer,
 					      GtkTextIter 		*start,
-                        		      GtkTextIter 		*end, 
+                        		      GtkTextIter 		*end,
 					      GtkSourceUndoManager 	*um)
 {
 	GtkSourceUndoAction undo_action;
 	GtkTextIter insert_iter;
-	
+
 	if (um->priv->running_not_undoable_actions > 0)
 		return;
 
@@ -805,14 +805,14 @@ gtk_source_undo_manager_delete_range_han
 		undo_action.mergeable = TRUE;
 
 	undo_action.modified = FALSE;
-	
+
 	gtk_source_undo_manager_add_action (um, &undo_action);
 
 	g_free (undo_action.action.delete.text);
 
 }
 
-static void 
+static void
 gtk_source_undo_manager_begin_user_action_handler (GtkTextBuffer *buffer, GtkSourceUndoManager *um)
 {
 	g_return_if_fail (GTK_SOURCE_IS_UNDO_MANAGER (um));
@@ -825,11 +825,11 @@ static void
 }
 
 static void
-gtk_source_undo_manager_add_action (GtkSourceUndoManager 	*um, 
+gtk_source_undo_manager_add_action (GtkSourceUndoManager 	*um,
 				    const GtkSourceUndoAction 	*undo_action)
 {
 	GtkSourceUndoAction* action;
-	
+
 	if (um->priv->next_redo >= 0)
 	{
 		gtk_source_undo_manager_free_first_n_actions (um, um->priv->next_redo + 1);
@@ -845,7 +845,7 @@ gtk_source_undo_manager_add_action (GtkS
 		if (action->action_type == GTK_SOURCE_UNDO_ACTION_INSERT)
 			action->action.insert.text = g_strndup (undo_action->action.insert.text, undo_action->action.insert.length);
 		else if (action->action_type == GTK_SOURCE_UNDO_ACTION_DELETE)
-			action->action.delete.text = g_strdup (undo_action->action.delete.text); 
+			action->action.delete.text = g_strdup (undo_action->action.delete.text);
 		else if (action->action_type == GTK_SOURCE_UNDO_ACTION_INSERT_ANCHOR)
 		{
 			/* Nothing needs to be done */
@@ -855,16 +855,16 @@ gtk_source_undo_manager_add_action (GtkS
 			g_free (action);
 			g_return_if_reached ();
 		}
-		
+
 		++um->priv->actions_in_current_group;
 		action->order_in_group = um->priv->actions_in_current_group;
 
 		if (action->order_in_group == 1)
 			++um->priv->num_of_groups;
-	
+
 		um->priv->actions = g_list_prepend (um->priv->actions, action);
 	}
-	
+
 	gtk_source_undo_manager_check_list_size (um);
 
 	if (!um->priv->can_undo)
@@ -880,8 +880,8 @@ gtk_source_undo_manager_add_action (GtkS
 	}
 }
 
-static void 
-gtk_source_undo_manager_free_first_n_actions (GtkSourceUndoManager	*um, 
+static void
+gtk_source_undo_manager_free_first_n_actions (GtkSourceUndoManager	*um,
 					      gint 			 n)
 {
 	gint i;
@@ -904,21 +904,21 @@ gtk_source_undo_manager_free_first_n_act
 		um->priv->actions = g_list_delete_link (um->priv->actions,
 							um->priv->actions);
 
-		if (um->priv->actions == NULL) 
+		if (um->priv->actions == NULL)
 			return;
 	}
 }
 
-static void 
+static void
 gtk_source_undo_manager_check_list_size (GtkSourceUndoManager *um)
 {
 	gint undo_levels;
-	
+
 	g_return_if_fail (GTK_SOURCE_IS_UNDO_MANAGER (um));
 	g_return_if_fail (um->priv != NULL);
-	
+
 	undo_levels = gtk_source_undo_manager_get_max_undo_levels (um);
-	
+
 	if (undo_levels < 1)
 		return;
 
@@ -926,14 +926,14 @@ gtk_source_undo_manager_check_list_size 
 	{
 		GtkSourceUndoAction *undo_action;
 		GList *last;
-		
+
 		last = g_list_last (um->priv->actions);
 		undo_action = (GtkSourceUndoAction*) last->data;
-			
+
 		do
 		{
 			GList *tmp;
-			
+
 			if (undo_action->order_in_group == 1)
 				--um->priv->num_of_groups;
 
@@ -945,32 +945,32 @@ gtk_source_undo_manager_check_list_size 
 			tmp = g_list_previous (last);
 			um->priv->actions = g_list_delete_link (um->priv->actions, last);
 			last = tmp;
-			g_return_if_fail (last != NULL); 
+			g_return_if_fail (last != NULL);
 
 			undo_action = (GtkSourceUndoAction*) last->data;
 
-		} while ((undo_action->order_in_group > 1) || 
+		} while ((undo_action->order_in_group > 1) ||
 			 (um->priv->num_of_groups > undo_levels));
-	}	
+	}
 }
 
 /**
  * gtk_source_undo_manager_merge_action:
- * @um: a #GtkSourceUndoManager. 
+ * @um: a #GtkSourceUndoManager.
  * @undo_action: a #GtkSourceUndoAction.
- * 
+ *
  * This function tries to merge the undo action at the top of
  * the stack with a new undo action. So when we undo for example
  * typing, we can undo the whole word and not each letter by itself.
- * 
+ *
  * Return Value: %TRUE is merge was successful, %FALSE otherwise.?
  **/
-static gboolean 
-gtk_source_undo_manager_merge_action (GtkSourceUndoManager 	*um, 
+static gboolean
+gtk_source_undo_manager_merge_action (GtkSourceUndoManager 	*um,
 				      const GtkSourceUndoAction *undo_action)
 {
 	GtkSourceUndoAction *last_action;
-	
+
 	g_return_val_if_fail (GTK_SOURCE_IS_UNDO_MANAGER (um), FALSE);
 	g_return_val_if_fail (um->priv != NULL, FALSE);
 
@@ -990,7 +990,7 @@ gtk_source_undo_manager_merge_action (Gt
 	}
 
 	if (undo_action->action_type == GTK_SOURCE_UNDO_ACTION_DELETE)
-	{				
+	{
 		if ((last_action->action.delete.forward != undo_action->action.delete.forward) ||
 		    ((last_action->action.delete.start != undo_action->action.delete.start) &&
 		     (last_action->action.delete.start != undo_action->action.delete.end)))
@@ -998,14 +998,14 @@ gtk_source_undo_manager_merge_action (Gt
 			last_action->mergeable = FALSE;
 			return FALSE;
 		}
-		
+
 		if (last_action->action.delete.start == undo_action->action.delete.start)
 		{
 			gchar *str;
-			
+
 #define L  (last_action->action.delete.end - last_action->action.delete.start - 1)
 #define g_utf8_get_char_at(p,i) g_utf8_get_char(g_utf8_offset_to_pointer((p),(i)))
-		
+
 			/* Deleted with the delete key */
 			if ((g_utf8_get_char (undo_action->action.delete.text) != ' ') &&
 			    (g_utf8_get_char (undo_action->action.delete.text) != '\t') &&
@@ -1015,19 +1015,19 @@ gtk_source_undo_manager_merge_action (Gt
 				last_action->mergeable = FALSE;
 				return FALSE;
 			}
-			
-			str = g_strdup_printf ("%s%s", last_action->action.delete.text, 
+
+			str = g_strdup_printf ("%s%s", last_action->action.delete.text,
 				undo_action->action.delete.text);
-			
+
 			g_free (last_action->action.delete.text);
-			last_action->action.delete.end += (undo_action->action.delete.end - 
+			last_action->action.delete.end += (undo_action->action.delete.end -
 							   undo_action->action.delete.start);
 			last_action->action.delete.text = str;
 		}
 		else
 		{
 			gchar *str;
-			
+
 			/* Deleted with the backspace key */
 			if ((g_utf8_get_char (undo_action->action.delete.text) != ' ') &&
 			    (g_utf8_get_char (undo_action->action.delete.text) != '\t') &&
@@ -1038,9 +1038,9 @@ gtk_source_undo_manager_merge_action (Gt
 				return FALSE;
 			}
 
-			str = g_strdup_printf ("%s%s", undo_action->action.delete.text, 
+			str = g_strdup_printf ("%s%s", undo_action->action.delete.text,
 				last_action->action.delete.text);
-			
+
 			g_free (last_action->action.delete.text);
 			last_action->action.delete.start = undo_action->action.delete.start;
 			last_action->action.delete.text = str;
@@ -1049,10 +1049,10 @@ gtk_source_undo_manager_merge_action (Gt
 	else if (undo_action->action_type == GTK_SOURCE_UNDO_ACTION_INSERT)
 	{
 		gchar* str;
-		
+
 #define I (last_action->action.insert.chars - 1)
-		
-		if ((undo_action->action.insert.pos != 
+
+		if ((undo_action->action.insert.pos !=
 		     	(last_action->action.insert.pos + last_action->action.insert.chars)) ||
 		    ((g_utf8_get_char (undo_action->action.insert.text) != ' ') &&
 		      (g_utf8_get_char (undo_action->action.insert.text) != '\t') &&
@@ -1064,9 +1064,9 @@ gtk_source_undo_manager_merge_action (Gt
 			return FALSE;
 		}
 
-		str = g_strdup_printf ("%s%s", last_action->action.insert.text, 
+		str = g_strdup_printf ("%s%s", last_action->action.insert.text,
 				undo_action->action.insert.text);
-		
+
 		g_free (last_action->action.insert.text);
 		last_action->action.insert.length += undo_action->action.insert.length;
 		last_action->action.insert.text = str;
@@ -1080,7 +1080,7 @@ gtk_source_undo_manager_merge_action (Gt
 	else
 		/* Unknown action inside undo merge encountered */
 		g_return_val_if_reached (TRUE);
-		
+
 	return TRUE;
 }
 
@@ -1098,7 +1098,7 @@ gtk_source_undo_manager_set_max_undo_lev
 				  	     gint			 max_undo_levels)
 {
 	gint old_levels;
-	
+
 	g_return_if_fail (um != NULL);
 	g_return_if_fail (GTK_SOURCE_IS_UNDO_MANAGER (um));
 
@@ -1107,7 +1107,7 @@ gtk_source_undo_manager_set_max_undo_lev
 
 	if (max_undo_levels < 1)
 		return;
-		
+
 	if (old_levels > max_undo_levels)
 	{
 		/* strip redo actions first */
@@ -1116,7 +1116,7 @@ gtk_source_undo_manager_set_max_undo_lev
 			gtk_source_undo_manager_free_first_n_actions (um, 1);
 			um->priv->next_redo--;
 		}
-		
+
 		/* now remove undo actions if necessary */
 		gtk_source_undo_manager_check_list_size (um);
 
@@ -1142,7 +1142,7 @@ gtk_source_undo_manager_modified_changed
 {
 	GtkSourceUndoAction *action;
 	GList *list;
-	
+
 	g_return_if_fail (GTK_SOURCE_IS_UNDO_MANAGER (um));
 	g_return_if_fail (um->priv != NULL);
 
@@ -1157,7 +1157,7 @@ gtk_source_undo_manager_modified_changed
 		action = NULL;
 
 	if (gtk_text_buffer_get_modified (buffer) == FALSE)
-	{	
+	{
 		if (action != NULL)
 			action->mergeable = FALSE;
 
@@ -1178,7 +1178,7 @@ gtk_source_undo_manager_modified_changed
 
 		return;
 	}
-	
+
 	/* gtk_text_buffer_get_modified (buffer) == TRUE */
 
 	g_return_if_fail (um->priv->modified_action == NULL);
============================================================
--- pidgin/gtksourceundomanager.h	f85b477fc4ed6da93f79e4ce3374888e1e8edd8f
+++ pidgin/gtksourceundomanager.h	b236765b527793a1025b6348d201e594c44def97
@@ -4,8 +4,8 @@
  * This file is part of GtkSourceView
  *
  * Copyright (C) 1998, 1999 Alex Roberts, Evan Lawrence
- * Copyright (C) 2000, 2001 Chema Celorio, Paolo Maggi 
- * Copyright (C) 2002, 2003 Paolo Maggi 
+ * Copyright (C) 2000, 2001 Chema Celorio, Paolo Maggi
+ * Copyright (C) 2002, 2003 Paolo Maggi
  *
  * This program is free software; you can redistribute it and/or modify
  * it under the terms of the GNU General Public License as published by
@@ -19,10 +19,10 @@
  *
  * You should have received a copy of the GNU General Public License
  * along with this program; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, 
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor,
  * Boston, MA 02111-1301, USA. * *
  */
- 
+
 #ifndef __GTK_SOURCE_UNDO_MANAGER_H__
 #define __GTK_SOURCE_UNDO_MANAGER_H__
 
@@ -44,7 +44,7 @@ struct _GtkSourceUndoManager
 struct _GtkSourceUndoManager
 {
 	GObject base;
-	
+
 	GtkSourceUndoManagerPrivate *priv;
 };
 
@@ -67,14 +67,14 @@ void			gtk_source_undo_manager_redo 		(G
 void			gtk_source_undo_manager_undo 		(GtkSourceUndoManager 	*um);
 void			gtk_source_undo_manager_redo 		(GtkSourceUndoManager 	*um);
 
-void			gtk_source_undo_manager_begin_not_undoable_action 
+void			gtk_source_undo_manager_begin_not_undoable_action
 								(GtkSourceUndoManager	*um);
-void			gtk_source_undo_manager_end_not_undoable_action 
+void			gtk_source_undo_manager_end_not_undoable_action
 								(GtkSourceUndoManager	*um);
 
-gint			gtk_source_undo_manager_get_max_undo_levels 
+gint			gtk_source_undo_manager_get_max_undo_levels
 								(GtkSourceUndoManager 	*um);
-void			gtk_source_undo_manager_set_max_undo_levels 
+void			gtk_source_undo_manager_set_max_undo_levels
 								(GtkSourceUndoManager 	*um,
 				  	     			 gint		 	 undo_levels);
 
============================================================
--- pidgin/gtkstatusbox.c	156fbde8516ee4c75d1b6493adcbe95b3f4ed03f
+++ pidgin/gtkstatusbox.c	1c240a08be60e8a2d1ee1c4b4de42639f3a27577
@@ -1646,7 +1646,7 @@ treeview_button_release_cb(GtkWidget *wi
 			pidgin_status_box_popdown (status_box);
 			return TRUE;
 		} else if (ewidget == status_box->toggle_button) {
-			status_box->popup_in_progress = TRUE;		
+			status_box->popup_in_progress = TRUE;
 		}
 
 		/* released outside treeview */
@@ -1698,7 +1698,7 @@ treeview_key_press_event(GtkWidget *widg
 				gtk_tree_path_free (path);
 				return ret;
 			}
-		} 
+		}
 	}
 	return FALSE;
 }
@@ -1777,9 +1777,9 @@ pidgin_status_box_init (PidginStatusBox 
 	status_box->vsep = gtk_vseparator_new();
 	status_box->arrow = gtk_arrow_new (GTK_ARROW_DOWN, GTK_SHADOW_NONE);
 
-	status_box->store = gtk_list_store_new(NUM_COLUMNS, G_TYPE_INT, GDK_TYPE_PIXBUF, G_TYPE_STRING, G_TYPE_STRING, 
+	status_box->store = gtk_list_store_new(NUM_COLUMNS, G_TYPE_INT, GDK_TYPE_PIXBUF, G_TYPE_STRING, G_TYPE_STRING,
 					       G_TYPE_STRING, G_TYPE_POINTER, GDK_TYPE_PIXBUF, G_TYPE_BOOLEAN);
-	status_box->dropdown_store = gtk_list_store_new(NUM_COLUMNS, G_TYPE_INT, GDK_TYPE_PIXBUF, G_TYPE_STRING, 
+	status_box->dropdown_store = gtk_list_store_new(NUM_COLUMNS, G_TYPE_INT, GDK_TYPE_PIXBUF, G_TYPE_STRING,
 							G_TYPE_STRING, G_TYPE_STRING, G_TYPE_POINTER, G_TYPE_STRING, G_TYPE_BOOLEAN);
 
 	gtk_cell_view_set_model(GTK_CELL_VIEW(status_box->cell_view), GTK_TREE_MODEL(status_box->store));
============================================================
--- pidgin/gtkthemes.c	7fbff18d2f55de2dd1262f95f2d89e776ff4c7d9
+++ pidgin/gtkthemes.c	2b68e4edbf5cc62696680e01cb92eb578a828064
@@ -83,7 +83,7 @@ void pidgin_themes_remove_smiley_theme(c
 {
 	char *theme_dir = NULL, *last_slash = NULL;
 	g_return_if_fail(NULL != file);
-	
+
 	if (!g_file_test(file, G_FILE_TEST_EXISTS)) return;
 	if ((theme_dir = g_strdup(file)) == NULL) return ;
 
@@ -169,12 +169,12 @@ pidgin_themes_destroy_smiley_theme_smile
 	for (wer = theme->list; wer != NULL; wer = theme->list) {
 		while (wer->smileys) {
 			GtkIMHtmlSmiley *uio = wer->smileys->data;
-			
+
 			if (uio->imhtml) {
 				g_signal_handlers_disconnect_matched(uio->imhtml, G_SIGNAL_MATCH_DATA,
 					0, 0, NULL, NULL, uio);
 			}
-				
+
 			if (uio->icon)
 				g_object_unref(uio->icon);
 			if (g_hash_table_lookup(already_freed, uio->file) == NULL) {
============================================================
--- pidgin/gtkutils.c	8a2ac39d3f02b6962cd1491cbd7ca1cd2c1ab0fa
+++ pidgin/gtkutils.c	329699a4fd9bf70a6492ee780c584cb3db7b2a0f
@@ -570,7 +570,7 @@ aop_menu_item_new(GtkSizeGroup *sg, GdkP
 	gtk_widget_show (label);
 	gtk_label_set_justify(GTK_LABEL(label), GTK_JUSTIFY_LEFT);
 	gtk_misc_set_alignment(GTK_MISC(label), 0.0, 0.5);
-	
+
 	gtk_container_add(GTK_CONTAINER(item), hbox);
 	gtk_box_pack_start(GTK_BOX(hbox), image, FALSE, FALSE, 0);
 	gtk_box_pack_start(GTK_BOX(hbox), label, TRUE, TRUE, 0);
@@ -3243,7 +3243,7 @@ const char *pidgin_get_dim_grey_string(G
  	style = gtk_widget_get_style(widget);
 	if (!style)
 		return "dim grey";
-	
+
 	snprintf(dim_grey_string, sizeof(dim_grey_string), "#%02x%02x%02x",
 	style->text_aa[GTK_STATE_NORMAL].red >> 8,
 	style->text_aa[GTK_STATE_NORMAL].green >> 8,
============================================================
--- pidgin/gtkutils.h	c0990a217a390c385d9bbd8fde11fcebf7b292ed
+++ pidgin/gtkutils.h	f882d6c575115143ad3280f617c727a3b2e8c597
@@ -136,7 +136,7 @@ GtkWidget *pidgin_create_dialog(const ch
  * Retrieves the main content box (vbox) from a pidgin dialog window
  *
  * @param dialog       The dialog window
- * @param homogeneous  TRUE if all children are to be given equal space allotments. 
+ * @param homogeneous  TRUE if all children are to be given equal space allotments.
  * @param spacing      the number of pixels to place by default between children
  *
  * @since 2.4.0
@@ -184,8 +184,8 @@ void pidgin_toggle_sensitive(GtkWidget *
 void pidgin_toggle_sensitive(GtkWidget *widget, GtkWidget *to_toggle);
 
 /**
- * Checks if text has been entered into a GtkTextEntry widget.  If 
- * so, the GTK_RESPONSE_OK on the given dialog is set to TRUE.  
+ * Checks if text has been entered into a GtkTextEntry widget.  If
+ * so, the GTK_RESPONSE_OK on the given dialog is set to TRUE.
  * Otherwise GTK_RESPONSE_OK is set to FALSE.
  *
  * @param entry  The text entry widget.
@@ -473,7 +473,7 @@ gboolean pidgin_parse_x_im_contact(const
 									 char **ret_alias);
 
 /**
- * Sets an ATK name for a given widget.  Also sets the labelled-by 
+ * Sets an ATK name for a given widget.  Also sets the labelled-by
  * and label-for ATK relationships.
  *
  * @param w The widget that we want to name.
@@ -509,10 +509,10 @@ void pidgin_menu_position_func_helper(Gt
 										gboolean *push_in, gpointer data);
 
 /**
- * A valid GtkMenuPositionFunc.  This is used to determine where 
- * to draw context menus when the menu is activated with the 
- * keyboard (shift+F10).  If the menu is activated with the mouse, 
- * then you should just use GTK's built-in position function, 
+ * A valid GtkMenuPositionFunc.  This is used to determine where
+ * to draw context menus when the menu is activated with the
+ * keyboard (shift+F10).  If the menu is activated with the mouse,
+ * then you should just use GTK's built-in position function,
  * because it does a better job of positioning the menu.
  *
  * @param menu The menu we are positioning.
@@ -612,13 +612,13 @@ void pidgin_clear_cursor(GtkWidget *widg
  * @param parent      The parent window
  * @param callback    The callback to call when the window is closed. If the user chose an icon, the char* argument will point to its path
  * @param data        Data to pass to @a callback
- * @return            The file dialog 
+ * @return            The file dialog
  */
 GtkWidget *pidgin_buddy_icon_chooser_new(GtkWindow *parent, void(*callback)(const char*,gpointer), gpointer data);
 
 /**
  * Converts a buddy icon to the required size and format
- * 
+ *
  * @param plugin     The prpl to convert the icon
  * @param path       The path of a file to convert
  * @param len        If not @c NULL, the length of the returned data will be set here.
@@ -706,7 +706,7 @@ gboolean pidgin_tree_view_search_equal_f
 			const gchar *key, GtkTreeIter *iter, gpointer data);
 
 /**
- * Sets or resets a window to 'urgent,' by setting the URGENT hint in X 
+ * Sets or resets a window to 'urgent,' by setting the URGENT hint in X
  * or blinking in the win32 taskbar
  *
  * @param window  The window to draw attention to
============================================================
--- pidgin/gtkwhiteboard.c	1f5be5b01bd34a3b2e375a1fa4679390a89c3095
+++ pidgin/gtkwhiteboard.c	42cd1c6e7911fad5a66c97a71879d08a697c80cc
@@ -857,7 +857,7 @@ static void color_select_dialog(GtkWidge
 {
 	GdkColor color;
 	GtkColorSelectionDialog *dialog;
-	
+
 	dialog = (GtkColorSelectionDialog *)gtk_color_selection_dialog_new(_("Select color"));
 
 	g_signal_connect(G_OBJECT(dialog->colorsel), "color-changed",
============================================================
--- pidgin/pidgincombobox.c	7c2465f8154774626463d91016664bcf78108cd4
+++ pidgin/pidgincombobox.c	c889abb6b76e055ff7e03d7edc173474028c57ad
@@ -112,7 +112,7 @@ struct _GtkComboBoxPrivate
 /* While debugging this evil code, I have learned that
  * there are actually 4 modes to this widget, which can
  * be characterized as follows
- * 
+ *
  * 1) menu mode, no child added
  *
  * tree_view -> NULL
@@ -127,9 +127,9 @@ struct _GtkComboBoxPrivate
  * popup_frame -> NULL
  *
  * 2) menu mode, child added
- * 
+ *
  * tree_view -> NULL
- * cell_view -> NULL 
+ * cell_view -> NULL
  * cell_view_frame -> NULL
  * button -> GtkToggleButton set_parent to combo
  * box -> NULL
@@ -140,7 +140,7 @@ struct _GtkComboBoxPrivate
  * popup_frame -> NULL
  *
  * 3) list mode, no child added
- * 
+ *
  * tree_view -> GtkTreeView, child of popup_frame
  * cell_view -> GtkCellView, regular child
  * cell_view_frame -> GtkFrame, set parent to combo
@@ -164,7 +164,7 @@ struct _GtkComboBoxPrivate
  * popup_widget -> tree_view
  * popup_window -> GtkWindow
  * popup_frame -> GtkFrame, child of popup_window
- * 
+ *
  */
 
 enum {
@@ -285,9 +285,9 @@ static void     gtk_combo_box_model_row_
 						    gpointer          data);
 
 /* list */
-static void     gtk_combo_box_list_position        (GtkComboBox      *combo_box, 
-						    gint             *x, 
-						    gint             *y, 
+static void     gtk_combo_box_list_position        (GtkComboBox      *combo_box,
+						    gint             *x,
+						    gint             *y,
 						    gint             *width,
 						    gint             *height);
 
@@ -641,7 +641,7 @@ gtk_combo_box_state_changed (GtkWidget  
   if (GTK_WIDGET_REALIZED (widget))
     {
       if (combo_box->priv->tree_view && combo_box->priv->cell_view)
-	gtk_cell_view_set_background_color (GTK_CELL_VIEW (combo_box->priv->cell_view), 
+	gtk_cell_view_set_background_color (GTK_CELL_VIEW (combo_box->priv->cell_view),
 					    &widget->style->base[GTK_WIDGET_STATE (widget)]);
     }
 
@@ -694,7 +694,7 @@ gtk_combo_box_style_set (GtkWidget *widg
   gtk_combo_box_check_appearance (combo_box);
 
   if (combo_box->priv->tree_view && combo_box->priv->cell_view)
-    gtk_cell_view_set_background_color (GTK_CELL_VIEW (combo_box->priv->cell_view), 
+    gtk_cell_view_set_background_color (GTK_CELL_VIEW (combo_box->priv->cell_view),
 					&widget->style->base[GTK_WIDGET_STATE (widget)]);
 }
 
@@ -725,7 +725,7 @@ gtk_combo_box_add (GtkContainer *contain
       GTK_BIN (container)->child = NULL;
       gtk_widget_queue_resize (GTK_WIDGET (container));
     }
-  
+
   gtk_widget_set_parent (widget, GTK_WIDGET (container));
   GTK_BIN (container)->child = widget;
 
@@ -770,7 +770,7 @@ gtk_combo_box_remove (GtkContainer *cont
     appears_as_list = FALSE;
   else
     appears_as_list = TRUE;
-  
+
   if (appears_as_list)
     gtk_combo_box_list_destroy (combo_box);
   else if (GTK_IS_MENU (combo_box->priv->popup_widget))
@@ -785,7 +785,7 @@ gtk_combo_box_remove (GtkContainer *cont
       combo_box->priv->cell_view = gtk_cell_view_new ();
       gtk_widget_set_parent (combo_box->priv->cell_view, GTK_WIDGET (container));
       GTK_BIN (container)->child = combo_box->priv->cell_view;
-      
+
       gtk_widget_show (combo_box->priv->cell_view);
       gtk_cell_view_set_model (GTK_CELL_VIEW (combo_box->priv->cell_view),
 			       combo_box->priv->model);
@@ -856,7 +856,7 @@ gtk_combo_box_detacher (GtkWidget *widge
   g_signal_handlers_disconnect_by_func (menu,
 					gtk_combo_box_menu_hide,
 					combo_box);
-  
+
   combo_box->priv->popup_widget = NULL;
 }
 
@@ -940,12 +940,12 @@ gtk_combo_box_menu_position_below (GtkMe
   GdkScreen *screen;
   gint monitor_num;
   GdkRectangle monitor;
-  
+
   /* FIXME: is using the size request here broken? */
    child = GTK_BIN (combo_box)->child;
-   
+
    gdk_window_get_origin (child->window, &sx, &sy);
-   
+
    if (GTK_WIDGET_NO_WINDOW (child))
       {
 	sx += child->allocation.x;
@@ -961,20 +961,20 @@ gtk_combo_box_menu_position_below (GtkMe
    *y = sy;
 
   screen = gtk_widget_get_screen (GTK_WIDGET (combo_box));
-  monitor_num = gdk_screen_get_monitor_at_window (screen, 
+  monitor_num = gdk_screen_get_monitor_at_window (screen,
 						  GTK_WIDGET (combo_box)->window);
   gdk_screen_get_monitor_geometry (screen, monitor_num, &monitor);
-  
+
   if (*x < monitor.x)
     *x = monitor.x;
   else if (*x + req.width > monitor.x + monitor.width)
     *x = monitor.x + monitor.width - req.width;
-  
+
   if (monitor.y + monitor.height - *y - child->allocation.height >= req.height)
     *y += child->allocation.height;
   else if (*y - monitor.y >= req.height)
     *y -= req.height;
-  else if (monitor.y + monitor.height - *y - child->allocation.height > *y - monitor.y) 
+  else if (monitor.y + monitor.height - *y - child->allocation.height > *y - monitor.y)
     *y += child->allocation.height;
   else
     *y -= req.height;
@@ -1001,7 +1001,7 @@ gtk_combo_box_menu_position_over (GtkMen
   gint menu_width;
 
   g_return_if_fail (GTK_IS_COMBO_BOX (user_data));
-  
+
   combo_box = GTK_COMBO_BOX (user_data);
   widget = GTK_WIDGET (combo_box);
 
@@ -1042,7 +1042,7 @@ gtk_combo_box_menu_position_over (GtkMen
 
   /* Clamp the position on screen */
   screen_width = gdk_screen_get_width (gtk_widget_get_screen (widget));
-  
+
   if (menu_xpos < 0)
     menu_xpos = 0;
   else if ((menu_xpos + menu_width) > screen_width)
@@ -1066,13 +1066,13 @@ gtk_combo_box_menu_position (GtkMenu  *m
 
   combo_box = GTK_COMBO_BOX (user_data);
 
-  if (combo_box->priv->wrap_width > 0 || combo_box->priv->cell_view == NULL)	
+  if (combo_box->priv->wrap_width > 0 || combo_box->priv->cell_view == NULL)
     gtk_combo_box_menu_position_below (menu, x, y, push_in, user_data);
   else
     {
       menu_item = gtk_menu_get_active (GTK_MENU (combo_box->priv->popup_widget));
       if (menu_item)
-	gtk_menu_shell_select_item (GTK_MENU_SHELL (combo_box->priv->popup_widget), 
+	gtk_menu_shell_select_item (GTK_MENU_SHELL (combo_box->priv->popup_widget),
 				    menu_item);
 
       gtk_combo_box_menu_position_over (menu, x, y, push_in, user_data);
@@ -1082,9 +1082,9 @@ static void
 #endif /* Gtk 2.2 */
 
 static void
-gtk_combo_box_list_position (GtkComboBox *combo_box, 
-			     gint        *x, 
-			     gint        *y, 
+gtk_combo_box_list_position (GtkComboBox *combo_box,
+			     gint        *x,
+			     gint        *y,
 			     gint        *width,
 			     gint        *height)
 {
@@ -1095,7 +1095,7 @@ gtk_combo_box_list_position (GtkComboBox
   gint monitor_num;
   GdkRectangle monitor;
 #endif
-  
+
   sample = GTK_BIN (combo_box)->child;
 
   *width = sample->allocation.width;
@@ -1117,31 +1117,31 @@ gtk_combo_box_list_position (GtkComboBox
       *x += sample->allocation.x;
       *y += sample->allocation.y;
     }
-  
+
 #if GTK_CHECK_VERSION(2,2,0)
   screen = gtk_widget_get_screen (GTK_WIDGET (combo_box));
-  monitor_num = gdk_screen_get_monitor_at_window (screen, 
+  monitor_num = gdk_screen_get_monitor_at_window (screen,
 						  GTK_WIDGET (combo_box)->window);
   gdk_screen_get_monitor_geometry (screen, monitor_num, &monitor);
-  
+
   if (*x < monitor.x)
     *x = monitor.x;
   else if (*x + *width > monitor.x + monitor.width)
     *x = monitor.x + monitor.width - *width;
-  
+
   if (*y + sample->allocation.height + *height <= monitor.y + monitor.height)
     *y += sample->allocation.height;
   else
     *y -= *height;
 #endif /* Gtk 2.2 */
-} 
+}
 
 /**
  * gtk_combo_box_popup:
  * @combo_box: a #GtkComboBox
- * 
- * Pops up the menu or dropdown list of @combo_box. 
  *
+ * Pops up the menu or dropdown list of @combo_box.
+ *
  * This function is mostly intended for use by accessibility technologies;
  * applications should have little use for it.
  *
@@ -1151,7 +1151,7 @@ gtk_combo_box_popup (GtkComboBox *combo_
 gtk_combo_box_popup (GtkComboBox *combo_box)
 {
   gint x, y, width, height;
-  
+
   g_return_if_fail (GTK_IS_COMBO_BOX (combo_box));
 
   if (GTK_WIDGET_MAPPED (combo_box->priv->popup_widget))
@@ -1172,7 +1172,7 @@ gtk_combo_box_popup (GtkComboBox *combo_
 	  gtk_widget_set_size_request (combo_box->priv->popup_widget,
                                        MAX (width, requisition.width), -1);
 	}
-      
+
       gtk_menu_popup (GTK_MENU (combo_box->priv->popup_widget),
 		      NULL, NULL,
 #if GTK_CHECK_VERSION(2,2,0)
@@ -1187,7 +1187,7 @@ gtk_combo_box_popup (GtkComboBox *combo_
   gtk_widget_show_all (combo_box->priv->popup_frame);
   gtk_combo_box_list_position (combo_box, &x, &y, &width, &height);
 
-  gtk_widget_set_size_request (combo_box->priv->popup_window, width, -1);  
+  gtk_widget_set_size_request (combo_box->priv->popup_window, width, -1);
   gtk_window_move (GTK_WINDOW (combo_box->priv->popup_window), x, y);
 
   /* popup */
@@ -1217,7 +1217,7 @@ gtk_combo_box_popup (GtkComboBox *combo_
 /**
  * gtk_combo_box_popdown:
  * @combo_box: a #GtkComboBox
- * 
+ *
  * Hides the menu or dropdown list of @combo_box.
  *
  * This function is mostly intended for use by accessibility technologies;
@@ -1305,7 +1305,7 @@ gtk_combo_box_remeasure (GtkComboBox *co
       GtkRequisition req;
 
       if (combo_box->priv->cell_view)
-	gtk_cell_view_get_size_of_row (GTK_CELL_VIEW (combo_box->priv->cell_view), 
+	gtk_cell_view_get_size_of_row (GTK_CELL_VIEW (combo_box->priv->cell_view),
                                        path, &req);
       else
         req.width = 0;
@@ -1335,7 +1335,7 @@ gtk_combo_box_size_request (GtkWidget   
   bin_req.width = MAX (bin_req.width, combo_box->priv->width);
 
   gtk_combo_box_check_appearance (combo_box);
-      
+
   if (!combo_box->priv->tree_view)
     {
       /* menu mode */
@@ -1454,10 +1454,10 @@ gtk_combo_box_size_allocate (GtkWidget  
           if (is_rtl)
             {
               child.x += req.width;
-              child.width = MAX(1, allocation->x + allocation->width 
+              child.width = MAX(1, allocation->x + allocation->width
                 - (border_width + 1 + xthickness + 2) - child.x);
             }
-          else 
+          else
             {
               child.width = child.x;
               child.x = allocation->x + border_width + 1 + xthickness + 2;
@@ -1623,16 +1623,16 @@ gtk_combo_box_scroll_event (GtkWidget   
   GtkComboBox *combo_box = GTK_COMBO_BOX (widget);
   gint index;
   gint items;
-    
+
   index = gtk_combo_box_get_active (combo_box);
 
   if (index != -1)
     {
       items = gtk_tree_model_iter_n_children (combo_box->priv->model, NULL);
-      
+
       if (event->direction == GDK_SCROLL_UP)
         index--;
-      else 
+      else
         index++;
 
       gtk_combo_box_set_active (combo_box, CLAMP (index, 0, items - 1));
@@ -1694,15 +1694,15 @@ gtk_combo_box_menu_setup (GtkComboBox *c
                              GTK_BIN (combo_box)->child->parent);
 
       combo_box->priv->box = gtk_hbox_new (FALSE, 0);
-      gtk_container_add (GTK_CONTAINER (combo_box->priv->button), 
+      gtk_container_add (GTK_CONTAINER (combo_box->priv->button),
 			 combo_box->priv->box);
 
       combo_box->priv->separator = gtk_vseparator_new ();
-      gtk_container_add (GTK_CONTAINER (combo_box->priv->box), 
+      gtk_container_add (GTK_CONTAINER (combo_box->priv->box),
 			 combo_box->priv->separator);
 
       combo_box->priv->arrow = gtk_arrow_new (GTK_ARROW_DOWN, GTK_SHADOW_NONE);
-      gtk_container_add (GTK_CONTAINER (combo_box->priv->box), 
+      gtk_container_add (GTK_CONTAINER (combo_box->priv->box),
 			 combo_box->priv->arrow);
 
       gtk_widget_show_all (combo_box->priv->button);
@@ -1792,7 +1792,7 @@ gtk_combo_box_menu_destroy (GtkComboBox 
 
   /* unparent will remove our latest ref */
   gtk_widget_unparent (combo_box->priv->button);
-  
+
   combo_box->priv->box = NULL;
   combo_box->priv->button = NULL;
   combo_box->priv->arrow = NULL;
@@ -1895,17 +1895,17 @@ gtk_combo_box_relayout_item (GtkComboBox
   item = nth->data;
   if (nth->prev)
     last = nth->prev->data;
-  else 
+  else
     last = NULL;
   g_list_free (list);
 
   gtk_combo_box_item_get_size (combo_box, index, &cols, &rows);
-      
+
    if (combo_box->priv->col_column == -1 &&
       combo_box->priv->row_column == -1 &&
       last)
     {
-      gtk_container_child_get (GTK_CONTAINER (menu), 
+      gtk_container_child_get (GTK_CONTAINER (menu),
 			       last,
 			       "right_attach", &current_col,
 			       "top_attach", &current_row,
@@ -1926,12 +1926,12 @@ gtk_combo_box_relayout_item (GtkComboBox
 	      current_col = 0;
 	      current_row++;
 	    }
-	  
+
 	  if (!menu_occupied (GTK_MENU (menu),
 			      current_col, current_col + cols,
 			      current_row, current_row + rows))
 	    break;
-	  
+
 	  current_col++;
 	}
     }
@@ -1949,19 +1949,19 @@ gtk_combo_box_relayout (GtkComboBox *com
   GtkWidget *menu;
 
   menu = combo_box->priv->popup_widget;
-  
+
   /* do nothing unless we are in menu style and realized */
   if (combo_box->priv->tree_view || !GTK_IS_MENU_SHELL (menu))
     return;
-  
+
   /* get rid of all children */
   list = gtk_container_get_children (GTK_CONTAINER (menu));
-  
+
   for (j = g_list_last (list); j; j = j->prev)
     gtk_container_remove (GTK_CONTAINER (menu), j->data);
-  
+
   g_list_free (list);
-      
+
   /* and relayout */
   gtk_combo_box_menu_fill (combo_box);
 }
@@ -1980,7 +1980,7 @@ gtk_combo_box_menu_button_press (GtkWidg
   if (event->type == GDK_BUTTON_PRESS && event->button == 1)
     {
       combo_box->priv->popup_in_progress = TRUE;
-      
+
       gtk_menu_set_active (GTK_MENU (combo_box->priv->popup_widget),
 			   combo_box->priv->active_item);
 
@@ -2053,7 +2053,7 @@ gtk_combo_box_model_row_deleted (GtkTree
 
   if (!combo_box->priv->tree_view)
     gtk_combo_box_menu_row_deleted (model, path, user_data);
-  
+
   if (index == combo_box->priv->active_item)
     {
       gint items = gtk_tree_model_iter_n_children (model, NULL);
@@ -2090,7 +2090,7 @@ gtk_combo_box_model_rows_reordered (GtkT
   if (!combo_box->priv->tree_view)
     gtk_combo_box_menu_rows_reordered (model, path, iter, new_order, user_data);
 }
-						    
+
 static void
 gtk_combo_box_model_row_changed (GtkTreeModel     *model,
 				 GtkTreePath      *path,
@@ -2103,7 +2103,7 @@ gtk_combo_box_model_row_changed (GtkTree
   if (index == combo_box->priv->active_item &&
       combo_box->priv->cell_view)
     gtk_widget_queue_resize (GTK_WIDGET (combo_box->priv->cell_view));
-  
+
   if (combo_box->priv->tree_view)
     gtk_combo_box_list_row_changed (model, path, iter, user_data);
   else
@@ -2174,7 +2174,7 @@ gtk_combo_box_menu_rows_reordered  (GtkT
 
   gtk_combo_box_relayout (combo_box);
 }
-				    
+
 static void
 gtk_combo_box_menu_row_changed (GtkTreeModel *model,
                                 GtkTreePath  *path,
@@ -2238,12 +2238,12 @@ gtk_combo_box_list_setup (GtkComboBox *c
       gtk_frame_set_shadow_type (GTK_FRAME (combo_box->priv->cell_view_frame),
                                  GTK_SHADOW_IN);
 
-      gtk_cell_view_set_background_color (GTK_CELL_VIEW (combo_box->priv->cell_view), 
+      gtk_cell_view_set_background_color (GTK_CELL_VIEW (combo_box->priv->cell_view),
 					  &GTK_WIDGET (combo_box)->style->base[GTK_WIDGET_STATE (combo_box)]);
 
       combo_box->priv->box = gtk_event_box_new ();
       /*
-      gtk_event_box_set_visible_window (GTK_EVENT_BOX (combo_box->priv->box), 
+      gtk_event_box_set_visible_window (GTK_EVENT_BOX (combo_box->priv->box),
 					FALSE);
       */
 
@@ -2253,7 +2253,7 @@ gtk_combo_box_list_setup (GtkComboBox *c
       gtk_widget_show_all (combo_box->priv->cell_view_frame);
 
       g_signal_connect (combo_box->priv->box, "button_press_event",
-			G_CALLBACK (gtk_combo_box_list_button_pressed), 
+			G_CALLBACK (gtk_combo_box_list_button_pressed),
 			combo_box);
     }
 
@@ -2269,7 +2269,7 @@ gtk_combo_box_list_setup (GtkComboBox *c
   if (combo_box->priv->model)
     gtk_tree_view_set_model (GTK_TREE_VIEW (combo_box->priv->tree_view),
 			     combo_box->priv->model);
-    
+
   g_signal_connect (combo_box->priv->tree_view, "button_press_event",
                     G_CALLBACK (gtk_combo_box_list_button_pressed),
                     combo_box);
@@ -2494,7 +2494,7 @@ gtk_combo_box_key_press (GtkWidget   *wi
   if (combo_box->priv->model)
     items = gtk_tree_model_iter_n_children (combo_box->priv->model, NULL);
 
-  if ((event->keyval == GDK_Down || event->keyval == GDK_KP_Down) && 
+  if ((event->keyval == GDK_Down || event->keyval == GDK_KP_Down) &&
       state == GDK_MOD1_MASK)
     {
       gtk_combo_box_popup (combo_box);
@@ -2502,7 +2502,7 @@ gtk_combo_box_key_press (GtkWidget   *wi
       return TRUE;
     }
 
-  switch (event->keyval) 
+  switch (event->keyval)
     {
     case GDK_Down:
     case GDK_KP_Down:
@@ -2514,20 +2514,20 @@ gtk_combo_box_key_press (GtkWidget   *wi
       break;
     case GDK_Page_Up:
     case GDK_KP_Page_Up:
-    case GDK_Home: 
+    case GDK_Home:
     case GDK_KP_Home:
       new_index = 0;
       break;
     case GDK_Page_Down:
     case GDK_KP_Page_Down:
-    case GDK_End: 
+    case GDK_End:
     case GDK_KP_End:
       new_index = items - 1;
       break;
     default:
       return FALSE;
     }
-      
+
   if (items > 0)
     gtk_combo_box_set_active (combo_box, CLAMP (new_index, 0, items - 1));
 
@@ -2542,14 +2542,14 @@ gtk_combo_box_menu_key_press (GtkWidget 
   GtkComboBox *combo_box = GTK_COMBO_BOX (data);
   guint state = event->state & gtk_accelerator_get_default_mod_mask ();
 
-  if ((event->keyval == GDK_Up || event->keyval == GDK_KP_Up) && 
+  if ((event->keyval == GDK_Up || event->keyval == GDK_KP_Up) &&
       state == GDK_MOD1_MASK)
     {
       gtk_combo_box_popdown (combo_box);
 
       return TRUE;
     }
-  
+
   return FALSE;
 }
 
@@ -2562,35 +2562,35 @@ gtk_combo_box_list_key_press (GtkWidget 
   guint state = event->state & gtk_accelerator_get_default_mod_mask ();
 
   if (event->keyval == GDK_Escape ||
-      ((event->keyval == GDK_Up || event->keyval == GDK_KP_Up) && 
+      ((event->keyval == GDK_Up || event->keyval == GDK_KP_Up) &&
        state == GDK_MOD1_MASK))
     {
       /* reset active item -- this is incredibly lame and ugly */
       gtk_combo_box_set_active (combo_box,
 				gtk_combo_box_get_active (combo_box));
-      
+
       gtk_combo_box_popdown (combo_box);
-      
+
       return TRUE;
     }
-    
+
   if (event->keyval == GDK_Return || event->keyval == GDK_KP_Enter ||
-      event->keyval == GDK_space || event->keyval == GDK_KP_Space) 
+      event->keyval == GDK_space || event->keyval == GDK_KP_Space)
   {
     gboolean ret = FALSE;
     GtkTreeIter iter;
     GtkTreeModel *model = NULL;
-    
+
     if (combo_box->priv->model)
       {
 	GtkTreeSelection *sel = gtk_tree_view_get_selection (GTK_TREE_VIEW (combo_box->priv->tree_view));
-    
+
 	ret = gtk_tree_selection_get_selected (sel, &model, &iter);
       }
     if (ret)
       {
 	GtkTreePath *path;
-	
+
 	path = gtk_tree_model_get_path (model, &iter);
 	if (path)
 	  {
@@ -2600,7 +2600,7 @@ gtk_combo_box_list_key_press (GtkWidget 
       }
 
     gtk_combo_box_popdown (combo_box);
-    
+
     return TRUE;
   }
 
@@ -2620,7 +2620,7 @@ gtk_combo_box_list_row_changed (GtkTreeM
 
   if (width > combo_box->priv->width)
     {
-      if (combo_box->priv->cell_view) 
+      if (combo_box->priv->cell_view)
 	{
 	  gtk_widget_set_size_request (combo_box->priv->cell_view, width, -1);
 	  gtk_widget_queue_resize (combo_box->priv->cell_view);
@@ -2742,11 +2742,11 @@ gtk_combo_box_cell_layout_clear (GtkCell
   GtkWidget *menu;
   GtkComboBox *combo_box;
   GSList *i;
-  
+
   g_return_if_fail (GTK_IS_COMBO_BOX (layout));
 
   combo_box = GTK_COMBO_BOX (layout);
- 
+
   if (combo_box->priv->cell_view)
     gtk_cell_layout_clear (GTK_CELL_LAYOUT (combo_box->priv->cell_view));
 
@@ -3082,7 +3082,7 @@ gtk_combo_box_set_wrap_width (GtkComboBo
 
       gtk_combo_box_check_appearance (combo_box);
       gtk_combo_box_relayout (combo_box);
-      
+
       g_object_notify (G_OBJECT (combo_box), "wrap_width");
     }
 }
@@ -3112,9 +3112,9 @@ gtk_combo_box_set_row_span_column (GtkCo
   if (row_span != combo_box->priv->row_column)
     {
       combo_box->priv->row_column = row_span;
-      
+
       gtk_combo_box_relayout (combo_box);
- 
+
       g_object_notify (G_OBJECT (combo_box), "row_span_column");
     }
 }
@@ -3144,7 +3144,7 @@ gtk_combo_box_set_column_span_column (Gt
   if (column_span != combo_box->priv->col_column)
     {
       combo_box->priv->col_column = column_span;
-      
+
       gtk_combo_box_relayout (combo_box);
 
       g_object_notify (G_OBJECT (combo_box), "column_span_column");
@@ -3191,7 +3191,7 @@ gtk_combo_box_set_active (GtkComboBox *c
 
   if (combo_box->priv->active_item == index_)
     return;
-  
+
   gtk_combo_box_set_active_internal (combo_box, index_);
 }
 
@@ -3252,9 +3252,9 @@ gtk_combo_box_set_active_internal (GtkCo
  * gtk_combo_box_get_active_iter:
  * @combo_box: A #GtkComboBox
  * @iter: The uninitialized #GtkTreeIter.
- * 
+ *
  * Sets @iter to point to the current active item, if it exists.
- * 
+ *
  * Return value: %TRUE, if @iter was set
  *
  * Since: 2.4
@@ -3293,10 +3293,10 @@ gtk_combo_box_get_active_iter (GtkComboB
  * gtk_combo_box_set_active_iter:
  * @combo_box: A #GtkComboBox
  * @iter: The #GtkTreeIter.
- * 
- * Sets the current active item to be the one referenced by @iter. 
+ *
+ * Sets the current active item to be the one referenced by @iter.
  * @iter must correspond to a path of depth one.
- * 
+ *
  * Since: 2.4
  **/
 void
@@ -3310,7 +3310,7 @@ gtk_combo_box_set_active_iter (GtkComboB
   path = gtk_tree_model_get_path (gtk_combo_box_get_model (combo_box), iter);
   g_return_if_fail (path != NULL);
   g_return_if_fail (gtk_tree_path_get_depth (path) == 1);
-  
+
   gtk_combo_box_set_active (combo_box, gtk_tree_path_get_indices (path)[0]);
   gtk_tree_path_free (path);
 }
@@ -3320,11 +3320,11 @@ gtk_combo_box_set_active_iter (GtkComboB
  * @combo_box: A #GtkComboBox.
  * @model: A #GtkTreeModel.
  *
- * Sets the model used by @combo_box to be @model. Will unset a previously set 
+ * Sets the model used by @combo_box to be @model. Will unset a previously set
  * model (if applicable). If @model is %NULL, then it will unset the model.
- * 
- * Note that this function does not clear the cell renderers, you have to 
- * call gtk_combo_box_cell_layout_clear() yourself if you need to set up 
+ *
+ * Note that this function does not clear the cell renderers, you have to
+ * call gtk_combo_box_cell_layout_clear() yourself if you need to set up
  * different cell renderers for the new model.
  *
  * Since: 2.4
@@ -3345,7 +3345,7 @@ gtk_combo_box_set_model (GtkComboBox  *c
 
   if (model == combo_box->priv->model)
     return;
-  
+
   if (combo_box->priv->model)
     gtk_combo_box_unset_model (combo_box);
 
@@ -3368,7 +3368,7 @@ gtk_combo_box_set_model (GtkComboBox  *c
     g_signal_connect (combo_box->priv->model, "row_changed",
 		      G_CALLBACK (gtk_combo_box_model_row_changed),
 		      combo_box);
-      
+
   if (combo_box->priv->tree_view)
     {
       /* list mode */
@@ -3574,7 +3574,7 @@ gtk_combo_box_destroy (GtkObject *object
 {
   GtkComboBox *combo_box = GTK_COMBO_BOX (object);
 
-  gtk_combo_box_popdown (combo_box); 
+  gtk_combo_box_popdown (combo_box);
 
   combo_box->priv->destroying = 1;
 
@@ -3589,14 +3589,14 @@ gtk_combo_box_finalize (GObject *object)
 {
   GtkComboBox *combo_box = GTK_COMBO_BOX (object);
   GSList *i;
-  
+
   if (GTK_IS_MENU (combo_box->priv->popup_widget))
     {
       gtk_combo_box_menu_destroy (combo_box);
       gtk_menu_detach (GTK_MENU (combo_box->priv->popup_widget));
       combo_box->priv->popup_widget = NULL;
     }
-  
+
   if (GTK_IS_TREE_VIEW (combo_box->priv->tree_view))
     gtk_combo_box_list_destroy (combo_box);
 
@@ -3655,13 +3655,13 @@ get_attach_info (GtkWidget *child)
 {
   GObject *object = G_OBJECT (child);
   AttachInfo *ai = g_object_get_data (object, ATTACH_INFO_KEY);
-                                                                                                   
+
   if (!ai)
     {
       ai = g_new0 (AttachInfo, 1);
       g_object_set_data_full (object, ATTACH_INFO_KEY, ai, g_free);
     }
-                                                                                                   
+
   return ai;
 }
 
@@ -3693,25 +3693,25 @@ gtk_menu_attach (GtkMenu   *menu,
                  guint      bottom_attach)
 {
   GtkMenuShell *menu_shell;
-  
+
   g_return_if_fail (GTK_IS_MENU (menu));
   g_return_if_fail (GTK_IS_MENU_ITEM (child));
-  g_return_if_fail (child->parent == NULL || 
+  g_return_if_fail (child->parent == NULL ||
 		    child->parent == GTK_WIDGET (menu));
   g_return_if_fail (left_attach < right_attach);
   g_return_if_fail (top_attach < bottom_attach);
 
   menu_shell = GTK_MENU_SHELL (menu);
-  
+
   if (!child->parent)
     {
       AttachInfo *ai = get_attach_info (child);
-      
+
       ai->left_attach = left_attach;
       ai->right_attach = right_attach;
       ai->top_attach = top_attach;
       ai->bottom_attach = bottom_attach;
-      
+
       menu_shell->children = g_list_append (menu_shell->children, child);
 
       gtk_widget_set_parent (child, GTK_WIDGET (menu));
@@ -3741,7 +3741,7 @@ gtk_combo_box_get_active_text (GtkComboB
   /* g_return_val_if_fail (GTK_IS_LIST_STORE (combo_box->priv->model), NULL); */
 
   if (gtk_combo_box_get_active_iter (combo_box, &iter))
-    gtk_tree_model_get (gtk_combo_box_get_model(combo_box), &iter, 
+    gtk_tree_model_get (gtk_combo_box_get_model(combo_box), &iter,
     			0, &text, -1);
   return text;
 }
============================================================
--- pidgin/pidginstock.c	d6a818592327f52839d155078484ba309eec2294
+++ pidgin/pidginstock.c	0a293786b5b89fafc328be579b80ddbf64c0b24b
@@ -128,7 +128,7 @@ const SizedStockIcon sized_stock_icons [
 } SizedStockIcon;
 
 const SizedStockIcon sized_stock_icons [] = {
-	
+
 	{ PIDGIN_STOCK_STATUS_IGNORED,	"emblems", "blocked.png",	FALSE, TRUE, FALSE, FALSE, FALSE, FALSE, FALSE, NULL  },
 	{ PIDGIN_STOCK_STATUS_FOUNDER,	"emblems", "founder.png",	FALSE, TRUE, FALSE, FALSE, FALSE, FALSE, FALSE, NULL  },
 	{ PIDGIN_STOCK_STATUS_OPERATOR,	"emblems", "operator.png",	FALSE, TRUE, FALSE, FALSE, FALSE, FALSE, FALSE, NULL  },
@@ -226,7 +226,7 @@ const SizedStockIcon sized_status_icons 
 };
 
 /*****************************************************************************
- * Private functions                                                      
+ * Private functions
  *****************************************************************************/
 
 static gchar *
@@ -330,7 +330,7 @@ find_icon_file(PidginStatusIconTheme *th
 		else
 			file_full = g_build_filename(dir, size, file, NULL);
 
-		if (g_file_test(file_full, G_FILE_TEST_IS_REGULAR))			
+		if (g_file_test(file_full, G_FILE_TEST_IS_REGULAR))
 			return file_full;
 
 		g_free(file_full);
@@ -405,7 +405,7 @@ add_sized_icon(GtkIconSet *iconset, GtkI
 }
 
 /*****************************************************************************
- * Public API functions                                                      
+ * Public API functions
  *****************************************************************************/
 
 void
@@ -418,16 +418,16 @@ pidgin_stock_load_status_icon_theme(Pidg
 	GtkWidget *win;
 
 	if (theme != NULL) {
-		purple_prefs_set_string(PIDGIN_PREFS_ROOT "/status/icon-theme", 
+		purple_prefs_set_string(PIDGIN_PREFS_ROOT "/status/icon-theme",
 				        purple_theme_get_name(PURPLE_THEME(theme)));
-		purple_prefs_set_path(PIDGIN_PREFS_ROOT "/status/icon-theme-dir", 
+		purple_prefs_set_path(PIDGIN_PREFS_ROOT "/status/icon-theme-dir",
 				      purple_theme_get_dir(PURPLE_THEME(theme)));
 	}
 	else {
 		purple_prefs_set_string(PIDGIN_PREFS_ROOT "/status/icon-theme", "");
 		purple_prefs_set_path(PIDGIN_PREFS_ROOT "/status/icon-theme-dir", "");
 	}
-	
+
 	icon_factory = gtk_icon_factory_new();
 
 	gtk_icon_factory_add_default(icon_factory);
@@ -549,7 +549,7 @@ pidgin_stock_init(void)
 		GtkIconSet *iconset = gtk_icon_set_new();
 
 #define ADD_SIZED_ICON(name, size) if (sized_stock_icons[i].name) \
-					add_sized_icon(iconset, name, NULL, size, sized_stock_icons[i], FALSE);		
+					add_sized_icon(iconset, name, NULL, size, sized_stock_icons[i], FALSE);
 		ADD_SIZED_ICON(microscopic, "11");
 		ADD_SIZED_ICON(extra_small, "16");
 		ADD_SIZED_ICON(small, "22");
@@ -566,9 +566,9 @@ pidgin_stock_init(void)
 	g_object_unref(G_OBJECT(icon_factory));
 
 	/* Pre-load Status icon theme - this avoids a bug with displaying the correct icon in the tray, theme is destroyed after*/
-	if (purple_prefs_get_string(PIDGIN_PREFS_ROOT "/icon/status/theme") && 
+	if (purple_prefs_get_string(PIDGIN_PREFS_ROOT "/icon/status/theme") &&
 	   (path = purple_prefs_get_path(PIDGIN_PREFS_ROOT "/status/icon-theme-dir"))) {
-		
+
 		PidginStatusIconTheme *theme = PIDGIN_STATUS_ICON_THEME(purple_theme_loader_build(PURPLE_THEME_LOADER(loader), path));
 		pidgin_stock_load_status_icon_theme(theme);
 		g_object_unref(G_OBJECT(theme));
============================================================
--- pidgin/pidginstock.h	b63b1255cbd55bd7fe71696d8e18efdc374a0d6f
+++ pidgin/pidginstock.h	000c1c8551734db2adb38db15149875d773f8881
@@ -8,7 +8,7 @@
  * Pidgin is the legal property of its developers, whose names are too numerous
  * to list here.  Please refer to the COPYRIGHT file distributed with this
  * source distribution.
- * 
+ *
  * This program is free software; you can redistribute it and/or modify
  * it under the terms of the GNU General Public License as published by
  * the Free Software Foundation; either version 2 of the License, or
@@ -181,7 +181,7 @@
 
 /**
  * Loades all of the icons from the status icon theme into Pidgin stock
- * 
+ *
  * @param theme		the theme to load, or null to load all the default icons
  */
 void pidgin_stock_load_status_icon_theme(PidginStatusIconTheme *theme);


More information about the Commits mailing list