diff --git a/mozilla/htmlparser/src/nsHTMLTokenizer.cpp b/mozilla/htmlparser/src/nsHTMLTokenizer.cpp index b7606097267..d3cb280cbd5 100644 --- a/mozilla/htmlparser/src/nsHTMLTokenizer.cpp +++ b/mozilla/htmlparser/src/nsHTMLTokenizer.cpp @@ -343,6 +343,7 @@ nsresult nsHTMLTokenizer::ConsumeTag(PRUnichar aChar,CToken*& aToken,nsScanner& result=ConsumeStartTag(aChar,aToken,aScanner); else if(kEOF!=aChar) { nsAutoString temp("<"); + temp.Append(aChar); result=ConsumeText(temp,aToken,aScanner); } } //switch @@ -457,14 +458,14 @@ nsresult nsHTMLTokenizer::ConsumeStartTag(PRUnichar aChar,CToken*& aToken,nsScan */ if(NS_SUCCEEDED(result)) if((eHTMLTag_style==theTag) || (eHTMLTag_script==theTag)) { - nsAutoString endTag(""); + nsAutoString endTag(NS_EnumToTag(theTag)); CTokenRecycler* theRecycler=(CTokenRecycler*)GetTokenRecycler(); + CToken* endToken=theRecycler->CreateTokenOfType(eToken_end,theTag,endTag); + endTag.Insert(""); CToken* textToken=theRecycler->CreateTokenOfType(eToken_text,theTag,endTag); result=((CTextToken*)textToken)->ConsumeUntil(0,PRBool(eHTMLTag_style==theTag),aScanner,endTag); //tell new token to finish consuming text... AddToken(textToken,result,mTokenDeque,theRecycler); - CToken* endToken=theRecycler->CreateTokenOfType(eToken_end,theTag); AddToken(endToken,result,mTokenDeque,theRecycler); } diff --git a/mozilla/htmlparser/src/nsHTMLTokens.cpp b/mozilla/htmlparser/src/nsHTMLTokens.cpp index 64f9b03bb0c..4f88a8baad0 100644 --- a/mozilla/htmlparser/src/nsHTMLTokens.cpp +++ b/mozilla/htmlparser/src/nsHTMLTokens.cpp @@ -292,6 +292,7 @@ void CStartToken::GetSource(nsString& anOutputString){ * @return */ CEndToken::CEndToken(eHTMLTags aTag) : CHTMLToken(aTag) { + SetStringValue(GetTagName(aTag)); } diff --git a/mozilla/parser/htmlparser/src/nsHTMLTokenizer.cpp b/mozilla/parser/htmlparser/src/nsHTMLTokenizer.cpp index b7606097267..d3cb280cbd5 100644 --- a/mozilla/parser/htmlparser/src/nsHTMLTokenizer.cpp +++ b/mozilla/parser/htmlparser/src/nsHTMLTokenizer.cpp @@ -343,6 +343,7 @@ nsresult nsHTMLTokenizer::ConsumeTag(PRUnichar aChar,CToken*& aToken,nsScanner& result=ConsumeStartTag(aChar,aToken,aScanner); else if(kEOF!=aChar) { nsAutoString temp("<"); + temp.Append(aChar); result=ConsumeText(temp,aToken,aScanner); } } //switch @@ -457,14 +458,14 @@ nsresult nsHTMLTokenizer::ConsumeStartTag(PRUnichar aChar,CToken*& aToken,nsScan */ if(NS_SUCCEEDED(result)) if((eHTMLTag_style==theTag) || (eHTMLTag_script==theTag)) { - nsAutoString endTag(""); + nsAutoString endTag(NS_EnumToTag(theTag)); CTokenRecycler* theRecycler=(CTokenRecycler*)GetTokenRecycler(); + CToken* endToken=theRecycler->CreateTokenOfType(eToken_end,theTag,endTag); + endTag.Insert(""); CToken* textToken=theRecycler->CreateTokenOfType(eToken_text,theTag,endTag); result=((CTextToken*)textToken)->ConsumeUntil(0,PRBool(eHTMLTag_style==theTag),aScanner,endTag); //tell new token to finish consuming text... AddToken(textToken,result,mTokenDeque,theRecycler); - CToken* endToken=theRecycler->CreateTokenOfType(eToken_end,theTag); AddToken(endToken,result,mTokenDeque,theRecycler); } diff --git a/mozilla/parser/htmlparser/src/nsHTMLTokens.cpp b/mozilla/parser/htmlparser/src/nsHTMLTokens.cpp index 64f9b03bb0c..4f88a8baad0 100644 --- a/mozilla/parser/htmlparser/src/nsHTMLTokens.cpp +++ b/mozilla/parser/htmlparser/src/nsHTMLTokens.cpp @@ -292,6 +292,7 @@ void CStartToken::GetSource(nsString& anOutputString){ * @return */ CEndToken::CEndToken(eHTMLTags aTag) : CHTMLToken(aTag) { + SetStringValue(GetTagName(aTag)); }