Change 34382 by [EMAIL PROTECTED] on 2008/09/20 12:33:15
Revert the code and test changes of 33727 [integration of 33726 to
maint-5.10, which integrated 33709, 33710, 33724:
Fix the line-number-in-elsif longstanding bug.
This patch does two things :
- newSTATEOP now nullifies the state op it
just created if OPf_SPECIAL is passed to it
in flags
- the parser now inserts a nullified stateop
in the expression block of an elsif
]. Leave perltodo as is - the TODO is done in blead, where it matters.
Affected files ...
... //depot/maint-5.8/perl/op.c#233 edit
... //depot/maint-5.8/perl/perly.c#12 edit
... //depot/maint-5.8/perl/perly.y#12 edit
... //depot/maint-5.8/perl/vms/perly_c.vms#8 edit
Differences ...
==== //depot/maint-5.8/perl/op.c#233 (text) ====
Index: perl/op.c
--- perl/op.c#232~34298~ 2008-09-06 07:47:42.000000000 -0700
+++ perl/op.c 2008-09-20 05:33:15.000000000 -0700
@@ -3714,8 +3714,6 @@
}
}
- if (flags & OPf_SPECIAL)
- op_null((OP*)cop);
return prepend_elem(OP_LINESEQ, (OP*)cop, o);
}
==== //depot/maint-5.8/perl/perly.c#12 (text) ====
Index: perl/perly.c
--- perl/perly.c#11~33727~ 2008-04-22 09:07:01.000000000 -0700
+++ perl/perly.c 2008-09-20 05:33:15.000000000 -0700
@@ -1771,7 +1771,7 @@
case 23:
#line 229 "perly.y"
{ PL_copline = (line_t)yyvsp[-5].ival;
- yyval.opval = newCONDOP(0,
newSTATEOP(OPf_SPECIAL,NULL,yyvsp[-3].opval), scope(yyvsp[-1].opval),
yyvsp[0].opval);
+ yyval.opval = newCONDOP(0, yyvsp[-3].opval,
scope(yyvsp[-1].opval), yyvsp[0].opval);
PL_hints |= HINT_BLOCK_SCOPE; }
break;
case 24:
==== //depot/maint-5.8/perl/perly.y#12 (text) ====
Index: perl/perly.y
--- perl/perly.y#11~33727~ 2008-04-22 09:07:01.000000000 -0700
+++ perl/perly.y 2008-09-20 05:33:15.000000000 -0700
@@ -227,7 +227,7 @@
{ ($2)->op_flags |= OPf_PARENS; $$ = scope($2); }
| ELSIF '(' mexpr ')' mblock else
{ PL_copline = (line_t)$1;
- $$ = newCONDOP(0, newSTATEOP(OPf_SPECIAL,NULL,$3),
scope($5), $6);
+ $$ = newCONDOP(0, $3, scope($5), $6);
PL_hints |= HINT_BLOCK_SCOPE; }
;
==== //depot/maint-5.8/perl/vms/perly_c.vms#8 (text) ====
Index: perl/vms/perly_c.vms
--- perl/vms/perly_c.vms#7~33727~ 2008-04-22 09:07:01.000000000 -0700
+++ perl/vms/perly_c.vms 2008-09-20 05:33:15.000000000 -0700
@@ -1781,7 +1781,7 @@
case 23:
#line 229 "perly.y"
{ PL_copline = (line_t)yyvsp[-5].ival;
- yyval.opval = newCONDOP(0,
newSTATEOP(OPf_SPECIAL,NULL,yyvsp[-3].opval), scope(yyvsp[-1].opval),
yyvsp[0].opval);
+ yyval.opval = newCONDOP(0, yyvsp[-3].opval,
scope(yyvsp[-1].opval), yyvsp[0].opval);
PL_hints |= HINT_BLOCK_SCOPE; }
break;
case 24:
End of Patch.