I have just discovered that the recently implemented pipe chunking
protocol is broken on Windows. This is because the pipes are operating
in text mode and doing LF->CR-LF translation, so the number of bytes
received is not the number transmitted and set in the protocol header.
I have not yet succeeded in turning this behaviour off (_setmode()
didn't seem to affect it). If we can't find a way to turn it off, the
only solution short of abandoning its use on Windows that I can think of
is to translate LF on input to something unlikely like 0x1C and then
translate it back when we read it from the pipe.
cheers
andrew