]> git.ipfire.org Git - thirdparty/git.git/commit - git-sh-setup.sh
sh-setup: enclose setting of ${VAR=default} in double-quotes
authorLE Manh Cuong <cuong.manhle.vn@gmail.com>
Sat, 18 Jun 2016 20:26:03 +0000 (03:26 +0700)
committerJunio C Hamano <gitster@pobox.com>
Sun, 19 Jun 2016 21:07:04 +0000 (14:07 -0700)
commit01247e0299b34b9b46d96d5850a24583e39deabe
tree2b7bf47215372c03aa5bb2802777287d823a56de
parente568e563ade00bbb0937162f405fc160f253e224
sh-setup: enclose setting of ${VAR=default} in double-quotes

We often make sure an environment variable is set to
something, either set by the user (in which case we do not
molest it) or set it to our default value (otherwise), with

: ${VAR=default value}

i.e. running the no-op command ":" with ${VAR} as its
parameters (or the default value we supply), relying on that
":" is a no-op.

This pattern, even though it is no-op from correctness point
of view, still can be expensive if the existing value in VAR
has shell glob (because they will be expanded against
filesystem entities) and IFS whitespaces (because the value
need to be split into multiple parameters).  Our invocation
of ":" command does not care if the parameter given to it is
after the value in VAR goes through these processing.

Enclosing the whole thing in double-quote, i.e.

: "${VAR=default value}"

avoids paying the unnecessary cost, so let's do so.

Signed-off-by: LE Manh Cuong <cuong.manhle.vn@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
git-sh-setup.sh