| line | true | false | branch | 
 
| 35 | 0 | 6670 | PUSHMARK(SP); | 
 
| 36 | 0 | 6670 | XPUSHs(cache); | 
 
| 37 | 0 | 6670 | XPUSHs(sv_2mortal(newSViv(uid))); | 
 
| 38 | 0 | 6670 | XPUSHs(sv_2mortal(newSViv(gid))); | 
 
| 41 | 0 | 6670 | if ((retc = call_method("lookup", G_ARRAY)) < 2) { | 
 
| 47 | 6670 | 0 | if (retc == 2) { | 
 
| 52 | 6670 | 0 | if ((item = POPs) != NULL && SvOK(item)) { | 
 
|  | 0 | 6670 | if ((item = POPs) != NULL && SvOK(item)) { | 
 
|  | 0 | 0 | if ((item = POPs) != NULL && SvOK(item)) { | 
 
|  | 0 | 0 | if ((item = POPs) != NULL && SvOK(item)) { | 
 
| 53 | 6670 | 0 | tmp = SvPV(item, len); | 
 
| 55 | 0 | 6670 | if ((*group = b_string_new_len(tmp, len)) == NULL) { | 
 
| 60 | 6670 | 0 | if ((item = POPs) != NULL && SvOK(item)) { | 
 
|  | 0 | 6670 | if ((item = POPs) != NULL && SvOK(item)) { | 
 
|  | 0 | 0 | if ((item = POPs) != NULL && SvOK(item)) { | 
 
|  | 0 | 0 | if ((item = POPs) != NULL && SvOK(item)) { | 
 
| 61 | 6670 | 0 | tmp = SvPV(item, len); | 
 
| 63 | 0 | 6670 | if ((*user = b_string_new_len(tmp, len)) == NULL) { | 
 
| 71 | 6670 | 0 | FREETMPS; | 
 
| 84 | 0 | 0 | FREETMPS; | 
 
| 104 | 0 | 6 | PUSHMARK(SP); | 
 
| 105 | 0 | 6 | XPUSHs(cache); | 
 
| 106 | 0 | 6 | XPUSHs(sv_2mortal(newSViv(dev))); | 
 
| 107 | 0 | 6 | XPUSHs(sv_2mortal(newSViv(ino))); | 
 
| 108 | 0 | 6 | XPUSHs(sv_2mortal(newSVpv(path->str, path->len))); | 
 
| 113 | 3 | 3 | if ((retc = call_method("lookup", G_ARRAY)) != 1) { | 
 
| 119 | 3 | 0 | if ((item = POPs) != NULL && SvOK(item)) { | 
 
|  | 0 | 3 | if ((item = POPs) != NULL && SvOK(item)) { | 
 
|  | 0 | 0 | if ((item = POPs) != NULL && SvOK(item)) { | 
 
|  | 0 | 0 | if ((item = POPs) != NULL && SvOK(item)) { | 
 
| 120 | 3 | 0 | tmp = SvPV(item, len); | 
 
| 122 | 0 | 3 | if ((path = b_string_new_len(tmp, len)) == NULL) { | 
 
| 130 | 6 | 0 | FREETMPS; | 
 
| 137 | 0 | 0 | if (err == NULL) return; | 
 
| 145 | 0 | 6587 | if (options & B_BUILDER_FOLLOW_SYMLINKS) { | 
 
| 149 | 0 | 6587 | if (options & B_BUILDER_IGNORE_SOCKETS) { | 
 
| 170 | 0 | 91 | if ((items - 1) % 2 != 0) { | 
 
| 174 | 83 | 91 | for (i=1; i | 
 
| 175 | 83 | 0 | char *key = SvPV_nolen(ST(i)); | 
 
| 178 | 26 | 57 | if (strcmp(key, "quiet")              == 0 && SvIV(value)) options |= B_BUILDER_QUIET; | 
 
|  | 26 | 0 | if (strcmp(key, "quiet")              == 0 && SvIV(value)) options |= B_BUILDER_QUIET; | 
 
|  | 26 | 0 | if (strcmp(key, "quiet")              == 0 && SvIV(value)) options |= B_BUILDER_QUIET; | 
 
| 179 | 0 | 83 | if (strcmp(key, "ignore_errors")      == 0 && SvIV(value)) options |= B_BUILDER_IGNORE_ERRORS; | 
 
|  | 0 | 0 | if (strcmp(key, "ignore_errors")      == 0 && SvIV(value)) options |= B_BUILDER_IGNORE_ERRORS; | 
 
|  | 0 | 0 | if (strcmp(key, "ignore_errors")      == 0 && SvIV(value)) options |= B_BUILDER_IGNORE_ERRORS; | 
 
| 180 | 0 | 83 | if (strcmp(key, "follow_symlinks")    == 0 && SvIV(value)) options |= B_BUILDER_FOLLOW_SYMLINKS; | 
 
|  | 0 | 0 | if (strcmp(key, "follow_symlinks")    == 0 && SvIV(value)) options |= B_BUILDER_FOLLOW_SYMLINKS; | 
 
|  | 0 | 0 | if (strcmp(key, "follow_symlinks")    == 0 && SvIV(value)) options |= B_BUILDER_FOLLOW_SYMLINKS; | 
 
| 181 | 9 | 74 | if (strcmp(key, "preserve_hardlinks") == 0 && SvIV(value)) options |= B_BUILDER_PRESERVE_HARDLINKS; | 
 
|  | 9 | 0 | if (strcmp(key, "preserve_hardlinks") == 0 && SvIV(value)) options |= B_BUILDER_PRESERVE_HARDLINKS; | 
 
|  | 9 | 0 | if (strcmp(key, "preserve_hardlinks") == 0 && SvIV(value)) options |= B_BUILDER_PRESERVE_HARDLINKS; | 
 
| 182 | 34 | 49 | if (strcmp(key, "gnu_extensions")     == 0 && SvIV(value)) options |= B_BUILDER_GNU_EXTENSIONS; | 
 
|  | 34 | 0 | if (strcmp(key, "gnu_extensions")     == 0 && SvIV(value)) options |= B_BUILDER_GNU_EXTENSIONS; | 
 
|  | 34 | 0 | if (strcmp(key, "gnu_extensions")     == 0 && SvIV(value)) options |= B_BUILDER_GNU_EXTENSIONS; | 
 
| 183 | 14 | 69 | if (strcmp(key, "posix_extensions")   == 0 && SvIV(value)) options |= B_BUILDER_PAX_EXTENSIONS; | 
 
|  | 14 | 0 | if (strcmp(key, "posix_extensions")   == 0 && SvIV(value)) options |= B_BUILDER_PAX_EXTENSIONS; | 
 
|  | 14 | 0 | if (strcmp(key, "posix_extensions")   == 0 && SvIV(value)) options |= B_BUILDER_PAX_EXTENSIONS; | 
 
| 184 | 0 | 83 | if (strcmp(key, "ignore_sockets")     == 0 && SvIV(value)) options |= B_BUILDER_IGNORE_SOCKETS; | 
 
|  | 0 | 0 | if (strcmp(key, "ignore_sockets")     == 0 && SvIV(value)) options |= B_BUILDER_IGNORE_SOCKETS; | 
 
|  | 0 | 0 | if (strcmp(key, "ignore_sockets")     == 0 && SvIV(value)) options |= B_BUILDER_IGNORE_SOCKETS; | 
 
| 185 | 0 | 83 | if (strcmp(key, "block_factor")       == 0 && SvIV(value)) block_factor = SvIV(value); | 
 
|  | 0 | 0 | if (strcmp(key, "block_factor")       == 0 && SvIV(value)) block_factor = SvIV(value); | 
 
|  | 0 | 0 | if (strcmp(key, "block_factor")       == 0 && SvIV(value)) block_factor = SvIV(value); | 
 
|  | 0 | 0 | if (strcmp(key, "block_factor")       == 0 && SvIV(value)) block_factor = SvIV(value); | 
 
| 188 | 0 | 91 | if ((builder = b_builder_new(block_factor)) == NULL) { | 
 
| 196 | 65 | 26 | if (!(options & B_BUILDER_QUIET)) { | 
 
| 203 | 0 | 91 | PUSHMARK(SP); | 
 
| 204 | 0 | 91 | XPUSHs(sv_2mortal(newSVpvf("Archive::Tar::Builder::UserCache"))); | 
 
| 207 | 91 | 0 | if ((retc = call_method("new", G_SCALAR)) >= 1) { | 
 
| 216 | 9 | 82 | if (builder->options & B_BUILDER_PRESERVE_HARDLINKS) { | 
 
| 220 | 0 | 9 | PUSHMARK(SP); | 
 
| 221 | 0 | 9 | XPUSHs(sv_2mortal(newSVpvf("Archive::Tar::Builder::HardlinkCache"))); | 
 
| 224 | 9 | 0 | if ((retc = call_method("new", G_SCALAR)) == 1) { | 
 
| 252 | 0 | 14 | if (b_builder_include(builder, pattern) < 0) { | 
 
| 262 | 7 | 14 | if (b_builder_include_from_file(builder, file) < 0) { | 
 
| 272 | 0 | 14 | if (b_builder_exclude(builder, pattern) < 0) { | 
 
| 282 | 7 | 14 | if (b_builder_exclude_from_file(builder, file) < 0) { | 
 
| 317 | 0 | 6601 | if ((items - 1) % 2 != 0) { | 
 
| 321 | 14 | 6587 | if (b_buffer_get_fd(buf) == 0) { | 
 
| 325 | 6587 | 6579 | for (i=1; i | 
 
| 328 | 6587 | 0 | b_string *path        = b_string_new(SvPV_nolen(ST(i))); | 
 
| 329 | 6587 | 0 | b_string *member_name = b_string_new(SvPV_nolen(ST(i+1))); | 
 
| 331 | 8 | 6579 | if (b_find(builder, path, member_name, B_FIND_CALLBACK(b_builder_write_file), flags) < 0) { | 
 
| 335 | 0 | 8 | if (error_path == NULL) { | 
 
| 357 | 0 | 0 | if (b_buffer_get_fd(buf) == 0) { | 
 
| 361 | 0 | 0 | if ((ret = b_buffer_flush(buf)) < 0) { | 
 
| 382 | 0 | 27 | if (b_buffer_get_fd(buf) == 0) { | 
 
| 386 | 0 | 27 | if ((ret = b_buffer_flush(buf)) < 0) { | 
 
| 390 | 0 | 27 | if (b_error_warn(err) && !(options & B_BUILDER_IGNORE_ERRORS)) { | 
 
|  | 0 | 0 | if (b_error_warn(err) && !(options & B_BUILDER_IGNORE_ERRORS)) { |