X-Git-Url: http://git.vpit.fr/?a=blobdiff_plain;f=src%2Fupdate.pl;h=1b5834e3045c6544635e9f71aec363a6c97949b9;hb=4a9aed6a870d6a954c42bac71334dd440780b226;hp=d3c6b674111ce647ac776f8b4d033e04baade593;hpb=819b78c9396701a0ef5fe7334e4054dd53c7ef93;p=perl%2Fmodules%2Fre-engine-Hooks.git diff --git a/src/update.pl b/src/update.pl index d3c6b67..1b5834e 100644 --- a/src/update.pl +++ b/src/update.pl @@ -96,7 +96,7 @@ sub key_version { "$int$frac" => [ $num_version, $pretty_version ]; } -my $latest_dev_rev = 21; +my $latest_dev_rev = 23; sub perl_is_supported { my $v = "$_[0]"; @@ -300,13 +300,14 @@ sub fetch_source_file { my %patched_chunks; my %expected_chunks = ( 'regcomp.c' => [ + 'PERL_IN_XSUB_RE', 're_defs', 'COMP_NODE_HOOK', 'COMP_BEGIN_HOOK', ('COMP_NODE_HOOK') x 3, ], 'regexec.c' => [ - 're_defs', + 'PERL_IN_XSUB_RE+re_defs', 'EXEC_NODE_HOOK', ], ); @@ -314,7 +315,15 @@ my %expected_chunks = ( sub patch_regcomp { my ($line, $file) = @_; - if ($line =~ /#\s*include\s+"INTERN\.h"/) { + if ($line =~ /#\s*include\s+"perl\.h"/) { + push @{$patched_chunks{$file}}, 'PERL_IN_XSUB_RE'; + return ( + "#undef PERL_IN_XSUB_RE\n", + "#define PERL_IN_XSUB_RE 1\n", + $line, + "#undef PERL_IN_XSUB_RE\n", + ); + } elsif ($line =~ /#\s*include\s+"INTERN\.h"/) { push @{$patched_chunks{$file}}, 're_defs'; return "#include \"re_defs.h\"\n"; } elsif ($line =~ /^(\s*)RExC_rxi\s*=\s*ri\s*;\s*$/) { @@ -339,8 +348,14 @@ sub patch_regexec { my ($line, $file) = @_; if ($line =~ /#\s*include\s+"perl\.h"/) { - push @{$patched_chunks{$file}}, 're_defs'; - return $line, "#include \"re_defs.h\"\n"; + push @{$patched_chunks{$file}}, 'PERL_IN_XSUB_RE+re_defs'; + return ( + "#undef PERL_IN_XSUB_RE\n", + "#define PERL_IN_XSUB_RE 1\n", + $line, + "#include \"re_defs.h\"\n", + "#undef PERL_IN_XSUB_RE\n", + ); } elsif ($line =~ /^\s*reenter_switch:\s*$/) { push @{$patched_chunks{$file}}, 'EXEC_NODE_HOOK'; return "\tREH_CALL_EXEC_NODE_HOOK(rex, scan, reginfo, st);\n", $line;