On 2024-12-20 14:22, Michael Van Canneyt via fpc-pascal wrote:
On Fri, 20 Dec 2024, Karoly Balogh via fpc-pascal wrote:
Hi,
On Fri, 20 Dec 2024, Michael Van Canneyt via fpc-pascal wrote:

If I compile it with:
Free Pascal Compiler version 3.3.1-16969-g798f2ba632-dirty [2024/11/28] for
i386
I get almost what I expected, but my #$EE is now been changed to #$3F (and all similar codes in the range of #$D0 - #$EF have been changed to #$3F as
well)
   Sent: #$EE#$59#$20#$4D#$69#$6E#$20
Received: #$3F#$59#$20#$4D#$69#$6E#$20

Does anyone know why this is? I have tried it several times, if I compile it with the trunk from 2024/03/18 it's fine, if I use the current trunk my other program is receiving the wrong data. noted that I never re-compiled CMD_Message.exe so it must be that my TProcess is now sending modified
parameters to my program.

Is there any way to get TProcess in the current trunk to work the way it
used to?

Note that sending a non-ascii string on the command-line is a bad idea. It's susceptible to codepage issues, and will most likely behave differently
depending on whether the ANSI or WideString version of the underlying
windows API is used.

Which is what probably happens here. "3F" is the ASCII code for the "?" character, which is used as a joker character for codepage conversions,
when the mapping cannot be determined...

I was also wondering if some basic behavior changes regarding string types have been introducted into the RTL, that somehow leaks into TProcess, by
introducing a conversion somehow along the way.

I am not aware of any such changes, but given your remark about the meaning
of 3F, the latter seems a likely explanation.

Could it be due to a change of compilation mode (DELPHIUNICODE etc.) by the user?

Tomas
_______________________________________________
fpc-pascal maillist  -  fpc-pascal@lists.freepascal.org
https://lists.freepascal.org/cgi-bin/mailman/listinfo/fpc-pascal

Reply via email to