Skip to content

Commit 4dbaa56

Browse files
committed
fix --git --diff for empty file on L or R, #926
1 parent e53ec8d commit 4dbaa56

File tree

2 files changed

+26
-6
lines changed

2 files changed

+26
-6
lines changed

Unix/cloc

Lines changed: 13 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -2941,15 +2941,25 @@ sub count_filesets { # {{{1
29412941
my $Lang_L = $Language{$fset_a}{$file_L};
29422942
my $Lang_R = $Language{$fset_b}{$file_R};
29432943
#use Data::Dumper;
2944-
#print "file_L=$file_L $Language{$fset_a}{$file_L}\n";
2944+
#print "Language: ", Dumper(\%Language);
2945+
#die "L undefined" unless defined $Language{$fset_a}{$file_L};
2946+
#die "R undefined" unless defined $Language{$fset_b}{$file_R};
2947+
#print "file_L=$file_L file_R=$file_R\n";
29452948
#print "fset_a=$fset_a $Language{$fset_a}{$file_L}\n";
29462949
#print "fset_b=$fset_b $Language{$fset_b}{$file_R}\n";
2947-
if (!defined($Lang_L) or !defined($Lang_R)) {
2950+
# handle cases where one side of the pair couldn't be identified
2951+
if ( defined($Lang_L) and !defined($Lang_R)) {
2952+
$Lang_R = $Lang_L;
2953+
$Language{$fset_b}{$file_R} = $Lang_R;
2954+
} elsif (!defined($Lang_L) and defined($Lang_R)) {
2955+
$Lang_L = $Lang_R;
2956+
$Language{$fset_a}{$file_L} = $Lang_L;
2957+
} elsif (!defined($Lang_L) or !defined($Lang_R)) {
29482958
print " -> count_filesets skipping $file_L, $file_R ",
29492959
"because language cannot be inferred\n" if $opt_v;
29502960
next;
29512961
}
2952-
#print "main step 6 file_L=$file_L file_R=$file_R\n";
2962+
#print "main step 6 file_L=$file_L ($Lang_L) file_R=$file_R ($Lang_R)\n";
29532963
++$nCounted;
29542964
printf "Counting: %d\r", $nCounted
29552965
unless ($counter_type or !$opt_progress_rate or ($nCounted % $opt_progress_rate));

cloc

Lines changed: 13 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -2933,15 +2933,25 @@ sub count_filesets { # {{{1
29332933
my $Lang_L = $Language{$fset_a}{$file_L};
29342934
my $Lang_R = $Language{$fset_b}{$file_R};
29352935
#use Data::Dumper;
2936-
#print "file_L=$file_L $Language{$fset_a}{$file_L}\n";
2936+
#print "Language: ", Dumper(\%Language);
2937+
#die "L undefined" unless defined $Language{$fset_a}{$file_L};
2938+
#die "R undefined" unless defined $Language{$fset_b}{$file_R};
2939+
#print "file_L=$file_L file_R=$file_R\n";
29372940
#print "fset_a=$fset_a $Language{$fset_a}{$file_L}\n";
29382941
#print "fset_b=$fset_b $Language{$fset_b}{$file_R}\n";
2939-
if (!defined($Lang_L) or !defined($Lang_R)) {
2942+
# handle cases where one side of the pair couldn't be identified
2943+
if ( defined($Lang_L) and !defined($Lang_R)) {
2944+
$Lang_R = $Lang_L;
2945+
$Language{$fset_b}{$file_R} = $Lang_R;
2946+
} elsif (!defined($Lang_L) and defined($Lang_R)) {
2947+
$Lang_L = $Lang_R;
2948+
$Language{$fset_a}{$file_L} = $Lang_L;
2949+
} elsif (!defined($Lang_L) or !defined($Lang_R)) {
29402950
print " -> count_filesets skipping $file_L, $file_R ",
29412951
"because language cannot be inferred\n" if $opt_v;
29422952
next;
29432953
}
2944-
#print "main step 6 file_L=$file_L file_R=$file_R\n";
2954+
#print "main step 6 file_L=$file_L ($Lang_L) file_R=$file_R ($Lang_R)\n";
29452955
++$nCounted;
29462956
printf "Counting: %d\r", $nCounted
29472957
unless ($counter_type or !$opt_progress_rate or ($nCounted % $opt_progress_rate));

0 commit comments

Comments
 (0)