{
if (AliasTable[i]->tagged)
{
- mutt_addrlist_to_local (AliasTable[i]->addr);
- rfc822_write_address (buf, buflen, AliasTable[i]->addr, 0);
+ rfc822_write_address (buf, buflen, AliasTable[i]->addr, 1);
t = -1;
}
}
- if(t != -1)
+ if (t != -1)
{
- mutt_addrlist_to_local (AliasTable[t]->addr);
- rfc822_write_address (buf, buflen, AliasTable[t]->addr, 0);
+ rfc822_write_address (buf, buflen, AliasTable[t]->addr, 1);
}
mutt_menuDestroy (&menu);
ADDRESS *ap;
if (!t)
return;
-
+
+ /* Note that the address mailbox should be converted to intl form
+ * before using as a key in the hash. This is currently done
+ * by all callers, but added here mostly as documentation.. */
+ mutt_addrlist_to_intl (t->addr, NULL);
+
for (ap = t->addr; ap; ap = ap->next)
{
if (!ap->group && ap->mailbox)
ADDRESS *ap;
if (!t)
return;
-
+
+ /* If the alias addresses were converted to local form, they won't
+ * match the hash entries. */
+ mutt_addrlist_to_intl (t->addr, NULL);
+
for (ap = t->addr; ap; ap = ap->next)
{
if (!ap->group && ap->mailbox)
err.dptr = err.data;
Groups = hash_create (1031, 0);
- ReverseAlias = hash_create (1031, MUTT_HASH_STRCASECMP);
+ /* reverse alias keys need to be strdup'ed because of idna conversions */
+ ReverseAlias = hash_create (1031, MUTT_HASH_STRCASECMP | MUTT_HASH_STRDUP_KEYS);
mutt_menu_init ();
mutt_srandom ();