about summary refs log tree commit homepage
path: root/lib/PublicInbox
diff options
context:
space:
mode:
authorEric Wong <e@80x24.org>2016-05-15 23:43:20 +0000
committerEric Wong <e@80x24.org>2016-05-15 23:49:49 +0000
commit0407eb7a0c2376d0395ef93f50fd2ed0aeeace1f (patch)
tree9c526171ba672ee8bd2e2094b56b3d0cec62b3dc /lib/PublicInbox
parent2bbe1636ba09f2f17f789a11e5141d223f937639 (diff)
downloadpublic-inbox-0407eb7a0c2376d0395ef93f50fd2ed0aeeace1f.tar.gz
This should make validating the output easier
when testing between different servers.
Diffstat (limited to 'lib/PublicInbox')
-rw-r--r--lib/PublicInbox/Mbox.pm20
1 files changed, 12 insertions, 8 deletions
diff --git a/lib/PublicInbox/Mbox.pm b/lib/PublicInbox/Mbox.pm
index b81ec0a4..efb13e5b 100644
--- a/lib/PublicInbox/Mbox.pm
+++ b/lib/PublicInbox/Mbox.pm
@@ -48,12 +48,16 @@ sub emit_msg {
         my $base = $feed_opts->{url};
         my $mid = mid_clean($header_obj->header('Message-ID'));
         $mid = uri_escape_utf8($mid);
-        my %append = (
-                'Archived-At' => "<$base$mid/>",
-                'List-Archive' => "<$base>",
-                'List-Post' => "<mailto:$feed_opts->{id_addr}>",
+        my @append = (
+                'Archived-At', "<$base$mid/>",
+                'List-Archive', "<$base>",
+                'List-Post', "<mailto:$feed_opts->{id_addr}>",
         );
-        while (my ($k, $v) = each %append) {
+        my $append = '';
+        my $crlf = $simple->crlf;
+        for (my $i = 0; $i < @append; $i += 2) {
+                my $k = $append[$i];
+                my $v = $append[$i + 1];
                 my @v = $header_obj->header($k);
                 foreach (@v) {
                         if ($v eq $_) {
@@ -61,14 +65,14 @@ sub emit_msg {
                                 last;
                         }
                 }
-                $header_obj->header_set($k, @v, $v) if defined $v;
+                $append .= "$k: $v$crlf" if defined $v;
         }
-
         my $buf = $header_obj->as_string;
         unless ($buf =~ /\AFrom /) {
                 $fh->write("From mboxrd\@z Thu Jan  1 00:00:00 1970\n");
         }
-        $fh->write($buf .= $simple->crlf);
+        $append .= $crlf;
+        $fh->write($buf .= $append);
 
         $buf = $simple->body;
         $simple->body_set('');