summaryrefslogtreecommitdiff
path: root/regen/regen_lib.pl
diff options
context:
space:
mode:
authorNicholas Clark <nick@ccl4.org>2011-05-14 21:59:38 +0100
committerNicholas Clark <nick@ccl4.org>2011-05-19 10:18:15 +0100
commitcc49830d6031e8e74c0426f77e2b3589e5774765 (patch)
tree903934cbbab497476834e5c4c83473324fc0a3ac /regen/regen_lib.pl
parent515c3fe0106d244307cd4e79b0a9b86dd95973e4 (diff)
downloadperl-cc49830d6031e8e74c0426f77e2b3589e5774765.tar.gz
Add an optional third argument to open_new(), to invoke read_only_top() with.
Merge together many calls to open_new() and read_only_top().
Diffstat (limited to 'regen/regen_lib.pl')
-rw-r--r--regen/regen_lib.pl6
1 files changed, 4 insertions, 2 deletions
diff --git a/regen/regen_lib.pl b/regen/regen_lib.pl
index e18a3ba9b8..4715236050 100644
--- a/regen/regen_lib.pl
+++ b/regen/regen_lib.pl
@@ -34,8 +34,9 @@ sub safer_unlink {
# Open a new file.
sub open_new {
- my ($final_name, $mode) = @_;
+ my ($final_name, $mode, $header) = @_;
my $name = $final_name . '-new';
+ my $lang = $final_name =~ /\.(?:c|h|tab|act)$/ ? 'C' : 'Perl';
my $fh = gensym;
if (!defined $mode or $mode eq '>') {
if (-f $name) {
@@ -49,8 +50,9 @@ sub open_new {
}
*{$fh}->{name} = $name;
*{$fh}->{final_name} = $final_name;
- *{$fh}->{lang} = ($final_name =~ /\.(?:c|h|tab|act)$/ ? 'C' : 'Perl');
+ *{$fh}->{lang} = $lang;
binmode $fh;
+ print $fh read_only_top(lang => $lang, %$header) if $header;
$fh;
}