>>>>> "Jim" == Jim Meyering <[EMAIL PROTECTED]> writes:
Jim> Hi Akim,
Jim> So consider a name containing some other shell meta-character.
I don't understand what difference you make between the two approaches
wrt meta-characters.
Wer are talking about
( exec "$@" )
vs
prog=$1
shift
"$prog" "$@"
and I see no difference wrt meta-characters.
| /tmp % cat cat\ file
| #! /bin/cat
| /tmp % cat foo.sh
| #! /bin/sh
|
| # Jim.
| ( exec "$@" )
|
| # Alexandre
| prog=$1
| shift
| "$prog" ${1+"$@"}
| /tmp % PATH=/tmp ./foo.sh 'cat file' 'cat file'
| #! /bin/cat
| #! /bin/cat
| #! /bin/cat
| #! /bin/cat
Jim> It's not as if the change I suggested is *that* ugly, is it?
No definitely not. In fact, it is more like choosing the right idiom,
and spread it. depcomp and compile also use this trick a lot. I'm
all for choosing one and keeping it.
In fact, my main grief is I don't understand the special `:' case.
Can't you exec :?
Also, the splitting $1 issue is not that simple, as it involves all
the Autotools. Up to now, we never prohibited -flags given to $(CC).
The interface of AC_PATH_PROGS and the like also prohibits prognames
with spaces in it (so that for instance you can look for `bison -y'
and `yacc', that's the only place I know where this ``feature'' is
actually needed).
And precisely, let's speak about `bison -y'. My opinion is that you
patch can make things go weird. And my quoting $prog about might be a
bad thing. Of course, it is the invocation of missing which should
take care of this, but...
I'm not saying I'm against it, I'm saying that a direction must be
chosen, and propagated :)