latest switch/say/~~
[p5sagit/p5-mst-13.2.git] / op.h
diff --git a/op.h b/op.h
index 6482d20..e687f42 100644 (file)
--- a/op.h
+++ b/op.h
@@ -110,6 +110,9 @@ Deprecated.  Use C<GIMME_V> instead.
                                 *    (runtime property) */
                                /*  On OP_AELEMFAST, indiciates pad var */
                                /*  On OP_REQUIRE, was seen as CORE::require */
+                               /*  On OP_ENTERWHEN, there's no condition */
+                               /*  On OP_BREAK, an implicit break */
+                               /*  On OP_SMARTMATCH, an implicit smartmatch */
 
 /* old names; don't use in new code, but don't break them, either */
 #define OPf_LIST       OPf_WANT_LIST
@@ -183,6 +186,7 @@ Deprecated.  Use C<GIMME_V> instead.
 
 /* Private for OP_ENTERITER and OP_ITER */
 #define OPpITER_REVERSED       4       /* for (reverse ...) */
+#define OPpITER_DEF            8       /* for $_ or for my $_ */
 
 /* Private for OP_CONST */
 #define        OPpCONST_NOVER          2       /* no 6; */
@@ -224,7 +228,7 @@ Deprecated.  Use C<GIMME_V> instead.
 #define OPpHUSH_VMSISH         64      /* hush DCL exit msg vmsish mode*/
 #define OPpEXIT_VMSISH         128     /* exit(0) vs. exit(1) vmsish mode*/
 
-/* Private of OP_FTXXX */
+/* Private for 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)              \
@@ -238,6 +242,9 @@ Deprecated.  Use C<GIMME_V> instead.
 /* Private for OP_(MAP|GREP)(WHILE|START) */
 #define OPpGREP_LEX            2       /* iterate over lexical $_ */
     
+/* Private for OP_ENTEREVAL */
+#define OPpEVAL_HAS_HH         2       /* Does it have a copy of %^H */
+    
 struct op {
     BASEOP
 };
@@ -289,7 +296,10 @@ struct pmop {
 
 #ifdef USE_ITHREADS
 #define PM_GETRE(o)     (INT2PTR(REGEXP*,SvIVX(PL_regex_pad[(o)->op_pmoffset])))
-#define PM_SETRE(o,r)   STMT_START { SV* sv = PL_regex_pad[(o)->op_pmoffset]; sv_setiv(sv, PTR2IV(r)); } STMT_END
+#define PM_SETRE(o,r)   STMT_START { \
+                            SV* const sv = PL_regex_pad[(o)->op_pmoffset]; \
+                            sv_setiv(sv, PTR2IV(r)); \
+                        } STMT_END
 #define PM_GETRE_SAFE(o) (PL_regex_pad ? PM_GETRE(o) : (REGEXP*)0)
 #define PM_SETRE_SAFE(o,r) if (PL_regex_pad) PM_SETRE(o,r)
 #else
@@ -331,7 +341,7 @@ struct pmop {
 #  define PmopSTASHPV(o)       ((o)->op_pmstashpv)
 #  define PmopSTASHPV_set(o,pv)        (PmopSTASHPV(o) = savesharedpv(pv))
 #  define PmopSTASH(o)         (PmopSTASHPV(o) \
-                                ? gv_stashpv(PmopSTASHPV(o),GV_ADD) : Nullhv)
+                                ? gv_stashpv(PmopSTASHPV(o),GV_ADD) : NULL)
 #  define PmopSTASH_set(o,hv)  PmopSTASHPV_set(o, ((hv) ? HvNAME_get(hv) : Nullch))
 #  define PmopSTASH_free(o)    PerlMemShared_free(PmopSTASHPV(o))
 
@@ -507,6 +517,9 @@ struct loop {
 #define PERL_LOADMOD_NOIMPORT          0x2
 #define PERL_LOADMOD_IMPORT_OPS                0x4
 
+/* used in perly.y */
+#define ref(o, type) doref(o, type, TRUE)
+
 #ifdef USE_REENTRANT_API
 #include "reentr.h"
 #endif