Fix building MAD with C++ - a MAD_PV of "" is illegal, as it will be free()d.
[p5sagit/p5-mst-13.2.git] / t / x2p / s2p.t
old mode 100755 (executable)
new mode 100644 (file)
index 15219fc..bad1633
@@ -789,6 +789,19 @@ my $plsed  = "s2pt$$.pl";
 # various command lines for 
 my $s2p  = File::Spec->catfile( File::Spec->updir(), 'x2p', 's2p' );
 my $psed = File::Spec->catfile( File::Spec->curdir(), 'psed' );
+if ($^O eq 'VMS') {
+  # default in the .com extenson if it's not already there
+  $s2p = VMS::Filespec::vmsify($s2p);
+  $psed = VMS::Filespec::vmsify($psed);
+  # Converting file specs from Unix format to VMS with the extended
+  # character set active can result in a trailing '.' added for null
+  # extensions.  This must be removed if the intent is to default the
+  # extension.
+  $s2p =~ s/\.$//;
+  $psed =~ s/\.$//;
+  $s2p = VMS::Filespec::rmsexpand($s2p, '.com');
+  $psed = VMS::Filespec::rmsexpand($psed, '.com');
+}
 my $sedcmd = [ $psed, '-f', $script, $stdin ];
 my $s2pcmd = [ $s2p,  '-f', $script ];
 my $plcmd  = [ $plsed, $stdin ];
@@ -830,6 +843,10 @@ for my $tc ( sort keys %testcase ){
         close( IN ) || goto FAIL_BOTH;
     }
 
+    # on VMS, runperl eats blank lines to work around 
+    # spurious newlines in pipes
+    $testcase{$tc}{expect} =~ s/\n\n/\n/ if $^O eq 'VMS';
+
     # run and compare
     #
     $psedres = runperl( args => $sedcmd );
@@ -837,7 +854,7 @@ for my $tc ( sort keys %testcase ){
 
     # 2nd test: run s2p
     # translate the sed script to a Perl program
-    
+
     my $perlprog = runperl( args => $s2pcmd );
     open( PP, ">$plsed" ) || goto FAIL_S2P;
     print PP $perlprog;