summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorGurusamy Sarathy <gsar@cpan.org>1999-11-14 03:37:37 +0000
committerGurusamy Sarathy <gsar@cpan.org>1999-11-14 03:37:37 +0000
commitff689196a75c2757dfba08a8f95f0eb42fb81136 (patch)
tree527db5af6a2f2653b182be7de8bfdeb3e1633faf
parent81be85b825fc39c8f8e4c3fb4748df6a7fa34de4 (diff)
downloadperl-ff689196a75c2757dfba08a8f95f0eb42fb81136.tar.gz
fix bug in change#4515 (STOP blocks now see @ARGV like the rest)
p4raw-link: @4515 on //depot/perl: 4f25aa189c4a92535547c706ad37c13b7caee387 p4raw-id: //depot/perl@4578
-rw-r--r--perly.c2
-rw-r--r--perly.y2
-rwxr-xr-xt/op/misc.t12
-rw-r--r--vms/perly_c.vms2
4 files changed, 10 insertions, 8 deletions
diff --git a/perly.c b/perly.c
index f9734b3631..2e47b11aba 100644
--- a/perly.c
+++ b/perly.c
@@ -1826,7 +1826,7 @@ case 59:
#line 338 "perly.y"
{ STRLEN n_a; char *name = SvPV(((SVOP*)yyvsp[0].opval)->op_sv,n_a);
if (strEQ(name, "BEGIN") || strEQ(name, "END")
- || strEQ(name, "INIT"))
+ || strEQ(name, "STOP") || strEQ(name, "INIT"))
CvSPECIAL_on(PL_compcv);
yyval.opval = yyvsp[0].opval; }
break;
diff --git a/perly.y b/perly.y
index c8163e135e..b238276229 100644
--- a/perly.y
+++ b/perly.y
@@ -337,7 +337,7 @@ startformsub: /* NULL */ /* start a format subroutine scope */
subname : WORD { STRLEN n_a; char *name = SvPV(((SVOP*)$1)->op_sv,n_a);
if (strEQ(name, "BEGIN") || strEQ(name, "END")
- || strEQ(name, "INIT"))
+ || strEQ(name, "STOP") || strEQ(name, "INIT"))
CvSPECIAL_on(PL_compcv);
$$ = $1; }
;
diff --git a/t/op/misc.t b/t/op/misc.t
index adfcd174fc..ab849777da 100755
--- a/t/op/misc.t
+++ b/t/op/misc.t
@@ -353,16 +353,18 @@ Unmatched right curly bracket at (re_eval 1) line 1, at end of line
syntax error at (re_eval 1) line 1, near ""{"}"
Compilation failed in regexp at - line 1.
########
-BEGIN { @ARGV = qw(a b c) }
+BEGIN { @ARGV = qw(a b c d e) }
BEGIN { print "argv <@ARGV>\nbegin <",shift,">\n" }
END { print "end <",shift,">\nargv <@ARGV>\n" }
INIT { print "init <",shift,">\n" }
+STOP { print "stop <",shift,">\n" }
EXPECT
-argv <a b c>
+argv <a b c d e>
begin <a>
-init <b>
-end <c>
-argv <>
+stop <b>
+init <c>
+end <d>
+argv <e>
########
-l
# fdopen from a system descriptor to a system descriptor used to close
diff --git a/vms/perly_c.vms b/vms/perly_c.vms
index 4787247429..ebc7d57cc3 100644
--- a/vms/perly_c.vms
+++ b/vms/perly_c.vms
@@ -1828,7 +1828,7 @@ case 59:
#line 338 "perly.y"
{ STRLEN n_a; char *name = SvPV(((SVOP*)yyvsp[0].opval)->op_sv,n_a);
if (strEQ(name, "BEGIN") || strEQ(name, "END")
- || strEQ(name, "INIT"))
+ || strEQ(name, "STOP") || strEQ(name, "INIT"))
CvSPECIAL_on(PL_compcv);
yyval.opval = yyvsp[0].opval; }
break;