]> git.ipfire.org Git - thirdparty/git.git/commit
color: allow colors to be prefixed with "reset"
authorRobert Estelle <robertestelle@gmail.com>
Tue, 26 Oct 2021 01:03:47 +0000 (01:03 +0000)
committerJunio C Hamano <gitster@pobox.com>
Thu, 28 Oct 2021 16:37:18 +0000 (09:37 -0700)
commitde658515ae1166577441da09fe7624769e263a3e
treebd019e9daccc7e3f6340bccd4b3788434053ca80
parent05f1f41c9b02b916a5f03c5658bec3270ac3684d
color: allow colors to be prefixed with "reset"

"reset" was previously treated as a standalone special color name
representing `\e[m`. Now, it can apply to other color properties,
allowing exact specifications without implicit attribute inheritance.

For example, "reset green" now renders `\e[;32m`, which is interpreted
as "reset everything; then set foreground to green". This means the
background and other attributes are also reset to their defaults.

Previously, this was impossible to represent in a single color:
"reset" could be specified alone, or a color with attributes, but some
thing like clearing a background color were impossible.

There is a separate change that introduces the "default" color name to
assist with that, but even then, the above could only to be represented
by explicitly disabling each of the attributes:
  green default no-bold no-dim no-italic no-ul no-blink no-reverse no-strike

Signed-off-by: Robert Estelle <robertestelle@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
Documentation/config.txt
color.c
color.h
t/t4026-color.sh