Pārlūkot izejas kodu

* Don't escape text inside script/style elements, third part of Mantis #22434.

git-svn-id: trunk@33251 -
sergei 9 gadi atpakaļ
vecāks
revīzija
a6ea383b0e
1 mainītis faili ar 6 papildinājumiem un 1 dzēšanām
  1. 6 1
      packages/fcl-xml/src/htmwrite.pp

+ 6 - 1
packages/fcl-xml/src/htmwrite.pp

@@ -46,6 +46,7 @@ type
   private
     FStream: TStream;
     FInsideTextNode: Boolean;
+    FInsideScript: Boolean;
     FBuffer: PChar;
     FBufPos: PChar;
     FCapacity: Integer;
@@ -324,6 +325,7 @@ begin
       ElFlags := HTMLElementProps[j].Flags;
       if j = etMeta then
         meta := True;
+      FInsideScript := (j=etScript) or (j=etStyle);
       break;
     end;
 
@@ -371,7 +373,10 @@ end;
 
 procedure THTMLWriter.VisitText(node: TDOMNode);
 begin
-  ConvWrite(TDOMCharacterData(node).Data, TextSpecialChars, {$IFDEF FPC}@{$ENDIF}TextnodeSpecialCharCallback);
+  if FInsideScript then
+    WrtStr(TDOMCharacterData(node).Data)
+  else
+    ConvWrite(TDOMCharacterData(node).Data, TextSpecialChars, {$IFDEF FPC}@{$ENDIF}TextnodeSpecialCharCallback);
 end;
 
 procedure THTMLWriter.VisitCDATA(node: TDOMNode);