X-Git-Url: http://git.madism.org/?p=apps%2Fmadmutt.git;a=blobdiff_plain;f=account.c;h=5270c2e57a43663d4dfca7b710f7891d63b28e8b;hp=0499e0c03b9036a8a9e8c6c9b38ae776ac442eb6;hb=ecaab35b973fbceb58b5ed174971c82762cc0199;hpb=b4827293ce79b576beb9550b91e71a198f2f5744 diff --git a/account.c b/account.c index 0499e0c..5270c2e 100644 --- a/account.c +++ b/account.c @@ -13,13 +13,16 @@ # include "config.h" #endif +#include +#include +#include +#include + #include "mutt.h" +#include "enter.h" #include "account.h" #include "url.h" -#include "lib/mem.h" -#include "lib/intl.h" -#include "lib/str.h" /* mutt_account_match: compare account info (host/port/user/login) */ int mutt_account_match (const ACCOUNT * a1, const ACCOUNT * a2) @@ -36,9 +39,9 @@ int mutt_account_match (const ACCOUNT * a1, const ACCOUNT * a2) #ifdef USE_IMAP if (a1->type == M_ACCT_TYPE_IMAP) { - if (ImapUser) + if (ImapUser && (ImapUser[0] != '\0')) user = ImapUser; - if (ImapLogin) + if (ImapLogin && (ImapLogin[0] != '\0')) login = ImapLogin; } #endif @@ -54,11 +57,11 @@ int mutt_account_match (const ACCOUNT * a1, const ACCOUNT * a2) #endif if (a1->flags & a2->flags & M_ACCT_USER) - return (!safe_strcmp (a1->user, a2->user)); + return (!str_cmp (a1->user, a2->user)); if (a1->flags & M_ACCT_USER) - return (!safe_strcmp (a1->user, user)); + return (!str_cmp (a1->user, user)); if (a2->flags & M_ACCT_USER) - return (!safe_strcmp (a2->user, user)); + return (!str_cmp (a2->user, user)); return 1; } @@ -144,7 +147,7 @@ int mutt_account_getuser (ACCOUNT * account) if (account->flags & M_ACCT_USER) return 0; #ifdef USE_IMAP - else if ((account->type == M_ACCT_TYPE_IMAP) && ImapUser) + else if ((account->type == M_ACCT_TYPE_IMAP) && ImapUser && (ImapUser[0] != '\0')) strfcpy (account->user, ImapUser, sizeof (account->user)); #endif #ifdef USE_POP @@ -159,7 +162,8 @@ int mutt_account_getuser (ACCOUNT * account) else { snprintf (prompt, sizeof (prompt), _("Username at %s: "), account->host); strfcpy (account->user, NONULL (Username), sizeof (account->user)); - if (mutt_get_field (prompt, account->user, sizeof (account->user), 0)) + if (mutt_get_field_unbuffered (prompt, account->user, + sizeof (account->user), 0)) return -1; } @@ -176,13 +180,18 @@ int mutt_account_getlogin (ACCOUNT* account) #ifdef USE_IMAP else if (account->type == M_ACCT_TYPE_IMAP) { - if (ImapLogin) + if (ImapLogin && (ImapLogin[0] != '\0')) { strfcpy (account->login, ImapLogin, sizeof (account->login)); - else - strfcpy (account->login, ImapUser, sizeof (account->login)); + account->flags |= M_ACCT_LOGIN; + } } #endif + if (!(account->flags & M_ACCT_LOGIN)) { + mutt_account_getuser (account); + strfcpy (account->login, account->user, sizeof (account->login)); + } + account->flags |= M_ACCT_LOGIN; return 0; @@ -209,9 +218,11 @@ int mutt_account_getpass (ACCOUNT * account) #endif else { snprintf (prompt, sizeof (prompt), _("Password for %s@%s: "), - account->login, account->host); + account->flags & M_ACCT_LOGIN ? account->login : account->user, + account->host); account->pass[0] = '\0'; - if (mutt_get_password (prompt, account->pass, sizeof (account->pass))) + if (mutt_get_field_unbuffered (prompt, account->pass, + sizeof (account->pass), M_PASS)) return -1; }