mirror of
https://github.com/git/git.git
synced 2026-02-27 18:29:43 +00:00
color: add color_parse_quietly()
When parsing colors, a failed parse leads to an error message due to the result returning error(). To allow for quiet parsing, create color_parse_quietly(). This is in contrast to an ..._gently() version because the original does not die(), so both options are technically 'gentle'. To accomplish this, convert the implementation of color_parse_mem() into a static color_parse_mem_1() helper that adds a 'quiet' parameter. The color_parse_quietly() method can then use this. Since it is a near equivalent to color_parse(), move that method down in the file so they can be nearby while also appearing after color_parse_mem_1(). Signed-off-by: Derrick Stolee <stolee@gmail.com> Signed-off-by: Junio C Hamano <gitster@pobox.com>
This commit is contained in:
committed by
Junio C Hamano
parent
9cb4a5e1ba
commit
db45e4908d
25
color.c
25
color.c
@@ -223,11 +223,6 @@ static int parse_attr(const char *name, size_t len)
|
||||
return -1;
|
||||
}
|
||||
|
||||
int color_parse(const char *value, char *dst)
|
||||
{
|
||||
return color_parse_mem(value, strlen(value), dst);
|
||||
}
|
||||
|
||||
/*
|
||||
* Write the ANSI color codes for "c" to "out"; the string should
|
||||
* already have the ANSI escape code in it. "out" should have enough
|
||||
@@ -264,7 +259,8 @@ static int color_empty(const struct color *c)
|
||||
return c->type <= COLOR_NORMAL;
|
||||
}
|
||||
|
||||
int color_parse_mem(const char *value, int value_len, char *dst)
|
||||
static int color_parse_mem_1(const char *value, int value_len,
|
||||
char *dst, int quiet)
|
||||
{
|
||||
const char *ptr = value;
|
||||
int len = value_len;
|
||||
@@ -365,10 +361,25 @@ int color_parse_mem(const char *value, int value_len, char *dst)
|
||||
OUT(0);
|
||||
return 0;
|
||||
bad:
|
||||
return error(_("invalid color value: %.*s"), value_len, value);
|
||||
return quiet ? -1 : error(_("invalid color value: %.*s"), value_len, value);
|
||||
#undef OUT
|
||||
}
|
||||
|
||||
int color_parse_mem(const char *value, int value_len, char *dst)
|
||||
{
|
||||
return color_parse_mem_1(value, value_len, dst, 0);
|
||||
}
|
||||
|
||||
int color_parse(const char *value, char *dst)
|
||||
{
|
||||
return color_parse_mem(value, strlen(value), dst);
|
||||
}
|
||||
|
||||
int color_parse_quietly(const char *value, char *dst)
|
||||
{
|
||||
return color_parse_mem_1(value, strlen(value), dst, 1);
|
||||
}
|
||||
|
||||
enum git_colorbool git_config_colorbool(const char *var, const char *value)
|
||||
{
|
||||
if (value) {
|
||||
|
||||
Reference in New Issue
Block a user