From: Vincent Bernat Date: Tue, 20 Feb 2018 23:28:04 +0000 (+0100) Subject: color: disable color when json output is requested X-Git-Tag: v4.16.0~51 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=1ca4341d2c6b;p=thirdparty%2Fiproute2.git color: disable color when json output is requested Instead of declaring -color and -json exclusive, ignore -color when -json is provided. The rationale is to allow to put -color in an alias for ip while still being able to use -json. -color is merely a presentation suggestion and we can assume there is nothing to color in the JSON output. Signed-off-by: Vincent Bernat Signed-off-by: Stephen Hemminger --- diff --git a/include/color.h b/include/color.h index f6c351b77..c80359d3e 100644 --- a/include/color.h +++ b/include/color.h @@ -13,7 +13,6 @@ enum color_attr { }; void enable_color(void); -void check_if_color_enabled(void); void set_color_palette(void); int color_fprintf(FILE *fp, enum color_attr attr, const char *fmt, ...); enum color_attr ifa_family_color(__u8 ifa_family); diff --git a/ip/ip.c b/ip/ip.c index ee0d6346b..e0cd96cb1 100644 --- a/ip/ip.c +++ b/ip/ip.c @@ -172,6 +172,7 @@ int main(int argc, char **argv) { char *basename; char *batch_file = NULL; + int color = 0; basename = strrchr(argv[0], '/'); if (basename == NULL) @@ -269,7 +270,7 @@ int main(int argc, char **argv) } rcvbuf = size; } else if (matches(opt, "-color") == 0) { - enable_color(); + ++color; } else if (matches(opt, "-help") == 0) { usage(); } else if (matches(opt, "-netns") == 0) { @@ -289,8 +290,8 @@ int main(int argc, char **argv) _SL_ = oneline ? "\\" : "\n"; - if (json) - check_if_color_enabled(); + if (color && !json) + enable_color(); if (batch_file) return batch(batch_file); diff --git a/lib/color.c b/lib/color.c index a13a4930b..da1f516cb 100644 --- a/lib/color.c +++ b/lib/color.c @@ -92,14 +92,6 @@ void set_color_palette(void) is_dark_bg = 1; } -void check_if_color_enabled(void) -{ - if (color_is_enabled) { - fprintf(stderr, "Option \"-json\" conflicts with \"-color\".\n"); - exit(1); - } -} - int color_fprintf(FILE *fp, enum color_attr attr, const char *fmt, ...) { int ret = 0;