1N/A#if defined(PERL_EXT_RE_DEBUG) && !defined(DEBUGGING)
1N/A# define DEBUGGING
1N/A#endif
1N/A
1N/A#define PERL_NO_GET_CONTEXT
1N/A#include "EXTERN.h"
1N/A#include "perl.h"
1N/A#include "XSUB.h"
1N/A
1N/ASTART_EXTERN_C
1N/A
1N/Aextern regexp* my_regcomp (pTHX_ char* exp, char* xend, PMOP* pm);
1N/Aextern I32 my_regexec (pTHX_ regexp* prog, char* stringarg, char* strend,
1N/A char* strbeg, I32 minend, SV* screamer,
1N/A void* data, U32 flags);
1N/Aextern void my_regfree (pTHX_ struct regexp* r);
1N/Aextern char* my_re_intuit_start (pTHX_ regexp *prog, SV *sv, char *strpos,
1N/A char *strend, U32 flags,
1N/A struct re_scream_pos_data_s *data);
1N/Aextern SV* my_re_intuit_string (pTHX_ regexp *prog);
1N/A
1N/AEND_EXTERN_C
1N/A
1N/A#define MY_CXT_KEY "re::_guts" XS_VERSION
1N/A
1N/Atypedef struct {
1N/A int x_oldflag; /* debug flag */
1N/A} my_cxt_t;
1N/A
1N/ASTART_MY_CXT
1N/A
1N/A#define oldflag (MY_CXT.x_oldflag)
1N/A
1N/Astatic void
1N/Auninstall(pTHX)
1N/A{
1N/A dMY_CXT;
1N/A PL_regexecp = Perl_regexec_flags;
1N/A PL_regcompp = Perl_pregcomp;
1N/A PL_regint_start = Perl_re_intuit_start;
1N/A PL_regint_string = Perl_re_intuit_string;
1N/A PL_regfree = Perl_pregfree;
1N/A
1N/A if (!oldflag)
1N/A PL_debug &= ~DEBUG_r_FLAG;
1N/A}
1N/A
1N/Astatic void
1N/Ainstall(pTHX)
1N/A{
1N/A dMY_CXT;
1N/A PL_colorset = 0; /* Allow reinspection of ENV. */
1N/A PL_regexecp = &my_regexec;
1N/A PL_regcompp = &my_regcomp;
1N/A PL_regint_start = &my_re_intuit_start;
1N/A PL_regint_string = &my_re_intuit_string;
1N/A PL_regfree = &my_regfree;
1N/A oldflag = PL_debug & DEBUG_r_FLAG;
1N/A PL_debug |= DEBUG_r_FLAG;
1N/A}
1N/A
1N/AMODULE = re PACKAGE = re
1N/A
1N/ABOOT:
1N/A{
1N/A MY_CXT_INIT;
1N/A}
1N/A
1N/A
1N/Avoid
1N/Ainstall()
1N/A CODE:
1N/A install(aTHX);
1N/A
1N/Avoid
1N/Auninstall()
1N/A CODE:
1N/A uninstall(aTHX);