diff --git a/mozilla/htmlparser/src/nsHTMLContentSinkStream.cpp b/mozilla/htmlparser/src/nsHTMLContentSinkStream.cpp index 64545360593..f3029bd40d3 100644 --- a/mozilla/htmlparser/src/nsHTMLContentSinkStream.cpp +++ b/mozilla/htmlparser/src/nsHTMLContentSinkStream.cpp @@ -586,10 +586,19 @@ nsHTMLContentSinkStream::SetTitle(const nsString& aValue){ * @return PR_TRUE if successful. */ NS_IMETHODIMP -nsHTMLContentSinkStream::OpenHTML(const nsIParserNode& aNode){ - eHTMLTags tag = (eHTMLTags)aNode.GetNodeType(); - if (tag == eHTMLTag_html) - AddStartTag(aNode); +nsHTMLContentSinkStream::OpenHTML(const nsIParserNode& aNode) +{ + eHTMLTags tag = (eHTMLTags)aNode.GetNodeType(); + if (tag == eHTMLTag_html) +#ifdef BUG_20246_IS_FIXED + AddStartTag(aNode); +#else /* BUG_20246_IS_FIXED */ + { + Write(kLessThan); + Write("html"); + Write(kGreaterThan); + } +#endif /* BUG_20246_IS_FIXED */ return NS_OK; } @@ -810,7 +819,8 @@ void nsHTMLContentSinkStream::AddStartTag(const nsIParserNode& aNode) mHTMLTagStack[mHTMLStackPos++] = tag; tagName = name; - + + if (mLowerCaseTags == PR_TRUE) tagName.ToLowerCase(); else @@ -986,7 +996,7 @@ nsHTMLContentSinkStream::AddLeaf(const nsIParserNode& aNode){ const nsString& entity = aNode.GetText(); EncodeToBuffer(entity); Write('&'); - Write(mBuffer); + Write(mBuffer); Write(';'); mColPos += entity.Length() + 2; } diff --git a/mozilla/htmlparser/src/nsXIFDTD.cpp b/mozilla/htmlparser/src/nsXIFDTD.cpp index 179e7c8bc6b..df2fcf56c72 100644 --- a/mozilla/htmlparser/src/nsXIFDTD.cpp +++ b/mozilla/htmlparser/src/nsXIFDTD.cpp @@ -234,19 +234,22 @@ NS_IMPL_RELEASE(nsXIFDTD) * @return */ static -PRInt32 XIFDispatchTokenHandler(CToken* aToken,nsIDTD* aDTD) { - - PRInt32 result=0; - - eHTMLTokenTypes theType= (eHTMLTokenTypes)aToken->GetTokenType(); +PRInt32 XIFDispatchTokenHandler(CToken* aToken,nsIDTD* aDTD) +{ + eHTMLTokenTypes theType = (eHTMLTokenTypes)aToken->GetTokenType(); nsXIFDTD* theDTD=(nsXIFDTD*)aDTD; nsString& name = aToken->GetStringValueXXX(); - eXIFTags type = DetermineXIFTagType(name); - - if (type != eXIFTag_userdefined) - aToken->SetTypeID(type); - + eXIFTags type = eXIFTag_userdefined; + + if((eToken_start==theType) || (eToken_end==theType)) { + type=DetermineXIFTagType(name); + if (type != eXIFTag_userdefined) + aToken->SetTypeID(type); + } + + PRInt32 result=0; + if(aDTD) { switch(theType) { case eToken_start: diff --git a/mozilla/htmlparser/tests/outsinks/simple.html b/mozilla/htmlparser/tests/outsinks/simple.html index 5a787db1a51..0fd4adda803 100644 --- a/mozilla/htmlparser/tests/outsinks/simple.html +++ b/mozilla/htmlparser/tests/outsinks/simple.html @@ -22,9 +22,7 @@ -- Contributor(s): Akkana Peck --> Simple html page - - - +

Simple html page

Here is a link to the mozilla.org page. diff --git a/mozilla/htmlparser/tests/outsinks/xifstuff.out b/mozilla/htmlparser/tests/outsinks/xifstuff.out index dc4f7f73ce6..f611e953333 100644 --- a/mozilla/htmlparser/tests/outsinks/xifstuff.out +++ b/mozilla/htmlparser/tests/outsinks/xifstuff.out @@ -25,18 +25,18 @@ XIF Test Page - - - - +

Here's the deal...

This is a good place to add in html to aid in testing features -under development. It's also a great place to not use latin. +under development. +<a href="http://www.mozilla.org"> +It's also a great place to not use latin. -

+

+ diff --git a/mozilla/parser/htmlparser/src/nsHTMLContentSinkStream.cpp b/mozilla/parser/htmlparser/src/nsHTMLContentSinkStream.cpp index 64545360593..f3029bd40d3 100644 --- a/mozilla/parser/htmlparser/src/nsHTMLContentSinkStream.cpp +++ b/mozilla/parser/htmlparser/src/nsHTMLContentSinkStream.cpp @@ -586,10 +586,19 @@ nsHTMLContentSinkStream::SetTitle(const nsString& aValue){ * @return PR_TRUE if successful. */ NS_IMETHODIMP -nsHTMLContentSinkStream::OpenHTML(const nsIParserNode& aNode){ - eHTMLTags tag = (eHTMLTags)aNode.GetNodeType(); - if (tag == eHTMLTag_html) - AddStartTag(aNode); +nsHTMLContentSinkStream::OpenHTML(const nsIParserNode& aNode) +{ + eHTMLTags tag = (eHTMLTags)aNode.GetNodeType(); + if (tag == eHTMLTag_html) +#ifdef BUG_20246_IS_FIXED + AddStartTag(aNode); +#else /* BUG_20246_IS_FIXED */ + { + Write(kLessThan); + Write("html"); + Write(kGreaterThan); + } +#endif /* BUG_20246_IS_FIXED */ return NS_OK; } @@ -810,7 +819,8 @@ void nsHTMLContentSinkStream::AddStartTag(const nsIParserNode& aNode) mHTMLTagStack[mHTMLStackPos++] = tag; tagName = name; - + + if (mLowerCaseTags == PR_TRUE) tagName.ToLowerCase(); else @@ -986,7 +996,7 @@ nsHTMLContentSinkStream::AddLeaf(const nsIParserNode& aNode){ const nsString& entity = aNode.GetText(); EncodeToBuffer(entity); Write('&'); - Write(mBuffer); + Write(mBuffer); Write(';'); mColPos += entity.Length() + 2; } diff --git a/mozilla/parser/htmlparser/src/nsXIFDTD.cpp b/mozilla/parser/htmlparser/src/nsXIFDTD.cpp index 179e7c8bc6b..df2fcf56c72 100644 --- a/mozilla/parser/htmlparser/src/nsXIFDTD.cpp +++ b/mozilla/parser/htmlparser/src/nsXIFDTD.cpp @@ -234,19 +234,22 @@ NS_IMPL_RELEASE(nsXIFDTD) * @return */ static -PRInt32 XIFDispatchTokenHandler(CToken* aToken,nsIDTD* aDTD) { - - PRInt32 result=0; - - eHTMLTokenTypes theType= (eHTMLTokenTypes)aToken->GetTokenType(); +PRInt32 XIFDispatchTokenHandler(CToken* aToken,nsIDTD* aDTD) +{ + eHTMLTokenTypes theType = (eHTMLTokenTypes)aToken->GetTokenType(); nsXIFDTD* theDTD=(nsXIFDTD*)aDTD; nsString& name = aToken->GetStringValueXXX(); - eXIFTags type = DetermineXIFTagType(name); - - if (type != eXIFTag_userdefined) - aToken->SetTypeID(type); - + eXIFTags type = eXIFTag_userdefined; + + if((eToken_start==theType) || (eToken_end==theType)) { + type=DetermineXIFTagType(name); + if (type != eXIFTag_userdefined) + aToken->SetTypeID(type); + } + + PRInt32 result=0; + if(aDTD) { switch(theType) { case eToken_start: diff --git a/mozilla/parser/htmlparser/tests/outsinks/simple.html b/mozilla/parser/htmlparser/tests/outsinks/simple.html index 5a787db1a51..0fd4adda803 100644 --- a/mozilla/parser/htmlparser/tests/outsinks/simple.html +++ b/mozilla/parser/htmlparser/tests/outsinks/simple.html @@ -22,9 +22,7 @@ -- Contributor(s): Akkana Peck --> Simple html page - - - +

Simple html page

Here is a link to the mozilla.org page. diff --git a/mozilla/parser/htmlparser/tests/outsinks/xifstuff.out b/mozilla/parser/htmlparser/tests/outsinks/xifstuff.out index dc4f7f73ce6..f611e953333 100644 --- a/mozilla/parser/htmlparser/tests/outsinks/xifstuff.out +++ b/mozilla/parser/htmlparser/tests/outsinks/xifstuff.out @@ -25,18 +25,18 @@ XIF Test Page - - - - +

Here's the deal...

This is a good place to add in html to aid in testing features -under development. It's also a great place to not use latin. +under development. +<a href="http://www.mozilla.org"> +It's also a great place to not use latin. -

+

+