final features for parsing engine (WIP); lots of bug fixes

git-svn-id: svn://10.0.0.236/trunk@31835 18797224-902f-48f8-a5cc-f745e15eee43
This commit is contained in:
rickg%netscape.com
1999-05-16 05:27:23 +00:00
parent f91f286deb
commit 8cc14193f7
44 changed files with 2860 additions and 2062 deletions

View File

@@ -526,14 +526,15 @@ nsresult CViewSourceHTML::WriteText(const nsString& aTextString,nsIContentSink&
temp="";
break;
case kSpace:
if((PR_TRUE==aPreserveSpace) && (kSpace==aTextString.CharAt(theOffset+1))) {
if(temp.Length())
result=aSink.AddLeaf(theTextNode); //just dump the whole string...
WriteNBSP(1,aSink);
temp="";
break;
}
//fall through...
if((PR_TRUE==aPreserveSpace)) {
if(aTextString.Length() > theOffset+1 && (kSpace==aTextString.CharAt(theOffset+1))) {
if(temp.Length())
result=aSink.AddLeaf(theTextNode); //just dump the whole string...
WriteNBSP(1,aSink);
temp="";
break;
}
} //fall through...
default:
//scan ahead looking for valid chars...
temp+=aTextString.CharAt(theOffset);
@@ -751,7 +752,7 @@ NS_IMETHODIMP CViewSourceHTML::HandleToken(CToken* aToken,nsIParser* aParser) {
case eToken_text:
{
nsString& theText=aToken->GetStringValueXXX();
WriteText(theText,*mSink,PR_FALSE);
WriteText(theText,*mSink,PR_TRUE);
}
break;
@@ -801,8 +802,8 @@ NS_IMETHODIMP CViewSourceHTML::HandleToken(CToken* aToken,nsIParser* aParser) {
CToken* theNextToken = mTokenizer->PopToken();
if(theNextToken) {
theType=eHTMLTokenTypes(theNextToken->GetTokenType());
if(eToken_skippedcontent==theType) {
attrNode.SetSkippedContent(theNextToken);
if(eToken_text==theType) {
attrNode.SetSkippedContent(theNextToken->GetStringValueXXX());
}
}
result= OpenHead(attrNode);
@@ -813,7 +814,7 @@ NS_IMETHODIMP CViewSourceHTML::HandleToken(CToken* aToken,nsIParser* aParser) {
if(NS_OK==result)
result=CloseHead(attrNode);
}
nsString& theText=((CAttributeToken*)theNextToken)->GetKey();
const nsString& theText=attrNode.GetSkippedContent();
WriteText(theText,*mSink,PR_FALSE);
}
break;