Hi John, hi all,

John Malmberg wrote:
https://rt.cpan.org/Ticket/Display.html?id=42137

Fixes submitted for running tests when VMS is a UNIX compatible mode.

thanks for the ticket and patch. I just applied your change to the CPAN AutoLoader distribution and made an AutoLoader 5.68 release which is on its way to CPAN now.

The attached patch updates AutoLoader.pm to the new version and adjusts the 02AutoSplit.t test file according the patch in RT. It applies cleanly with patch -p0 to whatever revision of perl I got via rsync.

I'm sorry it's not using the new git hotness. At some point I'll just have to spend the time to get a working knowledge of it, but not today.

Best regards,
Steffen
--- lib/AutoLoader/t/02AutoSplit.t	2008-12-19 10:14:10.000000000 +0100
+++ lib/AutoLoader/t/02AutoSplit.t	2009-01-05 16:10:48.000000000 +0100
@@ -26,6 +26,31 @@
 use File::Spec;
 use File::Find;
 
+my $Is_VMS   = $^O eq 'VMS';
+my $Is_VMS_mode = 0;
+my $Is_VMS_lc = 0;
+
+if ($Is_VMS) {
+    require VMS::Filespec if $Is_VMS;
+    my $vms_unix_rpt;
+    my $vms_case;
+
+    $Is_VMS_mode = 1;
+    $Is_VMS_lc = 1;
+    if (eval 'require VMS::Feature') {
+        $vms_unix_rpt = VMS::Feature::current("filename_unix_report");
+        $vms_case = VMS::Feature::current("efs_case_preserve");
+    } else {
+        my $unix_rpt = $ENV{'DECC$FILENAME_UNIX_REPORT'} || '';
+        my $efs_case = $ENV{'DECC$EFS_CASE_PRESERVE'} || '';
+        $vms_unix_rpt = $unix_rpt =~ /^[ET1]/i; 
+        $vms_case = $efs_case =~ /^[ET1]/i;
+    }
+    $Is_VMS_lc = 0 if ($vms_case);
+    $Is_VMS_mode = 0 if ($vms_unix_rpt);
+}
+
+
 require AutoSplit; # Run time. Check it compiles.
 ok (1, "AutoSplit loaded");
 
@@ -72,7 +97,7 @@
 
 my $i = 0;
 my $dir = File::Spec->catdir($incdir, 'auto');
-if ($^O eq 'VMS') {
+if ($Is_VMS_mode) {
   $dir = VMS::Filespec::unixify($dir);
   $dir =~ s/\/$//;
 } elsif ($^O eq 'MacOS') {
@@ -109,7 +134,7 @@
     $output = split_a_file (undef, $file, $dir, @extra_args);
   }
 
-  if ($^O eq 'VMS') {
+  if ($Is_VMS_mode) {
      my ($filespec, $replacement);
      while ($output =~ m/(\[.+\])/) {
        $filespec = $1;
@@ -128,7 +153,7 @@
     find (sub {$got{$File::Find::name}++ unless -d $_}, $dir);
     foreach (split /\n/, $args{Files}) {
       next if /^#/;
-      $_ = lc($_) if $^O eq 'VMS';
+      $_ = lc($_) if $Is_VMS_lc;
       unless (delete $got{$_}) {
         $missing{$_}++;
       }
--- lib/AutoLoader.pm	2008-12-19 10:14:10.000000000 +0100
+++ lib/AutoLoader.pm	2009-01-05 16:18:47.000000000 +0100
@@ -15,7 +15,7 @@
     $is_epoc = $^O eq 'epoc';
     $is_vms = $^O eq 'VMS';
     $is_macos = $^O eq 'MacOS';
-    $VERSION = '5.67';
+    $VERSION = '5.68';
 }
 
 AUTOLOAD {

Reply via email to