From c191919eedf04dd3b1460b5b8f243c9ab499fb75 Mon Sep 17 00:00:00 2001 From: "mrbkap%gmail.com" Date: Thu, 28 Oct 2004 03:24:59 +0000 Subject: [PATCH] bug 265814: the output of document.write() is always parsed in quirks mode. r=bzbarsky sr=jst git-svn-id: svn://10.0.0.236/trunk@164540 18797224-902f-48f8-a5cc-f745e15eee43 --- mozilla/parser/htmlparser/src/nsParser.cpp | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/mozilla/parser/htmlparser/src/nsParser.cpp b/mozilla/parser/htmlparser/src/nsParser.cpp index b698402fbb9..dadb259ceb5 100644 --- a/mozilla/parser/htmlparser/src/nsParser.cpp +++ b/mozilla/parser/htmlparser/src/nsParser.cpp @@ -1638,7 +1638,14 @@ nsParser::Parse(const nsAString& aSourceBuffer, pc->mContextType=CParserContext::eCTString; pc->SetMimeType(aMimeType); - pc->mDTDMode=aMode; + if (pc->mPrevContext && aMode == eDTDMode_autodetect) { + // Preserve the DTD mode from the last context, bug 265814. + pc->mDTDMode = pc->mPrevContext->mDTDMode; + } + else { + pc->mDTDMode = aMode; + } + mUnusedInput.Truncate(0); //printf("Parse(string) iterate: %i",PR_FALSE);