std.debug.TTY: Fix colors not resetting on Windows #13948
Merged
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
This fixes a regression introduced in #12298 where colors would never reset in a Windows console because the attributes would be queried on every
setColorcall, and then try to 'reset' the attributes to what it just queried (i.e. it was essentially doing a complicated no-op on.Reset).This fixes the problem while (I think) keeping with the spirit of the changes in #12298--that is,
TTY.Configis not specifically tied to stderr like it was before #12298. To that end, detectTTYConfig now takes aFileand that's what gets used to query the initial attributes to reset to.(for context, before #12298, the first
setColorcall is where the reset attributes would get queried and it would always use stderr to do it)Before (the green of the
^would carry over to the output ofzig version):After:
cc @r00ster91