On 3/5/25 11:59 AM, Vindex9 wrote:
> On Wednesday, 5 March 2025 at 17:56:25 UTC, Ali Çehreli wrote:
>> It shouldn't and does not work in my environment (both inside an Emacs
>> buffer and inside a Linux terminal).
>

The program just outputs characters to its stdout. One way to see this process is to redirect 'stdout' to a file:

$ my_program > my_output

Then, when you open file 'my_output' in a hex editor, you should see that the program did output just a single char with value e.g. 132. There are no other UTF-8 characters right after it, so I wouldn't expect 'τ' to be formed on the output.

> I used Terminator. I tried other terminal emulators and they behaved
> differently (output unrecognized bits of characters as question marks).
> Apparently Terminator has some weird buffering.

They probably keep state for Unicode characters but don't reset it. (I don't know whether they are required to.) Could you please try the following program to see whether it prints τ for all tau arrays below?

import std.stdio;
import std.algorithm;

void main() {
    char[][] taus = [ [ 207, 132 ],
                      [ 207, 0, 132 ],
                      [ 207, 'a', 132 ] ];

    foreach (i, tau; taus) {
        write(i, ": ");
        tau.each!(write);
        writeln();
    }
}

For me, only the first one is a τ in a Unicode environment. You may see 3 taus under Terminal.

> Sorry to bother you.

Not at all! I assume everybody here finds these topic very interesting like I do. :)

Ali

Reply via email to