Where the POSIX shell allows functions to be defined as:
   name () compound-command [ redirections ]
bash adds the alternative syntax:
   function name [()] compound-command [ redirections ]
Implement this in ash's bash compatibility mode.  Most compound
commands work (for/while/until/if/case/[[]]/{}); one exception is:
   function f (echo "no way!")
The other two variants work:
   f() (echo "ok")
   function f() (echo "also ok")
function                                             old     new   delta
parse_command                                       1555    1744    +189
tokname_array                                        232     240      +8
.rodata                                           155612  155566     -46
------------------------------------------------------------------------------
(add/remove: 0/0 grow/shrink: 2/1 up/down: 197/-46)           Total: 151 bytes
Signed-off-by: Ron Yorston <rmy@pobox.com>
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
		
	
		
			
				
	
	
		
			29 lines
		
	
	
		
			301 B
		
	
	
	
		
			Plaintext
		
	
	
		
			Executable File
		
	
	
	
	
			
		
		
	
	
			29 lines
		
	
	
		
			301 B
		
	
	
	
		
			Plaintext
		
	
	
		
			Executable File
		
	
	
	
	
function f() { echo $1; }
 | 
						|
f 1
 | 
						|
 | 
						|
function f() ( echo $1; )
 | 
						|
f 2
 | 
						|
 | 
						|
function f() ( echo $1 )
 | 
						|
f 3
 | 
						|
 | 
						|
function f() for i in 1 2 3; do
 | 
						|
	echo $i
 | 
						|
done
 | 
						|
f
 | 
						|
 | 
						|
function f { echo $1; }
 | 
						|
f 1
 | 
						|
 | 
						|
# the next two don't work
 | 
						|
#function f ( echo $1; )
 | 
						|
f 2
 | 
						|
 | 
						|
#function f ( echo $1 )
 | 
						|
f 3
 | 
						|
 | 
						|
function f for i in 1 2 3; do
 | 
						|
	echo $i
 | 
						|
done
 | 
						|
f
 |