Win32 and makedef.pl fall-out of PerlIO/pTHX stuff
[p5sagit/p5-mst-13.2.git] / regcomp.h
index 8b6e4a9..16cf957 100644 (file)
--- 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,