From 6eb858606e41fa55d45a9cab213116d6d9117cf2 Mon Sep 17 00:00:00 2001
From: alecpl <alec@alec.pl>
Date: Thu, 09 Oct 2008 06:17:31 -0400
Subject: [PATCH] - Fix matching case sensitivity when setting identity on reply (#1485480) - Prefer default identity on reply

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

diff --git a/CHANGELOG b/CHANGELOG
index 4a0e8a5..58a5088 100644
--- a/CHANGELOG
+++ b/CHANGELOG
@@ -3,7 +3,9 @@
 
 2008/10/09 (alec)
 ----------
-- fixed iil_C_Sort() to support very long and/or divided responses (#1485283)
+- Fix iil_C_Sort() to support very long and/or divided responses (#1485283)
+- Fix matching case sensitivity when setting identity on reply (#1485480)
+- Prefer default identity on reply
 
 2008/10/08 (alec)
 ----------
diff --git a/program/steps/mail/compose.inc b/program/steps/mail/compose.inc
index 517c0e1..d6656ea 100644
--- a/program/steps/mail/compose.inc
+++ b/program/steps/mail/compose.inc
@@ -283,7 +283,7 @@
     foreach ($a_to as $addr)
     {
       if (!empty($addr['mailto']))
-        $a_recipients[] = $addr['mailto'];
+        $a_recipients[] = rc_strtolower($addr['mailto']);
     }
 
     if (!empty($MESSAGE->headers->cc))
@@ -292,7 +292,7 @@
       foreach ($a_cc as $addr)
       {
         if (!empty($addr['mailto']))
-          $a_recipients[] = $addr['mailto'];
+          $a_recipients[] = rc_strtolower($addr['mailto']);
       }
     }
   }
@@ -326,19 +326,22 @@
         }
       }
 
-      // set identity if it's one of the reply-message recipients
-      if (in_array($sql_arr['email'], $a_recipients))
-        $from_id = $sql_arr['identity_id'];
-
       if ($compose_mode == RCUBE_COMPOSE_REPLY && is_array($MESSAGE->compose_from))
         $MESSAGE->compose_from[] = $sql_arr['email'];
 
-      if ($compose_mode == RCUBE_COMPOSE_DRAFT && strstr($MESSAGE->headers->from, $sql_arr['email']))
-        $from_id = $sql_arr['identity_id'];
+      if (empty($_POST['_from']))
+      {
+        // set draft's identity
+        if ($compose_mode == RCUBE_COMPOSE_DRAFT && strstr($MESSAGE->headers->from, $sql_arr['email']))
+          $from_id = $sql_arr['identity_id'];
+        // set identity if it's one of the reply-message recipients (with prio for default identity)
+        else if (in_array(rc_strtolower($sql_arr['email']), $a_recipients) && (empty($from_id) || $sql_arr['standard']))
+          $from_id = $sql_arr['identity_id'];
+      }
     }
 
     // overwrite identity selection with post parameter
-    if (isset($_POST['_from']))
+    if (!empty($_POST['_from']))
       $from_id = get_input_value('_from', RCUBE_INPUT_POST);
 
     $out = $select_from->show($from_id);

--
Gitblit v1.9.1