about summary refs log tree commit homepage
diff options
context:
space:
mode:
authorEric Wong <e@yhbt.net>2020-02-15 09:46:34 +0000
committerEric Wong <e@yhbt.net>2020-02-16 00:06:32 +0000
commit79587ed2cfa012137712508fd7e7f657fab75087 (patch)
tree6c96fd63c2fd60a81f43b05c8d023c041cd5853d
parentaa0e67e63e58e0ee4fc3918bde25b9c04d48954a (diff)
downloadpublic-inbox-79587ed2cfa012137712508fd7e7f657fab75087.tar.gz
While multi-Subject messages are unfortunate, try not to
generate confusing/invalid HTML with multiple elements
having the same HTML id attribute.
-rw-r--r--lib/PublicInbox/View.pm15
1 files changed, 7 insertions, 8 deletions
diff --git a/lib/PublicInbox/View.pm b/lib/PublicInbox/View.pm
index dcaee1ae..45c191db 100644
--- a/lib/PublicInbox/View.pm
+++ b/lib/PublicInbox/View.pm
@@ -651,16 +651,15 @@ sub _msg_page_prepare_obuf {
         }
         my @subj = $hdr->header('Subject');
         if (@subj) {
-                for my $v (@subj) {
+                my $v = ascii_html(shift @subj);
+                obfuscate_addrs($obfs_ibx, $v) if $obfs_ibx;
+                $rv .= 'Subject: ';
+                $rv .= $over ? qq(<a\nhref="#r"\nid=t>$v</a>\n) : "$v\n";
+                $title[0] = $v;
+                for $v (@subj) { # multi-Subject message :<
                         $v = ascii_html($v);
                         obfuscate_addrs($obfs_ibx, $v) if $obfs_ibx;
-                        $rv .= 'Subject: ';
-                        if ($over) {
-                                $rv .= qq(<a\nhref="#r"\nid=t>$v</a>\n);
-                        } else {
-                                $rv .= "$v\n";
-                        }
-                        $title[0] //= $v;
+                        $rv .= "Subject: $v\n";
                 }
         } else { # dummy anchor for thread skeleton at bottom of page
                 $rv .= qq(<a\nhref="#r"\nid=t></a>) if $over;