diff --git a/color.c b/color.c index fc0b72ad59b13e4bd86372e5e81b4f400c99d26e..54a3da1bad2118815eb8dd1a5f401b67c0879262 100644 --- a/color.c +++ b/color.c @@ -115,7 +115,7 @@ void color_parse(const char *value, const char *var, char *dst) *dst = 0; return; bad: - die("bad config value '%s' for variable '%s'", value, var); + die("bad color value '%s' for variable '%s'", value, var); } int git_config_colorbool(const char *var, const char *value, int stdout_is_tty) @@ -191,3 +191,10 @@ int color_fprintf_ln(FILE *fp, const char *color, const char *fmt, ...) va_end(args); return r; } + +void color_parse_mem(const char *value, int len, const char *var, char *dst) +{ + char *tmp = xmemdupz(value, len); + color_parse(tmp, var, dst); + free(tmp); +} diff --git a/color.h b/color.h index 6cf5c88aaf8d0e38e2853e6fd212e3cdd6c180cb..70660999df4b937b542fff6163b798bf16841b7f 100644 --- a/color.h +++ b/color.h @@ -16,7 +16,8 @@ extern int git_use_color_default; 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 *var, const char *value, char *dst); +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); int color_fprintf(FILE *fp, const char *color, const char *fmt, ...); int color_fprintf_ln(FILE *fp, const char *color, const char *fmt, ...);