Branch Coverage

Dumper.xs
Criterion Covered Total %
branch 746 1156 64.5


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 9516 973 while (slen > 0) {
208 5 9511 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 1431 21 if (!sv)
432 1172 280 if (n > 0) {
433 1172 0 SvGROW(sv, len*n + SvCUR(sv) + 1);
32 1140 SvGROW(sv, len*n + SvCUR(sv) + 1);
434 267 905 if (len == 1) {
438 1848 267 while (n > 0)
442 1662 905 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 2611 if (!val)
678 1 2610 if (style->maxrecursed)
685 2610 0 if (SvTYPE(retval) >= SVt_PV && (SvLEN(retval) - SvCUR(retval)) < 42) {
2170 440 if (SvTYPE(retval) >= SVt_PV && (SvLEN(retval) - SvCUR(retval)) < 42) {
691 0 2610 if (SvGMAGICAL(val))
693 1084 1526 if (SvROK(val)) {
697 70 1014 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 1014 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 1084 0 if (namelen) {
724 323 761 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 737 24 if (name[0] == '@' || name[0] == '%') {
11 726 if (name[0] == '@' || name[0] == '%') {
775 11 715 else if (realtype == SVt_PVCV && name[0] == '*') {
2 9 else if (realtype == SVt_PVCV && name[0] == '*') {
797 70 691 if (realpack && realtype == SVt_REGEXP)
54 16 if (realpack && realtype == SVt_REGEXP)
801 53 1 if (strEQ(realpack, "Regexp"))
812 568 193 if (!style->purity && style->maxdepth > 0 && level >= style->maxdepth) {
18 550 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 750 5 if (style->maxrecurse > 0 && level >= style->maxrecurse) {
4 746 if (style->maxrecurse > 0 && level >= style->maxrecurse) {
825 70 685 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 701 if (is_regex) {
843 79 622 else if (
853 0 79 if (realpack) { /* blessed */
865 54 568 else if (realtype == SVt_PVGV) { /* glob ref */
874 324 244 else if (realtype == SVt_PVAV) {
885 24 300 if (name[0] == '@') {
895 300 0 if ((namelen > 0
896 279 21 && name[namelen-1] != ']' && name[namelen-1] != '}')
161 118 && 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 320 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 324 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 115 if (ixmax >= 0) {
952 24 300 if (name[0] == '@')
957 233 11 else if (realtype == SVt_PVHV) {
966 11 222 if (name[0] == '%') {
973 222 0 if ((namelen > 0
974 156 66 && name[namelen-1] != ']' && name[namelen-1] != '}')
38 118 && 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 209 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 118 115 if (style->sortkeys) {
995 103 15 if (style->sortkeys == &PL_sv_yes) {
998 287 103 while ((entry = hv_iternext((HV*)ival))) {
1005 103 0 if (IN_LC(LC_COLLATE))
0 103 if (IN_LC(LC_COLLATE))
0 0 if (IN_LC(LC_COLLATE))
103 0 if (IN_LC(LC_COLLATE))
103 0 if (IN_LC(LC_COLLATE))
103 0 if (IN_LC(LC_COLLATE))
0 103 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 117 1 if (keys)
1054 584 371 if (style->sortkeys) {
1055 583 1 if (!(keys && (SSize_t)i <= av_len(keys))) break;
466 117 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 12 if (i) {
1160 6 215 if (style->trailingcomma && style->indent >= 1)
4 2 if (style->trailingcomma && style->indent >= 1)
1166 11 222 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 685 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 2273 0 if (idlen) {
1423 90 2183 if (style->deepcopy)
1425 2183 0 else if (namelen && seenentry) {
2167 16 else if (namelen && seenentry) {
1459 155 218 I32 gimme = GIMME_V;
1461 153 220 if (!SvROK(href)) { /* call new to get an object first */
1462 0 153 if (items < 2)
1468 0 153 PUSHMARK(sp);
1469 0 153 EXTEND(SP, 3); /* 3 == max of all branches below */
1472 56 97 if (items >= 3)
1477 153 0 if (i)
1481 153 0 FREETMPS;
1483 153 0 if (i)
1500 373 0 if (SvROK(href)
1501 373 0 && (hv = (HV*)SvRV((SV*)href))
1502 373 0 && SvTYPE(hv) == SVt_PVHV) {
1504 373 0 if ((svp = hv_fetchs(hv, "seen", FALSE)) && SvROK(*svp))
373 0 if ((svp = hv_fetchs(hv, "seen", FALSE)) && SvROK(*svp))
1508 373 0 if ((svp = hv_fetchs(hv, "noseen", FALSE)))
1509 2 371 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);
371 0 style.use_sparse_seen_hash = (SvOK(*svp) && SvIV(*svp) != 0);
6 365 style.use_sparse_seen_hash = (SvOK(*svp) && SvIV(*svp) != 0);
0 0 style.use_sparse_seen_hash = (SvOK(*svp) && SvIV(*svp) != 0);
1510 373 0 if ((svp = hv_fetchs(hv, "todump", FALSE)) && SvROK(*svp))
373 0 if ((svp = hv_fetchs(hv, "todump", FALSE)) && SvROK(*svp))
1512 373 0 if ((svp = hv_fetchs(hv, "names", FALSE)) && SvROK(*svp))
373 0 if ((svp = hv_fetchs(hv, "names", FALSE)) && SvROK(*svp))
1514 373 0 if ((svp = hv_fetchs(hv, "indent", FALSE)))
1515 373 0 style.indent = SvIV(*svp);
1516 373 0 if ((svp = hv_fetchs(hv, "purity", FALSE)))
1517 373 0 style.purity = SvIV(*svp);
1518 373 0 if ((svp = hv_fetchs(hv, "terse", FALSE)))
1519 373 0 terse = SvTRUE(*svp);
0 373 terse = SvTRUE(*svp);
0 0 terse = SvTRUE(*svp);
1 372 terse = SvTRUE(*svp);
1 0 terse = SvTRUE(*svp);
0 1 terse = SvTRUE(*svp);
0 372 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);
372 0 terse = SvTRUE(*svp);
372 0 terse = SvTRUE(*svp);
363 9 terse = SvTRUE(*svp);
0 363 terse = SvTRUE(*svp);
0 0 terse = SvTRUE(*svp);
9 363 terse = SvTRUE(*svp);
0 0 terse = SvTRUE(*svp);
1520 373 0 if ((svp = hv_fetchs(hv, "useqq", FALSE)))
1521 373 0 style.useqq = SvTRUE(*svp);
0 373 style.useqq = SvTRUE(*svp);
0 0 style.useqq = SvTRUE(*svp);
1 372 style.useqq = SvTRUE(*svp);
1 0 style.useqq = SvTRUE(*svp);
0 1 style.useqq = SvTRUE(*svp);
1 371 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);
371 0 style.useqq = SvTRUE(*svp);
371 0 style.useqq = SvTRUE(*svp);
333 38 style.useqq = SvTRUE(*svp);
0 333 style.useqq = SvTRUE(*svp);
0 0 style.useqq = SvTRUE(*svp);
38 333 style.useqq = SvTRUE(*svp);
0 0 style.useqq = SvTRUE(*svp);
1522 373 0 if ((svp = hv_fetchs(hv, "pad", FALSE)))
1524 373 0 if ((svp = hv_fetchs(hv, "xpad", FALSE)))
1526 373 0 if ((svp = hv_fetchs(hv, "apad", FALSE)))
1528 373 0 if ((svp = hv_fetchs(hv, "sep", FALSE)))
1530 373 0 if ((svp = hv_fetchs(hv, "pair", FALSE)))
1532 373 0 if ((svp = hv_fetchs(hv, "varname", FALSE)))
1534 373 0 if ((svp = hv_fetchs(hv, "freezer", FALSE)))
1536 373 0 if ((svp = hv_fetchs(hv, "toaster", FALSE)))
1538 373 0 if ((svp = hv_fetchs(hv, "deepcopy", FALSE)))
1539 373 0 style.deepcopy = SvTRUE(*svp);
0 373 style.deepcopy = SvTRUE(*svp);
0 0 style.deepcopy = SvTRUE(*svp);
2 371 style.deepcopy = SvTRUE(*svp);
2 0 style.deepcopy = SvTRUE(*svp);
0 2 style.deepcopy = SvTRUE(*svp);
0 371 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);
371 0 style.deepcopy = SvTRUE(*svp);
371 0 style.deepcopy = SvTRUE(*svp);
365 6 style.deepcopy = SvTRUE(*svp);
0 365 style.deepcopy = SvTRUE(*svp);
0 0 style.deepcopy = SvTRUE(*svp);
6 365 style.deepcopy = SvTRUE(*svp);
0 0 style.deepcopy = SvTRUE(*svp);
1540 373 0 if ((svp = hv_fetchs(hv, "quotekeys", FALSE)))
1541 373 0 style.quotekeys = SvTRUE(*svp);
0 373 style.quotekeys = SvTRUE(*svp);
0 0 style.quotekeys = SvTRUE(*svp);
2 371 style.quotekeys = SvTRUE(*svp);
2 0 style.quotekeys = SvTRUE(*svp);
0 2 style.quotekeys = SvTRUE(*svp);
0 371 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);
371 0 style.quotekeys = SvTRUE(*svp);
371 0 style.quotekeys = SvTRUE(*svp);
148 223 style.quotekeys = SvTRUE(*svp);
0 148 style.quotekeys = SvTRUE(*svp);
0 0 style.quotekeys = SvTRUE(*svp);
223 148 style.quotekeys = SvTRUE(*svp);
0 0 style.quotekeys = SvTRUE(*svp);
1542 373 0 if ((svp = hv_fetchs(hv, "trailingcomma", FALSE)))
1543 373 0 style.trailingcomma = SvTRUE(*svp);
0 373 style.trailingcomma = SvTRUE(*svp);
0 0 style.trailingcomma = SvTRUE(*svp);
0 373 style.trailingcomma = SvTRUE(*svp);
0 0 style.trailingcomma = SvTRUE(*svp);
0 0 style.trailingcomma = SvTRUE(*svp);
0 373 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);
373 0 style.trailingcomma = SvTRUE(*svp);
373 0 style.trailingcomma = SvTRUE(*svp);
359 14 style.trailingcomma = SvTRUE(*svp);
0 359 style.trailingcomma = SvTRUE(*svp);
0 0 style.trailingcomma = SvTRUE(*svp);
14 359 style.trailingcomma = SvTRUE(*svp);
0 0 style.trailingcomma = SvTRUE(*svp);
1544 373 0 if ((svp = hv_fetchs(hv, "deparse", FALSE)))
1545 373 0 style.deparse = SvTRUE(*svp);
0 373 style.deparse = SvTRUE(*svp);
0 0 style.deparse = SvTRUE(*svp);
0 373 style.deparse = SvTRUE(*svp);
0 0 style.deparse = SvTRUE(*svp);
0 0 style.deparse = SvTRUE(*svp);
0 373 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);
373 0 style.deparse = SvTRUE(*svp);
373 0 style.deparse = SvTRUE(*svp);
358 15 style.deparse = SvTRUE(*svp);
0 358 style.deparse = SvTRUE(*svp);
0 0 style.deparse = SvTRUE(*svp);
15 358 style.deparse = SvTRUE(*svp);
0 0 style.deparse = SvTRUE(*svp);
1546 373 0 if ((svp = hv_fetchs(hv, "bless", FALSE)))
1548 373 0 if ((svp = hv_fetchs(hv, "maxdepth", FALSE)))
1549 373 0 style.maxdepth = SvIV(*svp);
1550 373 0 if ((svp = hv_fetchs(hv, "maxrecurse", FALSE)))
1551 373 0 style.maxrecurse = SvIV(*svp);
1552 373 0 if ((svp = hv_fetchs(hv, "sortkeys", FALSE))) {
1554 373 0 if (! SvTRUE(sv))
0 373 if (! SvTRUE(sv))
0 0 if (! SvTRUE(sv))
2 371 if (! SvTRUE(sv))
2 0 if (! SvTRUE(sv))
0 2 if (! SvTRUE(sv))
0 371 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))
361 10 if (! SvTRUE(sv))
361 0 if (! SvTRUE(sv))
175 186 if (! SvTRUE(sv))
0 175 if (! SvTRUE(sv))
0 0 if (! SvTRUE(sv))
175 186 if (! SvTRUE(sv))
0 10 if (! SvTRUE(sv))
1556 10 186 else if (SvROK(sv) && SvTYPE(SvRV(sv)) == SVt_PVCV)
10 0 else if (SvROK(sv) && SvTYPE(SvRV(sv)) == SVt_PVCV)
1565 373 0 if (todumpav)
1570 1132 373 for (i = 0; i <= imax; ++i) {
1576 1132 0 if ((svp = av_fetch(todumpav, i, FALSE)))
1580 1132 0 if ((svp = av_fetch(namesav, i, TRUE))) {
1581 862 270 if (SvOK(*svp)) {
862 0 if (SvOK(*svp)) {
0 862 if (SvOK(*svp)) {
1583 262 8 name = SvPV(name_sv, name_len);
1593 270 862 if (name) {
1594 81 189 if (*name == '*') {
1595 79 2 if (SvROK(val)) {
1614 187 2 else if (*name != '$') {
1616 187 0 name = SvPV(name_sv, name_len);
1621 862 0 name = SvPV(name_sv, name_len);
1624 250 882 if (style.indent >= 2 && !terse) {
246 4 if (style.indent >= 2 && !terse) {
1639 316 816 FREETMPS;
1643 1096 36 if (postlen >= 0 || !terse) {
1087 9 if (postlen >= 0 || !terse) {
1651 36 1096 if (postlen >= 0) {
1654 132 36 for (i = 0; i <= postlen; ++i) {
1657 132 0 if (svp && (elem = *svp)) {
132 0 if (svp && (elem = *svp)) {
1659 96 36 if (i < postlen) {
1670 241 891 if (gimme == G_ARRAY) {
1671 0 241 XPUSHs(retval);
1672 79 162 if (i < imax) /* not the last time thro ? */
1679 4 369 if (style.maxrecursed)
1686 207 162 if (gimme != G_ARRAY)
1687 0 207 XPUSHs(retval);
1699 6 0 SvMAGICAL(sv) && (mg = mg_find(sv, 'V'))
1701 6 1705 : &PL_sv_undef;