Browse Source

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

git-svn-id: trunk@13247 -
sergei 16 years ago
parent
commit
f0e6946688
2 changed files with 12 additions and 2 deletions
  1. 6 1
      packages/fcl-xml/src/htmwrite.pp
  2. 6 1
      packages/fcl-xml/src/xmlwrite.pp

+ 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;