[blead-227-gbd2db5d] lib/blib.t, lib/h2xs.t patches for VMS

[email protected] (John Malmberg)
Newsgroups perl.perl5.porters,perl.vmsperl
Message-ID <[email protected]>
The tests lib/blib.t and lib/h2xs.t need fixes to know when VMS is in 
the UNIX report mode.

-John
[email protected]
Personal Opinion Only
lib_blib_t.gdiff (text/plain, 1 KB)
--- /rsync_root/perl/lib/blib.t	Tue Jun 13 14:29:21 2006
+++ lib/blib.t	Thu Dec 18 23:10:46 2008
@@ -9,6 +9,24 @@
 use File::Spec;
 my($blib, $blib_arch, $blib_lib, @blib_dirs);
 
+my $Is_VMS   = $^O eq 'VMS';
+my $Is_VMS_mode = 0;
+
+if ($Is_VMS) {
+    require VMS::Filespec if $Is_VMS;
+    my $vms_unix_rpt;
+
+    $Is_VMS_mode = 1;
+    if (eval 'require VMS::Feature') {
+        $vms_unix_rpt = VMS::Feature::current("filename_unix_report");
+    } else {
+        my $unix_rpt = $ENV{'DECC$FILENAME_UNIX_REPORT'} || '';
+        $vms_unix_rpt = $unix_rpt =~ /^[ET1]/i; 
+    }
+    $Is_VMS_mode = 0 if ($vms_unix_rpt);
+}
+
+
 sub _cleanup {
     rmdir foreach reverse (@_);
     unlink "stderr" unless $^O eq 'MacOS';
@@ -58,7 +76,7 @@
 is( @INC, 3, '@INC now has 3 elements' );
 is( $INC[2],    '../lib',       'blib added to the front of @INC' );
 
-if ($^O eq 'VMS') {
+if ($Is_VMS_mode) {
     # Unix syntax is accepted going in but it's not what comes out
     # So we don't use catdir above
     $blib_arch = 'blib.arch]';
lib_h2xs_t.gdiff (text/plain, 1.6 KB)
--- /rsync_root/perl/lib/h2xs.t	Tue Jun 13 14:29:21 2006
+++ lib/h2xs.t	Fri Jan  2 19:50:16 2009
@@ -31,7 +31,28 @@
 my $up = File::Spec->updir();
 
 my $extracted_program = '../utils/h2xs'; # unix, nt, ...
-if ($^O eq 'VMS') { $extracted_program = '[-.utils]h2xs.com'; }
+
+my $Is_VMS_traildot = 0;
+if ($^O eq 'VMS') {
+    $extracted_program = '[-.utils]h2xs.com';
+
+    # We have to know if VMS is in UNIX mode.  In UNIX mode, trailing dots
+    # should not be present.  There are actually two settings that control this.
+
+    $Is_VMS_traildot = 1;
+    my $unix_rpt = 0;
+    my $drop_dot = 0;
+    if (eval 'require VMS::Feature') {
+        $unix_rpt = VMS::Feature::current('filename_unix_report');
+        $drop_dot = VMS::Feature::current('readdir_dropdotnotype');
+    } else {
+        my $unix_report = $ENV{'DECC$FILENAME_UNIX_REPORT'} || '';
+        $unix_rpt = $unix_report =~ /^[ET1]/i; 
+        my $drop_dot_notype = $ENV{'DECC$READDIR_DROPDOTNOTYPE'} || '';
+        $drop_dot = $drop_dot_notype =~ /^[ET1]/i;
+    }
+    $Is_VMS_traildot = 0 if $drop_dot && unix_rpt;
+}
 if ($^O eq 'MacOS') { $extracted_program = '::utils:h2xs'; }
 if (!(-e $extracted_program)) {
     print "1..0 # Skip: $extracted_program was not built\n";
@@ -187,7 +208,9 @@
       $_ =~ s/$name:t:1.t/$name:t\/1.t/; # is this an h2xs bug?
     }
     if ($^O eq 'VMS') {
-      $_ .= '.' unless $_ =~ m/\./;
+      if ($Is_VMS_traildot) {
+          $_ .= '.' unless $_ =~ m/\./;
+      }
       $_ = lc($_) unless exists $got{$_};
     }
     ok (-e $_, "check for $_") and delete $got{$_};
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.