From: Nguyen Thai Ngoc Duy Date: Mon, 17 Dec 2012 11:44:10 GMT Subject: Re: [PATCH] log --format: teach %C(auto,black) to paint it black only on terminals Message-ID: In-Reply-To: <7vobhtm5pk.fsf_-_@alter.siamese.dyndns.org> On Mon, Dec 17, 2012 at 3:40 PM, Junio C Hamano wrote: > Traditionally, %C(color attr) always emitted the ANSI color > sequence; it was up to the scripts that wanted to conditionally > color their output to omit %C(...) specifier when they do not want > colors. > > Optionally allow "auto," to be prefixed to the color, so that the > output is colored iff it goes to the terminal. I see "prefix" is clearly documented. Still it feels a bit unnatural that %C(red,auto) won't work. But we can make that case work later if somebody cares enough. > if (!end) > return 0; > - color_parse_mem(placeholder + 2, > - end - (placeholder + 2), > + if (!memcmp(begin, "auto,", 5)) { > + if (!want_color(-1)) > + return end - placeholder + 1; This want_color() checks color.ui and only when color.ui = auto, it bothers to check if the output is tty. I think the document should say that "auto," (or maybe another name because it's not really auto) respects color.ui. -- Duy