[fpc-pascal] String literals and code page of .pas source file
Benito van der Zander
benito at benibela.de
Tue Sep 15 01:06:38 CEST 2020
Hi,
>
> I would definitely keep it that way.
>
> As I see it: Redirection or not should not matter, the system should
> assume console output.
> Things like 'tee' make this concept dubious in any case:
>
> If you pipe output to a program, you don't expect the codepage to change
> because of the redirection.
In my projects, I set the output codepage to utf-8 when there is a
redirection
It is platform agnostic, on identical inputs, it creates identical
output files on Linux and Windows. No one needs OEM files on Linux
Best,
Benito
On 14.09.2020 14:51, Michael Van Canneyt via fpc-pascal wrote:
>
>
> On Mon, 14 Sep 2020, Tomas Hajny via fpc-pascal wrote:
>
>>> opened:
>>> {$ifdef FPC_HAS_FEATURE_ANSISTRINGS}
>>> { if no codepage is yet assigned then assign default ansi codepage }
>>> TextRec(t).CodePage:=TranslatePlaceholderCP(TextRec(t).CodePage);
>>> {$else FPC_HAS_FEATURE_ANSISTRINGS}
>>>
>>> I see no need to change this ?
>>
>> Please, have a look at OpenStdIO (implemented at the end of
>> text.inc). That one changes the default codepage for Input, Output
>> and StdErr, but it doesn't care about possible redirection and/or
>> piping to some other application (not necessarily written in FPC).
>> That approach has both advantages and disadvantages. The advantage is
>> that "type <redirected_file>" will give correct results on the
>> console. The disadvantage is that opening the redirected file with
>> any Win32 GUI application (let's say notepad.exe) will result in
>> garbage. I don't say that it is necessarily bad, but it should be
>> documented at least if we want to keep it that way.
>
> I would definitely keep it that way.
>
> As I see it: Redirection or not should not matter, the system should
> assume console output.
> Things like 'tee' make this concept dubious in any case:
>
> If you pipe output to a program, you don't expect the codepage to change
> because of the redirection.
>
>
>>> I think it will differ since Crt is not codepage aware. If you want
>>> it to
>>> work the same you'll have to make Crt codepage (and hence unicode)
>>> aware.
>>
>> As mentioned by me, Crt is currently more codepage aware than the
>> System unit output as far as output to console is concerned, because
>> Crt provides correct output even for shortstrings (unlike the System
>> unit).
>
> I would need to check the details, but that sounds more like
> accidental behaviour as opposed to intended behaviour to me :-)
>
> Michael.
> _______________________________________________
> fpc-pascal maillist - fpc-pascal at lists.freepascal.org
> https://lists.freepascal.org/cgi-bin/mailman/listinfo/fpc-pascal
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.freepascal.org/pipermail/fpc-pascal/attachments/20200915/e72486b5/attachment.htm>
More information about the fpc-pascal
mailing list