Code

grep: Colorize filename, line number, and separator
[git.git] / color.h
diff --git a/color.h b/color.h
index 18abeb7c7dd47794d4f5fea4049b5719f03383fe..bfeea1f2012eac4eca1d6e91893769876446c38f 100644 (file)
--- a/color.h
+++ b/color.h
@@ -4,6 +4,11 @@
 /* "\033[1;38;5;2xx;48;5;2xxm\0" is 23 bytes */
 #define COLOR_MAXLEN 24
 
+/*
+ * IMPORTANT: Due to the way these color codes are emulated on Windows,
+ * write them only using printf(), fprintf(), and fputs(). In particular,
+ * do not use puts() or write().
+ */
 #define GIT_COLOR_NORMAL       ""
 #define GIT_COLOR_RESET                "\033[m"
 #define GIT_COLOR_BOLD         "\033[1m"
 #define GIT_COLOR_BLUE         "\033[34m"
 #define GIT_COLOR_MAGENTA      "\033[35m"
 #define GIT_COLOR_CYAN         "\033[36m"
+#define GIT_COLOR_BOLD_RED     "\033[1;31m"
+#define GIT_COLOR_BOLD_GREEN   "\033[1;32m"
+#define GIT_COLOR_BOLD_YELLOW  "\033[1;33m"
+#define GIT_COLOR_BOLD_BLUE    "\033[1;34m"
+#define GIT_COLOR_BOLD_MAGENTA "\033[1;35m"
+#define GIT_COLOR_BOLD_CYAN    "\033[1;36m"
 #define GIT_COLOR_BG_RED       "\033[41m"
+#define GIT_COLOR_BG_GREEN     "\033[42m"
+#define GIT_COLOR_BG_YELLOW    "\033[43m"
+#define GIT_COLOR_BG_BLUE      "\033[44m"
+#define GIT_COLOR_BG_MAGENTA   "\033[45m"
+#define GIT_COLOR_BG_CYAN      "\033[46m"
 
 /*
  * This variable stores the value of color.ui
@@ -29,7 +45,9 @@ int git_color_default_config(const char *var, const char *value, void *cb);
 int git_config_colorbool(const char *var, const char *value, int stdout_is_tty);
 void color_parse(const char *value, const char *var, char *dst);
 void color_parse_mem(const char *value, int len, const char *var, char *dst);
+__attribute__((format (printf, 3, 4)))
 int color_fprintf(FILE *fp, const char *color, const char *fmt, ...);
+__attribute__((format (printf, 3, 4)))
 int color_fprintf_ln(FILE *fp, const char *color, const char *fmt, ...);
 int color_fwrite_lines(FILE *fp, const char *color, size_t count, const char *buf);