/pidgin/main: 4b57eced35d5: oscar: Code cleaning by moving AIM/I...

Youness Alaoui kakaroto at kakaroto.homelinux.net
Fri Jun 17 19:11:41 EDT 2016


Changeset: 4b57eced35d5bef2919308436b618ad42cc42ae7
Author:	 Youness Alaoui <kakaroto at kakaroto.homelinux.net>
Date:	 2016-05-03 15:00 -0400
Branch:	 oscar_auth
URL: https://hg.pidgin.im/pidgin/main/rev/4b57eced35d5

Description:

oscar: Code cleaning by moving AIM/ICQ specific options to oscar.c

protocol options were in 3 different places, which caused code duplication
and made it harder to set protocol-specific options in a single function.
The fnuction that adds option now knows if it's for ICQ or AIM and acts
accordingly.

diffstat:

 libpurple/protocols/oscar/aim.c   |   9 +--------
 libpurple/protocols/oscar/icq.c   |   7 +------
 libpurple/protocols/oscar/oscar.c |  14 +++++++++++++-
 libpurple/protocols/oscar/oscar.h |   2 +-
 4 files changed, 16 insertions(+), 16 deletions(-)

diffs (87 lines):

diff --git a/libpurple/protocols/oscar/aim.c b/libpurple/protocols/oscar/aim.c
--- a/libpurple/protocols/oscar/aim.c
+++ b/libpurple/protocols/oscar/aim.c
@@ -36,14 +36,7 @@ aim_protocol_init(PurpleProtocol *protoc
 	protocol->id   = "prpl-aim";
 	protocol->name = "AIM";
 
-	oscar_init_account_options(protocol);
-
-	option = purple_account_option_bool_new(_("Allow multiple simultaneous logins"), "allow_multiple_logins",
-											OSCAR_DEFAULT_ALLOW_MULTIPLE_LOGINS);
-	protocol->account_options = g_list_append(protocol->account_options, option);
-
-	option = purple_account_option_string_new(_("Server"), "server", oscar_get_login_server(FALSE, TRUE));
-	protocol->account_options = g_list_prepend(protocol->account_options, option);
+	oscar_init_account_options(protocol, FALSE);
 }
 
 static void
diff --git a/libpurple/protocols/oscar/icq.c b/libpurple/protocols/oscar/icq.c
--- a/libpurple/protocols/oscar/icq.c
+++ b/libpurple/protocols/oscar/icq.c
@@ -52,13 +52,8 @@ icq_protocol_init(PurpleProtocol *protoc
 	protocol->id   = "prpl-icq";
 	protocol->name = "ICQ";
 
-	oscar_init_account_options(protocol);
+	oscar_init_account_options(protocol, TRUE);
 
-	option = purple_account_option_string_new(_("Server"), "server", oscar_get_login_server(TRUE, TRUE));
-	protocol->account_options = g_list_prepend(protocol->account_options, option);
-
-	option = purple_account_option_string_new(_("Encoding"), "encoding", OSCAR_DEFAULT_CUSTOM_ENCODING);
-	protocol->account_options = g_list_append(protocol->account_options, option);
 }
 
 static void
diff --git a/libpurple/protocols/oscar/oscar.c b/libpurple/protocols/oscar/oscar.c
--- a/libpurple/protocols/oscar/oscar.c
+++ b/libpurple/protocols/oscar/oscar.c
@@ -5559,7 +5559,7 @@ gboolean oscar_uri_handler(const char *p
 	return FALSE;
 }
 
-void oscar_init_account_options(PurpleProtocol *protocol)
+void oscar_init_account_options(PurpleProtocol *protocol, gboolean is_icq)
 {
 	PurpleAccountOption *option;
 	static const gchar *encryption_keys[] = {
@@ -5588,6 +5588,9 @@ void oscar_init_account_options(PurplePr
 	GList *login_options = NULL;
 	int i;
 
+	option = purple_account_option_string_new(_("Server"), "server", oscar_get_login_server(is_icq, TRUE));
+	protocol->account_options = g_list_append(protocol->account_options, option);
+
 	option = purple_account_option_int_new(_("Port"), "port", OSCAR_DEFAULT_LOGIN_PORT);
 	protocol->account_options = g_list_append(protocol->account_options, option);
 
@@ -5613,6 +5616,15 @@ void oscar_init_account_options(PurplePr
 		_("Always use AIM/ICQ proxy server for\nfile transfers and direct IM (slower,\nbut does not reveal your IP address)"), "always_use_rv_proxy",
 		OSCAR_DEFAULT_ALWAYS_USE_RV_PROXY);
 	protocol->account_options = g_list_append(protocol->account_options, option);
+
+	if (is_icq) {
+		option = purple_account_option_string_new(_("Encoding"), "encoding", OSCAR_DEFAULT_CUSTOM_ENCODING);
+		protocol->account_options = g_list_append(protocol->account_options, option);
+	} else {
+		option = purple_account_option_bool_new(_("Allow multiple simultaneous logins"), "allow_multiple_logins",
+												OSCAR_DEFAULT_ALLOW_MULTIPLE_LOGINS);
+		protocol->account_options = g_list_append(protocol->account_options, option);
+	}
 }
 
 static void
diff --git a/libpurple/protocols/oscar/oscar.h b/libpurple/protocols/oscar/oscar.h
--- a/libpurple/protocols/oscar/oscar.h
+++ b/libpurple/protocols/oscar/oscar.h
@@ -1367,7 +1367,7 @@ struct name_data
 
 void oscar_free_name_data(struct name_data *data);
 
-void oscar_init_account_options(PurpleProtocol *protocol);
+void oscar_init_account_options(PurpleProtocol *protocol, gboolean is_icq);
 
 #ifdef __cplusplus
 }



More information about the Commits mailing list