rebase--interactive: avoid empty list in shell for-loop
The $strategy_opts variable contains a space-separated list
of strategy options, each individually shell-quoted. To loop
over each, we "unwrap" them by doing an eval like:
  eval '
    for opt in '"$strategy_opts"'
    do
       ...
    done
  '
Note the quoting that means we expand $strategy_opts inline
in the code to be evaluated (which is the right thing
because we want the IFS-split and de-quoting). If the
variable is empty, however, we ask the shell to eval the
following code:
  for opt in
  do
     ...
  done
without anything between "in" and "do".  Most modern shells
are happy to treat that like a noop, but reportedly ksh88 on
AIX considers it a syntax error. So let's catch the case
that the variable is empty and skip the eval altogether
(since we know the loop would be a noop anyway).
Reported-by: Armin Kunaschik <megabreit@googlemail.com>
Signed-off-by: Jeff King <peff@peff.net>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
			
			
				maint
			
			
		
							parent
							
								
									d92347f59f
								
							
						
					
					
						commit
						8e98b35f87
					
				| 
						 | 
				
			
			@ -82,6 +82,7 @@ rewritten_pending="$state_dir"/rewritten-pending
 | 
			
		|||
cr=$(printf "\015")
 | 
			
		||||
 | 
			
		||||
strategy_args=${strategy:+--strategy=$strategy}
 | 
			
		||||
test -n "$strategy_opts" &&
 | 
			
		||||
eval '
 | 
			
		||||
	for strategy_opt in '"$strategy_opts"'
 | 
			
		||||
	do
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
		Loading…
	
		Reference in New Issue