- From: Ville Skytta via cvs-syncmail <cvsmail@w3.org>
- Date: Sun, 10 Feb 2008 13:29:35 +0000
- To: www-validator-cvs@w3.org
Update of /sources/public/perl/modules/W3C/LinkChecker/bin In directory hutz:/tmp/cvs-serv6138 Modified Files: checklink Log Message: Print percentage indicator only when it changes; improves performance significantly with some terminals and large documents. Index: checklink =================================================================== RCS file: /sources/public/perl/modules/W3C/LinkChecker/bin/checklink,v retrieving revision 4.89 retrieving revision 4.90 diff -u -d -r4.89 -r4.90 --- checklink 10 Feb 2008 13:25:21 -0000 4.89 +++ checklink 10 Feb 2008 13:29:33 -0000 4.90 @@ -1388,7 +1388,10 @@ $self->declaration(substr($_[0], 2, -1)); }, 'self, text, line'); # Other stuff - $p->handler(default => 'parse_progress', 'self, line') if $Opts{Progress}; + if ($Opts{Progress}) { + $p->handler(default => 'parse_progress', 'self, line'); + $p->{last_percentage} = 0; + } $p->handler(end_document => 'end_document', 'self, line'); # Check <a [..] name="...">? $p->{check_name} = 1; @@ -1434,8 +1437,14 @@ sub parse_progress { my ($self, $line) = @_; - printf("\r%4d%%", int($line/$self->{Total}*100)) - if (defined($line) && $line >= 0 && $self->{Total} > 0); + return unless defined($line) && $line > 0 && $self->{Total} > 0; + + my $percentage = int($line/$self->{Total}*100); + if ($percentage != $self->{last_percentage}) { + printf("\r%4d%%", $percentage); + $self->{last_percentage} = $percentage; + } + return; }
Received on Sunday, 10 February 2008 13:29:48 UTC