Skip to content

Commit

Permalink
Fixed: Problem with <style> inside <blockqoute> #111
Browse files Browse the repository at this point in the history
- allow <style> almost everywhere
  • Loading branch information
BerndGabriel committed Nov 19, 2015
1 parent 654ff5a commit 5a6dcd4
Showing 1 changed file with 26 additions and 12 deletions.
38 changes: 26 additions & 12 deletions source/ReadHTML.pas
Expand Up @@ -1404,7 +1404,7 @@ procedure THtmlParser.DoDivEtc(Sym: TElemSymb; const TermSet: TElemSymbSet);
IsInline: Boolean;
begin
case Sym of
DivSy, MainSy, HeaderSy, NavSy, SectionSy, ArticleSy, AsideSy, FooterSy, HGroupSy :
DivSy, MainSy, HeaderSy, NavSy, SectionSy, ArticleSy, AsideSy, FooterSy, HGroupSy:
begin
SectionList.Add(Section, TagIndex);
PushNewProp(Sym, Attributes.TheClass, Attributes.TheID, '', Attributes.TheTitle, Attributes.TheStyle);
Expand Down Expand Up @@ -1547,6 +1547,13 @@ procedure THtmlParser.DoDivEtc(Sym: TElemSymb; const TermSet: TElemSymbSet);
if Sy in [BlockQuoteEndSy, AddressEndSy] then
Next;
end;

StyleSy:
begin
DoStyle(PropStack.Document.Styles, LCh, Doc, '', False, FUseQuirksMode);
Next;
end;

else
Next;
end;
Expand Down Expand Up @@ -3112,6 +3119,12 @@ procedure THtmlParser.DoCommonSy;

ScriptSy:
DoScript(PropStack.Document.ScriptEvent);

StyleSy:
begin
DoStyle(PropStack.Document.Styles, LCh, Doc, '', False, FUseQuirksMode);
Next;
end;
end;
end;

Expand Down Expand Up @@ -3411,7 +3424,7 @@ procedure THtmlParser.DoCommonSy;
StringSy, ASy, AEndSy, BrSy, NoBrSy, NoBrEndSy, WbrSy,
InputSy, ButtonSy, ButtonEndSy, ProgressSy, ProgressEndSy, MeterSy, MeterEndSy,
TextAreaSy, TextAreaEndSy, SelectSy, ImageSy, FontSy, FontEndSy, BaseFontSy,
ScriptSy, ScriptEndSy, PanelSy, HRSy, ObjectSy, ObjectEndSy:
ScriptSy, ScriptEndSy, StyleSy, StyleEndSy, PanelSy, HRSy, ObjectSy, ObjectEndSy:
DoCommonSy;

CommandSy:
Expand Down Expand Up @@ -3480,6 +3493,12 @@ procedure THtmlParser.DoCommonSy;
DoScript(PropStack.Document.ScriptEvent);
Next;
end;

StyleSy:
begin
DoStyle(PropStack.Document.Styles, LCh, Doc, '', False, FUseQuirksMode);
Next;
end;
else
begin
Assert(False, 'DoCommon can''t handle <' + SymbToStr(Sy) + GreaterChar);
Expand Down Expand Up @@ -3542,7 +3561,7 @@ procedure THtmlParser.DoP(const TermSet: TElemSymbSet);
ImageSy, FontSy, BaseFontSy, BRSy,
ObjectSy, ObjectEndSy, IFrameSy, IFrameEndSy, ButtonSy, ButtonEndSy,
ProgressSy, ProgressEndSy, MeterSy, MeterEndSy,
MapSy, PageSy, ScriptSy, ScriptEndSy, PanelSy, CommandSy])
MapSy, PageSy, ScriptSy, ScriptEndSy, StyleSy, StyleEndSy, PanelSy, CommandSy])
do
if Sy <> CommandSy then
DoCommonSy
Expand Down Expand Up @@ -3646,7 +3665,7 @@ procedure THtmlParser.DoListItem(
SmallEndSy, BigSy, SmallSy, ASy, AEndSy, SpanSy, SpanEndSy,
InputSy, ButtonSy, ButtonEndSy, TextAreaSy, TextAreaEndSy, SelectSy, LabelSy, LabelEndSy,
ImageSy, FontSy, BaseFontSy, BrSy, H1Sy..H6Sy,
MapSy, PageSy, ScriptSy, ScriptEndSy, PanelSy,
MapSy, PageSy, ScriptSy, ScriptEndSy, StyleSy, StyleEndSy, PanelSy,
ObjectSy, ObjectEndSy, IFrameSy, IFrameEndSy, ProgressSy, ProgressEndSy, MeterSy, MeterEndSy:
DoCommonSy;

Expand Down Expand Up @@ -3787,9 +3806,10 @@ procedure THtmlParser.DoLists(Sym: TElemSymb; const TermSet: TElemSymbSet);
H1Sy..H6Sy, H1EndSy..H6EndSy, PreSy,
InputSy, ButtonSy, ButtonEndSy, TextAreaSy, TextAreaEndSy, SelectSy, LabelSy, LabelEndSy,
ImageSy, FontSy, FontEndSy, BaseFontSy, BigSy, BigEndSy, SmallSy,
SmallEndSy, MapSy, PageSy, ScriptSy, PanelSy, NoBrSy, NoBrEndSy, WbrSy,
SmallEndSy, MapSy, PageSy, ScriptSy, StyleSy, StyleEndSy, PanelSy, NoBrSy, NoBrEndSy, WbrSy,
ObjectSy, ObjectEndSy, IFrameSy, IFrameEndSy, ProgressSy, ProgressEndSy, MeterSy, MeterEndSy:
DoCommonSy;

else
if Sy in TermSet then {exit below}
else
Expand Down Expand Up @@ -4060,7 +4080,7 @@ procedure THtmlParser.DoBody(const TermSet: TElemSymbSet);
H1Sy..H6Sy, H1EndSy..H6EndSy, PreSy, TableSy,
InputSy, ButtonSy, ButtonEndSy, TextAreaSy, TextAreaEndSy, SelectSy, LabelSy, LabelEndSy,
ImageSy, FontSy, FontEndSy, BaseFontSy, BigSy, BigEndSy, SmallSy,
SmallEndSy, MapSy, PageSy, ScriptSy, PanelSy, NoBrSy, NoBrEndSy, WbrSy,
SmallEndSy, MapSy, PageSy, ScriptSy, ScriptEndSy, StyleSy, StyleEndSy, PanelSy, NoBrSy, NoBrEndSy, WbrSy,
ObjectSy, ObjectEndSy, IFrameSy, IFrameEndSy, ProgressSy, ProgressEndSy, MeterSy, MeterEndSy:
begin
PushHtmlPropsIfAny;
Expand Down Expand Up @@ -4193,12 +4213,6 @@ procedure THtmlParser.DoBody(const TermSet: TElemSymbSet);
DoStyleLink;
end;

StyleSy:
begin
DoStyle(PropStack.Document.Styles, LCh, Doc, '', False, FUseQuirksMode);
Next;
end;

BgSoundSy:
begin
PushHtmlPropsIfAny;
Expand Down

0 comments on commit 5a6dcd4

Please sign in to comment.