Browse Source

XML/HTML writers, handle denormalized line-ending sequences (#13 and #13#10), fixes #13879.

git-svn-id: trunk@13247 -
sergei 16 năm trước cách đây
mục cha
commit
f0e6946688

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

@@ -180,8 +180,13 @@ begin
     wc := Cardinal(Src^);  Inc(Src);
     wc := Cardinal(Src^);  Inc(Src);
     case wc of
     case wc of
       $0A: pb := StrECopy(pb, PChar(FLineBreak));
       $0A: pb := StrECopy(pb, PChar(FLineBreak));
+      $0D: begin
+        pb := StrECopy(pb, PChar(FLineBreak));
+        if (Src < SrcEnd) and (Src^ = #$0A) then
+          Inc(Src);
+      end;
 
 
-      0..$09, $0B..$7F:  begin
+      0..$09, $0B, $0C, $0E..$7F:  begin
         pb^ := char(wc); Inc(pb);
         pb^ := char(wc); Inc(pb);
       end;
       end;
 
 

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

@@ -191,8 +191,13 @@ begin
     wc := Cardinal(Src^);  Inc(Src);
     wc := Cardinal(Src^);  Inc(Src);
     case wc of
     case wc of
       $0A: pb := StrECopy(pb, PChar(FLineBreak));
       $0A: pb := StrECopy(pb, PChar(FLineBreak));
+      $0D: begin
+        pb := StrECopy(pb, PChar(FLineBreak));
+        if (Src < SrcEnd) and (Src^ = #$0A) then
+          Inc(Src);
+      end;
 
 
-      0..$09, $0B..$7F:  begin
+      0..$09, $0B, $0C, $0E..$7F:  begin
         pb^ := char(wc); Inc(pb);
         pb^ := char(wc); Inc(pb);
       end;
       end;