+BEGIN {
+ # Get function prototypes
+ require 'regen_lib.pl';
+}
#use Fatal qw(open close rename chmod unlink);
open DESC, 'regcomp.sym';
$ind = 0;
}
close DESC;
$tot = $ind;
+die "Too many regexp opcodes! Maximum is 256, but there are $tot in file!"
+ if $tot>256;
$tmp_h = 'tmp_reg.h';
unlink $tmp_h if -f $tmp_h;
open OUT, ">$tmp_h";
+binmode OUT;
print OUT <<EOP;
-/* !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
+/* -*- buffer-read-only: t -*-
+ !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
This file is built by regcomp.pl from regcomp.sym.
Any changes made here will be lost!
*/
}
print OUT <<EOP;
+#define REGNODE_MAX $oind
#ifndef DOINIT
EXTCONST U8 PL_regkind[];
#endif /* DEBUGGING */
#endif /* REG_COMP_C */
+/* ex: set ro: */
EOP
-close OUT;
+close OUT or die "close $tmp_h: $!";
-chmod 0666, 'regnodes.h';
-unlink 'regnodes.h';
-rename $tmp_h, 'regnodes.h';
+safer_rename $tmp_h, 'regnodes.h';