On Friday, January 11, 2013 04:37:56 PM Chet Ramey wrote: > On 1/11/13 4:05 PM, Dan Douglas wrote: > > > > > I don't understand what you mean. The issue I'm speaking of is that printf > > %q > > produces a quoted empty string both when given no args and when given one > > empty arg. A quoted "$@" with no positional parameters present expands to > > zero > > words (and correspondingly for "${arr[@]}"). Why do you think "x${@}x" is > > special? (Note that expansion didn't even work correctly a few patchsets > > ago.) > > > > Also as pointed out, every other shell with a printf %q feature disagrees > > with > > Bash. Are you saying that something in the manual says that it should do > > otherwise? I'm aware you could write a wrapper, I just don't see any > > utility > > in the default behavior. > > This is how bash behaves: > > The format is reused as necessary to consume all of the argu- > ments. If the format requires more arguments than are supplied, > the extra format specifications behave as if a zero value or > null string, as appropriate, had been supplied. > > This is how Posix specifies printf to work. I know it doesn't have %q, > but bash doesn't really differentiate between %q and %s. > > Chet
Ah so I'm confusing the very same thing as the "no argument along with %()T" you pointed out to me on earlier... so this would have to be yet another special case. Funny that never crossed my mind. -- Dan Douglas