From 5ff6d7d6882bcd7d2da1f908ee5e702a801e0ef2 Mon Sep 17 00:00:00 2001 From: "jfrancis%netscape.com" Date: Wed, 12 Jun 2002 14:07:05 +0000 Subject: [PATCH] bug 139466: paste can create nested headers. r=harish; sr=jst --- htmlparser/src/COtherElements.h | 17 +++++++++-------- parser/htmlparser/src/COtherElements.h | 17 +++++++++-------- 2 files changed, 18 insertions(+), 16 deletions(-) diff --git a/htmlparser/src/COtherElements.h b/htmlparser/src/COtherElements.h index 4f4a18e82b5..a37cfb81b4e 100644 --- a/htmlparser/src/COtherElements.h +++ b/htmlparser/src/COtherElements.h @@ -474,9 +474,9 @@ public: /********************************************************** by default,members of the block group contain inline children **********************************************************/ - static CGroupMembers& GetContainedGroups(void) { + static CGroupMembers& GetContainedGroups(PRBool aCanContainSelf = PR_TRUE) { static CGroupMembers theGroups=CInlineElement::GetContainedGroups(); - theGroups.mBits.mSelf=1; + theGroups.mBits.mSelf=aCanContainSelf; return theGroups; } @@ -2201,12 +2201,13 @@ void CElementTable::InitializeElements() { CFrameElement::Initialize( mDfltElements[eHTMLTag_frameset], eHTMLTag_frameset); mDfltElements[eHTMLTag_frameset].mIncludeKids=kFramesetKids; - CBlockElement::Initialize( mDfltElements[eHTMLTag_h1], eHTMLTag_h1); - CBlockElement::Initialize( mDfltElements[eHTMLTag_h2], eHTMLTag_h2); - CBlockElement::Initialize( mDfltElements[eHTMLTag_h3], eHTMLTag_h3); - CBlockElement::Initialize( mDfltElements[eHTMLTag_h4], eHTMLTag_h4); - CBlockElement::Initialize( mDfltElements[eHTMLTag_h5], eHTMLTag_h5); - CBlockElement::Initialize( mDfltElements[eHTMLTag_h6], eHTMLTag_h6); + CElement::Initialize( mDfltElements[eHTMLTag_h1], eHTMLTag_h1, CBlockElement::GetGroup(), CBlockElement::GetContainedGroups(PR_FALSE)); + CElement::Initialize( mDfltElements[eHTMLTag_h2], eHTMLTag_h2, CBlockElement::GetGroup(), CBlockElement::GetContainedGroups(PR_FALSE)); + CElement::Initialize( mDfltElements[eHTMLTag_h3], eHTMLTag_h3, CBlockElement::GetGroup(), CBlockElement::GetContainedGroups(PR_FALSE)); + CElement::Initialize( mDfltElements[eHTMLTag_h4], eHTMLTag_h4, CBlockElement::GetGroup(), CBlockElement::GetContainedGroups(PR_FALSE)); + CElement::Initialize( mDfltElements[eHTMLTag_h5], eHTMLTag_h5, CBlockElement::GetGroup(), CBlockElement::GetContainedGroups(PR_FALSE)); + CElement::Initialize( mDfltElements[eHTMLTag_h6], eHTMLTag_h6, CBlockElement::GetGroup(), CBlockElement::GetContainedGroups(PR_FALSE)); + CElement::InitializeLeaf( mDfltElements[eHTMLTag_hr], eHTMLTag_hr, CBlockElement::GetGroup(), CLeafElement::GetContainedGroups()); diff --git a/parser/htmlparser/src/COtherElements.h b/parser/htmlparser/src/COtherElements.h index 4f4a18e82b5..a37cfb81b4e 100644 --- a/parser/htmlparser/src/COtherElements.h +++ b/parser/htmlparser/src/COtherElements.h @@ -474,9 +474,9 @@ public: /********************************************************** by default,members of the block group contain inline children **********************************************************/ - static CGroupMembers& GetContainedGroups(void) { + static CGroupMembers& GetContainedGroups(PRBool aCanContainSelf = PR_TRUE) { static CGroupMembers theGroups=CInlineElement::GetContainedGroups(); - theGroups.mBits.mSelf=1; + theGroups.mBits.mSelf=aCanContainSelf; return theGroups; } @@ -2201,12 +2201,13 @@ void CElementTable::InitializeElements() { CFrameElement::Initialize( mDfltElements[eHTMLTag_frameset], eHTMLTag_frameset); mDfltElements[eHTMLTag_frameset].mIncludeKids=kFramesetKids; - CBlockElement::Initialize( mDfltElements[eHTMLTag_h1], eHTMLTag_h1); - CBlockElement::Initialize( mDfltElements[eHTMLTag_h2], eHTMLTag_h2); - CBlockElement::Initialize( mDfltElements[eHTMLTag_h3], eHTMLTag_h3); - CBlockElement::Initialize( mDfltElements[eHTMLTag_h4], eHTMLTag_h4); - CBlockElement::Initialize( mDfltElements[eHTMLTag_h5], eHTMLTag_h5); - CBlockElement::Initialize( mDfltElements[eHTMLTag_h6], eHTMLTag_h6); + CElement::Initialize( mDfltElements[eHTMLTag_h1], eHTMLTag_h1, CBlockElement::GetGroup(), CBlockElement::GetContainedGroups(PR_FALSE)); + CElement::Initialize( mDfltElements[eHTMLTag_h2], eHTMLTag_h2, CBlockElement::GetGroup(), CBlockElement::GetContainedGroups(PR_FALSE)); + CElement::Initialize( mDfltElements[eHTMLTag_h3], eHTMLTag_h3, CBlockElement::GetGroup(), CBlockElement::GetContainedGroups(PR_FALSE)); + CElement::Initialize( mDfltElements[eHTMLTag_h4], eHTMLTag_h4, CBlockElement::GetGroup(), CBlockElement::GetContainedGroups(PR_FALSE)); + CElement::Initialize( mDfltElements[eHTMLTag_h5], eHTMLTag_h5, CBlockElement::GetGroup(), CBlockElement::GetContainedGroups(PR_FALSE)); + CElement::Initialize( mDfltElements[eHTMLTag_h6], eHTMLTag_h6, CBlockElement::GetGroup(), CBlockElement::GetContainedGroups(PR_FALSE)); + CElement::InitializeLeaf( mDfltElements[eHTMLTag_hr], eHTMLTag_hr, CBlockElement::GetGroup(), CLeafElement::GetContainedGroups());