From 1ca4341d2c6bcdaf19fb7e3cdd0b39207a29941d Mon Sep 17 00:00:00 2001 From: Vincent Bernat Date: Wed, 21 Feb 2018 00:28:04 +0100 Subject: [PATCH] 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 --- include/color.h | 1 - ip/ip.c | 7 ++++--- lib/color.c | 8 -------- 3 files changed, 4 insertions(+), 12 deletions(-) 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; -- 2.47.2