From fe9c93dbd71f903194c2fd3c22ccd57e31042013 Mon Sep 17 00:00:00 2001 From: Eric Wong Date: Mon, 8 Feb 2016 11:20:59 +0000 Subject: view: simplify topic handling based on subjects Dropping "[FOO]" prefixes for the purposes of summarization is tricky and we end up with odd display behavior. Just show Subject line changes as the writer intended (with the exception of normalization to strip the "Re: ") --- lib/PublicInbox/View.pm | 22 ++++++++-------------- 1 file changed, 8 insertions(+), 14 deletions(-) (limited to 'lib') diff --git a/lib/PublicInbox/View.pm b/lib/PublicInbox/View.pm index 70b92a7c..fc877b7c 100644 --- a/lib/PublicInbox/View.pm +++ b/lib/PublicInbox/View.pm @@ -867,27 +867,21 @@ sub add_topic { if (my $x = $node->message) { $x = $x->header_obj; - my ($topic, $subj); + my $subj; $subj = $x->header('Subject'); $subj = $state->{srch}->subject_normalized($subj); - $topic = $subj; - # kill "[PATCH v2]" etc. for summarization - unless ($level == 0) { - $topic =~ s/\A\s*\[[^\]]+\]\s*//g; - } - - if (++$state->{subjs}->{$topic} == 1) { - push @{$state->{order}}, [ $level, $subj, $topic ]; + if (++$state->{subjs}->{$subj} == 1) { + push @{$state->{order}}, [ $level, $subj ]; } my $mid = mid_clean($x->header('Message-ID')); my $ts = $x->header('X-PI-TS'); - my $exist = $state->{latest}->{$topic}; + my $exist = $state->{latest}->{$subj}; if (!$exist || $exist->[1] < $ts) { - $state->{latest}->{$topic} = [ $mid, $ts ]; + $state->{latest}->{$subj} = [ $mid, $ts ]; } } else { # ghost message, do not bump level @@ -909,9 +903,9 @@ sub dump_topics { my $prev = 0; my $prev_attr = ''; while (defined(my $info = shift @$order)) { - my ($level, $subj, $topic) = @$info; - my $n = delete $subjs->{$topic}; - my ($mid, $ts) = @{delete $latest->{$topic}}; + my ($level, $subj) = @$info; + my $n = delete $subjs->{$subj}; + my ($mid, $ts) = @{delete $latest->{$subj}}; $mid = PublicInbox::Hval->new_msgid($mid)->as_href; $subj = PublicInbox::Hval->new($subj)->as_html; $pfx = indent_for($level); -- cgit v1.2.3-24-ge0c7