diff --git a/mozilla/htmlparser/src/CNavDTD.cpp b/mozilla/htmlparser/src/CNavDTD.cpp
index 91aba403710..1c60833745f 100644
--- a/mozilla/htmlparser/src/CNavDTD.cpp
+++ b/mozilla/htmlparser/src/CNavDTD.cpp
@@ -1032,7 +1032,9 @@ nsresult CNavDTD::HandleDefaultStartToken(CToken* aToken,eHTMLTags aChildTag,nsI
// compatible we should not attempt to close the tags above it, for
// the contents inside the table might get thrown out of the table.
// The safest thing to do is to discard this tag.
- return result;
+ if(!gHTMLElements[aChildTag].CanAutoCloseTag(theParentTag,eToken_start)) {
+ return result;
+ }
}
CloseContainersTo(theIndex,theParentTag,PR_TRUE);
}//if
@@ -1478,14 +1480,15 @@ nsresult CNavDTD::HandleEndToken(CToken* aToken) {
UpdateStyleStackForCloseTag(theChildTag,theChildTag);
}
else {
- if(kNotFound==GetIndexOfChildOrSynonym(mBodyContext->mStack,theChildTag)) {
+ if((kNotFound==GetIndexOfChildOrSynonym(mBodyContext->mStack,theChildTag)) ||
+ (!gHTMLElements[theChildTag].CanAutoCloseTag(mBodyContext->Last(),eToken_end))) {
UpdateStyleStackForCloseTag(theChildTag,theChildTag);
if(gHTMLElements[theChildTag].IsMemberOf(kBlockEntity)) {
// Oh boy!! we found a "stray" block entity. Nav4.x and IE introduce line break in
// such cases. So, let's simulate that effect for compatibility.
// Ex.
HelloThere
CHTMLToken* theToken = (CHTMLToken*)gRecycler->CreateTokenOfType(eToken_start,theChildTag);
- result=HandleStartToken(theToken);
+ result=HandleToken(theToken,mParser);
}
else return result;
}
diff --git a/mozilla/htmlparser/src/nsElementTable.cpp b/mozilla/htmlparser/src/nsElementTable.cpp
index 9d466e6f8e1..5bfb5b893c1 100644
--- a/mozilla/htmlparser/src/nsElementTable.cpp
+++ b/mozilla/htmlparser/src/nsElementTable.cpp
@@ -204,6 +204,8 @@ CTagList gNoframeRoot(2,0,eHTMLTag_body,eHTMLTag_frameset);
CTagList gAutoClose(2,0,eHTMLTag_body,eHTMLTag_td);
CTagList gBodyAutoClose(1,0,eHTMLTag_head);
CTagList gTBodyAutoClose(3,0,eHTMLTag_thead,eHTMLTag_tfoot,eHTMLTag_tbody);
+CTagList gTHeadAutoClose(2,0,eHTMLTag_thead,eHTMLTag_colgroup);
+CTagList gTFootAutoClose(2,0,eHTMLTag_tfoot,eHTMLTag_colgroup);
CTagList gCaptionAutoClose(1,0,eHTMLTag_tbody);
CTagList gLIAutoClose(2,0,eHTMLTag_p,eHTMLTag_li);
CTagList gPAutoClose(2,0,eHTMLTag_p,eHTMLTag_li);
@@ -219,6 +221,11 @@ CTagList gTDCloseTags(2,0,eHTMLTag_td,eHTMLTag_th);
CTagList gDTCloseTags(3,0,eHTMLTag_dt,eHTMLTag_dd,eHTMLTag_p);
CTagList gULCloseTags(1,0,eHTMLTag_li);
+//*********************************************************************************************
+// The following tag lists are used to define the non-autoclose properties of the html elements...
+//*********************************************************************************************
+
+CTagList gDontAutoClose(1,0,eHTMLTag_td);
//*********************************************************************************************
//Lastly, bind tags with their rules, their special parents and special kids.
@@ -237,7 +244,7 @@ nsHTMLElement gHTMLElements[] = {
{ /*tag*/ eHTMLTag_unknown,
/*req-parent excl-parent*/ eHTMLTag_unknown,eHTMLTag_unknown,
/*rootnodes,endrootnodes*/ &gRootTags,&gRootTags,
- /*autoclose starttags and endtags*/ 0,0,0,
+ /*autoclose starttags and endtags*/ 0,0,0,0,
/*parent,incl,exclgroups*/ kNone, kNone, kNone,
/*special props, prop-range*/ kOmitWS, 10,
/*special parents,kids,skip*/ 0,&gUnknownKids,eHTMLTag_unknown},
@@ -252,7 +259,7 @@ nsHTMLElement gHTMLElements[] = {
{ /*tag*/ eHTMLTag_a,
/*req-parent excl-parent*/ eHTMLTag_unknown,eHTMLTag_unknown,
/*rootnodes,endrootnodes*/ &gRootTags,&gRootTags,
- /*autoclose starttags and endtags*/ 0,0,0,
+ /*autoclose starttags and endtags*/ 0,0,0,0,
/*parent,incl,exclgroups*/ kSpecial, SPECIALTYPE|kBlockEntity, kNone,
/*special props, prop-range*/ 0,kDefaultPropRange,
/*special parents,kids,skip*/ 0,0,eHTMLTag_unknown},
@@ -260,7 +267,7 @@ nsHTMLElement gHTMLElements[] = {
{ /*tag*/ eHTMLTag_abbr,
/*req-parent excl-parent*/ eHTMLTag_unknown,eHTMLTag_unknown,
/*rootnodes,endrootnodes*/ &gRootTags,&gRootTags,
- /*autoclose starttags and endtags*/ 0,0,0,
+ /*autoclose starttags and endtags*/ 0,0,0,0,
/*parent,incl,exclgroups*/ kPhrase, (kSelf|kFlowEntity), kNone,
/*special props, prop-range*/ 0,kDefaultPropRange,
/*special parents,kids,skip*/ 0,0,eHTMLTag_unknown},
@@ -268,7 +275,7 @@ nsHTMLElement gHTMLElements[] = {
{ /*tag*/ eHTMLTag_acronym,
/*req-parent excl-parent*/ eHTMLTag_unknown,eHTMLTag_unknown,
/*rootnodes,endrootnodes*/ &gRootTags,&gRootTags,
- /*autoclose starttags and endtags*/ 0,0,0,
+ /*autoclose starttags and endtags*/ 0,0,0,0,
/*parent,incl,exclgroups*/ kPhrase, (kFlowEntity|kSelf), kNone,
/*special props, prop-range*/ 0,kDefaultPropRange,
/*special parents,kids,skip*/ 0,0,eHTMLTag_unknown},
@@ -276,7 +283,7 @@ nsHTMLElement gHTMLElements[] = {
{ /*tag*/ eHTMLTag_address,
/*req-parent excl-parent*/ eHTMLTag_unknown,eHTMLTag_unknown,
/*rootnodes,endrootnodes*/ &gRootTags,&gRootTags,
- /*autoclose starttags and endtags*/ 0,0,0,
+ /*autoclose starttags and endtags*/ 0,0,0,0,
/*parent,incl,exclgroups*/ kBlock, kInlineEntity, kNone,
/*special props, prop-range*/ 0,kDefaultPropRange,
/*special parents,kids,skip*/ 0,&gAddressKids,eHTMLTag_unknown},
@@ -284,7 +291,7 @@ nsHTMLElement gHTMLElements[] = {
{ /*tag*/ eHTMLTag_applet,
/*req-parent excl-parent*/ eHTMLTag_unknown,eHTMLTag_unknown,
/*rootnodes,endrootnodes*/ &gRootTags,&gRootTags,
- /*autoclose starttags and endtags*/ 0,0,0,
+ /*autoclose starttags and endtags*/ 0,0,0,0,
/*parent,incl,exclgroups*/ kSpecial, (kSelf|SPECIALTYPE|kFlowEntity), kNone,
/*special props, prop-range*/ 0,kDefaultPropRange,
/*special parents,kids,skip*/ 0,&gContainsParam,eHTMLTag_unknown},
@@ -292,7 +299,7 @@ nsHTMLElement gHTMLElements[] = {
{ /*tag*/ eHTMLTag_area,
/*req-parent excl-parent*/ eHTMLTag_unknown,eHTMLTag_unknown,
/*rootnodes,endrootnodes*/ &gAreaParent,&gRootTags,
- /*autoclose starttags and endtags*/ 0,0,0,
+ /*autoclose starttags and endtags*/ 0,0,0,0,
/*parent,incl,exclgroups*/ kNone, kInlineEntity, kSelf,
/*special props, prop-range*/ 0,kDefaultPropRange,
/*special parents,kids,skip*/ &gAreaParent,0,eHTMLTag_unknown},
@@ -300,7 +307,7 @@ nsHTMLElement gHTMLElements[] = {
{ /*tag*/ eHTMLTag_b,
/*req-parent excl-parent*/ eHTMLTag_unknown,eHTMLTag_unknown,
/*rootnodes,endrootnodes*/ &gRootTags,&gRootTags,
- /*autoclose starttags and endtags*/ 0,0,0,
+ /*autoclose starttags and endtags*/ 0,0,0,0,
/*parent,incl,exclgroups*/ kFontStyle, (FSTYPE|kSelf), kNone,
/*special props, prop-range*/ 0,kDefaultPropRange,
/*special parents,kids,skip*/ 0,0,eHTMLTag_unknown},
@@ -308,7 +315,7 @@ nsHTMLElement gHTMLElements[] = {
{ /*tag*/ eHTMLTag_base,
/*req-parent excl-parent*/ eHTMLTag_unknown,eHTMLTag_unknown,
/*rootnodes,endrootnodes*/ &gInHead, &gRootTags,
- /*autoclose starttags and endtags*/ 0,0,0,
+ /*autoclose starttags and endtags*/ 0,0,0,0,
/*parent,incl,exclgroups*/ kNone, kNone, kNone,
/*special props, prop-range*/ 0, kNoPropRange,
/*special parents,kids,skip*/ &gInHead,0,eHTMLTag_unknown},
@@ -316,7 +323,7 @@ nsHTMLElement gHTMLElements[] = {
{ /*tag*/ eHTMLTag_basefont,
/*req-parent excl-parent*/ eHTMLTag_unknown,eHTMLTag_unknown,
/*rootnodes,endrootnodes*/ &gRootTags,&gRootTags,
- /*autoclose starttags and endtags*/ 0,0,0,
+ /*autoclose starttags and endtags*/ 0,0,0,0,
/*parent,incl,exclgroups*/ kSpecial, SPECIALTYPE, kNone,
/*special props, prop-range*/ 0, kNoPropRange,
/*special parents,kids,skip*/ 0,0,eHTMLTag_unknown},
@@ -324,7 +331,7 @@ nsHTMLElement gHTMLElements[] = {
{ /*tag*/ eHTMLTag_bdo,
/*req-parent excl-parent*/ eHTMLTag_unknown,eHTMLTag_unknown,
/*rootnodes,endrootnodes*/ &gRootTags,&gRootTags,
- /*autoclose starttags and endtags*/ 0,0,0,
+ /*autoclose starttags and endtags*/ 0,0,0,0,
/*parent,incl,exclgroups*/ kSpecial, (kSelf|SPECIALTYPE), kNone,
/*special props, prop-range*/ 0,kDefaultPropRange,
/*special parents,kids,skip*/ 0,0,eHTMLTag_unknown},
@@ -332,7 +339,7 @@ nsHTMLElement gHTMLElements[] = {
{ /*tag*/ eHTMLTag_bgsound,
/*req-parent excl-parent*/ eHTMLTag_unknown,eHTMLTag_unknown,
/*rootnodes,endrootnodes*/ &gRootTags,&gRootTags,
- /*autoclose starttags and endtags*/ 0,0,0,
+ /*autoclose starttags and endtags*/ 0,0,0,0,
/*parent,incl,exclgroups*/ kExtensions, kNone, kNone,
/*special props, prop-range*/ 0,kNoPropRange,
/*special parents,kids,skip*/ 0,0,eHTMLTag_unknown},
@@ -340,7 +347,7 @@ nsHTMLElement gHTMLElements[] = {
{ /*tag*/ eHTMLTag_big,
/*req-parent excl-parent*/ eHTMLTag_unknown,eHTMLTag_unknown,
/*rootnodes,endrootnodes*/ &gRootTags,&gRootTags,
- /*autoclose starttags and endtags*/ 0,0,0,
+ /*autoclose starttags and endtags*/ 0,0,0,0,
/*parent,incl,exclgroups*/ kFontStyle, (FSTYPE|kSelf), kNone,
/*special props, prop-range*/ 0,kDefaultPropRange,
/*special parents,kids,skip*/ 0,0,eHTMLTag_unknown},
@@ -348,7 +355,7 @@ nsHTMLElement gHTMLElements[] = {
{ /*tag*/ eHTMLTag_blink,
/*req-parent excl-parent*/ eHTMLTag_unknown,eHTMLTag_unknown,
/*rootnodes,endrootnodes*/ &gRootTags,&gRootTags,
- /*autoclose starttags and endtags*/ 0,0,0,
+ /*autoclose starttags and endtags*/ 0,0,0,0,
/*parent,incl,exclgroups*/ kFontStyle, (kFlowEntity|kSelf), kNone,
/*special props, prop-range*/ 0,kDefaultPropRange,
/*special parents,kids,skip*/ 0,0,eHTMLTag_unknown},
@@ -356,7 +363,7 @@ nsHTMLElement gHTMLElements[] = {
{ /*tag*/ eHTMLTag_blockquote,
/*req-parent excl-parent*/ eHTMLTag_unknown,eHTMLTag_unknown,
/*rootnodes,endrootnodes*/ &gRootTags,&gRootTags,
- /*autoclose starttags and endtags*/ 0,0,0,
+ /*autoclose starttags and endtags*/ 0,0,0,0,
/*parent,incl,exclgroups*/ kBlock, (kSelf|kFlowEntity), kNone,
/*special props, prop-range*/ 0,kDefaultPropRange,
/*special parents,kids,skip*/ 0,0,eHTMLTag_unknown},
@@ -364,7 +371,7 @@ nsHTMLElement gHTMLElements[] = {
{ /*tag*/ eHTMLTag_body,
/*req-parent excl-parent*/ eHTMLTag_unknown,eHTMLTag_frameset,
/*rootnodes,endrootnodes*/ &gInHTML, &gInHTML,
- /*autoclose starttags and endtags*/ &gBodyAutoClose,0,0,
+ /*autoclose starttags and endtags*/ &gBodyAutoClose,0,0,0,
/*parent,incl,exclgroups*/ kHTMLContent,(kFlowEntity|kSelf), kNone,
/*special props, prop-range*/ kOmitEndTag, kBodyPropRange,
/*special parents,kids,skip*/ &gInNoframes,&gBodyKids,eHTMLTag_unknown},
@@ -372,7 +379,7 @@ nsHTMLElement gHTMLElements[] = {
{ /*tag*/ eHTMLTag_br,
/*req-parent excl-parent*/ eHTMLTag_unknown,eHTMLTag_unknown,
/*rootnodes,endrootnodes*/ &gRootTags,&gRootTags,
- /*autoclose starttags and endtags*/ 0,0,0,
+ /*autoclose starttags and endtags*/ 0,0,0,0,
/*parent,incl,exclgroups*/ kSpecial, kNone, kNone,
/*special props, prop-range*/ 0, kNoPropRange,
/*special parents,kids,skip*/ 0,0,eHTMLTag_unknown},
@@ -380,7 +387,7 @@ nsHTMLElement gHTMLElements[] = {
{ /*tag*/ eHTMLTag_button,
/*req-parent excl-parent*/ eHTMLTag_unknown,eHTMLTag_unknown,
/*rootnodes,endrootnodes*/ &gRootTags,&gRootTags,
- /*autoclose starttags and endtags*/ 0,0,0,
+ /*autoclose starttags and endtags*/ 0,0,0,0,
/*parent,incl,exclgroups*/ kFormControl, kFlowEntity, kFormControl,
/*special props, prop-range*/ 0,kDefaultPropRange,
/*special parents,kids,skip*/ 0,&gButtonKids,eHTMLTag_unknown},
@@ -388,7 +395,7 @@ nsHTMLElement gHTMLElements[] = {
{ /*tag*/ eHTMLTag_caption,
/*req-parent excl-parent*/ eHTMLTag_table,eHTMLTag_unknown,
/*rootnodes,endrootnodes*/ &gInTable,&gInTable,
- /*autoclose starttags and endtags*/ &gCaptionAutoClose,0,0,
+ /*autoclose starttags and endtags*/ &gCaptionAutoClose,0,0,0,
/*parent,incl,exclgroups*/ kNone, kFlowEntity, kSelf,
/*special props, prop-range*/ kNoPropagate,kDefaultPropRange,
/*special parents,kids,skip*/ &gInTable,0,eHTMLTag_unknown},
@@ -396,7 +403,7 @@ nsHTMLElement gHTMLElements[] = {
{ /*tag*/ eHTMLTag_center,
/*req-parent excl-parent*/ eHTMLTag_unknown,eHTMLTag_unknown,
/*rootnodes,endrootnodes*/ &gRootTags,&gRootTags,
- /*autoclose starttags and endtags*/ 0,0,0,
+ /*autoclose starttags and endtags*/ 0,0,0,0,
/*parent,incl,exclgroups*/ kBlock, (kInlineEntity|kSelf|kFlowEntity), kNone,
/*special props, prop-range*/ 0,kDefaultPropRange,
/*special parents,kids,skip*/ 0,0,eHTMLTag_unknown},
@@ -404,7 +411,7 @@ nsHTMLElement gHTMLElements[] = {
{ /*tag*/ eHTMLTag_cite,
/*req-parent excl-parent*/ eHTMLTag_unknown,eHTMLTag_unknown,
/*rootnodes,endrootnodes*/ &gRootTags,&gRootTags,
- /*autoclose starttags and endtags*/ 0,0,0,
+ /*autoclose starttags and endtags*/ 0,0,0,0,
/*parent,incl,exclgroups*/ kPhrase, (kFlowEntity|kSelf), kNone,
/*special props, prop-range*/ 0,kDefaultPropRange,
/*special parents,kids,skip*/ 0,0,eHTMLTag_unknown},
@@ -412,7 +419,7 @@ nsHTMLElement gHTMLElements[] = {
{ /*tag*/ eHTMLTag_code,
/*req-parent excl-parent*/ eHTMLTag_unknown,eHTMLTag_unknown,
/*rootnodes,endrootnodes*/ &gRootTags,&gRootTags,
- /*autoclose starttags and endtags*/ 0,0,0,
+ /*autoclose starttags and endtags*/ 0,0,0,0,
/*parent,incl,exclgroups*/ kPhrase, (kSelf|kFlowEntity), kNone,
/*special props, prop-range*/ 0,kDefaultPropRange,
/*special parents,kids,skip*/ 0,0,eHTMLTag_unknown},
@@ -420,7 +427,7 @@ nsHTMLElement gHTMLElements[] = {
{ /*tag*/ eHTMLTag_col,
/*req-parent excl-parent*/ eHTMLTag_table,eHTMLTag_unknown,
/*rootnodes,endrootnodes*/ &gColParents,&gColParents,
- /*autoclose starttags and endtags*/ 0,0,0,
+ /*autoclose starttags and endtags*/ 0,0,0,0,
/*parent,incl,exclgroups*/ kNone, kNone, kNone,
/*special props, prop-range*/ kNoPropagate|kOmitWS,kDefaultPropRange,
/*special parents,kids,skip*/ &gColParents,0,eHTMLTag_unknown},
@@ -428,7 +435,7 @@ nsHTMLElement gHTMLElements[] = {
{ /*tag*/ eHTMLTag_colgroup,
/*req-parent excl-parent*/ eHTMLTag_table,eHTMLTag_unknown,
/*rootnodes,endrootnodes*/ &gInTable,&gInTable,
- /*autoclose starttags and endtags*/ 0,0,0,
+ /*autoclose starttags and endtags*/ 0,0,0,0,
/*parent,incl,exclgroups*/ kNone, kNone, kNone,
/*special props, prop-range*/ kOmitWS|kNoPropagate,kDefaultPropRange,
/*special parents,kids,skip*/ &gInTable,&gColgroupKids,eHTMLTag_unknown},
@@ -436,7 +443,7 @@ nsHTMLElement gHTMLElements[] = {
{ /*tag*/ eHTMLTag_dd,
/*req-parent excl-parent*/ eHTMLTag_unknown,eHTMLTag_unknown,
/*rootnodes,endrootnodes*/ &gRootTags, &gRootTags,
- /*autoclose starttags and endtags*/ &gDTCloseTags,0,0,
+ /*autoclose starttags and endtags*/ &gDTCloseTags,0,0,0,
/*parent,incl,exclgroups*/ kInlineEntity, kFlowEntity, kNone,
/*special props, prop-range*/ kNoPropagate|kMustCloseSelf,kDefaultPropRange,
/*special parents,kids,skip*/ &gInDL,0,eHTMLTag_unknown},
@@ -444,7 +451,7 @@ nsHTMLElement gHTMLElements[] = {
{ /*tag*/ eHTMLTag_del,
/*req-parent excl-parent*/ eHTMLTag_unknown,eHTMLTag_unknown,
/*rootnodes,endrootnodes*/ &gRootTags,&gRootTags,
- /*autoclose starttags and endtags*/ 0,0,0,
+ /*autoclose starttags and endtags*/ 0,0,0,0,
/*parent,incl,exclgroups*/ kFlowEntity, (kSelf|kFlowEntity), kNone,
/*special props, prop-range*/ 0,kDefaultPropRange,
/*special parents,kids,skip*/ &gInBody,0,eHTMLTag_unknown},
@@ -452,7 +459,7 @@ nsHTMLElement gHTMLElements[] = {
{ /*tag*/ eHTMLTag_dfn,
/*req-parent excl-parent*/ eHTMLTag_unknown,eHTMLTag_unknown,
/*rootnodes,endrootnodes*/ &gRootTags,&gRootTags,
- /*autoclose starttags and endtags*/ 0,0,0,
+ /*autoclose starttags and endtags*/ 0,0,0,0,
/*parent,incl,exclgroups*/ kPhrase, (kSelf|kFlowEntity), kNone,
/*special props, prop-range*/ 0,kDefaultPropRange,
/*special parents,kids,skip*/ 0,0,eHTMLTag_unknown},
@@ -460,7 +467,7 @@ nsHTMLElement gHTMLElements[] = {
{ /*tag*/ eHTMLTag_dir,
/*req-parent excl-parent*/ eHTMLTag_unknown,eHTMLTag_unknown,
/*rootnodes,endrootnodes*/ &gRootTags,&gRootTags,
- /*autoclose starttags and endtags*/ 0,0,0,
+ /*autoclose starttags and endtags*/ 0,0,0,0,
/*parent,incl,exclgroups*/ kList, (kSelf|kFlowEntity), kNone,
/*special props, prop-range*/ 0,kDefaultPropRange,
/*special parents,kids,skip*/ 0,&gULKids,eHTMLTag_unknown},
@@ -468,7 +475,7 @@ nsHTMLElement gHTMLElements[] = {
{ /*tag*/ eHTMLTag_div,
/*req-parent excl-parent*/ eHTMLTag_unknown,eHTMLTag_unknown,
/*rootnodes,endrootnodes*/ &gRootTags,&gRootTags,
- /*autoclose starttags and endtags*/ &gDivAutoClose,0,0,
+ /*autoclose starttags and endtags*/ &gDivAutoClose,0,0,0,
/*parent,incl,exclgroups*/ kBlock, (kSelf|kFlowEntity), kNone,
/*special props, prop-range*/ 0,kDefaultPropRange,
/*special parents,kids,skip*/ 0,0,eHTMLTag_unknown},
@@ -476,7 +483,7 @@ nsHTMLElement gHTMLElements[] = {
{ /*tag*/ eHTMLTag_dl,
/*req-parent excl-parent*/ eHTMLTag_unknown,eHTMLTag_unknown,
/*rootnodes,endrootnodes*/ &gRootTags,&gRootTags,
- /*autoclose starttags and endtags*/ 0,0,0,
+ /*autoclose starttags and endtags*/ 0,0,0,0,
/*parent,incl,exclgroups*/ kBlock, kSelf|kFlowEntity, kNone,
/*special props, prop-range*/ kOmitWS, kNoPropRange,
/*special parents,kids,skip*/ 0,&gDLKids,eHTMLTag_unknown},
@@ -484,7 +491,7 @@ nsHTMLElement gHTMLElements[] = {
{ /*tag*/ eHTMLTag_dt,
/*req-parent excl-parent*/ eHTMLTag_unknown,eHTMLTag_unknown,
/*rootnodes,endrootnodes*/ &gRootTags, &gRootTags,
- /*autoclose starttags and endtags*/ &gDTCloseTags,0,0,
+ /*autoclose starttags and endtags*/ &gDTCloseTags,0,0,0,
/*parent,incl,exclgroups*/ kInlineEntity, kFlowEntity, kNone,
/*special props, prop-range*/ (kNoPropagate|kMustCloseSelf),kDefaultPropRange,
/*special parents,kids,skip*/ &gInDL,0,eHTMLTag_unknown},
@@ -492,7 +499,7 @@ nsHTMLElement gHTMLElements[] = {
{ /*tag*/ eHTMLTag_em,
/*req-parent excl-parent*/ eHTMLTag_unknown,eHTMLTag_unknown,
/*rootnodes,endrootnodes*/ &gRootTags,&gRootTags,
- /*autoclose starttags and endtags*/ 0,0,0,
+ /*autoclose starttags and endtags*/ 0,0,0,0,
/*parent,incl,exclgroups*/ kPhrase, (kSelf|kFlowEntity), kNone,
/*special props, prop-range*/ 0,kDefaultPropRange,
/*special parents,kids,skip*/ 0,0,eHTMLTag_unknown},
@@ -500,7 +507,7 @@ nsHTMLElement gHTMLElements[] = {
{ /*tag*/ eHTMLTag_embed,
/*req-parent excl-parent*/ eHTMLTag_unknown,eHTMLTag_unknown,
/*rootnodes,endrootnodes*/ &gRootTags,&gRootTags,
- /*autoclose starttags and endtags*/ 0,0,0,
+ /*autoclose starttags and endtags*/ 0,0,0,0,
/*parent,incl,exclgroups*/ kBlockEntity, kNone, kNone,
/*special props, prop-range*/ 0,kDefaultPropRange,
/*special parents,kids,skip*/ 0,&gContainsParam,eHTMLTag_unknown},
@@ -508,7 +515,7 @@ nsHTMLElement gHTMLElements[] = {
{ /*tag*/ eHTMLTag_endnote,
/*req-parent excl-parent*/ eHTMLTag_unknown,eHTMLTag_unknown,
/*rootnodes,endrootnodes*/ &gRootTags,&gRootTags,
- /*autoclose starttags and endtags*/ 0,0,0,
+ /*autoclose starttags and endtags*/ 0,0,0,0,
/*parent,incl,exclgroups*/ kFlowEntity, kFlowEntity, kNone,
/*special props, prop-range*/ 0,kDefaultPropRange,
/*special parents,kids,skip*/ 0,0,eHTMLTag_unknown},
@@ -516,7 +523,7 @@ nsHTMLElement gHTMLElements[] = {
{ /*tag*/ eHTMLTag_fieldset,
/*requiredAncestor*/ eHTMLTag_form,eHTMLTag_unknown,
/*rootnodes,endrootnodes*/ &gRootTags,&gRootTags,
- /*autoclose starttags and endtags*/ 0,0,0,
+ /*autoclose starttags and endtags*/ 0,0,0,0,
/*parent,incl,exclgroups*/ kBlock, (kSelf|kFlowEntity), kNone,
/*special props, prop-range*/ kNoPropagate|kOmitWS,kDefaultPropRange,
/*special parents,kids,skip*/ 0,&gFieldsetKids,eHTMLTag_unknown},
@@ -524,7 +531,7 @@ nsHTMLElement gHTMLElements[] = {
{ /*tag*/ eHTMLTag_font,
/*req-parent excl-parent*/ eHTMLTag_unknown,eHTMLTag_unknown,
/*rootnodes,endrootnodes*/ &gRootTags,&gRootTags,
- /*autoclose starttags and endtags*/ 0,0,0,
+ /*autoclose starttags and endtags*/ 0,0,0,0,
/*parent,incl,exclgroups*/ kSpecial, (kSelf|SPECIALTYPE), kNone,
/*special props, prop-range*/ 0,kDefaultPropRange,
/*special parents,kids,skip*/ 0,&gFontKids,eHTMLTag_unknown},
@@ -532,7 +539,7 @@ nsHTMLElement gHTMLElements[] = {
{ /*tag*/ eHTMLTag_form,
/*req-parent excl-parent*/ eHTMLTag_unknown,eHTMLTag_unknown,
/*rootnodes,endrootnodes*/ &gRootTags,&gRootTags,
- /*autoclose starttags and endtags*/ 0,0,0,
+ /*autoclose starttags and endtags*/ 0,0,0,0,
/*parent,incl,exclgroups*/ kBlock, kFlowEntity, kNone,
/*special props, prop-range*/ kNoStyleLeaksIn, kNoPropRange,
/*special parents,kids,skip*/ 0,&gFormKids,eHTMLTag_unknown},
@@ -540,7 +547,7 @@ nsHTMLElement gHTMLElements[] = {
{ /*tag*/ eHTMLTag_frame,
/*req-parent excl-parent*/ eHTMLTag_frameset,eHTMLTag_unknown,
/*rootnodes,endrootnodes*/ &gInFrameset,&gInFrameset,
- /*autoclose starttags and endtags*/ 0,0,0,
+ /*autoclose starttags and endtags*/ 0,0,0,0,
/*parent,incl,exclgroups*/ kNone, kNone, kNone,
/*special props, prop-range*/ kNoPropagate|kNoStyleLeaksIn, kNoPropRange,
/*special parents,kids,skip*/ &gInFrameset,0,eHTMLTag_unknown},
@@ -548,7 +555,7 @@ nsHTMLElement gHTMLElements[] = {
{ /*tag*/ eHTMLTag_frameset,
/*req-parent excl-parent*/ eHTMLTag_unknown,eHTMLTag_body,
/*rootnodes,endrootnodes*/ &gFramesetParents,&gInHTML,
- /*autoclose starttags and endtags*/ 0,0,0,
+ /*autoclose starttags and endtags*/ 0,0,0,0,
/*parent,incl,exclgroups*/ kHTMLContent, kSelf, kAllTags,
/*special props, prop-range*/ kOmitWS|kNoPropagate|kNoStyleLeaksIn, kNoPropRange,
/*special parents,kids,skip*/ &gInHTML,&gFramesetKids,eHTMLTag_unknown},
@@ -557,7 +564,7 @@ nsHTMLElement gHTMLElements[] = {
{ /*tag*/ eHTMLTag_h1,
/*req-parent excl-parent*/ eHTMLTag_unknown,eHTMLTag_unknown,
/*rootnodes,endrootnodes*/ &gRootTags,&gRootTags,
- /*autoclose starttags and endtags*/ &gHeadingTags, &gHeadingTags, &gHeadingTags,
+ /*autoclose starttags and endtags*/ &gHeadingTags, &gHeadingTags, &gHeadingTags,0,
/*parent,incl,exclgroups*/ kHeading, kFlowEntity, kNone,
/*special props, prop-range*/ 0,kDefaultPropRange,
/*special parents,kids,skip*/ 0,0,eHTMLTag_unknown},
@@ -565,7 +572,7 @@ nsHTMLElement gHTMLElements[] = {
{ /*tag*/ eHTMLTag_h2,
/*req-parent excl-parent*/ eHTMLTag_unknown,eHTMLTag_unknown,
/*rootnodes,endrootnodes*/ &gRootTags,&gRootTags,
- /*autoclose starttags and endtags*/ &gHeadingTags, &gHeadingTags, &gHeadingTags,
+ /*autoclose starttags and endtags*/ &gHeadingTags, &gHeadingTags, &gHeadingTags,0,
/*parent,incl,exclgroups*/ kHeading, kFlowEntity, kNone,
/*special props, prop-range*/ 0,kDefaultPropRange,
/*special parents,kids,skip*/ 0,0,eHTMLTag_unknown},
@@ -573,7 +580,7 @@ nsHTMLElement gHTMLElements[] = {
{ /*tag*/ eHTMLTag_h3,
/*req-parent excl-parent*/ eHTMLTag_unknown,eHTMLTag_unknown,
/*rootnodes,endrootnodes*/ &gRootTags,&gRootTags,
- /*autoclose starttags and endtags*/ &gHeadingTags, &gHeadingTags, &gHeadingTags,
+ /*autoclose starttags and endtags*/ &gHeadingTags, &gHeadingTags, &gHeadingTags,0,
/*parent,incl,exclgroups*/ kHeading, kFlowEntity, kNone,
/*special props, prop-range*/ 0,kDefaultPropRange,
/*special parents,kids,skip*/ 0,0,eHTMLTag_unknown},
@@ -581,7 +588,7 @@ nsHTMLElement gHTMLElements[] = {
{ /*tag*/ eHTMLTag_h4,
/*req-parent excl-parent*/ eHTMLTag_unknown,eHTMLTag_unknown,
/*rootnodes,endrootnodes*/ &gRootTags,&gRootTags,
- /*autoclose starttags and endtags*/ &gHeadingTags, &gHeadingTags, &gHeadingTags,
+ /*autoclose starttags and endtags*/ &gHeadingTags, &gHeadingTags, &gHeadingTags,0,
/*parent,incl,exclgroups*/ kHeading, kFlowEntity, kNone,
/*special props, prop-range*/ 0,kDefaultPropRange,
/*special parents,kids,skip*/ 0,0,eHTMLTag_unknown},
@@ -589,7 +596,7 @@ nsHTMLElement gHTMLElements[] = {
{ /*tag*/ eHTMLTag_h5,
/*req-parent excl-parent*/ eHTMLTag_unknown,eHTMLTag_unknown,
/*rootnodes,endrootnodes*/ &gRootTags,&gRootTags,
- /*autoclose starttags and endtags*/ &gHeadingTags, &gHeadingTags, &gHeadingTags,
+ /*autoclose starttags and endtags*/ &gHeadingTags, &gHeadingTags, &gHeadingTags,0,
/*parent,incl,exclgroups*/ kHeading, kFlowEntity, kNone,
/*special props, prop-range*/ 0,kDefaultPropRange,
/*special parents,kids,skip*/ 0,0,eHTMLTag_unknown},
@@ -597,7 +604,7 @@ nsHTMLElement gHTMLElements[] = {
{ /*tag*/ eHTMLTag_h6,
/*req-parent excl-parent*/ eHTMLTag_unknown,eHTMLTag_unknown,
/*rootnodes,endrootnodes*/ &gRootTags,&gRootTags,
- /*autoclose starttags and endtags*/ &gHeadingTags, &gHeadingTags, &gHeadingTags,
+ /*autoclose starttags and endtags*/ &gHeadingTags, &gHeadingTags, &gHeadingTags,0,
/*parent,incl,exclgroups*/ kHeading, kFlowEntity, kNone,
/*special props, prop-range*/ 0,kDefaultPropRange,
/*special parents,kids,skip*/ 0,0,eHTMLTag_unknown},
@@ -605,7 +612,7 @@ nsHTMLElement gHTMLElements[] = {
{ /*tag*/ eHTMLTag_head,
/*req-parent excl-parent*/ eHTMLTag_unknown,eHTMLTag_unknown,
/*rootnodes,endrootnodes*/ &gInHTML, &gInHTML,
- /*autoclose starttags and endtags*/ 0,0,0,
+ /*autoclose starttags and endtags*/ 0,0,0,0,
/*parent,incl,exclgroups*/ kHTMLContent, (kHeadContent|kHeadMisc), kNone,
/*special props, prop-range*/ kNoStyleLeaksIn, kDefaultPropRange,
/*special parents,kids,skip*/ &gInHTML,&gHeadKids,eHTMLTag_unknown},
@@ -613,7 +620,7 @@ nsHTMLElement gHTMLElements[] = {
{ /*tag*/ eHTMLTag_hr,
/*req-parent excl-parent*/ eHTMLTag_unknown,eHTMLTag_unknown,
/*rootnodes,endrootnodes*/ &gRootTags,&gRootTags,
- /*autoclose starttags and endtags*/ &gHRAutoClose,0,0,
+ /*autoclose starttags and endtags*/ &gHRAutoClose,0,0,0,
/*parent,incl,exclgroups*/ kBlock, kNone, kNone,
/*special props, prop-range*/ 0,kDefaultPropRange,
/*special parents,kids,skip*/ 0,0,eHTMLTag_unknown},
@@ -621,7 +628,7 @@ nsHTMLElement gHTMLElements[] = {
{ /*tag*/ eHTMLTag_html,
/*req-parent excl-parent*/ eHTMLTag_unknown,eHTMLTag_html,
/*rootnodes,endrootnodes*/ &gHTMLRootTags, &gHTMLRootTags,
- /*autoclose starttags and endtags*/ 0,0,0,
+ /*autoclose starttags and endtags*/ 0,0,0,0,
/*parent,incl,exclgroups*/ kNone, kHTMLContent, kNone,
/*special props, prop-range*/ kSaveMisplaced|kOmitEndTag|kNoStyleLeaksIn, kDefaultPropRange,
/*special parents,kids,skip*/ 0,&gHtmlKids,eHTMLTag_unknown},
@@ -629,7 +636,7 @@ nsHTMLElement gHTMLElements[] = {
{ /*tag*/ eHTMLTag_i,
/*req-parent excl-parent*/ eHTMLTag_unknown,eHTMLTag_unknown,
/*rootnodes,endrootnodes*/ &gRootTags,&gRootTags,
- /*autoclose starttags and endtags*/ 0,0,0,
+ /*autoclose starttags and endtags*/ 0,0,0,0,
/*parent,incl,exclgroups*/ kFontStyle, (kSelf|FSTYPE), kNone,
/*special props, prop-range*/ 0, kDefaultPropRange,
/*special parents,kids,skip*/ 0,0,eHTMLTag_unknown},
@@ -637,7 +644,7 @@ nsHTMLElement gHTMLElements[] = {
{ /*tag*/ eHTMLTag_iframe,
/*req-parent excl-parent*/ eHTMLTag_unknown,eHTMLTag_unknown,
/*rootnodes,endrootnodes*/ &gRootTags,&gRootTags,
- /*autoclose starttags and endtags*/ 0,0,0,
+ /*autoclose starttags and endtags*/ 0,0,0,0,
/*parent,incl,exclgroups*/ kSpecial, (kSelf|kFlowEntity), kNone,
/*special props, prop-range*/ kNoStyleLeaksIn, kNoPropRange,
/*special parents,kids,skip*/ 0,0,eHTMLTag_unknown},
@@ -645,7 +652,7 @@ nsHTMLElement gHTMLElements[] = {
{ /*tag*/ eHTMLTag_ilayer,
/*req-parent excl-parent*/ eHTMLTag_unknown,eHTMLTag_unknown,
/*rootnodes,endrootnodes*/ &gRootTags,&gRootTags,
- /*autoclose starttags and endtags*/ 0,0,0,
+ /*autoclose starttags and endtags*/ 0,0,0,0,
/*parent,incl,exclgroups*/ kBlock, kFlowEntity, kNone,
/*special props, prop-range*/ kNoStyleLeaksIn, kNoPropRange,
/*special parents,kids,skip*/ 0,0,eHTMLTag_unknown},
@@ -653,7 +660,7 @@ nsHTMLElement gHTMLElements[] = {
{ /*tag*/ eHTMLTag_image,
/*req-parent excl-parent*/ eHTMLTag_unknown,eHTMLTag_unknown,
/*rootnodes,endrootnodes*/ &gRootTags,&gRootTags,
- /*autoclose starttags and endtags*/ 0,0,0,
+ /*autoclose starttags and endtags*/ 0,0,0,0,
/*parent,incl,exclgroups*/ kSpecial, kNone, kNone,
/*special props, prop-range*/ 0,kDefaultPropRange,
/*special parents,kids,skip*/ 0,0,eHTMLTag_unknown},
@@ -661,7 +668,7 @@ nsHTMLElement gHTMLElements[] = {
{ /*tag*/ eHTMLTag_img,
/*req-parent excl-parent*/ eHTMLTag_unknown,eHTMLTag_unknown,
/*rootnodes,endrootnodes*/ &gRootTags,&gRootTags,
- /*autoclose starttags and endtags*/ 0,0,0,
+ /*autoclose starttags and endtags*/ 0,0,0,0,
/*parent,incl,exclgroups*/ kSpecial, kNone, kNone,
/*special props, prop-range*/ 0,kDefaultPropRange,
/*special parents,kids,skip*/ 0,0,eHTMLTag_unknown},
@@ -669,7 +676,7 @@ nsHTMLElement gHTMLElements[] = {
{ /*tag*/ eHTMLTag_input,
/*req-parent excl-parent*/ eHTMLTag_unknown,eHTMLTag_unknown,
/*rootnodes,endrootnodes*/ &gRootTags,&gRootTags,
- /*autoclose starttags and endtags*/ 0,0,0,
+ /*autoclose starttags and endtags*/ 0,0,0,0,
/*parent,incl,exclgroups*/ kFormControl, kNone, kNone,
/*special props, prop-range*/ 0,kDefaultPropRange,
/*special parents,kids,skip*/ 0,0,eHTMLTag_unknown},
@@ -677,7 +684,7 @@ nsHTMLElement gHTMLElements[] = {
{ /*tag*/ eHTMLTag_ins,
/*req-parent excl-parent*/ eHTMLTag_unknown,eHTMLTag_unknown,
/*rootnodes,endrootnodes*/ &gRootTags,&gRootTags,
- /*autoclose starttags and endtags*/ 0,0,0,
+ /*autoclose starttags and endtags*/ 0,0,0,0,
/*parent,incl,exclgroups*/ kFlowEntity, (kSelf|kFlowEntity), kNone,
/*special props, prop-range*/ 0,kDefaultPropRange,
/*special parents,kids,skip*/ 0,0,eHTMLTag_unknown},
@@ -685,7 +692,7 @@ nsHTMLElement gHTMLElements[] = {
{ /*tag*/ eHTMLTag_isindex,
/*requiredAncestor*/ eHTMLTag_unknown,eHTMLTag_unknown,
/*rootnodes,endrootnodes*/ &gRootTags,&gRootTags,
- /*autoclose starttags and endtags*/ 0,0,0,
+ /*autoclose starttags and endtags*/ 0,0,0,0,
/*parent,incl,exclgroups*/ (kBlock|kHeadContent), kFlowEntity, kNone,
/*special props, prop-range*/ 0,kDefaultPropRange,
/*special parents,kids,skip*/ &gInBody,0,eHTMLTag_unknown},
@@ -693,7 +700,7 @@ nsHTMLElement gHTMLElements[] = {
{ /*tag*/ eHTMLTag_kbd,
/*req-parent excl-parent*/ eHTMLTag_unknown,eHTMLTag_unknown,
/*rootnodes,endrootnodes*/ &gRootTags,&gRootTags,
- /*autoclose starttags and endtags*/ 0,0,0,
+ /*autoclose starttags and endtags*/ 0,0,0,0,
/*parent,incl,exclgroups*/ kPhrase, (kSelf|kFlowEntity), kNone,
/*special props, prop-range*/ 0,kDefaultPropRange,
/*special parents,kids,skip*/ 0,0,eHTMLTag_unknown},
@@ -701,7 +708,7 @@ nsHTMLElement gHTMLElements[] = {
{ /*tag*/ eHTMLTag_keygen,
/*req-parent excl-parent*/ eHTMLTag_unknown,eHTMLTag_unknown,
/*rootnodes,endrootnodes*/ &gRootTags,&gRootTags,
- /*autoclose starttags and endtags*/ 0,0,0,
+ /*autoclose starttags and endtags*/ 0,0,0,0,
/*parent,incl,exclgroups*/ kNone, kNone, kNone,
/*special props, prop-range*/ 0,kDefaultPropRange,
/*special parents,kids,skip*/ 0,0,eHTMLTag_unknown},
@@ -709,7 +716,7 @@ nsHTMLElement gHTMLElements[] = {
{ /*tag*/ eHTMLTag_label,
/*req-parent excl-parent*/ eHTMLTag_unknown,eHTMLTag_unknown,
/*rootnodes,endrootnodes*/ &gRootTags,&gRootTags,
- /*autoclose starttags and endtags*/ 0,0,0,
+ /*autoclose starttags and endtags*/ 0,0,0,0,
/*parent,incl,exclgroups*/ kFormControl, kInlineEntity, kSelf,
/*special props, prop-range*/ 0,kDefaultPropRange,
/*special parents,kids,skip*/ 0,0,eHTMLTag_unknown},
@@ -717,7 +724,7 @@ nsHTMLElement gHTMLElements[] = {
{ /*tag*/ eHTMLTag_layer,
/*req-parent excl-parent*/ eHTMLTag_unknown,eHTMLTag_unknown,
/*rootnodes,endrootnodes*/ &gRootTags,&gRootTags,
- /*autoclose starttags and endtags*/ 0,0,0,
+ /*autoclose starttags and endtags*/ 0,0,0,0,
/*parent,incl,exclgroups*/ kBlock, kFlowEntity|kSelf, kSelf,
/*special props, prop-range*/ 0,kDefaultPropRange,
/*special parents,kids,skip*/ 0,0,eHTMLTag_unknown},
@@ -725,7 +732,7 @@ nsHTMLElement gHTMLElements[] = {
{ /*tag*/ eHTMLTag_legend,
/*requiredAncestor*/ eHTMLTag_form,eHTMLTag_unknown,
/*rootnodes,endrootnodes*/ &gInFieldset,&gInFieldset,
- /*autoclose starttags and endtags*/ 0,0,0,
+ /*autoclose starttags and endtags*/ 0,0,0,0,
/*parent,incl,exclgroups*/ kNone, kInlineEntity, kNone,
/*special props, prop-range*/ 0,kDefaultPropRange,
/*special parents,kids,skip*/ &gInFieldset,0,eHTMLTag_unknown},
@@ -733,7 +740,7 @@ nsHTMLElement gHTMLElements[] = {
{ /*tag*/ eHTMLTag_li,
/*req-parent excl-parent*/ eHTMLTag_unknown,eHTMLTag_unknown,
/*rootnodes,endrootnodes*/ &gLIRootTags,&gLIRootTags,
- /*autoclose starttags and endtags*/ &gLIAutoClose,0,0,
+ /*autoclose starttags and endtags*/ &gLIAutoClose,0,0,0,
/*parent,incl,exclgroups*/ kFlowEntity, kFlowEntity, kSelf,
/*special props, prop-range*/ kNoPropagate, kDefaultPropRange,
/*special parents,kids,skip*/ 0,&gLIKids,eHTMLTag_unknown},
@@ -741,7 +748,7 @@ nsHTMLElement gHTMLElements[] = {
{ /*tag*/ eHTMLTag_link,
/*req-parent excl-parent*/ eHTMLTag_unknown,eHTMLTag_unknown,
/*rootnodes,endrootnodes*/ &gInHead,&gInHead,
- /*autoclose starttags and endtags*/ 0,0,0,
+ /*autoclose starttags and endtags*/ 0,0,0,0,
/*parent,incl,exclgroups*/ kHeadMisc, kNone, kNone,
/*special props, prop-range*/ 0,kDefaultPropRange,
/*special parents,kids,skip*/ &gInHead,0,eHTMLTag_unknown},
@@ -749,7 +756,7 @@ nsHTMLElement gHTMLElements[] = {
{ /*tag*/ eHTMLTag_listing,
/*req-parent excl-parent*/ eHTMLTag_unknown,eHTMLTag_unknown,
/*rootnodes,endrootnodes*/ &gRootTags,&gRootTags,
- /*autoclose starttags and endtags*/ 0,0,0,
+ /*autoclose starttags and endtags*/ 0,0,0,0,
/*parent,incl,exclgroups*/ kPreformatted, kNone, kNone,
/*special props, prop-range*/ 0,kDefaultPropRange,
/*special parents,kids,skip*/ 0,0,eHTMLTag_unknown},
@@ -757,7 +764,7 @@ nsHTMLElement gHTMLElements[] = {
{ /*tag*/ eHTMLTag_map,
/*req-parent excl-parent*/ eHTMLTag_unknown,eHTMLTag_unknown,
/*rootnodes,endrootnodes*/ &gRootTags,&gRootTags,
- /*autoclose starttags and endtags*/ 0,0,0,
+ /*autoclose starttags and endtags*/ 0,0,0,0,
/*parent,incl,exclgroups*/ kSpecial, SPECIALTYPE|kBlockEntity, kNone,
/*special props, prop-range*/ kOmitWS, kDefaultPropRange,
/*special parents,kids,skip*/ 0,&gMapKids,eHTMLTag_unknown},
@@ -765,7 +772,7 @@ nsHTMLElement gHTMLElements[] = {
{ /*tag*/ eHTMLTag_menu,
/*req-parent excl-parent*/ eHTMLTag_unknown,eHTMLTag_unknown,
/*rootnodes,endrootnodes*/ &gRootTags,&gRootTags,
- /*autoclose starttags and endtags*/ 0,0,0,
+ /*autoclose starttags and endtags*/ 0,0,0,0,
/*parent,incl,exclgroups*/ kList, (kSelf|kFlowEntity), kNone,
/*special props, prop-range*/ 0,kDefaultPropRange,
/*special parents,kids,skip*/ 0,&gULKids,eHTMLTag_unknown},
@@ -773,7 +780,7 @@ nsHTMLElement gHTMLElements[] = {
{ /*tag*/ eHTMLTag_meta,
/*req-parent excl-parent*/ eHTMLTag_unknown,eHTMLTag_unknown,
/*rootnodes,endrootnodes*/ &gInHead, &gInHead,
- /*autoclose starttags and endtags*/ 0,0,0,
+ /*autoclose starttags and endtags*/ 0,0,0,0,
/*parent,incl,exclgroups*/ kHeadMisc, kNone, kNone,
/*special props, prop-range*/ kNoStyleLeaksIn, kDefaultPropRange,
/*special parents,kids,skip*/ &gInHead,0,eHTMLTag_unknown},
@@ -781,7 +788,7 @@ nsHTMLElement gHTMLElements[] = {
{ /*tag*/ eHTMLTag_multicol,
/*req-parent excl-parent*/ eHTMLTag_unknown,eHTMLTag_unknown,
/*rootnodes,endrootnodes*/ &gRootTags,&gRootTags,
- /*autoclose starttags and endtags*/ 0,0,0,
+ /*autoclose starttags and endtags*/ 0,0,0,0,
/*parent,incl,exclgroups*/ kExtensions, kNone, kNone,
/*special props, prop-range*/ 0,kDefaultPropRange,
/*special parents,kids,skip*/ 0,0,eHTMLTag_unknown},
@@ -789,7 +796,7 @@ nsHTMLElement gHTMLElements[] = {
{ /*tag*/ eHTMLTag_nobr,
/*req-parent excl-parent*/ eHTMLTag_unknown,eHTMLTag_unknown,
/*rootnodes,endrootnodes*/ &gRootTags,&gRootTags,
- /*autoclose starttags and endtags*/ 0,0,0,
+ /*autoclose starttags and endtags*/ 0,0,0,0,
/*parent,incl,exclgroups*/ kExtensions, (kFlowEntity), kNone,
/*special props, prop-range*/ 0,kDefaultPropRange,
/*special parents,kids,skip*/ 0,0,eHTMLTag_unknown},
@@ -797,7 +804,7 @@ nsHTMLElement gHTMLElements[] = {
{ /*tag*/ eHTMLTag_noembed,
/*req-parent excl-parent*/ eHTMLTag_unknown,eHTMLTag_unknown,
/*rootnodes,endrootnodes*/ &gRootTags,&gRootTags,
- /*autoclose starttags and endtags*/ 0,0,0,
+ /*autoclose starttags and endtags*/ 0,0,0,0,
/*parent,incl,exclgroups*/ kNone, kNone, kNone,
/*special props, prop-range*/ kDiscardTag, kDefaultPropRange,
/*special parents,kids,skip*/ 0,0,eHTMLTag_noembed},
@@ -805,7 +812,7 @@ nsHTMLElement gHTMLElements[] = {
{ /*tag*/ eHTMLTag_noframes,
/*req-parent excl-parent*/ eHTMLTag_unknown,eHTMLTag_unknown,
/*rootnodes,endrootnodes*/ &gNoframeRoot,&gNoframeRoot,
- /*autoclose starttags and endtags*/ 0,0,0,
+ /*autoclose starttags and endtags*/ 0,0,0,0,
/*parent,incl,exclgroups*/ kBlock, kFlowEntity, kNone,
/*special props, prop-range*/ kDiscardTag, kNoPropRange,
/*special parents,kids,skip*/ &gNoframeRoot,&gNoframesKids,eHTMLTag_noframes},
@@ -813,7 +820,7 @@ nsHTMLElement gHTMLElements[] = {
{ /*tag*/ eHTMLTag_nolayer,
/*req-parent excl-parent*/ eHTMLTag_unknown,eHTMLTag_unknown,
/*rootnodes,endrootnodes*/ &gRootTags,&gRootTags,
- /*autoclose starttags and endtags*/ 0,0,0,
+ /*autoclose starttags and endtags*/ 0,0,0,0,
/*parent,incl,exclgroups*/ kNone, kNone, kNone,
/*special props, prop-range*/ kDiscardTag, kNoPropRange,
/*special parents,kids,skip*/ 0,0,eHTMLTag_nolayer},
@@ -821,7 +828,7 @@ nsHTMLElement gHTMLElements[] = {
{ /*tag*/ eHTMLTag_noscript,
/*req-parent excl-parent*/ eHTMLTag_unknown,eHTMLTag_unknown,
/*rootnodes,endrootnodes*/ &gRootTags,&gRootTags,
- /*autoclose starttags and endtags*/ 0,0,0,
+ /*autoclose starttags and endtags*/ 0,0,0,0,
/*parent,incl,exclgroups*/ kBlock, kFlowEntity, kNone,
/*special props, prop-range*/ kDiscardTag, kNoPropRange,
/*special parents,kids,skip*/ 0,0,eHTMLTag_noscript},
@@ -829,7 +836,7 @@ nsHTMLElement gHTMLElements[] = {
{ /*tag*/ eHTMLTag_object,
/*req-parent excl-parent*/ eHTMLTag_unknown,eHTMLTag_unknown,
/*rootnodes,endrootnodes*/ &gRootTags,&gRootTags,
- /*autoclose starttags and endtags*/ 0,0,0,
+ /*autoclose starttags and endtags*/ 0,0,0,0,
/*parent,incl,exclgroups*/ (kHeadMisc|kSpecial), (kFlowEntity|SPECIALTYPE|kSelf), kNone,
/*special props, prop-range*/ 0,kDefaultPropRange,
/*special parents,kids,skip*/ 0,&gContainsParam,eHTMLTag_unknown},
@@ -837,7 +844,7 @@ nsHTMLElement gHTMLElements[] = {
{ /*tag*/ eHTMLTag_ol,
/*req-parent excl-parent*/ eHTMLTag_unknown,eHTMLTag_unknown,
/*rootnodes,endrootnodes*/ &gOLRootTags,&gOLRootTags,
- /*autoclose starttags and endtags*/ &gOLAutoClose, &gULCloseTags, 0,
+ /*autoclose starttags and endtags*/ &gOLAutoClose, &gULCloseTags, 0,0,
/*parent,incl,exclgroups*/ kList, (kFlowEntity|kSelf), kNone,
/*special props, prop-range*/ 0,kDefaultPropRange,
/*special parents,kids,skip*/ 0,&gULKids,eHTMLTag_unknown},
@@ -845,7 +852,7 @@ nsHTMLElement gHTMLElements[] = {
{ /*tag*/ eHTMLTag_optgroup,
/*requiredAncestor*/ eHTMLTag_select,eHTMLTag_unknown,
/*rootnodes,endrootnodes*/ &gOptgroupParents,&gOptgroupParents,
- /*autoclose starttags and endtags*/ 0,0,0,
+ /*autoclose starttags and endtags*/ 0,0,0,0,
/*parent,incl,exclgroups*/ kNone, kNone, kNone,
/*special props, prop-range*/ 0,kDefaultPropRange,
/*special parents,kids,skip*/ &gOptgroupParents,&gContainsOpts,eHTMLTag_unknown},
@@ -853,7 +860,7 @@ nsHTMLElement gHTMLElements[] = {
{ /*tag*/ eHTMLTag_option,
/*requiredAncestor*/ eHTMLTag_unknown,eHTMLTag_unknown,
/*rootnodes,endrootnodes*/ &gOptgroupParents,&gOptgroupParents,
- /*autoclose starttags and endtags*/ 0,0,0,
+ /*autoclose starttags and endtags*/ 0,0,0,0,
/*parent,incl,exclgroups*/ kNone, kPCDATA, kFlowEntity,
/*special props, prop-range*/ kNoPropagate|kNoStyleLeaksIn, kDefaultPropRange,
/*special parents,kids,skip*/ &gOptgroupParents,&gContainsText,eHTMLTag_unknown},
@@ -861,7 +868,7 @@ nsHTMLElement gHTMLElements[] = {
{ /*tag*/ eHTMLTag_p,
/*req-parent excl-parent*/ eHTMLTag_unknown,eHTMLTag_unknown,
/*rootnodes,endrootnodes*/ &gInBody,&gInBody,
- /*autoclose starttags and endtags*/ 0,0,0,
+ /*autoclose starttags and endtags*/ 0,0,0,&gDontAutoClose,
/*parent,incl,exclgroups*/ kBlock, kInlineEntity, kNone, //this used to contain FLOW. But it's really an inline container.
/*special props, prop-range*/ 0,kDefaultPropRange, //otherwise it tries to contain things like H1..H6
/*special parents,kids,skip*/ 0,&gInP,eHTMLTag_unknown},
@@ -869,7 +876,7 @@ nsHTMLElement gHTMLElements[] = {
{ /*tag*/ eHTMLTag_param,
/*req-parent excl-parent*/ eHTMLTag_unknown,eHTMLTag_unknown,
/*rootnodes,endrootnodes*/ &gParamParents, &gParamParents,
- /*autoclose starttags and endtags*/ &gPAutoClose,0,0,
+ /*autoclose starttags and endtags*/ &gPAutoClose,0,0,0,
/*parent,incl,exclgroups*/ kNone, kNone, kNone,
/*special props, prop-range*/ 0, kNoPropRange,
/*special parents,kids,skip*/ &gParamParents,0,eHTMLTag_unknown},
@@ -877,7 +884,7 @@ nsHTMLElement gHTMLElements[] = {
{ /*tag*/ eHTMLTag_parsererror,
/*req-parent excl-parent*/ eHTMLTag_unknown,eHTMLTag_unknown,
/*rootnodes,endrootnodes*/ &gRootTags,&gRootTags,
- /*autoclose starttags and endtags*/ &gDivAutoClose,0,0,
+ /*autoclose starttags and endtags*/ &gDivAutoClose,0,0,0,
/*parent,incl,exclgroups*/ kNone, (kSelf|kFlowEntity), kNone,
/*special props, prop-range*/ 0, kNoPropRange,
/*special parents,kids,skip*/ 0,0,eHTMLTag_unknown},
@@ -885,7 +892,7 @@ nsHTMLElement gHTMLElements[] = {
{ /*tag*/ eHTMLTag_plaintext,
/*req-parent excl-parent*/ eHTMLTag_unknown,eHTMLTag_unknown,
/*rootnodes,endrootnodes*/ &gRootTags,&gRootTags,
- /*autoclose starttags and endtags*/ 0,0,0,
+ /*autoclose starttags and endtags*/ 0,0,0,0,
/*parent,incl,exclgroups*/ kExtensions, kFlowEntity, kNone,
/*special props, prop-range*/ 0,kDefaultPropRange,
/*special parents,kids,skip*/ 0,0,eHTMLTag_html},
@@ -893,7 +900,7 @@ nsHTMLElement gHTMLElements[] = {
{ /*tag*/ eHTMLTag_pre,
/*req-parent excl-parent*/ eHTMLTag_unknown,eHTMLTag_unknown,
/*rootnodes,endrootnodes*/ &gRootTags,&gRootTags,
- /*autoclose starttags and endtags*/ 0,0,0,
+ /*autoclose starttags and endtags*/ 0,0,0,0,
/*parent,incl,exclgroups*/ kPreformatted, kFlowEntity, kNone, //I'm allowing WAY too much in here. Spec says inline.
/*special props, prop-range*/ kNoStyleLeaksIn, kDefaultPropRange,
/*special parents,kids,skip*/ 0,&gPreKids,eHTMLTag_unknown},
@@ -901,7 +908,7 @@ nsHTMLElement gHTMLElements[] = {
{ /*tag*/ eHTMLTag_q,
/*req-parent excl-parent*/ eHTMLTag_unknown,eHTMLTag_unknown,
/*rootnodes,endrootnodes*/ &gRootTags,&gRootTags,
- /*autoclose starttags and endtags*/ 0,0,0,
+ /*autoclose starttags and endtags*/ 0,0,0,0,
/*parent,incl,exclgroups*/ kSpecial, (kSelf|SPECIALTYPE), kNone,
/*special props, prop-range*/ 0,kDefaultPropRange,
/*special parents,kids,skip*/ 0,0,eHTMLTag_unknown},
@@ -909,7 +916,7 @@ nsHTMLElement gHTMLElements[] = {
{ /*tag*/ eHTMLTag_s,
/*req-parent excl-parent*/ eHTMLTag_unknown,eHTMLTag_unknown,
/*rootnodes,endrootnodes*/ &gRootTags,&gRootTags,
- /*autoclose starttags and endtags*/ 0,0,0,
+ /*autoclose starttags and endtags*/ 0,0,0,0,
/*parent,incl,exclgroups*/ kFontStyle, (kSelf|FSTYPE), kNone,
/*special props, prop-range*/ 0,kDefaultPropRange,
/*special parents,kids,skip*/ 0,0,eHTMLTag_unknown},
@@ -917,7 +924,7 @@ nsHTMLElement gHTMLElements[] = {
{ /*tag*/ eHTMLTag_samp,
/*req-parent excl-parent*/ eHTMLTag_unknown,eHTMLTag_unknown,
/*rootnodes,endrootnodes*/ &gRootTags,&gRootTags,
- /*autoclose starttags and endtags*/ 0,0,0,
+ /*autoclose starttags and endtags*/ 0,0,0,0,
/*parent,incl,exclgroups*/ kPhrase, (kSelf|kFlowEntity), kNone,
/*special props, prop-range*/ 0,kDefaultPropRange,
/*special parents,kids,skip*/ 0,0,eHTMLTag_unknown},
@@ -925,7 +932,7 @@ nsHTMLElement gHTMLElements[] = {
{ /*tag*/ eHTMLTag_script,
/*req-parent excl-parent*/ eHTMLTag_unknown,eHTMLTag_unknown,
/*rootnodes,endrootnodes*/ &gRootTags,&gRootTags,
- /*autoclose starttags and endtags*/ 0,0,0,
+ /*autoclose starttags and endtags*/ 0,0,0,0,
/*parent,incl,exclgroups*/ (kSpecial|kHeadMisc), kPCDATA, kNone,
/*special props, prop-range*/ kNoStyleLeaksIn|kLegalOpen, kNoPropRange,
/*special parents,kids,skip*/ 0,&gContainsText,eHTMLTag_script},
@@ -933,7 +940,7 @@ nsHTMLElement gHTMLElements[] = {
{ /*tag*/ eHTMLTag_select,
/*requiredAncestor*/ eHTMLTag_unknown, eHTMLTag_unknown,
/*rootnodes,endrootnodes*/ &gInForm,&gInForm,
- /*autoclose starttags and endtags*/ 0,0,0,
+ /*autoclose starttags and endtags*/ 0,0,0,0,
/*parent,incl,exclgroups*/ kFormControl, kNone, kFlowEntity,
/*special props, prop-range*/ kNoPropagate|kOmitWS|kNoStyleLeaksIn, kDefaultPropRange,
/*special parents,kids,skip*/ &gInForm,&gContainsOpts,eHTMLTag_unknown},
@@ -941,7 +948,7 @@ nsHTMLElement gHTMLElements[] = {
{ /*tag*/ eHTMLTag_server,
/*req-parent excl-parent*/ eHTMLTag_unknown,eHTMLTag_unknown,
/*rootnodes,endrootnodes*/ &gRootTags,&gRootTags,
- /*autoclose starttags and endtags*/ 0,0,0,
+ /*autoclose starttags and endtags*/ 0,0,0,0,
/*parent,incl,exclgroups*/ kNone, kNone, kNone,
/*special props, prop-range*/ kNoStyleLeaksIn, kNoPropRange,
/*special parents,kids,skip*/ 0,0,eHTMLTag_unknown},
@@ -949,7 +956,7 @@ nsHTMLElement gHTMLElements[] = {
{ /*tag*/ eHTMLTag_small,
/*req-parent excl-parent*/ eHTMLTag_unknown,eHTMLTag_unknown,
/*rootnodes,endrootnodes*/ &gRootTags,&gRootTags,
- /*autoclose starttags and endtags*/ 0,0,0,
+ /*autoclose starttags and endtags*/ 0,0,0,0,
/*parent,incl,exclgroups*/ kFontStyle, (kSelf|FSTYPE), kNone,
/*special props, prop-range*/ 0,kDefaultPropRange,
/*special parents,kids,skip*/ 0,0,eHTMLTag_unknown},
@@ -957,7 +964,7 @@ nsHTMLElement gHTMLElements[] = {
{ /*tag*/ eHTMLTag_sound,
/*req-parent excl-parent*/ eHTMLTag_unknown,eHTMLTag_unknown,
/*rootnodes,endrootnodes*/ &gRootTags,&gRootTags,
- /*autoclose starttags and endtags*/ 0,0,0,
+ /*autoclose starttags and endtags*/ 0,0,0,0,
/*parent,incl,exclgroups*/ kNone, kNone, kNone,
/*special props, prop-range*/ 0,kDefaultPropRange,
/*special parents,kids,skip*/ 0,0,eHTMLTag_unknown},
@@ -965,7 +972,7 @@ nsHTMLElement gHTMLElements[] = {
{ /*tag*/ eHTMLTag_sourcetext,
/*req-parent excl-parent*/ eHTMLTag_unknown,eHTMLTag_unknown,
/*rootnodes,endrootnodes*/ &gRootTags,&gRootTags,
- /*autoclose starttags and endtags*/ &gDivAutoClose,0,0,
+ /*autoclose starttags and endtags*/ &gDivAutoClose,0,0,0,
/*parent,incl,exclgroups*/ kNone, (kSelf|kFlowEntity), kNone,
/*special props, prop-range*/ 0,kDefaultPropRange,
/*special parents,kids,skip*/ 0,0,eHTMLTag_unknown},
@@ -973,7 +980,7 @@ nsHTMLElement gHTMLElements[] = {
{ /*tag*/ eHTMLTag_spacer,
/*req-parent excl-parent*/ eHTMLTag_unknown,eHTMLTag_unknown,
/*rootnodes,endrootnodes*/ &gRootTags,&gRootTags,
- /*autoclose starttags and endtags*/ 0,0,0,
+ /*autoclose starttags and endtags*/ 0,0,0,0,
/*parent,incl,exclgroups*/ kExtensions, kNone, kNone,
/*special props, prop-range*/ 0,kDefaultPropRange,
/*special parents,kids,skip*/ 0,0,eHTMLTag_unknown},
@@ -981,7 +988,7 @@ nsHTMLElement gHTMLElements[] = {
{ /*tag*/ eHTMLTag_span,
/*req-parent excl-parent*/ eHTMLTag_unknown,eHTMLTag_unknown,
/*rootnodes,endrootnodes*/ &gRootTags,&gRootTags,
- /*autoclose starttags and endtags*/ 0,0,0,
+ /*autoclose starttags and endtags*/ 0,0,0,0,
/*parent,incl,exclgroups*/ kBlockEntity, (kInlineEntity|kSelf|kFlowEntity), kNone,
/*special props, prop-range*/ 0,kDefaultPropRange,
/*special parents,kids,skip*/ 0,0,eHTMLTag_unknown},
@@ -989,7 +996,7 @@ nsHTMLElement gHTMLElements[] = {
{ /*tag*/ eHTMLTag_strike,
/*req-parent excl-parent*/ eHTMLTag_unknown,eHTMLTag_unknown,
/*rootnodes,endrootnodes*/ &gRootTags,&gRootTags,
- /*autoclose starttags and endtags*/ 0,0,0,
+ /*autoclose starttags and endtags*/ 0,0,0,0,
/*parent,incl,exclgroups*/ kFontStyle, (kSelf|FSTYPE), kNone,
/*special props, prop-range*/ 0,kDefaultPropRange,
/*special parents,kids,skip*/ 0,0,eHTMLTag_unknown},
@@ -997,7 +1004,7 @@ nsHTMLElement gHTMLElements[] = {
{ /*tag*/ eHTMLTag_strong,
/*req-parent excl-parent*/ eHTMLTag_unknown,eHTMLTag_unknown,
/*rootnodes,endrootnodes*/ &gRootTags,&gRootTags,
- /*autoclose starttags and endtags*/ 0,0,0,
+ /*autoclose starttags and endtags*/ 0,0,0,0,
/*parent,incl,exclgroups*/ kPhrase, (kSelf|kFlowEntity), kNone,
/*special props, prop-range*/ 0,kDefaultPropRange,
/*special parents,kids,skip*/ 0,&gContainsText,eHTMLTag_unknown},
@@ -1005,7 +1012,7 @@ nsHTMLElement gHTMLElements[] = {
{ /*tag*/ eHTMLTag_style,
/*req-parent excl-parent*/ eHTMLTag_unknown,eHTMLTag_unknown,
/*rootnodes,endrootnodes*/ &gInHead, &gInHead,
- /*autoclose starttags and endtags*/ 0,0,0,
+ /*autoclose starttags and endtags*/ 0,0,0,0,
/*parent,incl,exclgroups*/ kHeadMisc, kPCDATA, kNone,
/*special props, prop-range*/ kNoStyleLeaksIn, kNoPropRange,
/*special parents,kids,skip*/ &gInHead,0,eHTMLTag_style},
@@ -1013,7 +1020,7 @@ nsHTMLElement gHTMLElements[] = {
{ /*tag*/ eHTMLTag_sub,
/*req-parent excl-parent*/ eHTMLTag_unknown,eHTMLTag_unknown,
/*rootnodes,endrootnodes*/ &gRootTags,&gRootTags,
- /*autoclose starttags and endtags*/ 0,0,0,
+ /*autoclose starttags and endtags*/ 0,0,0,0,
/*parent,incl,exclgroups*/ kSpecial, (kSelf|SPECIALTYPE), kNone,
/*special props, prop-range*/ 0,kDefaultPropRange,
/*special parents,kids,skip*/ 0,0,eHTMLTag_unknown},
@@ -1021,7 +1028,7 @@ nsHTMLElement gHTMLElements[] = {
{ /*tag*/ eHTMLTag_sup,
/*req-parent excl-parent*/ eHTMLTag_unknown,eHTMLTag_unknown,
/*rootnodes,endrootnodes*/ &gRootTags,&gRootTags,
- /*autoclose starttags and endtags*/ 0,0,0,
+ /*autoclose starttags and endtags*/ 0,0,0,0,
/*parent,incl,exclgroups*/ kSpecial, (kSelf|SPECIALTYPE), kNone,
/*special props, prop-range*/ 0,kDefaultPropRange,
/*special parents,kids,skip*/ 0,0,eHTMLTag_unknown},
@@ -1029,7 +1036,7 @@ nsHTMLElement gHTMLElements[] = {
{ /*tag*/ eHTMLTag_table,
/*req-parent excl-parent*/ eHTMLTag_unknown,eHTMLTag_unknown,
/*rootnodes,endrootnodes*/ &gRootTags,&gInBody,
- /*autoclose starttags and endtags*/ 0,0,0,
+ /*autoclose starttags and endtags*/ 0,0,0,0,
/*parent,incl,exclgroups*/ kBlock, kNone, (kSelf|kInlineEntity),
/*special props, prop-range*/ (kOmitWS|kBadContentWatch|kNoStyleLeaksIn), 2,
/*special parents,kids,skip*/ 0,&gTableKids,eHTMLTag_unknown},
@@ -1037,7 +1044,7 @@ nsHTMLElement gHTMLElements[] = {
{ /*tag*/ eHTMLTag_tbody,
/*requiredAncestor*/ eHTMLTag_table, eHTMLTag_unknown,
/*rootnodes,endrootnodes*/ &gInTable, &gInTable,
- /*autoclose starttags and endtags*/ &gTBodyAutoClose,0,0,
+ /*autoclose starttags and endtags*/ &gTBodyAutoClose,0,0,0,
/*parent,incl,exclgroups*/ kNone, kNone, (kSelf|kInlineEntity),
/*special props, prop-range*/ (kNoPropagate|kOmitWS|kBadContentWatch|kNoStyleLeaksIn|kDiscardMisplaced), kDefaultPropRange,
/*special parents,kids,skip*/ &gInTable,&gTBodyKids,eHTMLTag_unknown},
@@ -1045,7 +1052,7 @@ nsHTMLElement gHTMLElements[] = {
{ /*tag*/ eHTMLTag_td,
/*requiredAncestor*/ eHTMLTag_table, eHTMLTag_unknown,
/*rootnodes,endrootnodes*/ &gTDRootTags,&gTDRootTags,
- /*autoclose starttags and endtags*/ &gTDCloseTags,&gTDCloseTags,0,
+ /*autoclose starttags and endtags*/ &gTDCloseTags,&gTDCloseTags,0,0,
/*parent,incl,exclgroups*/ kNone, kFlowEntity, kSelf,
/*special props, prop-range*/ kNoStyleLeaksIn, kDefaultPropRange,
/*special parents,kids,skip*/ &gTDRootTags,&gBodyKids,eHTMLTag_unknown},
@@ -1053,7 +1060,7 @@ nsHTMLElement gHTMLElements[] = {
{ /*tag*/ eHTMLTag_textarea,
/*req-parent excl-parent*/ eHTMLTag_unknown,eHTMLTag_unknown,
/*rootnodes,endrootnodes*/ &gInForm, &gInForm,
- /*autoclose starttags and endtags*/ 0,0,0,
+ /*autoclose starttags and endtags*/ 0,0,0,0,
/*parent,incl,exclgroups*/ kFormControl, kPCDATA, kNone,
/*special props, prop-range*/ 0,kDefaultPropRange,
/*special parents,kids,skip*/ &gInForm,&gContainsText,eHTMLTag_textarea},
@@ -1061,7 +1068,7 @@ nsHTMLElement gHTMLElements[] = {
{ /*tag*/ eHTMLTag_tfoot,
/*requiredAncestor*/ eHTMLTag_table, eHTMLTag_unknown,
/*rootnodes,endrootnodes*/ &gInTable, &gInTable,
- /*autoclose starttags and endtags*/ &gTBodyAutoClose,0,0,
+ /*autoclose starttags and endtags*/ &gTFootAutoClose,0,0,0,
/*parent,incl,exclgroups*/ kNone, kNone, kSelf,
/*special props, prop-range*/ (kNoPropagate|kOmitWS|kBadContentWatch|kNoStyleLeaksIn|kDiscardMisplaced), kNoPropRange,
/*special parents,kids,skip*/ &gInTable,&gTableElemKids,eHTMLTag_unknown},
@@ -1069,7 +1076,7 @@ nsHTMLElement gHTMLElements[] = {
{ /*tag*/ eHTMLTag_th,
/*requiredAncestor*/ eHTMLTag_table, eHTMLTag_unknown,
/*rootnodes,endrootnodes*/ &gTDRootTags,&gTDRootTags,
- /*autoclose starttags and endtags*/ &gTDCloseTags,&gTDCloseTags,0,
+ /*autoclose starttags and endtags*/ &gTDCloseTags,&gTDCloseTags,0,0,
/*parent,incl,exclgroups*/ kNone, kFlowEntity, kSelf,
/*special props, prop-range*/ kNoStyleLeaksIn, kDefaultPropRange,
/*special parents,kids,skip*/ &gTDRootTags,&gBodyKids,eHTMLTag_unknown},
@@ -1077,7 +1084,7 @@ nsHTMLElement gHTMLElements[] = {
{ /*tag*/ eHTMLTag_thead,
/*req-parent excl-parent*/ eHTMLTag_unknown,eHTMLTag_unknown,
/*rootnodes,endrootnodes*/ &gInTable,&gInTable,
- /*autoclose starttags and endtags*/ &gTBodyAutoClose,0,0,
+ /*autoclose starttags and endtags*/ &gTHeadAutoClose,0,0,0,
/*parent,incl,exclgroups*/ kNone, kNone, kSelf,
/*special props, prop-range*/ (kNoPropagate|kOmitWS|kBadContentWatch|kNoStyleLeaksIn|kDiscardMisplaced), kNoPropRange,
/*special parents,kids,skip*/ &gInTable,&gTableElemKids,eHTMLTag_unknown},
@@ -1085,7 +1092,7 @@ nsHTMLElement gHTMLElements[] = {
{ /*tag*/ eHTMLTag_title,
/*req-parent excl-parent*/ eHTMLTag_unknown,eHTMLTag_unknown,
/*rootnodes,endrootnodes*/ &gInHead,&gInHead,
- /*autoclose starttags and endtags*/ 0,0,0,
+ /*autoclose starttags and endtags*/ 0,0,0,0,
/*parent,incl,exclgroups*/ kHeadMisc,kPCDATA, kNone,
/*special props, prop-range*/ kOmitWS|kNoStyleLeaksIn, kNoPropRange,
/*special parents,kids,skip*/ &gInHead,&gContainsText,eHTMLTag_title},
@@ -1093,7 +1100,7 @@ nsHTMLElement gHTMLElements[] = {
{ /*tag*/ eHTMLTag_tr,
/*requiredAncestor*/ eHTMLTag_table, eHTMLTag_unknown,
/*rootnodes,endrootnodes*/ &gTRParents,&gTREndParents,
- /*autoclose starttags and endtags*/ &gTRCloseTags,0,0,
+ /*autoclose starttags and endtags*/ &gTRCloseTags,0,0,0,
/*parent,incl,exclgroups*/ kNone, kNone, kInlineEntity,
/*special props, prop-range*/ (kOmitWS|kBadContentWatch|kNoStyleLeaksIn), kNoPropRange,
/*special parents,kids,skip*/ &gTRParents,&gTRKids,eHTMLTag_unknown},
@@ -1101,7 +1108,7 @@ nsHTMLElement gHTMLElements[] = {
{ /*tag*/ eHTMLTag_tt,
/*req-parent excl-parent*/ eHTMLTag_unknown,eHTMLTag_unknown,
/*rootnodes,endrootnodes*/ &gRootTags,&gRootTags,
- /*autoclose starttags and endtags*/ 0,0,0,
+ /*autoclose starttags and endtags*/ 0,0,0,0,
/*parent,incl,exclgroups*/ kFontStyle, (kSelf|FSTYPE), kNone,
/*special props, prop-range*/ 0,kDefaultPropRange,
/*special parents,kids,skip*/ 0,0,eHTMLTag_unknown},
@@ -1109,7 +1116,7 @@ nsHTMLElement gHTMLElements[] = {
{ /*tag*/ eHTMLTag_u,
/*req-parent excl-parent*/ eHTMLTag_unknown,eHTMLTag_unknown,
/*rootnodes,endrootnodes*/ &gRootTags,&gRootTags,
- /*autoclose starttags and endtags*/ 0,0,0,
+ /*autoclose starttags and endtags*/ 0,0,0,0,
/*parent,incl,exclgroups*/ kFontStyle, (kSelf|FSTYPE), kNone,
/*special props, prop-range*/ 0,kDefaultPropRange,
/*special parents,kids,skip*/ 0,0,eHTMLTag_unknown},
@@ -1117,7 +1124,7 @@ nsHTMLElement gHTMLElements[] = {
{ /*tag*/ eHTMLTag_ul,
/*req-parent excl-parent*/ eHTMLTag_unknown,eHTMLTag_unknown,
/*rootnodes,endrootnodes*/ &gOLRootTags,&gOLRootTags,
- /*autoclose starttags and endtags*/ &gOLAutoClose,&gULCloseTags,0,
+ /*autoclose starttags and endtags*/ &gOLAutoClose,&gULCloseTags,0,0,
/*parent,incl,exclgroups*/ kList, (kFlowEntity|kSelf), kNone,
/*special props, prop-range*/ 0,kDefaultPropRange,
/*special parents,kids,skip*/ 0,&gULKids,eHTMLTag_unknown},
@@ -1125,7 +1132,7 @@ nsHTMLElement gHTMLElements[] = {
{ /*tag*/ eHTMLTag_var,
/*req-parent excl-parent*/ eHTMLTag_unknown,eHTMLTag_unknown,
/*rootnodes,endrootnodes*/ &gRootTags,&gRootTags,
- /*autoclose starttags and endtags*/ 0,0,0,
+ /*autoclose starttags and endtags*/ 0,0,0,0,
/*parent,incl,exclgroups*/ kPhrase, (kSelf|kFlowEntity), kNone,
/*special props, prop-range*/ 0,kDefaultPropRange,
/*special parents,kids,skip*/ 0,0,eHTMLTag_unknown},
@@ -1133,7 +1140,7 @@ nsHTMLElement gHTMLElements[] = {
{ /*tag*/ eHTMLTag_wbr,
/*req-parent excl-parent*/ eHTMLTag_unknown,eHTMLTag_unknown,
/*rootnodes,endrootnodes*/ &gRootTags,&gRootTags,
- /*autoclose starttags and endtags*/ 0,0,0,
+ /*autoclose starttags and endtags*/ 0,0,0,0,
/*parent,incl,exclgroups*/ kExtensions, kNone, kNone,
/*special props, prop-range*/ 0,kNoPropRange,
/*special parents,kids,skip*/ 0,0,eHTMLTag_unknown},
@@ -1141,7 +1148,7 @@ nsHTMLElement gHTMLElements[] = {
{ /*tag*/ eHTMLTag_xmp,
/*req-parent excl-parent*/ eHTMLTag_unknown,eHTMLTag_unknown,
/*rootnodes,endrootnodes*/ &gRootTags,&gRootTags,
- /*autoclose starttags and endtags*/ 0,0,0,
+ /*autoclose starttags and endtags*/ 0,0,0,0,
/*parent,incl,exclgroups*/ kPreformatted, kNone, kNone,
/*special props, prop-range*/ 0,kDefaultPropRange,
/*special parents,kids,skip*/ 0,0,eHTMLTag_xmp},
@@ -1149,7 +1156,7 @@ nsHTMLElement gHTMLElements[] = {
{ /*tag*/ eHTMLTag_text,
/*req-parent excl-parent*/ eHTMLTag_unknown,eHTMLTag_unknown,
/*rootnodes,endrootnodes*/ &gInBody,&gInBody,
- /*autoclose starttags and endtags*/ 0,0,0,
+ /*autoclose starttags and endtags*/ 0,0,0,0,
/*parent,incl,exclgroups*/ kFlowEntity, kNone, kNone,
/*special props, prop-range*/ 0,kNoPropRange,
/*special parents,kids,skip*/ 0,0,eHTMLTag_unknown},
@@ -1157,7 +1164,7 @@ nsHTMLElement gHTMLElements[] = {
{ /*tag*/ eHTMLTag_whitespace,
/*req-parent excl-parent*/ eHTMLTag_unknown,eHTMLTag_unknown,
/*rootnodes,endrootnodes*/ &gInBody,&gInBody,
- /*autoclose starttags and endtags*/ 0,0,0,
+ /*autoclose starttags and endtags*/ 0,0,0,0,
/*parent,incl,exclgroups*/ kFlowEntity, kNone, kNone,
/*special props, prop-range*/ 0,kNoPropRange,
/*special parents,kids,skip*/ 0,0,eHTMLTag_unknown},
@@ -1165,7 +1172,7 @@ nsHTMLElement gHTMLElements[] = {
{ /*tag*/ eHTMLTag_newline,
/*req-parent excl-parent*/ eHTMLTag_unknown,eHTMLTag_unknown,
/*rootnodes,endrootnodes*/ &gInBody,&gInBody,
- /*autoclose starttags and endtags*/ 0,0,0,
+ /*autoclose starttags and endtags*/ 0,0,0,0,
/*parent,incl,exclgroups*/ kFlowEntity, kNone, kNone,
/*special props, prop-range*/ 0, kNoPropRange,
/*special parents,kids,skip*/ 0,0,eHTMLTag_unknown},
@@ -1173,7 +1180,7 @@ nsHTMLElement gHTMLElements[] = {
{ /*tag*/ eHTMLTag_comment,
/*req-parent excl-parent*/ eHTMLTag_unknown,eHTMLTag_unknown,
/*rootnodes,endrootnodes*/ &gRootTags,&gRootTags,
- /*autoclose starttags and endtags*/ 0,0,0,
+ /*autoclose starttags and endtags*/ 0,0,0,0,
/*parent,incl,exclgroups*/ kFlowEntity, kNone, kNone,
/*special props, prop-range*/ kOmitEndTag,kNoPropRange,
/*special parents,kids,skip*/ 0,0,eHTMLTag_unknown},
@@ -1181,7 +1188,7 @@ nsHTMLElement gHTMLElements[] = {
{ /*tag*/ eHTMLTag_entity,
/*req-parent excl-parent*/ eHTMLTag_unknown,eHTMLTag_unknown,
/*rootnodes,endrootnodes*/ &gInBody,&gInBody,
- /*autoclose starttags and endtags*/ 0,0,0,
+ /*autoclose starttags and endtags*/ 0,0,0,0,
/*parent,incl,exclgroups*/ kFlowEntity, kNone, kNone,
/*special props, prop-range*/ 0, kNoPropRange,
/*special parents,kids,skip*/ 0,0,eHTMLTag_unknown},
@@ -1189,7 +1196,7 @@ nsHTMLElement gHTMLElements[] = {
{ /*tag*/ eHTMLTag_markupDecl,
/*req-parent excl-parent*/ eHTMLTag_unknown,eHTMLTag_unknown,
/*rootnodes,endrootnodes*/ &gRootTags,&gRootTags,
- /*autoclose starttags and endtags*/ 0,0,0,
+ /*autoclose starttags and endtags*/ 0,0,0,0,
/*parent,incl,exclgroups*/ kFlowEntity, kNone, kNone,
/*special props, prop-range*/ kOmitEndTag,kNoPropRange,
/*special parents,kids,skip*/ 0,0,eHTMLTag_unknown},
@@ -1197,7 +1204,7 @@ nsHTMLElement gHTMLElements[] = {
{ /*tag*/ eHTMLTag_userdefined,
/*req-parent excl-parent*/ eHTMLTag_unknown,eHTMLTag_unknown,
/*rootnodes,endrootnodes*/ &gRootTags,&gRootTags,
- /*autoclose starttags and endtags*/ 0,0,0,
+ /*autoclose starttags and endtags*/ 0,0,0,0,
/*parent,incl,exclgroups*/ kNone, kNone, kNone,
/*special props, prop-range*/ kOmitEndTag, kNoPropRange,
/*special parents,kids,skip*/ 0,0,eHTMLTag_unknown},
@@ -1611,6 +1618,28 @@ PRBool nsHTMLElement::CanContainSelf(void) const {
return result;
}
+/**
+ *
+ * @update harishd 09/20/99
+ * @param
+ * @return
+ */
+PRBool nsHTMLElement::CanAutoCloseTag(eHTMLTags aTag, eHTMLTokenTypes aType) const{
+ PRBool result=PR_TRUE;
+ if((mTagID>=eHTMLTag_unknown) & (mTagID<=eHTMLTag_userdefined)){
+ CTagList* theTagList=nsnull;
+ if(aType==eToken_start) {
+ theTagList=gHTMLElements[mTagID].GetAutoCloseStartTags();
+ if(theTagList) return theTagList->Contains(aTag);
+ }
+ else {
+ theTagList=gHTMLElements[mTagID].GetNonAutoCloseEndTags();
+ if(theTagList) return !theTagList->Contains(aTag);
+ }
+ }
+ return result;
+}
+
/**
*
* @update gess12/13/98
diff --git a/mozilla/htmlparser/src/nsElementTable.h b/mozilla/htmlparser/src/nsElementTable.h
index 700975538cc..859e973d4d8 100644
--- a/mozilla/htmlparser/src/nsElementTable.h
+++ b/mozilla/htmlparser/src/nsElementTable.h
@@ -84,6 +84,7 @@ struct nsHTMLElement {
CTagList* GetEndRootTags(void) const {return mEndRootNodes;}
CTagList* GetAutoCloseStartTags(void) const {return mAutocloseStart;}
CTagList* GetAutoCloseEndTags(void) const {return mAutocloseEnd;}
+ CTagList* GetNonAutoCloseEndTags(void) const {return mDontAutocloseEnd;}
eHTMLTags GetCloseTargetForEndTag(nsEntryStack& aTagStack,PRInt32 anIndex) const;
CTagList* GetSpecialChildren(void) const {return mSpecialKids;}
@@ -98,6 +99,7 @@ struct nsHTMLElement {
PRBool CanOmitStartTag(eHTMLTags aChild) const;
PRBool CanOmitEndTag(void) const;
PRBool CanContainSelf(void) const;
+ PRBool CanAutoCloseTag(eHTMLTags aTag, eHTMLTokenTypes aType) const;
PRBool HasSpecialProperty(PRInt32 aProperty) const;
PRBool SectionContains(eHTMLTags aTag,PRBool allowDepthSearch);
@@ -122,6 +124,7 @@ struct nsHTMLElement {
CTagList* mAutocloseStart; //these are the start tags that you can automatically close with this START tag
CTagList* mAutocloseEnd; //these are the start tags that you can automatically close with this END tag
CTagList* mSynonymousTags; //These are morally equivalent; an end tag for one can close a start tag for another (like )
+ CTagList* mDontAutocloseEnd; //these are the end tags that you cannot automatically close with this END tag
int mParentBits; //defines groups that can contain this element
int mInclusionBits; //defines parental and containment rules
int mExclusionBits; //defines things you CANNOT contain
diff --git a/mozilla/parser/htmlparser/src/CNavDTD.cpp b/mozilla/parser/htmlparser/src/CNavDTD.cpp
index 91aba403710..1c60833745f 100644
--- a/mozilla/parser/htmlparser/src/CNavDTD.cpp
+++ b/mozilla/parser/htmlparser/src/CNavDTD.cpp
@@ -1032,7 +1032,9 @@ nsresult CNavDTD::HandleDefaultStartToken(CToken* aToken,eHTMLTags aChildTag,nsI
// compatible we should not attempt to close the tags above it, for
// the contents inside the table might get thrown out of the table.
// The safest thing to do is to discard this tag.
- return result;
+ if(!gHTMLElements[aChildTag].CanAutoCloseTag(theParentTag,eToken_start)) {
+ return result;
+ }
}
CloseContainersTo(theIndex,theParentTag,PR_TRUE);
}//if
@@ -1478,14 +1480,15 @@ nsresult CNavDTD::HandleEndToken(CToken* aToken) {
UpdateStyleStackForCloseTag(theChildTag,theChildTag);
}
else {
- if(kNotFound==GetIndexOfChildOrSynonym(mBodyContext->mStack,theChildTag)) {
+ if((kNotFound==GetIndexOfChildOrSynonym(mBodyContext->mStack,theChildTag)) ||
+ (!gHTMLElements[theChildTag].CanAutoCloseTag(mBodyContext->Last(),eToken_end))) {
UpdateStyleStackForCloseTag(theChildTag,theChildTag);
if(gHTMLElements[theChildTag].IsMemberOf(kBlockEntity)) {
// Oh boy!! we found a "stray" block entity. Nav4.x and IE introduce line break in
// such cases. So, let's simulate that effect for compatibility.
// Ex. HelloThere
CHTMLToken* theToken = (CHTMLToken*)gRecycler->CreateTokenOfType(eToken_start,theChildTag);
- result=HandleStartToken(theToken);
+ result=HandleToken(theToken,mParser);
}
else return result;
}
diff --git a/mozilla/parser/htmlparser/src/nsElementTable.cpp b/mozilla/parser/htmlparser/src/nsElementTable.cpp
index 9d466e6f8e1..5bfb5b893c1 100644
--- a/mozilla/parser/htmlparser/src/nsElementTable.cpp
+++ b/mozilla/parser/htmlparser/src/nsElementTable.cpp
@@ -204,6 +204,8 @@ CTagList gNoframeRoot(2,0,eHTMLTag_body,eHTMLTag_frameset);
CTagList gAutoClose(2,0,eHTMLTag_body,eHTMLTag_td);
CTagList gBodyAutoClose(1,0,eHTMLTag_head);
CTagList gTBodyAutoClose(3,0,eHTMLTag_thead,eHTMLTag_tfoot,eHTMLTag_tbody);
+CTagList gTHeadAutoClose(2,0,eHTMLTag_thead,eHTMLTag_colgroup);
+CTagList gTFootAutoClose(2,0,eHTMLTag_tfoot,eHTMLTag_colgroup);
CTagList gCaptionAutoClose(1,0,eHTMLTag_tbody);
CTagList gLIAutoClose(2,0,eHTMLTag_p,eHTMLTag_li);
CTagList gPAutoClose(2,0,eHTMLTag_p,eHTMLTag_li);
@@ -219,6 +221,11 @@ CTagList gTDCloseTags(2,0,eHTMLTag_td,eHTMLTag_th);
CTagList gDTCloseTags(3,0,eHTMLTag_dt,eHTMLTag_dd,eHTMLTag_p);
CTagList gULCloseTags(1,0,eHTMLTag_li);
+//*********************************************************************************************
+// The following tag lists are used to define the non-autoclose properties of the html elements...
+//*********************************************************************************************
+
+CTagList gDontAutoClose(1,0,eHTMLTag_td);
//*********************************************************************************************
//Lastly, bind tags with their rules, their special parents and special kids.
@@ -237,7 +244,7 @@ nsHTMLElement gHTMLElements[] = {
{ /*tag*/ eHTMLTag_unknown,
/*req-parent excl-parent*/ eHTMLTag_unknown,eHTMLTag_unknown,
/*rootnodes,endrootnodes*/ &gRootTags,&gRootTags,
- /*autoclose starttags and endtags*/ 0,0,0,
+ /*autoclose starttags and endtags*/ 0,0,0,0,
/*parent,incl,exclgroups*/ kNone, kNone, kNone,
/*special props, prop-range*/ kOmitWS, 10,
/*special parents,kids,skip*/ 0,&gUnknownKids,eHTMLTag_unknown},
@@ -252,7 +259,7 @@ nsHTMLElement gHTMLElements[] = {
{ /*tag*/ eHTMLTag_a,
/*req-parent excl-parent*/ eHTMLTag_unknown,eHTMLTag_unknown,
/*rootnodes,endrootnodes*/ &gRootTags,&gRootTags,
- /*autoclose starttags and endtags*/ 0,0,0,
+ /*autoclose starttags and endtags*/ 0,0,0,0,
/*parent,incl,exclgroups*/ kSpecial, SPECIALTYPE|kBlockEntity, kNone,
/*special props, prop-range*/ 0,kDefaultPropRange,
/*special parents,kids,skip*/ 0,0,eHTMLTag_unknown},
@@ -260,7 +267,7 @@ nsHTMLElement gHTMLElements[] = {
{ /*tag*/ eHTMLTag_abbr,
/*req-parent excl-parent*/ eHTMLTag_unknown,eHTMLTag_unknown,
/*rootnodes,endrootnodes*/ &gRootTags,&gRootTags,
- /*autoclose starttags and endtags*/ 0,0,0,
+ /*autoclose starttags and endtags*/ 0,0,0,0,
/*parent,incl,exclgroups*/ kPhrase, (kSelf|kFlowEntity), kNone,
/*special props, prop-range*/ 0,kDefaultPropRange,
/*special parents,kids,skip*/ 0,0,eHTMLTag_unknown},
@@ -268,7 +275,7 @@ nsHTMLElement gHTMLElements[] = {
{ /*tag*/ eHTMLTag_acronym,
/*req-parent excl-parent*/ eHTMLTag_unknown,eHTMLTag_unknown,
/*rootnodes,endrootnodes*/ &gRootTags,&gRootTags,
- /*autoclose starttags and endtags*/ 0,0,0,
+ /*autoclose starttags and endtags*/ 0,0,0,0,
/*parent,incl,exclgroups*/ kPhrase, (kFlowEntity|kSelf), kNone,
/*special props, prop-range*/ 0,kDefaultPropRange,
/*special parents,kids,skip*/ 0,0,eHTMLTag_unknown},
@@ -276,7 +283,7 @@ nsHTMLElement gHTMLElements[] = {
{ /*tag*/ eHTMLTag_address,
/*req-parent excl-parent*/ eHTMLTag_unknown,eHTMLTag_unknown,
/*rootnodes,endrootnodes*/ &gRootTags,&gRootTags,
- /*autoclose starttags and endtags*/ 0,0,0,
+ /*autoclose starttags and endtags*/ 0,0,0,0,
/*parent,incl,exclgroups*/ kBlock, kInlineEntity, kNone,
/*special props, prop-range*/ 0,kDefaultPropRange,
/*special parents,kids,skip*/ 0,&gAddressKids,eHTMLTag_unknown},
@@ -284,7 +291,7 @@ nsHTMLElement gHTMLElements[] = {
{ /*tag*/ eHTMLTag_applet,
/*req-parent excl-parent*/ eHTMLTag_unknown,eHTMLTag_unknown,
/*rootnodes,endrootnodes*/ &gRootTags,&gRootTags,
- /*autoclose starttags and endtags*/ 0,0,0,
+ /*autoclose starttags and endtags*/ 0,0,0,0,
/*parent,incl,exclgroups*/ kSpecial, (kSelf|SPECIALTYPE|kFlowEntity), kNone,
/*special props, prop-range*/ 0,kDefaultPropRange,
/*special parents,kids,skip*/ 0,&gContainsParam,eHTMLTag_unknown},
@@ -292,7 +299,7 @@ nsHTMLElement gHTMLElements[] = {
{ /*tag*/ eHTMLTag_area,
/*req-parent excl-parent*/ eHTMLTag_unknown,eHTMLTag_unknown,
/*rootnodes,endrootnodes*/ &gAreaParent,&gRootTags,
- /*autoclose starttags and endtags*/ 0,0,0,
+ /*autoclose starttags and endtags*/ 0,0,0,0,
/*parent,incl,exclgroups*/ kNone, kInlineEntity, kSelf,
/*special props, prop-range*/ 0,kDefaultPropRange,
/*special parents,kids,skip*/ &gAreaParent,0,eHTMLTag_unknown},
@@ -300,7 +307,7 @@ nsHTMLElement gHTMLElements[] = {
{ /*tag*/ eHTMLTag_b,
/*req-parent excl-parent*/ eHTMLTag_unknown,eHTMLTag_unknown,
/*rootnodes,endrootnodes*/ &gRootTags,&gRootTags,
- /*autoclose starttags and endtags*/ 0,0,0,
+ /*autoclose starttags and endtags*/ 0,0,0,0,
/*parent,incl,exclgroups*/ kFontStyle, (FSTYPE|kSelf), kNone,
/*special props, prop-range*/ 0,kDefaultPropRange,
/*special parents,kids,skip*/ 0,0,eHTMLTag_unknown},
@@ -308,7 +315,7 @@ nsHTMLElement gHTMLElements[] = {
{ /*tag*/ eHTMLTag_base,
/*req-parent excl-parent*/ eHTMLTag_unknown,eHTMLTag_unknown,
/*rootnodes,endrootnodes*/ &gInHead, &gRootTags,
- /*autoclose starttags and endtags*/ 0,0,0,
+ /*autoclose starttags and endtags*/ 0,0,0,0,
/*parent,incl,exclgroups*/ kNone, kNone, kNone,
/*special props, prop-range*/ 0, kNoPropRange,
/*special parents,kids,skip*/ &gInHead,0,eHTMLTag_unknown},
@@ -316,7 +323,7 @@ nsHTMLElement gHTMLElements[] = {
{ /*tag*/ eHTMLTag_basefont,
/*req-parent excl-parent*/ eHTMLTag_unknown,eHTMLTag_unknown,
/*rootnodes,endrootnodes*/ &gRootTags,&gRootTags,
- /*autoclose starttags and endtags*/ 0,0,0,
+ /*autoclose starttags and endtags*/ 0,0,0,0,
/*parent,incl,exclgroups*/ kSpecial, SPECIALTYPE, kNone,
/*special props, prop-range*/ 0, kNoPropRange,
/*special parents,kids,skip*/ 0,0,eHTMLTag_unknown},
@@ -324,7 +331,7 @@ nsHTMLElement gHTMLElements[] = {
{ /*tag*/ eHTMLTag_bdo,
/*req-parent excl-parent*/ eHTMLTag_unknown,eHTMLTag_unknown,
/*rootnodes,endrootnodes*/ &gRootTags,&gRootTags,
- /*autoclose starttags and endtags*/ 0,0,0,
+ /*autoclose starttags and endtags*/ 0,0,0,0,
/*parent,incl,exclgroups*/ kSpecial, (kSelf|SPECIALTYPE), kNone,
/*special props, prop-range*/ 0,kDefaultPropRange,
/*special parents,kids,skip*/ 0,0,eHTMLTag_unknown},
@@ -332,7 +339,7 @@ nsHTMLElement gHTMLElements[] = {
{ /*tag*/ eHTMLTag_bgsound,
/*req-parent excl-parent*/ eHTMLTag_unknown,eHTMLTag_unknown,
/*rootnodes,endrootnodes*/ &gRootTags,&gRootTags,
- /*autoclose starttags and endtags*/ 0,0,0,
+ /*autoclose starttags and endtags*/ 0,0,0,0,
/*parent,incl,exclgroups*/ kExtensions, kNone, kNone,
/*special props, prop-range*/ 0,kNoPropRange,
/*special parents,kids,skip*/ 0,0,eHTMLTag_unknown},
@@ -340,7 +347,7 @@ nsHTMLElement gHTMLElements[] = {
{ /*tag*/ eHTMLTag_big,
/*req-parent excl-parent*/ eHTMLTag_unknown,eHTMLTag_unknown,
/*rootnodes,endrootnodes*/ &gRootTags,&gRootTags,
- /*autoclose starttags and endtags*/ 0,0,0,
+ /*autoclose starttags and endtags*/ 0,0,0,0,
/*parent,incl,exclgroups*/ kFontStyle, (FSTYPE|kSelf), kNone,
/*special props, prop-range*/ 0,kDefaultPropRange,
/*special parents,kids,skip*/ 0,0,eHTMLTag_unknown},
@@ -348,7 +355,7 @@ nsHTMLElement gHTMLElements[] = {
{ /*tag*/ eHTMLTag_blink,
/*req-parent excl-parent*/ eHTMLTag_unknown,eHTMLTag_unknown,
/*rootnodes,endrootnodes*/ &gRootTags,&gRootTags,
- /*autoclose starttags and endtags*/ 0,0,0,
+ /*autoclose starttags and endtags*/ 0,0,0,0,
/*parent,incl,exclgroups*/ kFontStyle, (kFlowEntity|kSelf), kNone,
/*special props, prop-range*/ 0,kDefaultPropRange,
/*special parents,kids,skip*/ 0,0,eHTMLTag_unknown},
@@ -356,7 +363,7 @@ nsHTMLElement gHTMLElements[] = {
{ /*tag*/ eHTMLTag_blockquote,
/*req-parent excl-parent*/ eHTMLTag_unknown,eHTMLTag_unknown,
/*rootnodes,endrootnodes*/ &gRootTags,&gRootTags,
- /*autoclose starttags and endtags*/ 0,0,0,
+ /*autoclose starttags and endtags*/ 0,0,0,0,
/*parent,incl,exclgroups*/ kBlock, (kSelf|kFlowEntity), kNone,
/*special props, prop-range*/ 0,kDefaultPropRange,
/*special parents,kids,skip*/ 0,0,eHTMLTag_unknown},
@@ -364,7 +371,7 @@ nsHTMLElement gHTMLElements[] = {
{ /*tag*/ eHTMLTag_body,
/*req-parent excl-parent*/ eHTMLTag_unknown,eHTMLTag_frameset,
/*rootnodes,endrootnodes*/ &gInHTML, &gInHTML,
- /*autoclose starttags and endtags*/ &gBodyAutoClose,0,0,
+ /*autoclose starttags and endtags*/ &gBodyAutoClose,0,0,0,
/*parent,incl,exclgroups*/ kHTMLContent,(kFlowEntity|kSelf), kNone,
/*special props, prop-range*/ kOmitEndTag, kBodyPropRange,
/*special parents,kids,skip*/ &gInNoframes,&gBodyKids,eHTMLTag_unknown},
@@ -372,7 +379,7 @@ nsHTMLElement gHTMLElements[] = {
{ /*tag*/ eHTMLTag_br,
/*req-parent excl-parent*/ eHTMLTag_unknown,eHTMLTag_unknown,
/*rootnodes,endrootnodes*/ &gRootTags,&gRootTags,
- /*autoclose starttags and endtags*/ 0,0,0,
+ /*autoclose starttags and endtags*/ 0,0,0,0,
/*parent,incl,exclgroups*/ kSpecial, kNone, kNone,
/*special props, prop-range*/ 0, kNoPropRange,
/*special parents,kids,skip*/ 0,0,eHTMLTag_unknown},
@@ -380,7 +387,7 @@ nsHTMLElement gHTMLElements[] = {
{ /*tag*/ eHTMLTag_button,
/*req-parent excl-parent*/ eHTMLTag_unknown,eHTMLTag_unknown,
/*rootnodes,endrootnodes*/ &gRootTags,&gRootTags,
- /*autoclose starttags and endtags*/ 0,0,0,
+ /*autoclose starttags and endtags*/ 0,0,0,0,
/*parent,incl,exclgroups*/ kFormControl, kFlowEntity, kFormControl,
/*special props, prop-range*/ 0,kDefaultPropRange,
/*special parents,kids,skip*/ 0,&gButtonKids,eHTMLTag_unknown},
@@ -388,7 +395,7 @@ nsHTMLElement gHTMLElements[] = {
{ /*tag*/ eHTMLTag_caption,
/*req-parent excl-parent*/ eHTMLTag_table,eHTMLTag_unknown,
/*rootnodes,endrootnodes*/ &gInTable,&gInTable,
- /*autoclose starttags and endtags*/ &gCaptionAutoClose,0,0,
+ /*autoclose starttags and endtags*/ &gCaptionAutoClose,0,0,0,
/*parent,incl,exclgroups*/ kNone, kFlowEntity, kSelf,
/*special props, prop-range*/ kNoPropagate,kDefaultPropRange,
/*special parents,kids,skip*/ &gInTable,0,eHTMLTag_unknown},
@@ -396,7 +403,7 @@ nsHTMLElement gHTMLElements[] = {
{ /*tag*/ eHTMLTag_center,
/*req-parent excl-parent*/ eHTMLTag_unknown,eHTMLTag_unknown,
/*rootnodes,endrootnodes*/ &gRootTags,&gRootTags,
- /*autoclose starttags and endtags*/ 0,0,0,
+ /*autoclose starttags and endtags*/ 0,0,0,0,
/*parent,incl,exclgroups*/ kBlock, (kInlineEntity|kSelf|kFlowEntity), kNone,
/*special props, prop-range*/ 0,kDefaultPropRange,
/*special parents,kids,skip*/ 0,0,eHTMLTag_unknown},
@@ -404,7 +411,7 @@ nsHTMLElement gHTMLElements[] = {
{ /*tag*/ eHTMLTag_cite,
/*req-parent excl-parent*/ eHTMLTag_unknown,eHTMLTag_unknown,
/*rootnodes,endrootnodes*/ &gRootTags,&gRootTags,
- /*autoclose starttags and endtags*/ 0,0,0,
+ /*autoclose starttags and endtags*/ 0,0,0,0,
/*parent,incl,exclgroups*/ kPhrase, (kFlowEntity|kSelf), kNone,
/*special props, prop-range*/ 0,kDefaultPropRange,
/*special parents,kids,skip*/ 0,0,eHTMLTag_unknown},
@@ -412,7 +419,7 @@ nsHTMLElement gHTMLElements[] = {
{ /*tag*/ eHTMLTag_code,
/*req-parent excl-parent*/ eHTMLTag_unknown,eHTMLTag_unknown,
/*rootnodes,endrootnodes*/ &gRootTags,&gRootTags,
- /*autoclose starttags and endtags*/ 0,0,0,
+ /*autoclose starttags and endtags*/ 0,0,0,0,
/*parent,incl,exclgroups*/ kPhrase, (kSelf|kFlowEntity), kNone,
/*special props, prop-range*/ 0,kDefaultPropRange,
/*special parents,kids,skip*/ 0,0,eHTMLTag_unknown},
@@ -420,7 +427,7 @@ nsHTMLElement gHTMLElements[] = {
{ /*tag*/ eHTMLTag_col,
/*req-parent excl-parent*/ eHTMLTag_table,eHTMLTag_unknown,
/*rootnodes,endrootnodes*/ &gColParents,&gColParents,
- /*autoclose starttags and endtags*/ 0,0,0,
+ /*autoclose starttags and endtags*/ 0,0,0,0,
/*parent,incl,exclgroups*/ kNone, kNone, kNone,
/*special props, prop-range*/ kNoPropagate|kOmitWS,kDefaultPropRange,
/*special parents,kids,skip*/ &gColParents,0,eHTMLTag_unknown},
@@ -428,7 +435,7 @@ nsHTMLElement gHTMLElements[] = {
{ /*tag*/ eHTMLTag_colgroup,
/*req-parent excl-parent*/ eHTMLTag_table,eHTMLTag_unknown,
/*rootnodes,endrootnodes*/ &gInTable,&gInTable,
- /*autoclose starttags and endtags*/ 0,0,0,
+ /*autoclose starttags and endtags*/ 0,0,0,0,
/*parent,incl,exclgroups*/ kNone, kNone, kNone,
/*special props, prop-range*/ kOmitWS|kNoPropagate,kDefaultPropRange,
/*special parents,kids,skip*/ &gInTable,&gColgroupKids,eHTMLTag_unknown},
@@ -436,7 +443,7 @@ nsHTMLElement gHTMLElements[] = {
{ /*tag*/ eHTMLTag_dd,
/*req-parent excl-parent*/ eHTMLTag_unknown,eHTMLTag_unknown,
/*rootnodes,endrootnodes*/ &gRootTags, &gRootTags,
- /*autoclose starttags and endtags*/ &gDTCloseTags,0,0,
+ /*autoclose starttags and endtags*/ &gDTCloseTags,0,0,0,
/*parent,incl,exclgroups*/ kInlineEntity, kFlowEntity, kNone,
/*special props, prop-range*/ kNoPropagate|kMustCloseSelf,kDefaultPropRange,
/*special parents,kids,skip*/ &gInDL,0,eHTMLTag_unknown},
@@ -444,7 +451,7 @@ nsHTMLElement gHTMLElements[] = {
{ /*tag*/ eHTMLTag_del,
/*req-parent excl-parent*/ eHTMLTag_unknown,eHTMLTag_unknown,
/*rootnodes,endrootnodes*/ &gRootTags,&gRootTags,
- /*autoclose starttags and endtags*/ 0,0,0,
+ /*autoclose starttags and endtags*/ 0,0,0,0,
/*parent,incl,exclgroups*/ kFlowEntity, (kSelf|kFlowEntity), kNone,
/*special props, prop-range*/ 0,kDefaultPropRange,
/*special parents,kids,skip*/ &gInBody,0,eHTMLTag_unknown},
@@ -452,7 +459,7 @@ nsHTMLElement gHTMLElements[] = {
{ /*tag*/ eHTMLTag_dfn,
/*req-parent excl-parent*/ eHTMLTag_unknown,eHTMLTag_unknown,
/*rootnodes,endrootnodes*/ &gRootTags,&gRootTags,
- /*autoclose starttags and endtags*/ 0,0,0,
+ /*autoclose starttags and endtags*/ 0,0,0,0,
/*parent,incl,exclgroups*/ kPhrase, (kSelf|kFlowEntity), kNone,
/*special props, prop-range*/ 0,kDefaultPropRange,
/*special parents,kids,skip*/ 0,0,eHTMLTag_unknown},
@@ -460,7 +467,7 @@ nsHTMLElement gHTMLElements[] = {
{ /*tag*/ eHTMLTag_dir,
/*req-parent excl-parent*/ eHTMLTag_unknown,eHTMLTag_unknown,
/*rootnodes,endrootnodes*/ &gRootTags,&gRootTags,
- /*autoclose starttags and endtags*/ 0,0,0,
+ /*autoclose starttags and endtags*/ 0,0,0,0,
/*parent,incl,exclgroups*/ kList, (kSelf|kFlowEntity), kNone,
/*special props, prop-range*/ 0,kDefaultPropRange,
/*special parents,kids,skip*/ 0,&gULKids,eHTMLTag_unknown},
@@ -468,7 +475,7 @@ nsHTMLElement gHTMLElements[] = {
{ /*tag*/ eHTMLTag_div,
/*req-parent excl-parent*/ eHTMLTag_unknown,eHTMLTag_unknown,
/*rootnodes,endrootnodes*/ &gRootTags,&gRootTags,
- /*autoclose starttags and endtags*/ &gDivAutoClose,0,0,
+ /*autoclose starttags and endtags*/ &gDivAutoClose,0,0,0,
/*parent,incl,exclgroups*/ kBlock, (kSelf|kFlowEntity), kNone,
/*special props, prop-range*/ 0,kDefaultPropRange,
/*special parents,kids,skip*/ 0,0,eHTMLTag_unknown},
@@ -476,7 +483,7 @@ nsHTMLElement gHTMLElements[] = {
{ /*tag*/ eHTMLTag_dl,
/*req-parent excl-parent*/ eHTMLTag_unknown,eHTMLTag_unknown,
/*rootnodes,endrootnodes*/ &gRootTags,&gRootTags,
- /*autoclose starttags and endtags*/ 0,0,0,
+ /*autoclose starttags and endtags*/ 0,0,0,0,
/*parent,incl,exclgroups*/ kBlock, kSelf|kFlowEntity, kNone,
/*special props, prop-range*/ kOmitWS, kNoPropRange,
/*special parents,kids,skip*/ 0,&gDLKids,eHTMLTag_unknown},
@@ -484,7 +491,7 @@ nsHTMLElement gHTMLElements[] = {
{ /*tag*/ eHTMLTag_dt,
/*req-parent excl-parent*/ eHTMLTag_unknown,eHTMLTag_unknown,
/*rootnodes,endrootnodes*/ &gRootTags, &gRootTags,
- /*autoclose starttags and endtags*/ &gDTCloseTags,0,0,
+ /*autoclose starttags and endtags*/ &gDTCloseTags,0,0,0,
/*parent,incl,exclgroups*/ kInlineEntity, kFlowEntity, kNone,
/*special props, prop-range*/ (kNoPropagate|kMustCloseSelf),kDefaultPropRange,
/*special parents,kids,skip*/ &gInDL,0,eHTMLTag_unknown},
@@ -492,7 +499,7 @@ nsHTMLElement gHTMLElements[] = {
{ /*tag*/ eHTMLTag_em,
/*req-parent excl-parent*/ eHTMLTag_unknown,eHTMLTag_unknown,
/*rootnodes,endrootnodes*/ &gRootTags,&gRootTags,
- /*autoclose starttags and endtags*/ 0,0,0,
+ /*autoclose starttags and endtags*/ 0,0,0,0,
/*parent,incl,exclgroups*/ kPhrase, (kSelf|kFlowEntity), kNone,
/*special props, prop-range*/ 0,kDefaultPropRange,
/*special parents,kids,skip*/ 0,0,eHTMLTag_unknown},
@@ -500,7 +507,7 @@ nsHTMLElement gHTMLElements[] = {
{ /*tag*/ eHTMLTag_embed,
/*req-parent excl-parent*/ eHTMLTag_unknown,eHTMLTag_unknown,
/*rootnodes,endrootnodes*/ &gRootTags,&gRootTags,
- /*autoclose starttags and endtags*/ 0,0,0,
+ /*autoclose starttags and endtags*/ 0,0,0,0,
/*parent,incl,exclgroups*/ kBlockEntity, kNone, kNone,
/*special props, prop-range*/ 0,kDefaultPropRange,
/*special parents,kids,skip*/ 0,&gContainsParam,eHTMLTag_unknown},
@@ -508,7 +515,7 @@ nsHTMLElement gHTMLElements[] = {
{ /*tag*/ eHTMLTag_endnote,
/*req-parent excl-parent*/ eHTMLTag_unknown,eHTMLTag_unknown,
/*rootnodes,endrootnodes*/ &gRootTags,&gRootTags,
- /*autoclose starttags and endtags*/ 0,0,0,
+ /*autoclose starttags and endtags*/ 0,0,0,0,
/*parent,incl,exclgroups*/ kFlowEntity, kFlowEntity, kNone,
/*special props, prop-range*/ 0,kDefaultPropRange,
/*special parents,kids,skip*/ 0,0,eHTMLTag_unknown},
@@ -516,7 +523,7 @@ nsHTMLElement gHTMLElements[] = {
{ /*tag*/ eHTMLTag_fieldset,
/*requiredAncestor*/ eHTMLTag_form,eHTMLTag_unknown,
/*rootnodes,endrootnodes*/ &gRootTags,&gRootTags,
- /*autoclose starttags and endtags*/ 0,0,0,
+ /*autoclose starttags and endtags*/ 0,0,0,0,
/*parent,incl,exclgroups*/ kBlock, (kSelf|kFlowEntity), kNone,
/*special props, prop-range*/ kNoPropagate|kOmitWS,kDefaultPropRange,
/*special parents,kids,skip*/ 0,&gFieldsetKids,eHTMLTag_unknown},
@@ -524,7 +531,7 @@ nsHTMLElement gHTMLElements[] = {
{ /*tag*/ eHTMLTag_font,
/*req-parent excl-parent*/ eHTMLTag_unknown,eHTMLTag_unknown,
/*rootnodes,endrootnodes*/ &gRootTags,&gRootTags,
- /*autoclose starttags and endtags*/ 0,0,0,
+ /*autoclose starttags and endtags*/ 0,0,0,0,
/*parent,incl,exclgroups*/ kSpecial, (kSelf|SPECIALTYPE), kNone,
/*special props, prop-range*/ 0,kDefaultPropRange,
/*special parents,kids,skip*/ 0,&gFontKids,eHTMLTag_unknown},
@@ -532,7 +539,7 @@ nsHTMLElement gHTMLElements[] = {
{ /*tag*/ eHTMLTag_form,
/*req-parent excl-parent*/ eHTMLTag_unknown,eHTMLTag_unknown,
/*rootnodes,endrootnodes*/ &gRootTags,&gRootTags,
- /*autoclose starttags and endtags*/ 0,0,0,
+ /*autoclose starttags and endtags*/ 0,0,0,0,
/*parent,incl,exclgroups*/ kBlock, kFlowEntity, kNone,
/*special props, prop-range*/ kNoStyleLeaksIn, kNoPropRange,
/*special parents,kids,skip*/ 0,&gFormKids,eHTMLTag_unknown},
@@ -540,7 +547,7 @@ nsHTMLElement gHTMLElements[] = {
{ /*tag*/ eHTMLTag_frame,
/*req-parent excl-parent*/ eHTMLTag_frameset,eHTMLTag_unknown,
/*rootnodes,endrootnodes*/ &gInFrameset,&gInFrameset,
- /*autoclose starttags and endtags*/ 0,0,0,
+ /*autoclose starttags and endtags*/ 0,0,0,0,
/*parent,incl,exclgroups*/ kNone, kNone, kNone,
/*special props, prop-range*/ kNoPropagate|kNoStyleLeaksIn, kNoPropRange,
/*special parents,kids,skip*/ &gInFrameset,0,eHTMLTag_unknown},
@@ -548,7 +555,7 @@ nsHTMLElement gHTMLElements[] = {
{ /*tag*/ eHTMLTag_frameset,
/*req-parent excl-parent*/ eHTMLTag_unknown,eHTMLTag_body,
/*rootnodes,endrootnodes*/ &gFramesetParents,&gInHTML,
- /*autoclose starttags and endtags*/ 0,0,0,
+ /*autoclose starttags and endtags*/ 0,0,0,0,
/*parent,incl,exclgroups*/ kHTMLContent, kSelf, kAllTags,
/*special props, prop-range*/ kOmitWS|kNoPropagate|kNoStyleLeaksIn, kNoPropRange,
/*special parents,kids,skip*/ &gInHTML,&gFramesetKids,eHTMLTag_unknown},
@@ -557,7 +564,7 @@ nsHTMLElement gHTMLElements[] = {
{ /*tag*/ eHTMLTag_h1,
/*req-parent excl-parent*/ eHTMLTag_unknown,eHTMLTag_unknown,
/*rootnodes,endrootnodes*/ &gRootTags,&gRootTags,
- /*autoclose starttags and endtags*/ &gHeadingTags, &gHeadingTags, &gHeadingTags,
+ /*autoclose starttags and endtags*/ &gHeadingTags, &gHeadingTags, &gHeadingTags,0,
/*parent,incl,exclgroups*/ kHeading, kFlowEntity, kNone,
/*special props, prop-range*/ 0,kDefaultPropRange,
/*special parents,kids,skip*/ 0,0,eHTMLTag_unknown},
@@ -565,7 +572,7 @@ nsHTMLElement gHTMLElements[] = {
{ /*tag*/ eHTMLTag_h2,
/*req-parent excl-parent*/ eHTMLTag_unknown,eHTMLTag_unknown,
/*rootnodes,endrootnodes*/ &gRootTags,&gRootTags,
- /*autoclose starttags and endtags*/ &gHeadingTags, &gHeadingTags, &gHeadingTags,
+ /*autoclose starttags and endtags*/ &gHeadingTags, &gHeadingTags, &gHeadingTags,0,
/*parent,incl,exclgroups*/ kHeading, kFlowEntity, kNone,
/*special props, prop-range*/ 0,kDefaultPropRange,
/*special parents,kids,skip*/ 0,0,eHTMLTag_unknown},
@@ -573,7 +580,7 @@ nsHTMLElement gHTMLElements[] = {
{ /*tag*/ eHTMLTag_h3,
/*req-parent excl-parent*/ eHTMLTag_unknown,eHTMLTag_unknown,
/*rootnodes,endrootnodes*/ &gRootTags,&gRootTags,
- /*autoclose starttags and endtags*/ &gHeadingTags, &gHeadingTags, &gHeadingTags,
+ /*autoclose starttags and endtags*/ &gHeadingTags, &gHeadingTags, &gHeadingTags,0,
/*parent,incl,exclgroups*/ kHeading, kFlowEntity, kNone,
/*special props, prop-range*/ 0,kDefaultPropRange,
/*special parents,kids,skip*/ 0,0,eHTMLTag_unknown},
@@ -581,7 +588,7 @@ nsHTMLElement gHTMLElements[] = {
{ /*tag*/ eHTMLTag_h4,
/*req-parent excl-parent*/ eHTMLTag_unknown,eHTMLTag_unknown,
/*rootnodes,endrootnodes*/ &gRootTags,&gRootTags,
- /*autoclose starttags and endtags*/ &gHeadingTags, &gHeadingTags, &gHeadingTags,
+ /*autoclose starttags and endtags*/ &gHeadingTags, &gHeadingTags, &gHeadingTags,0,
/*parent,incl,exclgroups*/ kHeading, kFlowEntity, kNone,
/*special props, prop-range*/ 0,kDefaultPropRange,
/*special parents,kids,skip*/ 0,0,eHTMLTag_unknown},
@@ -589,7 +596,7 @@ nsHTMLElement gHTMLElements[] = {
{ /*tag*/ eHTMLTag_h5,
/*req-parent excl-parent*/ eHTMLTag_unknown,eHTMLTag_unknown,
/*rootnodes,endrootnodes*/ &gRootTags,&gRootTags,
- /*autoclose starttags and endtags*/ &gHeadingTags, &gHeadingTags, &gHeadingTags,
+ /*autoclose starttags and endtags*/ &gHeadingTags, &gHeadingTags, &gHeadingTags,0,
/*parent,incl,exclgroups*/ kHeading, kFlowEntity, kNone,
/*special props, prop-range*/ 0,kDefaultPropRange,
/*special parents,kids,skip*/ 0,0,eHTMLTag_unknown},
@@ -597,7 +604,7 @@ nsHTMLElement gHTMLElements[] = {
{ /*tag*/ eHTMLTag_h6,
/*req-parent excl-parent*/ eHTMLTag_unknown,eHTMLTag_unknown,
/*rootnodes,endrootnodes*/ &gRootTags,&gRootTags,
- /*autoclose starttags and endtags*/ &gHeadingTags, &gHeadingTags, &gHeadingTags,
+ /*autoclose starttags and endtags*/ &gHeadingTags, &gHeadingTags, &gHeadingTags,0,
/*parent,incl,exclgroups*/ kHeading, kFlowEntity, kNone,
/*special props, prop-range*/ 0,kDefaultPropRange,
/*special parents,kids,skip*/ 0,0,eHTMLTag_unknown},
@@ -605,7 +612,7 @@ nsHTMLElement gHTMLElements[] = {
{ /*tag*/ eHTMLTag_head,
/*req-parent excl-parent*/ eHTMLTag_unknown,eHTMLTag_unknown,
/*rootnodes,endrootnodes*/ &gInHTML, &gInHTML,
- /*autoclose starttags and endtags*/ 0,0,0,
+ /*autoclose starttags and endtags*/ 0,0,0,0,
/*parent,incl,exclgroups*/ kHTMLContent, (kHeadContent|kHeadMisc), kNone,
/*special props, prop-range*/ kNoStyleLeaksIn, kDefaultPropRange,
/*special parents,kids,skip*/ &gInHTML,&gHeadKids,eHTMLTag_unknown},
@@ -613,7 +620,7 @@ nsHTMLElement gHTMLElements[] = {
{ /*tag*/ eHTMLTag_hr,
/*req-parent excl-parent*/ eHTMLTag_unknown,eHTMLTag_unknown,
/*rootnodes,endrootnodes*/ &gRootTags,&gRootTags,
- /*autoclose starttags and endtags*/ &gHRAutoClose,0,0,
+ /*autoclose starttags and endtags*/ &gHRAutoClose,0,0,0,
/*parent,incl,exclgroups*/ kBlock, kNone, kNone,
/*special props, prop-range*/ 0,kDefaultPropRange,
/*special parents,kids,skip*/ 0,0,eHTMLTag_unknown},
@@ -621,7 +628,7 @@ nsHTMLElement gHTMLElements[] = {
{ /*tag*/ eHTMLTag_html,
/*req-parent excl-parent*/ eHTMLTag_unknown,eHTMLTag_html,
/*rootnodes,endrootnodes*/ &gHTMLRootTags, &gHTMLRootTags,
- /*autoclose starttags and endtags*/ 0,0,0,
+ /*autoclose starttags and endtags*/ 0,0,0,0,
/*parent,incl,exclgroups*/ kNone, kHTMLContent, kNone,
/*special props, prop-range*/ kSaveMisplaced|kOmitEndTag|kNoStyleLeaksIn, kDefaultPropRange,
/*special parents,kids,skip*/ 0,&gHtmlKids,eHTMLTag_unknown},
@@ -629,7 +636,7 @@ nsHTMLElement gHTMLElements[] = {
{ /*tag*/ eHTMLTag_i,
/*req-parent excl-parent*/ eHTMLTag_unknown,eHTMLTag_unknown,
/*rootnodes,endrootnodes*/ &gRootTags,&gRootTags,
- /*autoclose starttags and endtags*/ 0,0,0,
+ /*autoclose starttags and endtags*/ 0,0,0,0,
/*parent,incl,exclgroups*/ kFontStyle, (kSelf|FSTYPE), kNone,
/*special props, prop-range*/ 0, kDefaultPropRange,
/*special parents,kids,skip*/ 0,0,eHTMLTag_unknown},
@@ -637,7 +644,7 @@ nsHTMLElement gHTMLElements[] = {
{ /*tag*/ eHTMLTag_iframe,
/*req-parent excl-parent*/ eHTMLTag_unknown,eHTMLTag_unknown,
/*rootnodes,endrootnodes*/ &gRootTags,&gRootTags,
- /*autoclose starttags and endtags*/ 0,0,0,
+ /*autoclose starttags and endtags*/ 0,0,0,0,
/*parent,incl,exclgroups*/ kSpecial, (kSelf|kFlowEntity), kNone,
/*special props, prop-range*/ kNoStyleLeaksIn, kNoPropRange,
/*special parents,kids,skip*/ 0,0,eHTMLTag_unknown},
@@ -645,7 +652,7 @@ nsHTMLElement gHTMLElements[] = {
{ /*tag*/ eHTMLTag_ilayer,
/*req-parent excl-parent*/ eHTMLTag_unknown,eHTMLTag_unknown,
/*rootnodes,endrootnodes*/ &gRootTags,&gRootTags,
- /*autoclose starttags and endtags*/ 0,0,0,
+ /*autoclose starttags and endtags*/ 0,0,0,0,
/*parent,incl,exclgroups*/ kBlock, kFlowEntity, kNone,
/*special props, prop-range*/ kNoStyleLeaksIn, kNoPropRange,
/*special parents,kids,skip*/ 0,0,eHTMLTag_unknown},
@@ -653,7 +660,7 @@ nsHTMLElement gHTMLElements[] = {
{ /*tag*/ eHTMLTag_image,
/*req-parent excl-parent*/ eHTMLTag_unknown,eHTMLTag_unknown,
/*rootnodes,endrootnodes*/ &gRootTags,&gRootTags,
- /*autoclose starttags and endtags*/ 0,0,0,
+ /*autoclose starttags and endtags*/ 0,0,0,0,
/*parent,incl,exclgroups*/ kSpecial, kNone, kNone,
/*special props, prop-range*/ 0,kDefaultPropRange,
/*special parents,kids,skip*/ 0,0,eHTMLTag_unknown},
@@ -661,7 +668,7 @@ nsHTMLElement gHTMLElements[] = {
{ /*tag*/ eHTMLTag_img,
/*req-parent excl-parent*/ eHTMLTag_unknown,eHTMLTag_unknown,
/*rootnodes,endrootnodes*/ &gRootTags,&gRootTags,
- /*autoclose starttags and endtags*/ 0,0,0,
+ /*autoclose starttags and endtags*/ 0,0,0,0,
/*parent,incl,exclgroups*/ kSpecial, kNone, kNone,
/*special props, prop-range*/ 0,kDefaultPropRange,
/*special parents,kids,skip*/ 0,0,eHTMLTag_unknown},
@@ -669,7 +676,7 @@ nsHTMLElement gHTMLElements[] = {
{ /*tag*/ eHTMLTag_input,
/*req-parent excl-parent*/ eHTMLTag_unknown,eHTMLTag_unknown,
/*rootnodes,endrootnodes*/ &gRootTags,&gRootTags,
- /*autoclose starttags and endtags*/ 0,0,0,
+ /*autoclose starttags and endtags*/ 0,0,0,0,
/*parent,incl,exclgroups*/ kFormControl, kNone, kNone,
/*special props, prop-range*/ 0,kDefaultPropRange,
/*special parents,kids,skip*/ 0,0,eHTMLTag_unknown},
@@ -677,7 +684,7 @@ nsHTMLElement gHTMLElements[] = {
{ /*tag*/ eHTMLTag_ins,
/*req-parent excl-parent*/ eHTMLTag_unknown,eHTMLTag_unknown,
/*rootnodes,endrootnodes*/ &gRootTags,&gRootTags,
- /*autoclose starttags and endtags*/ 0,0,0,
+ /*autoclose starttags and endtags*/ 0,0,0,0,
/*parent,incl,exclgroups*/ kFlowEntity, (kSelf|kFlowEntity), kNone,
/*special props, prop-range*/ 0,kDefaultPropRange,
/*special parents,kids,skip*/ 0,0,eHTMLTag_unknown},
@@ -685,7 +692,7 @@ nsHTMLElement gHTMLElements[] = {
{ /*tag*/ eHTMLTag_isindex,
/*requiredAncestor*/ eHTMLTag_unknown,eHTMLTag_unknown,
/*rootnodes,endrootnodes*/ &gRootTags,&gRootTags,
- /*autoclose starttags and endtags*/ 0,0,0,
+ /*autoclose starttags and endtags*/ 0,0,0,0,
/*parent,incl,exclgroups*/ (kBlock|kHeadContent), kFlowEntity, kNone,
/*special props, prop-range*/ 0,kDefaultPropRange,
/*special parents,kids,skip*/ &gInBody,0,eHTMLTag_unknown},
@@ -693,7 +700,7 @@ nsHTMLElement gHTMLElements[] = {
{ /*tag*/ eHTMLTag_kbd,
/*req-parent excl-parent*/ eHTMLTag_unknown,eHTMLTag_unknown,
/*rootnodes,endrootnodes*/ &gRootTags,&gRootTags,
- /*autoclose starttags and endtags*/ 0,0,0,
+ /*autoclose starttags and endtags*/ 0,0,0,0,
/*parent,incl,exclgroups*/ kPhrase, (kSelf|kFlowEntity), kNone,
/*special props, prop-range*/ 0,kDefaultPropRange,
/*special parents,kids,skip*/ 0,0,eHTMLTag_unknown},
@@ -701,7 +708,7 @@ nsHTMLElement gHTMLElements[] = {
{ /*tag*/ eHTMLTag_keygen,
/*req-parent excl-parent*/ eHTMLTag_unknown,eHTMLTag_unknown,
/*rootnodes,endrootnodes*/ &gRootTags,&gRootTags,
- /*autoclose starttags and endtags*/ 0,0,0,
+ /*autoclose starttags and endtags*/ 0,0,0,0,
/*parent,incl,exclgroups*/ kNone, kNone, kNone,
/*special props, prop-range*/ 0,kDefaultPropRange,
/*special parents,kids,skip*/ 0,0,eHTMLTag_unknown},
@@ -709,7 +716,7 @@ nsHTMLElement gHTMLElements[] = {
{ /*tag*/ eHTMLTag_label,
/*req-parent excl-parent*/ eHTMLTag_unknown,eHTMLTag_unknown,
/*rootnodes,endrootnodes*/ &gRootTags,&gRootTags,
- /*autoclose starttags and endtags*/ 0,0,0,
+ /*autoclose starttags and endtags*/ 0,0,0,0,
/*parent,incl,exclgroups*/ kFormControl, kInlineEntity, kSelf,
/*special props, prop-range*/ 0,kDefaultPropRange,
/*special parents,kids,skip*/ 0,0,eHTMLTag_unknown},
@@ -717,7 +724,7 @@ nsHTMLElement gHTMLElements[] = {
{ /*tag*/ eHTMLTag_layer,
/*req-parent excl-parent*/ eHTMLTag_unknown,eHTMLTag_unknown,
/*rootnodes,endrootnodes*/ &gRootTags,&gRootTags,
- /*autoclose starttags and endtags*/ 0,0,0,
+ /*autoclose starttags and endtags*/ 0,0,0,0,
/*parent,incl,exclgroups*/ kBlock, kFlowEntity|kSelf, kSelf,
/*special props, prop-range*/ 0,kDefaultPropRange,
/*special parents,kids,skip*/ 0,0,eHTMLTag_unknown},
@@ -725,7 +732,7 @@ nsHTMLElement gHTMLElements[] = {
{ /*tag*/ eHTMLTag_legend,
/*requiredAncestor*/ eHTMLTag_form,eHTMLTag_unknown,
/*rootnodes,endrootnodes*/ &gInFieldset,&gInFieldset,
- /*autoclose starttags and endtags*/ 0,0,0,
+ /*autoclose starttags and endtags*/ 0,0,0,0,
/*parent,incl,exclgroups*/ kNone, kInlineEntity, kNone,
/*special props, prop-range*/ 0,kDefaultPropRange,
/*special parents,kids,skip*/ &gInFieldset,0,eHTMLTag_unknown},
@@ -733,7 +740,7 @@ nsHTMLElement gHTMLElements[] = {
{ /*tag*/ eHTMLTag_li,
/*req-parent excl-parent*/ eHTMLTag_unknown,eHTMLTag_unknown,
/*rootnodes,endrootnodes*/ &gLIRootTags,&gLIRootTags,
- /*autoclose starttags and endtags*/ &gLIAutoClose,0,0,
+ /*autoclose starttags and endtags*/ &gLIAutoClose,0,0,0,
/*parent,incl,exclgroups*/ kFlowEntity, kFlowEntity, kSelf,
/*special props, prop-range*/ kNoPropagate, kDefaultPropRange,
/*special parents,kids,skip*/ 0,&gLIKids,eHTMLTag_unknown},
@@ -741,7 +748,7 @@ nsHTMLElement gHTMLElements[] = {
{ /*tag*/ eHTMLTag_link,
/*req-parent excl-parent*/ eHTMLTag_unknown,eHTMLTag_unknown,
/*rootnodes,endrootnodes*/ &gInHead,&gInHead,
- /*autoclose starttags and endtags*/ 0,0,0,
+ /*autoclose starttags and endtags*/ 0,0,0,0,
/*parent,incl,exclgroups*/ kHeadMisc, kNone, kNone,
/*special props, prop-range*/ 0,kDefaultPropRange,
/*special parents,kids,skip*/ &gInHead,0,eHTMLTag_unknown},
@@ -749,7 +756,7 @@ nsHTMLElement gHTMLElements[] = {
{ /*tag*/ eHTMLTag_listing,
/*req-parent excl-parent*/ eHTMLTag_unknown,eHTMLTag_unknown,
/*rootnodes,endrootnodes*/ &gRootTags,&gRootTags,
- /*autoclose starttags and endtags*/ 0,0,0,
+ /*autoclose starttags and endtags*/ 0,0,0,0,
/*parent,incl,exclgroups*/ kPreformatted, kNone, kNone,
/*special props, prop-range*/ 0,kDefaultPropRange,
/*special parents,kids,skip*/ 0,0,eHTMLTag_unknown},
@@ -757,7 +764,7 @@ nsHTMLElement gHTMLElements[] = {
{ /*tag*/ eHTMLTag_map,
/*req-parent excl-parent*/ eHTMLTag_unknown,eHTMLTag_unknown,
/*rootnodes,endrootnodes*/ &gRootTags,&gRootTags,
- /*autoclose starttags and endtags*/ 0,0,0,
+ /*autoclose starttags and endtags*/ 0,0,0,0,
/*parent,incl,exclgroups*/ kSpecial, SPECIALTYPE|kBlockEntity, kNone,
/*special props, prop-range*/ kOmitWS, kDefaultPropRange,
/*special parents,kids,skip*/ 0,&gMapKids,eHTMLTag_unknown},
@@ -765,7 +772,7 @@ nsHTMLElement gHTMLElements[] = {
{ /*tag*/ eHTMLTag_menu,
/*req-parent excl-parent*/ eHTMLTag_unknown,eHTMLTag_unknown,
/*rootnodes,endrootnodes*/ &gRootTags,&gRootTags,
- /*autoclose starttags and endtags*/ 0,0,0,
+ /*autoclose starttags and endtags*/ 0,0,0,0,
/*parent,incl,exclgroups*/ kList, (kSelf|kFlowEntity), kNone,
/*special props, prop-range*/ 0,kDefaultPropRange,
/*special parents,kids,skip*/ 0,&gULKids,eHTMLTag_unknown},
@@ -773,7 +780,7 @@ nsHTMLElement gHTMLElements[] = {
{ /*tag*/ eHTMLTag_meta,
/*req-parent excl-parent*/ eHTMLTag_unknown,eHTMLTag_unknown,
/*rootnodes,endrootnodes*/ &gInHead, &gInHead,
- /*autoclose starttags and endtags*/ 0,0,0,
+ /*autoclose starttags and endtags*/ 0,0,0,0,
/*parent,incl,exclgroups*/ kHeadMisc, kNone, kNone,
/*special props, prop-range*/ kNoStyleLeaksIn, kDefaultPropRange,
/*special parents,kids,skip*/ &gInHead,0,eHTMLTag_unknown},
@@ -781,7 +788,7 @@ nsHTMLElement gHTMLElements[] = {
{ /*tag*/ eHTMLTag_multicol,
/*req-parent excl-parent*/ eHTMLTag_unknown,eHTMLTag_unknown,
/*rootnodes,endrootnodes*/ &gRootTags,&gRootTags,
- /*autoclose starttags and endtags*/ 0,0,0,
+ /*autoclose starttags and endtags*/ 0,0,0,0,
/*parent,incl,exclgroups*/ kExtensions, kNone, kNone,
/*special props, prop-range*/ 0,kDefaultPropRange,
/*special parents,kids,skip*/ 0,0,eHTMLTag_unknown},
@@ -789,7 +796,7 @@ nsHTMLElement gHTMLElements[] = {
{ /*tag*/ eHTMLTag_nobr,
/*req-parent excl-parent*/ eHTMLTag_unknown,eHTMLTag_unknown,
/*rootnodes,endrootnodes*/ &gRootTags,&gRootTags,
- /*autoclose starttags and endtags*/ 0,0,0,
+ /*autoclose starttags and endtags*/ 0,0,0,0,
/*parent,incl,exclgroups*/ kExtensions, (kFlowEntity), kNone,
/*special props, prop-range*/ 0,kDefaultPropRange,
/*special parents,kids,skip*/ 0,0,eHTMLTag_unknown},
@@ -797,7 +804,7 @@ nsHTMLElement gHTMLElements[] = {
{ /*tag*/ eHTMLTag_noembed,
/*req-parent excl-parent*/ eHTMLTag_unknown,eHTMLTag_unknown,
/*rootnodes,endrootnodes*/ &gRootTags,&gRootTags,
- /*autoclose starttags and endtags*/ 0,0,0,
+ /*autoclose starttags and endtags*/ 0,0,0,0,
/*parent,incl,exclgroups*/ kNone, kNone, kNone,
/*special props, prop-range*/ kDiscardTag, kDefaultPropRange,
/*special parents,kids,skip*/ 0,0,eHTMLTag_noembed},
@@ -805,7 +812,7 @@ nsHTMLElement gHTMLElements[] = {
{ /*tag*/ eHTMLTag_noframes,
/*req-parent excl-parent*/ eHTMLTag_unknown,eHTMLTag_unknown,
/*rootnodes,endrootnodes*/ &gNoframeRoot,&gNoframeRoot,
- /*autoclose starttags and endtags*/ 0,0,0,
+ /*autoclose starttags and endtags*/ 0,0,0,0,
/*parent,incl,exclgroups*/ kBlock, kFlowEntity, kNone,
/*special props, prop-range*/ kDiscardTag, kNoPropRange,
/*special parents,kids,skip*/ &gNoframeRoot,&gNoframesKids,eHTMLTag_noframes},
@@ -813,7 +820,7 @@ nsHTMLElement gHTMLElements[] = {
{ /*tag*/ eHTMLTag_nolayer,
/*req-parent excl-parent*/ eHTMLTag_unknown,eHTMLTag_unknown,
/*rootnodes,endrootnodes*/ &gRootTags,&gRootTags,
- /*autoclose starttags and endtags*/ 0,0,0,
+ /*autoclose starttags and endtags*/ 0,0,0,0,
/*parent,incl,exclgroups*/ kNone, kNone, kNone,
/*special props, prop-range*/ kDiscardTag, kNoPropRange,
/*special parents,kids,skip*/ 0,0,eHTMLTag_nolayer},
@@ -821,7 +828,7 @@ nsHTMLElement gHTMLElements[] = {
{ /*tag*/ eHTMLTag_noscript,
/*req-parent excl-parent*/ eHTMLTag_unknown,eHTMLTag_unknown,
/*rootnodes,endrootnodes*/ &gRootTags,&gRootTags,
- /*autoclose starttags and endtags*/ 0,0,0,
+ /*autoclose starttags and endtags*/ 0,0,0,0,
/*parent,incl,exclgroups*/ kBlock, kFlowEntity, kNone,
/*special props, prop-range*/ kDiscardTag, kNoPropRange,
/*special parents,kids,skip*/ 0,0,eHTMLTag_noscript},
@@ -829,7 +836,7 @@ nsHTMLElement gHTMLElements[] = {
{ /*tag*/ eHTMLTag_object,
/*req-parent excl-parent*/ eHTMLTag_unknown,eHTMLTag_unknown,
/*rootnodes,endrootnodes*/ &gRootTags,&gRootTags,
- /*autoclose starttags and endtags*/ 0,0,0,
+ /*autoclose starttags and endtags*/ 0,0,0,0,
/*parent,incl,exclgroups*/ (kHeadMisc|kSpecial), (kFlowEntity|SPECIALTYPE|kSelf), kNone,
/*special props, prop-range*/ 0,kDefaultPropRange,
/*special parents,kids,skip*/ 0,&gContainsParam,eHTMLTag_unknown},
@@ -837,7 +844,7 @@ nsHTMLElement gHTMLElements[] = {
{ /*tag*/ eHTMLTag_ol,
/*req-parent excl-parent*/ eHTMLTag_unknown,eHTMLTag_unknown,
/*rootnodes,endrootnodes*/ &gOLRootTags,&gOLRootTags,
- /*autoclose starttags and endtags*/ &gOLAutoClose, &gULCloseTags, 0,
+ /*autoclose starttags and endtags*/ &gOLAutoClose, &gULCloseTags, 0,0,
/*parent,incl,exclgroups*/ kList, (kFlowEntity|kSelf), kNone,
/*special props, prop-range*/ 0,kDefaultPropRange,
/*special parents,kids,skip*/ 0,&gULKids,eHTMLTag_unknown},
@@ -845,7 +852,7 @@ nsHTMLElement gHTMLElements[] = {
{ /*tag*/ eHTMLTag_optgroup,
/*requiredAncestor*/ eHTMLTag_select,eHTMLTag_unknown,
/*rootnodes,endrootnodes*/ &gOptgroupParents,&gOptgroupParents,
- /*autoclose starttags and endtags*/ 0,0,0,
+ /*autoclose starttags and endtags*/ 0,0,0,0,
/*parent,incl,exclgroups*/ kNone, kNone, kNone,
/*special props, prop-range*/ 0,kDefaultPropRange,
/*special parents,kids,skip*/ &gOptgroupParents,&gContainsOpts,eHTMLTag_unknown},
@@ -853,7 +860,7 @@ nsHTMLElement gHTMLElements[] = {
{ /*tag*/ eHTMLTag_option,
/*requiredAncestor*/ eHTMLTag_unknown,eHTMLTag_unknown,
/*rootnodes,endrootnodes*/ &gOptgroupParents,&gOptgroupParents,
- /*autoclose starttags and endtags*/ 0,0,0,
+ /*autoclose starttags and endtags*/ 0,0,0,0,
/*parent,incl,exclgroups*/ kNone, kPCDATA, kFlowEntity,
/*special props, prop-range*/ kNoPropagate|kNoStyleLeaksIn, kDefaultPropRange,
/*special parents,kids,skip*/ &gOptgroupParents,&gContainsText,eHTMLTag_unknown},
@@ -861,7 +868,7 @@ nsHTMLElement gHTMLElements[] = {
{ /*tag*/ eHTMLTag_p,
/*req-parent excl-parent*/ eHTMLTag_unknown,eHTMLTag_unknown,
/*rootnodes,endrootnodes*/ &gInBody,&gInBody,
- /*autoclose starttags and endtags*/ 0,0,0,
+ /*autoclose starttags and endtags*/ 0,0,0,&gDontAutoClose,
/*parent,incl,exclgroups*/ kBlock, kInlineEntity, kNone, //this used to contain FLOW. But it's really an inline container.
/*special props, prop-range*/ 0,kDefaultPropRange, //otherwise it tries to contain things like H1..H6
/*special parents,kids,skip*/ 0,&gInP,eHTMLTag_unknown},
@@ -869,7 +876,7 @@ nsHTMLElement gHTMLElements[] = {
{ /*tag*/ eHTMLTag_param,
/*req-parent excl-parent*/ eHTMLTag_unknown,eHTMLTag_unknown,
/*rootnodes,endrootnodes*/ &gParamParents, &gParamParents,
- /*autoclose starttags and endtags*/ &gPAutoClose,0,0,
+ /*autoclose starttags and endtags*/ &gPAutoClose,0,0,0,
/*parent,incl,exclgroups*/ kNone, kNone, kNone,
/*special props, prop-range*/ 0, kNoPropRange,
/*special parents,kids,skip*/ &gParamParents,0,eHTMLTag_unknown},
@@ -877,7 +884,7 @@ nsHTMLElement gHTMLElements[] = {
{ /*tag*/ eHTMLTag_parsererror,
/*req-parent excl-parent*/ eHTMLTag_unknown,eHTMLTag_unknown,
/*rootnodes,endrootnodes*/ &gRootTags,&gRootTags,
- /*autoclose starttags and endtags*/ &gDivAutoClose,0,0,
+ /*autoclose starttags and endtags*/ &gDivAutoClose,0,0,0,
/*parent,incl,exclgroups*/ kNone, (kSelf|kFlowEntity), kNone,
/*special props, prop-range*/ 0, kNoPropRange,
/*special parents,kids,skip*/ 0,0,eHTMLTag_unknown},
@@ -885,7 +892,7 @@ nsHTMLElement gHTMLElements[] = {
{ /*tag*/ eHTMLTag_plaintext,
/*req-parent excl-parent*/ eHTMLTag_unknown,eHTMLTag_unknown,
/*rootnodes,endrootnodes*/ &gRootTags,&gRootTags,
- /*autoclose starttags and endtags*/ 0,0,0,
+ /*autoclose starttags and endtags*/ 0,0,0,0,
/*parent,incl,exclgroups*/ kExtensions, kFlowEntity, kNone,
/*special props, prop-range*/ 0,kDefaultPropRange,
/*special parents,kids,skip*/ 0,0,eHTMLTag_html},
@@ -893,7 +900,7 @@ nsHTMLElement gHTMLElements[] = {
{ /*tag*/ eHTMLTag_pre,
/*req-parent excl-parent*/ eHTMLTag_unknown,eHTMLTag_unknown,
/*rootnodes,endrootnodes*/ &gRootTags,&gRootTags,
- /*autoclose starttags and endtags*/ 0,0,0,
+ /*autoclose starttags and endtags*/ 0,0,0,0,
/*parent,incl,exclgroups*/ kPreformatted, kFlowEntity, kNone, //I'm allowing WAY too much in here. Spec says inline.
/*special props, prop-range*/ kNoStyleLeaksIn, kDefaultPropRange,
/*special parents,kids,skip*/ 0,&gPreKids,eHTMLTag_unknown},
@@ -901,7 +908,7 @@ nsHTMLElement gHTMLElements[] = {
{ /*tag*/ eHTMLTag_q,
/*req-parent excl-parent*/ eHTMLTag_unknown,eHTMLTag_unknown,
/*rootnodes,endrootnodes*/ &gRootTags,&gRootTags,
- /*autoclose starttags and endtags*/ 0,0,0,
+ /*autoclose starttags and endtags*/ 0,0,0,0,
/*parent,incl,exclgroups*/ kSpecial, (kSelf|SPECIALTYPE), kNone,
/*special props, prop-range*/ 0,kDefaultPropRange,
/*special parents,kids,skip*/ 0,0,eHTMLTag_unknown},
@@ -909,7 +916,7 @@ nsHTMLElement gHTMLElements[] = {
{ /*tag*/ eHTMLTag_s,
/*req-parent excl-parent*/ eHTMLTag_unknown,eHTMLTag_unknown,
/*rootnodes,endrootnodes*/ &gRootTags,&gRootTags,
- /*autoclose starttags and endtags*/ 0,0,0,
+ /*autoclose starttags and endtags*/ 0,0,0,0,
/*parent,incl,exclgroups*/ kFontStyle, (kSelf|FSTYPE), kNone,
/*special props, prop-range*/ 0,kDefaultPropRange,
/*special parents,kids,skip*/ 0,0,eHTMLTag_unknown},
@@ -917,7 +924,7 @@ nsHTMLElement gHTMLElements[] = {
{ /*tag*/ eHTMLTag_samp,
/*req-parent excl-parent*/ eHTMLTag_unknown,eHTMLTag_unknown,
/*rootnodes,endrootnodes*/ &gRootTags,&gRootTags,
- /*autoclose starttags and endtags*/ 0,0,0,
+ /*autoclose starttags and endtags*/ 0,0,0,0,
/*parent,incl,exclgroups*/ kPhrase, (kSelf|kFlowEntity), kNone,
/*special props, prop-range*/ 0,kDefaultPropRange,
/*special parents,kids,skip*/ 0,0,eHTMLTag_unknown},
@@ -925,7 +932,7 @@ nsHTMLElement gHTMLElements[] = {
{ /*tag*/ eHTMLTag_script,
/*req-parent excl-parent*/ eHTMLTag_unknown,eHTMLTag_unknown,
/*rootnodes,endrootnodes*/ &gRootTags,&gRootTags,
- /*autoclose starttags and endtags*/ 0,0,0,
+ /*autoclose starttags and endtags*/ 0,0,0,0,
/*parent,incl,exclgroups*/ (kSpecial|kHeadMisc), kPCDATA, kNone,
/*special props, prop-range*/ kNoStyleLeaksIn|kLegalOpen, kNoPropRange,
/*special parents,kids,skip*/ 0,&gContainsText,eHTMLTag_script},
@@ -933,7 +940,7 @@ nsHTMLElement gHTMLElements[] = {
{ /*tag*/ eHTMLTag_select,
/*requiredAncestor*/ eHTMLTag_unknown, eHTMLTag_unknown,
/*rootnodes,endrootnodes*/ &gInForm,&gInForm,
- /*autoclose starttags and endtags*/ 0,0,0,
+ /*autoclose starttags and endtags*/ 0,0,0,0,
/*parent,incl,exclgroups*/ kFormControl, kNone, kFlowEntity,
/*special props, prop-range*/ kNoPropagate|kOmitWS|kNoStyleLeaksIn, kDefaultPropRange,
/*special parents,kids,skip*/ &gInForm,&gContainsOpts,eHTMLTag_unknown},
@@ -941,7 +948,7 @@ nsHTMLElement gHTMLElements[] = {
{ /*tag*/ eHTMLTag_server,
/*req-parent excl-parent*/ eHTMLTag_unknown,eHTMLTag_unknown,
/*rootnodes,endrootnodes*/ &gRootTags,&gRootTags,
- /*autoclose starttags and endtags*/ 0,0,0,
+ /*autoclose starttags and endtags*/ 0,0,0,0,
/*parent,incl,exclgroups*/ kNone, kNone, kNone,
/*special props, prop-range*/ kNoStyleLeaksIn, kNoPropRange,
/*special parents,kids,skip*/ 0,0,eHTMLTag_unknown},
@@ -949,7 +956,7 @@ nsHTMLElement gHTMLElements[] = {
{ /*tag*/ eHTMLTag_small,
/*req-parent excl-parent*/ eHTMLTag_unknown,eHTMLTag_unknown,
/*rootnodes,endrootnodes*/ &gRootTags,&gRootTags,
- /*autoclose starttags and endtags*/ 0,0,0,
+ /*autoclose starttags and endtags*/ 0,0,0,0,
/*parent,incl,exclgroups*/ kFontStyle, (kSelf|FSTYPE), kNone,
/*special props, prop-range*/ 0,kDefaultPropRange,
/*special parents,kids,skip*/ 0,0,eHTMLTag_unknown},
@@ -957,7 +964,7 @@ nsHTMLElement gHTMLElements[] = {
{ /*tag*/ eHTMLTag_sound,
/*req-parent excl-parent*/ eHTMLTag_unknown,eHTMLTag_unknown,
/*rootnodes,endrootnodes*/ &gRootTags,&gRootTags,
- /*autoclose starttags and endtags*/ 0,0,0,
+ /*autoclose starttags and endtags*/ 0,0,0,0,
/*parent,incl,exclgroups*/ kNone, kNone, kNone,
/*special props, prop-range*/ 0,kDefaultPropRange,
/*special parents,kids,skip*/ 0,0,eHTMLTag_unknown},
@@ -965,7 +972,7 @@ nsHTMLElement gHTMLElements[] = {
{ /*tag*/ eHTMLTag_sourcetext,
/*req-parent excl-parent*/ eHTMLTag_unknown,eHTMLTag_unknown,
/*rootnodes,endrootnodes*/ &gRootTags,&gRootTags,
- /*autoclose starttags and endtags*/ &gDivAutoClose,0,0,
+ /*autoclose starttags and endtags*/ &gDivAutoClose,0,0,0,
/*parent,incl,exclgroups*/ kNone, (kSelf|kFlowEntity), kNone,
/*special props, prop-range*/ 0,kDefaultPropRange,
/*special parents,kids,skip*/ 0,0,eHTMLTag_unknown},
@@ -973,7 +980,7 @@ nsHTMLElement gHTMLElements[] = {
{ /*tag*/ eHTMLTag_spacer,
/*req-parent excl-parent*/ eHTMLTag_unknown,eHTMLTag_unknown,
/*rootnodes,endrootnodes*/ &gRootTags,&gRootTags,
- /*autoclose starttags and endtags*/ 0,0,0,
+ /*autoclose starttags and endtags*/ 0,0,0,0,
/*parent,incl,exclgroups*/ kExtensions, kNone, kNone,
/*special props, prop-range*/ 0,kDefaultPropRange,
/*special parents,kids,skip*/ 0,0,eHTMLTag_unknown},
@@ -981,7 +988,7 @@ nsHTMLElement gHTMLElements[] = {
{ /*tag*/ eHTMLTag_span,
/*req-parent excl-parent*/ eHTMLTag_unknown,eHTMLTag_unknown,
/*rootnodes,endrootnodes*/ &gRootTags,&gRootTags,
- /*autoclose starttags and endtags*/ 0,0,0,
+ /*autoclose starttags and endtags*/ 0,0,0,0,
/*parent,incl,exclgroups*/ kBlockEntity, (kInlineEntity|kSelf|kFlowEntity), kNone,
/*special props, prop-range*/ 0,kDefaultPropRange,
/*special parents,kids,skip*/ 0,0,eHTMLTag_unknown},
@@ -989,7 +996,7 @@ nsHTMLElement gHTMLElements[] = {
{ /*tag*/ eHTMLTag_strike,
/*req-parent excl-parent*/ eHTMLTag_unknown,eHTMLTag_unknown,
/*rootnodes,endrootnodes*/ &gRootTags,&gRootTags,
- /*autoclose starttags and endtags*/ 0,0,0,
+ /*autoclose starttags and endtags*/ 0,0,0,0,
/*parent,incl,exclgroups*/ kFontStyle, (kSelf|FSTYPE), kNone,
/*special props, prop-range*/ 0,kDefaultPropRange,
/*special parents,kids,skip*/ 0,0,eHTMLTag_unknown},
@@ -997,7 +1004,7 @@ nsHTMLElement gHTMLElements[] = {
{ /*tag*/ eHTMLTag_strong,
/*req-parent excl-parent*/ eHTMLTag_unknown,eHTMLTag_unknown,
/*rootnodes,endrootnodes*/ &gRootTags,&gRootTags,
- /*autoclose starttags and endtags*/ 0,0,0,
+ /*autoclose starttags and endtags*/ 0,0,0,0,
/*parent,incl,exclgroups*/ kPhrase, (kSelf|kFlowEntity), kNone,
/*special props, prop-range*/ 0,kDefaultPropRange,
/*special parents,kids,skip*/ 0,&gContainsText,eHTMLTag_unknown},
@@ -1005,7 +1012,7 @@ nsHTMLElement gHTMLElements[] = {
{ /*tag*/ eHTMLTag_style,
/*req-parent excl-parent*/ eHTMLTag_unknown,eHTMLTag_unknown,
/*rootnodes,endrootnodes*/ &gInHead, &gInHead,
- /*autoclose starttags and endtags*/ 0,0,0,
+ /*autoclose starttags and endtags*/ 0,0,0,0,
/*parent,incl,exclgroups*/ kHeadMisc, kPCDATA, kNone,
/*special props, prop-range*/ kNoStyleLeaksIn, kNoPropRange,
/*special parents,kids,skip*/ &gInHead,0,eHTMLTag_style},
@@ -1013,7 +1020,7 @@ nsHTMLElement gHTMLElements[] = {
{ /*tag*/ eHTMLTag_sub,
/*req-parent excl-parent*/ eHTMLTag_unknown,eHTMLTag_unknown,
/*rootnodes,endrootnodes*/ &gRootTags,&gRootTags,
- /*autoclose starttags and endtags*/ 0,0,0,
+ /*autoclose starttags and endtags*/ 0,0,0,0,
/*parent,incl,exclgroups*/ kSpecial, (kSelf|SPECIALTYPE), kNone,
/*special props, prop-range*/ 0,kDefaultPropRange,
/*special parents,kids,skip*/ 0,0,eHTMLTag_unknown},
@@ -1021,7 +1028,7 @@ nsHTMLElement gHTMLElements[] = {
{ /*tag*/ eHTMLTag_sup,
/*req-parent excl-parent*/ eHTMLTag_unknown,eHTMLTag_unknown,
/*rootnodes,endrootnodes*/ &gRootTags,&gRootTags,
- /*autoclose starttags and endtags*/ 0,0,0,
+ /*autoclose starttags and endtags*/ 0,0,0,0,
/*parent,incl,exclgroups*/ kSpecial, (kSelf|SPECIALTYPE), kNone,
/*special props, prop-range*/ 0,kDefaultPropRange,
/*special parents,kids,skip*/ 0,0,eHTMLTag_unknown},
@@ -1029,7 +1036,7 @@ nsHTMLElement gHTMLElements[] = {
{ /*tag*/ eHTMLTag_table,
/*req-parent excl-parent*/ eHTMLTag_unknown,eHTMLTag_unknown,
/*rootnodes,endrootnodes*/ &gRootTags,&gInBody,
- /*autoclose starttags and endtags*/ 0,0,0,
+ /*autoclose starttags and endtags*/ 0,0,0,0,
/*parent,incl,exclgroups*/ kBlock, kNone, (kSelf|kInlineEntity),
/*special props, prop-range*/ (kOmitWS|kBadContentWatch|kNoStyleLeaksIn), 2,
/*special parents,kids,skip*/ 0,&gTableKids,eHTMLTag_unknown},
@@ -1037,7 +1044,7 @@ nsHTMLElement gHTMLElements[] = {
{ /*tag*/ eHTMLTag_tbody,
/*requiredAncestor*/ eHTMLTag_table, eHTMLTag_unknown,
/*rootnodes,endrootnodes*/ &gInTable, &gInTable,
- /*autoclose starttags and endtags*/ &gTBodyAutoClose,0,0,
+ /*autoclose starttags and endtags*/ &gTBodyAutoClose,0,0,0,
/*parent,incl,exclgroups*/ kNone, kNone, (kSelf|kInlineEntity),
/*special props, prop-range*/ (kNoPropagate|kOmitWS|kBadContentWatch|kNoStyleLeaksIn|kDiscardMisplaced), kDefaultPropRange,
/*special parents,kids,skip*/ &gInTable,&gTBodyKids,eHTMLTag_unknown},
@@ -1045,7 +1052,7 @@ nsHTMLElement gHTMLElements[] = {
{ /*tag*/ eHTMLTag_td,
/*requiredAncestor*/ eHTMLTag_table, eHTMLTag_unknown,
/*rootnodes,endrootnodes*/ &gTDRootTags,&gTDRootTags,
- /*autoclose starttags and endtags*/ &gTDCloseTags,&gTDCloseTags,0,
+ /*autoclose starttags and endtags*/ &gTDCloseTags,&gTDCloseTags,0,0,
/*parent,incl,exclgroups*/ kNone, kFlowEntity, kSelf,
/*special props, prop-range*/ kNoStyleLeaksIn, kDefaultPropRange,
/*special parents,kids,skip*/ &gTDRootTags,&gBodyKids,eHTMLTag_unknown},
@@ -1053,7 +1060,7 @@ nsHTMLElement gHTMLElements[] = {
{ /*tag*/ eHTMLTag_textarea,
/*req-parent excl-parent*/ eHTMLTag_unknown,eHTMLTag_unknown,
/*rootnodes,endrootnodes*/ &gInForm, &gInForm,
- /*autoclose starttags and endtags*/ 0,0,0,
+ /*autoclose starttags and endtags*/ 0,0,0,0,
/*parent,incl,exclgroups*/ kFormControl, kPCDATA, kNone,
/*special props, prop-range*/ 0,kDefaultPropRange,
/*special parents,kids,skip*/ &gInForm,&gContainsText,eHTMLTag_textarea},
@@ -1061,7 +1068,7 @@ nsHTMLElement gHTMLElements[] = {
{ /*tag*/ eHTMLTag_tfoot,
/*requiredAncestor*/ eHTMLTag_table, eHTMLTag_unknown,
/*rootnodes,endrootnodes*/ &gInTable, &gInTable,
- /*autoclose starttags and endtags*/ &gTBodyAutoClose,0,0,
+ /*autoclose starttags and endtags*/ &gTFootAutoClose,0,0,0,
/*parent,incl,exclgroups*/ kNone, kNone, kSelf,
/*special props, prop-range*/ (kNoPropagate|kOmitWS|kBadContentWatch|kNoStyleLeaksIn|kDiscardMisplaced), kNoPropRange,
/*special parents,kids,skip*/ &gInTable,&gTableElemKids,eHTMLTag_unknown},
@@ -1069,7 +1076,7 @@ nsHTMLElement gHTMLElements[] = {
{ /*tag*/ eHTMLTag_th,
/*requiredAncestor*/ eHTMLTag_table, eHTMLTag_unknown,
/*rootnodes,endrootnodes*/ &gTDRootTags,&gTDRootTags,
- /*autoclose starttags and endtags*/ &gTDCloseTags,&gTDCloseTags,0,
+ /*autoclose starttags and endtags*/ &gTDCloseTags,&gTDCloseTags,0,0,
/*parent,incl,exclgroups*/ kNone, kFlowEntity, kSelf,
/*special props, prop-range*/ kNoStyleLeaksIn, kDefaultPropRange,
/*special parents,kids,skip*/ &gTDRootTags,&gBodyKids,eHTMLTag_unknown},
@@ -1077,7 +1084,7 @@ nsHTMLElement gHTMLElements[] = {
{ /*tag*/ eHTMLTag_thead,
/*req-parent excl-parent*/ eHTMLTag_unknown,eHTMLTag_unknown,
/*rootnodes,endrootnodes*/ &gInTable,&gInTable,
- /*autoclose starttags and endtags*/ &gTBodyAutoClose,0,0,
+ /*autoclose starttags and endtags*/ &gTHeadAutoClose,0,0,0,
/*parent,incl,exclgroups*/ kNone, kNone, kSelf,
/*special props, prop-range*/ (kNoPropagate|kOmitWS|kBadContentWatch|kNoStyleLeaksIn|kDiscardMisplaced), kNoPropRange,
/*special parents,kids,skip*/ &gInTable,&gTableElemKids,eHTMLTag_unknown},
@@ -1085,7 +1092,7 @@ nsHTMLElement gHTMLElements[] = {
{ /*tag*/ eHTMLTag_title,
/*req-parent excl-parent*/ eHTMLTag_unknown,eHTMLTag_unknown,
/*rootnodes,endrootnodes*/ &gInHead,&gInHead,
- /*autoclose starttags and endtags*/ 0,0,0,
+ /*autoclose starttags and endtags*/ 0,0,0,0,
/*parent,incl,exclgroups*/ kHeadMisc,kPCDATA, kNone,
/*special props, prop-range*/ kOmitWS|kNoStyleLeaksIn, kNoPropRange,
/*special parents,kids,skip*/ &gInHead,&gContainsText,eHTMLTag_title},
@@ -1093,7 +1100,7 @@ nsHTMLElement gHTMLElements[] = {
{ /*tag*/ eHTMLTag_tr,
/*requiredAncestor*/ eHTMLTag_table, eHTMLTag_unknown,
/*rootnodes,endrootnodes*/ &gTRParents,&gTREndParents,
- /*autoclose starttags and endtags*/ &gTRCloseTags,0,0,
+ /*autoclose starttags and endtags*/ &gTRCloseTags,0,0,0,
/*parent,incl,exclgroups*/ kNone, kNone, kInlineEntity,
/*special props, prop-range*/ (kOmitWS|kBadContentWatch|kNoStyleLeaksIn), kNoPropRange,
/*special parents,kids,skip*/ &gTRParents,&gTRKids,eHTMLTag_unknown},
@@ -1101,7 +1108,7 @@ nsHTMLElement gHTMLElements[] = {
{ /*tag*/ eHTMLTag_tt,
/*req-parent excl-parent*/ eHTMLTag_unknown,eHTMLTag_unknown,
/*rootnodes,endrootnodes*/ &gRootTags,&gRootTags,
- /*autoclose starttags and endtags*/ 0,0,0,
+ /*autoclose starttags and endtags*/ 0,0,0,0,
/*parent,incl,exclgroups*/ kFontStyle, (kSelf|FSTYPE), kNone,
/*special props, prop-range*/ 0,kDefaultPropRange,
/*special parents,kids,skip*/ 0,0,eHTMLTag_unknown},
@@ -1109,7 +1116,7 @@ nsHTMLElement gHTMLElements[] = {
{ /*tag*/ eHTMLTag_u,
/*req-parent excl-parent*/ eHTMLTag_unknown,eHTMLTag_unknown,
/*rootnodes,endrootnodes*/ &gRootTags,&gRootTags,
- /*autoclose starttags and endtags*/ 0,0,0,
+ /*autoclose starttags and endtags*/ 0,0,0,0,
/*parent,incl,exclgroups*/ kFontStyle, (kSelf|FSTYPE), kNone,
/*special props, prop-range*/ 0,kDefaultPropRange,
/*special parents,kids,skip*/ 0,0,eHTMLTag_unknown},
@@ -1117,7 +1124,7 @@ nsHTMLElement gHTMLElements[] = {
{ /*tag*/ eHTMLTag_ul,
/*req-parent excl-parent*/ eHTMLTag_unknown,eHTMLTag_unknown,
/*rootnodes,endrootnodes*/ &gOLRootTags,&gOLRootTags,
- /*autoclose starttags and endtags*/ &gOLAutoClose,&gULCloseTags,0,
+ /*autoclose starttags and endtags*/ &gOLAutoClose,&gULCloseTags,0,0,
/*parent,incl,exclgroups*/ kList, (kFlowEntity|kSelf), kNone,
/*special props, prop-range*/ 0,kDefaultPropRange,
/*special parents,kids,skip*/ 0,&gULKids,eHTMLTag_unknown},
@@ -1125,7 +1132,7 @@ nsHTMLElement gHTMLElements[] = {
{ /*tag*/ eHTMLTag_var,
/*req-parent excl-parent*/ eHTMLTag_unknown,eHTMLTag_unknown,
/*rootnodes,endrootnodes*/ &gRootTags,&gRootTags,
- /*autoclose starttags and endtags*/ 0,0,0,
+ /*autoclose starttags and endtags*/ 0,0,0,0,
/*parent,incl,exclgroups*/ kPhrase, (kSelf|kFlowEntity), kNone,
/*special props, prop-range*/ 0,kDefaultPropRange,
/*special parents,kids,skip*/ 0,0,eHTMLTag_unknown},
@@ -1133,7 +1140,7 @@ nsHTMLElement gHTMLElements[] = {
{ /*tag*/ eHTMLTag_wbr,
/*req-parent excl-parent*/ eHTMLTag_unknown,eHTMLTag_unknown,
/*rootnodes,endrootnodes*/ &gRootTags,&gRootTags,
- /*autoclose starttags and endtags*/ 0,0,0,
+ /*autoclose starttags and endtags*/ 0,0,0,0,
/*parent,incl,exclgroups*/ kExtensions, kNone, kNone,
/*special props, prop-range*/ 0,kNoPropRange,
/*special parents,kids,skip*/ 0,0,eHTMLTag_unknown},
@@ -1141,7 +1148,7 @@ nsHTMLElement gHTMLElements[] = {
{ /*tag*/ eHTMLTag_xmp,
/*req-parent excl-parent*/ eHTMLTag_unknown,eHTMLTag_unknown,
/*rootnodes,endrootnodes*/ &gRootTags,&gRootTags,
- /*autoclose starttags and endtags*/ 0,0,0,
+ /*autoclose starttags and endtags*/ 0,0,0,0,
/*parent,incl,exclgroups*/ kPreformatted, kNone, kNone,
/*special props, prop-range*/ 0,kDefaultPropRange,
/*special parents,kids,skip*/ 0,0,eHTMLTag_xmp},
@@ -1149,7 +1156,7 @@ nsHTMLElement gHTMLElements[] = {
{ /*tag*/ eHTMLTag_text,
/*req-parent excl-parent*/ eHTMLTag_unknown,eHTMLTag_unknown,
/*rootnodes,endrootnodes*/ &gInBody,&gInBody,
- /*autoclose starttags and endtags*/ 0,0,0,
+ /*autoclose starttags and endtags*/ 0,0,0,0,
/*parent,incl,exclgroups*/ kFlowEntity, kNone, kNone,
/*special props, prop-range*/ 0,kNoPropRange,
/*special parents,kids,skip*/ 0,0,eHTMLTag_unknown},
@@ -1157,7 +1164,7 @@ nsHTMLElement gHTMLElements[] = {
{ /*tag*/ eHTMLTag_whitespace,
/*req-parent excl-parent*/ eHTMLTag_unknown,eHTMLTag_unknown,
/*rootnodes,endrootnodes*/ &gInBody,&gInBody,
- /*autoclose starttags and endtags*/ 0,0,0,
+ /*autoclose starttags and endtags*/ 0,0,0,0,
/*parent,incl,exclgroups*/ kFlowEntity, kNone, kNone,
/*special props, prop-range*/ 0,kNoPropRange,
/*special parents,kids,skip*/ 0,0,eHTMLTag_unknown},
@@ -1165,7 +1172,7 @@ nsHTMLElement gHTMLElements[] = {
{ /*tag*/ eHTMLTag_newline,
/*req-parent excl-parent*/ eHTMLTag_unknown,eHTMLTag_unknown,
/*rootnodes,endrootnodes*/ &gInBody,&gInBody,
- /*autoclose starttags and endtags*/ 0,0,0,
+ /*autoclose starttags and endtags*/ 0,0,0,0,
/*parent,incl,exclgroups*/ kFlowEntity, kNone, kNone,
/*special props, prop-range*/ 0, kNoPropRange,
/*special parents,kids,skip*/ 0,0,eHTMLTag_unknown},
@@ -1173,7 +1180,7 @@ nsHTMLElement gHTMLElements[] = {
{ /*tag*/ eHTMLTag_comment,
/*req-parent excl-parent*/ eHTMLTag_unknown,eHTMLTag_unknown,
/*rootnodes,endrootnodes*/ &gRootTags,&gRootTags,
- /*autoclose starttags and endtags*/ 0,0,0,
+ /*autoclose starttags and endtags*/ 0,0,0,0,
/*parent,incl,exclgroups*/ kFlowEntity, kNone, kNone,
/*special props, prop-range*/ kOmitEndTag,kNoPropRange,
/*special parents,kids,skip*/ 0,0,eHTMLTag_unknown},
@@ -1181,7 +1188,7 @@ nsHTMLElement gHTMLElements[] = {
{ /*tag*/ eHTMLTag_entity,
/*req-parent excl-parent*/ eHTMLTag_unknown,eHTMLTag_unknown,
/*rootnodes,endrootnodes*/ &gInBody,&gInBody,
- /*autoclose starttags and endtags*/ 0,0,0,
+ /*autoclose starttags and endtags*/ 0,0,0,0,
/*parent,incl,exclgroups*/ kFlowEntity, kNone, kNone,
/*special props, prop-range*/ 0, kNoPropRange,
/*special parents,kids,skip*/ 0,0,eHTMLTag_unknown},
@@ -1189,7 +1196,7 @@ nsHTMLElement gHTMLElements[] = {
{ /*tag*/ eHTMLTag_markupDecl,
/*req-parent excl-parent*/ eHTMLTag_unknown,eHTMLTag_unknown,
/*rootnodes,endrootnodes*/ &gRootTags,&gRootTags,
- /*autoclose starttags and endtags*/ 0,0,0,
+ /*autoclose starttags and endtags*/ 0,0,0,0,
/*parent,incl,exclgroups*/ kFlowEntity, kNone, kNone,
/*special props, prop-range*/ kOmitEndTag,kNoPropRange,
/*special parents,kids,skip*/ 0,0,eHTMLTag_unknown},
@@ -1197,7 +1204,7 @@ nsHTMLElement gHTMLElements[] = {
{ /*tag*/ eHTMLTag_userdefined,
/*req-parent excl-parent*/ eHTMLTag_unknown,eHTMLTag_unknown,
/*rootnodes,endrootnodes*/ &gRootTags,&gRootTags,
- /*autoclose starttags and endtags*/ 0,0,0,
+ /*autoclose starttags and endtags*/ 0,0,0,0,
/*parent,incl,exclgroups*/ kNone, kNone, kNone,
/*special props, prop-range*/ kOmitEndTag, kNoPropRange,
/*special parents,kids,skip*/ 0,0,eHTMLTag_unknown},
@@ -1611,6 +1618,28 @@ PRBool nsHTMLElement::CanContainSelf(void) const {
return result;
}
+/**
+ *
+ * @update harishd 09/20/99
+ * @param
+ * @return
+ */
+PRBool nsHTMLElement::CanAutoCloseTag(eHTMLTags aTag, eHTMLTokenTypes aType) const{
+ PRBool result=PR_TRUE;
+ if((mTagID>=eHTMLTag_unknown) & (mTagID<=eHTMLTag_userdefined)){
+ CTagList* theTagList=nsnull;
+ if(aType==eToken_start) {
+ theTagList=gHTMLElements[mTagID].GetAutoCloseStartTags();
+ if(theTagList) return theTagList->Contains(aTag);
+ }
+ else {
+ theTagList=gHTMLElements[mTagID].GetNonAutoCloseEndTags();
+ if(theTagList) return !theTagList->Contains(aTag);
+ }
+ }
+ return result;
+}
+
/**
*
* @update gess12/13/98
diff --git a/mozilla/parser/htmlparser/src/nsElementTable.h b/mozilla/parser/htmlparser/src/nsElementTable.h
index 700975538cc..859e973d4d8 100644
--- a/mozilla/parser/htmlparser/src/nsElementTable.h
+++ b/mozilla/parser/htmlparser/src/nsElementTable.h
@@ -84,6 +84,7 @@ struct nsHTMLElement {
CTagList* GetEndRootTags(void) const {return mEndRootNodes;}
CTagList* GetAutoCloseStartTags(void) const {return mAutocloseStart;}
CTagList* GetAutoCloseEndTags(void) const {return mAutocloseEnd;}
+ CTagList* GetNonAutoCloseEndTags(void) const {return mDontAutocloseEnd;}
eHTMLTags GetCloseTargetForEndTag(nsEntryStack& aTagStack,PRInt32 anIndex) const;
CTagList* GetSpecialChildren(void) const {return mSpecialKids;}
@@ -98,6 +99,7 @@ struct nsHTMLElement {
PRBool CanOmitStartTag(eHTMLTags aChild) const;
PRBool CanOmitEndTag(void) const;
PRBool CanContainSelf(void) const;
+ PRBool CanAutoCloseTag(eHTMLTags aTag, eHTMLTokenTypes aType) const;
PRBool HasSpecialProperty(PRInt32 aProperty) const;
PRBool SectionContains(eHTMLTags aTag,PRBool allowDepthSearch);
@@ -122,6 +124,7 @@ struct nsHTMLElement {
CTagList* mAutocloseStart; //these are the start tags that you can automatically close with this START tag
CTagList* mAutocloseEnd; //these are the start tags that you can automatically close with this END tag
CTagList* mSynonymousTags; //These are morally equivalent; an end tag for one can close a start tag for another (like )
+ CTagList* mDontAutocloseEnd; //these are the end tags that you cannot automatically close with this END tag
int mParentBits; //defines groups that can contain this element
int mInclusionBits; //defines parental and containment rules
int mExclusionBits; //defines things you CANNOT contain