Displaying "100%" wastes a precious column. Show "99%" instead
since there's little practical difference and <xapian/mset.h>
states:
Note that these generally aren't percentages of anything meaningful
(unless you use a custom weighting formula where they are!)
And we're not using a custom weighting formula.
my $obfs_ibx = $ibx->{obfuscate} ? $ibx : undef;
foreach my $m ($mset->items) {
my $rank = sprintf("%${pad}d", $m->get_rank + 1);
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 $smsg = load_doc_retry($srch, $m);
unless ($smsg) {
eval {
my $smsg = load_doc_retry($srch, $m);
unless ($smsg) {
eval {
+sub get_pct ($) {
+ # Capped at "99%" since "100%" takes an extra column in the
+ # thread skeleton view. <xapian/mset.h> 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;
sub mset_thread {
my ($ctx, $mset, $q) = @_;
my %pct;
my $msgs = $ibx->search->retry_reopen(sub { [ map {
my $i = $_;
my $smsg = PublicInbox::SearchMsg->load_doc($i->get_document);
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};
$smsg;
} ($mset->items) ]});
my $r = $q->{r};
if (my $pct = $ctx->{pct}) {
$pct = $pct->{$smsg->{mid}};
if (defined $pct) {
if (my $pct = $ctx->{pct}) {
$pct = $pct->{$smsg->{mid}};
if (defined $pct) {
- $d .= (sprintf(' % 3u', $pct) . '%');
+ $d .= (sprintf(' % 2u', $pct) . '%');
}
}
$d .= ' ' . indent_for($level) . th_pfx($level);
}
}
$d .= ' ' . indent_for($level) . th_pfx($level);
my $mid = $node->{id};
my $d = ' [not found] ';
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);
$d .= indent_for($level) . th_pfx($level);
my $upfx = $ctx->{-upfx};
my $m = PublicInbox::Hval->new_msgid($mid);