Bug 44564. Problems with internal subset, especially with view source XML. Also fixed CDATA section problems. Some cleanups. r=harishd, sr=vidur.

git-svn-id: svn://10.0.0.236/trunk@86136 18797224-902f-48f8-a5cc-f745e15eee43
This commit is contained in:
heikki%netscape.com
2001-02-03 01:13:55 +00:00
parent 3e25d39c45
commit a4f8173ec8
32 changed files with 440 additions and 62 deletions

View File

@@ -624,7 +624,7 @@ void nsHTMLContentSinkStream::AddStartTag(const nsIParserNode& aNode)
mDirtyStack[mHTMLStackPos++] = isDirty;
tagName = name;
if (tag == eHTMLTag_markupDecl)
if (tag == eHTMLTag_doctypeDecl || tag == eHTMLTag_markupDecl)
{
if (!(mFlags & nsIDocumentEncoder::OutputSelectionOnly))
{
@@ -742,14 +742,14 @@ void nsHTMLContentSinkStream::AddEndTag(const nsIParserNode& aNode)
{
tagName.AssignWithConversion("--");
}
else if (tag == eHTMLTag_markupDecl)
else if (tag == eHTMLTag_doctypeDecl || tag == eHTMLTag_markupDecl)
{
if (!(mFlags & nsIDocumentEncoder::OutputSelectionOnly))
{
Write(kGreaterThan);
Write(mLineBreak);
}
if ( mHTMLTagStack[mHTMLStackPos-1] == eHTMLTag_markupDecl)
if ( mHTMLTagStack[mHTMLStackPos-1] == eHTMLTag_doctypeDecl || mHTMLTagStack[mHTMLStackPos-1] == eHTMLTag_markupDecl)
{
mHTMLTagStack[--mHTMLStackPos] = eHTMLTag_unknown;
}
@@ -853,7 +853,7 @@ nsHTMLContentSinkStream::AddLeaf(const nsIParserNode& aNode)
else if (type == eHTMLTag_text)
{
if ((mHTMLStackPos > 0)
&& (mHTMLTagStack[mHTMLStackPos-1] == eHTMLTag_markupDecl)
&& (mHTMLTagStack[mHTMLStackPos-1] == eHTMLTag_doctypeDecl || mHTMLTagStack[mHTMLStackPos-1] == eHTMLTag_markupDecl)
&& (mFlags & nsIDocumentEncoder::OutputSelectionOnly))
return NS_OK;