if (hibit) {
STRLEN len;
+
if (SvREADONLY(sv) && SvFAKE(sv)) {
sv_force_normal(sv);
s = SvPVX(sv);
{
if (SvPOK(sv) && SvUTF8(sv)) {
if (SvCUR(sv)) {
- char *c = SvPVX(sv);
- STRLEN len = SvCUR(sv);
+ char *s;
+ STRLEN len;
- if (!utf8_to_bytes((U8*)c, &len)) {
+ if (SvREADONLY(sv) && SvFAKE(sv))
+ sv_force_normal(sv);
+ s = SvPV(sv, len);
+ if (!utf8_to_bytes((U8*)s, &len)) {
if (fail_ok)
return FALSE;
else {
}
I32
-S_expect_number(char** pattern)
+S_expect_number(pTHX_ char** pattern)
{
I32 var = 0;
switch (**pattern) {
}
return var;
}
-#define EXPECT_NUMBER(pattern, var) (var = S_expect_number(&pattern))
+#define EXPECT_NUMBER(pattern, var) (var = S_expect_number(aTHX_ &pattern))
/*
=for apidoc sv_vcatpvfn
bool left = FALSE;
bool vectorize = FALSE;
bool vectorarg = FALSE;
- bool utf = FALSE;
+ bool vec_utf = FALSE;
char fill = ' ';
char plus = 0;
char intsize = 0;
else
vecsv = (evix ? evix <= svmax : svix < svmax) ?
svargs[ewix ? ewix-1 : svix++] : &PL_sv_undef;
- dotstr = (U8*)SvPVx(vecsv, dotstrlen);
+ dotstr = SvPVx(vecsv, dotstrlen);
if (DO_UTF8(vecsv))
is_utf = TRUE;
}
if (args) {
vecsv = va_arg(*args, SV*);
vecstr = (U8*)SvPVx(vecsv,veclen);
- utf = DO_UTF8(vecsv);
+ vec_utf = DO_UTF8(vecsv);
}
else if (efix ? efix <= svmax : svix < svmax) {
vecsv = svargs[efix ? efix-1 : svix++];
vecstr = (U8*)SvPVx(vecsv,veclen);
- utf = DO_UTF8(vecsv);
+ vec_utf = DO_UTF8(vecsv);
}
else {
vecstr = (U8*)"";
veclen = 0;
}
- if (DO_UTF8(vecsv))
- is_utf = TRUE;
}
if (asterisk) {
STRLEN ulen;
if (!veclen)
continue;
- if (utf)
+ if (vec_utf)
iv = (IV)utf8_to_uv(vecstr, veclen, &ulen, 0);
else {
iv = *vecstr;
vector:
if (!veclen)
continue;
- if (utf)
+ if (vec_utf)
uv = utf8_to_uv(vecstr, veclen, &ulen, 0);
else {
uv = *vecstr;
#endif
}
}
- else
+ else
sv_setuv_mg(argsv, (UV)i);
continue; /* not "break" */
/* ... right here, because formatting flags should not apply */
SvGROW(sv, SvCUR(sv) + elen + 1);
p = SvEND(sv);
- memcpy(p, eptr, elen);
+ Copy(eptr, p, elen, char);
p += elen;
*p = '\0';
SvCUR(sv) = p - SvPVX(sv);
*p++ = '0';
}
if (elen) {
- memcpy(p, eptr, elen);
+ Copy(eptr, p, elen, char);
p += elen;
}
if (gap && left) {
}
if (vectorize) {
if (veclen) {
- memcpy(p, dotstr, dotstrlen);
+ Copy(dotstr, p, dotstrlen, char);
p += dotstrlen;
}
else
if (proto_perl->Ipsig_pend) {
Newz(0, PL_psig_pend, SIG_SIZE, int);
- }
+ }
else {
PL_psig_pend = (int*)NULL;
}