rebase--interactive: avoid empty list in shell for-loop
commit8e98b35f87532761f09101729715c2ec49e24ddf
authorJeff King <peff@peff.net>
Tue, 10 May 2016 21:07:10 +0000 (10 17:07 -0400)
committerJunio C Hamano <gitster@pobox.com>
Tue, 10 May 2016 21:11:27 +0000 (10 14:11 -0700)
tree5ad949544756ad5638e5d57376bd037eb783c3f7
parentd92347f59fefb95a2d9240c007a44f408c216fa7
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>
git-rebase--interactive.sh