| line |
true |
false |
branch |
|
36
|
19 |
0 |
if (scalar(@_) % 2) |
|
43
|
1 |
18 |
if ($filename eq '-') |
|
47
|
17 |
13 |
if (-f $filename . $ext) |
|
63
|
0 |
18 |
unless ($self->read($header, 32) == 32) |
|
84
|
1 |
59 |
if $field_def eq "\r" |
|
86
|
0 |
59 |
if ($read != 31) |
|
95
|
21 |
38 |
if ($type eq 'C') { } |
|
|
8 |
30 |
elsif ($type eq 'L') { } |
|
|
20 |
10 |
elsif ($type =~ /^[NFD]$/) { } |
|
|
0 |
10 |
elsif ($type eq 'I') { } |
|
|
0 |
10 |
elsif ($type eq 'B') { } |
|
|
10 |
0 |
elsif ($type =~ /^[WMGP]$/) { } |
|
|
0 |
0 |
elsif ($type eq 'T') { } |
|
|
0 |
0 |
elsif ($type eq '0') { } |
|
|
0 |
0 |
elsif ($type eq 'Y') { } |
|
97
|
0 |
21 |
if ($decimal and not $self->{'openoptions'}{'nolongchars'}) |
|
101
|
1861 |
0 |
if ($self->{'ChopBlanks'}) |
|
105
|
0 |
0 |
$value eq '' ? : |
|
108
|
16 |
0 |
defined $value ? : |
|
114
|
4 |
10 |
if ($value =~ /^[YyTt]$/) |
|
115
|
3 |
7 |
if ($value =~ /^[NnFf]$/) |
|
119
|
2 |
1 |
$value ? : |
|
|
3 |
1 |
defined $value ? : |
|
125
|
60 |
0 |
$value =~ /\d/ ? : |
|
128
|
17 |
0 |
if (defined $value) { } |
|
150
|
7 |
2 |
unless (defined $memo or $self->{'openoptions'}{'ignorememo'}) |
|
151
|
0 |
7 |
unless $memo = $self->{'memo'} = $self->init_memo_field |
|
153
|
6 |
4 |
if (defined $memo and $length == 10) { } |
|
|
2 |
2 |
elsif (defined $memo and $length == 4) { } |
|
154
|
0 |
6 |
if (ref $memo eq 'XBase::Memo::Apollo') { } |
|
160
|
0 |
8 |
if not $value =~ /\d/ or $value < 0 |
|
161
|
8 |
0 |
if defined $memo |
|
164
|
4 |
0 |
if defined $memo and defined $_[0] and $_[0] ne '' |
|
165
|
4 |
0 |
defined $value ? : |
|
172
|
0 |
4 |
if $val < 0 |
|
173
|
4 |
0 |
if defined $memo |
|
176
|
2 |
0 |
if defined $memo |
|
177
|
2 |
0 |
defined $value ? : |
|
221
|
0 |
0 |
if ($y & 2147483648) { } |
|
229
|
0 |
0 |
if ($value < 0) { } |
|
254
|
0 |
18 |
if ($lastoffset > $self->{'record_len'} and not defined $self->{'openoptions'}{'nolongchars'}) |
|
261
|
0 |
18 |
if ($lastoffset != $self->{'record_len'} and not defined $self->{'openoptions'}{'ignorebadheader'}) |
|
266
|
1 |
17 |
if ($self->{'openoptions'}{'recompute_lastrecno'}) |
|
289
|
0 |
7 |
if defined $self->{'memo'} |
|
294
|
0 |
7 |
if (defined $self->{'openoptions'}{'memofile'}) |
|
301
|
7 |
3 |
if $memoname =~ s/\.dbf$/.$_/i || $memoname =~ s/(\.dbf)?$/.$_/i and $memo = 'XBase::Memo'->new($memoname, %options) |
|
311
|
2 |
3 |
if (defined $self->{'memo'}) |
|
335
|
0 |
14 |
unless defined(my $num = $self->field_name_to_num($name)) |
|
340
|
0 |
2 |
unless defined(my $num = $self->field_name_to_num($name)) |
|
345
|
0 |
0 |
unless defined(my $num = $self->field_name_to_num($name)) |
|
386
|
2 |
0 |
if (ref $self) |
|
388
|
1 |
1 |
$year >= 70 ? : |
|
394
|
2 |
0 |
if ref $version |
|
397
|
0 |
2 |
if ($version == 48 or $version == 245) { } |
|
|
0 |
2 |
elsif ($version & 8) { } |
|
|
2 |
0 |
elsif ($version & 128) { } |
|
406
|
0 |
2 |
if (exists $result->{'foxpro'}) |
|
409
|
0 |
2 |
if (exists $result->{'memo'}) { } |
|
|
2 |
0 |
elsif (exists $result->{'dbt'}) { } |
|
433
|
0 |
0 |
if (defined $table) |
|
435
|
0 |
0 |
if ($@) { } |
|
446
|
0 |
0 |
if (defined $fields) |
|
447
|
0 |
0 |
if (ref $fields eq 'ARRAY') { } |
|
453
|
0 |
0 |
if (defined $self->field_name_to_num($fields[$i])) { } |
|
|
0 |
0 |
elsif ($fields[$i] =~ /^(.*)-(.*)/) { } |
|
459
|
0 |
0 |
if ($start eq '') |
|
462
|
0 |
0 |
if ($end eq '') |
|
467
|
0 |
0 |
if ($start ne '' and not defined $start_num) |
|
470
|
0 |
0 |
if ($end ne '' and not defined $end_num) |
|
473
|
0 |
0 |
unless (defined $start and defined $end) |
|
486
|
0 |
0 |
if (@unknown_fields) |
|
492
|
0 |
0 |
if (defined $table) { } |
|
496
|
0 |
0 |
if ($_[0]) { } |
|
501
|
0 |
0 |
defined $_ ? : |
|
525
|
0 |
1 |
unless my(@list) = $self->get_record($num) |
|
528
|
1 |
0 |
if wantarray |
|
533
|
2 |
1543 |
unless my $data = $self->read_record($num) |
|
534
|
100 |
1443 |
unless (@fieldnums) |
|
539
|
1953 |
0 |
if defined $_ |
|
540
|
1953 |
0 |
defined $e ? : |
|
543
|
1953 |
0 |
defined $_ && defined $rproc->[$_] ? : |
|
565
|
3 |
1540 |
if ($value eq '*') { } |
|
|
1540 |
0 |
elsif ($value eq ' ') { } |
|
590
|
1 |
13 |
if (defined $self->{'attached_index_columns'}) |
|
596
|
2 |
0 |
if ($old_data[$nf] ne $data[$nf]) |
|
637
|
0 |
0 |
unless %olddata |
|
645
|
0 |
16 |
unless my $ret = $self->SUPER::write_record($num, @_) |
|
647
|
13 |
3 |
if ($num > $self->last_record) |
|
649
|
0 |
13 |
unless $self->update_last_record($num) |
|
651
|
0 |
16 |
unless $self->update_last_change |
|
670
|
11 |
7 |
if defined $self->{'updated_today'} |
|
671
|
7 |
0 |
if $y >= 100 |
|
672
|
0 |
7 |
unless $self->write_to(1, pack('C3', ($y, $m, $d))) |
|
688
|
0 |
2 |
if (ref $class) |
|
693
|
2 |
0 |
unless (defined $version) |
|
694
|
0 |
2 |
if (defined $options{'memofile'} and $options{'memofile'} =~ /\.fpt$/i) { } |
|
704
|
0 |
8 |
unless (defined $options{$key}) |
|
717
|
0 |
7 |
unless defined $name |
|
720
|
0 |
7 |
unless defined $type |
|
725
|
0 |
7 |
unless (defined $length) |
|
726
|
0 |
0 |
if ($type eq 'C') { } |
|
|
0 |
0 |
elsif ($type =~ /^[TD]$/) { } |
|
|
0 |
0 |
elsif ($type =~ /^[NF]$/) { } |
|
731
|
1 |
6 |
if ($type =~ /^[MBGP]$/) { } |
|
|
1 |
5 |
elsif ($type eq 'L') { } |
|
|
0 |
5 |
elsif ($type eq 'Y') { } |
|
735
|
3 |
4 |
unless (defined $decimal) |
|
741
|
2 |
5 |
if ($type eq 'C') |
|
747
|
1 |
6 |
if ($type eq 'M') |
|
749
|
1 |
0 |
if ($version != 48) |
|
776
|
1 |
1 |
if (defined $newname and not $newname =~ /\.dbf$/) |
|
779
|
0 |
2 |
unless $tmp->create_file($newname, 448) |
|
780
|
0 |
2 |
unless $tmp->write_to(0, $header) |
|
784
|
1 |
1 |
if ($needmemo) |
|
787
|
1 |
0 |
unless (defined $dbtname) |
|
789
|
0 |
1 |
if ($version == 48 or $version == 245) { } |
|
790
|
0 |
0 |
unless $dbtname =~ s/\.DBF$/.FPT/ |
|
792
|
1 |
0 |
unless $dbtname =~ s/\.DBF$/.DBT/ |
|
797
|
0 |
1 |
if $version == 48 |
|
798
|
0 |
1 |
unless $dbttmp->create('name', $dbtname, 'version', $memoversion, 'dbf_filename', $basename) |
|
809
|
1 |
0 |
if (ref $self) |
|
810
|
1 |
0 |
if (defined $self->{'memo'}) |
|
821
|
0 |
0 |
unless my $ret = $self->SUPER::locksh |
|
822
|
0 |
0 |
if (defined $self->{'memo'}) |
|
823
|
0 |
0 |
unless ($self->{'memo'}->locksh) |
|
832
|
0 |
0 |
unless my $ret = $self->SUPER::lockex |
|
833
|
0 |
0 |
if (defined $self->{'memo'}) |
|
834
|
0 |
0 |
unless ($self->{'memo'}->lockex) |
|
843
|
0 |
0 |
if defined $self->{'memo'} |
|
855
|
0 |
1 |
unless (my $index = $self->XBase::Index::new($indexfile)) |
|
860
|
0 |
1 |
if $XBase::Index::VERBOSE |
|
863
|
1 |
0 |
if (@tags) { } |
|
867
|
0 |
5 |
unless (my $index = $self->XBase::Index::new($indexfile, 'tag', $tag)) |
|
881
|
0 |
5 |
if $XBase::Index::VERBOSE |
|
884
|
1 |
4 |
unless defined $self->{'attached_index'} |
|
898
|
1 |
1 |
unless (@_) |
|
907
|
0 |
0 |
if (@_) |
|
914
|
4 |
4 |
if (ref $file eq 'ARRAY') |
|
917
|
0 |
4 |
if (defined $file->[2]) |
|
923
|
6 |
2 |
unless (@_) |
|
927
|
0 |
8 |
unless (my $index = 'XBase::Index'->new($file, 'dbf', $self, @tagopts)) |
|
929
|
0 |
8 |
unless ($index->prepare_select) |
|
942
|
110 |
2 |
if (defined $recno) { } |
|
947
|
110 |
0 |
if (@result and not $del) |
|
959
|
0 |
0 |
if (@data) |
|
998
|
1317 |
0 |
unless ($del) |