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. Hello

There 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. Hello

There 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