Skip to content

CI validation: --filelist CRLF fix (Windows-only strip) - #3

Open
jaypatrickhoward wants to merge 1 commit into
devfrom
filelist-crlf
Open

CI validation: --filelist CRLF fix (Windows-only strip)#3
jaypatrickhoward wants to merge 1 commit into
devfrom
filelist-crlf

Conversation

@jaypatrickhoward

Copy link
Copy Markdown
Owner

Fork-only PR to run full CI on 060ea1e before the upstream draft is marked ready. Do not merge.

@jaypatrickhoward
jaypatrickhowardforce-pushed the filelist-crlf branch 7 times, most recently from 33b35d5 to 078603bCompareSeptember 7, 2026 13:29
`--filelist` stopped accepting Windows CRLF line endings in 165e52c
("first implementation supporting Process Substitution", facebook#4349). That
rewrite reads the list into a buffer opened in binary mode and splits it
on '\n' alone. Previously the list was opened in text mode, where the
Windows CRT translated CRLF to LF before the parser saw it, so stripping
'\n' was sufficient. In binary mode the CR survives into every path:
zstd: can't stat a.txt : No such file or directory -- ignored
The '\r' is invisible in that message, which makes it awkward to
diagnose.
Strip a trailing '\r' when the line pointers are built, but only on
Windows, where CRLF is the native line separator and a '\r' cannot be
used in a filename. Elsewhere '\r' is a legal filename byte and is left
alone, so behaviour on those platforms is unchanged. This restores the
pre-regression behaviour exactly, on every platform, without adding a
new one.
Adds a playTests case, guarded to Windows, that fails without the fix.
Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant

@jaypatrickhoward