summaryrefslogtreecommitdiff
path: root/color.h
diff options
context:
space:
mode:
authorJunio C Hamano <gitster@pobox.com>2010-02-27 18:56:38 -0800
committerJunio C Hamano <gitster@pobox.com>2010-03-07 12:00:36 -0800
commit8b124135a97b593d50a90abcec231552b31c7ade (patch)
tree174c3351039ccb082ef50f95811d0dfa3128fa5c /color.h
parentc5034673fd92b6278e6c9d55683770ec01fafc89 (diff)
downloadgit-8b124135a97b593d50a90abcec231552b31c7ade.tar.gz
color: allow multiple attributes
In configuration files (and "git config --color" command line), we supported one and only one attribute after foreground and background color. Accept combinations of attributes, e.g. [diff.color] old = red reverse bold Signed-off-by: Junio C Hamano <gitster@pobox.com>
Diffstat (limited to 'color.h')
-rw-r--r--color.h16
1 files changed, 14 insertions, 2 deletions
diff --git a/color.h b/color.h
index 5019df82f7..e2988f4e93 100644
--- a/color.h
+++ b/color.h
@@ -1,8 +1,20 @@
#ifndef COLOR_H
#define COLOR_H
-/* "\033[1;38;5;2xx;48;5;2xxm\0" is 23 bytes */
-#define COLOR_MAXLEN 24
+/* 2 + (2 * num_attrs) + 8 + 1 + 8 + 'm' + NUL */
+/* "\033[1;2;4;5;7;38;5;2xx;48;5;2xxm\0" */
+/*
+ * The maximum length of ANSI color sequence we would generate:
+ * - leading ESC '[' 2
+ * - attr + ';' 2 * 8 (e.g. "1;")
+ * - fg color + ';' 9 (e.g. "38;5;2xx;")
+ * - fg color + ';' 9 (e.g. "48;5;2xx;")
+ * - terminating 'm' NUL 2
+ *
+ * The above overcounts attr (we only use 5 not 8) and one semicolon
+ * but it is close enough.
+ */
+#define COLOR_MAXLEN 40
/*
* This variable stores the value of color.ui