From ef03ca1113be16ed6263784cd16043576e35c4be Mon Sep 17 00:00:00 2001 From: "rickg%netscape.com" Date: Mon, 23 Nov 1998 08:01:14 +0000 Subject: [PATCH] improvements to entity parsing and viewing git-svn-id: svn://10.0.0.236/trunk@15159 18797224-902f-48f8-a5cc-f745e15eee43 --- mozilla/htmlparser/src/CNavDTD.cpp | 12 +++++------ mozilla/htmlparser/src/nsViewSourceHTML.cpp | 21 ++++++++++++------- mozilla/htmlparser/src/nsWellFormedDTD.cpp | 12 +++++------ mozilla/parser/htmlparser/src/CNavDTD.cpp | 12 +++++------ .../htmlparser/src/nsViewSourceHTML.cpp | 21 ++++++++++++------- .../parser/htmlparser/src/nsWellFormedDTD.cpp | 12 +++++------ 6 files changed, 52 insertions(+), 38 deletions(-) diff --git a/mozilla/htmlparser/src/CNavDTD.cpp b/mozilla/htmlparser/src/CNavDTD.cpp index e540345ab3f..6505cae339a 100644 --- a/mozilla/htmlparser/src/CNavDTD.cpp +++ b/mozilla/htmlparser/src/CNavDTD.cpp @@ -3371,22 +3371,22 @@ CNavDTD::ConsumeStartTag(PRUnichar aChar,CScanner& aScanner,CToken*& aToken) { */ nsresult CNavDTD::ConsumeEntity(PRUnichar aChar,CScanner& aScanner,CToken*& aToken) { - PRUnichar ch; - nsresult result=aScanner.GetChar(ch); + PRUnichar theChar; + nsresult result=aScanner.GetChar(theChar); if(NS_OK==result) { - if(nsString::IsAlpha(ch)) { //handle common enity references &xxx; or �. + if(nsString::IsAlpha(theChar)) { //handle common enity references &xxx; or �. aToken = gTokenRecycler.CreateTokenOfType(eToken_entity,eHTMLTag_entity,gEmpty); - result = aToken->Consume(ch,aScanner); //tell new token to finish consuming text... + result = aToken->Consume(theChar,aScanner); //tell new token to finish consuming text... } - else if(kHashsign==ch) { + else if(kHashsign==theChar) { aToken = gTokenRecycler.CreateTokenOfType(eToken_entity,eHTMLTag_entity,gEmpty); result=aToken->Consume(0,aScanner); } else { //oops, we're actually looking at plain text... nsAutoString temp("&"); - temp.Append(ch); + aScanner.PutBack(theChar); result=ConsumeText(temp,aScanner,aToken); } }//if diff --git a/mozilla/htmlparser/src/nsViewSourceHTML.cpp b/mozilla/htmlparser/src/nsViewSourceHTML.cpp index a72ce3704ea..b24d371d147 100644 --- a/mozilla/htmlparser/src/nsViewSourceHTML.cpp +++ b/mozilla/htmlparser/src/nsViewSourceHTML.cpp @@ -479,22 +479,22 @@ NS_IMETHODIMP CViewSourceHTML::ConsumeAttributes(PRUnichar aChar,CScanner& aScan * @return new token or null */ NS_IMETHODIMP CViewSourceHTML::ConsumeEntity(PRUnichar aChar,CScanner& aScanner,CToken*& aToken) { - PRUnichar ch; - nsresult result=aScanner.GetChar(ch); + PRUnichar theChar; + nsresult result=aScanner.GetChar(theChar); if(NS_OK==result) { - if(nsString::IsAlpha(ch)) { //handle common enity references &xxx; or �. + if(nsString::IsAlpha(theChar)) { //handle common enity references &xxx; or �. aToken = gTokenRecycler.CreateTokenOfType(eToken_entity,eHTMLTag_entity,gEmpty); - result = aToken->Consume(ch,aScanner); //tell new token to finish consuming text... + result = aToken->Consume(theChar,aScanner); //tell new token to finish consuming text... } - else if(kHashsign==ch) { + else if(kHashsign==theChar) { aToken = gTokenRecycler.CreateTokenOfType(eToken_entity,eHTMLTag_entity,gEmpty); result=aToken->Consume(0,aScanner); } else { //oops, we're actually looking at plain text... nsAutoString temp("&"); - temp.Append(ch); + aScanner.PutBack(theChar); result=ConsumeText(temp,aScanner,aToken); } }//if @@ -952,7 +952,14 @@ NS_IMETHODIMP CViewSourceHTML::HandleToken(CToken* aToken) { break; case eToken_entity: - result=mSink->AddLeaf(theNode); + { + SetColor("maroon",PR_TRUE,*mSink); + nsAutoString theStr("&"); + theStr.Append(aToken->GetStringValueXXX()); + theStr.Append(";"); + WriteText(theStr,*mSink,PR_FALSE); + SetStyle(eHTMLTag_font,PR_FALSE,*mSink); + } break; case eToken_comment: diff --git a/mozilla/htmlparser/src/nsWellFormedDTD.cpp b/mozilla/htmlparser/src/nsWellFormedDTD.cpp index 658a4c69d22..e0fd2c45b47 100644 --- a/mozilla/htmlparser/src/nsWellFormedDTD.cpp +++ b/mozilla/htmlparser/src/nsWellFormedDTD.cpp @@ -417,22 +417,22 @@ NS_IMETHODIMP CWellFormedDTD::ConsumeAttributes(PRUnichar aChar,CScanner& aScann * @return new token or null */ NS_IMETHODIMP CWellFormedDTD::ConsumeEntity(PRUnichar aChar,CScanner& aScanner,CToken*& aToken) { - PRUnichar ch; - nsresult result=aScanner.GetChar(ch); + PRUnichar theChar; + nsresult result=aScanner.GetChar(theChar); if(NS_OK==result) { - if(nsString::IsAlpha(ch)) { //handle common enity references &xxx; or �. + if(nsString::IsAlpha(theChar)) { //handle common enity references &xxx; or �. aToken = gTokenRecycler.CreateTokenOfType(eToken_entity,eHTMLTag_entity,gEmpty); - result = aToken->Consume(ch,aScanner); //tell new token to finish consuming text... + result = aToken->Consume(theChar,aScanner); //tell new token to finish consuming text... } - else if(kHashsign==ch) { + else if(kHashsign==theChar) { aToken = gTokenRecycler.CreateTokenOfType(eToken_entity,eHTMLTag_entity,gEmpty); result=aToken->Consume(0,aScanner); } else { //oops, we're actually looking at plain text... nsAutoString temp("&"); - temp.Append(ch); + aScanner.PutBack(theChar); result=ConsumeText(temp,aScanner,aToken); } }//if diff --git a/mozilla/parser/htmlparser/src/CNavDTD.cpp b/mozilla/parser/htmlparser/src/CNavDTD.cpp index e540345ab3f..6505cae339a 100644 --- a/mozilla/parser/htmlparser/src/CNavDTD.cpp +++ b/mozilla/parser/htmlparser/src/CNavDTD.cpp @@ -3371,22 +3371,22 @@ CNavDTD::ConsumeStartTag(PRUnichar aChar,CScanner& aScanner,CToken*& aToken) { */ nsresult CNavDTD::ConsumeEntity(PRUnichar aChar,CScanner& aScanner,CToken*& aToken) { - PRUnichar ch; - nsresult result=aScanner.GetChar(ch); + PRUnichar theChar; + nsresult result=aScanner.GetChar(theChar); if(NS_OK==result) { - if(nsString::IsAlpha(ch)) { //handle common enity references &xxx; or �. + if(nsString::IsAlpha(theChar)) { //handle common enity references &xxx; or �. aToken = gTokenRecycler.CreateTokenOfType(eToken_entity,eHTMLTag_entity,gEmpty); - result = aToken->Consume(ch,aScanner); //tell new token to finish consuming text... + result = aToken->Consume(theChar,aScanner); //tell new token to finish consuming text... } - else if(kHashsign==ch) { + else if(kHashsign==theChar) { aToken = gTokenRecycler.CreateTokenOfType(eToken_entity,eHTMLTag_entity,gEmpty); result=aToken->Consume(0,aScanner); } else { //oops, we're actually looking at plain text... nsAutoString temp("&"); - temp.Append(ch); + aScanner.PutBack(theChar); result=ConsumeText(temp,aScanner,aToken); } }//if diff --git a/mozilla/parser/htmlparser/src/nsViewSourceHTML.cpp b/mozilla/parser/htmlparser/src/nsViewSourceHTML.cpp index a72ce3704ea..b24d371d147 100644 --- a/mozilla/parser/htmlparser/src/nsViewSourceHTML.cpp +++ b/mozilla/parser/htmlparser/src/nsViewSourceHTML.cpp @@ -479,22 +479,22 @@ NS_IMETHODIMP CViewSourceHTML::ConsumeAttributes(PRUnichar aChar,CScanner& aScan * @return new token or null */ NS_IMETHODIMP CViewSourceHTML::ConsumeEntity(PRUnichar aChar,CScanner& aScanner,CToken*& aToken) { - PRUnichar ch; - nsresult result=aScanner.GetChar(ch); + PRUnichar theChar; + nsresult result=aScanner.GetChar(theChar); if(NS_OK==result) { - if(nsString::IsAlpha(ch)) { //handle common enity references &xxx; or �. + if(nsString::IsAlpha(theChar)) { //handle common enity references &xxx; or �. aToken = gTokenRecycler.CreateTokenOfType(eToken_entity,eHTMLTag_entity,gEmpty); - result = aToken->Consume(ch,aScanner); //tell new token to finish consuming text... + result = aToken->Consume(theChar,aScanner); //tell new token to finish consuming text... } - else if(kHashsign==ch) { + else if(kHashsign==theChar) { aToken = gTokenRecycler.CreateTokenOfType(eToken_entity,eHTMLTag_entity,gEmpty); result=aToken->Consume(0,aScanner); } else { //oops, we're actually looking at plain text... nsAutoString temp("&"); - temp.Append(ch); + aScanner.PutBack(theChar); result=ConsumeText(temp,aScanner,aToken); } }//if @@ -952,7 +952,14 @@ NS_IMETHODIMP CViewSourceHTML::HandleToken(CToken* aToken) { break; case eToken_entity: - result=mSink->AddLeaf(theNode); + { + SetColor("maroon",PR_TRUE,*mSink); + nsAutoString theStr("&"); + theStr.Append(aToken->GetStringValueXXX()); + theStr.Append(";"); + WriteText(theStr,*mSink,PR_FALSE); + SetStyle(eHTMLTag_font,PR_FALSE,*mSink); + } break; case eToken_comment: diff --git a/mozilla/parser/htmlparser/src/nsWellFormedDTD.cpp b/mozilla/parser/htmlparser/src/nsWellFormedDTD.cpp index 658a4c69d22..e0fd2c45b47 100644 --- a/mozilla/parser/htmlparser/src/nsWellFormedDTD.cpp +++ b/mozilla/parser/htmlparser/src/nsWellFormedDTD.cpp @@ -417,22 +417,22 @@ NS_IMETHODIMP CWellFormedDTD::ConsumeAttributes(PRUnichar aChar,CScanner& aScann * @return new token or null */ NS_IMETHODIMP CWellFormedDTD::ConsumeEntity(PRUnichar aChar,CScanner& aScanner,CToken*& aToken) { - PRUnichar ch; - nsresult result=aScanner.GetChar(ch); + PRUnichar theChar; + nsresult result=aScanner.GetChar(theChar); if(NS_OK==result) { - if(nsString::IsAlpha(ch)) { //handle common enity references &xxx; or �. + if(nsString::IsAlpha(theChar)) { //handle common enity references &xxx; or �. aToken = gTokenRecycler.CreateTokenOfType(eToken_entity,eHTMLTag_entity,gEmpty); - result = aToken->Consume(ch,aScanner); //tell new token to finish consuming text... + result = aToken->Consume(theChar,aScanner); //tell new token to finish consuming text... } - else if(kHashsign==ch) { + else if(kHashsign==theChar) { aToken = gTokenRecycler.CreateTokenOfType(eToken_entity,eHTMLTag_entity,gEmpty); result=aToken->Consume(0,aScanner); } else { //oops, we're actually looking at plain text... nsAutoString temp("&"); - temp.Append(ch); + aScanner.PutBack(theChar); result=ConsumeText(temp,aScanner,aToken); } }//if