From: Johannes Sixt Date: Fri, 06 May 2011 10:22:39 GMT Subject: Re: [PATCH] t1507: change quoting in test_did_you_mean to a more general one Message-ID: <4DC3CBEF.6080303@viscovery.net> In-Reply-To: <4DC3A685.4080300@drmicha.warpmail.net> 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. - 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