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);
HE* entry;
(void)hv_iterinit(hv);
/*SUPPRESS 560*/
- while (entry = hv_iternext(hv))
+ while ((entry = hv_iternext(hv)))
do_chop(astr,hv_iterval(hv,entry));
return;
}
HE* entry;
(void)hv_iterinit(hv);
/*SUPPRESS 560*/
- while (entry = hv_iternext(hv))
+ while ((entry = hv_iternext(hv)))
count += do_chomp(hv_iterval(hv,entry));
return count;
}
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) {
EXTEND(SP, HvKEYS(keys) * (dokeys + dovalues));
PUTBACK; /* hv_iternext and hv_iterval might clobber stack_sp */
- while (entry = hv_iternext(keys)) {
+ while ((entry = hv_iternext(keys))) {
SPAGAIN;
if (dokeys)
XPUSHs(hv_iterkeysv(entry)); /* won't clobber stack_sp */