diff options
author | Eric Wong <e@80x24.org> | 2016-04-13 01:35:56 +0000 |
---|---|---|
committer | Eric Wong <e@80x24.org> | 2016-04-13 01:35:56 +0000 |
commit | 18a511c17dd9c4b5fad3a1e837bb8d23216bf758 (patch) | |
tree | e4e293a9a66eadb54bbd4cebb5d33140eed5dd88 /lib | |
parent | ae43d0cf268512ce3dff6c8af3e4f686b2a011e2 (diff) | |
download | public-inbox-18a511c17dd9c4b5fad3a1e837bb8d23216bf758.tar.gz |
Oops. While we're at it, simplify the calls to do threading slightly by reducing the places where we touch Mail::Thread globals. Fixes: 56164afc2034 (view: allow topics to be "bumped" by new replies)
Diffstat (limited to 'lib')
-rw-r--r-- | lib/PublicInbox/SearchView.pm | 19 | ||||
-rw-r--r-- | lib/PublicInbox/View.pm | 4 |
2 files changed, 11 insertions, 12 deletions
diff --git a/lib/PublicInbox/SearchView.pm b/lib/PublicInbox/SearchView.pm index ab0ff19a..e94a1dff 100644 --- a/lib/PublicInbox/SearchView.pm +++ b/lib/PublicInbox/SearchView.pm @@ -150,13 +150,8 @@ sub tdump { $m; } ($mset->items); - require PublicInbox::Thread; - my $th = PublicInbox::Thread->new(@m); - { - no warnings 'once'; - $Mail::Thread::nosubject = 0; - } - $th->thread; + my @rootset; + my $th = PublicInbox::View::thread_results(\@m, 0, $q->{r}); if ($q->{r}) { $th->order(sub { sort { (eval { $pct{$b->topmost->messageid} } || 0) @@ -164,9 +159,13 @@ sub tdump { (eval { $pct{$a->topmost->messageid} } || 0) } @_; }); + @rootset = $th->rootset; } else { - no warnings 'once'; - $th->order(*PublicInbox::View::rsort_ts); + @rootset = sort { + (eval { $b->topmost->message->header('X-PI-TS') } || 0) + <=> + (eval { $a->topmost->message->header('X-PI-TS') } || 0) + } $th->rootset; } my $git = $ctx->{git} ||= PublicInbox::Git->new($ctx->{git_dir}); @@ -178,7 +177,7 @@ sub tdump { fh => $fh, }; $ctx->{searchview} = 1; - tdump_ent($git, $state, $_, 0) for $th->rootset; + tdump_ent($git, $state, $_, 0) for @rootset; PublicInbox::View::thread_adj_level($state, 0); Email::Address->purge_cache; diff --git a/lib/PublicInbox/View.pm b/lib/PublicInbox/View.pm index f58099d4..ebe82b49 100644 --- a/lib/PublicInbox/View.pm +++ b/lib/PublicInbox/View.pm @@ -726,7 +726,7 @@ sub msg_timestamp { } sub thread_results { - my ($msgs, $nosubject) = @_; + my ($msgs, $nosubject, $nosort) = @_; require PublicInbox::Thread; my $th = PublicInbox::Thread->new(@$msgs); @@ -740,7 +740,7 @@ sub thread_results { # Keep ghosts with only a single direct child: $Mail::Thread::noprune = 1; $th->thread; - $th->order(*sort_ts); + $th->order(*sort_ts) unless $nosort; $th } |