[patch perlguts.pod] save_item doesn't handle magic
[p5sagit/p5-mst-13.2.git] / op.h
diff --git a/op.h b/op.h
index 3bf90c7..e957e1b 100644 (file)
--- a/op.h
+++ b/op.h
@@ -135,9 +135,11 @@ Deprecated.  Use C<GIMME_V> instead.
 #define OPpTRANS_TO_UTF                2
 #define OPpTRANS_IDENTICAL     4       /* right side is same as left */
 #define OPpTRANS_SQUASH                8
-#define OPpTRANS_DELETE                16
+    /* 16 is used for OPpTARGET_MY */
 #define OPpTRANS_COMPLEMENT    32
 #define OPpTRANS_GROWS         64
+#define OPpTRANS_DELETE                128
+#define OPpTRANS_ALL   (OPpTRANS_FROM_UTF|OPpTRANS_TO_UTF|OPpTRANS_IDENTICAL|OPpTRANS_SQUASH|OPpTRANS_COMPLEMENT|OPpTRANS_GROWS|OPpTRANS_DELETE)
 
 /* Private for OP_REPEAT */
 #define OPpREPEAT_DOLIST       64      /* List replication. */
@@ -207,6 +209,7 @@ Deprecated.  Use C<GIMME_V> instead.
 
 /* Private of OP_FTXXX */
 #define OPpFT_ACCESS           2       /* use filetest 'access' */
+#define OPpFT_STACKED          4       /* stacked filetest, as in "-f -x $f" */
 #define OP_IS_FILETEST_ACCESS(op)              \
        (((op)->op_type) == OP_FTRREAD  ||      \
         ((op)->op_type) == OP_FTRWRITE ||      \
@@ -215,6 +218,9 @@ Deprecated.  Use C<GIMME_V> instead.
         ((op)->op_type) == OP_FTEWRITE ||      \
         ((op)->op_type) == OP_FTEEXEC)
 
+/* Private for OP_(MAP|GREP)(WHILE|START) */
+#define OPpGREP_LEX            2       /* iterate over lexical $_ */
+    
 struct op {
     BASEOP
 };
@@ -483,3 +489,15 @@ struct loop {
 #include "reentr.h"
 #endif
 
+#if defined(PL_OP_SLAB_ALLOC)
+#define NewOp(m,var,c,type)    \
+       (var = (type *) Perl_Slab_Alloc(aTHX_ m,c*sizeof(type)))
+#define NewOpSz(m,var,size)    \
+       (var = (OP *) Perl_Slab_Alloc(aTHX_ m,size))
+#define FreeOp(p) Perl_Slab_Free(aTHX_ p)
+#else
+#define NewOp(m, var, c, type) Newz(m, var, c, type)
+#define NewOpSz(m, var, size)  \
+       (var = (OP*)safemalloc(size), memzero(var, size))
+#define FreeOp(p) Safefree(p)
+#endif