/[suikacvs]/markup/html/whatpm/Whatpm/ContentChecker.pm
Suika

Diff of /markup/html/whatpm/Whatpm/ContentChecker.pm

Parent Directory Parent Directory | Revision Log Revision Log | View Patch Patch

revision 1.62 by wakaba, Sat Feb 23 14:37:09 2008 UTC revision 1.63 by wakaba, Sat Feb 23 15:24:49 2008 UTC
# Line 376  next unless $code;## TODO: temp. Line 376  next unless $code;## TODO: temp.
376            $Namespace->{$el_nsuri}->{loaded} = 1;            $Namespace->{$el_nsuri}->{loaded} = 1;
377          }          }
378        }        }
379    
380          my $element_state = {};
381        my $eldef = $Element->{$el_nsuri}->{$el_ln} ||        my $eldef = $Element->{$el_nsuri}->{$el_ln} ||
382            $Element->{$el_nsuri}->{''} ||            $Element->{$el_nsuri}->{''} ||
383            $ElementDefault;            $ElementDefault;
384        my $content_def = $item->{transparent}        my $content_def = $item->{transparent}
385            ? $item->{parent_def} || $eldef : $eldef;            ? $item->{parent_def} || $eldef : $eldef;
386          my $content_state = $item->{transparent}
387              ? $item->{parent_state} || $element_state : $element_state;
388    
       my $element_state = {};  
389        my @new_item;        my @new_item;
390        push @new_item, [$eldef->{check_start}, $self, $item, $element_state];        push @new_item, [$eldef->{check_start}, $self, $item, $element_state];
391        push @new_item, [$eldef->{check_attrs}, $self, $item, $element_state];        push @new_item, [$eldef->{check_attrs}, $self, $item, $element_state];
# Line 401  next unless $code;## TODO: temp. Line 404  next unless $code;## TODO: temp.
404                     $child_nsuri eq $HTML_NS and $child_ln eq 'noscript')) {                     $child_nsuri eq $HTML_NS and $child_ln eq 'noscript')) {
405              push @new_item, [$content_def->{check_child_element},              push @new_item, [$content_def->{check_child_element},
406                               $self, $item, $child,                               $self, $item, $child,
407                               $child_nsuri, $child_ln, 1, $element_state];                               $child_nsuri, $child_ln, 1, $content_state];
408              push @new_item, {type => 'element', node => $child,              push @new_item, {type => 'element', node => $child,
409                               parent_state => $element_state,                               parent_state => $element_state,
410                               parent_def => $content_def,                               parent_def => $content_def,
# Line 415  next unless $code;## TODO: temp. Line 418  next unless $code;## TODO: temp.
418                    #                    #
419                  } else {                  } else {
420                    $content_def = $item->{parent_def} || $content_def;                    $content_def = $item->{parent_def} || $content_def;
421                      $content_state = $item->{parent_state} || $content_state;
422                  }                  }
423                } elsif ($el_ln eq 'video' or $el_ln eq 'audio') {                } elsif ($el_ln eq 'video' or $el_ln eq 'audio') {
424                  if ($self->{plus_elements}->{$child_nsuri}->{$child_ln}) {                  if ($self->{plus_elements}->{$child_nsuri}->{$child_ln}) {
# Line 423  next unless $code;## TODO: temp. Line 427  next unless $code;## TODO: temp.
427                    $element_state->{has_source} = 1;                    $element_state->{has_source} = 1;
428                  } else {                  } else {
429                    $content_def = $item->{parent_def} || $content_def;                    $content_def = $item->{parent_def} || $content_def;
430                      $content_state = $item->{parent_state} || $content_state;
431                  }                  }
432                }                }
433              }              }
434    
435              push @new_item, [$content_def->{check_child_element},              push @new_item, [$content_def->{check_child_element},
436                               $self, $item, $child,                               $self, $item, $child,
437                               $child_nsuri, $child_ln, 0, $element_state];                               $child_nsuri, $child_ln, 0, $content_state];
438              push @new_item, {type => 'element', node => $child,              push @new_item, {type => 'element', node => $child,
439                               parent_def => $eldef,                               parent_def => $eldef,
440                               parent_state => $element_state};                               parent_state => $element_state};
# Line 443  next unless $code;## TODO: temp. Line 448  next unless $code;## TODO: temp.
448            my $has_significant = ($child->data =~ /[^\x09-\x0D\x20]/);            my $has_significant = ($child->data =~ /[^\x09-\x0D\x20]/);
449            push @new_item, [$content_def->{check_child_text},            push @new_item, [$content_def->{check_child_text},
450                             $self, $item, $child, $has_significant,                             $self, $item, $child, $has_significant,
451                             $element_state];                             $content_state];
452            $element_state->{has_significant} ||= $has_significant;            $element_state->{has_significant} ||= $has_significant;
453            if ($has_significant and            if ($has_significant and
454                $HTMLSemiTransparentElements->{$el_nsuri}->{$el_ln}) {                $HTMLSemiTransparentElements->{$el_nsuri}->{$el_ln}) {

Legend:
Removed from v.1.62  
changed lines
  Added in v.1.63

admin@suikawiki.org
ViewVC Help
Powered by ViewVC 1.1.24