[Bug 257886] ls: don't check color env variables if compiled with WITHOUT_LS_COLORS="YES"
Date: Wed, 18 Aug 2021 18:46:53 UTC
https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=257886 Piotr Pawel Stefaniak <pstef@freebsd.org> changed: What |Removed |Added ---------------------------------------------------------------------------- CC| |pstef@freebsd.org --- Comment #2 from Piotr Pawel Stefaniak <pstef@freebsd.org> --- Hi, I agree with you, but I would fix this another way: since the warnx is generally useless, I would like to remove it. But Ed pointed out that we may want to have a way to determine whether a particular copy of ls has been compiled with color support or not. So I think it's best to move the warnx to getopt in a WITHOUT_LS_COLORS build to fire if user asks for color. Like this: diff --git a/bin/ls/ls.c b/bin/ls/ls.c index 338b3d1d2a2..92575711251 100644 --- a/bin/ls/ls.c +++ b/bin/ls/ls.c @@ -105,9 +105,7 @@ static void traverse(int, char **, int); static const struct option long_opts[] = { -#ifdef COLORLS {"color", optional_argument, NULL, COLOR_OPT}, -#endif {NULL, no_argument, NULL, 0} }; @@ -448,8 +446,8 @@ main(int argc, char *argv[]) case 'y': f_samesort = 1; break; -#ifdef COLORLS case COLOR_OPT: +#ifdef COLORLS if (optarg == NULL || do_color_always(optarg)) colorflag = COLORFLAG_ALWAYS; else if (do_color_auto(optarg)) @@ -460,6 +458,8 @@ main(int argc, char *argv[]) errx(2, "unsupported --color value '%s' (must be always, auto, or never)", optarg); break; +#else + warnx("color support not compiled in"); #endif default: case '?': @@ -503,8 +503,6 @@ main(int argc, char *argv[]) f_color = 1; explicitansi = true; } -#else - warnx("color support not compiled in"); #endif /*COLORLS*/ } -- You are receiving this mail because: You are the assignee for the bug.