]> Sergey Matveev's repositories - public-inbox.git/commitdiff
hval: export prurl and add prototype
authorEric Wong <e@yhbt.net>
Sun, 5 Jan 2020 23:23:31 +0000 (23:23 +0000)
committerEric Wong <e@yhbt.net>
Mon, 6 Jan 2020 10:20:37 +0000 (10:20 +0000)
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
lib/PublicInbox/Hval.pm
lib/PublicInbox/NewsWWW.pm
lib/PublicInbox/View.pm
lib/PublicInbox/WwwListing.pm
lib/PublicInbox/WwwStream.pm

index 0f3e392defcf09cf2aa453001268b22e867adc6a..549e44955e8c6db0810f622ea77722e189d77cf9 100644 (file)
@@ -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{<a\nhref="$r">$t</a>\n};
index cd3a4df34bec61bad715fbf1546dec1c74338d2e..7e007027c8ba9d27fc58cf6c6d942b83b1d18c4f 100644 (file)
@@ -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};
index ee11a0890b1f598dda2d89b27202658da0a9e7e6..be1d43efa6312b549d701188184cedae5cc47160 100644 (file)
@@ -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) };
index 69948c4a07cea5da391241571df9a93b37748b05..5acd565a743543ef9db41e4716f1338a4dec71c8 100644 (file)
@@ -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;
@@ -123,7 +123,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: <a\nhref="$url">$url</a>\n);
        }
 
index 4f076b7d24041f17cced038d802414cc27a6dc0a..a52dba110c359fa988e4781657d2be81d7fe6d0c 100644 (file)
@@ -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;
 }
index 0f4f55d0f7246a68ee737ecb7b445cc7d8ddee31..8f5a65263fadea90ac12629a434ff3ec736c364e 100644 (file)
@@ -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 <a\nhref="$u">$u</a>)
 }