| line |
true |
false |
branch |
|
51
|
0 |
190 |
PUSHMARK(sp); |
|
52
|
0 |
190 |
XPUSHs(sv); |
|
53
|
190 |
190 |
while (enc->name[i]) { |
|
55
|
0 |
190 |
XPUSHs(sv_2mortal(newSVpvn(name, strlen(name)))); |
|
75
|
15 |
8 |
if (!modify) { |
|
78
|
4 |
11 |
if (SvTAINTED(*src)) |
|
|
0 |
4 |
if (SvTAINTED(*src)) |
|
79
|
0 |
0 |
SvTAINTED_on(tmp); |
|
83
|
23 |
0 |
if (*slen) { |
|
84
|
0 |
23 |
if (!utf8_to_bytes(*s, slen)) |
|
94
|
13 |
7 |
if (!modify) { |
|
96
|
3 |
10 |
if (SvTAINTED(*src)) |
|
|
0 |
3 |
if (SvTAINTED(*src)) |
|
97
|
0 |
0 |
SvTAINTED_on(tmp); |
|
101
|
18 |
2 |
*s = (U8 *)SvPV_nomg(*src, *slen); |
|
116
|
0 |
268 |
PUSHMARK(sp); |
|
117
|
0 |
268 |
XPUSHs(sv_2mortal(newSVuv(ch))); |
|
121
|
0 |
268 |
if (argc != 1){ |
|
127
|
268 |
0 |
FREETMPS; |
|
141
|
0 |
10 |
PUSHMARK(sp); |
|
142
|
14 |
10 |
for (i=0; i
|
|
143
|
0 |
14 |
XPUSHs(sv_2mortal(newSVuv(s[i]))); |
|
147
|
0 |
10 |
if (argc != 1){ |
|
153
|
10 |
0 |
FREETMPS; |
|
173
|
0 |
58864 |
U8 *trm = term ? (U8*) SvPV(term, trmlen) : NULL; |
|
|
0 |
0 |
U8 *trm = term ? (U8*) SvPV(term, trmlen) : NULL; |
|
175
|
235 |
58629 |
if (SvTAINTED(src)) SvTAINTED_on(dst); /* propagate taintedness */ |
|
|
217 |
18 |
if (SvTAINTED(src)) SvTAINTED_on(dst); /* propagate taintedness */ |
|
|
217 |
0 |
if (SvTAINTED(src)) SvTAINTED_on(dst); /* propagate taintedness */ |
|
177
|
0 |
58864 |
if (offset) { |
|
179
|
0 |
0 |
if (slen > *offset){ /* safeguard against slen overflow */ |
|
187
|
0 |
58864 |
if (slen == 0){ |
|
193
|
3434 |
58711 |
while( (code = do_encode(dir, s, &slen, d, dlen, &dlen, !check, |
|
199
|
3434 |
0 |
if (code == ENCODE_FALLBACK || code == ENCODE_PARTIAL || |
|
|
3323 |
111 |
if (code == ENCODE_FALLBACK || code == ENCODE_PARTIAL || |
|
|
3323 |
0 |
if (code == ENCODE_FALLBACK || code == ENCODE_PARTIAL || |
|
216
|
1143 |
0 |
if (sdone != 0) { /* has src ever been processed ? */ |
|
228
|
1143 |
0 |
d = (U8 *) SvGROW(dst, SvLEN(dst) + more); |
|
|
1143 |
0 |
d = (U8 *) SvGROW(dst, SvLEN(dst) + more); |
|
230
|
0 |
1143 |
if (ddone >= SvLEN(dst)) { |
|
241
|
1577 |
603 |
if (dir == enc->f_utf8) { |
|
247
|
0 |
1577 |
if (clen > tlen - sdone - slen) break; |
|
248
|
1 |
1576 |
if (check & ENCODE_DIE_ON_ERR) { |
|
253
|
129 |
1447 |
if (check & ENCODE_WARN_ON_ERR){ |
|
257
|
2 |
1574 |
if (check & ENCODE_RETURN_ON_ERR){ |
|
260
|
1034 |
540 |
if (check & (ENCODE_PERLQQ|ENCODE_HTMLCREF|ENCODE_XMLCREF)){ |
|
266
|
136 |
898 |
: newSVpvf(check & ENCODE_PERLQQ ? "\\x{%04" UVxf "}" : |
|
|
260 |
638 |
: newSVpvf(check & ENCODE_PERLQQ ? "\\x{%04" UVxf "}" : |
|
|
131 |
129 |
: newSVpvf(check & ENCODE_PERLQQ ? "\\x{%04" UVxf "}" : |
|
269
|
1031 |
3 |
substr = SvPV(subchar, sublen); |
|
270
|
4 |
1030 |
if (SvUTF8(subchar) && sublen && !utf8_to_bytes((U8 *)substr, &sublen)) { /* make sure no decoded string gets in */ |
|
|
4 |
0 |
if (SvUTF8(subchar) && sublen && !utf8_to_bytes((U8 *)substr, &sublen)) { /* make sure no decoded string gets in */ |
|
|
0 |
4 |
if (SvUTF8(subchar) && sublen && !utf8_to_bytes((U8 *)substr, &sublen)) { /* make sure no decoded string gets in */ |
|
287
|
0 |
603 |
if (check & ENCODE_DIE_ON_ERR){ |
|
292
|
0 |
603 |
if (check & ENCODE_WARN_ON_ERR){ |
|
298
|
39 |
564 |
if (check & ENCODE_RETURN_ON_ERR){ |
|
301
|
514 |
50 |
if (check & |
|
308
|
130 |
384 |
: newSVpvf("\\x%02" UVXf, (UV)s[slen]); |
|
309
|
0 |
514 |
substr = SvPVutf8(subchar, sublen); |
|
328
|
0 |
0 |
Perl_croak(aTHX_ "Unexpected code %d converting %s %s", |
|
335
|
18258 |
40605 |
if (check && !(check & ENCODE_LEAVE_SRC)){ |
|
|
18178 |
80 |
if (check && !(check & ENCODE_LEAVE_SRC)){ |
|
337
|
144 |
18034 |
if (sdone) { |
|
341
|
8 |
18170 |
SvSETMAGIC(src); |
|
357
|
0 |
58863 |
if (offset) |
|
362
|
0 |
58863 |
if (retcode) *retcode = code; |
|
372
|
31133 |
0 |
if (!sv || SvTYPE(sv) != SVt_PVHV) |
|
|
0 |
31133 |
if (!sv || SvTYPE(sv) != SVt_PVHV) |
|
376
|
76 |
31057 |
if (!svp) |
|
378
|
31057 |
0 |
return SvTRUE(*svp); |
|
|
0 |
31057 |
return SvTRUE(*svp); |
|
|
0 |
0 |
return SvTRUE(*svp); |
|
|
0 |
31057 |
return SvTRUE(*svp); |
|
|
0 |
0 |
return SvTRUE(*svp); |
|
|
0 |
0 |
return SvTRUE(*svp); |
|
|
0 |
31057 |
return SvTRUE(*svp); |
|
|
0 |
0 |
return SvTRUE(*svp); |
|
|
0 |
0 |
return SvTRUE(*svp); |
|
|
0 |
0 |
return SvTRUE(*svp); |
|
|
0 |
0 |
return SvTRUE(*svp); |
|
|
0 |
0 |
return SvTRUE(*svp); |
|
|
31057 |
0 |
return SvTRUE(*svp); |
|
|
31057 |
0 |
return SvTRUE(*svp); |
|
|
0 |
31057 |
return SvTRUE(*svp); |
|
|
0 |
0 |
return SvTRUE(*svp); |
|
|
0 |
0 |
return SvTRUE(*svp); |
|
|
31057 |
0 |
return SvTRUE(*svp); |
|
|
0 |
0 |
return SvTRUE(*svp); |
|
411
|
46362 |
12 |
uv = NATIVE_TO_UTF(*s) & UTF_START_MASK(UTF8SKIP(s)); |
|
416
|
92396 |
46212 |
while (len--) { |
|
417
|
162 |
92234 |
if (!UTF8_IS_CONTINUATION(*s)) { |
|
421
|
1 |
92233 |
if (uv & UTF_ACCUMULATION_OVERFLOW_MASK) |
|
429
|
46211 |
1 |
if (overflowed || *rlen > (STRLEN)UNISKIP(uv)) { |
|
|
46194 |
17 |
if (overflowed || *rlen > (STRLEN)UNISKIP(uv)) { |
|
|
45429 |
765 |
if (overflowed || *rlen > (STRLEN)UNISKIP(uv)) { |
|
|
527 |
44902 |
if (overflowed || *rlen > (STRLEN)UNISKIP(uv)) { |
|
|
18 |
509 |
if (overflowed || *rlen > (STRLEN)UNISKIP(uv)) { |
|
|
4 |
14 |
if (overflowed || *rlen > (STRLEN)UNISKIP(uv)) { |
|
|
0 |
4 |
if (overflowed || *rlen > (STRLEN)UNISKIP(uv)) { |
|
|
0 |
0 |
if (overflowed || *rlen > (STRLEN)UNISKIP(uv)) { |
|
|
21 |
46190 |
if (overflowed || *rlen > (STRLEN)UNISKIP(uv)) { |
|
449
|
14 |
31115 |
if (SvROK(check_sv)) { |
|
456
|
31115 |
0 |
check = SvIV_nomg(check_sv); |
|
462
|
31129 |
0 |
dlen = (s && e && s < e) ? e-s+1 : 1; |
|
|
31129 |
0 |
dlen = (s && e && s < e) ? e-s+1 : 1; |
|
|
31127 |
2 |
dlen = (s && e && s < e) ? e-s+1 : 1; |
|
463
|
31129 |
0 |
d = (U8 *) SvGROW(dst, dlen); |
|
|
0 |
31129 |
d = (U8 *) SvGROW(dst, dlen); |
|
465
|
112929 |
31040 |
while (s < e) { |
|
466
|
66382 |
46547 |
if (UTF8_IS_INVARIANT(*s)) { |
|
473
|
46393 |
154 |
if (! UTF8_IS_CONTINUATION(*s)) { |
|
479
|
56 |
46337 |
if ((s + skip) > e) { |
|
481
|
37 |
19 |
if (e-s >= 2) |
|
486
|
47 |
9 |
if ((stop_at_partial || (check & ENCODE_STOP_AT_PARTIAL)) && ulen == (STRLEN)(e-s)) |
|
|
0 |
47 |
if ((stop_at_partial || (check & ENCODE_STOP_AT_PARTIAL)) && ulen == (STRLEN)(e-s)) |
|
|
4 |
5 |
if ((stop_at_partial || (check & ENCODE_STOP_AT_PARTIAL)) && ulen == (STRLEN)(e-s)) |
|
493
|
155 |
46182 |
if (uv == 0) |
|
495
|
2527 |
43655 |
else if (strict && !UNICODE_IS_STRICT(uv)) |
|
|
2516 |
11 |
else if (strict && !UNICODE_IS_STRICT(uv)) |
|
|
718 |
1798 |
else if (strict && !UNICODE_IS_STRICT(uv)) |
|
|
718 |
0 |
else if (strict && !UNICODE_IS_STRICT(uv)) |
|
|
2498 |
18 |
else if (strict && !UNICODE_IS_STRICT(uv)) |
|
|
2497 |
1 |
else if (strict && !UNICODE_IS_STRICT(uv)) |
|
|
2497 |
18 |
else if (strict && !UNICODE_IS_STRICT(uv)) |
|
509
|
361 |
0 |
if (uv == 0) |
|
511
|
361 |
0 |
if (encode || ulen == 0) |
|
|
0 |
361 |
if (encode || ulen == 0) |
|
515
|
369 |
22 |
if (!encode && (check & (ENCODE_DIE_ON_ERR|ENCODE_WARN_ON_ERR|ENCODE_PERLQQ))) |
|
|
191 |
178 |
if (!encode && (check & (ENCODE_DIE_ON_ERR|ENCODE_WARN_ON_ERR|ENCODE_PERLQQ))) |
|
516
|
267 |
191 |
for (i=0; i
|
|
517
|
65 |
326 |
if (check & ENCODE_DIE_ON_ERR){ |
|
518
|
14 |
51 |
if (encode) |
|
519
|
14 |
0 |
Perl_croak(aTHX_ ERR_ENCODE_NOMAP, uv, (strict ? "UTF-8" : "utf8")); |
|
521
|
47 |
4 |
Perl_croak(aTHX_ ERR_DECODE_STR_NOMAP, (strict ? "UTF-8" : "utf8"), esc); |
|
523
|
129 |
197 |
if (check & ENCODE_WARN_ON_ERR){ |
|
524
|
0 |
129 |
if (encode) |
|
525
|
0 |
0 |
Perl_warner(aTHX_ packWARN(WARN_UTF8), |
|
528
|
0 |
129 |
Perl_warner(aTHX_ packWARN(WARN_UTF8), |
|
531
|
20 |
306 |
if (check & ENCODE_RETURN_ON_ERR) { |
|
534
|
14 |
292 |
if (check & (ENCODE_PERLQQ|ENCODE_HTMLCREF|ENCODE_XMLCREF)){ |
|
538
|
3 |
11 |
if (encode) { |
|
542
|
2 |
1 |
: newSVpvf(check & ENCODE_PERLQQ |
|
|
1 |
0 |
: newSVpvf(check & ENCODE_PERLQQ |
|
544
|
0 |
1 |
: check & ENCODE_HTMLCREF ? "%" UVuf ";" |
|
|
0 |
0 |
: check & ENCODE_HTMLCREF ? "%" UVuf ";" |
|
546
|
3 |
0 |
substr = SvPV(subchar, sublen); |
|
547
|
0 |
3 |
if (SvUTF8(subchar) && sublen && !utf8_to_bytes((U8 *)substr, &sublen)) { /* make sure no decoded string gets in */ |
|
|
0 |
0 |
if (SvUTF8(subchar) && sublen && !utf8_to_bytes((U8 *)substr, &sublen)) { /* make sure no decoded string gets in */ |
|
|
0 |
0 |
if (SvUTF8(subchar) && sublen && !utf8_to_bytes((U8 *)substr, &sublen)) { /* make sure no decoded string gets in */ |
|
552
|
10 |
1 |
if (fallback_cb != &PL_sv_undef) { |
|
558
|
0 |
1 |
if (check & (ENCODE_HTMLCREF|ENCODE_XMLCREF)) |
|
559
|
0 |
0 |
for (i=0; i
|
|
|
0 |
0 |
for (i=0; i
|
|
562
|
0 |
11 |
substr = SvPVutf8(subchar, sublen); |
|
569
|
14 |
0 |
d = (U8 *) SvGROW(dst, dlen) + SvCUR(dst); |
|
|
0 |
14 |
d = (U8 *) SvGROW(dst, dlen) + SvCUR(dst); |
|
573
|
42 |
250 |
if (SvLEN(dst) < dlen) { |
|
608
|
9 |
30538 |
SvGETMAGIC(src); |
|
|
0 |
9 |
SvGETMAGIC(src); |
|
609
|
0 |
30547 |
SvGETMAGIC(check_sv); |
|
|
0 |
0 |
SvGETMAGIC(check_sv); |
|
610
|
30537 |
10 |
check = SvROK(check_sv) ? ENCODE_PERLQQ|ENCODE_LEAVE_SRC : SvIV_nomg(check_sv); |
|
|
30537 |
0 |
check = SvROK(check_sv) ? ENCODE_PERLQQ|ENCODE_LEAVE_SRC : SvIV_nomg(check_sv); |
|
611
|
109 |
30438 |
modify = (check && !(check & ENCODE_LEAVE_SRC)); |
|
|
94 |
15 |
modify = (check && !(check & ENCODE_LEAVE_SRC)); |
|
613
|
4 |
30543 |
if (!SvOK(src)) |
|
|
4 |
0 |
if (!SvOK(src)) |
|
|
4 |
0 |
if (!SvOK(src)) |
|
615
|
93 |
30450 |
s = modify ? (U8 *)SvPV_force_nomg(src, slen) : (U8 *)SvPV_nomg(src, slen); |
|
|
88 |
5 |
s = modify ? (U8 *)SvPV_force_nomg(src, slen) : (U8 *)SvPV_nomg(src, slen); |
|
|
30444 |
6 |
s = modify ? (U8 *)SvPV_force_nomg(src, slen) : (U8 *)SvPV_nomg(src, slen); |
|
616
|
10 |
30533 |
if (SvUTF8(src)) |
|
624
|
0 |
30543 |
PUSHMARK(sp); |
|
625
|
0 |
30543 |
XPUSHs(obj); |
|
627
|
30543 |
0 |
if (call_method("renewed",G_SCALAR) == 1) { |
|
629
|
30543 |
0 |
renewed = (bool)POPi; |
|
635
|
30543 |
0 |
FREETMPS; LEAVE; |
|
638
|
30541 |
2 |
dst = sv_2mortal(newSV(slen>0?slen:1)); /* newSV() abhors 0 -- inaba */ |
|
642
|
45 |
30447 |
if (modify) { |
|
644
|
22 |
23 |
if (slen) { |
|
648
|
2 |
43 |
SvSETMAGIC(src); |
|
651
|
6 |
30486 |
if (SvTAINTED(src)) SvTAINTED_on(dst); /* propagate taintedness */ |
|
|
3 |
3 |
if (SvTAINTED(src)) SvTAINTED_on(dst); /* propagate taintedness */ |
|
|
3 |
0 |
if (SvTAINTED(src)) SvTAINTED_on(dst); /* propagate taintedness */ |
|
668
|
21 |
1313 |
SvGETMAGIC(src); |
|
|
0 |
21 |
SvGETMAGIC(src); |
|
669
|
0 |
1334 |
SvGETMAGIC(check_sv); |
|
|
0 |
0 |
SvGETMAGIC(check_sv); |
|
670
|
1330 |
4 |
check = SvROK(check_sv) ? ENCODE_PERLQQ|ENCODE_LEAVE_SRC : SvIV_nomg(check_sv); |
|
|
1330 |
0 |
check = SvROK(check_sv) ? ENCODE_PERLQQ|ENCODE_LEAVE_SRC : SvIV_nomg(check_sv); |
|
671
|
40 |
1294 |
modify = (check && !(check & ENCODE_LEAVE_SRC)); |
|
|
26 |
14 |
modify = (check && !(check & ENCODE_LEAVE_SRC)); |
|
673
|
5 |
1329 |
if (!SvOK(src)) |
|
|
5 |
0 |
if (!SvOK(src)) |
|
|
5 |
0 |
if (!SvOK(src)) |
|
675
|
24 |
1305 |
s = modify ? (U8 *)SvPV_force_nomg(src, slen) : (U8 *)SvPV_nomg(src, slen); |
|
|
21 |
3 |
s = modify ? (U8 *)SvPV_force_nomg(src, slen) : (U8 *)SvPV_nomg(src, slen); |
|
|
1287 |
18 |
s = modify ? (U8 *)SvPV_force_nomg(src, slen) : (U8 *)SvPV_nomg(src, slen); |
|
677
|
1328 |
1 |
dst = sv_2mortal(newSV(slen>0?slen:1)); /* newSV() abhors 0 -- inaba */ |
|
678
|
590 |
739 |
if (SvUTF8(src)) { |
|
680
|
586 |
4 |
if (strict_utf8(aTHX_ obj)) { |
|
691
|
739 |
0 |
U8 *d = (U8 *) SvGROW(dst, 2*slen+1); /* +1 or assertion will botch */ |
|
|
10 |
729 |
U8 *d = (U8 *) SvGROW(dst, 2*slen+1); /* +1 or assertion will botch */ |
|
692
|
822 |
739 |
while (s < e) { |
|
699
|
813 |
9 |
if (UNI_IS_INVARIANT(uv)) |
|
712
|
11 |
1304 |
if (modify) { |
|
714
|
0 |
11 |
if (slen) { |
|
718
|
2 |
9 |
SvSETMAGIC(src); |
|
722
|
539 |
776 |
if (SvTAINTED(src)) SvTAINTED_on(dst); /* propagate taintedness */ |
|
|
15 |
524 |
if (SvTAINTED(src)) SvTAINTED_on(dst); /* propagate taintedness */ |
|
|
15 |
0 |
if (SvTAINTED(src)) SvTAINTED_on(dst); /* propagate taintedness */ |
|
754
|
807 |
0 |
enc = INT2PTR(encode_t *, SvIV(SvRV(obj))); |
|
779
|
0 |
0 |
SvGETMAGIC(src); |
|
|
0 |
0 |
SvGETMAGIC(src); |
|
780
|
0 |
0 |
SvGETMAGIC(check_sv); |
|
|
0 |
0 |
SvGETMAGIC(check_sv); |
|
781
|
0 |
0 |
check = SvROK(check_sv) ? ENCODE_PERLQQ|ENCODE_LEAVE_SRC : SvIV_nomg(check_sv); |
|
|
0 |
0 |
check = SvROK(check_sv) ? ENCODE_PERLQQ|ENCODE_LEAVE_SRC : SvIV_nomg(check_sv); |
|
782
|
0 |
0 |
fallback_cb = SvROK(check_sv) ? check_sv : &PL_sv_undef; |
|
783
|
0 |
0 |
modify = (check && !(check & ENCODE_LEAVE_SRC)); |
|
|
0 |
0 |
modify = (check && !(check & ENCODE_LEAVE_SRC)); |
|
784
|
0 |
0 |
enc = INT2PTR(encode_t *, SvIV(SvRV(obj))); |
|
785
|
0 |
0 |
offset = (STRLEN)SvIV(off); |
|
787
|
0 |
0 |
if (!SvOK(src)) |
|
|
0 |
0 |
if (!SvOK(src)) |
|
|
0 |
0 |
if (!SvOK(src)) |
|
789
|
0 |
0 |
s = modify ? (U8 *)SvPV_force_nomg(src, slen) : (U8 *)SvPV_nomg(src, slen); |
|
|
0 |
0 |
s = modify ? (U8 *)SvPV_force_nomg(src, slen) : (U8 *)SvPV_nomg(src, slen); |
|
|
0 |
0 |
s = modify ? (U8 *)SvPV_force_nomg(src, slen) : (U8 *)SvPV_nomg(src, slen); |
|
790
|
0 |
0 |
if (SvUTF8(src)) |
|
814
|
122 |
23677 |
SvGETMAGIC(src); |
|
|
0 |
122 |
SvGETMAGIC(src); |
|
815
|
0 |
23799 |
SvGETMAGIC(check_sv); |
|
|
0 |
0 |
SvGETMAGIC(check_sv); |
|
816
|
23793 |
6 |
check = SvROK(check_sv) ? ENCODE_PERLQQ|ENCODE_LEAVE_SRC : SvIV_nomg(check_sv); |
|
|
23785 |
8 |
check = SvROK(check_sv) ? ENCODE_PERLQQ|ENCODE_LEAVE_SRC : SvIV_nomg(check_sv); |
|
817
|
6 |
23793 |
fallback_cb = SvROK(check_sv) ? check_sv : &PL_sv_undef; |
|
818
|
903 |
22896 |
modify = (check && !(check & ENCODE_LEAVE_SRC)); |
|
|
845 |
58 |
modify = (check && !(check & ENCODE_LEAVE_SRC)); |
|
819
|
23799 |
0 |
enc = INT2PTR(encode_t *, SvIV(SvRV(obj))); |
|
821
|
107 |
23692 |
if (!SvOK(src)) |
|
|
107 |
0 |
if (!SvOK(src)) |
|
|
107 |
0 |
if (!SvOK(src)) |
|
823
|
843 |
22849 |
s = modify ? (U8 *)SvPV_force_nomg(src, slen) : (U8 *)SvPV_nomg(src, slen); |
|
|
835 |
8 |
s = modify ? (U8 *)SvPV_force_nomg(src, slen) : (U8 *)SvPV_nomg(src, slen); |
|
|
22733 |
116 |
s = modify ? (U8 *)SvPV_force_nomg(src, slen) : (U8 *)SvPV_nomg(src, slen); |
|
824
|
13 |
23679 |
if (SvUTF8(src)) |
|
845
|
123 |
35156 |
SvGETMAGIC(src); |
|
|
0 |
123 |
SvGETMAGIC(src); |
|
846
|
0 |
35279 |
SvGETMAGIC(check_sv); |
|
|
0 |
0 |
SvGETMAGIC(check_sv); |
|
847
|
35270 |
9 |
check = SvROK(check_sv) ? ENCODE_PERLQQ|ENCODE_LEAVE_SRC : SvIV_nomg(check_sv); |
|
|
35270 |
0 |
check = SvROK(check_sv) ? ENCODE_PERLQQ|ENCODE_LEAVE_SRC : SvIV_nomg(check_sv); |
|
848
|
9 |
35270 |
fallback_cb = SvROK(check_sv) ? check_sv : &PL_sv_undef; |
|
849
|
17360 |
17919 |
modify = (check && !(check & ENCODE_LEAVE_SRC)); |
|
|
17338 |
22 |
modify = (check && !(check & ENCODE_LEAVE_SRC)); |
|
850
|
35279 |
0 |
enc = INT2PTR(encode_t *, SvIV(SvRV(obj))); |
|
852
|
107 |
35172 |
if (!SvOK(src)) |
|
|
107 |
0 |
if (!SvOK(src)) |
|
|
107 |
0 |
if (!SvOK(src)) |
|
854
|
17336 |
17836 |
s = modify ? (U8 *)SvPV_force_nomg(src, slen) : (U8 *)SvPV_nomg(src, slen); |
|
|
17330 |
6 |
s = modify ? (U8 *)SvPV_force_nomg(src, slen) : (U8 *)SvPV_nomg(src, slen); |
|
|
17719 |
117 |
s = modify ? (U8 *)SvPV_force_nomg(src, slen) : (U8 *)SvPV_nomg(src, slen); |
|
855
|
20 |
35152 |
if (!SvUTF8(src)) |
|
879
|
8 |
0 |
RETVAL = SvTRUE(sv); |
|
|
0 |
8 |
RETVAL = SvTRUE(sv); |
|
|
0 |
0 |
RETVAL = SvTRUE(sv); |
|
|
0 |
8 |
RETVAL = SvTRUE(sv); |
|
|
0 |
0 |
RETVAL = SvTRUE(sv); |
|
|
0 |
0 |
RETVAL = SvTRUE(sv); |
|
|
7 |
1 |
RETVAL = SvTRUE(sv); |
|
|
7 |
0 |
RETVAL = SvTRUE(sv); |
|
|
7 |
0 |
RETVAL = SvTRUE(sv); |
|
|
7 |
0 |
RETVAL = SvTRUE(sv); |
|
|
7 |
0 |
RETVAL = SvTRUE(sv); |
|
|
7 |
0 |
RETVAL = SvTRUE(sv); |
|
|
1 |
0 |
RETVAL = SvTRUE(sv); |
|
|
1 |
0 |
RETVAL = SvTRUE(sv); |
|
|
0 |
1 |
RETVAL = SvTRUE(sv); |
|
|
0 |
0 |
RETVAL = SvTRUE(sv); |
|
|
0 |
0 |
RETVAL = SvTRUE(sv); |
|
|
1 |
0 |
RETVAL = SvTRUE(sv); |
|
|
0 |
0 |
RETVAL = SvTRUE(sv); |
|
889
|
110 |
0 |
enc = INT2PTR(encode_t *, SvIV(SvRV(obj))); |
|
893
|
0 |
110 |
PUSHMARK(sp); |
|
894
|
0 |
110 |
XPUSHs(sv_2mortal(newSVpvn(enc->name[0], strlen(enc->name[0])))); |
|
900
|
110 |
0 |
FREETMPS; |
|
915
|
0 |
0 |
encoding = items == 2 ? ST(1) : Nullsv; |
|
917
|
0 |
0 |
if (encoding) |
|
918
|
0 |
0 |
RETVAL = _encoded_bytes_to_utf8(sv, SvPV_nolen(encoding)); |
|
921
|
0 |
0 |
U8* s = (U8*)SvPV(sv, len); |
|
940
|
0 |
0 |
to = items > 1 ? ST(1) : Nullsv; |
|
941
|
0 |
0 |
check = items > 2 ? ST(2) : Nullsv; |
|
943
|
0 |
0 |
if (to) { |
|
944
|
0 |
0 |
RETVAL = _encoded_utf8_to_bytes(sv, SvPV_nolen(to)); |
|
947
|
0 |
0 |
U8 *s = (U8*)SvPV(sv, len); |
|
950
|
0 |
0 |
if (SvTRUE(check)) { |
|
|
0 |
0 |
if (SvTRUE(check)) { |
|
|
0 |
0 |
if (SvTRUE(check)) { |
|
|
0 |
0 |
if (SvTRUE(check)) { |
|
|
0 |
0 |
if (SvTRUE(check)) { |
|
|
0 |
0 |
if (SvTRUE(check)) { |
|
|
0 |
0 |
if (SvTRUE(check)) { |
|
|
0 |
0 |
if (SvTRUE(check)) { |
|
|
0 |
0 |
if (SvTRUE(check)) { |
|
|
0 |
0 |
if (SvTRUE(check)) { |
|
|
0 |
0 |
if (SvTRUE(check)) { |
|
|
0 |
0 |
if (SvTRUE(check)) { |
|
|
0 |
0 |
if (SvTRUE(check)) { |
|
|
0 |
0 |
if (SvTRUE(check)) { |
|
|
0 |
0 |
if (SvTRUE(check)) { |
|
|
0 |
0 |
if (SvTRUE(check)) { |
|
|
0 |
0 |
if (SvTRUE(check)) { |
|
|
0 |
0 |
if (SvTRUE(check)) { |
|
|
0 |
0 |
if (SvTRUE(check)) { |
|
961
|
0 |
0 |
while (s < send) { |
|
962
|
0 |
0 |
if (*s < 0x80){ |
|
970
|
0 |
0 |
if (!(uv & 0x40)){ goto failure; } |
|
971
|
0 |
0 |
if (!(uv & 0x20)) { ulen = 2; uv &= 0x1f; } |
|
972
|
0 |
0 |
else if (!(uv & 0x10)) { ulen = 3; uv &= 0x0f; } |
|
973
|
0 |
0 |
else if (!(uv & 0x08)) { ulen = 4; uv &= 0x07; } |
|
974
|
0 |
0 |
else if (!(uv & 0x04)) { ulen = 5; uv &= 0x03; } |
|
975
|
0 |
0 |
else if (!(uv & 0x02)) { ulen = 6; uv &= 0x01; } |
|
976
|
0 |
0 |
else if (!(uv & 0x01)) { ulen = 7; uv = 0; } |
|
980
|
0 |
0 |
while (ulen--) { |
|
981
|
0 |
0 |
if ((*s & 0xc0) != 0x80){ |
|
987
|
0 |
0 |
if (uv > 256) { |
|
999
|
0 |
0 |
RETVAL = (utf8_to_bytes(s, &len) ? len : 0); |
|
1013
|
13 |
641 |
SvGETMAGIC(sv); /* SvGETMAGIC() can modify SvOK flag */ |
|
|
0 |
13 |
SvGETMAGIC(sv); /* SvGETMAGIC() can modify SvOK flag */ |
|
1014
|
5 |
649 |
str = SvOK(sv) ? SvPV_nomg(sv, len) : NULL; /* SvPV() can modify SvUTF8 flag */ |
|
|
5 |
0 |
str = SvOK(sv) ? SvPV_nomg(sv, len) : NULL; /* SvPV() can modify SvUTF8 flag */ |
|
|
0 |
5 |
str = SvOK(sv) ? SvPV_nomg(sv, len) : NULL; /* SvPV() can modify SvUTF8 flag */ |
|
|
639 |
10 |
str = SvOK(sv) ? SvPV_nomg(sv, len) : NULL; /* SvPV() can modify SvUTF8 flag */ |
|
1016
|
60 |
594 |
if (RETVAL && check && (!str || !is_utf8_string((U8 *)str, len))) |
|
|
0 |
60 |
if (RETVAL && check && (!str || !is_utf8_string((U8 *)str, len))) |
|
|
0 |
0 |
if (RETVAL && check && (!str || !is_utf8_string((U8 *)str, len))) |
|
|
0 |
0 |
if (RETVAL && check && (!str || !is_utf8_string((U8 *)str, len))) |
|
1025
|
4 |
4 |
SvGETMAGIC(sv); |
|
|
0 |
4 |
SvGETMAGIC(sv); |
|
1026
|
4 |
4 |
if (!SvTAINTED(sv) && SvPOKp(sv)) { |
|
|
3 |
1 |
if (!SvTAINTED(sv) && SvPOKp(sv)) { |
|
|
6 |
1 |
if (!SvTAINTED(sv) && SvPOKp(sv)) { |
|
1027
|
5 |
1 |
if (SvTHINKFIRST(sv)) sv_force_normal(sv); |
|
1028
|
1 |
5 |
RETVAL = boolSV(SvUTF8(sv)); |
|
1030
|
2 |
4 |
SvSETMAGIC(sv); |
|
1041
|
4 |
2 |
SvGETMAGIC(sv); |
|
|
0 |
4 |
SvGETMAGIC(sv); |
|
1042
|
4 |
2 |
if (!SvTAINTED(sv) && SvPOKp(sv)) { |
|
|
3 |
1 |
if (!SvTAINTED(sv) && SvPOKp(sv)) { |
|
|
4 |
1 |
if (!SvTAINTED(sv) && SvPOKp(sv)) { |
|
1043
|
3 |
1 |
if (SvTHINKFIRST(sv)) sv_force_normal(sv); |
|
1044
|
3 |
1 |
RETVAL = boolSV(SvUTF8(sv)); |
|
1046
|
2 |
2 |
SvSETMAGIC(sv); |