X-Git-Url: http://git.shadowcat.co.uk/gitweb/gitweb.cgi?a=blobdiff_plain;f=regexp.h;h=d12df9209a0bf609aea054bc0af31eb099543eb9;hb=25ff0154ccf606eb5512a8cde622caf50e20fba3;hp=d43f05f2d17782d88c0fff006a44c5b2921aad67;hpb=fae667d5a60f37538a5761795f7af2165c7d4fb0;p=p5sagit%2Fp5-mst-13.2.git diff --git a/regexp.h b/regexp.h index d43f05f..d12df92 100644 --- a/regexp.h +++ b/regexp.h @@ -111,6 +111,8 @@ typedef struct regexp_engine { struct re_scream_pos_data_s *data); SV* (*checkstr) (pTHX_ regexp *prog); void (*free) (pTHX_ struct regexp* r); + SV* (*numbered_buff_get) (pTHX_ const REGEXP * const rx, I32 paren, SV* usesv); + SV* (*named_buff_get)(pTHX_ const REGEXP * const rx, SV* namesv, U32 flags); #ifdef USE_ITHREADS void* (*dupe) (pTHX_ const regexp *r, CLONE_PARAMS *param); #endif @@ -159,9 +161,13 @@ typedef struct regexp_engine { /* chars and strings used as regex pattern modifiers * Singlular is a 'c'har, plural is a "string" + * + * NOTE, KEEPCOPY was originally 'k', but was changed to 'p' for preserve + * for compatibility reasons with Regexp::Common which highjacked (?k:...) + * for its own uses. So 'k' is out as well. */ #define EXEC_PAT_MOD 'e' -#define KEEPCOPY_PAT_MOD 'k' +#define KEEPCOPY_PAT_MOD 'p' #define ONCE_PAT_MOD 'o' #define GLOBAL_PAT_MOD 'g' #define CONTINUE_PAT_MOD 'c' @@ -171,7 +177,7 @@ typedef struct regexp_engine { #define XTENDED_PAT_MOD 'x' #define ONCE_PAT_MODS "o" -#define KEEPCOPY_PAT_MODS "k" +#define KEEPCOPY_PAT_MODS "p" #define EXEC_PAT_MODS "e" #define LOOP_PAT_MODS "gc" @@ -293,7 +299,9 @@ typedef struct { /* structures for holding and saving the state maintained by regmatch() */ -#define MAX_RECURSE_EVAL_NOCHANGE_DEPTH 50 +#ifndef MAX_RECURSE_EVAL_NOCHANGE_DEPTH +#define MAX_RECURSE_EVAL_NOCHANGE_DEPTH 1000 +#endif typedef I32 CHECKPOINT;