+ my $related;
+ my $qry = delete $ctx->{-qry};
+ if ($qry && $ctx->{ibx}->isrch) {
+ my $q = ''; # search for either ancestor or descendent patches
+ for (@{$qry->{dfpre}}, @{$qry->{dfpost}}) {
+ chop if length > 7; # include 1 abbrev "older" patches
+ $q .= "dfblob:$_ ";
+ }
+ chop $q; # omit trailing SP
+ local $Text::Wrap::columns = COLS;
+ local $Text::Wrap::huge = 'overflow';
+ $q = wrap('', '', $q);
+ my $rows = ($q =~ tr/\n/\n/) + 1;
+ $q = ascii_html($q);
+ $related = <<EOM;
+<form id=related
+action=$upfx
+><pre>find likely ancestor, descendant, or conflicting patches for <a
+href=#t>this message</a>:
+<textarea name=q cols=${\COLS} rows=$rows>$q</textarea>
+<input type=submit value=search
+/>\t(<a href=${upfx}_/text/help/>help</a>)</pre></form>
+EOM
+ }
+ if ($ctx->{ibx}->over) {
+ my $t = ts2str($ctx->{-t_max});
+ my $t_fmt = fmt_ts($ctx->{-t_max});
+ my $fallback = $related ? "\t" : "<a id=related>\t</a>";
+ $skel = <<EOF;
+${fallback}other threads:[<a
+href="$upfx?t=$t">~$t_fmt UTC</a>|<a
+href="$upfx">newest</a>]
+EOF
+