- From: Michael Ernst via cvs-syncmail <cvsmail@w3.org>
- Date: Sat, 04 Jul 2009 03:45:59 +0000
- To: www-validator-cvs@w3.org
Update of /sources/public/perl/modules/W3C/LinkChecker/bin In directory hutz:/tmp/cvs-serv15790 Modified Files: checklink Log Message: User bug report (hash key was Suppress..., shourd have been Suppress...) led me to rewrites, shorten, & optimize redirect checking. Index: checklink =================================================================== RCS file: /sources/public/perl/modules/W3C/LinkChecker/bin/checklink,v retrieving revision 4.161 retrieving revision 4.162 diff -u -d -r4.161 -r4.162 --- checklink 29 Jun 2009 20:14:38 -0000 4.161 +++ checklink 4 Jul 2009 03:45:57 -0000 4.162 @@ -395,6 +395,7 @@ Exclude_Docs => undef, Suppress_Redirect => [], Suppress_Redirect_Prefix => [], + Suppress_Redirect_Regexp => [], Suppress_Broken => [], Suppress_Fragment => [], Masquerade => 0, @@ -701,9 +702,11 @@ } } for my $srp_arg (@{$Opts{Suppress_Redirect_Prefix}}) { - if ($srp_arg !~ /.->./) { + if ($srp_arg !~ /^(.*)->(.*)$/) { &usage(1, "Bad suppress-redirect-prefix argument, should contain \"->\": $srp_arg"); } + # Turn prefixes into a regexp. + push @{$Opts{Suppress_Redirect_Regexp}}, qr/^\Q$1\E(.*)->\Q$2\E\1$/ism; } for my $sb_arg (@{$Opts{Suppress_Broken}}) { if ($sb_arg !~ /^(-1|[0-9]+):./) { @@ -1932,37 +1935,12 @@ my $to = $response->request()->url(); # same on every loop iteration my $from_to = $from . '->' . $to; my $match = grep { $_ eq $from_to } @{$Opts{Suppress_Redirect}}; - # print STDERR "Result $match of checking $from_to\n"; + # print STDERR "Result $match of redirect checking $from_to\n"; if ($match) { next; } - # Check for redirect_prefix match - my $prefix_match = 0; - my $from_len = length($from); - my $to_len = length($to); - for my $redir_prefix (@{$Opts{Suppresss_Redirect_Prefix}}) { - if ($redir_prefix !~ /^(.*)->(.*)$/) { - die "Bad suppress-redirect-prefix: $redir_prefix"; - } - my $from_prefix = $1; - my $to_prefix = $2; - my $from_prefix_len = length($from_prefix); - my $to_prefix_len = length($to_prefix); - if (($from eq $from_prefix) && ($to eq $to_prefix)) { - $prefix_match = 1; - last; - } elsif (($from_prefix_len < $from_len) - && ($to_prefix_len < $to_len) - && ($from_prefix eq substr($from, 0, $from_prefix_len)) - && ($to_prefix eq substr($to, 0, $to_prefix_len)) - && (substr($from, $from_prefix_len) eq substr($to, $to_prefix_len))) { - $prefix_match = 1; - last; - } - } - if ($prefix_match) { - # print STDERR "A SUPPRESSED REDIRECT:\n $from\n $to\n"; - next; - } + $match = grep { $from_to =~ /$_/ } @{$Opts{Suppress_Redirect_Regexp}}; + # print STDERR "Result $match of regexp checking $from_to\n"; + if ($match) { next; } $redirects->{$prev->request()->url()} = $response->request()->url(); }
Received on Saturday, 4 July 2009 03:46:11 UTC