There has long been a bug in unixify() and readdir() on VMS that is requiring a lot of code in perl to put in VMS specific checks to work around it. unixpath() may also be affected as it is a wrapper around unixify.

The behavior is that readdir() when opening a file in UNIX syntax and unixify() are incorrectly returning the trailing ".DIR" on directories, and the trailing "." on files that have no extension.

Some of the VMS specific tests are actually testing for this behavior as if it were intentional and desired.

This has always been an incorrect behavior, and has required special code to wrap many of the CRTL routines to compensate for this. And there is a lot of code in the core perl libraries and the dual lived modules that is also compensating for it.

Most of the cases that I have seen would still work if this bug where corrected, except for some VMS specific tests.

As of VMS 8.3 with symbolic links, the problem is getting much worse, and maintaining the code that compensates for this incorrect behavior is becoming very difficult.

I would like to write submit a patch that changes readdir() and unixify() to behave properly and also remove all the hacks that are compensating for the incorrect behavior.

Since the some of the VMS specific tests are actually testing for this incorrect behavior, this indicates a possibility that such a change may break existing code.

However such code that would be broken from fixing unixify() probably will have other problems that prevent it from being used with newer versions of VMS or Perl than what it was written for.

-John
[EMAIL PROTECTED]
Personal Opinion Only

Reply via email to