summaryrefslogtreecommitdiff
path: root/pp.c
diff options
context:
space:
mode:
authorGurusamy Sarathy <gsar@cpan.org>1998-05-07 03:40:15 +0000
committerGurusamy Sarathy <gsar@cpan.org>1998-05-07 03:40:15 +0000
commit5f0b1d4e7fd69248b5b73a2a2a30a45af5a96c9f (patch)
tree5aeee3e93b082070687c888d2e91fcce3658810f /pp.c
parentc6601927a584c0fd18d5a6bb3b4c95cff46a2c6a (diff)
downloadperl-5f0b1d4e7fd69248b5b73a2a2a30a45af5a96c9f.tar.gz
[win32] fix C<print "foo ${\()}"> (pp_refgen fumbles when G_SCALAR, no args)
p4raw-id: //depot/win32/perl@916
Diffstat (limited to 'pp.c')
-rw-r--r--pp.c9
1 files changed, 7 insertions, 2 deletions
diff --git a/pp.c b/pp.c
index 3dc5a72b51..7d9b529ba1 100644
--- a/pp.c
+++ b/pp.c
@@ -442,8 +442,13 @@ PP(pp_refgen)
{
djSP; dMARK;
if (GIMME != G_ARRAY) {
- MARK[1] = *SP;
- SP = MARK + 1;
+ if (++MARK <= SP)
+ *MARK = *SP;
+ else
+ *MARK = &sv_undef;
+ *MARK = refto(*MARK);
+ SP = MARK;
+ RETURN;
}
EXTEND_MORTAL(SP - MARK);
while (++MARK <= SP)