On Tue, Feb 08, 2005 at 07:21:19AM -0600, Craig A. Berry wrote:
> >I'm of half a mind to just say that having a logical called 'bin' is
> >likely to break lots of unixy software if it makes "bin/foo" unsafe.
> >I'm sure there's lots of other places in MakeMaker which use "foo/bar" to
> >mean "./foo/bar" and something else will just break in the future.
> 
> Well, File::Spec->catdir(File::Spec->curdir(), 'bin') seems to always
> do the right thing.

I'm not going to rework the code so it translates foo/bar into ./foo/bar
everywhere.  Doing so in one place just covers up the problem.  It will
emerge again.


> >In fact I'm a little surprised it hasn't.  Could you check if it applies
> >to C<open(F, qq/$ARGV[0]/)> as well?  cp_if_diff() is one of the few places
> >that uses < in open in MakeMaker.
> 
> It does apply to other forms of open.  I don't think it's shown up
> before because it's relatively new to have a test in MakeMaker that
> uses 'bin' as a directory name.

But having bin as a directory name is very common.

Unless convinced otherwise I'm considering this to be broken Unix->VMS
path translation at the user end.  The meaning of open(FILE, "foo/bar")
is pretty clear, it should always be equivalent to open(FILE, "./foo/bar").
Since you can shut off the translation I'd recommend you do so.

And that clears the decks for a release of _08.

Reply via email to