push @names, $name;
}
-my $c = safer_open("overload.c-new");
-my $h = safer_open("overload.h-new");
-mkdir("lib/overload", 0777) unless -d 'lib/overload';
-my $p = safer_open('lib/overload/numbers.pm-new');
-
-
-select $p;
+my ($c, $h) = map {
+ open_new($_, '>',
+ { by => 'regen/overload.pl', file => $_, style => '*',
+ copyright => [1997, 1998, 2000, 2001, 2005 .. 2007, 2011] });
+} 'overload.c', 'overload.h';
-print read_only_top(lang => 'Perl', by => 'regen/overload.pl',
- file => 'lib/overload/numbers.pm', copyright => [2008]);
+mkdir("lib/overload", 0777) unless -d 'lib/overload';
+my $p = open_new('lib/overload/numbers.pm', '>',
+ { by => 'regen/overload.pl',
+ file => 'lib/overload/numbers.pm', copyright => [2008] });
{
local $" = "\n ";
-print <<"EOF";
+print $p <<"EOF";
package overload::numbers;
our \@names = qw#
{ my \$i = 0; our %names = map { \$_ => \$i++ } \@names }
{ my \$i = 0; our %enums = map { \$_ => \$i++ } \@enums }
-
EOF
}
-for ([$c, 'overload.c'], [$h, 'overload.h']) {
- my ($handle, $file) = @$_;
- print $handle read_only_top(lang => 'C', by => 'regen/overload.pl',
- file => $file, style => '*',
- copyright => [1997, 1998, 2000, 2001,
- 2005 .. 2007, 2011]);
-}
-
-select $h;
-print "enum {\n";
+print $h "enum {\n";
for (0..$#enums) {
my $op = $names[$_];
die if $op =~ m{\*/};
my $l = 3 - int((length($enums[$_]) + 9) / 8);
$l = 1 if $l < 1;
- printf " %s_amg,%s/* 0x%02x %-8s */\n", $enums[$_],
+ printf $h " %s_amg,%s/* 0x%02x %-8s */\n", $enums[$_],
("\t" x $l), $_, $op;
}
-print <<'EOF';
+print $h <<'EOF';
max_amg_code
/* Do not leave a trailing comma here. C9X allows it, C89 doesn't. */
};
#define NofAMmeth max_amg_code
-
EOF
print $c <<'EOF';
};
EOT
-safer_close($h);
-safer_close($c);
-safer_close($p);
-rename_if_different("overload.c-new", "overload.c");
-rename_if_different("overload.h-new","overload.h");
-rename_if_different('lib/overload/numbers.pm-new', 'lib/overload/numbers.pm');
-
+foreach ($h, $c, $p) {
+ read_only_bottom_close_and_rename($_);
+}
__DATA__
# Fallback should be the first
fallback ()
smart (~~
ftest (-X
regexp (qr
-# Note: Perl_Gv_AMupdate() assumes that DESTROY is the last entry
-DESTROY DESTROY