re.xs

来自「UNIX下perl实现代码」· XS 代码 · 共 62 行

XS
62
字号
/* We need access to debugger hooks */#ifndef DEBUGGING#  define DEBUGGING#endif#define PERL_NO_GET_CONTEXT#include "EXTERN.h"#include "perl.h"#include "XSUB.h"extern regexp*	my_regcomp (pTHX_ char* exp, char* xend, PMOP* pm);extern I32	my_regexec (pTHX_ regexp* prog, char* stringarg, char* strend,			    char* strbeg, I32 minend, SV* screamer,			    void* data, U32 flags);extern void	my_regfree (pTHX_ struct regexp* r);extern char*	my_re_intuit_start (pTHX_ regexp *prog, SV *sv, char *strpos,				    char *strend, U32 flags,				    struct re_scream_pos_data_s *data);extern SV*	my_re_intuit_string (pTHX_ regexp *prog);static int oldfl;#define R_DB 512static voiddeinstall(pTHX){    PL_regexecp = Perl_regexec_flags;    PL_regcompp = Perl_pregcomp;    PL_regint_start = Perl_re_intuit_start;    PL_regint_string = Perl_re_intuit_string;    PL_regfree = Perl_pregfree;    if (!oldfl)	PL_debug &= ~R_DB;}static voidinstall(pTHX){    PL_colorset = 0;			/* Allow reinspection of ENV. */    PL_regexecp = &my_regexec;    PL_regcompp = &my_regcomp;    PL_regint_start = &my_re_intuit_start;    PL_regint_string = &my_re_intuit_string;    PL_regfree = &my_regfree;    oldfl = PL_debug & R_DB;    PL_debug |= R_DB;}MODULE = re	PACKAGE = revoidinstall()  CODE:    install(aTHX);voiddeinstall()  CODE:    deinstall(aTHX);

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?