/soc/2013/ankitkv/gobjectification: 0e96218aa13a: Refactored the...
Ankit Vani
a at nevitus.org
Thu Aug 29 20:20:35 EDT 2013
Changeset: 0e96218aa13afc77e1f3b229507924c22b1c32e5
Author: Ankit Vani <a at nevitus.org>
Date: 2013-08-30 05:50 +0530
Branch: soc.2013.gobjectification.plugins
URL: https://hg.pidgin.im/soc/2013/ankitkv/gobjectification/rev/0e96218aa13a
Description:
Refactored the protocols to use the new macros, to allow for static or dynamic loading of types as configured
diffstat:
libpurple/internal.h | 1 -
libpurple/protocol.h | 2 ++
libpurple/protocols/bonjour/bonjour.c | 6 ++++--
libpurple/protocols/gg/gg.c | 5 +++--
libpurple/protocols/irc/irc.c | 6 ++++--
libpurple/protocols/jabber/jabber.c | 8 ++++++--
libpurple/protocols/jabber/jabber.h | 3 +++
libpurple/protocols/jabber/libfacebook.c | 28 ++++++++++++++++------------
libpurple/protocols/jabber/libgtalk.c | 28 ++++++++++++++++------------
libpurple/protocols/jabber/libxmpp.c | 14 +++++++-------
libpurple/protocols/jabber/libxmpp.h | 4 +---
libpurple/protocols/msn/msn.c | 6 ++++--
libpurple/protocols/mxit/mxit.c | 7 +++++--
libpurple/protocols/myspace/myspace.c | 6 ++++--
libpurple/protocols/novell/novell.c | 6 ++++--
libpurple/protocols/null/nullprotocol.c | 6 ++++--
libpurple/protocols/oscar/libaim.c | 7 +++++--
libpurple/protocols/oscar/libaim.h | 2 --
libpurple/protocols/oscar/libicq.c | 28 ++++++++++++++++------------
libpurple/protocols/oscar/oscar.c | 6 ++++--
libpurple/protocols/oscar/oscar.h | 3 +++
libpurple/protocols/sametime/sametime.c | 7 ++++---
libpurple/protocols/silc/silc.c | 6 ++++--
libpurple/protocols/simple/simple.c | 6 ++++--
libpurple/protocols/yahoo/libyahoo.c | 6 ++++--
libpurple/protocols/yahoo/libyahoojp.c | 7 +++++--
libpurple/protocols/zephyr/zephyr.c | 7 ++++---
27 files changed, 136 insertions(+), 85 deletions(-)
diffs (truncated from 491 to 300 lines):
diff --git a/libpurple/internal.h b/libpurple/internal.h
--- a/libpurple/internal.h
+++ b/libpurple/internal.h
@@ -156,7 +156,6 @@
#include "accounts.h"
#include "connection.h"
-#include "prefs.h"
/* This is for the accounts code to notify the buddy icon code that
* it's done loading. We may want to replace this with a signal. */
diff --git a/libpurple/protocol.h b/libpurple/protocol.h
--- a/libpurple/protocol.h
+++ b/libpurple/protocol.h
@@ -48,10 +48,12 @@ typedef struct _PurpleProtocolInterface
#include "buddylist.h"
#include "connection.h"
#include "conversations.h"
+#include "debug.h"
#include "ft.h"
#include "imgstore.h"
#include "media.h"
#include "notify.h"
+#include "plugins.h"
#include "roomlist.h"
#include "status.h"
#include "whiteboard.h"
diff --git a/libpurple/protocols/bonjour/bonjour.c b/libpurple/protocols/bonjour/bonjour.c
--- a/libpurple/protocols/bonjour/bonjour.c
+++ b/libpurple/protocols/bonjour/bonjour.c
@@ -741,5 +741,7 @@ plugin_unload(PurplePlugin *plugin, GErr
return TRUE;
}
-PURPLE_PROTOCOL_DEFINE (BonjourProtocol, bonjour_protocol);
-PURPLE_PLUGIN_INIT (bonjour, plugin_query, plugin_load, plugin_unload);
+static PurplePlugin *my_plugin;
+PURPLE_PROTOCOL_DEFINE(my_plugin, BonjourProtocol, bonjour_protocol);
+PURPLE_PLUGIN_INIT_VAL(my_plugin, bonjour, plugin_query, plugin_load,
+ plugin_unload);
diff --git a/libpurple/protocols/gg/gg.c b/libpurple/protocols/gg/gg.c
--- a/libpurple/protocols/gg/gg.c
+++ b/libpurple/protocols/gg/gg.c
@@ -1542,7 +1542,8 @@ plugin_unload(PurplePlugin *plugin, GErr
return TRUE;
}
-PURPLE_PROTOCOL_DEFINE (GaduGaduProtocol, ggp_protocol);
-PURPLE_PLUGIN_INIT (gg, plugin_query, plugin_load, plugin_unload);
+static PurplePlugin *my_plugin;
+PURPLE_PROTOCOL_DEFINE(my_plugin, GaduGaduProtocol, ggp_protocol);
+PURPLE_PLUGIN_INIT_VAL(my_plugin, gg, plugin_query, plugin_load, plugin_unload);
/* vim: set ts=8 sts=0 sw=8 noet: */
diff --git a/libpurple/protocols/irc/irc.c b/libpurple/protocols/irc/irc.c
--- a/libpurple/protocols/irc/irc.c
+++ b/libpurple/protocols/irc/irc.c
@@ -1060,5 +1060,7 @@ plugin_unload(PurplePlugin *plugin, GErr
return TRUE;
}
-PURPLE_PROTOCOL_DEFINE (IRCProtocol, irc_protocol);
-PURPLE_PLUGIN_INIT (irc, plugin_query, plugin_load, plugin_unload);
+static PurplePlugin *my_plugin;
+PURPLE_PROTOCOL_DEFINE(my_plugin, IRCProtocol, irc_protocol);
+PURPLE_PLUGIN_INIT_VAL(my_plugin, irc, plugin_query, plugin_load,
+ plugin_unload);
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
@@ -4065,6 +4065,8 @@ jabber_protocol_base_init(JabberProtocol
{
PurpleProtocolClass *proto_class = PURPLE_PROTOCOL_CLASS(klass);
+ proto_class->id = JABBER_ID;
+ proto_class->name = JABBER_NAME;
proto_class->options = OPT_PROTO_CHAT_TOPIC | OPT_PROTO_UNIQUE_CHATNAME |
OPT_PROTO_MAIL_CHECK |
#ifdef HAVE_CYRUS_SASL
@@ -4136,5 +4138,7 @@ jabber_protocol_interface_init(PurplePro
static void jabber_protocol_base_finalize(JabberProtocolClass *klass) { }
-PURPLE_PROTOCOL_DEFINE_EXTENDED (JabberProtocol, jabber_protocol,
- PURPLE_TYPE_PROTOCOL, G_TYPE_FLAG_ABSTRACT);
+PurplePlugin *_jabber_plugin = NULL;
+
+PURPLE_PROTOCOL_DEFINE_EXTENDED(_jabber_plugin, JabberProtocol, jabber_protocol,
+ PURPLE_TYPE_PROTOCOL, G_TYPE_FLAG_ABSTRACT);
diff --git a/libpurple/protocols/jabber/jabber.h b/libpurple/protocols/jabber/jabber.h
--- a/libpurple/protocols/jabber/jabber.h
+++ b/libpurple/protocols/jabber/jabber.h
@@ -82,6 +82,9 @@ typedef struct _JabberStream JabberStrea
#define CAPS0115_NODE "https://pidgin.im/"
+#define JABBER_ID "prpl-jabber"
+#define JABBER_NAME "XMPP"
+
#define JABBER_TYPE_PROTOCOL (jabber_protocol_get_type())
#define JABBER_PROTOCOL(obj) (G_TYPE_CHECK_INSTANCE_CAST((obj), JABBER_TYPE_PROTOCOL, JabberProtocol))
#define JABBER_PROTOCOL_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST((klass), JABBER_TYPE_PROTOCOL, JabberProtocolClass))
diff --git a/libpurple/protocols/jabber/libfacebook.c b/libpurple/protocols/jabber/libfacebook.c
--- a/libpurple/protocols/jabber/libfacebook.c
+++ b/libpurple/protocols/jabber/libfacebook.c
@@ -204,16 +204,17 @@ static PurplePluginInfo *
plugin_query(GError **error)
{
return purple_plugin_info_new(
- "id", FACEBOOK_ID,
- "name", FACEBOOK_NAME,
- "version", DISPLAY_VERSION,
- "category", N_("Protocol"),
- "summary", N_("Facebook XMPP Protocol Plugin"),
- "description", N_("Facebook XMPP Protocol Plugin"),
- "website", PURPLE_WEBSITE,
- "abi-version", PURPLE_ABI_VERSION,
- "flags", GPLUGIN_PLUGIN_INFO_FLAGS_INTERNAL |
- GPLUGIN_PLUGIN_INFO_FLAGS_LOAD_ON_QUERY,
+ "id", FACEBOOK_ID,
+ "name", FACEBOOK_NAME,
+ "version", DISPLAY_VERSION,
+ "category", N_("Protocol"),
+ "summary", N_("Facebook XMPP Protocol Plugin"),
+ "description", N_("Facebook XMPP Protocol Plugin"),
+ "website", PURPLE_WEBSITE,
+ "abi-version", PURPLE_ABI_VERSION,
+ "dependencies", JABBER_ID,
+ "flags", GPLUGIN_PLUGIN_INFO_FLAGS_INTERNAL |
+ GPLUGIN_PLUGIN_INFO_FLAGS_LOAD_ON_QUERY,
NULL
);
}
@@ -246,7 +247,10 @@ plugin_unload(PurplePlugin *plugin, GErr
return TRUE;
}
-PURPLE_PROTOCOL_DEFINE_EXTENDED(FacebookProtocol, facebook_protocol,
+static PurplePlugin *my_plugin;
+
+PURPLE_PROTOCOL_DEFINE_EXTENDED(my_plugin, FacebookProtocol, facebook_protocol,
JABBER_TYPE_PROTOCOL, 0);
-PURPLE_PLUGIN_INIT(facebookxmpp, plugin_query, plugin_load, plugin_unload);
+PURPLE_PLUGIN_INIT_VAL(my_plugin, facebookxmpp, plugin_query, plugin_load,
+ plugin_unload);
diff --git a/libpurple/protocols/jabber/libgtalk.c b/libpurple/protocols/jabber/libgtalk.c
--- a/libpurple/protocols/jabber/libgtalk.c
+++ b/libpurple/protocols/jabber/libgtalk.c
@@ -197,16 +197,17 @@ static PurplePluginInfo *
plugin_query(GError **error)
{
return purple_plugin_info_new(
- "id", GTALK_ID,
- "name", GTALK_NAME,
- "version", DISPLAY_VERSION,
- "category", N_("Protocol"),
- "summary", N_("Google Talk Protocol Plugin"),
- "description", N_("Google Talk Protocol Plugin"),
- "website", PURPLE_WEBSITE,
- "abi-version", PURPLE_ABI_VERSION,
- "flags", GPLUGIN_PLUGIN_INFO_FLAGS_INTERNAL |
- GPLUGIN_PLUGIN_INFO_FLAGS_LOAD_ON_QUERY,
+ "id", GTALK_ID,
+ "name", GTALK_NAME,
+ "version", DISPLAY_VERSION,
+ "category", N_("Protocol"),
+ "summary", N_("Google Talk Protocol Plugin"),
+ "description", N_("Google Talk Protocol Plugin"),
+ "website", PURPLE_WEBSITE,
+ "abi-version", PURPLE_ABI_VERSION,
+ "dependencies", JABBER_ID,
+ "flags", GPLUGIN_PLUGIN_INFO_FLAGS_INTERNAL |
+ GPLUGIN_PLUGIN_INFO_FLAGS_LOAD_ON_QUERY,
NULL
);
}
@@ -239,7 +240,10 @@ plugin_unload(PurplePlugin *plugin, GErr
return TRUE;
}
-PURPLE_PROTOCOL_DEFINE_EXTENDED(GTalkProtocol, gtalk_protocol,
+static PurplePlugin *my_plugin;
+
+PURPLE_PROTOCOL_DEFINE_EXTENDED(my_plugin, GTalkProtocol, gtalk_protocol,
JABBER_TYPE_PROTOCOL, 0);
-PURPLE_PLUGIN_INIT(gtalk, plugin_query, plugin_load, plugin_unload);
+PURPLE_PLUGIN_INIT_VAL(my_plugin, gtalk, plugin_query, plugin_load,
+ plugin_unload);
diff --git a/libpurple/protocols/jabber/libxmpp.c b/libpurple/protocols/jabber/libxmpp.c
--- a/libpurple/protocols/jabber/libxmpp.c
+++ b/libpurple/protocols/jabber/libxmpp.c
@@ -106,9 +106,6 @@ xmpp_protocol_base_init(XMPPProtocolClas
PurpleAccountOption *option;
GList *encryption_values = NULL;
- proto_class->id = XMPP_ID;
- proto_class->name = XMPP_NAME;
-
/* Translators: 'domain' is used here in the context of Internet domains, e.g. pidgin.im */
split = purple_account_user_split_new(_("Domain"), NULL, '@');
purple_account_user_split_set_reverse(split, FALSE);
@@ -184,8 +181,8 @@ static PurplePluginInfo *
plugin_query(GError **error)
{
return purple_plugin_info_new(
- "id", XMPP_ID,
- "name", XMPP_NAME,
+ "id", JABBER_ID,
+ "name", JABBER_NAME,
"version", DISPLAY_VERSION,
"category", N_("Protocol"),
"summary", N_("XMPP Protocol Plugin"),
@@ -226,7 +223,10 @@ plugin_unload(PurplePlugin *plugin, GErr
return TRUE;
}
-PURPLE_PROTOCOL_DEFINE_EXTENDED(XMPPProtocol, xmpp_protocol,
+extern PurplePlugin *_jabber_plugin;
+
+PURPLE_PROTOCOL_DEFINE_EXTENDED(_jabber_plugin, XMPPProtocol, xmpp_protocol,
JABBER_TYPE_PROTOCOL, 0);
-PURPLE_PLUGIN_INIT(jabber, plugin_query, plugin_load, plugin_unload);
+PURPLE_PLUGIN_INIT_VAL(_jabber_plugin, jabber, plugin_query, plugin_load,
+ plugin_unload);
diff --git a/libpurple/protocols/jabber/libxmpp.h b/libpurple/protocols/jabber/libxmpp.h
--- a/libpurple/protocols/jabber/libxmpp.h
+++ b/libpurple/protocols/jabber/libxmpp.h
@@ -24,9 +24,7 @@
#include "jabber.h"
-#define XMPP_ID "prpl-jabber"
-#define XMPP_NAME "XMPP"
-#define XMPP_DOMAIN (g_quark_from_static_string(XMPP_ID))
+#define XMPP_DOMAIN (g_quark_from_static_string(JABBER_ID))
#define XMPP_TYPE_PROTOCOL (xmpp_protocol_get_type())
#define XMPP_PROTOCOL(obj) (G_TYPE_CHECK_INSTANCE_CAST((obj), XMPP_TYPE_PROTOCOL, XMPPProtocol))
diff --git a/libpurple/protocols/msn/msn.c b/libpurple/protocols/msn/msn.c
--- a/libpurple/protocols/msn/msn.c
+++ b/libpurple/protocols/msn/msn.c
@@ -3030,5 +3030,7 @@ plugin_unload(PurplePlugin *plugin, GErr
return TRUE;
}
-PURPLE_PROTOCOL_DEFINE (MSNProtocol, msn_protocol);
-PURPLE_PLUGIN_INIT (msn, plugin_query, plugin_load, plugin_unload);
+static PurplePlugin *my_plugin;
+PURPLE_PROTOCOL_DEFINE(my_plugin, MSNProtocol, msn_protocol);
+PURPLE_PLUGIN_INIT_VAL(my_plugin, msn, plugin_query, plugin_load,
+ plugin_unload);
diff --git a/libpurple/protocols/mxit/mxit.c b/libpurple/protocols/mxit/mxit.c
--- a/libpurple/protocols/mxit/mxit.c
+++ b/libpurple/protocols/mxit/mxit.c
@@ -883,6 +883,9 @@ plugin_unload( PurplePlugin *plugin, GEr
}
-PURPLE_PROTOCOL_DEFINE ( MXitProtocol, mxit_protocol );
-PURPLE_PLUGIN_INIT ( mxit, plugin_query, plugin_load, plugin_unload );
+static PurplePlugin *my_plugin;
+PURPLE_PROTOCOL_DEFINE( my_plugin, MXitProtocol, mxit_protocol );
+
+PURPLE_PLUGIN_INIT_VAL( my_plugin, mxit, plugin_query, plugin_load,
+ plugin_unload);
diff --git a/libpurple/protocols/myspace/myspace.c b/libpurple/protocols/myspace/myspace.c
--- a/libpurple/protocols/myspace/myspace.c
+++ b/libpurple/protocols/myspace/myspace.c
@@ -3518,5 +3518,7 @@ plugin_unload(PurplePlugin *plugin, GErr
return TRUE;
}
-PURPLE_PROTOCOL_DEFINE (MySpaceProtocol, msim_protocol);
-PURPLE_PLUGIN_INIT (myspace, plugin_query, plugin_load, plugin_unload);
+static PurplePlugin *my_plugin;
+PURPLE_PROTOCOL_DEFINE(my_plugin, MySpaceProtocol, msim_protocol);
+PURPLE_PLUGIN_INIT_VAL(my_plugin, myspace, plugin_query, plugin_load,
+ plugin_unload);
diff --git a/libpurple/protocols/novell/novell.c b/libpurple/protocols/novell/novell.c
--- a/libpurple/protocols/novell/novell.c
+++ b/libpurple/protocols/novell/novell.c
@@ -3581,5 +3581,7 @@ plugin_unload(PurplePlugin *plugin, GErr
return TRUE;
}
-PURPLE_PROTOCOL_DEFINE (NovellProtocol, novell_protocol);
-PURPLE_PLUGIN_INIT (novell, plugin_query, plugin_load, plugin_unload);
+static PurplePlugin *my_plugin;
+PURPLE_PROTOCOL_DEFINE(my_plugin, NovellProtocol, novell_protocol);
+PURPLE_PLUGIN_INIT_VAL(my_plugin, novell, plugin_query, plugin_load,
+ plugin_unload);
diff --git a/libpurple/protocols/null/nullprotocol.c b/libpurple/protocols/null/nullprotocol.c
--- a/libpurple/protocols/null/nullprotocol.c
+++ b/libpurple/protocols/null/nullprotocol.c
@@ -1210,5 +1210,7 @@ plugin_unload(PurplePlugin *plugin, GErr
return TRUE;
More information about the Commits
mailing list