diff options
Diffstat (limited to 'dev-util/colorgcc/files')
4 files changed, 432 insertions, 0 deletions
diff --git a/dev-util/colorgcc/files/colorgcc-1.3.2-gentoo-one.patch b/dev-util/colorgcc/files/colorgcc-1.3.2-gentoo-one.patch new file mode 100644 index 000000000000..68a177ba75c7 --- /dev/null +++ b/dev-util/colorgcc/files/colorgcc-1.3.2-gentoo-one.patch @@ -0,0 +1,242 @@ +--- colorgcc.orig 1999-04-29 10:16:08.000000000 -0700 ++++ colorgcc 2003-04-11 16:38:52.000000000 -0700 +@@ -88,16 +88,16 @@ + # + # 1.0.0 Initial Version + ++use strict; ++ + use Term::ANSIColor; + use IPC::Open3; ++use Cwd 'abs_path'; ++ ++my(%nocolor, %colors, %compilerPaths); + + sub initDefaults + { +- $compilerPaths{"gcc"} = "/usr/local/bin/gcc"; +- $compilerPaths{"g++"} = "/usr/local/bin/g++"; +- $compilerPaths{"cc"} = "/usr/bin/cc"; +- $compilerPaths{"c++"} = "/usr/local/bin/c++"; +- + $nocolor{"dumb"} = "true"; + + $colors{"srcColor"} = color("cyan"); +@@ -125,26 +125,26 @@ + next if (m/^\#.*/); # It's a comment. + next if (!m/(.*):\s*(.*)/); # It's not of the form "foo: bar". + +- $option = $1; +- $value = $2; ++ my $option = $1; ++ my $value = $2; + +- if ($option =~ m/cc|c\+\+|gcc|g\+\+/) +- { +- $compilerPaths{$option} = $value; +- } +- elsif ($option eq "nocolor") ++ if ($option eq "nocolor") + { + # The nocolor option lists terminal types, separated by + # spaces, not to do color on. +- foreach $termtype (split(/\s+/, $value)) ++ foreach my $term (split(' ', $value)) + { +- $nocolor{$termtype} = "true"; ++ $nocolor{$term} = 1; + } + } +- else ++ elsif (defined $colors{$option}) + { + $colors{$option} = color($value); + } ++ else ++ { ++ $compilerPaths{$option} = $value; ++ } + } + close(PREFS); + } +@@ -180,41 +180,80 @@ + initDefaults(); + + # Read the configuration file, if there is one. +-$configFile = $ENV{"HOME"} . "/.colorgccrc"; ++my $configFile = $ENV{"HOME"} . "/.colorgccrc"; + if (-f $configFile) + { + loadPreferences($configFile); + } ++elsif (-f '/etc/colorgcc/colorgccrc') ++{ ++ loadPreferences('/etc/colorgcc/colorgccrc'); ++} + + # Figure out which compiler to invoke based on our program name. + $0 =~ m%.*/(.*)$%; +-$progName = $1 || $0; +- +-$compiler = $compilerPaths{$progName} || $compilerPaths{"gcc"}; +- +-# Get the terminal type. +-$terminal = $ENV{"TERM"} || "dumb"; ++my $progName = $1 || $0; ++my $compiler_pid; + +-# If it's in the list of terminal types not to color, or if +-# we're writing to something that's not a tty, don't do color. +-if (! -t STDOUT || $nocolor{$terminal}) ++# If called as "colorgcc", just filter STDIN to STDOUT. ++if ($progName eq 'colorgcc') + { +- exec $compiler, @ARGV +- or die("Couldn't exec"); ++ open(GCCOUT, "<&STDIN"); + } ++else ++{ ++ # See if the user asked for a specific compiler. ++ my $compiler; ++ if (!defined($compiler = $compilerPaths{$progName})) ++ { ++ # Find our wrapper dir on the PATH and tweak the PATH to remove ++ # everything up-to and including our wrapper dir. ++ if ($0 =~ m#(.*)/#) ++ { ++ # We were called with an explicit path, so trim that off the PATH. ++ my $find = $1; ++ $find = abs_path($1) unless $find =~ m#^/#; ++ $ENV{'PATH'} =~ s#.*(^|:)\Q$find\E(:|$)##; ++ } ++ else ++ { ++ my(@dirs) = split(/:/, $ENV{'PATH'}); ++ while (defined($_ = shift @dirs)) ++ { ++ if (-x "$_/$progName") ++ { ++ $ENV{'PATH'} = join(':', @dirs); ++ last; ++ } ++ } ++ } ++ $compiler = $progName; ++ } + +-# Keep the pid of the compiler process so we can get its return +-# code and use that as our return code. +-$compiler_pid = open3('<&STDIN', \*GCCOUT, \*GCCOUT, $compiler, @ARGV); ++ # Get the terminal type. ++ my $terminal = $ENV{"TERM"} || "dumb"; ++ ++ # If it's in the list of terminal types not to color, or if ++ # we're writing to something that's not a tty, don't do color. ++ if (! -t STDOUT || $nocolor{$terminal}) ++ { ++ exec $compiler, @ARGV ++ or die("Couldn't exec"); ++ } ++ ++ # Keep the pid of the compiler process so we can get its return ++ # code and use that as our return code. ++ $compiler_pid = open3('<&STDIN', \*GCCOUT, \*GCCOUT, $compiler, @ARGV); ++} + + # Colorize the output from the compiler. + while(<GCCOUT>) + { +- if (m/^(.*?):([0-9]+):(.*)$/) # filename:lineno:message ++ if (m#^(.+?\.[^:/ ]+):([0-9]+):(.*)$#) # filename:lineno:message + { +- $field1 = $1 || ""; +- $field2 = $2 || ""; +- $field3 = $3 || ""; ++ my $field1 = $1 || ""; ++ my $field2 = $2 || ""; ++ my $field3 = $3 || ""; + + if ($field3 =~ m/\s+warning:.*/) + { +@@ -232,6 +271,10 @@ + } + print("\n"); + } ++ elsif (m/^:.+`.*'$/) # filename:message: ++ { ++ srcscan($_, $colors{"warningMessageColor"}); ++ } + elsif (m/^(.*?):(.+):$/) # filename:message: + { + # No line number, treat as an "introductory" line of text. +@@ -244,11 +287,9 @@ + } + } + +-# Get the return code of the compiler and exit with that. +-waitpid($compiler_pid, 0); +-exit ($? >> 8); +- +- +- +- +- ++if ($compiler_pid) ++{ ++ # Get the return code of the compiler and exit with that. ++ waitpid($compiler_pid, 0); ++ exit ($? >> 8); ++} +--- colorgccrc.orig 1999-04-29 10:16:08.000000000 -0700 ++++ colorgccrc 2003-02-12 17:38:38.000000000 -0800 +@@ -20,12 +20,14 @@ + # For example, srcColor: bold cyan on_yellow + # + +-# Define the paths to the actual location of the various compilers. ++# Only define the paths to the actual location of the various compilers if ++# you need to do something weird. For normal installs, we'll figure out ++# who to call next automatically. + # (Currently, colorgcc only understands these: g++ gcc c++ cc) +-g++: /usr/local/bin/g++ +-gcc: /usr/local/bin/gcc +-c++: /usr/local/bin/c++ +-cc: /usr/bin/cc ++##g++: /usr/bin/g++ ++##gcc: /usr/bin/gcc ++##c++: /usr/bin/c++ ++##cc: /usr/bin/cc + + # Don't do color if our terminal type ($TERM) is one of these. + # (List all terminal types on one line, seperated by whitespace.) +@@ -43,12 +45,10 @@ + + # Warnings + warningFileNameColor: reset +-warningNumberColor: white ++warningNumberColor: blue + warningMessageColor: yellow + + # Errors + errorFileNameColor: reset +-errorNumberColor: white ++errorNumberColor: blue + errorMessageColor: bold red +- +- +--- INSTALL.orig 1999-04-29 10:16:08.000000000 -0700 ++++ INSTALL 2003-04-07 17:12:25.000000000 -0700 +@@ -27,9 +27,9 @@ + When "g++" is invoked, colorgcc is run instead. colorgcc looks at the + program name to figure out which compiler to use. + +-Copy the sample colorgccrc file to $HOME/.colorgccrc and make sure the +-absolute paths for the compilers are correct for your system. +-See the comments in the sample .colorgccrc for more information. ++Modify the file /etc/colorgcc/colorgccrc if you want to change the default ++values for everyone. For individual customizations, copy this file to ++$HOME/.colorgccrc and change that. + + + Note: diff --git a/dev-util/colorgcc/files/colorgcc-1.3.2-gentoo-two.patch b/dev-util/colorgcc/files/colorgcc-1.3.2-gentoo-two.patch new file mode 100644 index 000000000000..911a31b21bf3 --- /dev/null +++ b/dev-util/colorgcc/files/colorgcc-1.3.2-gentoo-two.patch @@ -0,0 +1,75 @@ +--- 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); + } + } + + diff --git a/dev-util/colorgcc/files/colorgcc-1.3.2-nohang.patch b/dev-util/colorgcc/files/colorgcc-1.3.2-nohang.patch new file mode 100644 index 000000000000..9602146b0af9 --- /dev/null +++ b/dev-util/colorgcc/files/colorgcc-1.3.2-nohang.patch @@ -0,0 +1,58 @@ +--- /usr/bin/colorgcc 2010-12-13 00:08:37.000000000 -0200 ++++ colorgcc 2011-10-05 15:26:53.000000000 -0300 +@@ -221,17 +221,16 @@ + # Figure out which compiler to invoke based on our program name. + $0 =~ m%.*/(.*)$%; + my $progName = $1 || $0; +-my $compiler_pid; ++my $compiler; + + # If called as "colorgcc", just filter STDIN to STDOUT. +-if ($progName eq 'colorgcc') ++if ($progName =~ m/^colorgcc[-0-9.]*(\.pl)?$/) + { +- open(GCCOUT, "<&STDIN"); ++ $compiler = 'gcc'; + } + else + { + # See if the user asked for a specific compiler. +- my $compiler; + if (!defined($compiler = $compilerPaths{$progName})) + { + # Find our wrapper dir on the PATH and tweak the PATH to remove +@@ -257,23 +256,23 @@ + } + $compiler = $progName; + } ++} + +- # Get the terminal type. +- my $terminal = $ENV{"TERM"} || "dumb"; ++# Get the terminal type. ++my $terminal = $ENV{"TERM"} || "dumb"; + +- # If it's in the list of terminal types not to color, or if +- # we're writing to something that's not a tty, don't do color. +- if (! -t STDOUT || $nocolor{$terminal}) +- { ++# If it's in the list of terminal types not to color, or if ++# we're writing to something that's not a tty, don't do color. ++if (! -t STDOUT || $nocolor{$terminal}) ++{ + exec $compiler, @ARGV + or die("Couldn't exec"); +- } +- +- # Keep the pid of the compiler process so we can get its return +- # code and use that as our return code. +- $compiler_pid = open3('<&STDIN', \*GCCOUT, \*GCCOUT, $compiler, @ARGV); + } + ++# Keep the pid of the compiler process so we can get its return ++# code and use that as our return code. ++my $compiler_pid = open3('<&STDIN', \*GCCOUT, \*GCCOUT, $compiler, @ARGV); ++ + # Colorize the output from the compiler. + while(<GCCOUT>) + { diff --git a/dev-util/colorgcc/files/colorgcc-1.3.2-note.patch b/dev-util/colorgcc/files/colorgcc-1.3.2-note.patch new file mode 100644 index 000000000000..026503e8f2c9 --- /dev/null +++ b/dev-util/colorgcc/files/colorgcc-1.3.2-note.patch @@ -0,0 +1,57 @@ +--- /usr/bin/colorgcc 2009-10-29 20:24:46.717190000 +0100 ++++ colorgcc 2009-10-29 20:27:42.614162888 +0100 +@@ -102,7 +102,8 @@ + $nocolor{"dumb"} = "true"; + + $colors{"srcColor"} = color("cyan"); +- $colors{"introColor"} = color("blue"); ++ $colors{"introFileNameColor"} = color("blue"); ++ $colors{"introMessageColor"} = color("blue"); + + $colors{"warningFileNameColor"} = color("yellow"); + $colors{"warningNumberColor"} = color("yellow"); +@@ -111,6 +112,10 @@ + $colors{"errorFileNameColor"} = color("bold red"); + $colors{"errorNumberColor"} = color("bold red"); + $colors{"errorMessageColor"} = color("bold red"); ++ ++ $colors{"noteFileNameColor"} = color("green"); ++ $colors{"noteNumberColor"} = color("green"); ++ $colors{"noteMessageColor"} = color("green"); + } + + sub loadPreferences +@@ -290,12 +295,18 @@ + print($colors{"warningNumberColor"}, "$field2:", color("reset")); + srcscan($field3, $colors{"warningMessageColor"}); + } +- else +- { ++ elsif ($field3 =~ m/\s+error:.*/) ++ { + # Error + print($colors{"errorFileNameColor"}, "$field1:", color("reset")); + print($colors{"errorNumberColor"}, "$field2:", color("reset")); + srcscan($field3, $colors{"errorMessageColor"}); ++ } else ++ { ++ # Note ++ print($colors{"noteFileNameColor"}, "$field1:", color("reset")); ++ print($colors{"noteNumberColor"}, "$field2:", color("reset")); ++ srcscan($field3, $colors{"noteMessageColor"}); + } + print("\n"); + } +@@ -305,8 +316,11 @@ + } + elsif (m/^(.*?):(.+):$/) # filename:message: + { ++ my $field1 = $1 || ""; ++ my $field2 = $2 || ""; + # No line number, treat as an "introductory" line of text. +- srcscan($_, $colors{"introColor"}); ++ print($colors{"introFileNameColor"}, "$field1:", color("reset")); ++ print($colors{"introMessageColor"}, "$field2:\n", color("reset")); + } + else # Anything else. + { |