This is a live mirror of the Perl 5 development currently hosted at https://github.com/perl/perl5
s/STOP/CHECK/ blocks
[perl5.git] / vms / vms_yfix.pl
index 33af914..fbeb039 100644 (file)
@@ -6,10 +6,12 @@
 # If it finds that the input files are already patches for VMS,
 # it just copies the input to the output.
 #
-# Revised 29-Jan-1996 by Charles Bailey  bailey@genetics.upenn.edu
+# Revised 20-Dec-1996 by Charles Bailey  bailey@newman.upenn.edu
 
-$VERSION = '1.1';
+$VERSION = '1.11';
 
+push(@ARGV,(qw[ perly.c perly.h vms/perly_c.vms vms/perly_h.vms])[@ARGV..4])
+    if @ARGV < 4;
 ($cinfile,$hinfile,$coutfile,$houtfile) = @ARGV;
 
 open C,$cinfile or die "Can't read $cinfile: $!\n";
@@ -21,6 +23,15 @@ while (<C>) {
   # "y.tab.c" is illegal as a VMS filename; DECC 5.2/VAX preprocessor
   # doesn't like this.
   if ( s/^#line\s+(\d+)\s+"y.tab.c"/#line $1 "y_tab.c"/ ) { 1; }
+  elsif (/char \*getenv/) {
+    # accomodate old VAXC's macro susbstitution pecularities
+    $_ = "#   ifndef getenv\n$_#   endif\n";
+  }
+  elsif ( /getenv\("YYDEBUG"\)/ ) {
+    # Reset the "error" status if an optional lookup fails
+    while (not /^\s+\}/) { print COUT; $_ = <C>; }
+    $_ .= "\telse SETERRNO(0,SS\$_NORMAL);\n";
+  }
   else {
     # add the dEXT tag to definitions of global vars, so we'll insert
     # a globaldef when perly.c is compiled