diff --git a/builtin.c b/builtin.c index 435d58c3d..0a2bfde0d 100644 --- a/builtin.c +++ b/builtin.c @@ -957,13 +957,12 @@ static int builtin_functions( wchar_t **argv ) /* Erase, desc, query and list are mutually exclusive */ - if( (erase + (desc!=0) + list + query) > 1 ) + if( (erase + (!!desc) + list + query) > 1 ) { sb_printf( sb_err, _( L"%ls: Invalid combination of options\n" ), argv[0] ); - builtin_print_help( argv[0], sb_err ); return STATUS_BUILTIN_ERROR; @@ -1006,7 +1005,7 @@ static int builtin_functions( wchar_t **argv ) return 0; } - else if( list ) + else if( list || (argc==woptind)) { int is_screen = !builtin_out_redirect && isatty(1); @@ -1044,46 +1043,19 @@ static int builtin_functions( wchar_t **argv ) return 0; } - switch( argc - woptind ) + for( i=woptind; i