This is a live mirror of the Perl 5 development currently hosted at https://github.com/perl/perl5
In pp_regcomp and pp_entereval, use newSVpvn_flags() to simplify code.
[perl5.git] / keywords.pl
index d702a1a..7ce010e 100755 (executable)
@@ -1,11 +1,21 @@
 #!/usr/bin/perl -w
+# 
+# Regenerate (overwriting only if changed):
+#
+#    keywords.h
+#
+# from information stored in the DATA section of this file.
+#
+# Accepts the standard regen_lib -q and -v args.
+#
+# This script is normally invoked from regen.pl.
+
 use strict;
 
 require 'regen_lib.pl';
-safer_unlink ("keywords.h");
-open(KW, ">keywords.h") || die "Can't create keywords.h: $!\n";
-binmode KW;
-select KW;
+
+my $kw = safer_open("keywords.h-new");
+select $kw;
 
 print <<EOM;
 /* -*- buffer-read-only: t -*-
@@ -35,9 +45,11 @@ while (<DATA>) {
     print &tab(5, "#define KEY_$keyword"), $keynum++, "\n";
 }
 
-print KW "\n/* ex: set ro: */\n";
+print $kw "\n/* ex: set ro: */\n";
+
+safer_close($kw);
 
-close KW or die "Error closing keywords.h: $!";
+rename_if_different("keywords.h-new", "keywords.h");
 
 ###########################################################################
 sub tab {
@@ -105,7 +117,6 @@ endpwent
 endservent
 eof
 eq
-err
 eval
 exec
 exists