SvLEN( c ) = 2;
####
SvLEN( c ) = 0;
####
void strIter(SV* code, SV* string) {
dSP;
STRLEN i;
char* src = SvPV(string, i);
SV* c;
c = newSV_type(SVt_PV);
SvCUR(c) = 1;
SvLEN(c) = 0;
SvPOK_only(c);
SAVE_DEFSV;
DEFSV_set(c);
while (i--) {
SvPVX(c) = src++;
PUSHMARK(SP);
call_sv(code, G_NOARGS | G_VOID | G_DISCARD);
}
}
####
void strIter(SV* code, SV* string) {
dSP;
STRLEN i;
char* src = SvPV(string, i);
char* dst;
SV* c;
c = newSVpvn(" ", 1);
dst = SvPVX(c);
SAVE_DEFSV;
DEFSV_set(c);
while (i--) {
*dst = *(src++);
PUSHMARK(SP);
call_sv(code, G_NOARGS | G_VOID | G_DISCARD);
}
}