diff options
Diffstat (limited to 'WWW/Library/Implementation/SGML.c')
-rw-r--r-- | WWW/Library/Implementation/SGML.c | 10 |
1 files changed, 10 insertions, 0 deletions
diff --git a/WWW/Library/Implementation/SGML.c b/WWW/Library/Implementation/SGML.c index c2cadecd..6e64714f 100644 --- a/WWW/Library/Implementation/SGML.c +++ b/WWW/Library/Implementation/SGML.c @@ -792,6 +792,16 @@ PRIVATE void start_element ARGS1( new_tag->name); } } + if (context->element_stack && !valid && + (context->element_stack->tag->flags & Tgf_strict) && + !(valid = element_valid_within(new_tag, context->element_stack->tag, + direct_container))) { + if (TRACE) + fprintf(stderr, "SGML: Still open %s \t<- ignoring start <%s>\n", + context->element_stack->tag->name, + new_tag->name); + return; + } if (context->element_stack && !extra_action_taken && canclose_check == close_NO && !valid && (new_tag->flags & Tgf_mafse)) { |