Rocco Rutte:
[apps/madmutt.git] / account.c
index aff9d3a..7c8fa3c 100644 (file)
--- a/account.c
+++ b/account.c
@@ -14,6 +14,8 @@
 #endif
 
 #include "mutt.h"
+#include "enter.h"
+#include "ascii.h"
 #include "account.h"
 #include "url.h"
 
@@ -54,11 +56,11 @@ int mutt_account_match (const ACCOUNT * a1, const ACCOUNT * a2)
 #endif
 
   if (a1->flags & a2->flags & M_ACCT_USER)
-    return (!mutt_strcmp (a1->user, a2->user));
+    return (!str_cmp (a1->user, a2->user));
   if (a1->flags & M_ACCT_USER)
-    return (!mutt_strcmp (a1->user, user));
+    return (!str_cmp (a1->user, user));
   if (a2->flags & M_ACCT_USER)
-    return (!mutt_strcmp (a2->user, user));
+    return (!str_cmp (a2->user, user));
 
   return 1;
 }
@@ -159,7 +161,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,15 +179,18 @@ int mutt_account_getlogin (ACCOUNT* account)
 #ifdef USE_IMAP
   else if (account->type == M_ACCT_TYPE_IMAP)
   {
-    if (ImapLogin)
+    if (ImapLogin) {
       strfcpy (account->login, ImapLogin, sizeof (account->login));
-    else {
-      mutt_account_getuser (account);
-      strfcpy (account->login, account->user, 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;
@@ -211,9 +217,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;
   }