[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.