On 27.12.2019 12:01, Ondrej Pokorny wrote:
On 27.12.2019 10:40, Michael Van Canneyt wrote:
Yes, indeed. Therefore I suggested
* TEncoding.Default for the DefaultSystemCodePage variable
and
* TEncoding.ANSI for the system encoding.
Currently we have
* TEncoding.SystemEncoding for the DefaultSystemCodePage variable
and
* both TEncoding.ANSI and TEncoding.Default for the system encoding.
(TEncoding.ANSI and TEncoding.Default are equal in FPC.)
In that case, why not simply change:
class function TEncoding.GetDefault: TEncoding;
begin
Result := GetSystemEncoding;
end;
Nothing need be removed. I consider SystemEncoding a better name than
Default,
and the latter should only be kept for Delphi compatibility. IMHO it
would be
better to avoid Default, in fact I would change references to Default to
SystemEncoding for clarity. Default is completely non-descriptive.
If I understand your reasoning correct, that should solve the
problems you
report ?
Yes, that perfectly solves the issues Lazarus developers and users
face. I am OK with this solution as well. Thanks!
I applied the change
class function TEncoding.GetDefault: TEncoding;
begin
Result := GetSystemEncoding;
end;
in r43842 before it gets forgotten. I removed the ANSI-hack from Lazarus
as well - in r62474.
Please note that in Lazarus (where the system encoding is UTF-8),
TStrings.SaveTo*() writes BOM by default. Formerly the BOM was not
written. Bart reported the issue here:
https://lists.freepascal.org/pipermail/fpc-devel/2020-January/042372.html
Ondrej
_______________________________________________
fpc-devel maillist - fpc-devel@lists.freepascal.org
https://lists.freepascal.org/cgi-bin/mailman/listinfo/fpc-devel