Mercurial > pidgin
changeset 15420:6d8728fd3dda
Make sure the pounces, buddy-aliases, savedstatuses etc. saved before the aim/icq split works after the split. The util function _gaim_oscar_convert will be removed at a 'suitable' time in the future.
author | Sadrul Habib Chowdhury <imadil@gmail.com> |
---|---|
date | Fri, 26 Jan 2007 04:10:22 +0000 |
parents | b25a5eddff9c |
children | da62cc01dd56 |
files | libpurple/account.c libpurple/blist.c libpurple/pounce.c libpurple/savedstatuses.c libpurple/util.c libpurple/util.h |
diffstat | 6 files changed, 24 insertions(+), 1 deletions(-) [+] |
line wrap: on
line diff
--- a/libpurple/account.c Fri Jan 26 03:53:15 2007 +0000 +++ b/libpurple/account.c Fri Jan 26 04:10:22 2007 +0000 @@ -697,7 +697,7 @@ return NULL; } - ret = gaim_account_new(name, protocol_id); + ret = gaim_account_new(name, _gaim_oscar_convert(name, protocol_id)); /* XXX: */ g_free(name); g_free(protocol_id);
--- a/libpurple/blist.c Fri Jan 26 03:53:15 2007 +0000 +++ b/libpurple/blist.c Fri Jan 26 04:10:22 2007 +0000 @@ -404,7 +404,9 @@ acct_name = xmlnode_get_attrib(bnode, "account"); protocol = xmlnode_get_attrib(bnode, "protocol"); + protocol = _gaim_oscar_convert(acct_name, protocol); /* XXX: Remove */ proto = xmlnode_get_attrib(bnode, "proto"); + proto = _gaim_oscar_convert(acct_name, proto); /* XXX: Remove */ if (!acct_name || (!proto && !protocol)) return;
--- a/libpurple/pounce.c Fri Jan 26 03:53:15 2007 +0000 +++ b/libpurple/pounce.c Fri Jan 26 04:10:22 2007 +0000 @@ -403,8 +403,12 @@ } if (!strcmp(element_name, "account")) { + char *tmp; g_free(data->account_name); data->account_name = g_strdup(buffer); + tmp = data->protocol_id; + data->protocol_id = g_strdup(_gaim_oscar_convert(buffer, tmp)); + g_free(tmp); } else if (!strcmp(element_name, "pouncee")) { g_free(data->pouncee);
--- a/libpurple/savedstatuses.c Fri Jan 26 03:53:15 2007 +0000 +++ b/libpurple/savedstatuses.c Fri Jan 26 04:10:22 2007 +0000 @@ -382,6 +382,7 @@ const char *protocol; acct_name = xmlnode_get_data(node); protocol = xmlnode_get_attrib(node, "protocol"); + protocol = _gaim_oscar_convert(acct_name, protocol); /* XXX: Remove */ if ((acct_name != NULL) && (protocol != NULL)) ret->account = gaim_accounts_find(acct_name, protocol); g_free(acct_name);
--- a/libpurple/util.c Fri Jan 26 03:53:15 2007 +0000 +++ b/libpurple/util.c Fri Jan 26 04:10:22 2007 +0000 @@ -4040,3 +4040,14 @@ return buf; } +const char *_gaim_oscar_convert(const char *act, const char *protocol) +{ + if (protocol && act && strcmp(protocol, "prpl-oscar") == 0) { + if (isdigit(*act)) + protocol = "prpl-icq"; + else + protocol = "prpl-aim"; + } + return protocol; +} +
--- a/libpurple/util.h Fri Jan 26 03:53:15 2007 +0000 +++ b/libpurple/util.h Fri Jan 26 04:10:22 2007 +0000 @@ -1064,6 +1064,11 @@ */ const char *gaim_escape_filename(const char *str); +/** + * This is added temporarily to assist the split of oscar into aim and icq. + * This should not be used by plugins. + */ +const char *_gaim_oscar_convert(const char *act, const char *protocol); #ifdef __cplusplus } #endif