Craig A. Berry wrote:
With current blead, if I define both DECC$EFS_CHARSET and
DECC$EFS_FILENAME_UNIX_REPORT, I see the following:
$ perl -"MFile::Spec::Functions" -e "print catfile(File::Spec->tmpdir(),
'bar');"
./bar
Obviously it should be giving me '/sys$scratch/bar'.
With only DECC$EFS_CHARSET defined, I get:
$ perl -"MFile::Spec::Functions" -e "print catfile(File::Spec->tmpdir(),
'bar');"
[.sys$scratch:]bar
where it's apparently failed to recognize 'sys$scratch:' as a device
name. The colon is not escaped, so the result is not even a valid
filespec, much less the correct one.
Are there changes to File::Path kicking around somewhere that are not
yet in blead, or is this still a todo?
The bug is in vms.c, not File::Spec. These two one liners demonstrate it:
EAGLE> perl -e "print 'true' if -w '/sys$scratch'"
EAGLE> perl -e "print 'true' if -w 'sys$scratch:'"
true
Something is wrong with the stat code. I will try to look at it tonight.
In file::spec->_tmpdir() the -w test is used to make sure that the temp
directory is writable, and it falls back to "." if it can not find one
of '/tmp', '/sys$scratch', or $ENV{tempdir} as writable.
-John
wb8...@qsl.net
Personal Opinion Only