Commit | Line | Data |
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 |
10 | extern regexp* my_regcomp (pTHX_ char* exp, char* xend, PMOP* pm); |
11 | extern I32 my_regexec (pTHX_ regexp* prog, char* stringarg, char* strend, |
20ce7b12 |
12 | char* strbeg, I32 minend, SV* screamer, |
13 | void* data, U32 flags); |
f722798b |
14 | extern void my_regfree (pTHX_ struct regexp* r); |
15 | extern 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); |
18 | extern SV* my_re_intuit_string (pTHX_ regexp *prog); |
56953603 |
19 | |
20 | static int oldfl; |
21 | |
22 | #define R_DB 512 |
23 | |
24 | static void |
cea2e8a9 |
25 | deinstall(pTHX) |
56953603 |
26 | { |
5c0ca799 |
27 | dTHR; |
f722798b |
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 | |
38 | static void |
cea2e8a9 |
39 | install(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; |
f722798b |
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 | |
52 | MODULE = re PACKAGE = re |
53 | |
54 | void |
55 | install() |
cea2e8a9 |
56 | CODE: |
57 | install(aTHX); |
56953603 |
58 | |
59 | void |
60 | deinstall() |
cea2e8a9 |
61 | CODE: |
62 | deinstall(aTHX); |