Integrate with Sarathy.
[p5sagit/p5-mst-13.2.git] / ext / re / re.xs
CommitLineData
b9d5759e 1/* We need access to debugger hooks */
2#ifndef DEBUGGING
3# define DEBUGGING
4#endif
5
56953603 6#include "EXTERN.h"
7#include "perl.h"
8#include "XSUB.h"
9
cea2e8a9 10extern regexp* my_regcomp (pTHX_ char* exp, char* xend, PMOP* pm);
11extern I32 my_regexec (pTHX_ regexp* prog, char* stringarg, char* strend,
20ce7b12 12 char* strbeg, I32 minend, SV* screamer,
13 void* data, U32 flags);
cad2e5aa 14extern void my_regfree (pTHX_ struct regexp* r);
15extern char* my_re_intuit_start (pTHX_ regexp *prog, SV *sv, char *strpos,
16 char *strend, U32 flags,
17 struct re_scream_pos_data_s *data);
18extern SV* my_re_intuit_string (pTHX_ regexp *prog);
56953603 19
20static int oldfl;
21
22#define R_DB 512
23
24static void
cea2e8a9 25deinstall(pTHX)
56953603 26{
5c0ca799 27 dTHR;
cad2e5aa 28 PL_regexecp = FUNC_NAME_TO_PTR(Perl_regexec_flags);
29 PL_regcompp = FUNC_NAME_TO_PTR(Perl_pregcomp);
30 PL_regint_start = FUNC_NAME_TO_PTR(Perl_re_intuit_start);
31 PL_regint_string = FUNC_NAME_TO_PTR(Perl_re_intuit_string);
32 PL_regfree = FUNC_NAME_TO_PTR(Perl_pregfree);
33
56953603 34 if (!oldfl)
3280af22 35 PL_debug &= ~R_DB;
56953603 36}
37
38static void
cea2e8a9 39install(pTHX)
56953603 40{
5c0ca799 41 dTHR;
285bbc62 42 PL_colorset = 0; /* Allow reinspection of ENV. */
3280af22 43 PL_regexecp = &my_regexec;
44 PL_regcompp = &my_regcomp;
cad2e5aa 45 PL_regint_start = &my_re_intuit_start;
46 PL_regint_string = &my_re_intuit_string;
47 PL_regfree = &my_regfree;
3280af22 48 oldfl = PL_debug & R_DB;
49 PL_debug |= R_DB;
56953603 50}
51
52MODULE = re PACKAGE = re
53
54void
55install()
cea2e8a9 56 CODE:
57 install(aTHX);
56953603 58
59void
60deinstall()
cea2e8a9 61 CODE:
62 deinstall(aTHX);