*** HTML.pm 2004-03-16 08:30:47-08 1.1 --- HTML.pm 2004-03-29 17:10:04-08 *************** *** 18,27 **** # elements defined by the HTML 4.01 and XHTML 1.0 DTDs (do not change them!) $re_loose = 'applet|basefont|center|dir|font|frame|frameset|iframe|isindex|menu|noframes|s|strike|u'; ! $re_strict = 'a|abbr|acronym|address|area|b|base|bdo|big|blockquote|body|br|button|caption|cite|code|col|colgroup|dd|del|dfn|div|dl|dt|em|fieldset|form|h1|h2|h3|h4|h5|h6|head|hr|html|i|img|input|ins|kbd|label|legend|li|link|map|meta|noscript|object|ol|optgroup|option|p|param|pre|q|samp|script|select|small|span|strong|style|sub|sup|table|tbody|td|textarea|tfoot|th|thead|title|tr|tt|ul|var'; # loose list of HTML events ! $events = 'on(?:activate|afterupdate|beforeactivate|beforecopy|beforecut|beforedeactivate|beforeeditfocus|beforepaste|beforeupdate|blur|change|click|contextmenu|controlselect|copy|cut|dblclick|deactivate|errorupdate|focus|focusin|focusout|help|keydown|keypress|keyup|load|losecapture|mousedown|mouseenter|mouseleave|mousemove|mouseout|mouseover|mouseup|mousewheel|move|moveend|movestart|paste|propertychange|readystatechange|reset|resize|resizeend|resizestart|select|submit|timeerror|unload)'; my %tested_colors; --- 18,27 ---- # elements defined by the HTML 4.01 and XHTML 1.0 DTDs (do not change them!) $re_loose = 'applet|basefont|center|dir|font|frame|frameset|iframe|isindex|menu|noframes|s|strike|u'; ! $re_strict = '(defanged_)?(?:a|abbr|acronym|address|area|b|base|bdo|big|blockquote|body|br|button|caption|cite|code|col|colgroup|dd|del|dfn|div|dl|dt|em|fieldset|form|h1|h2|h3|h4|h5|h6|head|hr|html|i|img|input|ins|kbd|label|legend|li|link|map|meta|noscript|object|ol|optgroup|option|p|param|pre|q|samp|script|select|small|span|strong|style|sub|sup|table|tbody|td|textarea|tfoot|th|thead|title|tr|tt|ul|var)'; # loose list of HTML events ! $events = '(defanged_)?on(?:activate|afterupdate|beforeactivate|beforecopy|beforecut|beforedeactivate|beforeeditfocus|beforepaste|beforeupdate|blur|change|click|contextmenu|controlselect|copy|cut|dblclick|deactivate|errorupdate|focus|focusin|focusout|help|keydown|keypress|keyup|load|losecapture|mousedown|mouseenter|mouseleave|mousemove|mouseout|mouseover|mouseup|mousewheel|move|moveend|movestart|paste|propertychange|readystatechange|reset|resize|resizeend|resizestart|select|submit|timeerror|unload)'; my %tested_colors; *************** *** 80,86 **** elsif ($tag eq "p" || $tag eq "hr") { push @{$self->{html_text}}, "\n\n"; } ! elsif ($tag eq "img" && exists $attr->{alt} && $attr->{alt} ne "") { push @{$self->{html_text}}, " $attr->{alt} "; } } --- 80,86 ---- elsif ($tag eq "p" || $tag eq "hr") { push @{$self->{html_text}}, "\n\n"; } ! elsif (($tag eq "img" || $tag eq "defanged_img") && exists $attr->{alt} && $attr->{alt} ne "") { push @{$self->{html_text}}, " $attr->{alt} "; } } *************** *** 96,102 **** elsif ($tag =~ /^(?:a|area|link)$/) { push @{$self->{html_text}}, "URI:$uri " if $uri = $attr->{href}; } ! elsif ($tag =~ /^(?:img|frame|iframe|embed|script)$/) { push @{$self->{html_text}}, "URI:$uri " if $uri = $attr->{src}; } elsif ($tag eq "form") { --- 96,102 ---- elsif ($tag =~ /^(?:a|area|link)$/) { push @{$self->{html_text}}, "URI:$uri " if $uri = $attr->{href}; } ! elsif ($tag =~ /^(defanged_)?(?:img|frame|iframe|embed|script)$/) { push @{$self->{html_text}}, "URI:$uri " if $uri = $attr->{src}; } elsif ($tag eq "form") { *************** *** 364,370 **** if ($tag eq "script") { $self->{html}{javascript} = 1; } ! if ($tag =~ /^(?:a|body|div|input|form|td|layer|area|img)$/i) { for (keys %$attr) { if (/\b(?:$events)\b/io) { --- 364,370 ---- if ($tag eq "script") { $self->{html}{javascript} = 1; } ! if ($tag =~ /^(defanged_)?(?:a|body|div|input|form|td|layer|area|img)$/i) { for (keys %$attr) { if (/\b(?:$events)\b/io) { *************** *** 443,449 **** $self->{html}{big_font} = 1 if (lc($type) eq "pt" && $size > 12); } } ! if ($tag eq "img" && exists $attr->{width} && exists $attr->{height}) { my $width = 0; my $height = 0; my $area = 0; --- 443,449 ---- $self->{html}{big_font} = 1 if (lc($type) eq "pt" && $size > 12); } } ! if (($tag eq "img" || $tag eq "defanged_img") && exists $attr->{width} && exists $attr->{height}) { my $width = 0; my $height = 0; my $area = 0; *************** *** 610,616 **** sub html_image_only { my ($self, undef, $min, $max) = @_; ! return (exists $self->{html_inside}{'img'} && exists $self->{html}{non_space_len} && $self->{html}{non_space_len} > $min && $self->{html}{non_space_len} <= $max && --- 610,616 ---- sub html_image_only { my ($self, undef, $min, $max) = @_; ! return ((exists $self->{html_inside}{'img'} || exists $self->{html_inside}{'defanged_img'}) && exists $self->{html}{non_space_len} && $self->{html}{non_space_len} > $min && $self->{html}{non_space_len} <= $max &&