--color=always has been broken when sending stdout to a pipe since the move to owo-colors in #217.
The issue is that even though the color arg would be set to true, it still used .if_supports_color(Stream::Stdout, ... when printing which wouldn't emit color if stdout wasn't a tty regardless what the arg was set to. I've removed the atty check and used owo-colors override functionality based on the value of --color.
This does mean that the string slicing logic for the matched segment is run unconditionally on each match. I haven't run benchmarks but I assume the difference is negligible.
--color=always
has been broken when sending stdout to a pipe since the move to owo-colors in #217.The issue is that even though the
color
arg would be set totrue
, it still used.if_supports_color(Stream::Stdout, ...
when printing which wouldn't emit color if stdout wasn't a tty regardless what the arg was set to. I've removed theatty
check and usedowo-colors
override functionality based on the value of--color
.This does mean that the string slicing logic for the matched segment is run unconditionally on each match. I haven't run benchmarks but I assume the difference is negligible.