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 + -
显示快捷键?