5.6.0 & 5.7.1, VMS fixes
Charles Lane [Thu, 12 Oct 2000 07:30:02 +0000 (03:30 -0400)]
Message-Id: <001012072828.2eabc@DUPHY4.Physics.Drexel.Edu>

p4raw-id: //depot/perl@7208

lib/File/Temp.pm
t/lib/st-lock.t
t/pod/find.t
t/pod/testp2pt.pl
vms/gen_shrfls.pl

index 2dec72c..a351044 100644 (file)
@@ -340,6 +340,7 @@ sub _gettemp {
 
       if ($^O eq 'VMS') {  # need volume to avoid relative dir spec
         $parent = File::Spec->catdir($volume, @dirs[0..$#dirs-1]);
+        $parent = 'sys$disk:[]' if $parent eq '';
       } else {
 
        # Put it back together without the last one
@@ -1107,7 +1108,7 @@ sub tempdir  {
       # Prepend the supplied directory or temp dir
       if ($options{"DIR"}) {
 
-       $template = File::Spec->catfile($options{"DIR"}, $template);
+        $template = File::Spec->catdir($options{"DIR"}, $template);
 
       } elsif ($options{TMPDIR}) {
 
index 0bb4a33..28fe664 100644 (file)
@@ -19,6 +19,10 @@ sub BEGIN {
         print "1..0 # Skip: Storable was not built\n";
         exit 0;
     }
+    if (!$Config{'d_flock'} && !$Config{'d_fcntl'} && !$Config{'d_lockf'}) {
+        print "1..0 # Skip: no flock or flock emulation on this platform\n";
+        exit 0;
+    }
     require 'lib/st-dump.pl';
 }
 
index e0ab63e..f5d4c52 100644 (file)
@@ -24,7 +24,7 @@ if ($^O eq 'VMS') {
 }
 print "### searching $lib_dir\n";
 my %pods = pod_find("$lib_dir");
-my $result = join(',', sort values %pods);
+my $result = join("\n### ", sort values %pods);
 print "### found $result\n";
 my $compare = join(',', qw(
     Pod::Checker
@@ -39,7 +39,10 @@ my $compare = join(',', qw(
 if ($^O eq 'VMS') {
     $compare = lc($compare);
     $result = join(',', sort grep(/pod::/, values %pods));
-    $result =~ s/$Qlib_dir/pod::/g;
+    my $undollared = $Qlib_dir;
+    $undollared =~ s/\$/\\\$/g;
+    $undollared =~ s/\-/\\\-/g;
+    $result =~ s/$undollared/pod::/g;
     my $count = 0;
     my @result = split(/,/,$result);
     my @compare = split(/,/,$compare);
index 91a20ee..8cfdbb9 100644 (file)
@@ -42,8 +42,11 @@ BEGIN {
 sub catfile(@) { File::Spec->catfile(@_); }
 
 my $INSTDIR = abs_path(dirname $0);
-$INSTDIR = VMS::Filespec::unixpath($INSTDIR) if $^O eq 'VMS';
-$INSTDIR =~ s#/$## if $^O eq 'VMS';
+if ($^O eq 'VMS') { # clean up directory spec
+    $INSTDIR = VMS::Filespec::unixpath($INSTDIR);
+    $INSTDIR =~ s#/$##;
+    $INSTDIR =~ s#/000000/#/#;
+}
 $INSTDIR = (dirname $INSTDIR) if (basename($INSTDIR) eq 'pod');
 $INSTDIR = (dirname $INSTDIR) if (basename($INSTDIR) eq 't');
 my @PODINCDIRS = ( catfile($INSTDIR, 'lib', 'Pod'),
@@ -51,6 +54,7 @@ my @PODINCDIRS = ( catfile($INSTDIR, 'lib', 'Pod'),
                    catfile($INSTDIR, 'pod'),
                    catfile($INSTDIR, 't', 'pod')
                  );
+print "PODINCDIRS = ",join(', ',@PODINCDIRS),"\n";
 
 ## Find the path to the file to =include
 sub findinclude {
index a109f7b..68bb6e8 100644 (file)
@@ -328,6 +328,7 @@ if ($ENV{PERLSHR_USE_GSMATCH}) {
     # number in the top four bits and use the bottom four for build options
     # that'll cause incompatibilities
     ($ver, $sub) = $] =~ /\.(\d\d\d)(\d\d)/;
+    $ver += 0; $sub += 0;
     $gsmatch = ($sub >= 50) ? "equal" : "lequal"; # Force an equal match for
                                                  # dev, but be more forgiving
                                                  # for releases