Rocco Rutte:
[apps/madmutt.git] / account.c
index 33e64b2..0499e0c 100644 (file)
--- a/account.c
+++ b/account.c
@@ -1,6 +1,6 @@
 /*
  * Copyright notice from original mutt:
- * Copyright (C) 2000-3 Brendan Cully <brendan@kublai.com>
+ * Copyright (C) 2000-5 Brendan Cully <brendan@kublai.com>
  *
  * This file is part of mutt-ng, see http://www.muttng.org/.
  * It's licensed under the GNU General Public License,
 #include "lib/intl.h"
 #include "lib/str.h"
 
-/* mutt_account_match: compare account info (host/port/user) */
+/* mutt_account_match: compare account info (host/port/user/login) */
 int mutt_account_match (const ACCOUNT * a1, const ACCOUNT * a2)
 {
-  const char *user = NONULL (Username);
+  const char* user = NONULL (Username);
+  const char* login = NONULL (Username);
 
   if (a1->type != a2->type)
     return 0;
@@ -34,8 +35,12 @@ int mutt_account_match (const ACCOUNT * a1, const ACCOUNT * a2)
     return 0;
 
 #ifdef USE_IMAP
-  if (a1->type == M_ACCT_TYPE_IMAP && ImapUser)
-    user = ImapUser;
+  if (a1->type == M_ACCT_TYPE_IMAP) {
+    if (ImapUser)
+      user = ImapUser;
+    if (ImapLogin)
+      login = ImapLogin;
+  }
 #endif
 
 #ifdef USE_POP
@@ -130,7 +135,7 @@ void mutt_account_tourl (ACCOUNT * account, ciss_url_t * url)
     url->pass = account->pass;
 }
 
-/* mutt_account_getuser: retrieve username into ACCOUNT, if neccessary */
+/* mutt_account_getuser: retrieve username into ACCOUNT, if necessary */
 int mutt_account_getuser (ACCOUNT * account)
 {
   char prompt[SHORT_STRING];
@@ -163,6 +168,26 @@ int mutt_account_getuser (ACCOUNT * account)
   return 0;
 }
 
+int mutt_account_getlogin (ACCOUNT* account)
+{
+  /* already set */
+  if (account->flags & M_ACCT_LOGIN)
+    return 0;
+#ifdef USE_IMAP
+  else if (account->type == M_ACCT_TYPE_IMAP)
+  {
+    if (ImapLogin)
+      strfcpy (account->login, ImapLogin, sizeof (account->login));
+    else
+      strfcpy (account->login, ImapUser, sizeof (account->login));
+  }
+#endif
+
+  account->flags |= M_ACCT_LOGIN;
+
+  return 0;
+}
+
 /* mutt_account_getpass: fetch password into ACCOUNT, if neccessary */
 int mutt_account_getpass (ACCOUNT * account)
 {
@@ -184,7 +209,7 @@ int mutt_account_getpass (ACCOUNT * account)
 #endif
   else {
     snprintf (prompt, sizeof (prompt), _("Password for %s@%s: "),
-              account->user, account->host);
+              account->login, account->host);
     account->pass[0] = '\0';
     if (mutt_get_password (prompt, account->pass, sizeof (account->pass)))
       return -1;