- From: Mercurial notifier <nobody@w3.org>
- Date: Mon, 23 May 2011 19:49:48 +0000
- To: link-checker updates <www-validator-cvs@w3.org>
changeset: 406:d345cd6f0b09
tag: tip
user: Ville Skyttä <ville.skytta@iki.fi>
date: Mon May 23 22:49:41 2011 +0300
files: bin/checklink
description:
Bring back <base href> handling code.
LWP fails to do it for us when there are Content-Encodings involved:
https://rt.cpan.org/Ticket/Display.html?id=54361
diff -r f3c48c82ec04 -r d345cd6f0b09 bin/checklink
--- a/bin/checklink Mon May 23 22:28:15 2011 +0300
+++ b/bin/checklink Mon May 23 22:49:41 2011 +0300
@@ -238,6 +238,7 @@
a => ['href'],
# base/@href intentionally not checked
+ # http://www.w3.org/mid/200802091439.27764.ville.skytta%40iki.fi
area => ['href'],
audio => ['src'],
blockquote => ['cite'],
@@ -2033,8 +2034,19 @@
my $tag_local_base = undef;
+ # Special case: base/@href
+ # @@@TODO: The reason for handling <base href> ourselves is that LWP's
+ # head parsing magic fails at least for responses that have
+ # Content-Encodings: https://rt.cpan.org/Ticket/Display.html?id=54361
+ if ($tag eq 'base') {
+
+ # Ignore <base> with missing/empty href.
+ $self->{base} = $attr->{href}
+ if (defined($attr->{href}) && length($attr->{href}));
+ }
+
# Special case: meta[@http-equiv=Refresh]/@content
- if ($tag eq 'meta') {
+ elsif ($tag eq 'meta') {
if ($attr->{'http-equiv'} &&
lc($attr->{'http-equiv'}) eq 'refresh')
{
Received on Monday, 23 May 2011 19:49:51 UTC