This is a live mirror of the Perl 5 development currently hosted at https://github.com/perl/perl5
dTHR is a nop in 5.6.0 onwards. Ergo, it can go.
[perl5.git] / ext / re / re.xs
CommitLineData
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
11extern regexp* my_regcomp (pTHX_ char* exp, char* xend, PMOP* pm);
12extern 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
15extern void my_regfree (pTHX_ struct regexp* r);
16extern 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);
19extern SV* my_re_intuit_string (pTHX_ regexp *prog);
56953603
IZ
20
21static int oldfl;
22
23#define R_DB 512
24
25static void
cea2e8a9 26deinstall(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
38static void
cea2e8a9 39install(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
51MODULE = re PACKAGE = re
52
53void
54install()
cea2e8a9
GS
55 CODE:
56 install(aTHX);
56953603
IZ
57
58void
59deinstall()
cea2e8a9
GS
60 CODE:
61 deinstall(aTHX);