X-Git-Url: http://git.shadowcat.co.uk/gitweb/gitweb.cgi?a=blobdiff_plain;f=op.h;h=f06dbdc1203462410e62896c5007ab43f0761362;hb=dcfdccf94c5ada3342776b740fd487168bef3ca3;hp=e128ec969c11bb9e2b621877d7096db91a27ddb5;hpb=996c9baa63e0776f6650c6ba32b83baefb5f0505;p=p5sagit%2Fp5-mst-13.2.git diff --git a/op.h b/op.h index e128ec9..f06dbdc 100644 --- a/op.h +++ b/op.h @@ -1,7 +1,7 @@ /* op.h * - * Copyright (C) 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, - * 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, by Larry Wall and others + * Copyright (C) 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, + * 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008 by Larry Wall and others * * You may distribute under the terms of either the GNU General Public * License or the Artistic License, as specified in the README file. @@ -45,7 +45,7 @@ # define MADPROP_IN_BASEOP #endif -typedef PERL_BITFIELD16 optype; +typedef PERL_BITFIELD16 Optype; #ifdef BASEOP_DEFINITION #define BASEOP BASEOP_DEFINITION @@ -137,6 +137,10 @@ Deprecated. Use C instead. /* On OP_SMARTMATCH, an implicit smartmatch */ /* On OP_ANONHASH and OP_ANONLIST, create a reference to the new anon hash or array */ + /* On OP_ENTER, store caller context */ + /* On OP_HELEM and OP_HSLICE, localization will be followed + by assignment, so do not wipe the target if it is special + (e.g. a glob or a magic SV) */ /* old names; don't use in new code, but don't break them, either */ #define OPf_LIST OPf_WANT_LIST @@ -266,13 +270,6 @@ Deprecated. Use C instead. /* 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) \ - (((op)->op_type) == OP_FTRREAD || \ - ((op)->op_type) == OP_FTRWRITE || \ - ((op)->op_type) == OP_FTREXEC || \ - ((op)->op_type) == OP_FTEREAD || \ - ((op)->op_type) == OP_FTEWRITE || \ - ((op)->op_type) == OP_FTEEXEC) /* Private for OP_(MAP|GREP)(WHILE|START) */ #define OPpGREP_LEX 2 /* iterate over lexical $_ */ @@ -347,9 +344,9 @@ struct pmop { /* BEWARE - something that calls this macro passes (r) which has a side effect. */ #define PM_SETRE(o,r) STMT_START { \ - const REGEXP *const whap = (r); \ - assert(whap); \ - PL_regex_pad[(o)->op_pmoffset] = (SV*)whap; \ + REGEXP *const _pm_setre = (r); \ + assert(_pm_setre); \ + PL_regex_pad[(o)->op_pmoffset] = MUTABLE_SV(_pm_setre); \ } STMT_END #else #define PM_GETRE(o) ((o)->op_pmregexp) @@ -603,9 +600,9 @@ struct loop { #endif /* flags used by Perl_load_module() */ -#define PERL_LOADMOD_DENY 0x1 -#define PERL_LOADMOD_NOIMPORT 0x2 -#define PERL_LOADMOD_IMPORT_OPS 0x4 +#define PERL_LOADMOD_DENY 0x1 /* no Module */ +#define PERL_LOADMOD_NOIMPORT 0x2 /* use Module () */ +#define PERL_LOADMOD_IMPORT_OPS 0x4 /* use Module (...) */ #if defined(PERL_IN_PERLY_C) || defined(PERL_IN_OP_C) #define ref(o, type) doref(o, type, TRUE) @@ -617,6 +614,10 @@ struct loop { cv_ckproto_len((cv), (gv), (p), (p) ? strlen(p) : 0) #endif +#ifdef PERL_CORE +# define my(o) my_attrs((o), NULL) +#endif + #ifdef USE_REENTRANT_API #include "reentr.h" #endif