Re: [PATCH] t1507: change quoting in test_did_you_mean to a more general one
- From
Junio C Hamano <gitster@pobox.com>
- Date
- May 5, 2011, 20:02 UTC
- Message-ID
- <7vsjss6hmf.fsf@alter.siamese.dyndns.org>
- In-Reply-To
- <20110505191027.GA3242@camk.edu.pl>
Kacper Kornet <draenog@pld-linux.org> writes:
Show 6 quoted lines
> 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-01does not seem to have this issue.
Whose ksh is this? It is broken.
POSIX "2.6.2 Parameter Expansion" [*1*] says in ${parameter<op>word}, "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 <this implementation of ksh>", and I would like to know what to fill in the blank when I rewrite the proposed commit log message.
Show 22 quoted lines
> Signed-off-by: Kacper Kornet <draenog@pld-linux.org>
> ---
> 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 </dev/null
>
> 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