From 2b05bdfa94116b4f37d3fcc461ac2778959c8491 Mon Sep 17 00:00:00 2001 From: axel Date: Thu, 14 Dec 2006 00:21:07 +1000 Subject: [PATCH] Update functions builtin so that default behaviour when not given any arguments is to print only names of all existing functions, not their definitions. Use 'functions (functions)' to get the latter. darcs-hash:20061213142107-ac50b-16d0a9097ede4b0cd49847618d65fcbfee699393.gz --- builtin.c | 46 +++++++++------------------------------------- 1 file changed, 9 insertions(+), 37 deletions(-) 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