From: Junio C Hamano Date: Thu, 8 Nov 2007 07:04:38 +0000 (-0800) Subject: git-sh-setup: fix parseopt `eval` string underquoting X-Git-Tag: v1.5.4-rc0~190^2~3 X-Git-Url: http://git.tremily.us/?a=commitdiff_plain;h=cbea86fd149f5d4aabdff06f87bc766d414b160e;p=git.git git-sh-setup: fix parseopt `eval` string underquoting The 'automagic parseopt' support corrupted non option parameters that had IFS characters in them. The worst case is when it had a non option parameter like this: $1=" * some string" Signed-off-by: Junio C Hamano --- diff --git a/git-sh-setup.sh b/git-sh-setup.sh index e1cf88598..f1c4839a9 100755 --- a/git-sh-setup.sh +++ b/git-sh-setup.sh @@ -21,11 +21,12 @@ if test -n "$OPTIONS_SPEC"; then exec "$0" -h } - parseopt_extra= - [ -n "$OPTIONS_KEEPDASHDASH" ] && - parseopt_extra="$parseopt_extra --keep-dashdash" - - eval `echo "$OPTIONS_SPEC" | git rev-parse --parseopt $parseopt_extra -- "$@" || echo exit $?` + [ -n "$OPTIONS_KEEPDASHDASH" ] && parseopt_extra="--keep-dashdash" + parsed=$( + echo "$OPTIONS_SPEC" | + git rev-parse --parseopt $parseopt_extra -- "$@" + ) && + eval "$parsed" || exit else usage() { die "Usage: $0 $USAGE"