X-Git-Url: https://ruderich.org/simon/gitweb/?a=blobdiff_plain;f=bin%2Fblhc;h=1d1fc27d6d2a5cdbe613de7c37cdf04105243f1f;hb=5b550dc892a6568f9f4ddc71106a7b879ee380c3;hp=38ca653cd655b8dd6209df0229fdf86e1754edc6;hpb=d7e5c1de20c3adb24676f405e8930a61c5746759;p=blhc%2Fblhc.git diff --git a/bin/blhc b/bin/blhc index 38ca653..1d1fc27 100755 --- a/bin/blhc +++ b/bin/blhc @@ -266,6 +266,7 @@ my @input = (); my $start = 0; my $continuation = 0; +my $complete_line = undef; while (my $line = <>) { # We skip over unimportant lines at the beginning to prevent false # positives. @@ -297,10 +298,26 @@ while (my $line = <>) { # Join lines, but leave the "\" in place so it's clear where the # original line break was. - chomp $input[-1]; - $input[-1] .= ' ' . $line; + chomp $complete_line; + $complete_line .= ' ' . $line; + } + # Line continuation, line ends with "\". + if ($line =~ /\\\s*$/) { + $continuation = 1; + # Start line continuation. + if (not defined $complete_line) { + $complete_line = $line; + } + next; + } + + if (not $continuation) { + # Use the complete line if a line continuation occurred. + if (defined $complete_line) { + $line = $complete_line; + $complete_line = undef; + } - } else { # Ignore lines with no compiler commands. next if $line !~ /\b$cc_regex(?:\s|\\)/ and not $non_verbose; @@ -308,14 +325,13 @@ while (my $line = <>) { # # `./configure` output. next if not $non_verbose and $line =~ /^checking /; + next if $line =~ /^\s*(?:C|c)ompiler[\s.]*:\s+$cc_regex(?:\s-std=[a-z0-9:+]+)?\s*$/ + or $line =~ /^\s*(?:- )?(?:CC|CXX)\s*=\s*$cc_regex\s*$/ + or $line =~ /^\s*-- Check for working (?:C|CXX) compiler: / + or $line =~ /^\s*(?:echo )?Using [A-Z_]+\s*=\s*/; push @input, $line; } - - # Line continuation, line ends with "\". - if ($line =~ /\\\s*$/) { - $continuation = 1; - } } } @@ -387,12 +403,6 @@ for (my $i = 0; $i < scalar @input; $i++) { # Even if it's a verbose build, we might have to skip this line. next if $skip; - # Ignore false positives. - # - # ./configure summary. - next if $line =~ /^\s*(?:C|c)ompiler[\s.]*:\s+$cc_regex(?:\s-std=[a-z0-9:+]+)?\s*$/ - or $line =~ /^\s*- (?:CC|CXX)\s*=\s*$cc_regex\s*$/ - or $line =~ /^\s*-- Check for working (?:C|CXX) compiler: /; # Is this a compiler or linker command? my $compiler = 1; @@ -404,7 +414,8 @@ for (my $i = 0; $i < scalar @input; $i++) { (?:[/.A-Za-z0-9~_-]+/)? # path to file [A-Za-z0-9~_-]+ # binary name (no dots!) (?:[0-9.]*\.so[0-9.]*[a-z]? # library (including version) - |\.la)? + |\.la + |\.cgi)? # CGI binary (?:\s|\\|$) # end of file name }x or $line =~ /^libtool: link: /