# HG changeset patch
# Node ID 82356bb728b4
# Parent  0f366622b622
diff --git a/libpurple/protocols/jabber/adhoccommands.c b/libpurple/protocols/jabber/adhoccommands.c
--- a/libpurple/protocols/jabber/adhoccommands.c
+++ b/libpurple/protocols/jabber/adhoccommands.c
@@ -43,7 +43,8 @@ jabber_adhoc_commands_free(JabberAdHocCo
 	g_free(cmd);
 }
 
-static void do_adhoc_ignoreme(JabberStream *js, ...) {
+static void
+do_adhoc_ignoreme(G_GNUC_UNUSED JabberStream *js, ...) {
 	/* we don't have to do anything */
 }
 
@@ -93,8 +94,8 @@ jabber_adhoc_got_buddy_list(JabberStream
 
 void
 jabber_adhoc_disco_result_cb(JabberStream *js, const char *from,
-                             JabberIqType type, const char *id,
-                             PurpleXmlNode *packet, gpointer data)
+                             JabberIqType type, G_GNUC_UNUSED const char *id,
+                             PurpleXmlNode *packet, G_GNUC_UNUSED gpointer data)
 {
 	PurpleXmlNode *query;
 	const char *node;
@@ -147,9 +148,9 @@ static void do_adhoc_action_cb(JabberStr
 }
 
 static void
-jabber_adhoc_parse(JabberStream *js, const char *from,
-                   JabberIqType type, const char *id,
-                   PurpleXmlNode *packet, gpointer data)
+jabber_adhoc_parse(JabberStream *js, const char *from, JabberIqType type,
+                   G_GNUC_UNUSED const char *id, PurpleXmlNode *packet,
+                   G_GNUC_UNUSED gpointer data)
 {
 	PurpleXmlNode *command = purple_xmlnode_get_child_with_namespace(packet, "command", "http://jabber.org/protocol/commands");
 	const char *status = purple_xmlnode_get_attrib(command,"status");
@@ -238,7 +239,8 @@ void jabber_adhoc_execute_action(PurpleB
 }
 
 static void
-jabber_adhoc_got_server_list(JabberStream *js, const char *from, PurpleXmlNode *query)
+jabber_adhoc_got_server_list(JabberStream *js, G_GNUC_UNUSED const char *from,
+                             PurpleXmlNode *query)
 {
 	PurpleXmlNode *item;
 
@@ -270,8 +272,10 @@ jabber_adhoc_got_server_list(JabberStrea
 
 static void
 jabber_adhoc_server_got_list_cb(JabberStream *js, const char *from,
-                                JabberIqType type, const char *id,
-                                PurpleXmlNode *packet, gpointer data)
+                                G_GNUC_UNUSED JabberIqType type,
+                                G_GNUC_UNUSED const char *id,
+                                PurpleXmlNode *packet,
+                                G_GNUC_UNUSED gpointer data)
 {
 	PurpleXmlNode *query = purple_xmlnode_get_child_with_namespace(packet, "query",
 			NS_DISCO_ITEMS);
diff --git a/libpurple/protocols/jabber/auth.c b/libpurple/protocols/jabber/auth.c
--- a/libpurple/protocols/jabber/auth.c
+++ b/libpurple/protocols/jabber/auth.c
@@ -116,7 +116,8 @@ auth_old_pass_cb(PurpleConnection *gc, P
 }
 
 static void
-auth_no_pass_cb(PurpleConnection *gc, PurpleRequestFields *fields)
+auth_no_pass_cb(PurpleConnection *gc,
+                G_GNUC_UNUSED PurpleRequestFields *fields)
 {
 	/* TODO: the password prompt dialog doesn't get disposed if the account disconnects */
 	PURPLE_ASSERT_CONNECTION_IS_VALID(gc);
@@ -232,9 +233,10 @@ jabber_auth_start(JabberStream *js, Purp
 	g_free(msg);
 }
 
-static void auth_old_result_cb(JabberStream *js, const char *from,
-                               JabberIqType type, const char *id,
-                               PurpleXmlNode *packet, gpointer data)
+static void
+auth_old_result_cb(JabberStream *js, G_GNUC_UNUSED const char *from,
+                   JabberIqType type, G_GNUC_UNUSED const char *id,
+                   PurpleXmlNode *packet, G_GNUC_UNUSED gpointer data)
 {
 	if (type == JABBER_IQ_RESULT) {
 		jabber_stream_set_state(js, JABBER_STREAM_POST_AUTH);
@@ -270,9 +272,10 @@ static void auth_old_result_cb(JabberStr
 	}
 }
 
-static void auth_old_cb(JabberStream *js, const char *from,
-                        JabberIqType type, const char *id,
-                        PurpleXmlNode *packet, gpointer data)
+static void
+auth_old_cb(JabberStream *js, G_GNUC_UNUSED const char *from,
+            JabberIqType type, G_GNUC_UNUSED const char *id,
+            PurpleXmlNode *packet, G_GNUC_UNUSED gpointer data)
 {
 	JabberIq *iq;
 	PurpleXmlNode *query, *x;
diff --git a/libpurple/protocols/jabber/auth_cyrus.c b/libpurple/protocols/jabber/auth_cyrus.c
--- a/libpurple/protocols/jabber/auth_cyrus.c
+++ b/libpurple/protocols/jabber/auth_cyrus.c
@@ -61,7 +61,9 @@ static void start_cyrus_wrapper(JabberSt
 
 /* Callbacks for Cyrus SASL */
 
-static int jabber_sasl_cb_realm(void *ctx, int id, const char **avail, const char **result)
+static int
+jabber_sasl_cb_realm(void *ctx, int id, G_GNUC_UNUSED const char **avail,
+                     const char **result)
 {
 	JabberStream *js = ctx;
 
@@ -169,7 +171,8 @@ static void auth_pass_cb(PurpleConnectio
 }
 
 static void
-auth_no_pass_cb(PurpleConnection *gc, PurpleRequestFields *fields)
+auth_no_pass_cb(PurpleConnection *gc,
+                G_GNUC_UNUSED PurpleRequestFields *fields)
 {
 	PurpleAccount *account;
 
@@ -400,7 +403,7 @@ jabber_auth_start_cyrus(JabberStream *js
 }
 
 static int
-jabber_sasl_cb_log(void *context, int level, const char *message)
+jabber_sasl_cb_log(G_GNUC_UNUSED void *context, int level, const char *message)
 {
 	if(level <= SASL_LOG_TRACE)
 		purple_debug_info("sasl", "%s\n", message);
@@ -610,7 +613,8 @@ jabber_cyrus_handle_success(JabberStream
 }
 
 static JabberSaslState
-jabber_cyrus_handle_failure(JabberStream *js, PurpleXmlNode *packet,
+jabber_cyrus_handle_failure(JabberStream *js,
+                            G_GNUC_UNUSED PurpleXmlNode *packet,
                             PurpleXmlNode **reply, char **error)
 {
 	if (js->auth_fail_count++ < 5) {
diff --git a/libpurple/protocols/jabber/auth_digest_md5.c b/libpurple/protocols/jabber/auth_digest_md5.c
--- a/libpurple/protocols/jabber/auth_digest_md5.c
+++ b/libpurple/protocols/jabber/auth_digest_md5.c
@@ -29,8 +29,9 @@
 #include "jabber.h"
 
 static JabberSaslState
-digest_md5_start(JabberStream *js, PurpleXmlNode *packet, PurpleXmlNode **response,
-                 char **error)
+digest_md5_start(G_GNUC_UNUSED JabberStream *js,
+                 G_GNUC_UNUSED PurpleXmlNode *packet, PurpleXmlNode **response,
+                 G_GNUC_UNUSED char **error)
 {
 	PurpleXmlNode *auth = purple_xmlnode_new("auth");
 	purple_xmlnode_set_namespace(auth, NS_XMPP_SASL);
diff --git a/libpurple/protocols/jabber/auth_plain.c b/libpurple/protocols/jabber/auth_plain.c
--- a/libpurple/protocols/jabber/auth_plain.c
+++ b/libpurple/protocols/jabber/auth_plain.c
@@ -74,7 +74,8 @@ static void disallow_plaintext_auth(Purp
 }
 
 static JabberSaslState
-jabber_plain_start(JabberStream *js, PurpleXmlNode *packet, PurpleXmlNode **response, char **error)
+jabber_plain_start(JabberStream *js, G_GNUC_UNUSED PurpleXmlNode *packet,
+                   PurpleXmlNode **response, G_GNUC_UNUSED char **error)
 {
 	PurpleAccount *account = purple_connection_get_account(js->gc);
 	char *msg;
diff --git a/libpurple/protocols/jabber/auth_scram.c b/libpurple/protocols/jabber/auth_scram.c
--- a/libpurple/protocols/jabber/auth_scram.c
+++ b/libpurple/protocols/jabber/auth_scram.c
@@ -252,7 +252,8 @@ err:
 }
 
 static gboolean
-parse_server_step2(JabberScramData *data, const char *challenge, gchar **out_verifier)
+parse_server_step2(G_GNUC_UNUSED JabberScramData *data, const char *challenge,
+                   char **out_verifier)
 {
 	char **tokens;
 	char *token;
@@ -354,7 +355,8 @@ static gchar *escape_username(const gcha
 }
 
 static JabberSaslState
-scram_start(JabberStream *js, PurpleXmlNode *mechanisms, PurpleXmlNode **out, char **error)
+scram_start(JabberStream *js, G_GNUC_UNUSED PurpleXmlNode *mechanisms,
+            PurpleXmlNode **out, char **error)
 {
 	PurpleXmlNode *reply;
 	JabberScramData *data;
diff --git a/libpurple/protocols/jabber/auth_webex.c b/libpurple/protocols/jabber/auth_webex.c
--- a/libpurple/protocols/jabber/auth_webex.c
+++ b/libpurple/protocols/jabber/auth_webex.c
@@ -39,7 +39,8 @@ static PurpleXmlNode *finish_webex_authe
 }
 
 static JabberSaslState
-jabber_webex_start(JabberStream *js, PurpleXmlNode *packet, PurpleXmlNode **response, char **error)
+jabber_webex_start(JabberStream *js, G_GNUC_UNUSED PurpleXmlNode *packet,
+                   PurpleXmlNode **response, G_GNUC_UNUSED char **error)
 {
 	*response = finish_webex_authentication(js);
 	return JABBER_SASL_STATE_OK;
diff --git a/libpurple/protocols/jabber/buddy.c b/libpurple/protocols/jabber/buddy.c
--- a/libpurple/protocols/jabber/buddy.c
+++ b/libpurple/protocols/jabber/buddy.c
@@ -439,8 +439,8 @@ static PurpleXmlNode *insert_tag_to_pare
  * Send vCard info to Jabber server
  */
 void
-jabber_set_info(PurpleProtocolServer *protocol_server, PurpleConnection *gc,
-                const gchar *info)
+jabber_set_info(G_GNUC_UNUSED PurpleProtocolServer *protocol_server,
+                PurpleConnection *gc, const char *info)
 {
 	PurpleImage *img;
 	JabberIq *iq;
@@ -533,7 +533,7 @@ jabber_set_info(PurpleProtocolServer *pr
 }
 
 void
-jabber_set_buddy_icon(PurpleProtocolServer *protocol_server,
+jabber_set_buddy_icon(G_GNUC_UNUSED PurpleProtocolServer *protocol_server,
                       PurpleConnection *gc, PurpleImage *img)
 {
 	PurpleAccount *account = purple_connection_get_account(gc);
@@ -900,9 +900,10 @@ static void jabber_buddy_info_remove_id(
 	}
 }
 
-static void jabber_vcard_save_mine(JabberStream *js, const char *from,
-                                   JabberIqType type, const char *id,
-                                   PurpleXmlNode *packet, gpointer data)
+static void
+jabber_vcard_save_mine(JabberStream *js, G_GNUC_UNUSED const char *from,
+                       JabberIqType type, G_GNUC_UNUSED const char *id,
+                       PurpleXmlNode *packet, G_GNUC_UNUSED gpointer data)
 {
 	PurpleXmlNode *vcard, *photo, *binval;
 	char *txt, *vcard_hash = NULL;
@@ -1237,9 +1238,10 @@ static gboolean jbir_equal(gconstpointer
 	return purple_strequal(resource_1, resource_2);
 }
 
-static void jabber_version_parse(JabberStream *js, const char *from,
-                                 JabberIqType type, const char *id,
-                                 PurpleXmlNode *packet, gpointer data)
+static void
+jabber_version_parse(G_GNUC_UNUSED JabberStream *js, const char *from,
+                     JabberIqType type, const char *id, PurpleXmlNode *packet,
+                     gpointer data)
 {
 	JabberBuddyInfo *jbi = data;
 	PurpleXmlNode *query;
@@ -1356,9 +1358,10 @@ static void jabber_last_parse(JabberStre
 	jabber_buddy_info_show_if_ready(jbi);
 }
 
-static void jabber_last_offline_parse(JabberStream *js, const char *from,
-									  JabberIqType type, const char *id,
-									  PurpleXmlNode *packet, gpointer data)
+static void
+jabber_last_offline_parse(G_GNUC_UNUSED JabberStream *js,
+                          G_GNUC_UNUSED const char *from, JabberIqType type,
+                          const char *id, PurpleXmlNode *packet, gpointer data)
 {
 	JabberBuddyInfo *jbi = data;
 	PurpleXmlNode *query;
@@ -1385,9 +1388,10 @@ static void jabber_last_offline_parse(Ja
 	jabber_buddy_info_show_if_ready(jbi);
 }
 
-static void jabber_time_parse(JabberStream *js, const char *from,
-                              JabberIqType type, const char *id,
-                              PurpleXmlNode *packet, gpointer data)
+static void
+jabber_time_parse(G_GNUC_UNUSED JabberStream *js, const char *from,
+                  JabberIqType type, const char *id, PurpleXmlNode *packet,
+                  gpointer data)
 {
 	JabberBuddyInfo *jbi = data;
 	JabberBuddyResource *jbr;
@@ -1608,7 +1612,7 @@ static void jabber_buddy_get_info_for_ji
 }
 
 void
-jabber_buddy_get_info(PurpleProtocolServer *protocol_server,
+jabber_buddy_get_info(G_GNUC_UNUSED PurpleProtocolServer *protocol_server,
                       PurpleConnection *gc, const char *who)
 {
 	JabberStream *js = purple_connection_get_protocol_data(gc);
@@ -1662,7 +1666,8 @@ static void jabber_buddy_set_invisibilit
 	purple_xmlnode_free(presence);
 }
 
-static void jabber_buddy_make_invisible(PurpleBlistNode *node, gpointer data)
+static void
+jabber_buddy_make_invisible(PurpleBlistNode *node, G_GNUC_UNUSED gpointer data)
 {
 	PurpleBuddy *buddy;
 	PurpleConnection *gc;
@@ -1677,7 +1682,8 @@ static void jabber_buddy_make_invisible(
 	jabber_buddy_set_invisibility(js, purple_buddy_get_name(buddy), TRUE);
 }
 
-static void jabber_buddy_make_visible(PurpleBlistNode *node, gpointer data)
+static void
+jabber_buddy_make_visible(PurpleBlistNode *node, G_GNUC_UNUSED gpointer data)
 {
 	PurpleBuddy *buddy;
 	PurpleConnection *gc;
@@ -1707,7 +1713,7 @@ static void cancel_presence_notification
 
 static void
 jabber_buddy_cancel_presence_notification(PurpleBlistNode *node,
-                                          gpointer data)
+                                          G_GNUC_UNUSED gpointer data)
 {
 	PurpleBuddy *buddy;
 	PurpleAccount *account;
@@ -1730,7 +1736,8 @@ jabber_buddy_cancel_presence_notificatio
 	g_free(msg);
 }
 
-static void jabber_buddy_rerequest_auth(PurpleBlistNode *node, gpointer data)
+static void
+jabber_buddy_rerequest_auth(PurpleBlistNode *node, G_GNUC_UNUSED gpointer data)
 {
 	PurpleBuddy *buddy;
 	PurpleConnection *gc;
@@ -1745,8 +1752,8 @@ static void jabber_buddy_rerequest_auth(
 	jabber_presence_subscription_set(js, purple_buddy_get_name(buddy), "subscribe");
 }
 
-
-static void jabber_buddy_unsubscribe(PurpleBlistNode *node, gpointer data)
+static void
+jabber_buddy_unsubscribe(PurpleBlistNode *node, G_GNUC_UNUSED gpointer data)
 {
 	PurpleBuddy *buddy;
 	PurpleConnection *gc;
@@ -1761,7 +1768,9 @@ static void jabber_buddy_unsubscribe(Pur
 	jabber_presence_subscription_set(js, purple_buddy_get_name(buddy), "unsubscribe");
 }
 
-static void jabber_buddy_login(PurpleBlistNode *node, gpointer data) {
+static void
+jabber_buddy_login(PurpleBlistNode *node, G_GNUC_UNUSED gpointer data)
+{
 	if(PURPLE_IS_BUDDY(node)) {
 		/* simply create a directed presence of the current status */
 		PurpleBuddy *buddy = (PurpleBuddy *) node;
@@ -1787,7 +1796,9 @@ static void jabber_buddy_login(PurpleBli
 	}
 }
 
-static void jabber_buddy_logout(PurpleBlistNode *node, gpointer data) {
+static void
+jabber_buddy_logout(PurpleBlistNode *node, G_GNUC_UNUSED gpointer data)
+{
 	if(PURPLE_IS_BUDDY(node)) {
 		/* simply create a directed unavailable presence */
 		PurpleBuddy *buddy = (PurpleBuddy *) node;
@@ -1893,7 +1904,8 @@ static GList *jabber_buddy_menu(PurpleBu
 }
 
 GList *
-jabber_blist_node_menu(PurpleProtocolClient *client, PurpleBlistNode *node)
+jabber_blist_node_menu(G_GNUC_UNUSED PurpleProtocolClient *client,
+                       PurpleBlistNode *node)
 {
 	if(PURPLE_IS_BUDDY(node)) {
 		return jabber_buddy_menu((PurpleBuddy *) node);
@@ -1903,16 +1915,20 @@ jabber_blist_node_menu(PurpleProtocolCli
 }
 
 
-static void user_search_result_add_buddy_cb(PurpleConnection *gc, GList *row, void *user_data)
+static void
+user_search_result_add_buddy_cb(PurpleConnection *gc, GList *row,
+                                G_GNUC_UNUSED gpointer user_data)
 {
 	/* XXX find out the jid */
 	purple_blist_request_add_buddy(purple_connection_get_account(gc),
 			g_list_nth_data(row, 0), NULL, NULL);
 }
 
-static void user_search_result_cb(JabberStream *js, const char *from,
-                                  JabberIqType type, const char *id,
-                                  PurpleXmlNode *packet, gpointer data)
+static void
+user_search_result_cb(JabberStream *js, G_GNUC_UNUSED const char *from,
+                      G_GNUC_UNUSED JabberIqType type,
+                      G_GNUC_UNUSED const char *id, PurpleXmlNode *packet,
+                      G_GNUC_UNUSED gpointer data)
 {
 	PurpleNotifySearchResults *results;
 	PurpleNotifySearchColumn *column;
@@ -2052,7 +2068,9 @@ struct user_search_info {
 	char *directory_server;
 };
 
-static void user_search_cancel_cb(struct user_search_info *usi, PurpleRequestFields *fields)
+static void
+user_search_cancel_cb(struct user_search_info *usi,
+                      G_GNUC_UNUSED PurpleRequestFields *fields)
 {
 	g_free(usi->directory_server);
 	g_free(usi);
@@ -2090,9 +2108,11 @@ static void user_search_cb(struct user_s
 	g_free(usi);
 }
 
-static void user_search_fields_result_cb(JabberStream *js, const char *from,
-                                         JabberIqType type, const char *id,
-                                         PurpleXmlNode *packet, gpointer data)
+static void
+user_search_fields_result_cb(JabberStream *js, const char *from,
+                             JabberIqType type, G_GNUC_UNUSED const char *id,
+                             PurpleXmlNode *packet,
+                             G_GNUC_UNUSED gpointer data)
 {
 	PurpleXmlNode *query, *x;
 
diff --git a/libpurple/protocols/jabber/caps.c b/libpurple/protocols/jabber/caps.c
--- a/libpurple/protocols/jabber/caps.c
+++ b/libpurple/protocols/jabber/caps.c
@@ -111,7 +111,7 @@ static void jabber_caps_store_client(gpo
 }
 
 static gboolean
-do_jabber_caps_store(gpointer data)
+do_jabber_caps_store(G_GNUC_UNUSED gpointer data)
 {
 	char *str;
 	int length = 0;
@@ -249,8 +249,10 @@ jabber_caps_get_info_complete(jabber_cap
 }
 
 static void
-jabber_caps_client_iqcb(JabberStream *js, const char *from, JabberIqType type,
-                        const char *id, PurpleXmlNode *packet, gpointer data)
+jabber_caps_client_iqcb(G_GNUC_UNUSED JabberStream *js,
+                        G_GNUC_UNUSED const char *from, JabberIqType type,
+                        G_GNUC_UNUSED const char *id, PurpleXmlNode *packet,
+                        gpointer data)
 {
 	jabber_caps_cbplususerdata *userdata = data;
 	PurpleXmlNode *query = NULL;
diff --git a/libpurple/protocols/jabber/chat.c b/libpurple/protocols/jabber/chat.c
--- a/libpurple/protocols/jabber/chat.c
+++ b/libpurple/protocols/jabber/chat.c
@@ -32,8 +32,8 @@
 #include "data.h"
 
 GList *
-jabber_chat_info(PurpleProtocolChat *protocol_chat,
-                 PurpleConnection *connection)
+jabber_chat_info(G_GNUC_UNUSED PurpleProtocolChat *protocol_chat,
+                 G_GNUC_UNUSED PurpleConnection *connection)
 {
 	GList *m = NULL;
 	PurpleProtocolChatEntry *pce;
@@ -112,7 +112,7 @@ JabberChat *jabber_chat_find(JabberStrea
 }
 
 static gboolean
-find_by_id_cb(gpointer key, gpointer value, gpointer user_data)
+find_by_id_cb(G_GNUC_UNUSED gpointer key, gpointer value, gpointer user_data)
 {
 	JabberChat *chat = value;
 
@@ -194,7 +194,9 @@ void jabber_chat_invite(PurpleConnection
 void jabber_chat_member_free(JabberChatMember *jcm);
 
 gchar *
-jabber_get_chat_name(PurpleProtocolChat *protocol_chat, GHashTable *data) {
+jabber_get_chat_name(G_GNUC_UNUSED PurpleProtocolChat *protocol_chat,
+                     GHashTable *data)
+{
 	char *room, *server, *chat_name = NULL;
 
 	room = g_hash_table_lookup(data, "room");
@@ -212,9 +214,10 @@ static void insert_in_hash_table(gpointe
 	g_hash_table_insert(hash_table, g_strdup(key), g_strdup(value));
 }
 
-static JabberChat *jabber_chat_new(JabberStream *js, const char *room,
-                                   const char *server, const char *handle,
-                                   const char *password, GHashTable *data)
+static JabberChat *
+jabber_chat_new(JabberStream *js, const char *room, const char *server,
+                const char *handle, G_GNUC_UNUSED const char *password,
+                GHashTable *data)
 {
 	JabberChat *chat;
 	char *jid;
@@ -372,8 +375,8 @@ void jabber_chat_join(PurpleConnection *
 }
 
 void
-jabber_chat_leave(PurpleProtocolChat *protocol_chat, PurpleConnection *gc,
-                  gint id)
+jabber_chat_leave(G_GNUC_UNUSED PurpleProtocolChat *protocol_chat,
+                  PurpleConnection *gc, gint id)
 {
 	JabberStream *js = purple_connection_get_protocol_data(gc);
 	JabberChat *chat = jabber_chat_find_by_id(js, id);
@@ -417,7 +420,7 @@ gboolean jabber_chat_find_buddy(PurpleCh
 }
 
 gchar *
-jabber_chat_user_real_name(PurpleProtocolChat *protocol_chat,
+jabber_chat_user_real_name(G_GNUC_UNUSED PurpleProtocolChat *protocol_chat,
                            PurpleConnection *gc, gint id, const gchar *who)
 {
 	JabberStream *js = purple_connection_get_protocol_data(gc);
@@ -455,9 +458,11 @@ static void jabber_chat_room_configure_x
 	jabber_iq_send(iq);
 }
 
-static void jabber_chat_room_configure_cb(JabberStream *js, const char *from,
-                                          JabberIqType type, const char *id,
-                                          PurpleXmlNode *packet, gpointer data)
+static void
+jabber_chat_room_configure_cb(JabberStream *js, const char *from,
+                              JabberIqType type, G_GNUC_UNUSED const char *id,
+                              PurpleXmlNode *packet,
+                              G_GNUC_UNUSED gpointer data)
 {
 	PurpleXmlNode *query, *x;
 	char *msg;
@@ -569,9 +574,12 @@ void jabber_chat_create_instant_room(Jab
 }
 
 static void
-jabber_chat_register_x_data_result_cb(JabberStream *js, const char *from,
-                                      JabberIqType type, const char *id,
-                                      PurpleXmlNode *packet, gpointer data)
+jabber_chat_register_x_data_result_cb(JabberStream *js,
+                                      G_GNUC_UNUSED const char *from,
+                                      JabberIqType type,
+                                      G_GNUC_UNUSED const char *id,
+                                      PurpleXmlNode *packet,
+                                      G_GNUC_UNUSED gpointer data)
 {
 	if (type == JABBER_IQ_ERROR) {
 		char *msg = jabber_parse_error(js, packet, NULL);
@@ -605,9 +613,10 @@ static void jabber_chat_register_x_data_
 	jabber_iq_send(iq);
 }
 
-static void jabber_chat_register_cb(JabberStream *js, const char *from,
-                                    JabberIqType type, const char *id,
-                                    PurpleXmlNode *packet, gpointer data)
+static void
+jabber_chat_register_cb(JabberStream *js, const char *from, JabberIqType type,
+                        G_GNUC_UNUSED const char *id, PurpleXmlNode *packet,
+                        G_GNUC_UNUSED gpointer data)
 {
 	PurpleXmlNode *query, *x;
 	char *msg;
@@ -701,7 +710,7 @@ void jabber_chat_change_topic(JabberChat
 }
 
 void
-jabber_chat_set_topic(PurpleProtocolChat *protocol_chat,
+jabber_chat_set_topic(G_GNUC_UNUSED PurpleProtocolChat *protocol_chat,
                       PurpleConnection *gc, gint id, const gchar *topic)
 {
 	JabberStream *js = purple_connection_get_protocol_data(gc);
@@ -768,9 +777,10 @@ void jabber_chat_part(JabberChat *chat, 
 	g_free(room_jid);
 }
 
-static void roomlist_disco_result_cb(JabberStream *js, const char *from,
-                                     JabberIqType type, const char *id,
-                                     PurpleXmlNode *packet, gpointer data)
+static void
+roomlist_disco_result_cb(JabberStream *js, G_GNUC_UNUSED const char *from,
+                         JabberIqType type, G_GNUC_UNUSED const char *id,
+                         PurpleXmlNode *packet, G_GNUC_UNUSED gpointer data)
 {
 	PurpleXmlNode *query;
 	PurpleXmlNode *item;
@@ -826,7 +836,8 @@ static void roomlist_disco_result_cb(Jab
 	js->roomlist = NULL;
 }
 
-static void roomlist_cancel_cb(JabberStream *js, const char *server) {
+static void
+roomlist_cancel_cb(JabberStream *js, G_GNUC_UNUSED const char *server) {
 	if(js->roomlist) {
 		purple_roomlist_set_in_progress(js->roomlist, FALSE);
 		g_object_unref(js->roomlist);
@@ -861,7 +872,7 @@ static void roomlist_ok_cb(JabberStream 
 }
 
 PurpleRoomlist *
-jabber_roomlist_get_list(PurpleProtocolRoomlist *protocol_roomlist,
+jabber_roomlist_get_list(G_GNUC_UNUSED PurpleProtocolRoomlist *protocol_roomlist,
                          PurpleConnection *gc)
 {
 	JabberStream *js = purple_connection_get_protocol_data(gc);
@@ -884,7 +895,7 @@ jabber_roomlist_get_list(PurpleProtocolR
 }
 
 void
-jabber_roomlist_cancel(PurpleProtocolRoomlist *protocol_roomlist,
+jabber_roomlist_cancel(G_GNUC_UNUSED PurpleProtocolRoomlist *protocol_roomlist,
                        PurpleRoomlist *list)
 {
 	PurpleAccount *account;
@@ -904,7 +915,7 @@ jabber_roomlist_cancel(PurpleProtocolRoo
 }
 
 char *
-jabber_roomlist_room_serialize(PurpleProtocolRoomlist *protocol_roomlist,
+jabber_roomlist_room_serialize(G_GNUC_UNUSED PurpleProtocolRoomlist *protocol_roomlist,
                                PurpleRoomlistRoom *room)
 {
 	const gchar *room_name = NULL, *server = NULL;
@@ -922,8 +933,10 @@ void jabber_chat_member_free(JabberChatM
 	g_free(jcm);
 }
 
-void jabber_chat_track_handle(JabberChat *chat, const char *handle,
-		const char *jid, const char *affiliation, const char *role)
+void
+jabber_chat_track_handle(JabberChat *chat, const char *handle, const char *jid,
+                         G_GNUC_UNUSED const char *affiliation,
+                         G_GNUC_UNUSED const char *role)
 {
 	JabberChatMember *jcm = g_new0(JabberChatMember, 1);
 
@@ -1011,8 +1024,10 @@ gboolean jabber_chat_affiliate_user(Jabb
 }
 
 static void
-jabber_chat_affiliation_list_cb(JabberStream *js, const char *from,
-                                JabberIqType type, const char *id,
+jabber_chat_affiliation_list_cb(JabberStream *js,
+                                G_GNUC_UNUSED const char *from,
+                                JabberIqType type,
+                                G_GNUC_UNUSED const char *id,
                                 PurpleXmlNode *packet, gpointer data)
 {
 	JabberChat *chat;
@@ -1106,9 +1121,10 @@ gboolean jabber_chat_role_user(JabberCha
 	return TRUE;
 }
 
-static void jabber_chat_role_list_cb(JabberStream *js, const char *from,
-                                     JabberIqType type, const char *id,
-                                     PurpleXmlNode *packet, gpointer data)
+static void
+jabber_chat_role_list_cb(JabberStream *js, G_GNUC_UNUSED const char *from,
+                         JabberIqType type, G_GNUC_UNUSED const char *id,
+                         PurpleXmlNode *packet, gpointer data)
 {
 	JabberChat *chat;
 	PurpleXmlNode *query, *item;
@@ -1167,9 +1183,12 @@ gboolean jabber_chat_role_list(JabberCha
 	return TRUE;
 }
 
-static void jabber_chat_disco_traffic_cb(JabberStream *js, const char *from,
-                                         JabberIqType type, const char *id,
-                                         PurpleXmlNode *packet, gpointer data)
+static void
+jabber_chat_disco_traffic_cb(JabberStream *js, G_GNUC_UNUSED const char *from,
+                             G_GNUC_UNUSED JabberIqType type,
+                             G_GNUC_UNUSED const char *id,
+                             G_GNUC_UNUSED PurpleXmlNode *packet,
+                             gpointer data)
 {
 	JabberChat *chat;
 	int chat_id = GPOINTER_TO_INT(data);
diff --git a/libpurple/protocols/jabber/data.c b/libpurple/protocols/jabber/data.c
--- a/libpurple/protocols/jabber/data.c
+++ b/libpurple/protocols/jabber/data.c
@@ -38,8 +38,9 @@ static GHashTable *local_data_by_cid = N
 static GHashTable *remote_data_by_cid = NULL;
 
 JabberData *
-jabber_data_create_from_data(gconstpointer rawdata, gsize size, const char *type,
-	gboolean ephemeral, JabberStream *js)
+jabber_data_create_from_data(gconstpointer rawdata, gsize size,
+                             const char *type, gboolean ephemeral,
+                             G_GNUC_UNUSED JabberStream *js)
 {
 	JabberData *data;
 	gchar *checksum;
@@ -285,8 +286,9 @@ typedef struct {
 } JabberDataRequestData;
 
 static void
-jabber_data_request_cb(JabberStream *js, const char *from,
-	JabberIqType type, const char *id, PurpleXmlNode *packet, gpointer data)
+jabber_data_request_cb(JabberStream *js, const char *from, JabberIqType type, 
+                       G_GNUC_UNUSED const char *id, PurpleXmlNode *packet,
+                       gpointer data)
 {
 	JabberDataRequestData *request_data = (JabberDataRequestData *) data;
 	gpointer userdata = request_data->userdata;
@@ -414,8 +416,9 @@ jabber_data_associate_remote(JabberStrea
 
 /* Handles iq requests. */
 static void
-jabber_data_parse(JabberStream *js, const char *who, JabberIqType type,
-                  const char *id, PurpleXmlNode *data_node)
+jabber_data_parse(JabberStream *js, const char *who,
+                  G_GNUC_UNUSED JabberIqType type, const char *id,
+                  PurpleXmlNode *data_node)
 {
 	JabberIq *result = NULL;
 	const char *cid = purple_xmlnode_get_attrib(data_node, "cid");
diff --git a/libpurple/protocols/jabber/disco.c b/libpurple/protocols/jabber/disco.c
--- a/libpurple/protocols/jabber/disco.c
+++ b/libpurple/protocols/jabber/disco.c
@@ -51,7 +51,8 @@ struct _jabber_disco_items_cb_data {
 
 static void
 jabber_disco_bytestream_server_cb(JabberStream *js, const char *from,
-                                  JabberIqType type, const char *id,
+                                  G_GNUC_UNUSED JabberIqType type,
+                                  G_GNUC_UNUSED const char *id,
                                   PurpleXmlNode *packet, gpointer data)
 {
 	JabberBytestreamsStreamhost *sh = data;
@@ -168,9 +169,10 @@ void jabber_disco_info_parse(JabberStrea
 	}
 }
 
-static void jabber_disco_info_cb(JabberStream *js, const char *from,
-                                 JabberIqType type, const char *id,
-                                 PurpleXmlNode *packet, gpointer data)
+static void
+jabber_disco_info_cb(JabberStream *js, const char *from, JabberIqType type,
+                     G_GNUC_UNUSED const char *id, PurpleXmlNode *packet,
+                     gpointer data)
 {
 	struct _jabber_disco_info_cb_data *jdicd = data;
 	PurpleXmlNode *query;
@@ -420,8 +422,10 @@ jabber_disco_stun_srv_resolve_cb(GObject
 
 static void
 jabber_disco_server_info_result_cb(JabberStream *js, const char *from,
-                                   JabberIqType type, const char *id,
-                                   PurpleXmlNode *packet, gpointer data)
+                                   JabberIqType type,
+                                   G_GNUC_UNUSED const char *id,
+                                   PurpleXmlNode *packet,
+                                   G_GNUC_UNUSED gpointer data)
 {
 	PurpleXmlNode *query, *child;
 
@@ -503,8 +507,10 @@ jabber_disco_server_info_result_cb(Jabbe
 
 static void
 jabber_disco_server_items_result_cb(JabberStream *js, const char *from,
-                                    JabberIqType type, const char *id,
-                                    PurpleXmlNode *packet, gpointer data)
+                                    JabberIqType type,
+                                    G_GNUC_UNUSED const char *id,
+                                    PurpleXmlNode *packet,
+                                    G_GNUC_UNUSED gpointer data)
 {
 	PurpleXmlNode *query, *child;
 
diff --git a/libpurple/protocols/jabber/ibb.c b/libpurple/protocols/jabber/ibb.c
--- a/libpurple/protocols/jabber/ibb.c
+++ b/libpurple/protocols/jabber/ibb.c
@@ -199,9 +199,11 @@ jabber_ibb_session_set_error_callback(Ja
 }
 
 static void
-jabber_ibb_session_opened_cb(JabberStream *js, const char *from,
-                             JabberIqType type, const char *id,
-                             PurpleXmlNode *packet, gpointer data)
+jabber_ibb_session_opened_cb(G_GNUC_UNUSED JabberStream *js,
+                             G_GNUC_UNUSED const char *from,
+                             JabberIqType type, G_GNUC_UNUSED const char *id,
+                             G_GNUC_UNUSED PurpleXmlNode *packet,
+                             gpointer data)
 {
 	JabberIBBSession *sess = (JabberIBBSession *) data;
 
@@ -265,9 +267,12 @@ jabber_ibb_session_close(JabberIBBSessio
 }
 
 static void
-jabber_ibb_session_send_acknowledge_cb(JabberStream *js, const char *from,
-                                       JabberIqType type, const char *id,
-                                       PurpleXmlNode *packet, gpointer data)
+jabber_ibb_session_send_acknowledge_cb(G_GNUC_UNUSED JabberStream *js,
+                                       G_GNUC_UNUSED const char *from,
+                                       JabberIqType type,
+                                       G_GNUC_UNUSED const char *id,
+                                       G_GNUC_UNUSED PurpleXmlNode *packet,
+                                       gpointer data)
 {
 	JabberIBBSession *sess = (JabberIBBSession *) data;
 
@@ -360,8 +365,9 @@ jabber_ibb_send_error_response(JabberStr
 
 /* Handle incoming packet. */
 static void
-jabber_ibb_parse(JabberStream *js, const char *who, JabberIqType type,
-                 const char *id, PurpleXmlNode *child)
+jabber_ibb_parse(JabberStream *js, const char *who,
+                 G_GNUC_UNUSED JabberIqType type, const char *id,
+                 PurpleXmlNode *child)
 {
 	const char *name = child->name;
 	gboolean data  = purple_strequal(name, "data");
diff --git a/libpurple/protocols/jabber/iq.c b/libpurple/protocols/jabber/iq.c
--- a/libpurple/protocols/jabber/iq.c
+++ b/libpurple/protocols/jabber/iq.c
@@ -148,9 +148,9 @@ void jabber_iq_free(JabberIq *iq)
 	g_free(iq);
 }
 
-static void jabber_iq_last_parse(JabberStream *js, const char *from,
-                                 JabberIqType type, const char *id,
-                                 PurpleXmlNode *packet)
+static void
+jabber_iq_last_parse(JabberStream *js, const char *from, JabberIqType type,
+                     const char *id, G_GNUC_UNUSED PurpleXmlNode *packet)
 {
 	JabberIq *iq;
 	PurpleXmlNode *query;
@@ -216,9 +216,9 @@ static void jabber_time_parse(JabberStre
 	}
 }
 
-static void jabber_iq_version_parse(JabberStream *js, const char *from,
-                                    JabberIqType type, const char *id,
-                                    PurpleXmlNode *packet)
+static void
+jabber_iq_version_parse(JabberStream *js, const char *from, JabberIqType type,
+                        const char *id, G_GNUC_UNUSED PurpleXmlNode *packet)
 {
 	JabberIq *iq;
 	PurpleXmlNode *query;
diff --git a/libpurple/protocols/jabber/jabber.c b/libpurple/protocols/jabber/jabber.c
--- a/libpurple/protocols/jabber/jabber.c
+++ b/libpurple/protocols/jabber/jabber.c
@@ -102,9 +102,10 @@ static void jabber_stream_init(JabberStr
 }
 
 static void
-jabber_session_initialized_cb(JabberStream *js, const char *from,
-                              JabberIqType type, const char *id,
-                              PurpleXmlNode *packet, gpointer data)
+jabber_session_initialized_cb(JabberStream *js, G_GNUC_UNUSED const char *from,
+                              JabberIqType type, G_GNUC_UNUSED const char *id,
+                              G_GNUC_UNUSED PurpleXmlNode *packet,
+                              G_GNUC_UNUSED gpointer data)
 {
 	if (type == JABBER_IQ_RESULT) {
 		jabber_disco_items_server(js);
@@ -128,9 +129,10 @@ static void jabber_session_init(JabberSt
 	jabber_iq_send(iq);
 }
 
-static void jabber_bind_result_cb(JabberStream *js, const char *from,
-                                  JabberIqType type, const char *id,
-                                  PurpleXmlNode *packet, gpointer data)
+static void
+jabber_bind_result_cb(JabberStream *js, G_GNUC_UNUSED const char *from,
+                      JabberIqType type, G_GNUC_UNUSED const char *id,
+                      PurpleXmlNode *packet, G_GNUC_UNUSED gpointer data)
 {
 	PurpleXmlNode *bind;
 
@@ -403,8 +405,8 @@ static gboolean do_jabber_send_raw(Jabbe
 }
 
 static void
-jabber_send_raw(PurpleProtocolServer *protocol_server, JabberStream *js,
-                const gchar *data, gint len)
+jabber_send_raw(G_GNUC_UNUSED PurpleProtocolServer *protocol_server,
+                JabberStream *js, const char *data, gint len)
 {
 	PurpleConnection *gc;
 	PurpleAccount *account;
@@ -509,7 +511,7 @@ jabber_send_raw(PurpleProtocolServer *pr
 }
 
 static gint
-jabber_protocol_send_raw(PurpleProtocolServer *protocol_server,
+jabber_protocol_send_raw(G_GNUC_UNUSED PurpleProtocolServer *protocol_server,
                          PurpleConnection *gc, const gchar *buf, gint len)
 {
 	JabberStream *js = purple_connection_get_protocol_data(gc);
@@ -567,7 +569,9 @@ static gboolean jabber_keepalive_timeout
 }
 
 static void
-jabber_keepalive(PurpleProtocolServer *protocol_server, PurpleConnection *gc) {
+jabber_keepalive(G_GNUC_UNUSED PurpleProtocolServer *protocol_server,
+                 PurpleConnection *gc)
+{
 	JabberStream *js = purple_connection_get_protocol_data(gc);
 
 	if (js->keepalive_timeout == 0) {
@@ -578,7 +582,8 @@ jabber_keepalive(PurpleProtocolServer *p
 }
 
 static int
-jabber_get_keepalive_interval(PurpleProtocolServer *protocol_server) {
+jabber_get_keepalive_interval(G_GNUC_UNUSED PurpleProtocolServer *protocol_server)
+{
 	return PING_TIMEOUT;
 }
 
@@ -671,7 +676,7 @@ jabber_stream_connect_finish(JabberStrea
 	jabber_stream_set_state(js, JABBER_STREAM_INITIALIZING);
 	source = g_pollable_input_stream_create_source(
 	        G_POLLABLE_INPUT_STREAM(js->input), js->cancellable);
-	g_source_set_callback(source, (GSourceFunc)jabber_recv_cb, js->gc, NULL);
+	g_source_set_callback(source, G_SOURCE_FUNC(jabber_recv_cb), js->gc, NULL);
 	js->inpa = g_source_attach(source, NULL);
 	g_source_unref(source);
 }
@@ -1165,8 +1170,8 @@ char *jabber_get_next_id(JabberStream *j
 
 
 static void
-jabber_idle_set(PurpleProtocolServer *protocol_server, PurpleConnection *gc,
-                gint idle)
+jabber_idle_set(G_GNUC_UNUSED PurpleProtocolServer *protocol_server,
+                PurpleConnection *gc, gint idle)
 {
 	JabberStream *js = purple_connection_get_protocol_data(gc);
 
@@ -1177,9 +1182,12 @@ jabber_idle_set(PurpleProtocolServer *pr
 	jabber_presence_send(js, FALSE);
 }
 
-void jabber_blocklist_parse_push(JabberStream *js, const char *from,
-                                 JabberIqType type, const char *id,
-                                 PurpleXmlNode *child)
+void
+jabber_blocklist_parse_push(G_GNUC_UNUSED JabberStream *js,
+                            G_GNUC_UNUSED const char *from,
+                            G_GNUC_UNUSED JabberIqType type,
+                            G_GNUC_UNUSED const char *id,
+                            G_GNUC_UNUSED PurpleXmlNode *child)
 {
 #if 0
 	JabberIq *result;
@@ -1282,7 +1290,8 @@ static void jabber_blocklist_parse(Jabbe
 }
 #endif
 
-void jabber_request_block_list(JabberStream *js)
+void
+jabber_request_block_list(G_GNUC_UNUSED JabberStream *js)
 {
 #if 0
 	JabberIq *iq;
@@ -1531,7 +1540,8 @@ void jabber_stream_restart_inactivity_ti
 }
 
 static const char *
-jabber_list_emblem(PurpleProtocolClient *client, PurpleBuddy *b) {
+jabber_list_emblem(G_GNUC_UNUSED PurpleProtocolClient *client, PurpleBuddy *b)
+{
 	JabberStream *js;
 	JabberBuddy *jb = NULL;
 	PurpleConnection *gc = purple_account_get_connection(purple_buddy_get_account(b));
@@ -1574,7 +1584,8 @@ jabber_list_emblem(PurpleProtocolClient 
 }
 
 static char *
-jabber_status_text(PurpleProtocolClient *client, PurpleBuddy *b) {
+jabber_status_text(G_GNUC_UNUSED PurpleProtocolClient *client, PurpleBuddy *b)
+{
 	char *ret = NULL;
 	JabberBuddy *jb = NULL;
 	PurpleAccount *account = purple_buddy_get_account(b);
@@ -1767,7 +1778,7 @@ jabber_tooltip_text(PurpleProtocolClient
 
 static GList *
 jabber_status_types(G_GNUC_UNUSED PurpleProtocol *protocol,
-                    PurpleAccount *account)
+                    G_GNUC_UNUSED PurpleAccount *account)
 {
 	PurpleStatusType *type;
 	GList *types = NULL;
@@ -1889,8 +1900,10 @@ jabber_status_types(G_GNUC_UNUSED Purple
 }
 
 static void
-jabber_password_change_result_cb(JabberStream *js, const char *from,
-                                 JabberIqType type, const char *id,
+jabber_password_change_result_cb(JabberStream *js,
+                                 G_GNUC_UNUSED const char *from,
+                                 JabberIqType type,
+                                 G_GNUC_UNUSED const char *id,
                                  PurpleXmlNode *packet, gpointer data)
 {
 	if (type == JABBER_IQ_RESULT) {
@@ -2000,13 +2013,14 @@ jabber_password_change(G_GNUC_UNUSED GSi
 }
 
 static const gchar *
-xmpp_protocol_actions_get_prefix(PurpleProtocolActions *actions) {
+xmpp_protocol_actions_get_prefix(G_GNUC_UNUSED PurpleProtocolActions *actions)
+{
 	return "prpl-xmpp";
 }
 
 static GActionGroup *
-xmpp_protocol_actions_get_action_group(PurpleProtocolActions *actions,
-                                      PurpleConnection *connection)
+xmpp_protocol_actions_get_action_group(G_GNUC_UNUSED PurpleProtocolActions *actions,
+                                       PurpleConnection *connection)
 {
 	JabberStream *js = purple_connection_get_protocol_data(connection);
 	GSimpleActionGroup *group = NULL;
@@ -2047,7 +2061,7 @@ xmpp_protocol_actions_get_action_group(P
 }
 
 static GMenu *
-xmpp_protocol_actions_get_menu(PurpleProtocolActions *actions) {
+xmpp_protocol_actions_get_menu(G_GNUC_UNUSED PurpleProtocolActions *actions) {
 	GMenu *menu = NULL;
 	GMenuItem *item = NULL;
 
@@ -2084,8 +2098,8 @@ xmpp_protocol_actions_get_menu(PurplePro
 }
 
 static PurpleChat *
-jabber_find_blist_chat(PurpleProtocolClient *client, PurpleAccount *account,
-                       const char *name)
+jabber_find_blist_chat(G_GNUC_UNUSED PurpleProtocolClient *client,
+                       PurpleAccount *account, const char *name)
 {
 	PurpleBlistNode *gnode, *cnode;
 	JabberID *jid;
@@ -2126,8 +2140,8 @@ jabber_find_blist_chat(PurpleProtocolCli
 }
 
 static void
-jabber_convo_closed(PurpleProtocolClient *client, PurpleConnection *gc,
-                    const char *who)
+jabber_convo_closed(G_GNUC_UNUSED PurpleProtocolClient *client,
+                    PurpleConnection *gc, const char *who)
 {
 	JabberStream *js = purple_connection_get_protocol_data(gc);
 	JabberID *jid;
@@ -2147,8 +2161,8 @@ jabber_convo_closed(PurpleProtocolClient
 }
 
 static const gchar *
-jabber_client_normalize(PurpleProtocolClient *client, PurpleAccount *account,
-                        const gchar *who)
+jabber_client_normalize(G_GNUC_UNUSED PurpleProtocolClient *client,
+                        PurpleAccount *account, const char *who)
 {
 	return jabber_normalize(account, who);
 }
@@ -2323,8 +2337,10 @@ char *jabber_parse_error(JabberStream *j
 	}
 }
 
-static PurpleCmdRet jabber_cmd_chat_config(PurpleConversation *conv,
-		const char *cmd, char **args, char **error, void *data)
+static PurpleCmdRet
+jabber_cmd_chat_config(PurpleConversation *conv, G_GNUC_UNUSED const char *cmd,
+                       G_GNUC_UNUSED char **args, G_GNUC_UNUSED char **error,
+                       G_GNUC_UNUSED gpointer data)
 {
 	JabberChat *chat = jabber_chat_find_by_conv(PURPLE_CHAT_CONVERSATION(conv));
 
@@ -2335,8 +2351,11 @@ static PurpleCmdRet jabber_cmd_chat_conf
 	return PURPLE_CMD_RET_OK;
 }
 
-static PurpleCmdRet jabber_cmd_chat_register(PurpleConversation *conv,
-		const char *cmd, char **args, char **error, void *data)
+static PurpleCmdRet
+jabber_cmd_chat_register(PurpleConversation *conv,
+                         G_GNUC_UNUSED const char *cmd,
+                         G_GNUC_UNUSED char **args, G_GNUC_UNUSED char **error,
+                         G_GNUC_UNUSED gpointer data)
 {
 	JabberChat *chat = jabber_chat_find_by_conv(PURPLE_CHAT_CONVERSATION(conv));
 
@@ -2347,8 +2366,10 @@ static PurpleCmdRet jabber_cmd_chat_regi
 	return PURPLE_CMD_RET_OK;
 }
 
-static PurpleCmdRet jabber_cmd_chat_topic(PurpleConversation *conv,
-		const char *cmd, char **args, char **error, void *data)
+static PurpleCmdRet
+jabber_cmd_chat_topic(PurpleConversation *conv, G_GNUC_UNUSED const char *cmd,
+                      char **args, G_GNUC_UNUSED char **error,
+                      G_GNUC_UNUSED gpointer data)
 {
 	JabberChat *chat = jabber_chat_find_by_conv(PURPLE_CHAT_CONVERSATION(conv));
 
@@ -2376,8 +2397,9 @@ static PurpleCmdRet jabber_cmd_chat_topi
 	return PURPLE_CMD_RET_OK;
 }
 
-static PurpleCmdRet jabber_cmd_chat_nick(PurpleConversation *conv,
-		const char *cmd, char **args, char **error, void *data)
+static PurpleCmdRet
+jabber_cmd_chat_nick(PurpleConversation *conv, G_GNUC_UNUSED const char *cmd,
+                     char **args, char **error, G_GNUC_UNUSED gpointer data)
 {
 	JabberChat *chat = jabber_chat_find_by_conv(PURPLE_CHAT_CONVERSATION(conv));
 
@@ -2395,8 +2417,10 @@ static PurpleCmdRet jabber_cmd_chat_nick
 		return PURPLE_CMD_RET_FAILED;
 }
 
-static PurpleCmdRet jabber_cmd_chat_part(PurpleConversation *conv,
-		const char *cmd, char **args, char **error, void *data)
+static PurpleCmdRet
+jabber_cmd_chat_part(PurpleConversation *conv, G_GNUC_UNUSED const char *cmd,
+                     char **args, G_GNUC_UNUSED char **error,
+                     G_GNUC_UNUSED gpointer data)
 {
 	JabberChat *chat = jabber_chat_find_by_conv(PURPLE_CHAT_CONVERSATION(conv));
 
@@ -2407,8 +2431,9 @@ static PurpleCmdRet jabber_cmd_chat_part
 	return PURPLE_CMD_RET_OK;
 }
 
-static PurpleCmdRet jabber_cmd_chat_ban(PurpleConversation *conv,
-		const char *cmd, char **args, char **error, void *data)
+static PurpleCmdRet
+jabber_cmd_chat_ban(PurpleConversation *conv, G_GNUC_UNUSED const char *cmd,
+                    char **args, char **error, G_GNUC_UNUSED gpointer data)
 {
 	JabberChat *chat = jabber_chat_find_by_conv(PURPLE_CHAT_CONVERSATION(conv));
 
@@ -2423,8 +2448,10 @@ static PurpleCmdRet jabber_cmd_chat_ban(
 	return PURPLE_CMD_RET_OK;
 }
 
-static PurpleCmdRet jabber_cmd_chat_affiliate(PurpleConversation *conv,
-		const char *cmd, char **args, char **error, void *data)
+static PurpleCmdRet
+jabber_cmd_chat_affiliate(PurpleConversation *conv,
+                          G_GNUC_UNUSED const char *cmd, char **args,
+                          char **error, G_GNUC_UNUSED gpointer data)
 {
 	JabberChat *chat = jabber_chat_find_by_conv(PURPLE_CHAT_CONVERSATION(conv));
 
@@ -2459,8 +2486,9 @@ static PurpleCmdRet jabber_cmd_chat_affi
 	return PURPLE_CMD_RET_OK;
 }
 
-static PurpleCmdRet jabber_cmd_chat_role(PurpleConversation *conv,
-		const char *cmd, char **args, char **error, void *data)
+static PurpleCmdRet
+jabber_cmd_chat_role(PurpleConversation *conv, G_GNUC_UNUSED const char *cmd,
+                     char **args, char **error, G_GNUC_UNUSED gpointer data)
 {
 	JabberChat *chat = jabber_chat_find_by_conv(PURPLE_CHAT_CONVERSATION(conv));
 
@@ -2494,8 +2522,10 @@ static PurpleCmdRet jabber_cmd_chat_role
 	return PURPLE_CMD_RET_OK;
 }
 
-static PurpleCmdRet jabber_cmd_chat_invite(PurpleConversation *conv,
-		const char *cmd, char **args, char **error, void *data)
+static PurpleCmdRet
+jabber_cmd_chat_invite(PurpleConversation *conv, G_GNUC_UNUSED const char *cmd,
+                       char **args, G_GNUC_UNUSED char **error,
+                       G_GNUC_UNUSED gpointer data)
 {
 	if(!args || !args[0])
 		return PURPLE_CMD_RET_FAILED;
@@ -2507,8 +2537,9 @@ static PurpleCmdRet jabber_cmd_chat_invi
 	return PURPLE_CMD_RET_OK;
 }
 
-static PurpleCmdRet jabber_cmd_chat_join(PurpleConversation *conv,
-		const char *cmd, char **args, char **error, void *data)
+static PurpleCmdRet
+jabber_cmd_chat_join(PurpleConversation *conv, G_GNUC_UNUSED const char *cmd,
+                     char **args, char **error, G_GNUC_UNUSED gpointer data)
 {
 	JabberChat *chat = jabber_chat_find_by_conv(PURPLE_CHAT_CONVERSATION(conv));
 	GHashTable *components;
@@ -2554,8 +2585,9 @@ static PurpleCmdRet jabber_cmd_chat_join
 	return PURPLE_CMD_RET_OK;
 }
 
-static PurpleCmdRet jabber_cmd_chat_kick(PurpleConversation *conv,
-		const char *cmd, char **args, char **error, void *data)
+static PurpleCmdRet
+jabber_cmd_chat_kick(PurpleConversation *conv, G_GNUC_UNUSED const char *cmd,
+                     char **args, char **error, G_GNUC_UNUSED void *data)
 {
 	JabberChat *chat = jabber_chat_find_by_conv(PURPLE_CHAT_CONVERSATION(conv));
 
@@ -2570,8 +2602,10 @@ static PurpleCmdRet jabber_cmd_chat_kick
 	return PURPLE_CMD_RET_OK;
 }
 
-static PurpleCmdRet jabber_cmd_chat_msg(PurpleConversation *conv,
-		const char *cmd, char **args, char **error, void *data)
+static PurpleCmdRet
+jabber_cmd_chat_msg(PurpleConversation *conv, G_GNUC_UNUSED const char *cmd,
+                    char **args, G_GNUC_UNUSED char **error,
+                    G_GNUC_UNUSED void *data)
 {
 	PurpleAccount *account = NULL;
 	PurpleConnection *pc = NULL;
@@ -2599,8 +2633,9 @@ static PurpleCmdRet jabber_cmd_chat_msg(
 	return PURPLE_CMD_RET_OK;
 }
 
-static PurpleCmdRet jabber_cmd_ping(PurpleConversation *conv,
-		const char *cmd, char **args, char **error, void *data)
+static PurpleCmdRet
+jabber_cmd_ping(PurpleConversation *conv, G_GNUC_UNUSED const char *cmd,
+                char **args, char **error, G_GNUC_UNUSED void *data)
 {
 	PurpleAccount *account;
 	PurpleConnection *pc;
@@ -2620,12 +2655,15 @@ static PurpleCmdRet jabber_cmd_ping(Purp
 }
 
 static gboolean
-jabber_offline_message(PurpleProtocolClient *client, PurpleBuddy *buddy) {
+jabber_offline_message(G_GNUC_UNUSED PurpleProtocolClient *client,
+                       G_GNUC_UNUSED PurpleBuddy *buddy)
+{
 	return TRUE;
 }
 
 static gboolean
-jabber_audio_enabled(JabberStream *js, const char *namespace)
+jabber_audio_enabled(G_GNUC_UNUSED JabberStream *js,
+                     G_GNUC_UNUSED const char *namespace)
 {
 	PurpleMediaManager *manager = purple_media_manager_get();
 	PurpleMediaCaps caps = purple_media_manager_get_ui_caps(manager);
@@ -2634,7 +2672,8 @@ jabber_audio_enabled(JabberStream *js, c
 }
 
 static gboolean
-jabber_video_enabled(JabberStream *js, const char *namespace)
+jabber_video_enabled(G_GNUC_UNUSED JabberStream *js,
+                     G_GNUC_UNUSED const char *namespace)
 {
 	PurpleMediaManager *manager = purple_media_manager_get();
 	PurpleMediaCaps caps = purple_media_manager_get_ui_caps(manager);
@@ -2652,7 +2691,7 @@ typedef struct {
 
 static void
 jabber_media_cancel_cb(JabberMediaRequest *request,
-                       PurpleRequestFields *fields)
+                       G_GNUC_UNUSED PurpleRequestFields *fields)
 {
 	g_free(request->who);
 	g_free(request);
@@ -2814,8 +2853,8 @@ jabber_initiate_media(PurpleProtocolMedi
 }
 
 static PurpleMediaCaps
-jabber_get_media_caps(PurpleProtocolMedia *media, PurpleAccount *account,
-                      const gchar *who)
+jabber_get_media_caps(G_GNUC_UNUSED PurpleProtocolMedia *media,
+                      PurpleAccount *account, const char *who)
 {
 	PurpleConnection *gc = purple_account_get_connection(account);
 	JabberStream *js = purple_connection_get_protocol_data(gc);
@@ -2897,8 +2936,8 @@ jabber_get_media_caps(PurpleProtocolMedi
 }
 
 static gboolean
-jabber_can_receive_file(PurpleProtocolXfer *prplxfer, PurpleConnection *gc,
-                        const char *who)
+jabber_can_receive_file(G_GNUC_UNUSED PurpleProtocolXfer *prplxfer,
+                        PurpleConnection *gc, const char *who)
 {
 	JabberStream *js = purple_connection_get_protocol_data(gc);
 
@@ -2947,8 +2986,9 @@ jabber_can_receive_file(PurpleProtocolXf
 }
 
 static PurpleCmdRet
-jabber_cmd_mood(PurpleConversation *conv,
-		const char *cmd, char **args, char **error, void *data)
+jabber_cmd_mood(PurpleConversation *conv, G_GNUC_UNUSED const char *cmd,
+                char **args, G_GNUC_UNUSED char **error,
+                G_GNUC_UNUSED gpointer data)
 {
 	PurpleAccount *account = purple_conversation_get_account(conv);
 	JabberStream *js = purple_connection_get_protocol_data(purple_account_get_connection(account));
@@ -3103,7 +3143,8 @@ jabber_register_commands(PurpleProtocol 
 static void cmds_free_func(gpointer value)
 {
 	GSList *commands = value;
-	g_slist_free_full(commands, (GDestroyNotify)purple_cmd_unregister);
+	g_slist_free_full(commands,
+	                  (GDestroyNotify)(GCallback)purple_cmd_unregister);
 }
 
 static void jabber_unregister_commands(PurpleProtocol *protocol)
@@ -3155,7 +3196,7 @@ xmpp_uri_handler(const char *proto, cons
 	if (g_ascii_strcasecmp(proto, "xmpp"))
 		return FALSE;
 
- 	if (params != NULL) {
+	if (params != NULL) {
 		acct_id = g_hash_table_lookup(params, "account");
 	}
 
@@ -3431,7 +3472,7 @@ static void jabber_uninit_protocol(Purpl
 }
 
 static PurpleBuddyIconSpec *
-jabber_protocol_get_buddy_icon_spec(PurpleProtocol *protocol) {
+jabber_protocol_get_buddy_icon_spec(G_GNUC_UNUSED PurpleProtocol *protocol) {
 	return purple_buddy_icon_spec_new("png",
 	                                  32, 32, 96, 96, 0,
 	                                  PURPLE_ICON_SCALE_SEND |
@@ -3439,7 +3480,7 @@ jabber_protocol_get_buddy_icon_spec(Purp
 }
 
 static void
-jabber_protocol_init(JabberProtocol *self) {
+jabber_protocol_init(G_GNUC_UNUSED JabberProtocol *self) {
 }
 
 static void
@@ -3507,7 +3548,7 @@ jabber_protocol_im_iface_init(PurpleProt
 }
 
 static GHashTable *
-jabber_protocol_chat_info_defaults(PurpleProtocolChat *protocol_chat,
+jabber_protocol_chat_info_defaults(G_GNUC_UNUSED PurpleProtocolChat *protocol_chat,
                                    PurpleConnection *connection,
                                    const gchar *name)
 {
@@ -3515,14 +3556,14 @@ jabber_protocol_chat_info_defaults(Purpl
 }
 
 static void
-jabber_protocol_chat_join(PurpleProtocolChat *protocol_chat,
+jabber_protocol_chat_join(G_GNUC_UNUSED PurpleProtocolChat *protocol_chat,
                           PurpleConnection *connection, GHashTable *components)
 {
 	jabber_chat_join(connection, components);
 }
 
 static void
-jabber_protocol_chat_invite(PurpleProtocolChat *protocol_chat,
+jabber_protocol_chat_invite(G_GNUC_UNUSED PurpleProtocolChat *protocol_chat,
                             PurpleConnection *connection,  gint id,
                             const gchar *message, const gchar *who)
 {
@@ -3589,7 +3630,7 @@ G_DEFINE_DYNAMIC_TYPE_EXTENDED(
 	                              jabber_protocol_xfer_iface_init))
 
 static GPluginPluginInfo *
-jabber_query(GError **error)
+jabber_query(G_GNUC_UNUSED GError **error)
 {
 	return purple_plugin_info_new(
 		"id",           "prpl-xmpp",
@@ -3643,7 +3684,8 @@ jabber_load(GPluginPlugin *plugin, GErro
 }
 
 static gboolean
-jabber_unload(GPluginPlugin *plugin, gboolean shutdown, GError **error)
+jabber_unload(G_GNUC_UNUSED GPluginPlugin *plugin,
+              G_GNUC_UNUSED gboolean shutdown, GError **error)
 {
 	PurpleProtocolManager *manager = purple_protocol_manager_get_default();
 
diff --git a/libpurple/protocols/jabber/jingle/content.c b/libpurple/protocols/jabber/jingle/content.c
--- a/libpurple/protocols/jabber/jingle/content.c
+++ b/libpurple/protocols/jabber/jingle/content.c
@@ -213,7 +213,7 @@ jingle_content_get_property (GObject *ob
 }
 
 static void
-jingle_content_init (JingleContent *content)
+jingle_content_init(G_GNUC_UNUSED JingleContent *content)
 {
 }
 
@@ -238,7 +238,7 @@ jingle_content_finalize (GObject *conten
 
 
 static void
-jingle_content_class_finalize (JingleContentClass *klass)
+jingle_content_class_finalize(G_GNUC_UNUSED JingleContentClass *klass)
 {
 }
 
diff --git a/libpurple/protocols/jabber/jingle/iceudp.c b/libpurple/protocols/jabber/jingle/iceudp.c
--- a/libpurple/protocols/jabber/jingle/iceudp.c
+++ b/libpurple/protocols/jabber/jingle/iceudp.c
@@ -362,7 +362,7 @@ jingle_iceudp_get_property (GObject *obj
 }
 
 static void
-jingle_iceudp_init (JingleIceUdp *iceudp)
+jingle_iceudp_init(G_GNUC_UNUSED JingleIceUdp *iceudp)
 {
 }
 
@@ -386,7 +386,7 @@ jingle_iceudp_finalize (GObject *object)
 }
 
 static void
-jingle_iceudp_class_finalize (JingleIceUdpClass *klass)
+jingle_iceudp_class_finalize(G_GNUC_UNUSED JingleIceUdpClass *klass)
 {
 }
 
diff --git a/libpurple/protocols/jabber/jingle/jingle.c b/libpurple/protocols/jabber/jingle/jingle.c
--- a/libpurple/protocols/jabber/jingle/jingle.c
+++ b/libpurple/protocols/jabber/jingle/jingle.c
@@ -52,7 +52,8 @@ jingle_get_type(const gchar *type)
 }
 
 static void
-jingle_handle_unknown_type(JingleSession *session, PurpleXmlNode *jingle)
+jingle_handle_unknown_type(G_GNUC_UNUSED JingleSession *session,
+                           G_GNUC_UNUSED PurpleXmlNode *jingle)
 {
 	/* Send error */
 }
@@ -366,7 +367,7 @@ jingle_get_action_type(const gchar *acti
 
 void
 jingle_parse(JabberStream *js, const char *from, JabberIqType type,
-             const char *id, PurpleXmlNode *jingle)
+             G_GNUC_UNUSED const char *id, PurpleXmlNode *jingle)
 {
 	const gchar *action;
 	const gchar *sid;
diff --git a/libpurple/protocols/jabber/jingle/rawudp.c b/libpurple/protocols/jabber/jingle/rawudp.c
--- a/libpurple/protocols/jabber/jingle/rawudp.c
+++ b/libpurple/protocols/jabber/jingle/rawudp.c
@@ -275,7 +275,7 @@ jingle_rawudp_get_property (GObject *obj
 }
 
 static void
-jingle_rawudp_init (JingleRawUdp *rawudp)
+jingle_rawudp_init(G_GNUC_UNUSED JingleRawUdp *rawudp)
 {
 }
 
@@ -289,7 +289,7 @@ jingle_rawudp_finalize (GObject *rawudp)
 }
 
 static void
-jingle_rawudp_class_finalize(JingleRawUdpClass *klass) {
+jingle_rawudp_class_finalize(G_GNUC_UNUSED JingleRawUdpClass *klass) {
 }
 
 static void
diff --git a/libpurple/protocols/jabber/jingle/rtp.c b/libpurple/protocols/jabber/jingle/rtp.c
--- a/libpurple/protocols/jabber/jingle/rtp.c
+++ b/libpurple/protocols/jabber/jingle/rtp.c
@@ -132,8 +132,8 @@ jingle_rtp_candidates_prepared_cb(Purple
 }
 
 static void
-jingle_rtp_codecs_changed_cb(PurpleMedia *media, gchar *sid,
-		JingleSession *session)
+jingle_rtp_codecs_changed_cb(G_GNUC_UNUSED PurpleMedia *media, char *sid,
+                             JingleSession *session)
 {
 	purple_debug_info("jingle-rtp", "jingle_rtp_codecs_changed_cb: "
 			"session_id: %s jingle_session: %p\n", sid, session);
@@ -141,7 +141,10 @@ jingle_rtp_codecs_changed_cb(PurpleMedia
 }
 
 static void
-jingle_rtp_new_candidate_cb(PurpleMedia *media, gchar *sid, gchar *name, PurpleMediaCandidate *candidate, JingleSession *session)
+jingle_rtp_new_candidate_cb(G_GNUC_UNUSED PurpleMedia *media, char *sid,
+                            G_GNUC_UNUSED char *name,
+                            PurpleMediaCandidate *candidate,
+                            JingleSession *session)
 {
 	JingleContent *content = jingle_session_find_content(session, sid, NULL);
 	JingleTransport *transport;
@@ -168,9 +171,10 @@ jingle_rtp_new_candidate_cb(PurpleMedia 
 }
 
 static void
-jingle_rtp_initiate_ack_cb(JabberStream *js, const char *from,
-                           JabberIqType type, const char *id,
-                           PurpleXmlNode *packet, gpointer data)
+jingle_rtp_initiate_ack_cb(G_GNUC_UNUSED JabberStream *js,
+                           G_GNUC_UNUSED const char *from, JabberIqType type,
+                           G_GNUC_UNUSED const char *id, PurpleXmlNode *packet,
+                           gpointer data)
 {
 	JingleSession *session = data;
 
@@ -182,8 +186,9 @@ jingle_rtp_initiate_ack_cb(JabberStream 
 }
 
 static void
-jingle_rtp_state_changed_cb(PurpleMedia *media, PurpleMediaState state,
-		gchar *sid, gchar *name, JingleSession *session)
+jingle_rtp_state_changed_cb(G_GNUC_UNUSED PurpleMedia *media,
+                            PurpleMediaState state, char *sid, char *name,
+                            G_GNUC_UNUSED JingleSession *session)
 {
 	purple_debug_info("jingle-rtp", "state-changed: state %d "
 			"id: %s name: %s\n", state, sid ? sid : "(null)",
@@ -192,8 +197,8 @@ jingle_rtp_state_changed_cb(PurpleMedia 
 
 static void
 jingle_rtp_stream_info_cb(PurpleMedia *media, PurpleMediaInfoType type,
-		gchar *sid, gchar *name, gboolean local,
-		JingleSession *session)
+                          char *sid, char *name, G_GNUC_UNUSED gboolean local,
+                          JingleSession *session)
 {
 	purple_debug_info("jingle-rtp", "stream-info: type %d "
 			"id: %s name: %s\n", type, sid ? sid : "(null)",
@@ -684,7 +689,7 @@ jingle_rtp_handle_action_internal(Jingle
  * GObject Stuff
  *****************************************************************************/
 static void
-jingle_rtp_init (JingleRtp *rtp)
+jingle_rtp_init(G_GNUC_UNUSED JingleRtp *rtp)
 {
 }
 
@@ -742,7 +747,7 @@ jingle_rtp_get_property (GObject *object
 
 
 static void
-jingle_rtp_class_finalize(JingleRtpClass *klass) {
+jingle_rtp_class_finalize(G_GNUC_UNUSED JingleRtpClass *klass) {
 }
 
 static void
diff --git a/libpurple/protocols/jabber/jingle/session.c b/libpurple/protocols/jabber/jingle/session.c
--- a/libpurple/protocols/jabber/jingle/session.c
+++ b/libpurple/protocols/jabber/jingle/session.c
@@ -75,8 +75,8 @@ G_DEFINE_DYNAMIC_TYPE_EXTENDED(
 /******************************************************************************
  * Helpers
  *****************************************************************************/
-static gboolean find_by_jid_ghr(gpointer key,
-		gpointer value, gpointer user_data)
+static gboolean
+find_by_jid_ghr(G_GNUC_UNUSED gpointer key, gpointer value, gpointer user_data)
 {
 	JingleSession *session = (JingleSession *)value;
 	const gchar *jid = user_data;
@@ -222,7 +222,7 @@ jingle_session_get_property (GObject *ob
 }
 
 static void
-jingle_session_init (JingleSession *session)
+jingle_session_init(G_GNUC_UNUSED JingleSession *session)
 {
 }
 
@@ -245,7 +245,7 @@ jingle_session_finalize (GObject *sessio
 }
 
 static void
-jingle_session_class_finalize (JingleSessionClass *klass)
+jingle_session_class_finalize(G_GNUC_UNUSED JingleSessionClass *klass)
 {
 }
 
diff --git a/libpurple/protocols/jabber/jingle/transport.c b/libpurple/protocols/jabber/jingle/transport.c
--- a/libpurple/protocols/jabber/jingle/transport.c
+++ b/libpurple/protocols/jabber/jingle/transport.c
@@ -44,13 +44,18 @@ jingle_transport_parse_internal(PurpleXm
 }
 
 static void
-jingle_transport_add_local_candidate_internal(JingleTransport *transport, const gchar *id, guint generation, PurpleMediaCandidate *candidate)
+jingle_transport_add_local_candidate_internal(G_GNUC_UNUSED JingleTransport *transport,
+                                              G_GNUC_UNUSED const char *id,
+                                              G_GNUC_UNUSED guint generation,
+                                              G_GNUC_UNUSED PurpleMediaCandidate *candidate)
 {
 	/* Nothing to do */
 }
 
 static PurpleXmlNode *
-jingle_transport_to_xml_internal(JingleTransport *transport, PurpleXmlNode *content, JingleActionType action)
+jingle_transport_to_xml_internal(JingleTransport *transport,
+                                 PurpleXmlNode *content,
+                                 G_GNUC_UNUSED JingleActionType action)
 {
 	PurpleXmlNode *node = purple_xmlnode_new_child(content, "transport");
 	purple_xmlnode_set_namespace(node, jingle_transport_get_transport_type(transport));
@@ -58,7 +63,7 @@ jingle_transport_to_xml_internal(JingleT
 }
 
 static GList *
-jingle_transport_get_remote_candidates_internal(JingleTransport *transport)
+jingle_transport_get_remote_candidates_internal(G_GNUC_UNUSED JingleTransport *transport)
 {
 	return NULL;
 }
@@ -67,12 +72,12 @@ jingle_transport_get_remote_candidates_i
  * GObject Stuff
  *****************************************************************************/
 static void
-jingle_transport_init (JingleTransport *transport)
+jingle_transport_init(G_GNUC_UNUSED JingleTransport *transport)
 {
 }
 
 static void
-jingle_transport_class_finalize (JingleTransportClass *klass)
+jingle_transport_class_finalize(G_GNUC_UNUSED JingleTransportClass *klass)
 {
 }
 
diff --git a/libpurple/protocols/jabber/meson.build b/libpurple/protocols/jabber/meson.build
--- a/libpurple/protocols/jabber/meson.build
+++ b/libpurple/protocols/jabber/meson.build
@@ -101,7 +101,9 @@ if DYNAMIC_JABBER
 	    c_args : ['-DG_LOG_USE_STRUCTURED', '-DG_LOG_DOMAIN="Purple-XMPP"'],
 	    link_args : jabber_link_args,
 	    dependencies : [gstreamer, idn, libxml, sasl, libpurple_dep, libsoup, glib, gio, math, ws2_32],
-	    install : true, install_dir : PURPLE_PLUGINDIR)
+	    install : true,
+	    install_dir : PURPLE_PLUGINDIR,
+	    override_options : ['c_std=c99', 'warning_level=2'])
 
 	devenv.append('PURPLE_PLUGIN_PATH', meson.current_build_dir())
 
diff --git a/libpurple/protocols/jabber/message.c b/libpurple/protocols/jabber/message.c
--- a/libpurple/protocols/jabber/message.c
+++ b/libpurple/protocols/jabber/message.c
@@ -687,7 +687,7 @@ void jabber_message_parse(JabberStream *
 		case JABBER_MESSAGE_OTHER:
 			purple_debug_info("jabber",
 					"Received message of unknown type: %s\n", type);
-			/* Fall-through is intentional */
+			G_GNUC_FALLTHROUGH;
 		case JABBER_MESSAGE_NORMAL:
 		case JABBER_MESSAGE_CHAT:
 			handle_chat(jm);
@@ -840,8 +840,9 @@ jabber_xhtml_plain_equal(const char *xht
 	return ret;
 }
 
-int jabber_message_send_im(PurpleProtocolIM *pim, PurpleConnection *gc,
-                           PurpleMessage *msg)
+int
+jabber_message_send_im(G_GNUC_UNUSED PurpleProtocolIM *pim,
+                       PurpleConnection *gc, PurpleMessage *msg)
 {
 	JabberMessage *jm;
 	JabberBuddy *jb;
@@ -903,7 +904,7 @@ int jabber_message_send_im(PurpleProtoco
 }
 
 gint
-jabber_message_send_chat(PurpleProtocolChat *protocol_chat,
+jabber_message_send_chat(G_GNUC_UNUSED PurpleProtocolChat *protocol_chat,
                          PurpleConnection *gc, gint id, PurpleMessage *msg)
 {
 	JabberChat *chat;
@@ -943,8 +944,9 @@ jabber_message_send_chat(PurpleProtocolC
 	return 1;
 }
 
-unsigned int jabber_send_typing(PurpleProtocolIM *pim, PurpleConnection *gc,
-                                const char *who, PurpleIMTypingState state)
+unsigned int
+jabber_send_typing(G_GNUC_UNUSED PurpleProtocolIM *pim, PurpleConnection *gc,
+                   const char *who, PurpleIMTypingState state)
 {
 	JabberStream *js;
 	JabberMessage *jm;
diff --git a/libpurple/protocols/jabber/oob.c b/libpurple/protocols/jabber/oob.c
--- a/libpurple/protocols/jabber/oob.c
+++ b/libpurple/protocols/jabber/oob.c
@@ -318,8 +318,7 @@ jabber_oob_xfer_finalize(GObject *obj) {
 }
 
 static void
-jabber_oob_xfer_class_finalize(JabberOOBXferClass *klass) {
-
+jabber_oob_xfer_class_finalize(G_GNUC_UNUSED JabberOOBXferClass *klass) {
 }
 
 static void
diff --git a/libpurple/protocols/jabber/parser.c b/libpurple/protocols/jabber/parser.c
--- a/libpurple/protocols/jabber/parser.c
+++ b/libpurple/protocols/jabber/parser.c
@@ -31,9 +31,13 @@
 
 static void
 jabber_parser_element_start_libxml(void *user_data,
-				   const xmlChar *element_name, const xmlChar *prefix, const xmlChar *namespace,
-				   int nb_namespaces, const xmlChar **namespaces,
-				   int nb_attributes, int nb_defaulted, const xmlChar **attributes)
+                                   const xmlChar *element_name,
+                                   const xmlChar *prefix,
+                                   const xmlChar *namespace, int nb_namespaces,
+                                   const xmlChar **namespaces,
+                                   int nb_attributes,
+                                   G_GNUC_UNUSED int nb_defaulted,
+                                   const xmlChar **attributes)
 {
 	JabberStream *js = user_data;
 	PurpleXmlNode *node;
@@ -142,7 +146,8 @@ jabber_parser_element_start_libxml(void 
 
 static void
 jabber_parser_element_end_libxml(void *user_data, const xmlChar *element_name,
-				 const xmlChar *prefix, const xmlChar *namespace)
+                                 G_GNUC_UNUSED const xmlChar *prefix,
+                                 G_GNUC_UNUSED const xmlChar *namespace)
 {
 	JabberStream *js = user_data;
 
diff --git a/libpurple/protocols/jabber/pep.c b/libpurple/protocols/jabber/pep.c
--- a/libpurple/protocols/jabber/pep.c
+++ b/libpurple/protocols/jabber/pep.c
@@ -74,7 +74,8 @@ void jabber_pep_register_handler(const c
 
 static void
 do_pep_iq_request_item_callback(JabberStream *js, const char *from,
-                                JabberIqType type, const char *id,
+                                JabberIqType type,
+                                G_GNUC_UNUSED const char *id,
                                 PurpleXmlNode *packet, gpointer data)
 {
 	PurpleXmlNode *pubsub;
@@ -115,7 +116,10 @@ void jabber_pep_request_item(JabberStrea
 	jabber_iq_send(iq);
 }
 
-gboolean jabber_pep_namespace_only_when_pep_enabled_cb(JabberStream *js, const gchar *namespace) {
+gboolean
+jabber_pep_namespace_only_when_pep_enabled_cb(JabberStream *js,
+                                              G_GNUC_UNUSED const char *namespace)
+{
 	return js->pep;
 }
 
diff --git a/libpurple/protocols/jabber/ping.c b/libpurple/protocols/jabber/ping.c
--- a/libpurple/protocols/jabber/ping.c
+++ b/libpurple/protocols/jabber/ping.c
@@ -28,9 +28,12 @@
 #include "ping.h"
 #include "iq.h"
 
-static void jabber_keepalive_pong_cb(JabberStream *js, const char *from,
-                                     JabberIqType type, const char *id,
-                                     PurpleXmlNode *packet, gpointer data)
+static void
+jabber_keepalive_pong_cb(JabberStream *js, G_GNUC_UNUSED const char *from,
+                         G_GNUC_UNUSED JabberIqType type,
+                         G_GNUC_UNUSED const char *id,
+                         G_GNUC_UNUSED PurpleXmlNode *packet,
+                         G_GNUC_UNUSED gpointer data)
 {
 	if (js->keepalive_timeout != 0) {
 		g_source_remove(js->keepalive_timeout);
@@ -39,8 +42,8 @@ static void jabber_keepalive_pong_cb(Jab
 }
 
 void
-jabber_ping_parse(JabberStream *js, const char *from,
-                  JabberIqType type, const char *id, PurpleXmlNode *ping)
+jabber_ping_parse(JabberStream *js, const char *from, JabberIqType type,
+                  const char *id, G_GNUC_UNUSED PurpleXmlNode *ping)
 {
 	if (type == JABBER_IQ_GET) {
 		JabberIq *iq = jabber_iq_new(js, JABBER_IQ_RESULT);
@@ -55,9 +58,12 @@ jabber_ping_parse(JabberStream *js, cons
 	}
 }
 
-static void jabber_ping_result_cb(JabberStream *js, const char *from,
-                                  JabberIqType type, const char *id,
-                                  PurpleXmlNode *packet, gpointer data)
+static void
+jabber_ping_result_cb(G_GNUC_UNUSED JabberStream *js,
+                      G_GNUC_UNUSED const char *from, JabberIqType type,
+                      G_GNUC_UNUSED const char *id,
+                      G_GNUC_UNUSED PurpleXmlNode *packet,
+                      G_GNUC_UNUSED gpointer data)
 {
 	if (type == JABBER_IQ_RESULT)
 		purple_debug_info("jabber", "PONG!\n");
diff --git a/libpurple/protocols/jabber/presence.c b/libpurple/protocols/jabber/presence.c
--- a/libpurple/protocols/jabber/presence.c
+++ b/libpurple/protocols/jabber/presence.c
@@ -70,8 +70,9 @@ str_to_presence_type(const char *type)
 	return JABBER_PRESENCE_AVAILABLE;
 }
 
-static void chats_send_presence_foreach(gpointer key, gpointer val,
-		gpointer user_data)
+static void
+chats_send_presence_foreach(G_GNUC_UNUSED gpointer key, gpointer val,
+                            gpointer user_data)
 {
 	JabberChat *chat = val;
 	PurpleXmlNode *presence = user_data;
@@ -143,7 +144,7 @@ void jabber_presence_fake_to_self(Jabber
 }
 
 void
-jabber_set_status(PurpleProtocolServer *protocol_server,
+jabber_set_status(G_GNUC_UNUSED PurpleProtocolServer *protocol_server,
                   PurpleAccount *account, PurpleStatus *status)
 {
 	PurpleConnection *gc;
@@ -367,7 +368,7 @@ authorize_add_cb(G_GNUC_UNUSED PurpleAut
 
 static void
 deny_add_cb(G_GNUC_UNUSED PurpleAuthorizationRequest *request,
-            const char *message, gpointer data)
+            G_GNUC_UNUSED const char *message, gpointer data)
 {
 	struct _jabber_add_permit *jap = data;
 
@@ -382,8 +383,9 @@ deny_add_cb(G_GNUC_UNUSED PurpleAuthoriz
 
 static void
 jabber_vcard_parse_avatar(JabberStream *js, const char *from,
-                          JabberIqType type, const char *id,
-                          PurpleXmlNode *packet, gpointer blah)
+                          G_GNUC_UNUSED JabberIqType type,
+                          G_GNUC_UNUSED const char *id, PurpleXmlNode *packet,
+                          G_GNUC_UNUSED gpointer data)
 {
 	JabberBuddy *jb = NULL;
 	PurpleXmlNode *vcard, *photo, *binval, *fn, *nick;
@@ -1109,7 +1111,8 @@ void purple_status_to_jabber(PurpleStatu
 
 /* Incoming presence handlers */
 static void
-parse_priority(JabberStream *js, JabberPresence *presence, PurpleXmlNode *priority)
+parse_priority(G_GNUC_UNUSED JabberStream *js, JabberPresence *presence,
+               PurpleXmlNode *priority)
 {
 	char *p = purple_xmlnode_get_data(priority);
 
@@ -1125,7 +1128,8 @@ parse_priority(JabberStream *js, JabberP
 }
 
 static void
-parse_show(JabberStream *js, JabberPresence *presence, PurpleXmlNode *show)
+parse_show(G_GNUC_UNUSED JabberStream *js, JabberPresence *presence,
+           PurpleXmlNode *show)
 {
 	char *cdata;
 
@@ -1145,7 +1149,8 @@ parse_show(JabberStream *js, JabberPrese
 }
 
 static void
-parse_status(JabberStream *js, JabberPresence *presence, PurpleXmlNode *status)
+parse_status(G_GNUC_UNUSED JabberStream *js, JabberPresence *presence,
+             PurpleXmlNode *status)
 {
 	/* TODO: Check/track language attribute? */
 
@@ -1154,7 +1159,8 @@ parse_status(JabberStream *js, JabberPre
 }
 
 static void
-parse_delay(JabberStream *js, JabberPresence *presence, PurpleXmlNode *delay)
+parse_delay(G_GNUC_UNUSED JabberStream *js, JabberPresence *presence,
+            PurpleXmlNode *delay)
 {
 	GTimeZone *tz = g_time_zone_new_utc();
 	const char *stamp = purple_xmlnode_get_attrib(delay, "stamp");
@@ -1166,7 +1172,8 @@ parse_delay(JabberStream *js, JabberPres
 }
 
 static void
-parse_idle(JabberStream *js, JabberPresence *presence, PurpleXmlNode *query)
+parse_idle(G_GNUC_UNUSED JabberStream *js, JabberPresence *presence,
+           PurpleXmlNode *query)
 {
 	const gchar *seconds = purple_xmlnode_get_attrib(query, "seconds");
 	if (seconds) {
@@ -1180,7 +1187,8 @@ parse_idle(JabberStream *js, JabberPrese
 }
 
 static void
-parse_caps(JabberStream *js, JabberPresence *presence, PurpleXmlNode *c)
+parse_caps(G_GNUC_UNUSED JabberStream *js, JabberPresence *presence,
+           PurpleXmlNode *c)
 {
 	/* TODO: Move the rest of the caps handling in here, after changing the
 	 * the "do we have details about this (node, ver) and exts" to not
@@ -1190,14 +1198,16 @@ parse_caps(JabberStream *js, JabberPrese
 }
 
 static void
-parse_nickname(JabberStream *js, JabberPresence *presence, PurpleXmlNode *nick)
+parse_nickname(G_GNUC_UNUSED JabberStream *js, JabberPresence *presence,
+               PurpleXmlNode *nick)
 {
 	g_free(presence->nickname);
 	presence->nickname = purple_xmlnode_get_data(nick);
 }
 
 static void
-parse_vcard_avatar(JabberStream *js, JabberPresence *presence, PurpleXmlNode *x)
+parse_vcard_avatar(G_GNUC_UNUSED JabberStream *js, JabberPresence *presence,
+                   PurpleXmlNode *x)
 {
 	PurpleXmlNode *photo = purple_xmlnode_get_child(x, "photo");
 
@@ -1210,7 +1220,8 @@ parse_vcard_avatar(JabberStream *js, Jab
 }
 
 static void
-parse_muc_user(JabberStream *js, JabberPresence *presence, PurpleXmlNode *x)
+parse_muc_user(G_GNUC_UNUSED JabberStream *js, JabberPresence *presence,
+               PurpleXmlNode *x)
 {
 	PurpleXmlNode *status;
 
diff --git a/libpurple/protocols/jabber/roster.c b/libpurple/protocols/jabber/roster.c
--- a/libpurple/protocols/jabber/roster.c
+++ b/libpurple/protocols/jabber/roster.c
@@ -45,9 +45,10 @@ static gchar *roster_groups_join(GSList 
 	return g_string_free(out, FALSE);
 }
 
-static void roster_request_cb(JabberStream *js, const char *from,
-                              JabberIqType type, const char *id,
-                              PurpleXmlNode *packet, gpointer data)
+static void
+roster_request_cb(JabberStream *js, const char *from, JabberIqType type,
+                  const char *id, PurpleXmlNode *packet,
+                  G_GNUC_UNUSED gpointer data)
 {
 	PurpleXmlNode *query;
 
@@ -336,9 +337,10 @@ static void jabber_roster_update(JabberS
 }
 
 void
-jabber_roster_add_buddy(PurpleProtocolServer *protocol_server,
+jabber_roster_add_buddy(G_GNUC_UNUSED PurpleProtocolServer *protocol_server,
                         PurpleConnection *gc, PurpleBuddy *buddy,
-                        PurpleGroup *group, const gchar *message)
+                        G_GNUC_UNUSED PurpleGroup *group,
+                        G_GNUC_UNUSED const char *message)
 {
 	JabberStream *js = purple_connection_get_protocol_data(gc);
 	char *who;
@@ -402,7 +404,7 @@ jabber_roster_add_buddy(PurpleProtocolSe
 }
 
 void
-jabber_roster_alias_change(PurpleProtocolServer *protocol_server,
+jabber_roster_alias_change(G_GNUC_UNUSED PurpleProtocolServer *protocol_server,
                            PurpleConnection *gc, const gchar *name,
                            const gchar *alias)
 {
@@ -419,7 +421,7 @@ jabber_roster_alias_change(PurpleProtoco
 }
 
 void
-jabber_roster_group_change(PurpleProtocolServer *protocol_server,
+jabber_roster_group_change(G_GNUC_UNUSED PurpleProtocolServer *protocol_server,
                            PurpleConnection *gc, const gchar *name,
                            const gchar *old_group, const gchar *new_group)
 {
@@ -458,7 +460,7 @@ jabber_roster_group_rename(PurpleProtoco
 }
 
 void
-jabber_roster_remove_buddy(PurpleProtocolServer *protocol_server,
+jabber_roster_remove_buddy(G_GNUC_UNUSED PurpleProtocolServer *protocol_server,
                            PurpleConnection *gc, PurpleBuddy *buddy,
                            PurpleGroup *group)
 {
diff --git a/libpurple/protocols/jabber/si.c b/libpurple/protocols/jabber/si.c
--- a/libpurple/protocols/jabber/si.c
+++ b/libpurple/protocols/jabber/si.c
@@ -745,7 +745,7 @@ jabber_si_compare_jid(gconstpointer a, g
 }
 
 static void
-jabber_si_xfer_bytestreams_send_connected_cb(GSocketService *service,
+jabber_si_xfer_bytestreams_send_connected_cb(G_GNUC_UNUSED GSocketService *service,
                                              GSocketConnection *connection,
                                              GObject *source_object,
                                              G_GNUC_UNUSED gpointer data)
@@ -771,7 +771,7 @@ jabber_si_xfer_bytestreams_send_connecte
 
 static void
 jabber_si_connect_proxy_cb(JabberStream *js, const char *from,
-                           JabberIqType type, const char *id,
+                           JabberIqType type, G_GNUC_UNUSED const char *id,
                            PurpleXmlNode *packet, gpointer data)
 {
 	PurpleXfer *xfer = data;
@@ -1252,9 +1252,11 @@ jabber_si_xfer_ibb_send_init(JabberStrea
 	}
 }
 
-static void jabber_si_xfer_send_method_cb(JabberStream *js, const char *from,
-                                          JabberIqType type, const char *id,
-                                          PurpleXmlNode *packet, gpointer data)
+static void
+jabber_si_xfer_send_method_cb(JabberStream *js, G_GNUC_UNUSED const char *from,
+                              G_GNUC_UNUSED JabberIqType type,
+                              G_GNUC_UNUSED const char *id,
+                              PurpleXmlNode *packet, gpointer data)
 {
 	PurpleXfer *xfer = data;
 	PurpleXmlNode *si, *feature, *x, *field, *value;
@@ -1465,7 +1467,9 @@ static void jabber_si_xfer_send_disco_cb
 	}
 }
 
-static void resource_select_cancel_cb(PurpleXfer *xfer, PurpleRequestFields *fields)
+static void
+resource_select_cancel_cb(PurpleXfer *xfer,
+                          G_GNUC_UNUSED PurpleRequestFields *fields)
 {
 	purple_xfer_cancel_local(xfer);
 }
@@ -1645,7 +1649,9 @@ static void jabber_si_xfer_xfer_init(Pur
 	}
 }
 
-PurpleXfer *jabber_si_new_xfer(PurpleProtocolXfer *prplxfer, PurpleConnection *gc, const char *who)
+PurpleXfer *
+jabber_si_new_xfer(G_GNUC_UNUSED PurpleProtocolXfer *prplxfer,
+                   PurpleConnection *gc, const char *who)
 {
 	JabberStream *js;
 	JabberSIXfer *jsx;
@@ -1696,8 +1702,9 @@ jabber_si_thumbnail_cb(JabberData *data,
 #endif
 
 static void
-jabber_si_parse(JabberStream *js, const char *from, JabberIqType type,
-                const char *id, PurpleXmlNode *si)
+jabber_si_parse(JabberStream *js, const char *from,
+                G_GNUC_UNUSED JabberIqType type, const char *id,
+                PurpleXmlNode *si)
 {
 	JabberSIXfer *jsx;
 	PurpleXmlNode *file, *feature, *x, *field, *option, *value;
@@ -1859,7 +1866,7 @@ jabber_si_xfer_finalize(GObject *obj) {
 }
 
 static void
-jabber_si_xfer_class_finalize(JabberSIXferClass *klass) {
+jabber_si_xfer_class_finalize(G_GNUC_UNUSED JabberSIXferClass *klass) {
 }
 
 static void
diff --git a/libpurple/protocols/jabber/tests/meson.build b/libpurple/protocols/jabber/tests/meson.build
--- a/libpurple/protocols/jabber/tests/meson.build
+++ b/libpurple/protocols/jabber/tests/meson.build
@@ -2,7 +2,8 @@ foreach prog : ['caps', 'digest_md5', 's
 	e = executable(
 	    f'test_jabber_@prog@', f'test_jabber_@prog@.c',
 	    link_with : [jabber_prpl],
-	    dependencies : [libxml, libpurple_dep, libsoup, glib])
+	    dependencies : [libxml, libpurple_dep, libsoup, glib],
+	    override_options : ['c_std=c99', 'warning_level=2'])
 
 	jabberenv = environment()
 	jabberenv.set('XDG_CONFIG_DIR', meson.current_build_dir() / 'config')
diff --git a/libpurple/protocols/jabber/useravatar.c b/libpurple/protocols/jabber/useravatar.c
--- a/libpurple/protocols/jabber/useravatar.c
+++ b/libpurple/protocols/jabber/useravatar.c
@@ -170,7 +170,8 @@ void jabber_avatar_set(JabberStream *js,
 }
 
 static void
-do_got_own_avatar_cb(JabberStream *js, const char *from, PurpleXmlNode *items)
+do_got_own_avatar_cb(JabberStream *js, G_GNUC_UNUSED const char *from,
+                     PurpleXmlNode *items)
 {
 	PurpleXmlNode *item = NULL, *metadata = NULL, *info = NULL;
 	PurpleAccount *account = purple_connection_get_account(js->gc);
diff --git a/libpurple/protocols/jabber/usermood.c b/libpurple/protocols/jabber/usermood.c
--- a/libpurple/protocols/jabber/usermood.c
+++ b/libpurple/protocols/jabber/usermood.c
@@ -30,92 +30,92 @@
 #include <string.h>
 
 static PurpleMood moods[] = {
-	{"afraid", N_("Afraid"), },
-	{"amazed", N_("Amazed"), },
-	{"amorous", N_("Amorous"), },
-	{"angry", N_("Angry"), },
-	{"annoyed", N_("Annoyed"), },
-	{"anxious", N_("Anxious"), },
-	{"aroused", N_("Aroused"), },
-	{"ashamed", N_("Ashamed"), },
-	{"bored", N_("Bored"), },
-	{"brave", N_("Brave"), },
-	{"calm", N_("Calm"), },
-	{"cautious", N_("Cautious"), },
-	{"cold", N_("Cold"), },
-	{"confident", N_("Confident"), },
-	{"confused", N_("Confused"), },
-	{"contemplative", N_("Contemplative"), },
-	{"contented", N_("Contented"), },
-	{"cranky", N_("Cranky"), },
-	{"crazy", N_("Crazy"), },
-	{"creative", N_("Creative"), },
-	{"curious", N_("Curious"), },
-	{"dejected", N_("Dejected"), },
-	{"depressed", N_("Depressed"), },
-	{"disappointed", N_("Disappointed"), },
-	{"disgusted", N_("Disgusted"), },
-	{"dismayed", N_("Dismayed"), },
-	{"distracted", N_("Distracted"), },
-	{"embarrassed", N_("Embarrassed"), },
-	{"envious", N_("Envious"), },
-	{"excited", N_("Excited"), },
-	{"flirtatious", N_("Flirtatious"), },
-	{"frustrated", N_("Frustrated"), },
-	{"grateful", N_("Grateful"), },
-	{"grieving", N_("Grieving"), },
-	{"grumpy", N_("Grumpy"), },
-	{"guilty", N_("Guilty"), },
-	{"happy", N_("Happy"), },
-	{"hopeful", N_("Hopeful"), },
-	{"hot", N_("Hot"), },
-	{"humbled", N_("Humbled"), },
-	{"humiliated", N_("Humiliated"), },
-	{"hungry", N_("Hungry"), },
-	{"hurt", N_("Hurt"), },
-	{"impressed", N_("Impressed"), },
-	{"in_awe", N_("In awe"), },
-	{"in_love", N_("In love"), },
-	{"indignant", N_("Indignant"), },
-	{"interested", N_("Interested"), },
-	{"intoxicated", N_("Intoxicated"), },
-	{"invincible", N_("Invincible"), },
-	{"jealous", N_("Jealous"), },
-	{"lonely", N_("Lonely"), },
-	{"lost", N_("Lost"), },
-	{"lucky", N_("Lucky"), },
-	{"mean", N_("Mean"), },
-	{"moody", N_("Moody"), },
-	{"nervous", N_("Nervous"), },
-	{"neutral", N_("Neutral"), },
-	{"offended", N_("Offended"), },
-	{"outraged", N_("Outraged"), },
-	{"playful", N_("Playful"), },
-	{"proud", N_("Proud"), },
-	{"relaxed", N_("Relaxed"), },
-	{"relieved", N_("Relieved"), },
-	{"remorseful", N_("Remorseful"), },
-	{"restless", N_("Restless"), },
-	{"sad", N_("Sad"), },
-	{"sarcastic", N_("Sarcastic"), },
-	{"satisfied", N_("Satisfied"), },
-	{"serious", N_("Serious"), },
-	{"shocked", N_("Shocked"), },
-	{"shy", N_("Shy"), },
-	{"sick", N_("Sick"), },
-	{"sleepy", N_("Sleepy"), },
-	{"spontaneous", N_("Spontaneous"), },
-	{"stressed", N_("Stressed"), },
-	{"strong", N_("Strong"), },
-	{"surprised", N_("Surprised"), },
-	{"thankful", N_("Thankful"), },
-	{"thirsty", N_("Thirsty"), },
-	{"tired", N_("Tired"), },
-	{"undefined", N_("Undefined"), },
-	{"weak", N_("Weak"), },
-	{"worried", N_("Worried"), },
+	{ .mood = "afraid", .description = N_("Afraid"), },
+	{ .mood = "amazed", .description = N_("Amazed"), },
+	{ .mood = "amorous", .description = N_("Amorous"), },
+	{ .mood = "angry", .description = N_("Angry"), },
+	{ .mood = "annoyed", .description = N_("Annoyed"), },
+	{ .mood = "anxious", .description = N_("Anxious"), },
+	{ .mood = "aroused", .description = N_("Aroused"), },
+	{ .mood = "ashamed", .description = N_("Ashamed"), },
+	{ .mood = "bored", .description = N_("Bored"), },
+	{ .mood = "brave", .description = N_("Brave"), },
+	{ .mood = "calm", .description = N_("Calm"), },
+	{ .mood = "cautious", .description = N_("Cautious"), },
+	{ .mood = "cold", .description = N_("Cold"), },
+	{ .mood = "confident", .description = N_("Confident"), },
+	{ .mood = "confused", .description = N_("Confused"), },
+	{ .mood = "contemplative", .description = N_("Contemplative"), },
+	{ .mood = "contented", .description = N_("Contented"), },
+	{ .mood = "cranky", .description = N_("Cranky"), },
+	{ .mood = "crazy", .description = N_("Crazy"), },
+	{ .mood = "creative", .description = N_("Creative"), },
+	{ .mood = "curious", .description = N_("Curious"), },
+	{ .mood = "dejected", .description = N_("Dejected"), },
+	{ .mood = "depressed", .description = N_("Depressed"), },
+	{ .mood = "disappointed", .description = N_("Disappointed"), },
+	{ .mood = "disgusted", .description = N_("Disgusted"), },
+	{ .mood = "dismayed", .description = N_("Dismayed"), },
+	{ .mood = "distracted", .description = N_("Distracted"), },
+	{ .mood = "embarrassed", .description = N_("Embarrassed"), },
+	{ .mood = "envious", .description = N_("Envious"), },
+	{ .mood = "excited", .description = N_("Excited"), },
+	{ .mood = "flirtatious", .description = N_("Flirtatious"), },
+	{ .mood = "frustrated", .description = N_("Frustrated"), },
+	{ .mood = "grateful", .description = N_("Grateful"), },
+	{ .mood = "grieving", .description = N_("Grieving"), },
+	{ .mood = "grumpy", .description = N_("Grumpy"), },
+	{ .mood = "guilty", .description = N_("Guilty"), },
+	{ .mood = "happy", .description = N_("Happy"), },
+	{ .mood = "hopeful", .description = N_("Hopeful"), },
+	{ .mood = "hot", .description = N_("Hot"), },
+	{ .mood = "humbled", .description = N_("Humbled"), },
+	{ .mood = "humiliated", .description = N_("Humiliated"), },
+	{ .mood = "hungry", .description = N_("Hungry"), },
+	{ .mood = "hurt", .description = N_("Hurt"), },
+	{ .mood = "impressed", .description = N_("Impressed"), },
+	{ .mood = "in_awe", .description = N_("In awe"), },
+	{ .mood = "in_love", .description = N_("In love"), },
+	{ .mood = "indignant", .description = N_("Indignant"), },
+	{ .mood = "interested", .description = N_("Interested"), },
+	{ .mood = "intoxicated", .description = N_("Intoxicated"), },
+	{ .mood = "invincible", .description = N_("Invincible"), },
+	{ .mood = "jealous", .description = N_("Jealous"), },
+	{ .mood = "lonely", .description = N_("Lonely"), },
+	{ .mood = "lost", .description = N_("Lost"), },
+	{ .mood = "lucky", .description = N_("Lucky"), },
+	{ .mood = "mean", .description = N_("Mean"), },
+	{ .mood = "moody", .description = N_("Moody"), },
+	{ .mood = "nervous", .description = N_("Nervous"), },
+	{ .mood = "neutral", .description = N_("Neutral"), },
+	{ .mood = "offended", .description = N_("Offended"), },
+	{ .mood = "outraged", .description = N_("Outraged"), },
+	{ .mood = "playful", .description = N_("Playful"), },
+	{ .mood = "proud", .description = N_("Proud"), },
+	{ .mood = "relaxed", .description = N_("Relaxed"), },
+	{ .mood = "relieved", .description = N_("Relieved"), },
+	{ .mood = "remorseful", .description = N_("Remorseful"), },
+	{ .mood = "restless", .description = N_("Restless"), },
+	{ .mood = "sad", .description = N_("Sad"), },
+	{ .mood = "sarcastic", .description = N_("Sarcastic"), },
+	{ .mood = "satisfied", .description = N_("Satisfied"), },
+	{ .mood = "serious", .description = N_("Serious"), },
+	{ .mood = "shocked", .description = N_("Shocked"), },
+	{ .mood = "shy", .description = N_("Shy"), },
+	{ .mood = "sick", .description = N_("Sick"), },
+	{ .mood = "sleepy", .description = N_("Sleepy"), },
+	{ .mood = "spontaneous", .description = N_("Spontaneous"), },
+	{ .mood = "stressed", .description = N_("Stressed"), },
+	{ .mood = "strong", .description = N_("Strong"), },
+	{ .mood = "surprised", .description = N_("Surprised"), },
+	{ .mood = "thankful", .description = N_("Thankful"), },
+	{ .mood = "thirsty", .description = N_("Thirsty"), },
+	{ .mood = "tired", .description = N_("Tired"), },
+	{ .mood = "undefined", .description = N_("Undefined"), },
+	{ .mood = "weak", .description = N_("Weak"), },
+	{ .mood = "worried", .description = N_("Worried"), },
 	/* Mark last record. */
-	{NULL, }
+	{ .mood = NULL, .description = NULL, }
 };
 
 static const PurpleMood*
@@ -219,6 +219,8 @@ jabber_mood_set(JabberStream *js, const 
 }
 
 PurpleMood *
-jabber_get_moods(PurpleProtocolClient *client, PurpleAccount *account) {
+jabber_get_moods(G_GNUC_UNUSED PurpleProtocolClient *client,
+                 G_GNUC_UNUSED PurpleAccount *account)
+{
 	return moods;
 }
diff --git a/libpurple/protocols/jabber/usernick.c b/libpurple/protocols/jabber/usernick.c
--- a/libpurple/protocols/jabber/usernick.c
+++ b/libpurple/protocols/jabber/usernick.c
@@ -64,7 +64,10 @@ static void do_nick_set(JabberStream *js
 		(yay for well-defined memory management rules) */
 }
 
-static void do_nick_got_own_nick_cb(JabberStream *js, const char *from, PurpleXmlNode *items) {
+static void
+do_nick_got_own_nick_cb(JabberStream *js, G_GNUC_UNUSED const char *from,
+                        PurpleXmlNode *items)
+{
 	char *oldnickname = NULL;
 	PurpleXmlNode *item = NULL;
 
diff --git a/libpurple/protocols/jabber/xdata.c b/libpurple/protocols/jabber/xdata.c
--- a/libpurple/protocols/jabber/xdata.c
+++ b/libpurple/protocols/jabber/xdata.c
@@ -40,7 +40,7 @@ typedef enum {
 struct jabber_x_data_data {
 	GHashTable *fields;
 	GSList *values;
-	jabber_x_data_action_cb cb;
+	GCallback cb;
 	gpointer user_data;
 	JabberStream *js;
 	GList *actions;
@@ -49,7 +49,7 @@ struct jabber_x_data_data {
 
 static void jabber_x_data_ok_cb(struct jabber_x_data_data *data, PurpleRequestFields *fields) {
 	PurpleXmlNode *result = purple_xmlnode_new("x");
-	jabber_x_data_action_cb cb = data->cb;
+	GCallback cb = data->cb;
 	gpointer user_data = data->user_data;
 	JabberStream *js = data->js;
 	GList *groups, *flds;
@@ -146,17 +146,21 @@ static void jabber_x_data_ok_cb(struct j
 	g_list_free_full(data->actions, g_free);
 	g_free(data);
 
-	if (hasActions)
-		cb(js, result, actionhandle, user_data);
-	else
+	if(hasActions) {
+		((jabber_x_data_action_cb)cb)(js, result, actionhandle, user_data);
+	} else {
 		((jabber_x_data_cb)cb)(js, result, user_data);
+	}
 
 	g_free(actionhandle);
 }
 
-static void jabber_x_data_cancel_cb(struct jabber_x_data_data *data, PurpleRequestFields *fields) {
+static void
+jabber_x_data_cancel_cb(struct jabber_x_data_data *data,
+                        G_GNUC_UNUSED PurpleRequestFields *fields)
+{
 	PurpleXmlNode *result = purple_xmlnode_new("x");
-	jabber_x_data_action_cb cb = data->cb;
+	GCallback cb = data->cb;
 	gpointer user_data = data->user_data;
 	JabberStream *js = data->js;
 	gboolean hasActions = (data->actions != NULL);
@@ -168,15 +172,18 @@ static void jabber_x_data_cancel_cb(stru
 	purple_xmlnode_set_namespace(result, "jabber:x:data");
 	purple_xmlnode_set_attrib(result, "type", "cancel");
 
-	if (hasActions)
-		cb(js, result, NULL, user_data);
-	else
+	if(hasActions) {
+		((jabber_x_data_action_cb)cb)(js, result, NULL, user_data);
+	} else {
 		((jabber_x_data_cb)cb)(js, result, user_data);
+	}
 }
 
 void *jabber_x_data_request(JabberStream *js, PurpleXmlNode *packet, jabber_x_data_cb cb, gpointer user_data)
 {
-	return jabber_x_data_request_with_actions(js, packet, NULL, 0, (jabber_x_data_action_cb)cb, user_data);
+	return jabber_x_data_request_with_actions(js, packet, NULL, 0,
+	                                          (jabber_x_data_action_cb)(GCallback)cb,
+	                                          user_data);
 }
 
 void *jabber_x_data_request_with_actions(JabberStream *js, PurpleXmlNode *packet, GList *actions, int defaultaction, jabber_x_data_action_cb cb, gpointer user_data)
@@ -194,7 +201,7 @@ void *jabber_x_data_request_with_actions
 
 	data->fields = g_hash_table_new_full(g_str_hash, g_str_equal, g_free, NULL);
 	data->user_data = user_data;
-	data->cb = cb;
+	data->cb = G_CALLBACK(cb);
 	data->js = js;
 
 	fields = purple_request_fields_new();
diff --git a/libpurple/protocols/jabber/xmpp.c b/libpurple/protocols/jabber/xmpp.c
--- a/libpurple/protocols/jabber/xmpp.c
+++ b/libpurple/protocols/jabber/xmpp.c
@@ -33,7 +33,7 @@ struct _XMPPProtocol {
 };
 
 static GList *
-xmpp_protocol_get_account_options(PurpleProtocol *protocol) {
+xmpp_protocol_get_account_options(G_GNUC_UNUSED PurpleProtocol *protocol) {
 	PurpleAccountOption *option;
 	PurpleKeyValuePair *kvp = NULL;
 	GList *opts = NULL, *encryption_values = NULL;
@@ -78,7 +78,7 @@ xmpp_protocol_get_account_options(Purple
 }
 
 static GList *
-xmpp_protocol_get_user_splits(PurpleProtocol *protocol) {
+xmpp_protocol_get_user_splits(G_GNUC_UNUSED PurpleProtocol *protocol) {
 	GList *splits = NULL;
 	PurpleAccountUserSplit *split;
 
@@ -97,7 +97,7 @@ xmpp_protocol_get_user_splits(PurpleProt
 }
 
 static void
-xmpp_protocol_init(XMPPProtocol *self) {
+xmpp_protocol_init(G_GNUC_UNUSED XMPPProtocol *self) {
 	purple_prefs_remove("/plugins/prpl/jabber");
 }
 
