On 2/25/2014 7:02 PM, Craig A. Berry wrote:

On Feb 24, 2014, at 11:33 PM, John E. Malmberg <malmb...@encompasserve.org> 
wrote:

I can not seem to do a rmdir() of an absolute or relative Unix
path  with Perl 5.18.1.

It works unless DECC$FILENAME_UNIX_REPORT is defined. That's not
particularly well tested and you definitely found a bug. If that's
defined, when rmdir calls the internal stat routine, which calls
fileify, then 'abc/xyz' becomes 'abc/xyz.DIR;1'.

If fileify is converting 'abc/xyz' to 'abc/xyz.DIR;1', that is a bug that will break a lot of stuff. With the DECC$EFS_CHARSET enabled, that should never happen anywhere.

Not only should the ;1 not be present, the ".DIR" should not be present either.

The ".DIR" should only be present with DECC$EFS_CHARSET disabled because that is what the older conversions expected, and on ODS-2 it could be removed on a reverse conversion.

Then stat converts it to VMS format and we get something like
> 'D0:[craig.TEST.abc]xyz.DIR^;1'.

abc/xyz.dir would be converted to [.abc]xyz^.dir or [.abc]xyz^.dir.dir.

So we probably need to have fileify omit the version with unix
report  enabled.

And the .DIR in UNIX paths, unless is
    foo/bar.dir <=> [.foo]bar^.dir.dir.

Thanks,
-John

Reply via email to