From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.2 (2018-09-13) on dcvr.yhbt.net X-Spam-Level: X-Spam-ASN: X-Spam-Status: No, score=-4.4 required=3.0 tests=ALL_TRUSTED,AWL,BAYES_00 shortcircuit=no autolearn=ham autolearn_force=no version=3.4.2 Received: from localhost (dcvr.yhbt.net [127.0.0.1]) by dcvr.yhbt.net (Postfix) with ESMTP id C936A1F46C for ; Sun, 5 Jan 2020 23:23:36 +0000 (UTC) From: Eric Wong To: meta@public-inbox.org Subject: [PATCH 1/6] hval: export prurl and add prototype Date: Sun, 5 Jan 2020 23:23:31 +0000 Message-Id: <20200105232336.26023-2-e@yhbt.net> In-Reply-To: <20200105232336.26023-1-e@yhbt.net> References: <20200105232336.26023-1-e@yhbt.net> MIME-Version: 1.0 Content-Transfer-Encoding: 8bit List-Id: This allows to do some compile-time checking and fills in a missing "use" in PublicInbox::NewsWWW, allowing it to be used standalone and independently of PublicInbox::WWW --- lib/PublicInbox/ExtMsg.pm | 4 ++-- lib/PublicInbox/Hval.pm | 5 +++-- lib/PublicInbox/NewsWWW.pm | 3 ++- lib/PublicInbox/View.pm | 4 ++-- lib/PublicInbox/WwwListing.pm | 6 +++--- lib/PublicInbox/WwwStream.pm | 4 ++-- 6 files changed, 14 insertions(+), 12 deletions(-) diff --git a/lib/PublicInbox/ExtMsg.pm b/lib/PublicInbox/ExtMsg.pm index 0f3e392d..549e4495 100644 --- a/lib/PublicInbox/ExtMsg.pm +++ b/lib/PublicInbox/ExtMsg.pm @@ -8,7 +8,7 @@ package PublicInbox::ExtMsg; use strict; use warnings; -use PublicInbox::Hval qw/ascii_html/; +use PublicInbox::Hval qw(ascii_html prurl); use PublicInbox::MID qw/mid2path/; use PublicInbox::WwwStream; our $MIN_PARTIAL_LEN = 16; @@ -172,7 +172,7 @@ sub ext_urls { my $env = $ctx->{env}; my $e = "\nPerhaps try an external site:\n\n"; foreach my $url (@EXT_URL) { - my $u = PublicInbox::Hval::prurl($env, $url); + my $u = prurl($env, $url); my $r = sprintf($u, $href); my $t = sprintf($u, $html); $e .= qq{$t\n}; diff --git a/lib/PublicInbox/Hval.pm b/lib/PublicInbox/Hval.pm index cd3a4df3..7e007027 100644 --- a/lib/PublicInbox/Hval.pm +++ b/lib/PublicInbox/Hval.pm @@ -10,7 +10,7 @@ use Encode qw(find_encoding); use PublicInbox::MID qw/mid_clean mid_escape/; use base qw/Exporter/; our @EXPORT_OK = qw/ascii_html obfuscate_addrs to_filename src_escape - to_attr from_attr/; + to_attr from_attr prurl/; my $enc_ascii = find_encoding('us-ascii'); # safe-ish acceptable filename pattern for portability @@ -84,7 +84,8 @@ sub raw { } } -sub prurl { +# returns a protocol-relative URL string +sub prurl ($$) { my ($env, $u) = @_; if (ref($u) eq 'ARRAY') { my $h = $env->{HTTP_HOST} // $env->{SERVER_NAME}; diff --git a/lib/PublicInbox/NewsWWW.pm b/lib/PublicInbox/NewsWWW.pm index ee11a089..be1d43ef 100644 --- a/lib/PublicInbox/NewsWWW.pm +++ b/lib/PublicInbox/NewsWWW.pm @@ -10,6 +10,7 @@ use strict; use warnings; use PublicInbox::Config; use PublicInbox::MID qw(mid_escape); +use PublicInbox::Hval qw(prurl); sub new { my ($class, $pi_config) = @_; @@ -48,7 +49,7 @@ sub call { my ($ng, $article) = @parts; my $pi_config = $self->{pi_config}; if (my $ibx = $pi_config->lookup_newsgroup($ng)) { - my $url = PublicInbox::Hval::prurl($env, $ibx->{url}); + my $url = prurl($env, $ibx->{url}); my $code = 301; if (defined $article && $article =~ /\A[0-9]+\z/) { my $mid = eval { $ibx->mm->mid_for($article) }; diff --git a/lib/PublicInbox/View.pm b/lib/PublicInbox/View.pm index c38a1289..0d6f3351 100644 --- a/lib/PublicInbox/View.pm +++ b/lib/PublicInbox/View.pm @@ -8,7 +8,7 @@ use strict; use warnings; use bytes (); # only for bytes::length use PublicInbox::MsgTime qw(msg_datestamp); -use PublicInbox::Hval qw/ascii_html obfuscate_addrs/; +use PublicInbox::Hval qw(ascii_html obfuscate_addrs prurl); use PublicInbox::Linkify; use PublicInbox::MID qw/id_compress mid_escape mids mids_for_index references/; use PublicInbox::MsgIter; @@ -122,7 +122,7 @@ sub msg_reply { my $info = ''; my $ibx = $ctx->{-inbox}; if (my $url = $ibx->{infourl}) { - $url = PublicInbox::Hval::prurl($ctx->{env}, $url); + $url = prurl($ctx->{env}, $url); $info = qq(\n List information: $url\n); } diff --git a/lib/PublicInbox/WwwListing.pm b/lib/PublicInbox/WwwListing.pm index 4f076b7d..a52dba11 100644 --- a/lib/PublicInbox/WwwListing.pm +++ b/lib/PublicInbox/WwwListing.pm @@ -6,7 +6,7 @@ package PublicInbox::WwwListing; use strict; use warnings; -use PublicInbox::Hval qw(ascii_html); +use PublicInbox::Hval qw(ascii_html prurl); use PublicInbox::Linkify; use PublicInbox::View; use PublicInbox::Inbox; @@ -84,13 +84,13 @@ sub new { sub ibx_entry { my ($mtime, $ibx, $env) = @_; my $ts = PublicInbox::View::fmt_ts($mtime); - my $url = PublicInbox::Hval::prurl($env, $ibx->{url}); + my $url = prurl($env, $ibx->{url}); my $tmp = <<""; * $ts - $url ${\$ibx->description} if (defined(my $info_url = $ibx->{infourl})) { - $tmp .= ' ' . PublicInbox::Hval::prurl($env, $info_url) . "\n"; + $tmp .= ' ' . prurl($env, $info_url) . "\n"; } $tmp; } diff --git a/lib/PublicInbox/WwwStream.pm b/lib/PublicInbox/WwwStream.pm index 0f4f55d0..8f5a6526 100644 --- a/lib/PublicInbox/WwwStream.pm +++ b/lib/PublicInbox/WwwStream.pm @@ -9,7 +9,7 @@ package PublicInbox::WwwStream; use strict; use warnings; -use PublicInbox::Hval qw(ascii_html); +use PublicInbox::Hval qw(ascii_html prurl); our $TOR_URL = 'https://www.torproject.org/'; our $CODE_URL = 'https://public-inbox.org/public-inbox.git'; @@ -78,7 +78,7 @@ sub _html_top ($) { sub code_footer ($) { my ($env) = @_; - my $u = PublicInbox::Hval::prurl($env, $CODE_URL); + my $u = prurl($env, $CODE_URL); qq(AGPL code for this site: git clone $u) }