From: Eric Wong Date: Fri, 27 Aug 2021 22:03:02 +0000 (+0000) Subject: www: avoid potential auto-vivification on ibx->{url} X-Git-Tag: v1.7.0~480 X-Git-Url: http://www.git.stargrave.org/?a=commitdiff_plain;h=b587bfbcbff710dc9667af85be6a2a619f918273;p=public-inbox.git www: avoid potential auto-vivification on ibx->{url} This may fix problems with the "all" link disappearing. Link: https://public-inbox.org/meta/CAMwyc-Tw=v5yT1U1U66GSwwTK8OJXv8_YDu-=oXbZO3tHSnYWw@mail.gmail.com/ --- diff --git a/lib/PublicInbox/Inbox.pm b/lib/PublicInbox/Inbox.pm index df140cac..b0bb9dcc 100644 --- a/lib/PublicInbox/Inbox.pm +++ b/lib/PublicInbox/Inbox.pm @@ -250,7 +250,8 @@ sub base_url { } # called from a non-PSGI environment (e.g. NNTP/POP3): $self->{-base_url} ||= do { - my $url = $self->{url}->[0] or return undef; + my $url = $self->{url} // return undef; + $url = $url->[0] // return undef; # expand protocol-relative URLs to HTTPS if we're # not inside a web server $url = "https:$url" if $url =~ m!\A//!; diff --git a/lib/PublicInbox/WwwListing.pm b/lib/PublicInbox/WwwListing.pm index 1bb5fbd0..ef9048b5 100644 --- a/lib/PublicInbox/WwwListing.pm +++ b/lib/PublicInbox/WwwListing.pm @@ -17,7 +17,7 @@ sub ibx_entry { my $desc = ascii_html($ce->{description} //= $ibx->description); my $ts = fmt_ts($ce->{-modified} //= $ibx->modified); my ($url, $href); - if (defined($ibx->{url})) { + if (scalar(@{$ibx->{url} // []})) { $url = $href = ascii_html(prurl($ctx->{env}, $ibx->{url})); } else { $href = ascii_html(uri_escape_utf8($ibx->{name})) . '/'; @@ -41,7 +41,7 @@ sub list_match_i { # ConfigIter callback return if $section !~ m!\Apublicinbox\.([^/]+)\z!; my $ibx = $cfg->lookup_name($1) or return; if (!$ibx->{-hide}->{$ctx->hide_key} && - grep(/$re/, @{$ibx->{url}})) { + grep(/$re/, @{$ibx->{url} // []})) { $ctx->ibx_entry($ibx); } } else { # undef == "EOF"