]> granicus.if.org Git - mutt/commitdiff
Use the same address with take-alias and display-address.
authorThomas Roessler <roessler@does-not-exist.org>
Thu, 10 Jun 1999 09:30:39 +0000 (09:30 +0000)
committerThomas Roessler <roessler@does-not-exist.org>
Thu, 10 Jun 1999 09:30:39 +0000 (09:30 +0000)
alias.c
commands.c
curs_main.c
pager.c
protos.h

diff --git a/alias.c b/alias.c
index 30f81f8f23ced6d081b6e8d3f7e0c46af292f57d..794b206919cddf7d1086fff39fa4764977a9324f 100644 (file)
--- a/alias.c
+++ b/alias.c
@@ -152,6 +152,40 @@ static void write_safe_address (FILE *fp, char *s)
   }
 }
 
+ADDRESS *mutt_get_address (ENVELOPE *env, char **pfxp)
+{
+  ADDRESS *adr;
+  char *pfx = NULL;
+
+  if (mutt_addr_is_user (env->from))
+  {
+    if (env->to && !mutt_is_mail_list (env->to))
+    {
+      pfx = "To";
+      adr = env->to;
+    }
+    else
+    {
+      pfx = "Cc";
+      adr = env->cc;
+    }
+  }
+  else if (env->reply_to && !mutt_is_mail_list (env->reply_to))
+  {
+    pfx = "Reply-To";
+    adr = env->reply_to;
+  }
+  else
+  {
+    adr = env->from;
+    pfx = "From";
+  }
+
+  if (pfxp) *pfxp = pfx;
+
+  return adr;
+}
+
 void mutt_create_alias (ENVELOPE *cur, ADDRESS *iadr)
 {
   ALIAS *new, *t;
@@ -161,18 +195,7 @@ void mutt_create_alias (ENVELOPE *cur, ADDRESS *iadr)
 
   if (cur)
   {
-    if (mutt_addr_is_user (cur->from))
-    {
-      if (cur->to && !mutt_is_mail_list (cur->to))
-       adr = cur->to;
-      else
-       adr = cur->cc;
-    }
-    else if (cur->reply_to && !mutt_is_mail_list (cur->reply_to))
-      adr = cur->reply_to;
-    else
-      adr = cur->from;
-
+    adr = mutt_get_address (cur, NULL);
   }
   else if (iadr)
   {
index 86592db23a031c0a16ab7f72376e547060fb9cf1..a204ea023ac77eff357d5a676c05b045371abda1 100644 (file)
@@ -455,13 +455,19 @@ void mutt_enter_command (void)
     set_option (OPTNEEDRESORT);
 }
 
-void mutt_display_address (ADDRESS *adr)
+void mutt_display_address (ENVELOPE *env)
 {
+  char *pfx = NULL;
   char buf[SHORT_STRING];
+  ADDRESS *adr = NULL;
+
+  adr = mutt_get_address (env, &pfx);
+
+  if (!adr) return;
 
   buf[0] = 0;
   rfc822_write_address (buf, sizeof (buf), adr);
-  mutt_message ("%s", buf);
+  mutt_message ("%s: %s", pfx, buf);
 }
 
 static void set_copy_flags(HEADER *hdr, int decode, int decrypt, int *cmflags, int *chflags)
index 3e646c11061dd2fd31b247c935509ddb261e6c0a..b3a41747501e2c38c8432c574ac8ddd62a4a7ccb 100644 (file)
@@ -1482,7 +1482,7 @@ int mutt_index_menu (void)
       case OP_DISPLAY_ADDRESS:
 
        CHECK_MSGCOUNT;
-       mutt_display_address (CURHDR->env->from);
+       mutt_display_address (CURHDR->env);
        break;
 
       case OP_ENTER_COMMAND:
diff --git a/pager.c b/pager.c
index 582dc4cbf28b39cf2576ac37afa2b1a2816f02c9..944059c8fe9ab8f060bd4338113f2fd63075092a 100644 (file)
--- a/pager.c
+++ b/pager.c
@@ -2090,7 +2090,7 @@ mutt_pager (const char *banner, const char *fname, int flags, pager_t *extra)
 
       case OP_DISPLAY_ADDRESS:
        CHECK_MODE(IsHeader (extra));
-       mutt_display_address (extra->hdr->env->from);
+       mutt_display_address (extra->hdr->env);
        break;
 
       case OP_ENTER_COMMAND:
index 0917222c0df2925e8d91b28c2f25cf12c26ce9ca..1d38a3e85e5f1b04c540ee9b794476e3b5ced800 100644 (file)
--- a/protos.h
+++ b/protos.h
@@ -70,6 +70,7 @@ void set_quadoption (int, int);
 int query_quadoption (int, const char *);
 int quadoption (int);
 
+ADDRESS *mutt_get_address (ENVELOPE *, char **);
 ADDRESS *mutt_lookup_alias (const char *s);
 ADDRESS *mutt_remove_duplicates (ADDRESS *);
 ADDRESS *mutt_expand_aliases (ADDRESS *);
@@ -132,7 +133,7 @@ void mutt_clear_error (void);
 void mutt_create_alias (ENVELOPE *, ADDRESS *);
 void mutt_decode_attachment (BODY *, STATE *);
 void mutt_default_save (char *, size_t, HEADER *);
-void mutt_display_address (ADDRESS *);
+void mutt_display_address (ENVELOPE *);
 void mutt_edit_file (const char *, const char *);
 void mutt_edit_headers (const char *, const char *, HEADER *, char *, size_t);
 void mutt_curses_error (const char *, ...);