blob: 911a31b21bf3d914695a4d353b26a5338d09e0cb [file] [log] [blame]
--- colorgcc.r9 2003-09-21 12:14:48.000000000 -0700
+++ colorgcc 2003-09-21 13:11:22.000000000 -0700
@@ -95,6 +95,7 @@
use Cwd 'abs_path';
my(%nocolor, %colors, %compilerPaths);
+my($unfinishedQuote, $previousColor);
sub initDefaults
{
@@ -159,14 +160,37 @@
my($line, $normalColor) = @_;
+ if (defined $normalColor)
+ {
+ $previousColor = $normalColor;
+ }
+ else
+ {
+ $normalColor = $previousColor;
+ }
+
my($srcon) = color("reset") . $colors{"srcColor"};
my($srcoff) = color("reset") . $normalColor;
- $line = $normalColor . $line;
+ $line = ($unfinishedQuote? $srcon : $normalColor) . $line;
- # This substitute replaces `foo' with `AfooB' where A is the escape
+ # These substitutions replaces `foo' with `AfooB' where A is the escape
# sequence that turns on the the desired source color, and B is the
# escape sequence that returns to $normalColor.
+
+ # Handle multi-line quotes.
+ if ($unfinishedQuote) {
+ if ($line =~ s/^([^\`]*?)\'/$1$srcoff\'/)
+ {
+ $unfinishedQuote = 0;
+ }
+ }
+ if ($line =~ s/\`([^\']*?)$/\`$srcon$1/)
+ {
+ $unfinishedQuote = 1;
+ }
+
+ # Single line quoting.
$line =~ s/\`(.*?)\'/\`$srcon$1$srcoff\'/g;
print($line, color("reset"));
@@ -190,6 +214,10 @@
loadPreferences('/etc/colorgcc/colorgccrc');
}
+# Set our default output color. This presumes that any unrecognized output
+# is an error.
+$previousColor = $colors{"errorMessageColor"};
+
# Figure out which compiler to invoke based on our program name.
$0 =~ m%.*/(.*)$%;
my $progName = $1 || $0;
@@ -281,10 +309,9 @@
# No line number, treat as an "introductory" line of text.
srcscan($_, $colors{"introColor"});
}
- else # Anything else.
+ else # Anything else.
{
- # Doesn't seem to be a warning or an error. Print normally.
- print(color("reset"), $_);
+ srcscan($_, undef);
}
}