diff options
author | Gurusamy Sarathy <gsar@cpan.org> | 1998-05-15 02:15:25 +0000 |
---|---|---|
committer | Gurusamy Sarathy <gsar@cpan.org> | 1998-05-15 02:15:25 +0000 |
commit | 6ff81951f79dec32e15a779d288c1047f0e4fefb (patch) | |
tree | 53c645778f7a018e0bd74a2ec2fe9c64833ea13d /sv.c | |
parent | 48c036b1eb8f866b948f33704ee6152323a5aad9 (diff) | |
download | perl-6ff81951f79dec32e15a779d288c1047f0e4fefb.tar.gz |
[win32] merge changes#906,907,909,910 from maintbranch
p4raw-link: @910 on //depot/maint-5.004/perl: ae941ac0da8f453f0d31df7b7293e50b3e5a46f1
p4raw-link: @909 on //depot/maint-5.004/perl: 8b3d696ffd11cf2e49f6eaa575b829ab0a55352d
p4raw-link: @907 on //depot/maint-5.004/perl: 3cb3c1abada5765ba4166ebe59e2e20d737ec21b
p4raw-link: @906 on //depot/maint-5.004/perl: ae389c8a29b487f4434c465442dfb611507a4a38
p4raw-id: //depot/win32/perl@977
Diffstat (limited to 'sv.c')
-rw-r--r-- | sv.c | 9 |
1 files changed, 8 insertions, 1 deletions
@@ -2638,10 +2638,17 @@ sv_insert(SV *bigstr, STRLEN offset, STRLEN len, char *little, STRLEN littlelen) register char *midend; register char *bigend; register I32 i; + STRLEN curlen; + if (!bigstr) croak("Can't modify non-existent substring"); - SvPV_force(bigstr, na); + SvPV_force(bigstr, curlen); + if (offset + len > curlen) { + SvGROW(bigstr, offset+len+1); + Zero(SvPVX(bigstr)+curlen, offset+len-curlen, char); + SvCUR_set(bigstr, offset+len); + } i = littlelen - len; if (i > 0) { /* string might grow */ |