Message-Id: <
200104262233.XAA22352@crypt.compulink.co.uk>
p4raw-id: //depot/perl@9873
}
if (need_class) {
+ ANYOF_FLAGS(ret) |= ANYOF_LARGE;
if (SIZE_ONLY)
RExC_size += ANYOF_CLASS_ADD_SKIP;
else
node = dumpuntil(start, NEXTOPER(node), NEXTOPER(node) + 1, sv, l + 1);
}
else if (op == ANYOF) {
- node = next;
+ /* arglen 1 + class block */
+ node += 1 + ((ANYOF_FLAGS(node) & ANYOF_LARGE)
+ ? ANYOF_CLASS_SKIP : ANYOF_SKIP);
+ node = NEXTOPER(node);
}
else if (PL_regkind[(U8)op] == EXACT) {
/* Literal string, where present. */
#define ANYOF_UNICODE 0x20
#define ANYOF_UNICODE_ALL 0x40 /* Can match any char past 0xff */
+/* size of node is large (includes class pointer) */
+#define ANYOF_LARGE 0x80
+
/* Are there any runtime flags on in this node? */
#define ANYOF_RUNTIME(s) (ANYOF_FLAGS(s) & 0x0f)