[fpc-pascal] Is there a recent change to TProcess?

James Richters james.richters at productionautomation.net
Fri Dec 20 15:16:27 CET 2024


It does seem that '?' is being substituted in, but I don't know why,  the
ascii codes I am using are valid character they are:
#$D0 - #$EF which are these: Þßàáâãäåæçèéêëìíîïï  It's not like they are
non-characters like escape or something.
They are valid ascii characters. I went to the character map to see what
they were.
I don't need those so I used them as color codes so I could specify what
color things should be by prefixing color changes with one of those.

I'm on Windows 10 Professional, I'm not changing anything other than
re-compiling the main program that has the TProcess call in it.

James


-----Original Message-----
From: fpc-pascal <fpc-pascal-bounces at lists.freepascal.org> On Behalf Of
Michael Van Canneyt via fpc-pascal
Sent: Friday, December 20, 2024 8:23 AM
To: Karoly Balogh via fpc-pascal <fpc-pascal at lists.freepascal.org>
Cc: Michael Van Canneyt <michael at freepascal.org>
Subject: Re: [fpc-pascal] Is there a recent change to TProcess?



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.

Michael.

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



More information about the fpc-pascal mailing list