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 <ska-dietlibc@skarnet.org> Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
This commit is contained in:
		
				
					committed by
					
						
						Denys Vlasenko
					
				
			
			
				
	
			
			
			
						parent
						
							13d72c3fd9
						
					
				
				
					commit
					2599937c4e
				
			@@ -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"
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user