On 24 July 2018 at 02:38, Denis Kudriashov <dionisi...@gmail.com> wrote:
>
> 2018-07-23 19:19 GMT+01:00 Alistair Grant <akgrant0...@gmail.com>:
>>
>> Hi Pavel & Sven,
>>
>> Thanks for writing this, it is a great quick reference.
>>
>>
>> On Mon, 23 Jul 2018 at 12:08, Sven Van Caekenberghe <s...@stfx.eu> wrote:
>> >
>> >
>> >
>> > > On 23 Jul 2018, at 11:13, Ben Coman <b...@openinworld.com> wrote:
>> > >
>> > > I like all the new code examples until  "Write a UTF-8 text to STDOUT"
>> > > and I wonder "Stdio stdout  writeStreamDo: [ :stream | stream
>> > > nextPutAll: 'a ≠ b' ]"  would better fit the pattern of the other new
>> > > code.
>> > > (presuming "Stdio stdout" returns a FileReference, oherwise maybe
>> > > "Stdio stdoutRef" or "Stdio stdout asFileReference")
>> >
>> > Stdio stdout and friends just return a binary stream, hence they need
>> > wrapping for encoding.
>> >
>> > Maybe
>> >
>> >   Stdio stdoutAsText
>> >
>> > might be an idea, but this is so uncommon that I am not sure this is a
>> > good idea.
>>
>> I've written this code enough times that I'd like to see it included. :-)
>>
>> Maybe
>>
>> Stdout utf8Stdout
>>
>> (following the pattern of ByteArray>>utf8Decoded, String>>utf8Encoded)
>>
>> ?
>>
>> Thanks again,
>> Alistair
>>
>
> I wonder does not stdout and stdin are always about text input/output?
> I never saw examples when somebody explicitly write raw bytes into these
> streams.

Its done... https://subosito.com/posts/imagemagick/
but I guess its not the usual case.


> If I am right then it is better to introduce binaryStdout and binaryStdin
> messages. And make stdout and stdin use most common encoding by default. How
> it is done in Java?
>
>

It might be nice to further the new convention "use file references as
entry points to file streams"
so the new API can be reused...

StdioRef stdout writeStreamDo: [ :stream | stream nextPutAll: 'a ≠ b' ].
StdioRef stdout writeStreamEncoded: 'cp-1250' do: [ :stream | stream
nextPutAll: 'Příliš žluťoučký kůň úpěl ďábelské ódy.' ].
StdioRef stdout binaryWriteStreamDo: [ :stream | stream nextPutAll: #[1 2 3] ].

cheers -ben

Reply via email to