diff options
author | Gurusamy Sarathy <gsar@cpan.org> | 2000-05-07 19:47:07 +0000 |
---|---|---|
committer | Gurusamy Sarathy <gsar@cpan.org> | 2000-05-07 19:47:07 +0000 |
commit | e84ff256a2982e8c96a05c380a48c0d1a6cb3af9 (patch) | |
tree | 565cc125982c986c2c93e9eb6abd8d5d5bd39909 /sv.c | |
parent | 7494063982d7975076fa26eea0959791b05a536a (diff) | |
download | perl-e84ff256a2982e8c96a05c380a48c0d1a6cb3af9.tar.gz |
concat doesn't preserve utf8-ness, and doesn't invalidate
[NI]OK; added tests for both
p4raw-id: //depot/perl@6090
Diffstat (limited to 'sv.c')
-rw-r--r-- | sv.c | 9 |
1 files changed, 6 insertions, 3 deletions
@@ -3104,11 +3104,13 @@ Perl_sv_catsv(pTHX_ SV *dstr, register SV *sstr) if (!sstr) return; if ((s = SvPV(sstr, len))) { - if (SvUTF8(sstr)) + if (DO_UTF8(sstr)) { sv_utf8_upgrade(dstr); - sv_catpvn(dstr,s,len); - if (SvUTF8(sstr)) + sv_catpvn(dstr,s,len); SvUTF8_on(dstr); + } + else + sv_catpvn(dstr,s,len); } } @@ -3465,6 +3467,7 @@ Perl_sv_insert(pTHX_ SV *bigstr, STRLEN offset, STRLEN len, char *little, STRLEN if (!bigstr) Perl_croak(aTHX_ "Can't modify non-existent substring"); SvPV_force(bigstr, curlen); + SvPOK_only_UTF8(bigstr); if (offset + len > curlen) { SvGROW(bigstr, offset+len+1); Zero(SvPVX(bigstr)+curlen, offset+len-curlen, char); |