From: Robin B. <da...@us...> - 2001-08-17 18:09:14
|
Update of /cvsroot/perl-css/CSS-SAC In directory usw-pr-cvs1:/tmp/cvs-serv23070 Modified Files: SAC.pm Log Message: a few fixes for endless loops Index: SAC.pm =================================================================== RCS file: /cvsroot/perl-css/CSS-SAC/SAC.pm,v retrieving revision 1.2 retrieving revision 1.3 diff -u -d -r1.2 -r1.3 --- SAC.pm 2001/08/17 17:50:15 1.2 +++ SAC.pm 2001/08/17 18:09:11 1.3 @@ -2,6 +2,7 @@ ### # CSS::SAC - a SAC implementation for Perl # Robin Berjon <ro...@kn...> +# 17/08/2001 - bugfixes... # 23/04/2001 - more enhancements # 19/03/2001 - second version, various suggestions and enhancements # 24/02/2001 - prototype mark I of the new model @@ -19,7 +20,7 @@ %DIM_MAP %FUNC_MAP ); -$VERSION = '0.03'; +$VERSION = '0.04'; use CSS::SAC::ConditionFactory qw(); use CSS::SAC::SelectorFactory qw(); @@ -638,12 +639,11 @@ $sac->[_dh_]->comment($1) if $sac->[_dh_can_]->{comment}; } else { - $sac->[_eh_]->warning('Unterminated comment'); - if ($$css =~ s/[^;]*;//) { - $sac->[_eh_]->warning('Unknown token in import rule'); + if ($$css =~ s/.*\*\///) { + $sac->[_eh_]->warning('Strange comment token, guessing the parse'); } else { - $sac->[_eh_]->fatal_error('Unknown token in import rule'); + $sac->[_eh_]->fatal_error('Unterminated comment: unrecoverable'); } } } @@ -688,14 +688,11 @@ # error else { # something wrong must have happened - $$css =~ s/^[^{]*//; - $sac->[_eh_]->warning('Unknown token in selector list'); - last; - if ($$css =~ s/[^;]*;//) { - $sac->[_eh_]->warning('Unknown token in import rule'); + if ($$css =~ s/[^{]*//) { + $sac->[_eh_]->warning('Unknown token in selector list'); } else { - $sac->[_eh_]->fatal_error('Unknown token in import rule'); + $sac->[_eh_]->fatal_error('Unknown token in selector list'); } } } @@ -964,14 +961,11 @@ # an error else { - $$css =~ s/^.*?(,|{)/$1/; - $sac->[_eh_]->warning('Unknown token in simple selector'); - last; - if ($$css =~ s/[^;]*;//) { - $sac->[_eh_]->warning('Unknown token in import rule'); + if (s/^.*?(,|{)/$1/) { + $sac->[_eh_]->warning('Unknown token in simple selector'); } else { - $sac->[_eh_]->fatal_error('Unknown token in import rule'); + $sac->[_eh_]->fatal_error('Unknown token in simple selector'); } } } @@ -1140,14 +1134,14 @@ # the value my $lu = $sac->parse_property_value($css); if (!@$lu) { -print "pvcss: $$css\n"; - $$css =~ s/^.*?;?\s*//; - $sac->[_eh_]->warning('Unknown token in property value'); +#print "pvcss: $$css\n"; +# $$css =~ s/^.*?;?\s*//; +# $sac->[_eh_]->warning('Unknown token in property value'); if ($$css =~ s/[^;]*;//) { - $sac->[_eh_]->warning('Unknown token in import rule'); + $sac->[_eh_]->warning('Unknown token in style declaration'); } else { - $sac->[_eh_]->fatal_error('Unknown token in import rule'); + $sac->[_eh_]->fatal_error('Unknown token in style declaration'); } next; } |