lib/PublicInbox/SearchView.pm | 12 ++++++++++-- lib/PublicInbox/View.pm | 6 +++--- diff --git a/lib/PublicInbox/SearchView.pm b/lib/PublicInbox/SearchView.pm index 566808e10a9c66f2e57267d54772c88f359b63f4..7afb07540f7b8d6cab41769bd2becc2835b35cef 100644 --- a/lib/PublicInbox/SearchView.pm +++ b/lib/PublicInbox/SearchView.pm @@ -113,7 +113,7 @@ my $srch = $ibx->search; my $obfs_ibx = $ibx->{obfuscate} ? $ibx : undef; foreach my $m ($mset->items) { my $rank = sprintf("%${pad}d", $m->get_rank + 1); - my $pct = $m->get_percent; + my $pct = get_pct($m); my $smsg = load_doc_retry($srch, $m); unless ($smsg) { eval { @@ -264,6 +264,14 @@ (eval { $pct->{$a->topmost->{id}} } || 0) } @{$_[0]} ] }; } +sub get_pct ($) { + # Capped at "99%" since "100%" takes an extra column in the + # thread skeleton view. says the value isn't + # very meaningful, anyways. + my $n = $_[0]->get_percent; + $n > 99 ? 99 : $n; +} + sub mset_thread { my ($ctx, $mset, $q) = @_; my %pct; @@ -271,7 +279,7 @@ my $ibx = $ctx->{-inbox}; my $msgs = $ibx->search->retry_reopen(sub { [ map { my $i = $_; my $smsg = PublicInbox::SearchMsg->load_doc($i->get_document); - $pct{$smsg->mid} = $i->get_percent; + $pct{$smsg->mid} = get_pct($i); $smsg; } ($mset->items) ]}); my $r = $q->{r}; diff --git a/lib/PublicInbox/View.pm b/lib/PublicInbox/View.pm index 5924a2a727f2baacadb1c38a35ca813e45ca4ec4..0b1026387f18c815f6bec6200fdc9f353e1f3922 100644 --- a/lib/PublicInbox/View.pm +++ b/lib/PublicInbox/View.pm @@ -955,10 +955,10 @@ my $unmatched; # if lazy-loaded by SearchThread::Msg::visible() if (my $pct = $ctx->{pct}) { $pct = $pct->{$smsg->{mid}}; if (defined $pct) { - $d .= (sprintf(' % 3u', $pct) . '%'); + $d .= (sprintf(' % 2u', $pct) . '%'); } else { $unmatched = 1; - $d .= ' '; + $d .= ' '; } } $d .= ' ' . indent_for($level) . th_pfx($level); @@ -1022,7 +1022,7 @@ my ($ctx, $level, $node) = @_; my $mid = $node->{id}; my $d = ' [not found] '; - $d .= ' ' if exists $ctx->{pct}; + $d .= ' ' if exists $ctx->{pct}; $d .= indent_for($level) . th_pfx($level); my $upfx = $ctx->{-upfx}; my $m = PublicInbox::Hval->new_msgid($mid);