From 2599937c4e5012d8e410d58574d22dec92e6eaa5 Mon Sep 17 00:00:00 2001 From: Laurent Bercot Date: Fri, 26 May 2017 16:50:53 +0200 Subject: [PATCH] ls: fix support for long options when FEATURE_LS_COLOR is deselected Declaration of ls_longopts and initialization of applet_long_options were incorrectly guarded with ENABLE_FEATURE_LS_COLOR; that yielded a "ls: NO_OPT: \xff" error message when long options were selected and color support was not. This patch ensures long options are initialized separately from color support. Signed-off-by: Laurent Bercot Signed-off-by: Denys Vlasenko --- coreutils/ls.c | 14 ++++++++------ 1 file changed, 8 insertions(+), 6 deletions(-) diff --git a/coreutils/ls.c b/coreutils/ls.c index 6e0a52d75..6780057da 100644 --- a/coreutils/ls.c +++ b/coreutils/ls.c @@ -1067,17 +1067,19 @@ int ls_main(int argc UNUSED_PARAM, char **argv) * 'auto', 'tty', 'if-tty' * (and substrings: "--color=alwa" work too) */ - static const char ls_longopts[] ALIGN1 = - "full-time\0" No_argument "\xff" - "group-directories-first\0" No_argument "\xfe" - "color\0" Optional_argument "\xfd" - ; static const char color_str[] ALIGN1 = "always\0""yes\0""force\0" "auto\0""tty\0""if-tty\0"; /* need to initialize since --color has _an optional_ argument */ const char *color_opt = color_str; /* "always" */ #endif +#if ENABLE_LONG_OPTS + static const char ls_longopts[] ALIGN1 = + "full-time\0" No_argument "\xff" + "group-directories-first\0" No_argument "\xfe" + "color\0" Optional_argument "\xfd" + ; +#endif INIT_G(); @@ -1091,7 +1093,7 @@ int ls_main(int argc UNUSED_PARAM, char **argv) #endif /* process options */ - IF_FEATURE_LS_COLOR(applet_long_options = ls_longopts;) + IF_LONG_OPTS(applet_long_options = ls_longopts;) opt_complementary = /* -n and -g imply -l */ "nl:gl"