Fix References compliancy
authorx2003bruneau <x2003bruneau@9869982d-c50d-0410-be91-f2a2ec7c7c7b>
Wed, 30 May 2007 10:14:20 +0000 (10:14 +0000)
committerFlorent Bruneau <florent.bruneau@polytechnique.org>
Fri, 4 Jan 2008 23:35:44 +0000 (00:35 +0100)
 Changelog                |    4 ++++
 banana/banana.inc.php.in |    2 +-
 banana/message.inc.php   |    9 +++++----
 3 files changed, 10 insertions(+), 5 deletions(-)

git-svn-id: svn+ssh://murphy/home/svn/banana/trunk@261 9869982d-c50d-0410-be91-f2a2ec7c7c7b

Changelog
banana/banana.inc.php.in
banana/message.inc.php

index 32a14d8..e460264 100644 (file)
--- a/Changelog
+++ b/Changelog
@@ -1,3 +1,7 @@
+Wed, 30 May 2007                                       Florent Bruneau <florent.bruneau@m4x.org>
+
+       * Bugfix: references compliancy
+
 Thu, 21 May 2007                                       Florent Bruneau <florent.bruneau@m4x.org>
 
     * Bugfix: message truncation
index 5a514bc..e3c16ef 100644 (file)
@@ -501,7 +501,7 @@ class Banana
             }
             if (!is_null($artid)) {
                 $old =& $this->loadMessage($group, $artid);
-                $hdr_values['References'] = $old->getHeaderValue('references') . $old->getHeaderValue('message-id');
+                $hdr_values['References'] = $old->getHeaderValue('references') . ' ' . $old->getHeaderValue('message-id');
             }
             $msg = null;
             if (isset($_POST['body']) && !is_utf8($_POST['body'])) {
index dcb9d02..56885f7 100644 (file)
@@ -134,6 +134,8 @@ final class BananaMessage extends BananaMimePart
         }
         if ($hdr == 'date') {
             return strtotime($this->headers['date']);
+        } else if ($hdr == 'references' || $hdr == 'reply-to') {
+            return str_replace('><', '> <', $this->headers[$hdr]);
         } else {
             return $this->headers[$hdr];
         }
@@ -230,14 +232,13 @@ final class BananaMessage extends BananaMimePart
     {
         if (isset($refs['references'])) {
             $text = preg_split('/\s/', str_replace('><', '> <', $refs['references']));
+            $references = array();
             foreach ($text as $id=>&$value) {
                 if (isset(Banana::$spool->ids[$value])) {
-                    $value = Banana::$spool->ids[$value];
-                } else {
-                    unset($text[$id]);
+                    $references[] = Banana::$spool->ids[$value];
                 }
             }
-            return $text;
+            return $references;
         } elseif (isset($refs['in-reply-to']) && isset(Banana::$spool->ids[$refs['in-reply-to']])) {
             return array(Banana::$spool->ids[$refs['in-reply-to']]);
         } else {