From: Michael J Gruber Date: Fri, 06 May 2011 11:10:41 GMT Subject: Re: [PATCH] t1507: change quoting in test_did_you_mean to a more general one Message-ID: <4DC3D731.3070503@drmicha.warpmail.net> In-Reply-To: <4DC3CBEF.6080303@viscovery.net> Johannes Sixt venit, vidit, dixit 06.05.2011 12:22: > Am 5/6/2011 9:43, schrieb Michael J Gruber: >> Junio C Hamano venit, vidit, dixit 05.05.2011 22:02: >>> Kacper Kornet writes: >>>> - 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 && >> Other than that, I have no objections if this patch makes more shells >> happy and no happy ones unhappy. >> >> Is your ksh OK with all other tests? > > Note that: > > - With the proposed change, bash now prints the backslashes. > > - The printfs should be echos, really. I thought printfs can be relied upon better than echos (in terms of line endings)? > - The behavior of quoting at the right of :- when the ${...:-...} exansion > appears in double-quotes was debated recently at length at the Austin > group (which revises the POSIX standard). You better move the expansions > to assignments of temporary variables, where you don't need the > surrounding double-quotes: > > butnot=${5:-\'$3\'} aka=${2:+ aka \'$1:./$3\'} > > Here, the backslash unambiguously quotes the next character. > > -- Hannes Whatever makes most shells happy, as long as that includes current bash... Michael