aboutsummaryrefslogtreecommitdiff
path: root/color.h
diff options
context:
space:
mode:
authorJunio C Hamano <gitster@pobox.com>2010-03-24 16:24:13 -0700
committerJunio C Hamano <gitster@pobox.com>2010-03-24 16:24:13 -0700
commit0476228de500049804ae599f557658c3f9042ad0 (patch)
tree4c9185465412afb414bdfb5688f1f804ba3d9fc4 /color.h
parentbcbbe4f9d9afa025024f18a474d11bfec32e3207 (diff)
parent8b124135a97b593d50a90abcec231552b31c7ade (diff)
downloadgit-0476228de500049804ae599f557658c3f9042ad0.tar.gz
git-0476228de500049804ae599f557658c3f9042ad0.tar.xz
Merge branch 'jc/color-attrs' into maint
* jc/color-attrs: color: allow multiple attributes
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 3cb4b7fc8..bcb28cf10 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
/*
* IMPORTANT: Due to the way these color codes are emulated on Windows,