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("");
- endTag.Append(NS_EnumToTag(theTag));
- endTag.Append(">");
+ nsAutoString endTag(NS_EnumToTag(theTag));
CTokenRecycler* theRecycler=(CTokenRecycler*)GetTokenRecycler();
+ CToken* endToken=theRecycler->CreateTokenOfType(eToken_end,theTag,endTag);
+ endTag.Insert("",0,2);
+ endTag.Append(">");
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("");
- endTag.Append(NS_EnumToTag(theTag));
- endTag.Append(">");
+ nsAutoString endTag(NS_EnumToTag(theTag));
CTokenRecycler* theRecycler=(CTokenRecycler*)GetTokenRecycler();
+ CToken* endToken=theRecycler->CreateTokenOfType(eToken_end,theTag,endTag);
+ endTag.Insert("",0,2);
+ endTag.Append(">");
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));
}