From 9f9664338f66a82e15c1ce9b79dc24430c593af4 Mon Sep 17 00:00:00 2001
From: alecpl <alec@alec.pl>
Date: Thu, 30 Sep 2010 04:30:46 -0400
Subject: [PATCH] - Change reply prefix to display email address only if sender name doesn't exist (#1486550)

---
 CHANGELOG                      |    1 +
 program/steps/mail/compose.inc |   19 +++++++++----------
 2 files changed, 10 insertions(+), 10 deletions(-)

diff --git a/CHANGELOG b/CHANGELOG
index 6bf79cd..a120ae0 100644
--- a/CHANGELOG
+++ b/CHANGELOG
@@ -10,6 +10,7 @@
 - Use custom sorting when SORT is disabled by IMAP admin (#1486959)
 - Allow setting some washtml options from plugin (#1486578)
 - Add option do bind for an individual LDAP address book (#1486997)
+- Change reply prefix to display email address only if sender name doesn't exist (#1486550)
 
 RELEASE 0.4.1
 -------------
diff --git a/program/steps/mail/compose.inc b/program/steps/mail/compose.inc
index 5a66af1..b9594a0 100644
--- a/program/steps/mail/compose.inc
+++ b/program/steps/mail/compose.inc
@@ -624,9 +624,14 @@
 {
   global $RCMAIL, $MESSAGE, $LINE_LENGTH;
 
+  // build reply prefix
+  $from = array_pop($RCMAIL->imap->decode_address_list($MESSAGE->get_header('from')));
+  $prefix = sprintf("On %s, %s wrote:",
+    $MESSAGE->headers->date, $from['name'] ? $from['name'] : idn_to_utf8($from['email']));
+
   if (!$bodyIsHtml) {
     $body = preg_replace('/\r?\n/', "\n", $body);
-  
+
     // try to remove the signature
     if ($RCMAIL->config->get('strip_existing_sig', true)) {
       $len = strlen($body);
@@ -644,13 +649,9 @@
     // soft-wrap and quote message text
     $body = rcmail_wrap_and_quote(rtrim($body, "\n"), $LINE_LENGTH);
 
-    // add title line(s)
-    $prefix = sprintf("On %s, %s wrote:\n",
-      $MESSAGE->headers->date,
-      $MESSAGE->get_header('from'));
-
+    $prefix .= "\n";
     $suffix = '';
-    
+
     if ($RCMAIL->config->get('top_posting'))
       $prefix = "\n\n\n" . $prefix;
   }
@@ -663,9 +664,7 @@
     $body = rcmail_wash_html($body, array('safe' => $MESSAGE->is_safe), $cid_map);
 
     // build reply (quote content)
-    $prefix = sprintf("<p>On %s, %s wrote:</p>\n",
-      $MESSAGE->headers->date,
-      htmlspecialchars(Q($MESSAGE->get_header('from'), 'replace'), ENT_COMPAT, $RCMAIL->output->get_charset()));
+    $prefix = '<p>' . Q($prefix) . "</p>\n";
     $prefix .= '<blockquote>';
 
     if ($RCMAIL->config->get('top_posting')) {

--
Gitblit v1.9.1