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

Reply via email to