X-Git-Url: http://www.git.stargrave.org/?p=public-inbox.git;a=blobdiff_plain;f=lib%2FPublicInbox%2FViewVCS.pm;h=6b641b327edda74e4c9ba73539daef7d34878258;hp=9a5596870bfc445ab600f2db5be7ec3aecd8dca1;hb=64e922b569c6dc16d7e1d4851253b09da35b7265;hpb=4c48cee337c2d05d13122e442f7950b640e25b38 diff --git a/lib/PublicInbox/ViewVCS.pm b/lib/PublicInbox/ViewVCS.pm index 9a559687..6b641b32 100644 --- a/lib/PublicInbox/ViewVCS.pm +++ b/lib/PublicInbox/ViewVCS.pm @@ -155,21 +155,24 @@ sub show_commit_start { # ->psgi_qx callback sub ibx_url_for { my ($ctx) = @_; - $ctx->{ibx} and return; # just fall back to $upfx - $ctx->{git} or return; # /$CODEREPO/$OID/s/ to (eidx|ibx) + $ctx->{ibx} and return; # fall back to $upfx + $ctx->{git} or return; if (my $ALL = $ctx->{www}->{pi_cfg}->ALL) { - $ALL->base_url // $ALL->base_url($ctx->{env}); - } elsif (my $ibxs = $ctx->{git}->{-ibxs}) { - for my $ibx (@$ibxs) { - if ($ibx->isrch) { - return defined($ibx->{url}) ? - prurl($ctx->{env}, $ibx->{url}) : - "../../../$ibx->{name}/"; - } + return $ALL->base_url // $ALL->base_url($ctx->{env}); + } elsif (my $ibx_names = $ctx->{git}->{ibx_names}) { + my $by_name = $ctx->{www}->{pi_cfg}->{-by_name}; + for my $name (@$ibx_names) { + my $ibx = $by_name->{$name} // do { + warn "inbox `$name' no longer exists\n"; + next; + }; + $ibx->isrch // next; + return defined($ibx->{url}) ? + prurl($ctx->{env}, $ibx->{url}) : + "../../../$name/"; } - } else { - undef; } + undef; } sub cmt_finalize {