X-Git-Url: http://git.shadowcat.co.uk/gitweb/gitweb.cgi?a=blobdiff_plain;f=regcomp.h;h=16cf957816747f6aedb369cd9f17a9b7d65e25fc;hb=158e3910f3d0bce487277fa0db25247b664ed87c;hp=b336bec54b1b1ec0532cd63202bf225a6dde5b28;hpb=261faec3797a0b3cc70d08a3592a0a69ab6ad814;p=p5sagit%2Fp5-mst-13.2.git diff --git a/regcomp.h b/regcomp.h index b336bec..16cf957 100644 --- a/regcomp.h +++ b/regcomp.h @@ -286,6 +286,14 @@ struct regnode_charclass_class { /* has [[:blah:]] classes */ #define ANYOF_BITMAP_CLEAR(p,c) (ANYOF_BITMAP_BYTE(p, c) &= ~ANYOF_BIT(c)) #define ANYOF_BITMAP_TEST(p, c) (ANYOF_BITMAP_BYTE(p, c) & ANYOF_BIT(c)) +#define ANYOF_BITMAP_SETALL(p) \ + memset (ANYOF_BITMAP(p), 255, ANYOF_BITMAP_SIZE) +#define ANYOF_BITMAP_CLEARALL(p) \ + Zero (ANYOF_BITMAP(p), ANYOF_BITMAP_SIZE) +/* Check that all 256 bits are all set. Used in S_cl_is_anything() */ +#define ANYOF_BITMAP_TESTALLSET(p) \ + memEQ (ANYOF_BITMAP(p), "\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377", ANYOF_BITMAP_SIZE) + #define ANYOF_SKIP ((ANYOF_SIZE - 1)/sizeof(regnode)) #define ANYOF_CLASS_SKIP ((ANYOF_CLASS_SIZE - 1)/sizeof(regnode)) #define ANYOF_CLASS_ADD_SKIP (ANYOF_CLASS_SKIP - ANYOF_SKIP) @@ -309,7 +317,8 @@ struct regnode_charclass_class { /* has [[:blah:]] classes */ #define REG_SEEN_LOOKBEHIND 2 #define REG_SEEN_GPOS 4 #define REG_SEEN_EVAL 8 -#define REG_SEEN_SANY 16 +#define REG_SEEN_CANY 16 +#define REG_SEEN_SANY REG_SEEN_CANY /* src bckwrd cmpt */ START_EXTERN_C @@ -331,7 +340,7 @@ EXTCONST U8 PL_varies[] = { EXTCONST U8 PL_simple[]; #else EXTCONST U8 PL_simple[] = { - REG_ANY, SANY, + REG_ANY, SANY, CANY, ANYOF, ALNUM, ALNUML, NALNUM, NALNUML, @@ -358,6 +367,7 @@ typedef struct re_scream_pos_data_s * p - Pad for (?{EVAL} item * s - swash for unicode-style character class * 20010712 mjd@plover.com + * (Remember to update re_dup() and pregfree() if you add any items.) */ struct reg_data { U32 count;