From a3644638aaf0418598196a870204e0b632a4c8ad Mon Sep 17 00:00:00 2001
From: Thomas Bruederli <thomas@roundcube.net>
Date: Fri, 17 Apr 2015 06:28:40 -0400
Subject: [PATCH] Allow preference sections to define CSS class names

---
 program/lib/Roundcube/rcube_message_header.php |   49 +++++++++++++++++++++++++++++++++++++++++++------
 1 files changed, 43 insertions(+), 6 deletions(-)

diff --git a/program/lib/Roundcube/rcube_message_header.php b/program/lib/Roundcube/rcube_message_header.php
index db82247..24535dd 100644
--- a/program/lib/Roundcube/rcube_message_header.php
+++ b/program/lib/Roundcube/rcube_message_header.php
@@ -1,9 +1,7 @@
 <?php
 
-/**
+/*
  +-----------------------------------------------------------------------+
- | program/include/rcube_message_header.php                              |
- |                                                                       |
  | This file is part of the Roundcube Webmail client                     |
  | Copyright (C) 2005-2012, The Roundcube Dev Team                       |
  | Copyright (C) 2011-2012, Kolab Systems AG                             |
@@ -14,7 +12,6 @@
  |                                                                       |
  | PURPOSE:                                                              |
  |   E-mail message headers representation                               |
- |                                                                       |
  +-----------------------------------------------------------------------+
  | Author: Aleksander Machniak <alec@alec.pl>                            |
  +-----------------------------------------------------------------------+
@@ -170,6 +167,13 @@
     public $mdn_to;
 
     /**
+     * IMAP folder this message is stored in
+     *
+     * @var string
+     */
+    public $folder;
+
+    /**
      * Other message headers
      *
      * @var array
@@ -192,9 +196,12 @@
         'reply-to'  => 'replyto',
         'cc'        => 'cc',
         'bcc'       => 'bcc',
+        'mbox'      => 'folder',
+        'folder'    => 'folder',
         'content-transfer-encoding' => 'encoding',
         'in-reply-to'               => 'in_reply_to',
         'content-type'              => 'ctype',
+        'charset'                   => 'charset',
         'references'                => 'references',
         'return-receipt-to'         => 'mdn_to',
         'disposition-notification-to' => 'mdn_to',
@@ -217,7 +224,20 @@
             $value = $this->others[$name];
         }
 
-        return $decode ? rcube_mime::decode_header($value, $this->charset) : $value;
+        if ($decode) {
+            if (is_array($value)) {
+                foreach ($value as $key => $val) {
+                    $value[$key] = rcube_mime::decode_header($val, $this->charset);
+                    $value[$key] = rcube_charset::clean($val);
+                }
+            }
+            else {
+                $value = rcube_mime::decode_header($value, $this->charset);
+                $value = rcube_charset::clean($value);
+            }
+        }
+
+        return $value;
     }
 
     /**
@@ -234,13 +254,30 @@
             $this->others[$name] = $value;
         }
     }
+
+
+    /**
+     * Factory method to instantiate headers from a data array
+     *
+     * @param array Hash array with header values
+     * @return object rcube_message_header instance filled with headers values
+     */
+    public static function from_array($arr)
+    {
+        $obj = new rcube_message_header;
+        foreach ($arr as $k => $v)
+            $obj->set($k, $v);
+
+        return $obj;
+    }
 }
 
 
 /**
  * Class for sorting an array of rcube_message_header objects in a predetermined order.
  *
- * @package Mail
+ * @package    Framework
+ * @subpackage Storage
  * @author  Aleksander Machniak <alec@alec.pl>
  */
 class rcube_message_header_sorter

--
Gitblit v1.9.1