X-Git-Url: http://git.madism.org/?p=apps%2Fmadmutt.git;a=blobdiff_plain;f=account.c;h=e9ce50e4447b5c5c85978d806692661bda54a232;hp=ea1806a894790dc2616738377694cfb2570375ae;hb=7db27b8f24670fd40cf24755f2782a104ad24594;hpb=558b0bd9de90a9dc28f409d8f46679bf48c72ded;ds=sidebyside diff --git a/account.c b/account.c index ea1806a..e9ce50e 100644 --- a/account.c +++ b/account.c @@ -10,8 +10,7 @@ /* remote host account manipulation (POP/IMAP) */ #include -#include -#include +#include #include "mutt.h" #include "account.h" @@ -19,8 +18,7 @@ /* mutt_account_match: compare account info (host/port/user/login) */ int mutt_account_match (const ACCOUNT * a1, const ACCOUNT * a2) { - const char* user = NONULL(MCore.username); - const char* login = NONULL(MCore.username); + const char* user = NONULL(mod_core.username); if (a1->type != a2->type) return 0; @@ -29,27 +27,18 @@ int mutt_account_match (const ACCOUNT * a1, const ACCOUNT * a2) if (a1->port != a2->port) return 0; - if (a1->type == M_ACCT_TYPE_IMAP) { - if (ImapUser && (ImapUser[0] != '\0')) - user = ImapUser; - if (ImapLogin && (ImapLogin[0] != '\0')) - login = ImapLogin; - } + if (a1->type == M_ACCT_TYPE_IMAP && !m_strisempty(ImapUser)) + user = ImapUser; - if (a1->type == M_ACCT_TYPE_POP && PopUser) + if (a1->type == M_ACCT_TYPE_POP && !m_strisempty(PopUser)) user = PopUser; -#ifdef USE_NNTP - if (a1->type == M_ACCT_TYPE_NNTP && NntpUser) - user = NntpUser; -#endif - - if (a1->flags & a2->flags & M_ACCT_USER) - return (!m_strcmp(a1->user, a2->user)); - if (a1->flags & M_ACCT_USER) - return (!m_strcmp(a1->user, user)); - if (a2->flags & M_ACCT_USER) - return (!m_strcmp(a2->user, user)); + if (a1->has_user && a2->has_user) + return !m_strcmp(a1->user, a2->user); + if (a1->has_user) + return !m_strcmp(a1->user, user); + if (a2->has_user) + return !m_strcmp(a2->user, user); return 1; } @@ -64,15 +53,15 @@ int mutt_account_fromurl(ACCOUNT *account, ciss_url_t *url) if (url->user) { m_strcpy(account->user, sizeof(account->user), url->user); - account->flags |= M_ACCT_USER; + account->has_user = 1; } if (url->pass) { m_strcpy(account->pass, sizeof(account->pass), url->pass); - account->flags |= M_ACCT_PASS; + account->has_pass = 1; } if (url->port) { account->port = url->port; - account->flags |= M_ACCT_PORT; + account->has_port = 1; } return 0; @@ -82,7 +71,7 @@ int mutt_account_fromurl(ACCOUNT *account, ciss_url_t *url) * is a set of pointers into account - don't free or edit account until * you've finished with url (make a copy of account if you need it for * a while). */ -void mutt_account_tourl (ACCOUNT * account, ciss_url_t * url) +void mutt_account_tourl(ACCOUNT *account, ciss_url_t *url) { url->scheme = U_UNKNOWN; url->user = NULL; @@ -90,34 +79,19 @@ void mutt_account_tourl (ACCOUNT * account, ciss_url_t * url) url->port = 0; if (account->type == M_ACCT_TYPE_IMAP) { - if (account->flags & M_ACCT_SSL) - url->scheme = U_IMAPS; - else - url->scheme = U_IMAP; + url->scheme = account->has_ssl ? U_IMAPS : U_IMAP; } if (account->type == M_ACCT_TYPE_POP) { - if (account->flags & M_ACCT_SSL) - url->scheme = U_POPS; - else - url->scheme = U_POP; - } - -#ifdef USE_NNTP - if (account->type == M_ACCT_TYPE_NNTP) { - if (account->flags & M_ACCT_SSL) - url->scheme = U_NNTPS; - else - url->scheme = U_NNTP; + url->scheme = account->has_ssl ? U_POPS : U_POP; } -#endif url->host = account->host; - if (account->flags & M_ACCT_PORT) + if (account->has_port) url->port = account->port; - if (account->flags & M_ACCT_USER) + if (account->has_user) url->user = account->user; - if (account->flags & M_ACCT_PASS) + if (account->has_pass) url->pass = account->pass; } @@ -127,26 +101,22 @@ int mutt_account_getuser (ACCOUNT * account) char prompt[STRING]; /* already set */ - if (account->flags & M_ACCT_USER) + if (account->has_user) return 0; else if ((account->type == M_ACCT_TYPE_IMAP) && !m_strisempty(ImapUser)) m_strcpy(account->user, sizeof(account->user), ImapUser); else if ((account->type == M_ACCT_TYPE_POP) && !m_strisempty(PopUser)) m_strcpy(account->user, sizeof(account->user), PopUser); -#ifdef USE_NNTP - else if ((account->type == M_ACCT_TYPE_NNTP) && !m_strisempty(NntpUser)) - m_strcpy(account->user, sizeof(account->user), NntpUser); -#endif /* prompt (defaults to unix username), copy into account->user */ else { snprintf(prompt, sizeof(prompt), _("Username at %s: "), account->host); - m_strcpy(account->user, sizeof(account->user), NONULL(MCore.username)); + m_strcpy(account->user, sizeof(account->user), NONULL(mod_core.username)); if (mutt_get_field_unbuffered(prompt, account->user, sizeof(account->user), 0)) return -1; } - account->flags |= M_ACCT_USER; + account->has_user = 1; return 0; } @@ -154,22 +124,18 @@ int mutt_account_getuser (ACCOUNT * account) int mutt_account_getlogin (ACCOUNT* account) { /* already set */ - if (account->flags & M_ACCT_LOGIN) + if (account->has_login) return 0; - else if (account->type == M_ACCT_TYPE_IMAP) - { - if (!m_strisempty(ImapLogin)) { - m_strcpy(account->login, sizeof(account->login), ImapLogin); - account->flags |= M_ACCT_LOGIN; - } - } - if (!(account->flags & M_ACCT_LOGIN)) { + if (account->type == M_ACCT_TYPE_IMAP && !m_strisempty(ImapLogin)) { + m_strcpy(account->login, sizeof(account->login), ImapLogin); + account->has_login = 1; + } else { mutt_account_getuser (account); m_strcpy(account->login, sizeof(account->login), account->user); } - account->flags |= M_ACCT_LOGIN; + account->has_login = 1; return 0; } @@ -179,19 +145,15 @@ int mutt_account_getpass (ACCOUNT * account) { char prompt[STRING]; - if (account->flags & M_ACCT_PASS) + if (account->has_pass) return 0; else if ((account->type == M_ACCT_TYPE_IMAP) && !m_strisempty(ImapPass)) m_strcpy(account->pass, sizeof(account->pass), ImapPass); else if ((account->type == M_ACCT_TYPE_POP) && !m_strisempty(PopPass)) m_strcpy(account->pass, sizeof(account->pass), PopPass); -#ifdef USE_NNTP - else if ((account->type == M_ACCT_TYPE_NNTP) && !m_strisempty(NntpPass)) - m_strcpy(account->pass, sizeof(account->pass), NntpPass); -#endif else { snprintf(prompt, sizeof(prompt), _("Password for %s@%s: "), - account->flags & M_ACCT_LOGIN ? account->login : account->user, + account->has_login ? account->login : account->user, account->host); account->pass[0] = '\0'; if (mutt_get_field_unbuffered(prompt, account->pass, @@ -199,12 +161,7 @@ int mutt_account_getpass (ACCOUNT * account) return -1; } - account->flags |= M_ACCT_PASS; + account->has_pass = 1; return 0; } - -void mutt_account_unsetpass (ACCOUNT * account) -{ - account->flags &= ~M_ACCT_PASS; -}