The attached patch corrects a problem that can cause a build of RC4 to
stop in its tracks under certain conditions. Recent VMS versions have an
optional feature that preserves case in arguments passed on the command
line. This can cause trouble when those arguments are generated
automatically in a context that does not preserve case or when the code
that processes them makes invalid assumptions about what a given case
means.

The patch is the work of Mark Berryman and Peter Prymmer; I've just done
some additional testing on several VMS versions and also on Mac OS X
10.2.6, where it causes no problems.

Apply with -p1.



diff -ru perl-5.8.1-RC3.orig/ext/Encode/bin/enc2xs perl-5.8.1-RC3/ext/Encode/bin/enc2xs
--- perl-5.8.1-RC3.orig/ext/Encode/bin/enc2xs   2003-07-10 02:10:42.000000000 -0400
+++ perl-5.8.1-RC3/ext/Encode/bin/enc2xs        2003-08-01 09:40:47.335001000 -0400
@@ -159,7 +159,7 @@
 
 my ($doC,$doEnc,$doUcm,$doPet);
 
-if ($cname =~ /\.(c|xs)$/)
+if ($cname =~ /\.(c|xs)$/i) # VMS may have upcased filenames with 
DECC$ARGV_PARSE_STYLE defined
  {
   $doC = 1;
   $dname =~ s/(\.[^\.]*)?$/.exh/;
diff -ru perl-5.8.1-RC3.orig/pod/pod2usage.PL perl-5.8.1-RC3/pod/pod2usage.PL
--- perl-5.8.1-RC3.orig/pod/pod2usage.PL        2003-07-10 02:12:48.000000000 -0400
+++ perl-5.8.1-RC3/pod/pod2usage.PL     2003-08-01 09:42:56.421029000 -0400
@@ -15,9 +15,8 @@
 # This is so that make depend always knows where to find PL derivatives.
 $origdir = cwd;
 chdir(dirname($0));
-($file = basename($0)) =~ s/\.PL$//;
-$file =~ s/\.pl$// if ($^O eq 'os2' or $^O eq 'dos');  # "case-forgiving"
-$file =~ s/\.pl$/.com/ if ($^O eq 'VMS');              # "case-forgiving"
+($file = basename($0)) =~ s/\.PL$//i;
+$file .= '.COM' if ($^O eq 'VMS');
 
 open OUT,">$file" or die "Can't create $file: $!";
 
diff -ru perl-5.8.1-RC3.orig/pod/podselect.PL perl-5.8.1-RC3/pod/podselect.PL
--- perl-5.8.1-RC3.orig/pod/podselect.PL        2003-07-10 02:12:48.000000000 -0400
+++ perl-5.8.1-RC3/pod/podselect.PL     2003-08-01 09:42:04.578003000 -0400
@@ -15,9 +15,8 @@
 # This is so that make depend always knows where to find PL derivatives.
 $origdir = cwd;
 chdir(dirname($0));
-($file = basename($0)) =~ s/\.PL$//;
-$file =~ s/\.pl$// if ($^O eq 'os2' or $^O eq 'dos');  # "case-forgiving"
-$file =~ s/\.pl$/.com/ if ($^O eq 'VMS');              # "case-forgiving"
+($file = basename($0)) =~ s/\.PL$//i;
+$file .= '.COM' if ($^O eq 'VMS');
 
 open OUT,">$file" or die "Can't create $file: $!";
 

Reply via email to