X-Git-Url: http://git.shadowcat.co.uk/gitweb/gitweb.cgi?a=blobdiff_plain;f=regexp.h;h=f21d9d37c0278a2fb2f9ec7511e37355d08067a4;hb=8dec540cdddd445bea8861dacf9738097910923e;hp=5d787e018add17c4ddba0bf06b5b3f82f65eae42;hpb=aa32913f3abc1e07f8a5bdb31411f65d1fdbcf6f;p=p5sagit%2Fp5-mst-13.2.git diff --git a/regexp.h b/regexp.h index 5d787e0..f21d9d3 100644 --- a/regexp.h +++ b/regexp.h @@ -19,6 +19,8 @@ typedef struct regnode regnode; struct reg_substr_data; +struct reg_data; + typedef struct regexp { I32 *startp; I32 *endp; @@ -28,6 +30,7 @@ typedef struct regexp { struct reg_data *data; /* Additional data. */ char *subbeg; /* saved or original string so \digit works forever. */ + U32 *offsets; /* offset annotations 20001228 MJD */ I32 sublen; /* Length of string pointed by subbeg */ I32 refcnt; I32 minlen; /* mininum possible length of $& */ @@ -52,13 +55,14 @@ typedef struct regexp { #define ROPT_CHECK_ALL 0x00100 #define ROPT_LOOKBEHIND_SEEN 0x00200 #define ROPT_EVAL_SEEN 0x00400 -#define ROPT_TAINTED_SEEN 0x00800 +#define ROPT_SANY_SEEN 0x00800 /* 0xf800 of reganch is used by PMf_COMPILETIME */ #define ROPT_UTF8 0x10000 #define ROPT_NAUGHTY 0x20000 /* how exponential is this pattern? */ #define ROPT_COPY_DONE 0x40000 /* subbeg is a copy of the string */ +#define ROPT_TAINTED_SEEN 0x80000 #define RE_USE_INTUIT_NOML 0x0100000 /* Best to intuit before matching */ #define RE_USE_INTUIT_ML 0x0200000 @@ -94,7 +98,7 @@ typedef struct regexp { #define REXEC_NOT_FIRST 0x10 /* This is another iteration of //g. */ #define REXEC_ML 0x20 /* $* was set. */ -#define ReREFCNT_inc(re) ((re && re->refcnt++), re) +#define ReREFCNT_inc(re) ((void)(re && re->refcnt++), re) #define ReREFCNT_dec(re) CALLREGFREE(aTHX_ re) #define FBMcf_TAIL_DOLLAR 1