Bladeren bron

classes: add TStringsOption.soPreserveBOM

git-svn-id: trunk@43848 -
ondrej 5 jaren geleden
bovenliggende
commit
ee18a7ee9a
2 gewijzigde bestanden met toevoegingen van 5 en 1 verwijderingen
  1. 1 1
      rtl/objpas/classes/classesh.inc
  2. 4 0
      rtl/objpas/classes/stringl.inc

+ 1 - 1
rtl/objpas/classes/classesh.inc

@@ -610,7 +610,7 @@ type
   TStringsForEachMethod = procedure(const CurrentValue: string) of object;
   TMissingNameValueSeparatorAction = (mnvaValue,mnvaName,mnvaEmpty,mnvaError);
   TMissingNameValueSeparatorActions = set of TMissingNameValueSeparatorAction;
-  TStringsOption = (soStrictDelimiter,soWriteBOM,soTrailingLineBreak,soUseLocale);
+  TStringsOption = (soStrictDelimiter,soWriteBOM,soTrailingLineBreak,soUseLocale,soPreserveBOM);
   TStringsOptions = set of TStringsOption;
 
   TStrings = class(TPersistent)

+ 4 - 0
rtl/objpas/classes/stringl.inc

@@ -1397,6 +1397,8 @@ begin
   finally
     EndUpdate;
   end;
+  if soPreserveBOM in FOptions then
+    WriteBOM:=False;
 end;
 
 
@@ -1431,6 +1433,8 @@ begin
     SetLength(Buffer,BufLen-BufDelta+BytesRead);
     PreambleLength:=TEncoding.GetBufferEncoding(Buffer,AEncoding,FDefaultEncoding);
     T:=AEncoding.GetAnsiString(Buffer,PreambleLength,Length(Buffer)-PreambleLength);
+    if soPreserveBOM in FOptions then
+      WriteBOM:=PreambleLength>0;
     SetEncoding(AEncoding);
     SetLength(Buffer,0);
     SetTextStr(T);