summaryrefslogtreecommitdiff
path: root/color.h
diff options
context:
space:
mode:
authorRobert Estelle <robertestelle@gmail.com>2021-10-26 01:03:47 (GMT)
committerJunio C Hamano <gitster@pobox.com>2021-10-28 16:37:18 (GMT)
commitde658515ae1166577441da09fe7624769e263a3e (patch)
treebd019e9daccc7e3f6340bccd4b3788434053ca80 /color.h
parent05f1f41c9b02b916a5f03c5658bec3270ac3684d (diff)
downloadgit-de658515ae1166577441da09fe7624769e263a3e.zip
git-de658515ae1166577441da09fe7624769e263a3e.tar.gz
git-de658515ae1166577441da09fe7624769e263a3e.tar.bz2
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>
Diffstat (limited to 'color.h')
-rw-r--r--color.h1
1 files changed, 1 insertions, 0 deletions
diff --git a/color.h b/color.h
index 27e8170..cfc8f84 100644
--- a/color.h
+++ b/color.h
@@ -6,6 +6,7 @@ struct strbuf;
/*
* The maximum length of ANSI color sequence we would generate:
* - leading ESC '[' 2
+ * - reset ';' .................1
* - attr + ';' 2 * num_attr (e.g. "1;")
* - no-attr + ';' 3 * num_attr (e.g. "22;")
* - fg color + ';' 17 (e.g. "38;2;255;255;255;")