The new regexp compilation function must be added to the engine structure.
Rafael Garcia-Suarez [Mon, 4 Dec 2006 17:22:02 +0000 (17:22 +0000)]
p4raw-id: //depot/perl@29458

ext/re/re.xs
ext/re/re_top.h
regcomp.h
regexp.h

index 8847901..284a4e9 100644 (file)
@@ -12,6 +12,7 @@
 START_EXTERN_C
 
 extern regexp* my_regcomp (pTHX_ char* exp, char* xend, PMOP* pm);
+extern regexp*  my_re_compile(pTHX_ char *exp, char *xend, PMOP *pm);
 extern I32     my_regexec (pTHX_ regexp* prog, char* stringarg, char* strend,
                            char* strbeg, I32 minend, SV* screamer,
                            void* data, U32 flags);
@@ -32,6 +33,7 @@ END_EXTERN_C
 
 const struct regexp_engine my_reg_engine = { 
         my_regcomp, 
+       my_re_compile,
         my_regexec, 
         my_re_intuit_start, 
         my_re_intuit_string, 
index 178c433..9f12979 100644 (file)
@@ -13,6 +13,7 @@
 #define Perl_regprop            my_regprop
 #define Perl_re_intuit_start    my_re_intuit_start
 #define Perl_pregcomp           my_regcomp
+#define Perl_re_compile         my_re_compile
 #define Perl_regfree_internal   my_regfree
 #define Perl_re_intuit_string   my_re_intuit_string
 #define Perl_regdupe_internal   my_regdupe
index 9cf03b4..e1b17e5 100644 (file)
--- a/regcomp.h
+++ b/regcomp.h
@@ -405,6 +405,7 @@ EXTCONST regexp_engine PL_core_reg_engine;
 #else /* DOINIT */
 EXTCONST regexp_engine PL_core_reg_engine = { 
         Perl_pregcomp, 
+       Perl_re_compile,
         Perl_regexec_flags, 
         Perl_re_intuit_start,
         Perl_re_intuit_string, 
index a0ba5c7..abc744c 100644 (file)
--- a/regexp.h
+++ b/regexp.h
@@ -110,6 +110,7 @@ typedef struct re_scream_pos_data_s
 
 typedef struct regexp_engine {
     regexp* (*comp) (pTHX_ char* exp, char* xend, PMOP* pm);
+    regexp* (*compile) (pTHX_ char *exp, char *xend, PMOP *pm);
     I32            (*exec) (pTHX_ regexp* prog, char* stringarg, char* strend,
                            char* strbeg, I32 minend, SV* screamer,
                            void* data, U32 flags);