- From: Mercurial notifier <nobody@w3.org>
- Date: Thu, 05 Aug 2010 14:47:00 +0000
- To: link-checker updates <www-validator-cvs@w3.org>
changeset: 96:46fdbac9a93a user: ville date: Sun Jul 11 19:14:46 2004 +0000 files: bin/checklink description: Fix bug in recursion logic: when parsing a document in recursive mode, we are interested in links in it if it's in recursion scope, even if the document retrieval is "only" caused by an anchor in a referring document. http://lists.w3.org/Archives/Public/www-validator/2004Jun/0181.html diff -r bd698e19ca62 -r 46fdbac9a93a bin/checklink --- a/bin/checklink Sun Jul 11 16:46:42 2004 +0000 +++ b/bin/checklink Sun Jul 11 19:14:46 2004 +0000 @@ -5,7 +5,7 @@ # (c) 1999-2004 World Wide Web Consortium # based on Renaud Bruyeron's checklink.pl # -# $Id: checklink,v 4.1 2004-07-11 16:45:13 ville Exp $ +# $Id: checklink,v 4.2 2004-07-11 19:14:46 ville Exp $ # # This program is licensed under the W3C(r) Software License: # http://www.w3.org/Consortium/Legal/copyright-software @@ -112,7 +112,7 @@ $PACKAGE = 'W3C Link Checker'; $PROGRAM = 'W3C-checklink'; $VERSION = '4.0-dev'; - my ($cvsver) = q$Revision: 4.1 $ =~ /(\d+[\d\.]*\.\d+)/; + my ($cvsver) = q$Revision: 4.2 $ =~ /(\d+[\d\.]*\.\d+)/; $REVISION = sprintf('version %s [%s] (c) 1999-2004 W3C', $VERSION, $cvsver); $AGENT = sprintf('%s/%s [%s] %s', @@ -739,7 +739,9 @@ &hprintf("Checking link %s\n", $u) unless $Opts{Summary_Only}; # Check that a link is valid - &check_validity($uri, $u, \%links, \%redirects); + &check_validity($uri, $u, + ($depth != 0 && &in_recursion_scope($u)), + \%links, \%redirects); &hprintf("\tReturn code: %s\n", $results{$u}{location}{code}) if ($Opts{Verbose}); if ($results{$u}{location}{success}) { @@ -834,7 +836,7 @@ my ($method, $uri, $in_recursion, $redirects) = @_; # $method contains the HTTP method the use (GET or HEAD) # $uri contains the identifier of the resource - # $in_recursion equals 1 if we are in recursion mode (i.e. it is at least + # $in_recursion is > 0 if we are in recursion mode (i.e. it is at least # the second resource checked) # $redirects is a pointer to the hash containing the map of the redirects @@ -1089,7 +1091,7 @@ # Parse a document # #################### -sub parse_document ($$$$;$) +sub parse_document ($$$$$) { my ($uri, $location, $document, $links, $rec_needs_links) = @_; @@ -1301,11 +1303,12 @@ # Check the validity of a link # ################################ -sub check_validity ($$\%\%) +sub check_validity ($$$\%\%) { - my ($testing, $uri, $links, $redirects) = @_; + my ($testing, $uri, $in_recursion, $links, $redirects) = @_; # $testing is the URI of the document checked # $uri is the URI of the target that we are verifying + # $in_recursion is > 0 if we're in recursive mode # $links is a hash of the links in the documents checked # $redirects is a map of the redirects encountered @@ -1357,7 +1360,7 @@ } # Do it then $p = &parse_document($uri, $response->base(), - $response->as_string(), 0); + $response->as_string(), 0, $in_recursion); } else { # We already had the information $p->{Anchors} = $results{$uri}{parsing}{Anchors};
Received on Thursday, 5 August 2010 14:47:11 UTC