]> git.vpit.fr Git - perl/modules/re-engine-Hooks.git/blobdiff - src/update.pl
Define PERL_IN_XSUB_RE when including perl.h
[perl/modules/re-engine-Hooks.git] / src / update.pl
index e62b78e2b8309381a1fe1351af229cd45dca786d..1b5834e3045c6544635e9f71aec363a6c97949b9 100644 (file)
@@ -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;