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