From ea090ca09d2ee04c68c524f0e3c63de2fdb21a04 Mon Sep 17 00:00:00 2001
From: alecpl <alec@alec.pl>
Date: Thu, 17 Apr 2008 16:05:58 -0400
Subject: [PATCH] - Fix non-RFC dates formatting (#1484901)

---
 CHANGELOG                   |    1 +
 program/include/main.inc    |   16 +++++++++++++---
 program/steps/mail/func.inc |    4 ++--
 3 files changed, 16 insertions(+), 5 deletions(-)

diff --git a/CHANGELOG b/CHANGELOG
index 5644c39..4886b3f 100644
--- a/CHANGELOG
+++ b/CHANGELOG
@@ -5,6 +5,7 @@
 ----------
 - Fix IMAP response in message body when message has no body (#1484964)
 - Updated PEAR::Auth_SASL to 1.0.2
+- Fix non-RFC dates formatting (#1484901)
 
 2008/04/16 (estadtherr)
 ----------
diff --git a/program/include/main.inc b/program/include/main.inc
index 09a53f0..b5004e8 100644
--- a/program/include/main.inc
+++ b/program/include/main.inc
@@ -1507,12 +1507,22 @@
   global $CONFIG, $sess_user_lang;
   
   $ts = NULL;
-  
+
   if (is_numeric($date))
     $ts = $date;
   else if (!empty($date))
-    $ts = @strtotime($date);
-    
+    {
+    while (($ts = @strtotime($date))===false)
+      {
+        // if we have a date in non-rfc format
+	// remove token from the end and try again
+        $d = explode(' ', $date);
+	array_pop($d);
+	if (!$d) break;
+	$date = implode(' ', $d);
+      }
+    }
+
   if (empty($ts))
     return '';
    
diff --git a/program/steps/mail/func.inc b/program/steps/mail/func.inc
index b75b115..40c17b7 100644
--- a/program/steps/mail/func.inc
+++ b/program/steps/mail/func.inc
@@ -970,7 +970,7 @@
       continue;
 
     if ($hkey=='date' && !empty($headers[$hkey]))
-      $header_value = format_date(strtotime($headers[$hkey]));
+      $header_value = format_date($headers[$hkey]);
     else if (in_array($hkey, array('from', 'to', 'cc', 'bcc', 'reply-to')))
       $header_value = Q(rcmail_address_string($headers[$hkey], NULL, $attrib['addicon']), 'show');
     else
@@ -1500,7 +1500,7 @@
     $body = rcube_label("yourmessage") . "\r\n\r\n" .
       "\t" . rcube_label("to") . ': ' . rcube_imap::decode_mime_string($message['headers']->to, $message['headers']->charset) . "\r\n" .
       "\t" . rcube_label("subject") . ': ' . $message['subject'] . "\r\n" .
-      "\t" . rcube_label("sent") . ': ' . format_date(strtotime($message['headers']->date), $CONFIG['date_long']) . "\r\n" .
+      "\t" . rcube_label("sent") . ': ' . format_date($message['headers']->date, $CONFIG['date_long']) . "\r\n" .
       "\r\n" . rcube_label("receiptnote") . "\r\n";
     
     $ua = !empty($CONFIG['useragent']) ? $CONFIG['useragent'] : "RoundCube Webmail (Version ".RCMAIL_VERSION.")";

--
Gitblit v1.9.1