On Wed, Dec 21, 2022 at 11:37 PM Jacob Bachmeyer <jcb62...@gmail.com> wrote: > > NightStrike wrote: > > [...] > > Second, the problems with extra \r's still remain, but I think we've > > generally come to think that that part isn't Wine and is instead > > either the testsuite or deja. So I'll keep those replies to Jacob's > > previous message. > > > > Most likely, it is a combination of the MinGW libc (which emits "\r\n" > for end-of-line in accordance with Windows convention) and the kernel > terminal driver (which passes "\r" and translates "\n" to "\r\n" in > accordance with POSIX convention). Wine, short of trying to translate > "\r\n" back to "\n" in accordance with POSIX conventions (and likely > making an even bigger mess---does Wine know if a handle is supposed to > be text or binary?) cannot really fix this, so the testsuite needs to > handle non-POSIX-standard line endings. (The Rust tests probably have > an outright bug if the newlines are being duplicated.)
You may be onto something here. I ran wine under script as `script -c "wine64 ./a.exe" out` (thanks, Arsen!), and it had the same extra \r prepended to the \r\n. I was making the mistake previously of running wine manually and capturing it to a file as `wine64 ./a.exe > out`, which as several have pointed out in this thread, that would disable the quirk, so of course it didn't reveal any problems. I'm behind, but I'll catch up to you guys eventually :) So at least we know for sure that this particular instance of extra characters is coming from Wine. Maybe Wine can be smart enough to only translate \n into \r\n instead of translating \r\n into \r\r\n. Jacek / Eric, comments here? I'm happy to try another patch, the first one was great. Rust is getting \r\r\n\n (as opposed to \r\n\r\n), so... yeah. Could be the rust test, could be the rust frontend, could be another weird Wine interaction.