File Coverage

Util.xs
Criterion Covered Total %
statement 6 6 100.0
branch n/a
condition n/a
subroutine n/a
pod n/a
total 6 6 100.0


line stmt bran cond sub pod time code
1             #include "EXTERN.h"
2             #include "perl.h"
3             #include "XSUB.h"
4              
5             #include "ppport.h"
6              
7             #include "const-c.inc"
8              
9             #define sv_defined(sv) (sv && (SvIOK(sv) || SvNOK(sv) || SvPOK(sv) || SvROK(sv)))
10              
11             #ifndef SvRXOK
12              
13             #define SvRXOK(sv) _is_regexp(aTHX_ sv)
14              
15             STATIC int
16             _is_regexp (pTHX_ SV* sv) {
17             SV* tmpsv;
18            
19             if (SvMAGICAL(sv))
20             {
21             mg_get(sv);
22             }
23            
24             if (SvROK(sv)
25             && (tmpsv = (SV*) SvRV(sv))
26             && SvTYPE(tmpsv) == SVt_PVMG
27             && (mg_find(tmpsv, PERL_MAGIC_qr)))
28             {
29             return TRUE;
30             }
31            
32             return FALSE;
33             }
34              
35             #endif
36              
37             MODULE = Regexp::Util PACKAGE = Regexp::Util
38              
39             INCLUDE: const-xs.inc
40              
41             bool
42             is_regexp (ref)
43             SV *ref
44             CODE:
45 2           RETVAL = SvRXOK(ref);
46             OUTPUT:
47             RETVAL
48              
49             bool
50             regexp_seen_evals (ref)
51             SV *ref
52             CODE:
53             REGEXP *re;
54 1           re = SvRX(ref);
55 1           RETVAL = RX_EXTFLAGS(re) & RXf_EVAL_SEEN;
56             OUTPUT:
57             RETVAL
58              
59             int
60             _regexp_engine_id (ref)
61             SV *ref
62             CODE:
63             REGEXP *re;
64             const regexp_engine *e;
65 2           re = SvRX(ref);
66 2           e = RX_ENGINE(re);
67 2           RETVAL = (int)e;
68             OUTPUT:
69             RETVAL