parse_color: recognize "no$foo" to clear the $foo attribute
commitff40d185d25ce821bd6ae5a524e58e4eab01dc86
authorJeff King <peff@peff.net>
Thu, 20 Nov 2014 15:25:52 +0000 (20 10:25 -0500)
committerJunio C Hamano <gitster@pobox.com>
Thu, 20 Nov 2014 20:42:55 +0000 (20 12:42 -0800)
tree680778bbebfd7fbd0a0b77757cfdec4f8ce280a4
parent17a4be26060b00a867cbe54ee906fe03813470ec
parse_color: recognize "no$foo" to clear the $foo attribute

You can turn on ANSI text attributes like "reverse" by
putting "reverse" in your color spec. However, you cannot
ask to turn reverse off.

For common cases, this does not matter. You would turn on
"reverse" at the start of a colored section, and then clear
all attributes with a "reset". However, you may wish to turn
on some attributes, then selectively disable others. For
example:

  git log --format="%C(bold ul yellow)%h%C(noul) %s"

underlines just the hash, but without the need to re-specify
the rest of the attributes. This can also help third-party
programs, like contrib/diff-highlight, that want to turn
some attribute on/off without disrupting existing coloring.

Note that some attribute specifications are probably
nonsensical (e.g., "bold nobold"). We do not bother to flag
such constructs, and instead let the terminal sort it out.

Signed-off-by: Jeff King <peff@peff.net>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
Documentation/config.txt
color.c
color.h
t/t4026-color.sh