diff options
author | Leon Brocard <acme@astray.com> | 2011-07-07 10:28:29 +0100 |
---|---|---|
committer | Leon Brocard <acme@astray.com> | 2011-07-07 10:28:29 +0100 |
commit | 582c9380b28d7fb3a563d5296d13c8325dd83a06 (patch) | |
tree | 34fc9839f99c875652e3b1abd13d5d0fd7205f39 /Porting/bump-perl-version | |
parent | 2db249d3d6f61a44bb2e6dd90d24085003da650c (diff) | |
download | perl-582c9380b28d7fb3a563d5296d13c8325dd83a06.tar.gz |
Make Porting/bump-perl-version do multiple substitutions per line
Diffstat (limited to 'Porting/bump-perl-version')
-rw-r--r-- | Porting/bump-perl-version | 36 |
1 files changed, 20 insertions, 16 deletions
diff --git a/Porting/bump-perl-version b/Porting/bump-perl-version index 63cb5aed45..0939b5a449 100644 --- a/Porting/bump-perl-version +++ b/Porting/bump-perl-version @@ -194,6 +194,14 @@ my @maps = ( qr/uconfig/, ], + # rename perl-5^.15^.1.dirperl-5_15_1.dir in README.vms + [ + qr{\sperl-(\d+)_(\d+)_(\d+)\.dir}x, + sub { warn "got $& - perl-${1}_${2}_${3}.dir -> perl-${newx}_${newy}_${newz}.dir"; " perl-${1}_${2}_${3}.dir", " perl-${newx}_${newy}_${newz}.dir" }, + " perl-${oldx}_${oldy}_{$oldz}.dir", + qr/README.vms/, + ], + ); @@ -250,35 +258,31 @@ sub do_scan { my $file_changed = 0; my $new_contents = ''; - while (<$fh>) { - my $line_changed; + while (my $line = <$fh>) { + my $oldline = $line; for my $map (@maps) { my ($pat, $sub, $expected, $file_pat) = @$map; next if defined $file_pat and $file !~ $file_pat; - next unless $_ =~ $pat; + next unless $line =~ $pat; my ($got, $replacement) = $sub->(); if ($opts{c}) { # only report unexpected next unless defined $expected and $got ne $expected; } - my $newstr = $_; - $newstr =~ s/$pat/$replacement/ + $line =~ s/$pat/$replacement/ or die "Internal error: substitution failed: [$pat]\n"; - $new_contents .= $newstr if $opts{i}; - if ($_ ne $newstr) { - $file_changed = 1; - $line_changed = 1; - if ($opts{s}) { - print "\n$file\n" unless $header; - $header=1; - printf "\n%5d: -%s +%s", $., $_, $newstr; - } + } + $new_contents .= $line if $opts{i}; + if ($line ne $oldline) { + $file_changed = 1; + if ($opts{s}) { + print "\n$file\n" unless $header; + $header=1; + printf "\n%5d: -%s +%s", $., $oldline, $line; } - last; } - $new_contents .= $_ if $opts{i} && !$line_changed ; } if ($opts{i} && $file_changed) { warn "Updating $file inplace\n"; |