line |
true |
false |
branch |
115
|
103 |
360 |
if @_ |
122
|
0 |
74 |
if ref $class |
128
|
17 |
57 |
if (@_) |
129
|
0 |
17 |
unless ($obj->read(@_)) |
209
|
50 |
2 |
if (defined $file) { } |
216
|
0 |
50 |
unless my $handle = $self->_get_handle($file, $gzip, sub {
;
}
->(1)) |
219
|
2 |
48 |
unless my $data = $self->_read_tar($handle, $opts) |
223
|
5 |
43 |
wantarray ? : |
228
|
0 |
92 |
unless defined $file |
233
|
0 |
92 |
if (ref $file) |
234
|
0 |
0 |
if eval {
do {
*$file{'IO'}
}
} |
235
|
0 |
0 |
if eval {
do {
$file->isa('IO::Handle')
}
} |
245
|
62 |
30 |
if (sub {
;
}
->($mode)) |
246
|
0 |
62 |
unless (open my $tmp, $file) |
260
|
20 |
72 |
if (do {
sub {
package Archive::Tar::Constant;
use warnings;
$_[0] =~ /^r/ ? 1 : 0;
}
->($mode) and $magic =~ /^\x42\x5A\x68[\x30-\x39]/ unless $compress eq 'bzip2'
}) { } |
|
59 |
13 |
elsif ($compress or sub {
package Archive::Tar::Constant;
use warnings;
$_[0] =~ /^r/ ? 1 : 0;
}
->($mode) or $magic =~ /^(?:\037\213|\037\235)/) { } |
284
|
81 |
11 |
unless $compress eq 'bzip2' |
291
|
12 |
8 |
if (sub {
package Archive::Tar::Constant;
use warnings;
$_[0] =~ /^r/ ? 1 : 0;
}
->($mode)) { } |
292
|
0 |
12 |
unless ($fh = 'IO::Uncompress::Bunzip2'->new($file, 'MultiStream', 1)) |
300
|
0 |
8 |
unless ($fh = 'IO::Compress::Bzip2'->new($file)) |
317
|
0 |
59 |
unless ($fh->open($file, $mode)) |
326
|
0 |
13 |
unless ($fh->open($file, $mode)) |
342
|
0 |
77 |
unless my $handle = shift() |
353
|
28 |
49 |
if $count > 0 |
366
|
105 |
500 |
if (ref $handle ne 'IO::Zlib') { } |
375
|
73 |
532 |
unless ($read++) |
377
|
0 |
73 |
if ($chunk =~ /$gzip/) |
384
|
2 |
71 |
if (length $chunk != 512) |
391
|
1 |
602 |
if length $chunk != 512 |
396
|
334 |
268 |
if $chunk eq "\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000" |
404
|
0 |
268 |
unless ($nulls eq substr($chunk, 500, 12)) |
415
|
61 |
207 |
if defined $real_name |
417
|
0 |
268 |
unless ($entry = 'Archive::Tar::File'->new('chunk', $chunk, %extra_args)) |
427
|
0 |
268 |
if $entry->is_label |
429
|
202 |
66 |
if (length $entry->type and $entry->is_file || $entry->is_longlink) |
431
|
0 |
202 |
if ($entry->is_file and not $entry->validate) |
436
|
0 |
0 |
if length $name > 100 |
451
|
0 |
202 |
if ($md5) { } |
|
22 |
180 |
elsif ($filter and not $entry->name =~ /$filter/) { } |
|
22 |
158 |
elsif ($filter_cb and not &$filter_cb($entry)) { } |
|
0 |
158 |
elsif ($entry->name eq 'pax_global_header' or $entry->type =~ /^(x|g)$/) { } |
468
|
44 |
158 |
if ($skip) { } |
480
|
44 |
0 |
if $this > $amt |
481
|
0 |
44 |
if ($handle->read($$data, $this) < $this) |
488
|
44 |
0 |
if $fsz < 0 |
489
|
0 |
44 |
if $skip == 5 |
491
|
0 |
0 |
if $skip == 5 and not $entry->is_longlink and not $entry->is_unknown and not $entry->is_label |
498
|
0 |
158 |
if ($handle->read($$data, $block) < $block) |
504
|
158 |
0 |
if defined $$data |
509
|
61 |
141 |
if ($entry->is_longlink) |
537
|
61 |
207 |
if ($entry->is_longlink) { } |
|
61 |
146 |
elsif (defined $real_name) { } |
546
|
20 |
187 |
if ($filter and not $entry->name =~ /$filter/) { } |
|
20 |
167 |
elsif ($filter_cb and not &$filter_cb($entry)) { } |
|
0 |
167 |
elsif ($entry->name eq 'pax_global_header' or $entry->type =~ /^(x|g)$/) { } |
559
|
9 |
0 |
if ($extract and not $entry->is_longlink and not $entry->is_unknown and not $entry->is_label) |
562
|
0 |
9 |
unless $self->_extract_file($entry) |
566
|
0 |
167 |
if $entry->name eq '' |
570
|
9 |
158 |
$extract ? : |
572
|
18 |
149 |
if ($limit) |
573
|
12 |
6 |
unless $entry->is_longlink or $entry->is_dir |
574
|
12 |
6 |
unless $count |
599
|
0 |
2 |
unless defined $full |
604
|
1 |
1 |
if $self->_find_entry($full) |
633
|
13 |
0 |
unless $self->{'cwd'} |
636
|
2 |
11 |
if (@args) { } |
640
|
1 |
1 |
if (UNIVERSAL::isa($file, 'Archive::Tar::File')) { } |
652
|
1 |
0 |
if (exists $hashmap->{$file}) { } |
668
|
0 |
13 |
unless (scalar @files) |
675
|
0 |
41 |
unless ($self->_extract_file($entry)) |
702
|
0 |
65 |
unless defined $file |
705
|
0 |
65 |
unless my $entry = $self->_find_entry($file) |
713
|
0 |
117 |
unless my $entry = shift() |
717
|
61 |
56 |
defined $alt ? : |
722
|
61 |
56 |
if (defined $alt) { } |
732
|
30 |
87 |
if ($vol or 'File::Spec'->file_name_is_absolute($dirs)) { } |
736
|
0 |
0 |
unless (defined $alt or $Archive::Tar::INSECURE_EXTRACT_MODE) |
751
|
41 |
46 |
ref $self && defined $self->{'cwd'} ? : |
753
|
31 |
56 |
defined $alt ? : |
758
|
55 |
1 |
unless (defined $alt or $Archive::Tar::INSECURE_EXTRACT_MODE) |
764
|
1 |
54 |
if (grep {$_ eq '..';} @dirs) |
784
|
31 |
7 |
if ref $self and $self->{'_link_cache'}{$full_path} |
786
|
0 |
15 |
if (-l $full_path) |
800
|
7 |
8 |
if ref $self |
813
|
86 |
0 |
if length $cwd_file |
832
|
0 |
86 |
unless (defined $dir) |
833
|
0 |
0 |
if $^W |
839
|
0 |
116 |
if (-e $dir and not -d _) |
840
|
0 |
0 |
if $^W |
844
|
7 |
109 |
unless (-d _) |
846
|
0 |
7 |
if ($@) |
865
|
6 |
110 |
if $entry->is_dir |
869
|
0 |
110 |
if ($entry->is_unknown) |
882
|
9 |
101 |
if (-l $full or -e _) |
883
|
0 |
9 |
unless (unlink $full) |
888
|
108 |
2 |
if (length $entry->type and $entry->is_file) { } |
890
|
0 |
108 |
unless $fh->open($full, '>') |
895
|
98 |
10 |
if ($entry->size) |
897
|
0 |
98 |
unless syswrite $fh, $entry->data |
903
|
0 |
108 |
unless close $fh |
909
|
0 |
2 |
unless $self->_make_special_file($entry, $full) |
915
|
108 |
2 |
unless (-l $full) |
916
|
0 |
108 |
unless utime time, $entry->mtime - 0, $full |
920
|
108 |
2 |
if ($Archive::Tar::CHOWN and sub {
;
}
->() and not -l $full) |
921
|
0 |
108 |
unless CORE::chown $entry->uid, $entry->gid, $full |
927
|
108 |
2 |
if ($Archive::Tar::CHMOD and not -l $full) |
929
|
0 |
108 |
unless ($Archive::Tar::SAME_PERMISSIONS) |
932
|
0 |
108 |
unless CORE::chmod $mode, $full |
941
|
0 |
2 |
unless my $entry = shift() |
942
|
0 |
2 |
unless defined $file |
946
|
2 |
0 |
if ($entry->is_symlink) { } |
|
0 |
0 |
elsif ($entry->is_hardlink) { } |
|
0 |
0 |
elsif ($entry->is_fifo) { } |
|
0 |
0 |
elsif ($entry->is_blockdev or $entry->is_chardev) { } |
|
0 |
0 |
elsif ($entry->is_socket) { } |
949
|
0 |
2 |
unless symlink $entry->linkname, $file |
956
|
0 |
2 |
if $fail |
962
|
0 |
0 |
unless link $entry->linkname, $file |
969
|
0 |
0 |
if $fail |
973
|
0 |
0 |
if system 'mknod', $file, 'p' |
977
|
0 |
0 |
$entry->is_blockdev ? : |
979
|
0 |
0 |
if system 'mknod', $file, $mode, $entry->devmajor, $entry->devminor |
990
|
0 |
2 |
$err ? : |
997
|
0 |
0 |
unless my $entry = shift() |
998
|
0 |
0 |
unless defined $file |
1004
|
0 |
0 |
unless ($orig) |
1013
|
0 |
0 |
unless $self->_extract_file($clone, $file) |
1042
|
0 |
31 |
unless ($self->_data) |
1043
|
0 |
0 |
unless $self->read |
1046
|
31 |
0 |
if (@$aref == 0 or @$aref == 1 and $aref->[0] eq 'name') { } |
1068
|
0 |
118 |
unless (defined $file) |
1074
|
16 |
102 |
if UNIVERSAL::isa($file, 'Archive::Tar::File') |
1077
|
102 |
0 |
if ($self->_data) |
1080
|
99 |
151 |
if $path eq $file |
1084
|
3 |
0 |
unless ($Archive::Tar::RESOLVE_SYMLINK =~ /none/) |
1085
|
0 |
3 |
if (my $link_entry = shift()) |
1087
|
0 |
0 |
if $self->_data |
1092
|
0 |
0 |
if ($Archive::Tar::RESOLVE_SYMLINK =~ /speed/ and @$iterargs == 3) |
1098
|
0 |
0 |
if ($archive->_data) |
1108
|
0 |
0 |
if ($e->full_path eq $file) |
1135
|
59 |
4 |
unless @_ |
1153
|
0 |
11 |
unless my $entry = $self->_find_entry(shift()) |
1166
|
0 |
1 |
unless my $entry = $self->_find_entry(shift()) |
1184
|
0 |
2 |
unless defined $file |
1185
|
0 |
2 |
unless defined $new |
1187
|
0 |
2 |
unless my $entry = $self->_find_entry($file) |
1202
|
0 |
1 |
unless defined $file |
1203
|
0 |
1 |
unless defined $mode and $mode =~ /^[0-7]{1,4}$/ |
1206
|
0 |
1 |
unless my $entry = $self->_find_entry($file) |
1221
|
0 |
2 |
unless defined $file |
1222
|
0 |
2 |
unless defined $uname |
1226
|
0 |
2 |
unless my $entry = $self->_find_entry($file) |
1260
|
0 |
2 |
unless my $self = shift() |
1308
|
3 |
30 |
unless defined $file |
1310
|
33 |
0 |
unless defined $ext_prefix |
1317
|
0 |
0 |
$Archive::Tar::HAS_IO_STRING ? : |
|
3 |
0 |
$Archive::Tar::HAS_PERLIO ? : |
|
30 |
3 |
length $file ? : |
1338
|
4 |
83 |
if ($Archive::Tar::DO_NOT_USE_PREFIX) { } |
1342
|
0 |
4 |
length $ext_prefix ? : |
1357
|
0 |
83 |
if length $ext_prefix |
1371
|
15 |
72 |
if ($make_longlink) |
1378
|
0 |
15 |
unless ($longlink) |
1402
|
0 |
102 |
if $link_ok |
1406
|
0 |
102 |
unless ($header) |
1412
|
0 |
102 |
unless (print $handle $header) |
1418
|
80 |
22 |
if ($link_ok or $data_ok) |
1419
|
0 |
80 |
unless (print $handle $clone->data) |
1426
|
80 |
0 |
if $clone->size % 512 |
1433
|
0 |
33 |
unless print $handle "\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000" |
1439
|
3 |
0 |
$Archive::Tar::HAS_PERLIO ? : |
|
30 |
3 |
length $file ? : |
1442
|
33 |
0 |
if ($file ne $handle) |
1443
|
0 |
33 |
unless (close $handle) |
1454
|
0 |
102 |
unless my $entry = shift() |
1455
|
102 |
0 |
unless defined $ext_prefix |
1459
|
0 |
102 |
unless defined $prefix |
1470
|
0 |
102 |
if length $ext_prefix |
1475
|
7 |
95 |
if length $prefix >= 155 |
1477
|
0 |
102 |
$Archive::Tar::ZERO_PAD_NUMBERS ? : |
1494
|
0 |
102 |
$no_prefix ? : |
1500
|
0 |
102 |
$Archive::Tar::ZERO_PAD_NUMBERS ? : |
1530
|
0 |
24 |
unless my(@files) = @_ |
1538
|
25 |
16 |
if (UNIVERSAL::isa($file, 'Archive::Tar::File')) |
1544
|
0 |
16 |
if (utf8::is_utf8($file)) |
1549
|
0 |
16 |
unless (-e $file or -l $file) |
1555
|
0 |
16 |
unless ($obj) |
1626
|
1 |
14 |
unless ($obj) |
1656
|
9 |
0 |
if (ref $self) |
1663
|
0 |
9 |
if ($Archive::Tar::WARN) |
1664
|
0 |
0 |
$Archive::Tar::DEBUG ? : |
1672
|
20 |
2 |
if (ref $self) { } |
1673
|
0 |
20 |
shift() ? : |
1675
|
0 |
2 |
shift() ? : |
1764
|
0 |
9 |
unless defined $file |
1768
|
0 |
9 |
unless (@files) |
1806
|
0 |
12 |
unless defined $filename |
1811
|
0 |
12 |
unless my $handle = $class->_get_handle($filename, $compressed, sub {
;
}
->(1)) |
1820
|
2 |
27 |
if @data |
1821
|
0 |
27 |
unless $handle |
1825
|
27 |
0 |
if ref $tarfile and ref $tarfile eq 'ARRAY' |
1826
|
27 |
0 |
unless ($Archive::Tar::RESOLVE_SYMLINK =~ /none/) |
1829
|
1 |
16 |
if ($_->linkname) |
1837
|
15 |
12 |
if @data |
1841
|
0 |
12 |
if (@$CONSTRUCT_ARGS == 4) |
1871
|
0 |
3 |
unless defined $file |
1875
|
0 |
3 |
unless $tar |
1896
|
0 |
9 |
unless defined $file |
1899
|
0 |
9 |
unless my $tar = $class->new |
1981
|
0 |
0 |
if (@trg and $trg[0] eq '') |
1987
|
0 |
0 |
if $part eq '.' |
1988
|
0 |
0 |
if ($part eq '..') { } |
1998
|
0 |
0 |
if $Archive::Tar::DEBUG |