| 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 =~ /^[MGP]$/) { } |
|
|
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) { } |
|
145
|
7 |
2 |
unless (defined $memo or $$self{'openoptions'}{'ignorememo'}) |
|
146
|
0 |
7 |
unless $memo = $$self{'memo'} = $self->init_memo_field |
|
148
|
6 |
4 |
if (defined $memo and $length == 10) { } |
|
|
2 |
2 |
elsif (defined $memo and $length == 4) { } |
|
149
|
0 |
6 |
if (ref $memo eq 'XBase::Memo::Apollo') { } |
|
155
|
0 |
8 |
if not $value =~ /\d/ or $value < 0 |
|
156
|
8 |
0 |
if defined $memo |
|
159
|
4 |
0 |
if defined $memo and defined $_[0] and $_[0] ne '' |
|
160
|
4 |
0 |
defined $value ? : |
|
167
|
0 |
4 |
if $val < 0 |
|
168
|
4 |
0 |
if defined $memo |
|
171
|
2 |
0 |
if defined $memo |
|
172
|
2 |
0 |
defined $value ? : |
|
216
|
0 |
0 |
if ($y & 2147483648) { } |
|
224
|
0 |
0 |
if ($value < 0) { } |
|
249
|
0 |
18 |
if ($lastoffset > $$self{'record_len'} and not defined $$self{'openoptions'}{'nolongchars'}) |
|
256
|
0 |
18 |
if ($lastoffset != $$self{'record_len'} and not defined $$self{'openoptions'}{'ignorebadheader'}) |
|
261
|
1 |
17 |
if ($$self{'openoptions'}{'recompute_lastrecno'}) |
|
284
|
0 |
7 |
if defined $$self{'memo'} |
|
289
|
0 |
7 |
if (defined $$self{'openoptions'}{'memofile'}) |
|
296
|
7 |
3 |
if $memoname =~ s/\.dbf$/.$_/i || $memoname =~ s/(\.dbf)?$/.$_/i and $memo = 'XBase::Memo'->new($memoname, %options) |
|
306
|
2 |
3 |
if (defined $$self{'memo'}) |
|
330
|
0 |
14 |
unless defined(my $num = $self->field_name_to_num($name)) |
|
335
|
0 |
2 |
unless defined(my $num = $self->field_name_to_num($name)) |
|
340
|
0 |
0 |
unless defined(my $num = $self->field_name_to_num($name)) |
|
381
|
2 |
0 |
if (ref $self) |
|
383
|
1 |
1 |
$year >= 70 ? : |
|
389
|
2 |
0 |
if ref $version |
|
392
|
0 |
2 |
if ($version == 48 or $version == 245) { } |
|
|
0 |
2 |
elsif ($version & 8) { } |
|
|
2 |
0 |
elsif ($version & 128) { } |
|
401
|
0 |
2 |
if (exists $$result{'foxpro'}) |
|
404
|
0 |
2 |
if (exists $$result{'memo'}) { } |
|
|
2 |
0 |
elsif (exists $$result{'dbt'}) { } |
|
428
|
0 |
0 |
if (defined $table) |
|
430
|
0 |
0 |
if ($@) { } |
|
441
|
0 |
0 |
if (defined $fields) |
|
442
|
0 |
0 |
if (ref $fields eq 'ARRAY') { } |
|
448
|
0 |
0 |
if (defined $self->field_name_to_num($fields[$i])) { } |
|
|
0 |
0 |
elsif ($fields[$i] =~ /^(.*)-(.*)/) { } |
|
454
|
0 |
0 |
if ($start eq '') |
|
457
|
0 |
0 |
if ($end eq '') |
|
462
|
0 |
0 |
if ($start ne '' and not defined $start_num) |
|
465
|
0 |
0 |
if ($end ne '' and not defined $end_num) |
|
468
|
0 |
0 |
unless (defined $start and defined $end) |
|
481
|
0 |
0 |
if (@unknown_fields) |
|
487
|
0 |
0 |
if (defined $table) { } |
|
491
|
0 |
0 |
if ($_[0]) { } |
|
496
|
0 |
0 |
defined $_ ? : |
|
520
|
0 |
1 |
unless my(@list) = $self->get_record($num) |
|
523
|
1 |
0 |
if wantarray |
|
528
|
2 |
1543 |
unless my $data = $self->read_record($num) |
|
529
|
100 |
1443 |
unless (@fieldnums) |
|
534
|
1953 |
0 |
if defined $_ |
|
535
|
1953 |
0 |
defined $e ? : |
|
538
|
1953 |
0 |
defined $_ && defined $$rproc[$_] ? : |
|
560
|
3 |
1540 |
if ($value eq '*') { } |
|
|
1540 |
0 |
elsif ($value eq ' ') { } |
|
585
|
1 |
13 |
if (defined $$self{'attached_index_columns'}) |
|
591
|
2 |
0 |
if ($old_data[$nf] ne $data[$nf]) |
|
632
|
0 |
0 |
unless %olddata |
|
640
|
0 |
16 |
unless my $ret = $self->SUPER::write_record($num, @_) |
|
642
|
13 |
3 |
if ($num > $self->last_record) |
|
644
|
0 |
13 |
unless $self->update_last_record($num) |
|
646
|
0 |
16 |
unless $self->update_last_change |
|
665
|
11 |
7 |
if defined $$self{'updated_today'} |
|
666
|
7 |
0 |
if $y >= 100 |
|
667
|
0 |
7 |
unless $self->write_to(1, pack('C3', ($y, $m, $d))) |
|
683
|
0 |
2 |
if (ref $class) |
|
688
|
2 |
0 |
unless (defined $version) |
|
689
|
0 |
2 |
if (defined $options{'memofile'} and $options{'memofile'} =~ /\.fpt$/i) { } |
|
699
|
0 |
8 |
unless (defined $options{$key}) |
|
712
|
0 |
7 |
unless defined $name |
|
715
|
0 |
7 |
unless defined $type |
|
720
|
0 |
7 |
unless (defined $length) |
|
721
|
0 |
0 |
if ($type eq 'C') { } |
|
|
0 |
0 |
elsif ($type =~ /^[TD]$/) { } |
|
|
0 |
0 |
elsif ($type =~ /^[NF]$/) { } |
|
726
|
1 |
6 |
if ($type =~ /^[MBGP]$/) { } |
|
|
1 |
5 |
elsif ($type eq 'L') { } |
|
|
0 |
5 |
elsif ($type eq 'Y') { } |
|
730
|
3 |
4 |
unless (defined $decimal) |
|
736
|
2 |
5 |
if ($type eq 'C') |
|
742
|
1 |
6 |
if ($type eq 'M') |
|
744
|
1 |
0 |
if ($version != 48) |
|
771
|
1 |
1 |
if (defined $newname and not $newname =~ /\.dbf$/) |
|
774
|
0 |
2 |
unless $tmp->create_file($newname, 448) |
|
775
|
0 |
2 |
unless $tmp->write_to(0, $header) |
|
779
|
1 |
1 |
if ($needmemo) |
|
782
|
1 |
0 |
unless (defined $dbtname) |
|
784
|
0 |
1 |
if ($version == 48 or $version == 245) { } |
|
785
|
0 |
0 |
unless $dbtname =~ s/\.DBF$/.FPT/ |
|
787
|
1 |
0 |
unless $dbtname =~ s/\.DBF$/.DBT/ |
|
792
|
0 |
1 |
if $version == 48 |
|
793
|
0 |
1 |
unless $dbttmp->create('name', $dbtname, 'version', $memoversion, 'dbf_filename', $basename) |
|
804
|
1 |
0 |
if (ref $self) |
|
805
|
1 |
0 |
if (defined $$self{'memo'}) |
|
816
|
0 |
0 |
unless my $ret = $self->SUPER::locksh |
|
817
|
0 |
0 |
if (defined $$self{'memo'}) |
|
818
|
0 |
0 |
unless ($$self{'memo'}->locksh) |
|
827
|
0 |
0 |
unless my $ret = $self->SUPER::lockex |
|
828
|
0 |
0 |
if (defined $$self{'memo'}) |
|
829
|
0 |
0 |
unless ($$self{'memo'}->lockex) |
|
838
|
0 |
0 |
if defined $$self{'memo'} |
|
850
|
0 |
1 |
unless (my $index = $self->XBase::Index::new($indexfile)) |
|
855
|
0 |
1 |
if $XBase::Index::VERBOSE |
|
858
|
1 |
0 |
if (@tags) { } |
|
862
|
0 |
5 |
unless (my $index = $self->XBase::Index::new($indexfile, 'tag', $tag)) |
|
876
|
0 |
5 |
if $XBase::Index::VERBOSE |
|
878
|
1 |
4 |
unless defined $$self{'attached_index'} |
|
893
|
1 |
1 |
unless (@_) |
|
902
|
0 |
0 |
if (@_) |
|
909
|
4 |
4 |
if (ref $file eq 'ARRAY') |
|
912
|
0 |
4 |
if (defined $$file[2]) |
|
918
|
6 |
2 |
unless (@_) |
|
922
|
0 |
8 |
unless (my $index = 'XBase::Index'->new($file, 'dbf', $self, @tagopts)) |
|
924
|
0 |
8 |
unless ($index->prepare_select) |
|
937
|
110 |
2 |
if (defined $recno) { } |
|
942
|
110 |
0 |
if (@result and not $del) |
|
954
|
0 |
0 |
if (@data) |
|
993
|
1317 |
0 |
unless ($del) |