--- colorgcc-1.3.2.0.orig/debian/colorgccrc.5 +++ colorgcc-1.3.2.0/debian/colorgccrc.5 @@ -0,0 +1,122 @@ +.TH COLORGCCRC 5 "Jan 15, 2003" + +.SH NAME +colorgccrc \- configuration file for colorgcc + +.SH DESCRIPTION +A +.B colorgccrc +configuration file is used to configure the highlighting of +the compiler output from +.BR colorgcc . + +.SH SYNTAX +Each line consists of a keyword designating a configuration +variable. +The keyword is followed by `:' and then one or several values +(depending on the keyword). +Lines beginning with a hash mark `#' are comments. + +.SH CONFIGURATION VARIABLES +.TP +.B g++ | gcc | c++ | cc | g77 | gcj | gnat | gpc +Specifies the paths to the compilers. +Takes one value; a path to the compiler. +.TP +.B nocolor +Specifies what terminal types colorization should be disabled on. +Takes one or several values, separated by whitespace. +.TP +.B srcColor +Specifies the highlighting attributes source-code should be given. +Takes one or several color attributes. +See the section +.B COLOR ATTRIBUTES +for more information. +.TP +.B introColor +Specifies the highlighting attributes for normal compiler output. +Takes one or several color attributes. +See the section +.B COLOR ATTRIBUTES +for more information. +.TP +.B warningFileNameColor | errorFileNameColor +Specifies the highlighting attributes for the filename in a +warning or an error, respectively. +Takes one or several color attributes. +See the section +.B COLOR ATTRIBUTES +for more information. +.TP +.B warningNumberColor | errorNumberColor +Specifies the highlighting attributes for the line-number in a +warning or an error, respectively. +Takes one or several color attributes. +See the section +.B COLOR ATTRIBUTES +for more information. +.TP +.B warningMessageColor | errorMessageColor +Specifies the highlighting attributes for the message-text in a +warning or an error, respectively. +Takes one or several color attributes. +See the section +.B COLOR ATTRIBUTES +for more information. + +.SH COLOR ATTRIBUTES +The following attributes are valid for highlighting. + +.BR clear, +.BR reset + +.BR bold, +.BR underline, +.BR underscore, +.BR blink, +.BR reverse, +.BR concealed + +.BR black, +.BR red, +.BR green, +.BR yellow, +.BR blue, +.BR magenta, +.BR cyan, +.BR white + +.BR on_black, +.BR on_red, +.BR on_green, +.BR on_yellow, +.BR on_blue, +.BR on_magenta, +.BR on_cyan, +.BR on_white + +.SH SEE ALSO +.BR gcc (1), +.BR colorgcc (1) + +.SH HISTORY +Jan 15 2003: Initial version of this manual-page. + +.SH REPORTING BUGS +Report bugs to +<\fIjmoyers@geeks.com\fP> + +.SH AUTHORS +Jamie Moyers <\fIjmoyers@geeks.com\fP> is the author of colorgcc. +.PP +This manual page was written by Joe Wreschnig <\fIpiman@sacredchao.net\fP>, +and modified by David Weinehall <\fItao@debian.org\fP>, for the +Debian GNU/Linux system (but may be used by others). + +.SH COPYRIGHT +Copyright \(co 2003 Jamie Moyers +.br +This is free software; see the source for copying conditions. +There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR +A PARTICULAR PURPOSE. --- colorgcc-1.3.2.0.orig/debian/control +++ colorgcc-1.3.2.0/debian/control @@ -0,0 +1,13 @@ +Source: colorgcc +Section: devel +Priority: extra +Maintainer: Ryan Niebur +Build-Depends: debhelper (> 7), quilt +Standards-Version: 3.8.1 + +Package: colorgcc +Architecture: all +Depends: ${perl:Depends}, ${misc:Depends} +Description: Colorizer for GCC warning/error messages + A Perl wrapper to colorize the output of compilers with + warning / error messages matching the gcc output format. --- colorgcc-1.3.2.0.orig/debian/manpages +++ colorgcc-1.3.2.0/debian/manpages @@ -0,0 +1,2 @@ +debian/colorgcc.1 +debian/colorgccrc.5 --- colorgcc-1.3.2.0.orig/debian/changelog +++ colorgcc-1.3.2.0/debian/changelog @@ -0,0 +1,212 @@ +colorgcc (1.3.2.0-10) unstable; urgency=low + + * adopt package (Closes: #519288) + * standards version 3.8.1 + * debhelper 7 + * convert to quilt + * add README.source + * add misc:Depends + * remove dependency on perl-modules, it's not needed + * remove debian/dirs, not needed + * fix 10_utf8_output.patch to not give perl warnings (Closes: #519569) + + -- Ryan Niebur Wed, 18 Mar 2009 19:22:25 -0700 + +colorgcc (1.3.2.0-9) unstable; urgency=low + + * Orphan this package. + + Set maintainer to Debian QA Group. + * 10_utf8_output.dpatch. Handle UTF-8 output. (Closes: #516297). + + Thanks to Bas Zoetekouw for the patch. + * Version license path to GPL-2 in debian/copyright. + * Bump Standards Version to 3.8.0. (No changes needed). + + -- Barry deFreese Wed, 11 Mar 2009 11:46:17 -0400 + +colorgcc (1.3.2.0-8) unstable; urgency=low + + * 005_old_changes.dpatch. (Closes: #467631). + + Move old local changes to dpatch. + * Fix changelog for UTF-8. (Closes: #463846). + + Thanks to Christian Perrier. + * Upstream has been dead for years. + + Remove watch file. (Closes: #449760). + + Remove URL from copyright. (Closes: #468056). + + -- Barry deFreese Tue, 26 Feb 2008 22:03:17 -0500 + +colorgcc (1.3.2.0-7) unstable; urgency=low + + * 08_force_color_opt.dpatch. Add force color option (Closes: #348704). + + Thanks to Jörg Sommer. + * 09_color_warnings.dpatch (Closes: #460805). + + Color . Thanks to Andreas Beckmann. + * Bump Standards Version to 3.7.3 (No changes needed). + + -- Barry deFreese Tue, 22 Jan 2008 17:38:01 -0500 + +colorgcc (1.3.2.0-6) unstable; urgency=low + + * Forgot to mention 05_console-colors.dpatch in previous upload + * Code changes taken from console-colors + * Better handling of config file + * Check if symlinks are self-referencing + * Enable default compiler paths in default config file + * 06_use_distcc.dpatch - (Closes: #447697) + * Fix incorrect default config file path + * Better handling of distcc paths + * Improved parsing of gcc options + * Thanks to Alexandar Kogan for the patch + * 07_invalid_attr.dpatch - (Closes: #446110) + * Fix invalid attrib on .*Color + * Extra args handling not applied as that should be handled from + * 06_use_distcc patch + * Thanks to Andreas Beckmann for the patch + + -- Barry deFreese Wed, 24 Oct 2007 19:35:21 -0400 + +colorgcc (1.3.2.0-5) unstable; urgency=low + + * Move to dpatch patch system + * Add patch for colorizing warnings (03_color_warnings) + * Thanks to Chusslove Illich for the patch + * Colorize g++ output (04_g++_color) (Closes: #378589) + * Thanks to Narcelio Filho for the patch + * Bump debhelper b-d to >> 5 and compat to 5 + * Bump standards to 3.7.2 + * Move build-deps-indep to build-deps (fixes lintian error) + * Remove dead homepage link from control (Closes: #419764) + + -- Barry deFreese Mon, 08 Oct 2007 22:35:27 -0400 + +colorgcc (1.3.2.0-4) unstable; urgency=low + + * Print error message to stderr. (Closes: #279248) + Thanks to Martin Dickopp for the bug report. + * Split non-quoted compiler specs patch (Closes: #248544) + Thanks to Timothy Brownawell for the patch. + * debian/rules. Modify to take patches. + + -- Barry deFreese Sat, 19 Mar 2005 23:07:01 -0500 + +colorgcc (1.3.2.0-3) unstable; urgency=low + + * New maintainer + * Updated standards-version to 3.6.1.1 + + -- Barry deFreese Tue, 8 Feb 2005 23:57:01 -0500 + +colorgcc (1.3.2.0-2) unstable; urgency=low + + * Sigh; use a string comparision, not a numeric comparision + in compiler-check (Closes: #204647) + + -- David Weinehall Sun, 10 Aug 2003 19:21:42 +0200 + +colorgcc (1.3.2.0-1) unstable; urgency=low + + * Rewrite the error-message regarding compiler symlinks to be + in at least reasonably acceptable English (Closes: #200839) + * Applied changes from Wayne Davison to fix various issues regarding + syntax highlighting and the path to the compilers + * New upstream tarball (stripped from DOS newlines), + hence the '.0' in the version number + * Bump Standards-Version to 3.6.0 (No changes needed) + + -- David Weinehall Sun, 20 Jul 2003 10:51:21 +0200 + +colorgcc (1.3.2-9) unstable; urgency=low + + * Changed maintainer address + + -- David Weinehall Thu, 20 Feb 2003 15:15:25 +0100 + +colorgcc (1.3.2-8) unstable; urgency=low + + * Do not use bash for executing gcc, but rather execute + it directly with perl's help (Closes: #180990) + | hopefully this won't cause other problems; I did not notice any + | while testing, but that doesn't mean wicked wrappers or similar + | cannot wreak havoc + * Remove workaround for escaping of quotation-marks + + -- David Weinehall Sat, 15 Feb 2003 23:50:44 +0100 + +colorgcc (1.3.2-7) unstable; urgency=low + + * Added colorization for gcj (Closes: #178733) + * Added colorization for gnat and gpc + + -- David Weinehall Tue, 28 Jan 2003 22:19:31 +0100 + +colorgcc (1.3.2-6) unstable; urgency=low + + * New maintainer (Closes: #123500) + * debian/control rewritten + * Fixed debian/copyright to only reference the GPL + * Cleaned up debian/changelog (only cosmetical changes) + * Colorize g77 too (Closes: #174440) + * Added gobjc while at it + * Build-Depends-Indep on debhelper (>> 4.1.0) + | No more /usr/doc + * Bumped compat-version to 4 + * Rewrote debhelper configuration + * Added a modified version of the manual-page by Joe Wreschnig + (Closes: #103215, #115215) + * Changed all references to the upstream website to point + at its new location + * Fixed colorgcc to recognize gcc-3.0 and akin (Closes: #147011) + * 1.3.2-4.2 marked /etc/colorgc/colorgccrc as a conffile (Closes: #132140) + + -- David Weinehall Wed, 25 Jan 2003 00:09:42 +0100 + +colorgcc (1.3.2-5) unstable; urgency=low + + * Maintainer changed to QA group + * Policy updated to 3.5.8.0 + * Control file revised + + Note: debhelper configuration is a bit out-dated + A rewrite-from-scratch is suggested + + -- Francesco Paolo Lovergine Mon, 13 Jan 2003 15:15:36 +0100 + +colorgcc (1.3.2-4.2) unstable; urgency=low + + * NMU + * Mark /etc/colorgcc/colorgccrc as a conffile (Closes: #132140) + + -- Colin Watson Fri, 8 Feb 2002 01:15:40 +0000 + +colorgcc (1.3.2-4.1) unstable; urgency=medium + + * NMU + * Fix this package so it works with recent gcc-2.95 and also with + alternatives using #65516 (Closes: #65516) + + -- Petr Cech Thu, 25 Jan 2001 23:21:34 +0100 + +colorgcc (1.3.2-4) unstable; urgency=low + + * Resolved link to us from compilers we use (Closes: #48451) + + -- Raphael Bossek Thu, 28 Oct 1999 22:04:43 +0200 + +colorgcc (1.3.2-3) unstable; urgency=low + + * Resolved handling for astrix in the command line (not really solved before) + + -- Raphael Bossek Tue, 26 Oct 1999 20:37:03 +0200 + +colorgcc (1.3.2-2) unstable; urgency=low + + * New command line handling for astrix (Closes: #46538) + * Supports ksh, csh and bash + + -- Raphael Bossek Sat, 23 Oct 1999 22:28:47 +0200 + +colorgcc (1.3.2-1) unstable; urgency=low + + * First upstream version + + -- Raphael Bossek Fri, 17 Sep 1999 21:29:45 +0200 --- colorgcc-1.3.2.0.orig/debian/install +++ colorgcc-1.3.2.0/debian/install @@ -0,0 +1,2 @@ +colorgccrc etc/colorgcc/ +colorgcc usr/bin/ --- colorgcc-1.3.2.0.orig/debian/docs +++ colorgcc-1.3.2.0/debian/docs @@ -0,0 +1 @@ +CREDITS --- colorgcc-1.3.2.0.orig/debian/compat +++ colorgcc-1.3.2.0/debian/compat @@ -0,0 +1 @@ +7 --- colorgcc-1.3.2.0.orig/debian/colorgcc.1 +++ colorgcc-1.3.2.0/debian/colorgcc.1 @@ -0,0 +1,72 @@ +.TH COLORGCC 1 "Jan 15, 2003" + +.SH NAME +colorgcc \- colorization wrapper for gcc + +.SH SYNOPSIS +.B colorgcc +[\fIOPTION\fP]... +[\fIFILENAME\fP]... + +.SH DESCRIPTION +.B colorgcc +acts as a wrapper around +.BR gcc (1) +to ease reading its output by colorizing it. + +.SH OPTIONS +Since +.B colorgcc +is a wrapper around +.BR gcc (1), +it has the same command line options as +.BR gcc (1). + +.SH USAGE +At your shell prompt, set your CC environment variable to 'colorgcc'. +This may be done in several different ways, depending on what +shell you use. +.PP +In a Bourne-compatible shell (bash, ash, zsh, pdksh), type: +.br +\fBexport CC="colorgcc"\fP +.PP +In a C shell variant (csh, tcsh), type: +.br +\fBsetenv CC "colorgcc"\fP +.PP +Refer to your shell's documentation for more information on setting +environment variables. + +.SH FILES +.TP +.I /etc/colorgcc/colorgccrc +System-wide configuration file for colorgccrc. +.TP +.I $HOME/.colorgccrc +Personal configuration file for colorgccrc. + +.SH SEE ALSO +.BR gcc (1), +.BR colorgccrc (5) + +.SH HISTORY +Jan 15 2003: Initial version of this manual-page. + +.SH REPORTING BUGS +Report bugs to +<\fIjmoyers@geeks.com\fP> + +.SH AUTHORS +Jamie Moyers <\fIjmoyers@geeks.com\fP> is the author of colorgcc. +.PP +This manual page was written by Joe Wreschnig <\fIpiman@sacredchao.net\fP>, +and modified by David Weinehall <\fItao@debian.org\fP>, for the +Debian GNU/Linux system (but may be used by others). + +.SH COPYRIGHT +Copyright \(co 2003 Jamie Moyers +.br +This is free software; see the source for copying conditions. +There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR +A PARTICULAR PURPOSE. --- colorgcc-1.3.2.0.orig/debian/copyright +++ colorgcc-1.3.2.0/debian/copyright @@ -0,0 +1,18 @@ +This is the Debian GNU/Linux packaged version of colorgcc version 1.3.2. + +The author of this program is Jamie Moyers . +It was first debianized by Raphael Bossek +from the following sources: + +Tue, 26 Feb 2008 21:55:05 -0500 - Barry deFreese. +Removed upstream URL as it is no longer valid. Though some of the nice work +by console colors has been incorporated through patches. +See: http://www.console-colors.de/index.php?n=ConsColors.Downloads + +This software is Copyright (C) 2003 Jamie Moyers + +You are free to distribute this software under the terms of the +GNU General Public License. +On Debian systems, the complete text of the GNU General Public License +can be found in `/usr/share/common-licenses/GPL-2'. + --- colorgcc-1.3.2.0.orig/debian/rules +++ colorgcc-1.3.2.0/debian/rules @@ -0,0 +1,25 @@ +#!/usr/bin/make -f + +include /usr/share/quilt/quilt.make + +build: build-stamp + +build-stamp: $(QUILT_STAMPFN) + dh build + touch $@ + +clean: unpatch + dh $@ + +binary-indep: install + dh $@ + +install: install-stamp + +install-stamp: build + dh install + touch $@ + +binary: binary-indep + +.PHONY: build clean binary-indep binary-arch binary install --- colorgcc-1.3.2.0.orig/debian/README.source +++ colorgcc-1.3.2.0/debian/README.source @@ -0,0 +1,5 @@ +This package uses quilt to manage all modifications to the upstream +source. Changes are stored in the source package as diffs in +debian/patches and applied during the build. + +See /usr/share/doc/quilt/README.source for a detailed explanation. --- colorgcc-1.3.2.0.orig/debian/patches/005_old_changes.patch +++ colorgcc-1.3.2.0/debian/patches/005_old_changes.patch @@ -0,0 +1,144 @@ +Author: +Description: Old local changes. +--- a/colorgcc ++++ b/colorgcc +@@ -1,4 +1,4 @@ +-#! /usr/bin/perl -w ++#! /usr/bin/perl + + # + # colorgcc +@@ -90,14 +90,10 @@ + + use Term::ANSIColor; + use IPC::Open3; ++use Cwd 'abs_path'; + + 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"); +@@ -128,7 +124,7 @@ + $option = $1; + $value = $2; + +- if ($option =~ m/cc|c\+\+|gcc|g\+\+/) ++ if ($option =~ m/(.*)(cc|c\+\+|gcc|g\+\+|g77|gobjc|gnat|gcj|gpc)(.*)/) + { + $compilerPaths{$option} = $value; + } +@@ -184,13 +180,45 @@ + 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"}; ++# See if the user asked for a specific compiler. ++if ($progName eq "colorgcc") { ++ $compiler = "/usr/bin/gcc"; ++} elsif (!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; ++} ++ ++# Raphael Bossek Bug #48451 ++# We check if the user created a link from the selected compiler ++# to colorgcc e.g. /usr/bin/gcc -> /usr/bin/colorgcc ! ++if (-l $compiler and (stat $compiler)[1] == (stat $0)[1]) { ++ print "colorgcc: Error; $compiler is a symlink to colorgcc. Aborting.\n"; ++ exit(1); ++} + + # Get the terminal type. + $terminal = $ENV{"TERM"} || "dumb"; +@@ -210,7 +238,7 @@ + # Colorize the output from the compiler. + while() + { +- if (m/^(.*?):([0-9]+):(.*)$/) # filename:lineno:message ++ if (m#^(.+?\.[^:/ ]+):([0-9]+):(.*)$#) # filename:lineno:message + { + $field1 = $1 || ""; + $field2 = $2 || ""; +@@ -232,6 +260,10 @@ + } + print("\n"); + } ++ elsif (m/^:.+`.*'$/) # filename:message: ++ { ++ srcscan($_, $colors{"warningMessageColor"}); ++ } + elsif (m/^(.*?):(.+):$/) # filename:message: + { + # No line number, treat as an "introductory" line of text. +--- a/colorgccrc ++++ b/colorgccrc +@@ -20,12 +20,18 @@ + # For example, srcColor: bold cyan on_yellow + # + +-# Define the paths to the actual location of the various compilers. +-# (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 ++# 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 g77 gcj gnat gpc) ++# g++: /usr/bin/g++ ++# gcc: /usr/bin/gcc ++# c++: /usr/bin/c++ ++# cc: /usr/bin/cc ++# g77: /usr/bin/g77 ++# gcj: /usr/bin/gcj ++# gnat: /usr/bin/gnat ++# gpc: /usr/bin/gpc + + # 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 +49,10 @@ + + # Warnings + warningFileNameColor: reset +-warningNumberColor: white ++warningNumberColor: blue + warningMessageColor: yellow + + # Errors + errorFileNameColor: reset +-errorNumberColor: white ++errorNumberColor: blue + errorMessageColor: bold red +- +- --- colorgcc-1.3.2.0.orig/debian/patches/05_console-colors.patch +++ colorgcc-1.3.2.0/debian/patches/05_console-colors.patch @@ -0,0 +1,193 @@ +Author: +Description: Add patch from console-colors site +--- a/colorgcc ++++ b/colorgcc +@@ -1,4 +1,4 @@ +-#! /usr/bin/perl ++#! /usr/bin/perl -w + + # + # colorgcc +@@ -90,10 +90,17 @@ + + use Term::ANSIColor; + use IPC::Open3; +-use Cwd 'abs_path'; + + sub initDefaults + { ++ $compilerPaths{"gcc"} = "/usr/bin/gcc"; ++ $compilerPaths{"g++"} = "/usr/bin/g++"; ++ $compilerPaths{"cc"} = "/usr/bin/gcc"; ++ $compilerPaths{"c++"} = "/usr/bin/g++"; ++ $compilerPaths{"g77"} = "/usr/bin/g77"; ++ $compilerPaths{"f77"} = "/usr/bin/g77"; ++ $compilerPaths{"gcj"} = "/usr/bin/gcj"; ++ + $nocolor{"dumb"} = "true"; + + $colors{"srcColor"} = color("cyan"); +@@ -119,6 +126,9 @@ + + open(PREFS, "<$filename") || return; + ++ my $gccVersion; ++ my $overrideCompilerPaths = 0; ++ + while() + { + next if (m/^\#.*/); # It's a comment. +@@ -127,9 +137,14 @@ + $option = $1; + $value = $2; + +- if ($option =~ m/(.*)(cc|c\+\+|gcc|g\+\+|g77|gobjc|gnat|gcj|gpc)(.*)/) ++ if ($option =~ m/\A(cc|c\+\+|gcc|g\+\+|g77|f77|gcj)\Z/) + { + $compilerPaths{$option} = $value; ++ $overrideCompilerPaths = 1; ++ } ++ elsif ($option eq "gccVersion") ++ { ++ $gccVersion = $value; + } + elsif ($option eq "nocolor") + { +@@ -150,6 +165,11 @@ + } + } + close(PREFS); ++ ++ # Append "-" to user-defined compilerPaths ++ if ($overrideCompilerPaths && $gccVersion) { ++ $compilerPaths{$_} .= "-$gccVersion" foreach (keys %compilerPaths); ++ } + } + + sub srcscan +@@ -184,59 +204,23 @@ + + # Read the configuration file, if there is one. + $configFile = $ENV{"HOME"} . "/.colorgccrc"; ++$default_configFile = "/etc/colorgccrc"; + if (-f $configFile) + { + loadPreferences($configFile); +-} elsif (-f '/etc/colorgcc/colorgccrc') { +- loadPreferences('/etc/colorgcc/colorgccrc'); ++} elsif (-f $default_configFile ) { ++ loadPreferences($default_configFile) + } + + # Figure out which compiler to invoke based on our program name. + $0 =~ m%.*/(.*)$%; + $progName = $1 || $0; + +-# See if the user asked for a specific compiler. +-if ($progName eq "colorgcc") { +- $compiler = "/usr/bin/gcc"; +-} elsif (defined($compiler = $compilerPaths{$progName})) { +- #Check for unquoted program name with spaces. If there are spaces +- #and it's not quoted, assume that the spaces separate the program +- #name from some arguments to be prepended to ARGV. +- #If it is quoted, remove the quotes. +- if ($compiler =~ /^"(.*)"$/) { +- $compiler = $1; +- } else { +- ($compiler, @preargs) = split(/\s+/, $compiler); +- @ARGV = (@preargs, @ARGV); +- } +-} else { +- # 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; +-} ++$compiler = $compilerPaths{$progName} || $compilerPaths{"gcc"}; + +-# Raphael Bossek Bug #48451 +-# We check if the user created a link from the selected compiler +-# to colorgcc e.g. /usr/bin/gcc -> /usr/bin/colorgcc ! +-if (-l $compiler and (stat $compiler)[1] == (stat $0)[1]) { +- print STDERR "colorgcc: Error; $compiler is a symlink to colorgcc. Aborting.\n"; +- exit(1); +-} ++# Check that we don't reference self ++die "$compiler is self-referencing" ++ if ( -l $compiler and (stat $compiler)[1] == (stat $0)[1] ); + + # Get the terminal type. + $terminal = $ENV{"TERM"} || "dumb"; +@@ -256,7 +240,7 @@ + # Colorize the output from the compiler. + while() + { +- if (m#^(.+?\.[^:/ ]+):([0-9]+):(.*)$#) # filename:lineno:message ++ if (m/^(.*?):([0-9]+):(.*)$/) # filename:lineno:message + { + $field1 = $1 || ""; + $field2 = $2 || ""; +@@ -289,10 +273,6 @@ + } + print("\n"); + } +- elsif (m/^:.+`.*'$/) # filename:message: +- { +- srcscan($_, $colors{"warningMessageColor"}); +- } + elsif (m/^(.*?):(.+):$/) # filename:message: + { + # No line number, treat as an "introductory" line of text. +--- a/colorgccrc ++++ b/colorgccrc +@@ -20,22 +20,23 @@ + # For example, srcColor: bold cyan on_yellow + # + +-# 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 g77 gcj gnat gpc) +-# g++: /usr/bin/g++ +-# gcc: /usr/bin/gcc +-# c++: /usr/bin/c++ +-# cc: /usr/bin/cc +-# g77: /usr/bin/g77 +-# gcj: /usr/bin/gcj +-# gnat: /usr/bin/gnat +-# gpc: /usr/bin/gpc ++# gccVersion: if defined, append "-" to the compiler paths ++# defined hereunder. Otherwise, those paths remains as is set ++# gccVersion: 4.1.1 ++ ++# Define the paths to the actual location of the various compilers. ++# (Currently, colorgcc only understands these: g++ gcc c++ cc g77 f77 gcj) ++g++: /usr/bin/g++ ++gcc: /usr/bin/gcc ++c++: /usr/bin/g++ ++cc: /usr/bin/gcc ++g77: /usr/bin/g77 ++f77: /usr/bin/g77 ++gcj: /usr/bin/gcj + + # Don't do color if our terminal type ($TERM) is one of these. + # (List all terminal types on one line, seperated by whitespace.) +-nocolor: dumb ++nocolor: dumb emacs + + # Text between ` and ' is usually source code. + srcColor: bold cyan --- colorgcc-1.3.2.0.orig/debian/patches/07_invalid_attr.patch +++ colorgcc-1.3.2.0/debian/patches/07_invalid_attr.patch @@ -0,0 +1,21 @@ +Author: +Description: Color invalid attributes +--- a/colorgcc ++++ b/colorgcc +@@ -159,10 +159,15 @@ + { + @{$translations{$1}} = split(/\s+/, $value); + } +- else ++ elsif ($option =~ m/Color$/) + { + $colors{$option} = color($value); + } ++ else ++ { ++ # treat unknown options as user defined compilers ++ $compilerPaths{$option} = $value; ++ } + } + close(PREFS); + --- colorgcc-1.3.2.0.orig/debian/patches/series +++ colorgcc-1.3.2.0/debian/patches/series @@ -0,0 +1,11 @@ +005_old_changes.patch +01_split_non_quoted.patch +02_stderr.patch +03_color_warnings.patch +04_g++_color.patch +05_console-colors.patch +06_use_distcc.patch +07_invalid_attr.patch +08_force_color_opt.patch +09_color_warnings.patch +10_utf8_output.patch --- colorgcc-1.3.2.0.orig/debian/patches/10_utf8_output.patch +++ colorgcc-1.3.2.0/debian/patches/10_utf8_output.patch @@ -0,0 +1,13 @@ +Author: +Description: Allow for UTF-8 output. +--- a/colorgcc ++++ b/colorgcc +@@ -244,6 +244,8 @@ + # 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, @comp_args); ++binmode(\*GCCOUT,":bytes"); ++binmode(\*STDOUT,":bytes"); + + # Colorize the output from the compiler. + while() --- colorgcc-1.3.2.0.orig/debian/patches/02_stderr.patch +++ colorgcc-1.3.2.0/debian/patches/02_stderr.patch @@ -0,0 +1,13 @@ +Author: +Description: Print to STDERR +--- a/colorgcc ++++ b/colorgcc +@@ -227,7 +227,7 @@ + # We check if the user created a link from the selected compiler + # to colorgcc e.g. /usr/bin/gcc -> /usr/bin/colorgcc ! + if (-l $compiler and (stat $compiler)[1] == (stat $0)[1]) { +- print "colorgcc: Error; $compiler is a symlink to colorgcc. Aborting.\n"; ++ print STDERR "colorgcc: Error; $compiler is a symlink to colorgcc. Aborting.\n"; + exit(1); + } + --- colorgcc-1.3.2.0.orig/debian/patches/01_split_non_quoted.patch +++ colorgcc-1.3.2.0/debian/patches/01_split_non_quoted.patch @@ -0,0 +1,24 @@ +Author: +Description: Split non-quoted program names +--- a/colorgcc ++++ b/colorgcc +@@ -191,7 +191,18 @@ + # See if the user asked for a specific compiler. + if ($progName eq "colorgcc") { + $compiler = "/usr/bin/gcc"; +-} elsif (!defined($compiler = $compilerPaths{$progName})) { ++} elsif (defined($compiler = $compilerPaths{$progName})) { ++ #Check for unquoted program name with spaces. If there are spaces ++ #and it's not quoted, assume that the spaces separate the program ++ #name from some arguments to be prepended to ARGV. ++ #If it is quoted, remove the quotes. ++ if ($compiler =~ /^"(.*)"$/) { ++ $compiler = $1; ++ } else { ++ ($compiler, @preargs) = split(/\s+/, $compiler); ++ @ARGV = (@preargs, @ARGV); ++ } ++} else { + # Find our wrapper dir on the PATH and tweak the PATH to remove + # everything up-to and including our wrapper dir. + if ($0 =~ m#(.*)/#) { --- colorgcc-1.3.2.0.orig/debian/patches/03_color_warnings.patch +++ colorgcc-1.3.2.0/debian/patches/03_color_warnings.patch @@ -0,0 +1,56 @@ +Author: +Description: Color warnings as well as errors +--- a/colorgcc ++++ b/colorgcc +@@ -106,6 +106,9 @@ + $colors{"errorFileNameColor"} = color("bold red"); + $colors{"errorNumberColor"} = color("bold red"); + $colors{"errorMessageColor"} = color("bold red"); ++ ++ @{$translations{"warning"}} = (); ++ @{$translations{"error"}} = (); + } + + sub loadPreferences +@@ -137,6 +140,10 @@ + $nocolor{$termtype} = "true"; + } + } ++ elsif ($option =~ m/(.+)Translations/) ++ { ++ @{$translations{$1}} = split(/\s+/, $value); ++ } + else + { + $colors{$option} = color($value); +@@ -255,7 +262,18 @@ + $field2 = $2 || ""; + $field3 = $3 || ""; + +- if ($field3 =~ m/\s+warning:.*/) ++ # See if this is a warning message. ++ $is_warning = 0; ++ for $translation ("warning", @{$translations{"warning"}}) ++ { ++ if ($field3 =~ m/\s+$translation:.*/) ++ { ++ $is_warning = 1; ++ last; ++ } ++ } ++ ++ if ($is_warning) + { + # Warning + print($colors{"warningFileNameColor"}, "$field1:", color("reset")); +--- a/colorgccrc ++++ b/colorgccrc +@@ -56,3 +56,8 @@ + errorFileNameColor: reset + errorNumberColor: blue + errorMessageColor: bold red ++ ++# Possible translations, if you use localized compiler. ++# (List all translations on one line, seperated by whitespace.) ++warningTranslations: ++errorTranslations: --- colorgcc-1.3.2.0.orig/debian/patches/04_g++_color.patch +++ colorgcc-1.3.2.0/debian/patches/04_g++_color.patch @@ -0,0 +1,13 @@ +Author: +Description: Fix g++ colorizing issue +--- a/colorgcc ++++ b/colorgcc +@@ -170,7 +170,7 @@ + # This substitute 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. +- $line =~ s/\`(.*?)\'/\`$srcon$1$srcoff\'/g; ++ $line =~ s/(\`|\')(.*?)\'/\`$srcon$2$srcoff\'/g; + + print($line, color("reset")); + } --- colorgcc-1.3.2.0.orig/debian/patches/08_force_color_opt.patch +++ colorgcc-1.3.2.0/debian/patches/08_force_color_opt.patch @@ -0,0 +1,13 @@ +Author: +Description: Add an environment variable to force color +--- a/colorgcc ++++ b/colorgcc +@@ -235,7 +235,7 @@ + + # 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 (! $ENV{"CGCC_FORCE_COLOR"} && (! -t STDOUT || $nocolor{$terminal})) + { + exec $compiler, @comp_args + or die("Couldn't exec"); --- colorgcc-1.3.2.0.orig/debian/patches/09_color_warnings.patch +++ colorgcc-1.3.2.0/debian/patches/09_color_warnings.patch @@ -0,0 +1,41 @@ +Author: +Description: Color warnings +--- a/colorgcc ++++ b/colorgcc +@@ -281,6 +281,36 @@ + } + print("\n"); + } ++ elsif (m/^():(.*)$/) # special-location:message ++ { ++ $field1 = $1 || ""; ++ $field2 = $2 || ""; ++ ++ # See if this is a warning message. ++ $is_warning = 0; ++ for $translation ("warning", @{$translations{"warning"}}) ++ { ++ if ($field2 =~ m/\s+$translation:.*/) ++ { ++ $is_warning = 1; ++ last; ++ } ++ } ++ ++ if ($is_warning) ++ { ++ # Warning ++ print($colors{"warningFileNameColor"}, "$field1:", color("reset")); ++ srcscan($field2, $colors{"warningMessageColor"}); ++ } ++ else ++ { ++ # Error ++ print($colors{"errorFileNameColor"}, "$field1:", color("reset")); ++ srcscan($field2, $colors{"errorMessageColor"}); ++ } ++ print("\n"); ++ } + elsif (m/^(.*?):(.+):$/) # filename:message: + { + # No line number, treat as an "introductory" line of text. --- colorgcc-1.3.2.0.orig/debian/patches/06_use_distcc.patch +++ colorgcc-1.3.2.0/debian/patches/06_use_distcc.patch @@ -0,0 +1,39 @@ +Author: +Description: Allow use of distcc +--- a/colorgcc ++++ b/colorgcc +@@ -204,7 +204,7 @@ + + # Read the configuration file, if there is one. + $configFile = $ENV{"HOME"} . "/.colorgccrc"; +-$default_configFile = "/etc/colorgccrc"; ++$default_configFile = "/etc/colorgcc/colorgccrc"; + if (-f $configFile) + { + loadPreferences($configFile); +@@ -217,6 +217,9 @@ + $progName = $1 || $0; + + $compiler = $compilerPaths{$progName} || $compilerPaths{"gcc"}; ++@comp_list = split /\s+/, $compiler; ++$compiler = $comp_list[0]; ++@comp_args = ( @comp_list[1 .. $#comp_list], @ARGV ); + + # Check that we don't reference self + die "$compiler is self-referencing" +@@ -229,13 +232,13 @@ + # we're writing to something that's not a tty, don't do color. + if (! -t STDOUT || $nocolor{$terminal}) + { +- exec $compiler, @ARGV ++ exec $compiler, @comp_args + 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); ++$compiler_pid = open3('<&STDIN', \*GCCOUT, \*GCCOUT, $compiler, @comp_args); + + # Colorize the output from the compiler. + while()