X-Git-Url: http://git.vpit.fr/?p=perl%2Fmodules%2Fre-engine-Hooks.git;a=blobdiff_plain;f=src%2Fupdate.pl;fp=src%2Fupdate.pl;h=b3c998453d727361e8270e542d42c94cfb7d0a69;hp=b5eae47e3dbdc64f7f9d1ae380eff52028789b6b;hb=3844497d56f979a0275bf10b2a322c9e9baab2bf;hpb=7a8e4ba50dd698a702ecce6a8c9c4d793fa690ac diff --git a/src/update.pl b/src/update.pl index b5eae47..b3c9984 100644 --- a/src/update.pl +++ b/src/update.pl @@ -350,8 +350,10 @@ sub patch_regexec { } my %manglers = ( - 'regcomp.c' => \&patch_regcomp, - 'regexec.c' => \&patch_regexec, + 'dquote_static.c' => sub { $_[0] }, + 'inline_invlist.c' => sub { $_[0] }, + 'regcomp.c' => \&patch_regcomp, + 'regexec.c' => \&patch_regexec, ); sub patch_source_file { @@ -372,11 +374,20 @@ sub patch_source_file { open my $out, '>', $dst or die "Can't open $dst for writing: $!"; while (defined(my $line = <$in>)) { - print $out $mangler->($line, $dst); + my @lines = $mangler->($line, $dst); + + for (@lines) { + s/\s*$/\n/; # Remove trailing whitespace + 1 while s/^( *)\t/$1 . (' ' x 8)/e; # Replace leading tabs by 8 spaces + s|^((?: )+) {0,3}([^ ])|(' ' x ((length $1) / 4)) . $2|e; + s/\t/ /g; + } + + print $out @lines; } - my $patched_chunks = join ' ', @{$patched_chunks{$dst}}; - my $expected_chunks = join ' ', @{$expected_chunks{$file}}; + my $patched_chunks = join ' ', @{$patched_chunks{$dst} || [ ]}; + my $expected_chunks = join ' ', @{$expected_chunks{$file} || [ ]}; unless ($patched_chunks eq $expected_chunks) { die "File $dst was not properly patched (got \"$patched_chunks\", expected \"$expected_chunks\")\n"; }