line |
true |
false |
branch |
89
|
75 |
22 |
if (s[0] == ':') { |
90
|
74 |
1 |
if (++s
|
91
|
0 |
74 |
if (*s++ != ':') |
97
|
86 |
10 |
if (isIDFIRST(*s)) { |
98
|
167 |
31 |
while (++s
|
99
|
55 |
112 |
if (!isWORDCHAR(*s)) { |
100
|
22 |
33 |
if (*s == ':') |
136
|
42 |
164 |
if (safe_decimal_number(s, len)) { |
139
|
152 |
12 |
else if (isIDFIRST(*s)) { |
140
|
256 |
150 |
while (++s
|
141
|
2 |
254 |
if (!isWORDCHAR(*s)) |
156
|
88 |
164 |
if (len == 1 && *p == '0') |
|
2 |
86 |
if (len == 1 && *p == '0') |
159
|
250 |
0 |
if (len && *p == '-') { |
|
0 |
250 |
if (len && *p == '-') { |
164
|
250 |
0 |
if (len == 0 || *p < '1' || *p > '9') |
|
228 |
22 |
if (len == 0 || *p < '1' || *p > '9') |
|
180 |
48 |
if (len == 0 || *p < '1' || *p > '9') |
170
|
4 |
44 |
if (len > 8) |
173
|
56 |
42 |
while (len > 0) { |
175
|
54 |
2 |
if (*p < '0' || *p > '9') |
|
0 |
54 |
if (*p < '0' || *p > '9') |
189
|
2278 |
512 |
while (slen > 0) { |
190
|
2277 |
1 |
if (*s == '\'' || *s == '\\') |
|
1 |
2276 |
if (*s == '\'' || *s == '\\') |
207
|
9684 |
973 |
while (slen > 0) { |
208
|
5 |
9679 |
switch (*s) { |
241
|
1793 |
144 |
for (s = src; s < send; s += increment) { /* Sizing pass */ |
246
|
1793 |
0 |
if (isPRINT(k)) { |
|
1001 |
792 |
if (isPRINT(k)) { |
247
|
6 |
995 |
if (k == '\\') { |
249
|
58 |
937 |
} else if (k == '\'') { |
251
|
929 |
8 |
} else if (k == '"' || k == '$' || k == '@') { |
|
921 |
8 |
} else if (k == '"' || k == '$' || k == '@') { |
|
6 |
915 |
} else if (k == '"' || k == '$' || k == '@') { |
257
|
636 |
156 |
else if (! UTF8_IS_INVARIANT(k)) { |
265
|
372 |
264 |
if (do_utf8) { |
270
|
50 |
322 |
increment = (k == 0 && *s != '\0') ? 1 : UTF8SKIP(s); |
|
0 |
50 |
increment = (k == 0 && *s != '\0') ? 1 : UTF8SKIP(s); |
274
|
108 |
372 |
while ((k >>= 4) != 0) { /* Add space for each nibble */ |
278
|
264 |
0 |
else if (useqq) { /* Not utf8, must be <= 0xFF, hence 2 hex |
286
|
2 |
154 |
else if (! useqq) { /* Low ordinal, non-printable, non-qq just |
292
|
150 |
4 |
if ( k == '\a' || k == '\b' || k == '\t' || k == '\n' || k == '\r' |
|
146 |
4 |
if ( k == '\a' || k == '\b' || k == '\t' || k == '\n' || k == '\r' |
|
142 |
4 |
if ( k == '\a' || k == '\b' || k == '\t' || k == '\n' || k == '\r' |
|
136 |
6 |
if ( k == '\a' || k == '\b' || k == '\t' || k == '\n' || k == '\r' |
|
132 |
4 |
if ( k == '\a' || k == '\b' || k == '\t' || k == '\n' || k == '\r' |
293
|
128 |
4 |
|| k == '\f' || k == ESC_NATIVE) |
|
6 |
122 |
|| k == '\f' || k == ESC_NATIVE) |
299
|
120 |
2 |
if (s + 1 >= send || isDIGIT(*(s+1))) { |
|
4 |
116 |
if (s + 1 >= send || isDIGIT(*(s+1))) { |
305
|
40 |
76 |
else if (k <= 7) { |
308
|
72 |
4 |
else if (k <= 077) { |
317
|
63 |
81 |
if (grow || useqq) { |
|
51 |
12 |
if (grow || useqq) { |
325
|
1728 |
132 |
for (s = src; s < send; s += increment) { |
329
|
831 |
897 |
if (do_utf8 && ! UTF8_IS_INVARIANT(c0)) { |
|
372 |
459 |
if (do_utf8 && ! UTF8_IS_INVARIANT(c0)) { |
337
|
50 |
322 |
increment = (k == 0 && *s != '\0') ? 1 : UTF8SKIP(s); |
|
0 |
50 |
increment = (k == 0 && *s != '\0') ? 1 : UTF8SKIP(s); |
351
|
1356 |
0 |
if (isPRINT(k)) { |
|
937 |
419 |
if (isPRINT(k)) { |
353
|
931 |
6 |
if (k == '"' || k == '\\' || k == '$' || k == '@') { |
|
925 |
6 |
if (k == '"' || k == '\\' || k == '$' || k == '@') { |
|
919 |
6 |
if (k == '"' || k == '\\' || k == '$' || k == '@') { |
|
6 |
913 |
if (k == '"' || k == '\\' || k == '$' || k == '@') { |
359
|
1 |
418 |
else if (! useqq) { /* non-qq, non-printable, low-ordinal is |
381
|
382 |
4 |
next_is_digit = (s + 1 < send && isDIGIT(*(s+1))); |
|
4 |
378 |
next_is_digit = (s + 1 < send && isDIGIT(*(s+1))); |
386
|
46 |
340 |
if (k <= 7 && !next_is_digit) { |
|
42 |
4 |
if (k <= 7 && !next_is_digit) { |
388
|
76 |
268 |
} else if (k <= 63 && !next_is_digit) { |
|
72 |
4 |
} else if (k <= 63 && !next_is_digit) { |
406
|
65 |
12 |
for (s = src; s < send; s ++) { |
408
|
63 |
2 |
if (k == '\'' || k == '\\') |
|
0 |
63 |
if (k == '\'' || k == '\\') |
425
|
1427 |
21 |
if (!sv) |
432
|
1168 |
280 |
if (n > 0) { |
433
|
1168 |
0 |
SvGROW(sv, len*n + SvCUR(sv) + 1); |
|
32 |
1136 |
SvGROW(sv, len*n + SvCUR(sv) + 1); |
434
|
267 |
901 |
if (len == 1) { |
438
|
1848 |
267 |
while (n > 0) |
442
|
1658 |
901 |
while (n > 0) { |
480
|
0 |
5 |
PUSHMARK(SP); |
481
|
0 |
5 |
mXPUSHs(newSVpvs("B::Deparse")); |
487
|
0 |
5 |
if (n != 1) { |
491
|
0 |
5 |
PUSHMARK(SP - n); |
492
|
0 |
5 |
XPUSHs(val); |
498
|
0 |
5 |
if (n != 1) { |
505
|
5 |
0 |
FREETMPS; |
524
|
0 |
54 |
if (!re_pattern_cv) { |
532
|
0 |
54 |
PUSHMARK(SP); |
533
|
0 |
54 |
XPUSHs(val); |
537
|
54 |
0 |
if (count >= 2) { |
544
|
54 |
0 |
FREETMPS; |
546
|
54 |
0 |
if (sv_pattern) { |
580
|
54 |
0 |
rval = SvPV(sv_pattern, rlen); |
583
|
24 |
30 |
do_utf8 = DO_UTF8(sv_pattern); |
|
24 |
0 |
do_utf8 = DO_UTF8(sv_pattern); |
585
|
211 |
54 |
while (p < rend) { |
589
|
37 |
174 |
if (saw_backslash) { |
590
|
0 |
37 |
if (++p == rend) { |
598
|
23 |
188 |
if (/* / that was not backslashed */ |
599
|
1 |
22 |
(k == '/' && !saw_backslash) |
602
|
20 |
169 |
|| (k == '$' && !saw_backslash |
|
16 |
4 |
|| (k == '$' && !saw_backslash |
603
|
12 |
4 |
&& (p + 1 != rend && p[1] != '|' && p[1] != ')')) |
|
10 |
2 |
&& (p + 1 != rend && p[1] != '|' && p[1] != ')')) |
|
2 |
8 |
&& (p + 1 != rend && p[1] != '|' && p[1] != ')')) |
605
|
82 |
99 |
|| (do_utf8 && ! UTF8_IS_INVARIANT(k))) |
|
24 |
58 |
|| (do_utf8 && ! UTF8_IS_INVARIANT(k))) |
608
|
38 |
16 |
if (to_copy) { |
612
|
22 |
32 |
if (k == '/') { |
616
|
8 |
24 |
else if (k == '$') { |
639
|
47 |
7 |
if (rlen) { |
644
|
54 |
0 |
if (sv_flags) |
675
|
0 |
2607 |
if (!val) |
678
|
1 |
2606 |
if (style->maxrecursed) |
685
|
2606 |
0 |
if (SvTYPE(retval) >= SVt_PV && (SvLEN(retval) - SvCUR(retval)) < 42) { |
|
2147 |
459 |
if (SvTYPE(retval) >= SVt_PV && (SvLEN(retval) - SvCUR(retval)) < 42) { |
691
|
0 |
2606 |
if (SvGMAGICAL(val)) |
693
|
1080 |
1526 |
if (SvROK(val)) { |
697
|
70 |
1010 |
if (SvOBJECT(SvRV(val)) && style->freezer && |
|
70 |
0 |
if (SvOBJECT(SvRV(val)) && style->freezer && |
|
68 |
2 |
if (SvOBJECT(SvRV(val)) && style->freezer && |
702
|
0 |
6 |
dSP; ENTER; SAVETMPS; PUSHMARK(sp); |
703
|
0 |
6 |
XPUSHs(val); PUTBACK; |
706
|
6 |
0 |
if (SvTRUE(ERRSV)) |
|
6 |
0 |
if (SvTRUE(ERRSV)) |
|
6 |
0 |
if (SvTRUE(ERRSV)) |
|
0 |
6 |
if (SvTRUE(ERRSV)) |
|
0 |
0 |
if (SvTRUE(ERRSV)) |
|
6 |
0 |
if (SvTRUE(ERRSV)) |
|
0 |
6 |
if (SvTRUE(ERRSV)) |
|
0 |
0 |
if (SvTRUE(ERRSV)) |
|
0 |
0 |
if (SvTRUE(ERRSV)) |
|
0 |
0 |
if (SvTRUE(ERRSV)) |
|
0 |
0 |
if (SvTRUE(ERRSV)) |
|
6 |
0 |
if (SvTRUE(ERRSV)) |
|
6 |
0 |
if (SvTRUE(ERRSV)) |
|
6 |
0 |
if (SvTRUE(ERRSV)) |
|
6 |
0 |
if (SvTRUE(ERRSV)) |
|
6 |
0 |
if (SvTRUE(ERRSV)) |
|
5 |
1 |
if (SvTRUE(ERRSV)) |
|
5 |
0 |
if (SvTRUE(ERRSV)) |
|
0 |
5 |
if (SvTRUE(ERRSV)) |
|
0 |
0 |
if (SvTRUE(ERRSV)) |
|
0 |
0 |
if (SvTRUE(ERRSV)) |
|
0 |
0 |
if (SvTRUE(ERRSV)) |
|
0 |
0 |
if (SvTRUE(ERRSV)) |
|
0 |
0 |
if (SvTRUE(ERRSV)) |
|
0 |
0 |
if (SvTRUE(ERRSV)) |
|
0 |
0 |
if (SvTRUE(ERRSV)) |
|
0 |
0 |
if (SvTRUE(ERRSV)) |
|
0 |
0 |
if (SvTRUE(ERRSV)) |
|
0 |
0 |
if (SvTRUE(ERRSV)) |
|
0 |
0 |
if (SvTRUE(ERRSV)) |
|
0 |
0 |
if (SvTRUE(ERRSV)) |
|
0 |
0 |
if (SvTRUE(ERRSV)) |
|
1 |
5 |
if (SvTRUE(ERRSV)) |
707
|
1 |
0 |
warn("WARNING(Freezer method call failed): %" SVf, ERRSV); |
708
|
6 |
0 |
PUTBACK; FREETMPS; LEAVE; |
715
|
70 |
1010 |
if (SvOBJECT(ival)) |
716
|
70 |
0 |
realpack = HvNAME_get(SvSTASH(ival)); |
|
70 |
0 |
realpack = HvNAME_get(SvSTASH(ival)); |
|
0 |
70 |
realpack = HvNAME_get(SvSTASH(ival)); |
|
0 |
0 |
realpack = HvNAME_get(SvSTASH(ival)); |
|
70 |
0 |
realpack = HvNAME_get(SvSTASH(ival)); |
|
0 |
70 |
realpack = HvNAME_get(SvSTASH(ival)); |
723
|
1080 |
0 |
if (namelen) { |
724
|
323 |
757 |
if ((svp = hv_fetch(seenhv, id, idlen, FALSE)) |
725
|
323 |
0 |
&& (sv = *svp) && SvROK(sv) && (seenentry = (AV*)SvRV(sv))) |
|
323 |
0 |
&& (sv = *svp) && SvROK(sv) && (seenentry = (AV*)SvRV(sv))) |
|
323 |
0 |
&& (sv = *svp) && SvROK(sv) && (seenentry = (AV*)SvRV(sv))) |
728
|
323 |
0 |
if ((svp = av_fetch(seenentry, 0, FALSE)) |
729
|
323 |
0 |
&& (othername = *svp)) |
731
|
140 |
183 |
if (style->purity && level > 0) { |
|
88 |
52 |
if (style->purity && level > 0) { |
734
|
28 |
60 |
if (realtype == SVt_PVHV) |
736
|
38 |
22 |
else if (realtype == SVt_PVAV) |
746
|
231 |
4 |
if (name[0] == '@' || name[0] == '%') { |
|
26 |
205 |
if (name[0] == '@' || name[0] == '%') { |
747
|
10 |
20 |
if ((SvPVX_const(othername))[0] == '\\' && |
|
10 |
0 |
if ((SvPVX_const(othername))[0] == '\\' && |
771
|
733 |
24 |
if (name[0] == '@' || name[0] == '%') { |
|
11 |
722 |
if (name[0] == '@' || name[0] == '%') { |
775
|
11 |
711 |
else if (realtype == SVt_PVCV && name[0] == '*') { |
|
2 |
9 |
else if (realtype == SVt_PVCV && name[0] == '*') { |
797
|
70 |
687 |
if (realpack && realtype == SVt_REGEXP) |
|
54 |
16 |
if (realpack && realtype == SVt_REGEXP) |
801
|
53 |
1 |
if (strEQ(realpack, "Regexp")) |
812
|
564 |
193 |
if (!style->purity && style->maxdepth > 0 && level >= style->maxdepth) { |
|
18 |
546 |
if (!style->purity && style->maxdepth > 0 && level >= style->maxdepth) { |
|
6 |
12 |
if (!style->purity && style->maxdepth > 0 && level >= style->maxdepth) { |
814
|
0 |
6 |
const char * const valstr = SvPV(val,vallen); |
821
|
746 |
5 |
if (style->maxrecurse > 0 && level >= style->maxrecurse) { |
|
4 |
742 |
if (style->maxrecurse > 0 && level >= style->maxrecurse) { |
825
|
70 |
681 |
if (realpack && !no_bless) { /* we have a blessed ref */ |
|
17 |
53 |
if (realpack && !no_bless) { /* we have a blessed ref */ |
827
|
17 |
0 |
const char * const blessstr = SvPV(style->bless, blesslen); |
830
|
15 |
2 |
if (style->indent >= 2) { |
840
|
54 |
697 |
if (is_regex) { |
843
|
79 |
618 |
else if ( |
853
|
0 |
79 |
if (realpack) { /* blessed */ |
865
|
54 |
564 |
else if (realtype == SVt_PVGV) { /* glob ref */ |
874
|
322 |
242 |
else if (realtype == SVt_PVAV) { |
885
|
24 |
298 |
if (name[0] == '@') { |
895
|
298 |
0 |
if ((namelen > 0 |
896
|
277 |
21 |
&& name[namelen-1] != ']' && name[namelen-1] != '}') |
|
161 |
116 |
&& name[namelen-1] != ']' && name[namelen-1] != '}') |
897
|
182 |
0 |
|| (namelen > 4 |
898
|
178 |
4 |
&& (name[1] == '{' |
899
|
0 |
178 |
|| (name[0] == '\\' && name[2] == '{')))) |
|
0 |
0 |
|| (name[0] == '\\' && name[2] == '{')))) |
905
|
4 |
318 |
if (iname[0] == '*' && iname[inamelen-1] == '}' && inamelen >= 8 && |
|
4 |
0 |
if (iname[0] == '*' && iname[inamelen-1] == '}' && inamelen >= 8 && |
|
4 |
0 |
if (iname[0] == '*' && iname[inamelen-1] == '}' && inamelen >= 8 && |
|
4 |
0 |
if (iname[0] == '*' && iname[inamelen-1] == '}' && inamelen >= 8 && |
906
|
0 |
4 |
(instr(iname+inamelen-8, "{SCALAR}") || |
907
|
0 |
0 |
instr(iname+inamelen-7, "{ARRAY}") || |
916
|
580 |
322 |
for (ix = 0; ix <= ixmax; ++ix) { |
920
|
580 |
0 |
if (svp) |
929
|
16 |
564 |
if (style->indent >= 3) { |
941
|
185 |
395 |
FREETMPS; |
943
|
209 |
371 |
if (ix < ixmax || (style->trailingcomma && style->indent >= 1)) |
|
6 |
203 |
if (ix < ixmax || (style->trailingcomma && style->indent >= 1)) |
|
4 |
2 |
if (ix < ixmax || (style->trailingcomma && style->indent >= 1)) |
946
|
209 |
113 |
if (ixmax >= 0) { |
952
|
24 |
298 |
if (name[0] == '@') |
957
|
231 |
11 |
else if (realtype == SVt_PVHV) { |
966
|
11 |
220 |
if (name[0] == '%') { |
973
|
220 |
0 |
if ((namelen > 0 |
974
|
154 |
66 |
&& name[namelen-1] != ']' && name[namelen-1] != '}') |
|
38 |
116 |
&& name[namelen-1] != ']' && name[namelen-1] != '}') |
975
|
104 |
0 |
|| (namelen > 4 |
976
|
88 |
16 |
&& (name[1] == '{' |
977
|
0 |
88 |
|| (name[0] == '\\' && name[2] == '{')))) |
|
0 |
0 |
|| (name[0] == '\\' && name[2] == '{')))) |
982
|
24 |
207 |
if (name[0] == '*' && name[namelen-1] == '}' && namelen >= 8 && |
|
20 |
4 |
if (name[0] == '*' && name[namelen-1] == '}' && namelen >= 8 && |
|
20 |
0 |
if (name[0] == '*' && name[namelen-1] == '}' && namelen >= 8 && |
|
20 |
0 |
if (name[0] == '*' && name[namelen-1] == '}' && namelen >= 8 && |
983
|
20 |
0 |
(instr(name+namelen-8, "{SCALAR}") || |
984
|
20 |
0 |
instr(name+namelen-7, "{ARRAY}") || |
994
|
116 |
115 |
if (style->sortkeys) { |
995
|
101 |
15 |
if (style->sortkeys == &PL_sv_yes) { |
998
|
287 |
101 |
while ((entry = hv_iternext((HV*)ival))) { |
1005
|
101 |
0 |
if (IN_LC(LC_COLLATE)) |
|
0 |
101 |
if (IN_LC(LC_COLLATE)) |
|
0 |
0 |
if (IN_LC(LC_COLLATE)) |
|
101 |
0 |
if (IN_LC(LC_COLLATE)) |
|
101 |
0 |
if (IN_LC(LC_COLLATE)) |
|
101 |
0 |
if (IN_LC(LC_COLLATE)) |
|
0 |
101 |
if (IN_LC(LC_COLLATE)) |
|
0 |
0 |
if (IN_LC(LC_COLLATE)) |
1024
|
0 |
15 |
dSP; ENTER; SAVETMPS; PUSHMARK(sp); |
1025
|
0 |
15 |
XPUSHs(sv_2mortal(newRV_inc(ival))); PUTBACK; |
1028
|
15 |
0 |
if (i) { |
1030
|
15 |
0 |
if (SvROK(sv) && (SvTYPE(SvRV(sv)) == SVt_PVAV)) |
|
14 |
1 |
if (SvROK(sv) && (SvTYPE(SvRV(sv)) == SVt_PVAV)) |
1033
|
1 |
14 |
if (! keys) |
1035
|
15 |
0 |
PUTBACK; FREETMPS; LEAVE; |
1037
|
115 |
1 |
if (keys) |
1054
|
582 |
371 |
if (style->sortkeys) { |
1055
|
581 |
1 |
if (!(keys && (SSize_t)i <= av_len(keys))) break; |
|
466 |
115 |
if (!(keys && (SSize_t)i <= av_len(keys))) break; |
1057
|
115 |
256 |
if (!(entry = hv_iternext((HV *)ival))) break; |
1060
|
501 |
221 |
if (i) |
1063
|
466 |
256 |
if (style->sortkeys) { |
1066
|
466 |
0 |
keysv = svp ? *svp : sv_newmortal(); |
1067
|
466 |
0 |
key = SvPV(keysv, keylen); |
1068
|
8 |
458 |
svp = hv_fetch((HV*)ival, key, |
1070
|
466 |
0 |
hval = svp ? *svp : sv_newmortal(); |
1077
|
722 |
0 |
key = SvPV(keysv, keylen); |
1078
|
14 |
708 |
do_utf8 = DO_UTF8(keysv); |
|
14 |
0 |
do_utf8 = DO_UTF8(keysv); |
1104
|
206 |
516 |
if (style->quotekeys || key_needs_quote(key,keylen)) { |
|
14 |
192 |
if (style->quotekeys || key_needs_quote(key,keylen)) { |
1105
|
518 |
12 |
if (do_utf8 || style->useqq) { |
|
23 |
495 |
if (do_utf8 || style->useqq) { |
1116
|
0 |
495 |
if (nticks) |
1137
|
349 |
373 |
if (style->indent >= 2) { |
1142
|
3475 |
349 |
while (elen < (klen+4)) |
1154
|
722 |
0 |
FREETMPS; |
1157
|
221 |
10 |
if (i) { |
1160
|
6 |
215 |
if (style->trailingcomma && style->indent >= 1) |
|
4 |
2 |
if (style->trailingcomma && style->indent >= 1) |
1166
|
11 |
220 |
if (name[0] == '%') |
1171
|
11 |
0 |
else if (realtype == SVt_PVCV) { |
1172
|
5 |
6 |
if (style->deparse) { |
1181
|
4 |
5 |
for (i = 0; i < level; i++) { |
1186
|
5 |
0 |
p = SvPV(deparsed, plen); |
1187
|
23 |
0 |
while (plen > 0) { |
1189
|
5 |
18 |
if (!nl) { |
1204
|
0 |
6 |
if (style->purity) |
1212
|
70 |
681 |
if (realpack && !no_bless) { /* free blessed allocs */ |
|
17 |
53 |
if (realpack && !no_bless) { /* free blessed allocs */ |
1215
|
15 |
2 |
if (style->indent >= 2) { |
1222
|
2 |
15 |
if (pticks) { /* needs escaping */ |
1238
|
17 |
0 |
if (style->toaster && SvPOK(style->toaster) && SvCUR(style->toaster)) { |
|
17 |
0 |
if (style->toaster && SvPOK(style->toaster) && SvCUR(style->toaster)) { |
|
0 |
17 |
if (style->toaster && SvPOK(style->toaster) && SvCUR(style->toaster)) { |
1249
|
1526 |
0 |
if (namelen) { |
1252
|
110 |
1416 |
if ((svp = hv_fetch(seenhv, id, idlen, FALSE)) && |
|
110 |
0 |
if ((svp = hv_fetch(seenhv, id, idlen, FALSE)) && |
1253
|
110 |
0 |
(sv = *svp) && SvROK(sv) && |
|
110 |
0 |
(sv = *svp) && SvROK(sv) && |
1257
|
110 |
0 |
if ((svp = av_fetch(seenentry, 0, FALSE)) && (othername = *svp) |
|
110 |
0 |
if ((svp = av_fetch(seenentry, 0, FALSE)) && (othername = *svp) |
1258
|
8 |
102 |
&& (svp = av_fetch(seenentry, 2, FALSE)) && *svp && SvIV(*svp) > 0) |
|
8 |
0 |
&& (svp = av_fetch(seenentry, 2, FALSE)) && *svp && SvIV(*svp) > 0) |
|
8 |
0 |
&& (svp = av_fetch(seenentry, 2, FALSE)) && *svp && SvIV(*svp) > 0) |
|
8 |
0 |
&& (svp = av_fetch(seenentry, 2, FALSE)) && *svp && SvIV(*svp) > 0) |
1273
|
1416 |
0 |
else if (val != &PL_sv_undef && (!style->use_sparse_seen_hash || SvREFCNT(val) > 1)) { |
|
16 |
1400 |
else if (val != &PL_sv_undef && (!style->use_sparse_seen_hash || SvREFCNT(val) > 1)) { |
|
0 |
16 |
else if (val != &PL_sv_undef && (!style->use_sparse_seen_hash || SvREFCNT(val) > 1)) { |
1284
|
419 |
1099 |
if (DD_is_integer(val)) { |
1286
|
0 |
419 |
if (SvIsUV(val)) |
1287
|
0 |
0 |
len = my_snprintf(tmpbuf, sizeof(tmpbuf), "%" UVuf, SvUV(val)); |
|
0 |
0 |
len = my_snprintf(tmpbuf, sizeof(tmpbuf), "%" UVuf, SvUV(val)); |
1289
|
419 |
0 |
len = my_snprintf(tmpbuf, sizeof(tmpbuf), "%" IVdf, SvIV(val)); |
|
0 |
419 |
len = my_snprintf(tmpbuf, sizeof(tmpbuf), "%" IVdf, SvIV(val)); |
1290
|
120 |
299 |
if (SvPOK(val)) { |
1294
|
120 |
0 |
const char * const pv = SvPV(val, pvlen); |
1295
|
88 |
32 |
if (pvlen != len || memNE(pv, tmpbuf, len)) |
|
88 |
0 |
if (pvlen != len || memNE(pv, tmpbuf, len)) |
1298
|
12 |
375 |
if (len > 10) { |
1305
|
75 |
1024 |
else if (realtype == SVt_PVGV) {/* GLOBs can end up with scribbly names */ |
1306
|
0 |
75 |
c = SvPV(val, i); |
1307
|
75 |
0 |
if(i) ++c, --i; /* just get the name */ |
1308
|
75 |
0 |
if (memBEGINs(c, i, "main::")) { |
|
53 |
22 |
if (memBEGINs(c, i, "main::")) { |
1310
|
1 |
52 |
if (i == 6) |
1313
|
44 |
31 |
if (globname_needs_quote(c,i)) { |
1339
|
24 |
51 |
if (style->purity) { |
1348
|
72 |
24 |
for (j=0; j<3; j++) { |
1349
|
24 |
48 |
e = ((j == 0) ? GvSV(gv) : (j == 1) ? (SV*)GvAV(gv) : (SV*)GvHV(gv)); |
|
24 |
24 |
e = ((j == 0) ? GvSV(gv) : (j == 1) ? (SV*)GvAV(gv) : (SV*)GvHV(gv)); |
1350
|
16 |
56 |
if (!e) |
1352
|
24 |
32 |
if (j == 0 && !SvOK(e)) |
|
12 |
12 |
if (j == 0 && !SvOK(e)) |
|
12 |
0 |
if (j == 0 && !SvOK(e)) |
|
12 |
0 |
if (j == 0 && !SvOK(e)) |
1365
|
6 |
38 |
if (style->indent >= 2) |
1378
|
1024 |
0 |
else if (val == &PL_sv_undef || !SvOK(val)) { |
|
12 |
1012 |
else if (val == &PL_sv_undef || !SvOK(val)) { |
|
12 |
0 |
else if (val == &PL_sv_undef || !SvOK(val)) { |
|
12 |
0 |
else if (val == &PL_sv_undef || !SvOK(val)) { |
1382
|
40 |
972 |
else if (SvMAGICAL(val) && (mg = mg_find(val, 'V'))) { |
|
6 |
34 |
else if (SvMAGICAL(val) && (mg = mg_find(val, 'V'))) { |
1398
|
894 |
144 |
c = SvPV(val, i); |
1404
|
46 |
992 |
if (style->useqq && safe_decimal_number(c, i)) { |
|
2 |
44 |
if (style->useqq && safe_decimal_number(c, i)) { |
1407
|
29 |
1007 |
else if (DO_UTF8(val) || style->useqq) |
|
0 |
29 |
else if (DO_UTF8(val) || style->useqq) |
|
36 |
971 |
else if (DO_UTF8(val) || style->useqq) |
1408
|
29 |
36 |
i += esc_q_utf8(aTHX_ retval, c, i, DO_UTF8(val), style->useqq); |
|
29 |
0 |
i += esc_q_utf8(aTHX_ retval, c, i, DO_UTF8(val), style->useqq); |
1422
|
2269 |
0 |
if (idlen) { |
1423
|
90 |
2179 |
if (style->deepcopy) |
1425
|
2179 |
0 |
else if (namelen && seenentry) { |
|
2163 |
16 |
else if (namelen && seenentry) { |
1460
|
153 |
218 |
I32 gimme = GIMME_V; |
1462
|
151 |
220 |
if (!SvROK(href)) { /* call new to get an object first */ |
1463
|
0 |
151 |
if (items < 2) |
1469
|
0 |
151 |
PUSHMARK(sp); |
1470
|
0 |
151 |
EXTEND(SP, 3); /* 3 == max of all branches below */ |
1473
|
54 |
97 |
if (items >= 3) |
1478
|
151 |
0 |
if (i) |
1482
|
151 |
0 |
FREETMPS; |
1484
|
151 |
0 |
if (i) |
1501
|
371 |
0 |
if (SvROK(href) |
1502
|
371 |
0 |
&& (hv = (HV*)SvRV((SV*)href)) |
1503
|
371 |
0 |
&& SvTYPE(hv) == SVt_PVHV) { |
1505
|
371 |
0 |
if ((svp = hv_fetchs(hv, "seen", FALSE)) && SvROK(*svp)) |
|
371 |
0 |
if ((svp = hv_fetchs(hv, "seen", FALSE)) && SvROK(*svp)) |
1509
|
371 |
0 |
if ((svp = hv_fetchs(hv, "noseen", FALSE))) |
1510
|
2 |
369 |
style.use_sparse_seen_hash = (SvOK(*svp) && SvIV(*svp) != 0); |
|
2 |
0 |
style.use_sparse_seen_hash = (SvOK(*svp) && SvIV(*svp) != 0); |
|
0 |
2 |
style.use_sparse_seen_hash = (SvOK(*svp) && SvIV(*svp) != 0); |
|
369 |
0 |
style.use_sparse_seen_hash = (SvOK(*svp) && SvIV(*svp) != 0); |
|
6 |
363 |
style.use_sparse_seen_hash = (SvOK(*svp) && SvIV(*svp) != 0); |
|
0 |
0 |
style.use_sparse_seen_hash = (SvOK(*svp) && SvIV(*svp) != 0); |
1511
|
371 |
0 |
if ((svp = hv_fetchs(hv, "todump", FALSE)) && SvROK(*svp)) |
|
371 |
0 |
if ((svp = hv_fetchs(hv, "todump", FALSE)) && SvROK(*svp)) |
1513
|
371 |
0 |
if ((svp = hv_fetchs(hv, "names", FALSE)) && SvROK(*svp)) |
|
371 |
0 |
if ((svp = hv_fetchs(hv, "names", FALSE)) && SvROK(*svp)) |
1515
|
371 |
0 |
if ((svp = hv_fetchs(hv, "indent", FALSE))) |
1516
|
371 |
0 |
style.indent = SvIV(*svp); |
1517
|
371 |
0 |
if ((svp = hv_fetchs(hv, "purity", FALSE))) |
1518
|
371 |
0 |
style.purity = SvIV(*svp); |
1519
|
371 |
0 |
if ((svp = hv_fetchs(hv, "terse", FALSE))) |
1520
|
371 |
0 |
terse = SvTRUE(*svp); |
|
0 |
371 |
terse = SvTRUE(*svp); |
|
0 |
0 |
terse = SvTRUE(*svp); |
|
1 |
370 |
terse = SvTRUE(*svp); |
|
1 |
0 |
terse = SvTRUE(*svp); |
|
0 |
1 |
terse = SvTRUE(*svp); |
|
0 |
370 |
terse = SvTRUE(*svp); |
|
0 |
0 |
terse = SvTRUE(*svp); |
|
0 |
0 |
terse = SvTRUE(*svp); |
|
0 |
0 |
terse = SvTRUE(*svp); |
|
0 |
0 |
terse = SvTRUE(*svp); |
|
0 |
0 |
terse = SvTRUE(*svp); |
|
370 |
0 |
terse = SvTRUE(*svp); |
|
370 |
0 |
terse = SvTRUE(*svp); |
|
361 |
9 |
terse = SvTRUE(*svp); |
|
0 |
361 |
terse = SvTRUE(*svp); |
|
0 |
0 |
terse = SvTRUE(*svp); |
|
9 |
361 |
terse = SvTRUE(*svp); |
|
0 |
0 |
terse = SvTRUE(*svp); |
1521
|
371 |
0 |
if ((svp = hv_fetchs(hv, "useqq", FALSE))) |
1522
|
371 |
0 |
style.useqq = SvTRUE(*svp); |
|
0 |
371 |
style.useqq = SvTRUE(*svp); |
|
0 |
0 |
style.useqq = SvTRUE(*svp); |
|
1 |
370 |
style.useqq = SvTRUE(*svp); |
|
1 |
0 |
style.useqq = SvTRUE(*svp); |
|
0 |
1 |
style.useqq = SvTRUE(*svp); |
|
1 |
369 |
style.useqq = SvTRUE(*svp); |
|
1 |
0 |
style.useqq = SvTRUE(*svp); |
|
1 |
0 |
style.useqq = SvTRUE(*svp); |
|
0 |
1 |
style.useqq = SvTRUE(*svp); |
|
0 |
0 |
style.useqq = SvTRUE(*svp); |
|
0 |
1 |
style.useqq = SvTRUE(*svp); |
|
369 |
0 |
style.useqq = SvTRUE(*svp); |
|
369 |
0 |
style.useqq = SvTRUE(*svp); |
|
331 |
38 |
style.useqq = SvTRUE(*svp); |
|
0 |
331 |
style.useqq = SvTRUE(*svp); |
|
0 |
0 |
style.useqq = SvTRUE(*svp); |
|
38 |
331 |
style.useqq = SvTRUE(*svp); |
|
0 |
0 |
style.useqq = SvTRUE(*svp); |
1523
|
371 |
0 |
if ((svp = hv_fetchs(hv, "pad", FALSE))) |
1525
|
371 |
0 |
if ((svp = hv_fetchs(hv, "xpad", FALSE))) |
1527
|
371 |
0 |
if ((svp = hv_fetchs(hv, "apad", FALSE))) |
1529
|
371 |
0 |
if ((svp = hv_fetchs(hv, "sep", FALSE))) |
1531
|
371 |
0 |
if ((svp = hv_fetchs(hv, "pair", FALSE))) |
1533
|
371 |
0 |
if ((svp = hv_fetchs(hv, "varname", FALSE))) |
1535
|
371 |
0 |
if ((svp = hv_fetchs(hv, "freezer", FALSE))) |
1537
|
371 |
0 |
if ((svp = hv_fetchs(hv, "toaster", FALSE))) |
1539
|
371 |
0 |
if ((svp = hv_fetchs(hv, "deepcopy", FALSE))) |
1540
|
371 |
0 |
style.deepcopy = SvTRUE(*svp); |
|
0 |
371 |
style.deepcopy = SvTRUE(*svp); |
|
0 |
0 |
style.deepcopy = SvTRUE(*svp); |
|
2 |
369 |
style.deepcopy = SvTRUE(*svp); |
|
2 |
0 |
style.deepcopy = SvTRUE(*svp); |
|
0 |
2 |
style.deepcopy = SvTRUE(*svp); |
|
0 |
369 |
style.deepcopy = SvTRUE(*svp); |
|
0 |
0 |
style.deepcopy = SvTRUE(*svp); |
|
0 |
0 |
style.deepcopy = SvTRUE(*svp); |
|
0 |
0 |
style.deepcopy = SvTRUE(*svp); |
|
0 |
0 |
style.deepcopy = SvTRUE(*svp); |
|
0 |
0 |
style.deepcopy = SvTRUE(*svp); |
|
369 |
0 |
style.deepcopy = SvTRUE(*svp); |
|
369 |
0 |
style.deepcopy = SvTRUE(*svp); |
|
363 |
6 |
style.deepcopy = SvTRUE(*svp); |
|
0 |
363 |
style.deepcopy = SvTRUE(*svp); |
|
0 |
0 |
style.deepcopy = SvTRUE(*svp); |
|
6 |
363 |
style.deepcopy = SvTRUE(*svp); |
|
0 |
0 |
style.deepcopy = SvTRUE(*svp); |
1541
|
371 |
0 |
if ((svp = hv_fetchs(hv, "quotekeys", FALSE))) |
1542
|
371 |
0 |
style.quotekeys = SvTRUE(*svp); |
|
0 |
371 |
style.quotekeys = SvTRUE(*svp); |
|
0 |
0 |
style.quotekeys = SvTRUE(*svp); |
|
2 |
369 |
style.quotekeys = SvTRUE(*svp); |
|
2 |
0 |
style.quotekeys = SvTRUE(*svp); |
|
0 |
2 |
style.quotekeys = SvTRUE(*svp); |
|
0 |
369 |
style.quotekeys = SvTRUE(*svp); |
|
0 |
0 |
style.quotekeys = SvTRUE(*svp); |
|
0 |
0 |
style.quotekeys = SvTRUE(*svp); |
|
0 |
0 |
style.quotekeys = SvTRUE(*svp); |
|
0 |
0 |
style.quotekeys = SvTRUE(*svp); |
|
0 |
0 |
style.quotekeys = SvTRUE(*svp); |
|
369 |
0 |
style.quotekeys = SvTRUE(*svp); |
|
369 |
0 |
style.quotekeys = SvTRUE(*svp); |
|
146 |
223 |
style.quotekeys = SvTRUE(*svp); |
|
0 |
146 |
style.quotekeys = SvTRUE(*svp); |
|
0 |
0 |
style.quotekeys = SvTRUE(*svp); |
|
223 |
146 |
style.quotekeys = SvTRUE(*svp); |
|
0 |
0 |
style.quotekeys = SvTRUE(*svp); |
1543
|
371 |
0 |
if ((svp = hv_fetchs(hv, "trailingcomma", FALSE))) |
1544
|
371 |
0 |
style.trailingcomma = SvTRUE(*svp); |
|
0 |
371 |
style.trailingcomma = SvTRUE(*svp); |
|
0 |
0 |
style.trailingcomma = SvTRUE(*svp); |
|
0 |
371 |
style.trailingcomma = SvTRUE(*svp); |
|
0 |
0 |
style.trailingcomma = SvTRUE(*svp); |
|
0 |
0 |
style.trailingcomma = SvTRUE(*svp); |
|
0 |
371 |
style.trailingcomma = SvTRUE(*svp); |
|
0 |
0 |
style.trailingcomma = SvTRUE(*svp); |
|
0 |
0 |
style.trailingcomma = SvTRUE(*svp); |
|
0 |
0 |
style.trailingcomma = SvTRUE(*svp); |
|
0 |
0 |
style.trailingcomma = SvTRUE(*svp); |
|
0 |
0 |
style.trailingcomma = SvTRUE(*svp); |
|
371 |
0 |
style.trailingcomma = SvTRUE(*svp); |
|
371 |
0 |
style.trailingcomma = SvTRUE(*svp); |
|
357 |
14 |
style.trailingcomma = SvTRUE(*svp); |
|
0 |
357 |
style.trailingcomma = SvTRUE(*svp); |
|
0 |
0 |
style.trailingcomma = SvTRUE(*svp); |
|
14 |
357 |
style.trailingcomma = SvTRUE(*svp); |
|
0 |
0 |
style.trailingcomma = SvTRUE(*svp); |
1545
|
371 |
0 |
if ((svp = hv_fetchs(hv, "deparse", FALSE))) |
1546
|
371 |
0 |
style.deparse = SvTRUE(*svp); |
|
0 |
371 |
style.deparse = SvTRUE(*svp); |
|
0 |
0 |
style.deparse = SvTRUE(*svp); |
|
0 |
371 |
style.deparse = SvTRUE(*svp); |
|
0 |
0 |
style.deparse = SvTRUE(*svp); |
|
0 |
0 |
style.deparse = SvTRUE(*svp); |
|
0 |
371 |
style.deparse = SvTRUE(*svp); |
|
0 |
0 |
style.deparse = SvTRUE(*svp); |
|
0 |
0 |
style.deparse = SvTRUE(*svp); |
|
0 |
0 |
style.deparse = SvTRUE(*svp); |
|
0 |
0 |
style.deparse = SvTRUE(*svp); |
|
0 |
0 |
style.deparse = SvTRUE(*svp); |
|
371 |
0 |
style.deparse = SvTRUE(*svp); |
|
371 |
0 |
style.deparse = SvTRUE(*svp); |
|
356 |
15 |
style.deparse = SvTRUE(*svp); |
|
0 |
356 |
style.deparse = SvTRUE(*svp); |
|
0 |
0 |
style.deparse = SvTRUE(*svp); |
|
15 |
356 |
style.deparse = SvTRUE(*svp); |
|
0 |
0 |
style.deparse = SvTRUE(*svp); |
1547
|
371 |
0 |
if ((svp = hv_fetchs(hv, "bless", FALSE))) |
1549
|
371 |
0 |
if ((svp = hv_fetchs(hv, "maxdepth", FALSE))) |
1550
|
371 |
0 |
style.maxdepth = SvIV(*svp); |
1551
|
371 |
0 |
if ((svp = hv_fetchs(hv, "maxrecurse", FALSE))) |
1552
|
371 |
0 |
style.maxrecurse = SvIV(*svp); |
1553
|
371 |
0 |
if ((svp = hv_fetchs(hv, "sortkeys", FALSE))) { |
1555
|
371 |
0 |
if (! SvTRUE(sv)) |
|
0 |
371 |
if (! SvTRUE(sv)) |
|
0 |
0 |
if (! SvTRUE(sv)) |
|
2 |
369 |
if (! SvTRUE(sv)) |
|
2 |
0 |
if (! SvTRUE(sv)) |
|
0 |
2 |
if (! SvTRUE(sv)) |
|
0 |
369 |
if (! SvTRUE(sv)) |
|
0 |
0 |
if (! SvTRUE(sv)) |
|
0 |
0 |
if (! SvTRUE(sv)) |
|
0 |
0 |
if (! SvTRUE(sv)) |
|
0 |
0 |
if (! SvTRUE(sv)) |
|
0 |
0 |
if (! SvTRUE(sv)) |
|
359 |
10 |
if (! SvTRUE(sv)) |
|
359 |
0 |
if (! SvTRUE(sv)) |
|
175 |
184 |
if (! SvTRUE(sv)) |
|
0 |
175 |
if (! SvTRUE(sv)) |
|
0 |
0 |
if (! SvTRUE(sv)) |
|
175 |
184 |
if (! SvTRUE(sv)) |
|
0 |
10 |
if (! SvTRUE(sv)) |
1557
|
10 |
184 |
else if (SvROK(sv) && SvTYPE(SvRV(sv)) == SVt_PVCV) |
|
10 |
0 |
else if (SvROK(sv) && SvTYPE(SvRV(sv)) == SVt_PVCV) |
1566
|
371 |
0 |
if (todumpav) |
1571
|
1128 |
371 |
for (i = 0; i <= imax; ++i) { |
1575
|
1128 |
0 |
if ((svp = av_fetch(todumpav, i, FALSE))) |
1579
|
1128 |
0 |
if ((svp = av_fetch(namesav, i, TRUE))) { |
1581
|
862 |
266 |
if (SvOK(*svp) && !SvPOK(*svp)) |
|
862 |
0 |
if (SvOK(*svp) && !SvPOK(*svp)) |
|
0 |
862 |
if (SvOK(*svp) && !SvPOK(*svp)) |
|
4 |
262 |
if (SvOK(*svp) && !SvPOK(*svp)) |
1582
|
0 |
4 |
(void)SvPV_nolen_const(name); |
1585
|
0 |
0 |
(void)SvOK_off(name); |
1587
|
266 |
862 |
if (SvPOK(name)) { |
1588
|
81 |
185 |
if ((SvPVX_const(name))[0] == '*') { |
1589
|
79 |
2 |
if (SvROK(val)) { |
1608
|
183 |
2 |
else if ((SvPVX_const(name))[0] != '$') |
1615
|
0 |
862 |
nchars = my_snprintf(tmpbuf, sizeof(tmpbuf), "%" IVdf, |
1620
|
250 |
878 |
if (style.indent >= 2 && !terse) { |
|
246 |
4 |
if (style.indent >= 2 && !terse) { |
1635
|
312 |
816 |
FREETMPS; |
1639
|
1092 |
36 |
if (postlen >= 0 || !terse) { |
|
1083 |
9 |
if (postlen >= 0 || !terse) { |
1647
|
36 |
1092 |
if (postlen >= 0) { |
1650
|
132 |
36 |
for (i = 0; i <= postlen; ++i) { |
1653
|
132 |
0 |
if (svp && (elem = *svp)) { |
|
132 |
0 |
if (svp && (elem = *svp)) { |
1655
|
96 |
36 |
if (i < postlen) { |
1666
|
241 |
887 |
if (gimme == G_ARRAY) { |
1667
|
0 |
241 |
XPUSHs(retval); |
1668
|
79 |
162 |
if (i < imax) /* not the last time thro ? */ |
1675
|
4 |
367 |
if (style.maxrecursed) |
1682
|
205 |
162 |
if (gimme != G_ARRAY) |
1683
|
0 |
205 |
XPUSHs(retval); |
1695
|
6 |
0 |
SvMAGICAL(sv) && (mg = mg_find(sv, 'V')) |
1697
|
6 |
1705 |
: &PL_sv_undef; |