From: x2003bruneau Date: Wed, 30 May 2007 10:14:20 +0000 (+0000) Subject: Fix References compliancy X-Git-Tag: 1.8~49 X-Git-Url: http://git.polytechnique.org/?p=banana.git;a=commitdiff_plain;h=3172a611ed8f764be66dd5425c76a78f3d0e62ac Fix References compliancy 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 --- diff --git a/Changelog b/Changelog index 32a14d8..e460264 100644 --- a/Changelog +++ b/Changelog @@ -1,3 +1,7 @@ +Wed, 30 May 2007 Florent Bruneau + + * Bugfix: references compliancy + Thu, 21 May 2007 Florent Bruneau * Bugfix: message truncation diff --git a/banana/banana.inc.php.in b/banana/banana.inc.php.in index 5a514bc..e3c16ef 100644 --- a/banana/banana.inc.php.in +++ b/banana/banana.inc.php.in @@ -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'])) { diff --git a/banana/message.inc.php b/banana/message.inc.php index dcb9d02..56885f7 100644 --- a/banana/message.inc.php +++ b/banana/message.inc.php @@ -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 {