From 16103f6cc70222fbf5434c0f29a8bd0487d69e78 Mon Sep 17 00:00:00 2001 From: James Booth Date: Mon, 28 Sep 2015 20:42:59 +0100 Subject: [PATCH 1/2] Removed old code to fix legacy accounts --- src/config/accounts.c | 60 ++----------------------------------------- 1 file changed, 2 insertions(+), 58 deletions(-) diff --git a/src/config/accounts.c b/src/config/accounts.c index 0abfc0d4..06506e23 100644 --- a/src/config/accounts.c +++ b/src/config/accounts.c @@ -68,12 +68,10 @@ static gchar *string_keys[] = { "otr.policy" }; -static void _fix_legacy_accounts(const char * const account_name); static void _save_accounts(void); static gchar * _get_accounts_file(void); static void _remove_from_list(GKeyFile *accounts, const char * const account_name, const char * const key, const char * const contact_jid); - void accounts_load(void) { @@ -87,13 +85,11 @@ accounts_load(void) } accounts = g_key_file_new(); - g_key_file_load_from_file(accounts, accounts_loc, G_KEY_FILE_KEEP_COMMENTS, - NULL); + g_key_file_load_from_file(accounts, accounts_loc, G_KEY_FILE_KEEP_COMMENTS, NULL); // create the logins searchable list for autocompletion gsize naccounts; - gchar **account_names = - g_key_file_get_groups(accounts, &naccounts); + gchar **account_names = g_key_file_get_groups(accounts, &naccounts); gsize i; for (i = 0; i < naccounts; i++) { @@ -101,8 +97,6 @@ accounts_load(void) if (g_key_file_get_boolean(accounts, account_names[i], "enabled", NULL)) { autocomplete_add(enabled_ac, account_names[i]); } - - _fix_legacy_accounts(account_names[i]); } g_strfreev(account_names); @@ -875,56 +869,6 @@ accounts_get_login_presence(const char * const account_name) return result; } -static void -_fix_legacy_accounts(const char * const account_name) -{ - // set barejid and resource - const char *barejid = account_name; - const char *resource = "profanity"; - Jid *jid = jid_create(account_name); - if (jid) { - barejid = jid->barejid; - if (jid->resourcepart) { - resource = jid->resourcepart; - } - } - - // accounts with no jid property - if (!g_key_file_has_key(accounts, account_name, "jid", NULL)) { - g_key_file_set_string(accounts, account_name, "jid", barejid); - _save_accounts(); - } - - // accounts with no resource, property - if (!g_key_file_has_key(accounts, account_name, "resource", NULL)) { - g_key_file_set_string(accounts, account_name, "resource", resource); - _save_accounts(); - } - - // accounts with no muc service or nick - if (!g_key_file_has_key(accounts, account_name, "muc.service", NULL)) { - gchar *account_jid = g_key_file_get_string(accounts, account_name, "jid", NULL); - Jid *jidp = jid_create(account_jid); - GString *muc_service = g_string_new("conference."); - g_string_append(muc_service, jidp->domainpart); - g_key_file_set_string(accounts, account_name, "muc.service", muc_service->str); - g_string_free(muc_service, TRUE); - jid_destroy(jidp); - } - if (!g_key_file_has_key(accounts, account_name, "muc.nick", NULL)) { - gchar *account_jid = g_key_file_get_string(accounts, account_name, "jid", NULL); - Jid *jidp = jid_create(account_jid); - if (jidp->localpart == NULL) { - g_key_file_set_string(accounts, account_name, "muc.nick", jidp->domainpart); - } else { - g_key_file_set_string(accounts, account_name, "muc.nick", jidp->localpart); - } - jid_destroy(jidp); - } - - jid_destroy(jid); -} - static void _save_accounts(void) { From 0b03f72b2cbe900244f192edc0fee8e368a3b987 Mon Sep 17 00:00:00 2001 From: James Booth Date: Mon, 28 Sep 2015 21:24:49 +0100 Subject: [PATCH 2/2] Added missing account properties to /account rename --- src/config/accounts.c | 55 ++++++++++++++++++++----------------------- 1 file changed, 26 insertions(+), 29 deletions(-) diff --git a/src/config/accounts.c b/src/config/accounts.c index 06506e23..3e556a42 100644 --- a/src/config/accounts.c +++ b/src/config/accounts.c @@ -53,21 +53,6 @@ static GKeyFile *accounts; static Autocomplete all_ac; static Autocomplete enabled_ac; -// used to rename account (copies properties to new account) -static gchar *string_keys[] = { - "jid", - "server", - "port", - "resource", - "password", - "eval_password", - "presence.last", - "presence.login", - "muc.service", - "muc.nick", - "otr.policy" -}; - static void _save_accounts(void); static gchar * _get_accounts_file(void); static void _remove_from_list(GKeyFile *accounts, const char * const account_name, const char * const key, const char * const contact_jid); @@ -338,21 +323,33 @@ accounts_rename(const char * const account_name, const char * const new_name) return FALSE; } - g_key_file_set_boolean(accounts, new_name, "enabled", - g_key_file_get_boolean(accounts, account_name, "enabled", NULL)); + // treat all properties as strings for copy + gchar *string_keys[] = { + "enabled", + "jid", + "server", + "port", + "resource", + "password", + "eval_password", + "presence.last", + "presence.laststatus", + "presence.login", + "priority.online", + "priority.chat", + "priority.away", + "priority.xa", + "priority.dnd", + "muc.service", + "muc.nick", + "otr.policy", + "otr.manual", + "otr.opportunistic", + "otr.always", + "pgp.keyid", + "last.activity" + }; - g_key_file_set_integer(accounts, new_name, "priority.online", - g_key_file_get_integer(accounts, account_name, "priority.online", NULL)); - g_key_file_set_integer(accounts, new_name, "priority.chat", - g_key_file_get_integer(accounts, account_name, "priority.chat", NULL)); - g_key_file_set_integer(accounts, new_name, "priority.away", - g_key_file_get_integer(accounts, account_name, "priority.away", NULL)); - g_key_file_set_integer(accounts, new_name, "priority.xa", - g_key_file_get_integer(accounts, account_name, "priority.xa", NULL)); - g_key_file_set_integer(accounts, new_name, "priority.dnd", - g_key_file_get_integer(accounts, account_name, "priority.dnd", NULL)); - - // copy other string properties int i; for (i = 0; i < ARRAY_SIZE(string_keys); i++) { char *value = g_key_file_get_string(accounts, account_name, string_keys[i], NULL);