|
|
e192f87 |
diff -ur Mozilla-PublicSuffix-v0.1.19/Build.PL Mozilla-PublicSuffix-v0.1.19.unbundle/Build.PL
|
|
|
e192f87 |
--- Mozilla-PublicSuffix-v0.1.19/Build.PL 2014-07-23 18:54:16.000000000 +0300
|
|
|
f83a003 |
+++ Mozilla-PublicSuffix-v0.1.19.unbundle/Build.PL 2015-06-22 15:53:59.652853750 +0300
|
|
|
e192f87 |
@@ -40,6 +40,7 @@
|
|
|
e192f87 |
);
|
|
|
e192f87 |
|
|
|
e192f87 |
my $dat_file = "effective_tld_names.dat";
|
|
|
e192f87 |
+my $system_dat_file = $builder->config('system_publicsuffix_list');
|
|
|
e192f87 |
my $get_new_list = $builder->y_n(
|
|
|
e192f87 |
"Check for a new version of the Public Suffix List?", "N"
|
|
|
e192f87 |
);
|
|
|
e192f87 |
@@ -73,7 +74,13 @@
|
|
|
e192f87 |
} IO::File->new($dat_file)->getlines;
|
|
|
e192f87 |
|
|
|
e192f87 |
tie my @pm, "Tie::File", "lib/Mozilla/PublicSuffix.pm";
|
|
|
e192f87 |
-for (@pm) { s/(my %rules = qw\()\)/$1$rules)/ and last }
|
|
|
e192f87 |
+for (@pm) {
|
|
|
e192f87 |
+ if ($system_dat_file) {
|
|
|
e192f87 |
+ s/(my %rules = qw\(\);)/$1\n_parse_file(\\%rules,\"$system_dat_file\");/ and last
|
|
|
e192f87 |
+ } else {
|
|
|
e192f87 |
+ s/(my %rules = qw\()\)/$1$rules)/ and last
|
|
|
e192f87 |
+ }
|
|
|
e192f87 |
+}
|
|
|
e192f87 |
untie @pm;
|
|
|
e192f87 |
|
|
|
e192f87 |
$builder->create_build_script;
|
|
|
e192f87 |
diff -ur Mozilla-PublicSuffix-v0.1.19/lib/Mozilla/PublicSuffix.pm Mozilla-PublicSuffix-v0.1.19.unbundle/lib/Mozilla/PublicSuffix.pm
|
|
|
e192f87 |
--- Mozilla-PublicSuffix-v0.1.19/lib/Mozilla/PublicSuffix.pm 2014-07-23 18:54:16.000000000 +0300
|
|
|
f83a003 |
+++ Mozilla-PublicSuffix-v0.1.19.unbundle/lib/Mozilla/PublicSuffix.pm 2015-06-22 15:53:59.653853720 +0300
|
|
|
f83a003 |
@@ -3,6 +3,7 @@
|
|
|
f83a003 |
use strict;
|
|
|
f83a003 |
use warnings FATAL => 'all';
|
|
|
f83a003 |
use utf8;
|
|
|
f83a003 |
+use open ":encoding(UTF-8)";
|
|
|
f83a003 |
use Exporter qw(import);
|
|
|
f83a003 |
use URI::_idna;
|
|
|
f83a003 |
|
|
|
f83a003 |
@@ -93,6 +94,19 @@
|
|
|
e192f87 |
}
|
|
|
e192f87 |
}
|
|
|
e192f87 |
|
|
|
e192f87 |
+sub _parse_file {
|
|
|
e192f87 |
+ my $rulesref = shift;
|
|
|
e192f87 |
+ my $dat_file = shift;
|
|
|
e192f87 |
+ open DAT ,"<:encoding(UTF-8)", "$dat_file";
|
|
|
e192f87 |
+ foreach (<DAT>) {
|
|
|
e192f87 |
+ s/\s//g;
|
|
|
e192f87 |
+ if ( s/^!// ) { $rulesref->{$_} = "e" } # exception rule
|
|
|
e192f87 |
+ elsif ( s/^\*\.// ) { $rulesref->{$_} = "w" } # wildcard rule
|
|
|
e192f87 |
+ elsif ( /^[\p{Word}]/ ) { $rulesref->{$_} = "i" } # identity rule
|
|
|
e192f87 |
+ }
|
|
|
e192f87 |
+ close DAT;
|
|
|
e192f87 |
+}
|
|
|
e192f87 |
+
|
|
|
e192f87 |
1;
|
|
|
e192f87 |
=encoding utf8
|
|
|
e192f87 |
|