From deab98736ed591b1aeb6a229de1ddf06e9f43a42 Mon Sep 17 00:00:00 2001 From: Ansgar Becker Date: Tue, 15 Oct 2019 07:07:36 +0200 Subject: [PATCH] Issue #140: Be sure to write tab backup files in UTF8 without BOM --- source/apphelpers.pas | 18 +++++++++++++++++- 1 file changed, 17 insertions(+), 1 deletion(-) diff --git a/source/apphelpers.pas b/source/apphelpers.pas index 34b3e275d..9cf024522 100644 --- a/source/apphelpers.pas +++ b/source/apphelpers.pas @@ -26,6 +26,11 @@ TOrderCol = class(TObject) TLineBreaks = (lbsNone, lbsWindows, lbsUnix, lbsMac, lbsWide, lbsMixed); + TUTF8NoBOMEncoding = class(TUTF8Encoding) + public + function GetPreamble: TBytes; override; + end; + TDBObjectEditor = class(TFrame) private FModified: Boolean; @@ -1119,10 +1124,13 @@ function GetTempDir: String; procedure SaveUnicodeFile(Filename: String; Text: String); var Writer: TStreamWriter; + Enc: TEncoding; begin - Writer := TStreamWriter.Create(Filename, False, TEncoding.UTF8); + Enc := TUTF8NoBOMEncoding.Create; + Writer := TStreamWriter.Create(Filename, False, Enc); Writer.Write(Text); Writer.Free; + Enc.Free; end; @@ -4227,6 +4235,14 @@ function TAppSettings.DirnameBackups: String; +{ TUTF8NoBOMEncoding } + +function TUTF8NoBOMEncoding.GetPreamble: TBytes; +begin + SetLength(Result, 0); +end; + + initialization NumberChars := ['0'..'9', FormatSettings.DecimalSeparator, FormatSettings.ThousandSeparator];