return 0;
if (!SvPOKp(sv))
(void)SvPV_force(sv, len);
- (void)SvPOK_only(sv);
+ if (!(PL_op->op_private & OPpTRANS_IDENTICAL))
+ (void)SvPOK_only_UTF8(sv);
DEBUG_t( Perl_deb(aTHX_ "2.TBL\n"));
if (items-- > 0) {
char *s;
- if (*mark) {
- s = SvPV(*mark, tmplen);
- sv_setpvn(sv, s, tmplen);
- }
- else
- sv_setpv(sv, "");
+ sv_setpv(sv, "");
+ if (*mark)
+ sv_catsv(sv, *mark);
mark++;
}
else
SvTAINTED_on(sv);
}
+/* XXX SvUTF8 support missing! */
UV
Perl_do_vecget(pTHX_ SV *sv, I32 offset, I32 size)
{
return retnum;
}
+/* XXX SvUTF8 support missing! */
void
Perl_do_vecset(pTHX_ SV *sv)
{
if (!targ)
return;
s = (unsigned char*)SvPV_force(targ, targlen);
+ (void)SvPOK_only(targ);
lval = SvUV(sv);
offset = LvTARGOFF(sv);
size = LvTARGLEN(sv);
STRLEN dulen = 0;
I32 ulen;
+ if (optype != OP_BIT_AND)
+ dc = SvGROW(sv, leftlen+rightlen+1);
+
switch (optype) {
case OP_BIT_AND:
while (lulen && rulen) {