From: Gurusamy Sarathy Date: Sat, 18 Jul 1998 08:46:58 +0000 (+0000) Subject: fix major bug in GIMME (introduced in 5.003_96); void contexts were X-Git-Url: http://git.shadowcat.co.uk/gitweb/gitweb.cgi?a=commitdiff_plain;h=d91ab1730ab6e32cf51b06d50df160328772fd3d;p=p5sagit%2Fp5-mst-13.2.git fix major bug in GIMME (introduced in 5.003_96); void contexts were using the context of the enclosing sub! p4raw-id: //depot/perl@1530 --- diff --git a/op.h b/op.h index 7a5d7a5..d5f7c90 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 \ - (op->op_flags & OPf_KNOW ? op->op_flags & OPf_LIST : dowantarray()) + (op->op_flags & OPf_WANT \ + ? ((op->op_flags & OPf_WANT) == OPf_WANT_LIST \ + ? G_ARRAY \ + : G_SCALAR) \ + : dowantarray()) /* Private for lvalues */ #define OPpLVAL_INTRO 128 /* Lvalue must be localized */