diff options
author | Ilya Zakharevich <ilya@math.berkeley.edu> | 1998-07-08 03:03:51 -0400 |
---|---|---|
committer | Gurusamy Sarathy <gsar@cpan.org> | 1998-07-09 01:06:47 +0000 |
commit | 1bd3ad17f2b89c5c7610c541aa9f8fd2ae783e7f (patch) | |
tree | 6b1a179318db72e39e95f01053ffc90ac04213f4 /sv.c | |
parent | 7b973d54ee9f4af760c175291b3c14ce8a682f33 (diff) | |
download | perl-1bd3ad17f2b89c5c7610c541aa9f8fd2ae783e7f.tar.gz |
manually apply patch with a dependency on unapplied patch
Message-Id: <199807081103.HAA25145@monk.mps.ohio-state.edu>
Subject: [PATCH 5.004_70] make quoted RE embeddable
p4raw-id: //depot/perl@1383
Diffstat (limited to 'sv.c')
-rw-r--r-- | sv.c | 16 |
1 files changed, 12 insertions, 4 deletions
@@ -1706,10 +1706,18 @@ sv_2pv(register SV *sv, STRLEN *lp) == (SVs_OBJECT|SVs_RMG)) && strEQ(s=HvNAME(SvSTASH(sv)), "Regexp") && (mg = mg_find(sv, 'r'))) { - regexp *re = (regexp *)mg->mg_obj; - - *lp = re->prelen; - return re->precomp; + if (!mg->mg_ptr) { + regexp *re = (regexp *)mg->mg_obj; + + mg->mg_len = re->prelen + 4; + New(616, mg->mg_ptr, mg->mg_len + 1, char); + Copy("(?:", mg->mg_ptr, 3, char); + Copy(re->precomp, mg->mg_ptr+3, re->prelen, char); + mg->mg_ptr[mg->mg_len - 1] = ')'; + mg->mg_ptr[mg->mg_len] = 0; + } + *lp = mg->mg_len; + return mg->mg_ptr; } /* Fall through */ case SVt_NULL: |