Re: Better way to handle Unix compatibility modes must be found

[email protected] ("John E. Malmberg")
Newsgroups perl.vmsperl,perl.makemaker
Message-ID <[email protected]>
Michael G Schwern wrote:
> John E. Malmberg wrote:
>> It is only the case where something is building a VMS specific Make
>> script or building a DCL command file that a filename needs to
>> specifically be converted to VMS path syntax.
> 
> Ok, then build it into the MakeMaker File::Spec overrides and use them.

The File::Spec overrides appear to only exist in MM_VMS.  I am not sure 
how to call them outside of the class for all platforms.  And this only 
affects the two test programs.


The additional VMS specific check in patch submitted to 
lib/ExtUtils/install.pm is that when VMS is in the extended character 
set mode, File::Spec::catdir() operates properly.

In the traditional VMS mode, catdir() does work correctly in the case 
where install.pm calls it, and there may be a few programs out there 
that depend on it being broken so the behavior has not been changed.

In efs mode, since catdir() will work correctly, the work-around for the 
traditional bug will cause an incorrectly created filename, so it must 
not be used.

install.pm may be one of the few cases that this issue shows up.

Calling the MakeMaker File::Spec routines will not fix this issue in 
this case, because the calling program has to know how to pass the 
parameters.

The checks for UNIX mode and case preserved are not used in install.pm 
and can be removed from the code.

For the test inst.t and inst_prefix.t programs, I am not sure how to get 
them to use the MM_VMS:: instead of File::Spec without causing just as 
much disruption to the code as the additional vmsify and vmspath.


Regards,
-John
[email protected]
Personal Opinion Only
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.