/[suikacvs]/markup/html/whatpm/Whatpm/HTML.pm.src
Suika

Diff of /markup/html/whatpm/Whatpm/HTML.pm.src

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

revision 1.18 by wakaba, Sat Jun 23 12:21:01 2007 UTC revision 1.19 by wakaba, Sat Jun 23 13:05:16 2007 UTC
# Line 335  sub _get_next_token ($) { Line 335  sub _get_next_token ($) {
335              !!!next-input-character;              !!!next-input-character;
336              next TAGNAME;              next TAGNAME;
337            } else {            } else {
             !!!parse-error (type => 'unmatched end tag');  
338              $self->{next_input_character} = shift @next_char; # reconsume              $self->{next_input_character} = shift @next_char; # reconsume
339              !!!back-next-input-character (@next_char);              !!!back-next-input-character (@next_char);
340              $self->{state} = 'data';              $self->{state} = 'data';
# Line 355  sub _get_next_token ($) { Line 354  sub _get_next_token ($) {
354                  $self->{next_input_character} == 0x003E or # >                  $self->{next_input_character} == 0x003E or # >
355                  $self->{next_input_character} == 0x002F or # /                  $self->{next_input_character} == 0x002F or # /
356                  $self->{next_input_character} == -1) {                  $self->{next_input_character} == -1) {
           !!!parse-error (type => 'unmatched end tag');  
357            $self->{next_input_character} = shift @next_char; # reconsume            $self->{next_input_character} = shift @next_char; # reconsume
358            !!!back-next-input-character (@next_char);            !!!back-next-input-character (@next_char);
359            $self->{state} = 'data';            $self->{state} = 'data';
# Line 2721  sub _tree_construction_main ($) { Line 2719  sub _tree_construction_main ($) {
2719          return;          return;
2720        } elsif ({        } elsif ({
2721                  b => 1, big => 1, em => 1, font => 1, i => 1,                  b => 1, big => 1, em => 1, font => 1, i => 1,
2722                  nobr => 1, s => 1, small => 1, strile => 1,                  s => 1, small => 1, strile => 1,
2723                  strong => 1, tt => 1, u => 1,                  strong => 1, tt => 1, u => 1,
2724                 }->{$token->{tag_name}}) {                 }->{$token->{tag_name}}) {
2725          $reconstruct_active_formatting_elements->($insert_to_current);          $reconstruct_active_formatting_elements->($insert_to_current);
2726                    
2727          !!!insert-element-t ($token->{tag_name}, $token->{attributes});          !!!insert-element-t ($token->{tag_name}, $token->{attributes});
2728          push @$active_formatting_elements, $self->{open_elements}->[-1];          push @$active_formatting_elements, $self->{open_elements}->[-1];
2729            
2730            !!!next-token;
2731            return;
2732          } elsif ($token->{tag_name} eq 'nobr') {
2733            $reconstruct_active_formatting_elements->($insert_to_current);
2734    
2735            ## has a |nobr| element in scope
2736            INSCOPE: for (reverse 0..$#{$self->{open_elements}}) {
2737              my $node = $self->{open_elements}->[$_];
2738              if ($node->[1] eq 'nobr') {
2739                !!!back-token;
2740                $token = {type => 'end tag', tag_name => 'nobr'};
2741                return;
2742              } elsif ({
2743                        table => 1, caption => 1, td => 1, th => 1,
2744                        button => 1, marquee => 1, object => 1, html => 1,
2745                       }->{$node->[1]}) {
2746                last INSCOPE;
2747              }
2748            } # INSCOPE
2749            
2750            !!!insert-element-t ($token->{tag_name}, $token->{attributes});
2751            push @$active_formatting_elements, $self->{open_elements}->[-1];
2752                    
2753          !!!next-token;          !!!next-token;
2754          return;          return;

Legend:
Removed from v.1.18  
changed lines
  Added in v.1.19

[email protected]
ViewVC Help
Powered by ViewVC 1.1.24