From: Junio C Hamano Date: Thu, 05 May 2011 20:02:16 GMT Subject: Re: [PATCH] t1507: change quoting in test_did_you_mean to a more general one Message-ID: <7vsjss6hmf.fsf@alter.siamese.dyndns.org> In-Reply-To: <20110505191027.GA3242@camk.edu.pl> Kacper Kornet writes: > In bash and some other shells the script: > > x=2; unset a; echo "${a:-'$x'}" > > prints '2'. However ksh shell prints $x. The quoting is added to > reproduce bash behaviour. What I happen to have in /usr/bin/ksh $ /usr/bin/ksh --version version sh (AT&T Research) 93t+ 2009-05-01 does not seem to have this issue. Whose ksh is this? It is broken. POSIX "2.6.2 Parameter Expansion" [*1*] says in ${parameterword}, "word shall be subjected to tilde expansion, parameter expansion, command substitution, and arithmetic expansion", when "a value of word is needed" based on the state of parameter. I am not opposed to the change, but because it is not "change to more general one" but "work around a bug in ", and I would like to know what to fill in the blank when I rewrite the proposed commit log message. > Signed-off-by: Kacper Kornet > --- > t/t1506-rev-parse-diagnosis.sh | 4 ++-- > 1 files changed, 2 insertions(+), 2 deletions(-) > > diff --git a/t/t1506-rev-parse-diagnosis.sh b/t/t1506-rev-parse-diagnosis.sh > index 4a6396f..bad09f9 100755 > --- a/t/t1506-rev-parse-diagnosis.sh > +++ b/t/t1506-rev-parse-diagnosis.sh > @@ -8,8 +8,8 @@ exec > test_did_you_mean () > { > - printf "fatal: Path '$2$3' $4, but not ${5:-'$3'}.\n" >expected && > - printf "Did you mean '$1:$2$3'${2:+ aka '$1:./$3'}?\n" >>expected && > + printf "fatal: Path '$2$3' $4, but not ${5:-\'$3\'}.\n" >expected && > + printf "Did you mean '$1:$2$3'${2:+ aka \'$1:./$3\'}?\n" >>expected && > test_cmp expected error > } > > -- > 1.7.5 [Reference] *1* http://pubs.opengroup.org/onlinepubs/9699919799/utilities/V3_chap02.html#tag_18_06_02