fixed bugs 625 and 1521
git-svn-id: svn://10.0.0.236/trunk@17489 18797224-902f-48f8-a5cc-f745e15eee43
This commit is contained in:
@@ -720,9 +720,9 @@ nsresult CNavDTD::HandleDefaultStartToken(CToken* aToken,eHTMLTags aChildTag,nsI
|
||||
|
||||
//Sick as it sounds, I have to make sure the body has been
|
||||
//opened before other tags can be added to the content sink...
|
||||
|
||||
static eHTMLTags gBodyBlockers[]={eHTMLTag_body,eHTMLTag_frameset,eHTMLTag_head};
|
||||
PRInt32 theBodyBlocker=GetTopmostIndexOf(gBodyBlockers,sizeof(gStyleTags)/sizeof(eHTMLTag_unknown));
|
||||
|
||||
static eHTMLTags gBodyBlockers[]={eHTMLTag_body,eHTMLTag_frameset,eHTMLTag_head,eHTMLTag_map};
|
||||
PRInt32 theBodyBlocker=GetTopmostIndexOf(gBodyBlockers,sizeof(gBodyBlockers)/sizeof(eHTMLTag_unknown));
|
||||
if(!theBodyBlocker) {
|
||||
if(CanPropagate(eHTMLTag_body,aChildTag)) {
|
||||
mHasOpenBody=PR_TRUE;
|
||||
@@ -1971,8 +1971,10 @@ nsresult CNavDTD::OpenMap(const nsIParserNode& aNode){
|
||||
if(mHasOpenMap)
|
||||
CloseMap(aNode);
|
||||
nsresult result=mSink->OpenMap(aNode);
|
||||
if(NS_OK==result)
|
||||
if(NS_OK==result) {
|
||||
mBodyContext->Push((eHTMLTags)aNode.GetNodeType());
|
||||
mHasOpenMap=PR_TRUE;
|
||||
}
|
||||
return result;
|
||||
}
|
||||
|
||||
@@ -1989,6 +1991,7 @@ nsresult CNavDTD::CloseMap(const nsIParserNode& aNode){
|
||||
if(mHasOpenMap) {
|
||||
mHasOpenMap=PR_FALSE;
|
||||
result=mSink->CloseMap(aNode);
|
||||
mBodyContext->Pop();
|
||||
}
|
||||
return result;
|
||||
}
|
||||
|
||||
@@ -141,7 +141,7 @@ CTagList gDTKids(1,eHTMLTag_dt);
|
||||
CTagList gFieldsetKids(1,eHTMLTag_legend);
|
||||
CTagList gFormKids(1,eHTMLTag_keygen);
|
||||
CTagList gFramesetKids(3,eHTMLTag_frame,eHTMLTag_frameset,eHTMLTag_noframes);
|
||||
CTagList gHtmlKids(5,eHTMLTag_body,eHTMLTag_frameset,eHTMLTag_head,eHTMLTag_noscript,eHTMLTag_script);
|
||||
CTagList gHtmlKids(6,eHTMLTag_body,eHTMLTag_frameset,eHTMLTag_head,eHTMLTag_map,eHTMLTag_noscript,eHTMLTag_script);
|
||||
CTagList gHeadKids(7,eHTMLTag_base,eHTMLTag_bgsound,eHTMLTag_link,eHTMLTag_meta,eHTMLTag_script,eHTMLTag_style,eHTMLTag_title);
|
||||
CTagList gMapKids(1,eHTMLTag_area);
|
||||
CTagList gNoframesKids(1,eHTMLTag_body);
|
||||
|
||||
@@ -612,6 +612,11 @@ nsresult nsParser::Parse(nsString& aSourceBuffer,PRBool anHTMLString,PRBool aVer
|
||||
mDTDVerification=aVerifyEnabled;
|
||||
mStreamListenerState=eOnStart;
|
||||
|
||||
{
|
||||
fstream out("c:/temp/out.file",ios::trunc);
|
||||
aSourceBuffer.DebugDump(out);
|
||||
}
|
||||
|
||||
nsresult result=NS_OK;
|
||||
if(0<aSourceBuffer.Length()){
|
||||
CParserContext* pc=new CParserContext(new nsScanner(aSourceBuffer),&aSourceBuffer,0);
|
||||
|
||||
Reference in New Issue
Block a user