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