X-Git-Url: http://git.shadowcat.co.uk/gitweb/gitweb.cgi?a=blobdiff_plain;f=op.h;h=9015028b6d75128808cc14c5544a2f05495a0ad1;hb=dcb4812c733545a68ef39b77c2dc4f7d440de203;hp=471ace0760ffcceb42b86c1b3b66735a3ab2ae49;hpb=7e0e7afedd94fe242b9d912ceebe511cf90e118a;p=p5sagit%2Fp5-mst-13.2.git diff --git a/op.h b/op.h index 471ace0..9015028 100644 --- a/op.h +++ b/op.h @@ -32,15 +32,19 @@ typedef U32 PADOFFSET; #define OPCODE U16 #endif +#ifdef BASEOP_DEFINITION +#define BASEOP BASEOP_DEFINITION +#else #define BASEOP \ OP* op_next; \ OP* op_sibling; \ - OP* (*op_ppaddr)_((ARGSproto)); \ + OP* (CPERLscope(*op_ppaddr))_((ARGSproto)); \ PADOFFSET op_targ; \ OPCODE op_type; \ U16 op_seq; \ U8 op_flags; \ U8 op_private; +#endif #define OP_GIMME(op,dfl) \ (((op)->op_flags & OPf_WANT) == OPf_WANT_VOID ? G_VOID : \ @@ -95,6 +99,7 @@ typedef U32 PADOFFSET; #define OPpRUNTIME 64 /* Pattern coming in on the stack */ /* Private for OP_TRANS */ +#define OPpTRANS_COUNTONLY 8 #define OPpTRANS_SQUASH 16 #define OPpTRANS_DELETE 32 #define OPpTRANS_COMPLEMENT 64 @@ -180,12 +185,16 @@ struct pmop { REGEXP * op_pmregexp; /* compiled expression */ U16 op_pmflags; U16 op_pmpermflags; + U8 op_pmdynflags; }; -#define PMf_USED 0x0001 /* pm has been used once already */ +#define PMdf_USED 0x01 /* pm has been used once already */ +#define PMdf_TAINTED 0x02 /* pm compiled from tainted pattern */ + +#define PMf_RETAINT 0x0001 /* taint $1 etc. if target tainted */ #define PMf_ONCE 0x0002 /* use pattern only once per reset */ #define PMf_REVERSED 0x0004 /* Should be matched right->left */ -/*#define PMf_ALL 0x0008*/ /* initial constant is whole pat */ +#define PMf_MAYBE_CONST 0x0008 /* replacement contains variables */ #define PMf_SKIPWHITE 0x0010 /* skip leading whitespace for split */ #define PMf_FOLD 0x0020 /* case insensitivity */ #define PMf_CONST 0x0040 /* subst replacement is constant */