Am 31.08.2023 um 9:59 schrieb Tomas Hajny via fpc-devel:
On 2023-08-30 23:38, Ondrej Pokorny via fpc-devel wrote:
Am 30.08.2023 um 20:21 schrieb Ondrej Pokorny via fpc-devel:
Having seen the outputs, I think that the compiler just ignores the
source file encoding for {$MESSAGE} and {$NOTE}. It reads them
always as ANSI and then converts them to DOS-whatever.
That would explain why UTF-8 byte stream is encoded into DOS CP.
So the fix should be quite easy - when {$MESSAGE} or {$NOTE} is read
into a string, set the correct codepage of the string.
I was correct in my assumption and I was able to fix it:
https://gitlab.com/freepascal.org/fpc/source/-/merge_requests/482
On the other hand, when I read the $CODEPAGE docs:
https://www.freepascal.org/docs-html/prog/progsu87.html#x95-940001.3.4
There it is stated that only literal strings follow $CODEPAGE and the
actual code must be in US-ASCII.
But you know: Delphi compatibility :) ...and there is no "illegal
character" compiler error as it is for:
var
ä: string;
so one would expect {$note ä} to show up correctly.
Indeed. I'm glad that our discussion (although triggered by my mistake
:-( ) led to a positive outcome at last. :-)
:) We are not at the finish yet. Positive outcome will be when it gets
fixed in the compiler source.
Ondrej
_______________________________________________
fpc-devel maillist - fpc-devel@lists.freepascal.org
https://lists.freepascal.org/cgi-bin/mailman/listinfo/fpc-devel