Hi Alistair,
I agree we shouldn't include cygwin1.dll. But the existence of cygwin1.dll is proof that the relevant code can be implemented above Win32. I do know that one can read from cygwin terminals; I was doing that regularly with the old VM. So the issue is simply identifying a cygwin console as a tty. We can put reading/writing from/to it to one side and first focus on identification. I'm happy for you to extend primitiveIsFileDescriptorATTY as you suggest. What I think we need, though, is to be able to identify either a Windows console or a cygwin console independently of cygwin1.dll (even if we have to copy some liberally licensed code from it).