X-Git-Url: http://git.shadowcat.co.uk/gitweb/gitweb.cgi?a=blobdiff_plain;f=op.h;h=31f018d6e44b352d75c02bd2aa3fd58b34054221;hb=e1dfb34bfc42ff65ed44f37b855c1f4b6cc2109e;hp=0161110cb5aec92b989bfcba02aa4b3661791d9b;hpb=533c011aecf9bca2c9ad025efccd7b74ad222cda;p=p5sagit%2Fp5-mst-13.2.git diff --git a/op.h b/op.h index 0161110..31f018d 100644 --- a/op.h +++ b/op.h @@ -81,10 +81,14 @@ typedef U32 PADOFFSET; /* On OP_ENTERITER, loop var is per-thread */ /* old names; don't use in new code, but don't break them, either */ -#define OPf_LIST 1 -#define OPf_KNOW 2 +#define OPf_LIST OPf_WANT_LIST +#define OPf_KNOW OPf_WANT #define GIMME \ - (PL_op->op_flags & OPf_KNOW ? PL_op->op_flags & OPf_LIST : dowantarray()) + (PL_op->op_flags & OPf_WANT \ + ? ((PL_op->op_flags & OPf_WANT) == OPf_WANT_LIST \ + ? G_ARRAY \ + : G_SCALAR) \ + : dowantarray()) /* Private for lvalues */ #define OPpLVAL_INTRO 128 /* Lvalue must be localized */ @@ -99,10 +103,15 @@ 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 +#define OPpTRANS_FROM_UTF 1 +#define OPpTRANS_TO_UTF 2 +#define OPpTRANS_IDENTICAL 4 + /* When CU or UC, means straight latin-1 to utf-8 or vice versa */ + /* Otherwise, IDENTICAL means the right side is the same as the left */ +#define OPpTRANS_SQUASH 8 +#define OPpTRANS_DELETE 16 +#define OPpTRANS_COMPLEMENT 32 +#define OPpTRANS_GROWS 64 /* Private for OP_REPEAT */ #define OPpREPEAT_DOLIST 64 /* List replication. */ @@ -123,6 +132,7 @@ typedef U32 PADOFFSET; #define OPpCONST_ENTERED 16 /* Has been entered as symbol. */ #define OPpCONST_ARYBASE 32 /* Was a $[ translated to constant. */ #define OPpCONST_BARE 64 /* Was a bare word (filehandle?). */ +#define OPpCONST_WARNING 128 /* Was a $^W translated to constant. */ /* Private for OP_FLIP/FLOP */ #define OPpFLIP_LINENUM 64 /* Range arg potentially a line num. */ @@ -275,7 +285,7 @@ struct loop { #define Nullop Null(OP*) -/* Lowest byte of opargs */ +/* Lowest byte of PL_opargs */ #define OA_MARK 1 #define OA_FOLDCONST 2 #define OA_RETSCALAR 4 @@ -306,7 +316,7 @@ struct loop { #define OASHIFT 12 -/* Remaining nybbles of opargs */ +/* Remaining nybbles of PL_opargs */ #define OA_SCALAR 1 #define OA_LIST 2 #define OA_AVREF 3