about summary refs log tree commit diff stats
path: root/WWW/Library/Implementation/SGML.c
diff options
context:
space:
mode:
Diffstat (limited to 'WWW/Library/Implementation/SGML.c')
-rw-r--r--WWW/Library/Implementation/SGML.c10
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)) {
class='lines'>