Index: third_party/lcov/bin/genpng |
diff --git a/third_party/lcov/bin/genpng b/third_party/lcov/bin/genpng |
index b4d90c2d1da2345251d8f0835b2b0dec71d260aa..5f3084c9839ba5eebc3a22f398779c23748b8574 100755 |
--- a/third_party/lcov/bin/genpng |
+++ b/third_party/lcov/bin/genpng |
@@ -22,7 +22,7 @@ |
# This script creates an overview PNG image of a source code file by |
# representing each source code character by a single pixel. |
# |
-# Note that the PERL module GD.pm is required for this script to work. |
+# Note that the Perl module GD.pm is required for this script to work. |
# It may be obtained from http://www.cpan.org |
# |
# History: |
@@ -35,7 +35,7 @@ use Getopt::Long; |
# Constants |
-our $lcov_version = "LCOV version 1.7"; |
+our $lcov_version = 'LCOV version 1.10'; |
our $lcov_url = "http://ltp.sourceforge.net/coverage/lcov.php"; |
our $tool_name = basename($0); |
@@ -45,14 +45,17 @@ sub gen_png($$$@); |
sub check_and_load_module($); |
sub genpng_print_usage(*); |
sub genpng_process_file($$$$); |
-sub warn_handler($); |
-sub die_handler($); |
+sub genpng_warn_handler($); |
+sub genpng_die_handler($); |
# |
# Code entry point |
# |
+# Prettify version string |
+$lcov_version =~ s/\$\s*Revision\s*:?\s*(\S+)\s*\$/$1/; |
+ |
# Check whether required module GD.pm is installed |
if (check_and_load_module("GD")) |
{ |
@@ -75,8 +78,8 @@ if (!caller) |
my $help; |
my $version; |
- $SIG{__WARN__} = \&warn_handler; |
- $SIG{__DIE__} = \&die_handler; |
+ $SIG{__WARN__} = \&genpng_warn_handler; |
+ $SIG{__DIE__} = \&genpng_die_handler; |
# Parse command line options |
if (!GetOptions("tab-size=i" => \$tab_size, |
@@ -179,7 +182,7 @@ sub genpng_process_file($$$$) |
local *HANDLE; |
my @source; |
- open(HANDLE, "<$filename") |
+ open(HANDLE, "<", $filename) |
or die("ERROR: cannot open $filename!\n"); |
# Check for .gcov filename extension |
@@ -235,7 +238,7 @@ sub gen_png($$$@) |
my $overview_width = shift(@_); # Imagewidth for image |
my $tab_size = shift(@_); # Replacement string for tab signs |
my @source = @_; # Source code as passed via argument 2 |
- my $height = scalar(@source); # Height as define by source size |
+ my $height; # Height as define by source size |
my $overview; # Source code overview image data |
my $col_plain_back; # Color for overview background |
my $col_plain_text; # Color for uninstrumented text |
@@ -258,6 +261,11 @@ sub gen_png($$$@) |
my $replacement; # Replacement string for tabulator chars |
local *PNG_HANDLE; # Handle for output PNG file |
+ # Handle empty source files |
+ if (!@source) { |
+ @source = ( "" ); |
+ } |
+ $height = scalar(@source); |
# Create image |
$overview = new GD::Image($overview_width, $height) |
or die("ERROR: cannot allocate overview image!\n"); |
@@ -359,21 +367,21 @@ sub gen_png($$$@) |
} |
# Write PNG file |
- open (PNG_HANDLE, ">$filename") |
+ open (PNG_HANDLE, ">", $filename) |
or die("ERROR: cannot write png file $filename!\n"); |
binmode(*PNG_HANDLE); |
print(PNG_HANDLE $overview->png()); |
close(PNG_HANDLE); |
} |
-sub warn_handler($) |
+sub genpng_warn_handler($) |
{ |
my ($msg) = @_; |
warn("$tool_name: $msg"); |
} |
-sub die_handler($) |
+sub genpng_die_handler($) |
{ |
my ($msg) = @_; |