--- /usr/bin/colorgcc	2005-03-25 16:45:18.000000000 +0100
+++ /home/michael/bin/colorgcc	2005-08-22 23:55:01.000000000 +0200
@@ -99,9 +99,17 @@
    $colors{"srcColor"} = color("cyan");
    $colors{"introColor"} = color("blue");
 
-   $colors{"warningFileNameColor"} = color("yellow");
-   $colors{"warningNumberColor"}   = color("yellow");
-   $colors{"warningMessageColor"}  = color("yellow");
+   $colors{"infoFileNameColor"} = color("green");
+   $colors{"infoNumberColor"}   = color("green");
+   $colors{"infoMessageColor"}  = color("green");
+
+   $colors{"pedanticFileNameColor"} = color("yellow");
+   $colors{"pedanticNumberColor"}   = color("yellow");
+   $colors{"pedanticMessageColor"}  = color("yellow");
+
+   $colors{"warningFileNameColor"} = color("bold yellow");
+   $colors{"warningNumberColor"}   = color("bold yellow");
+   $colors{"warningMessageColor"}  = color("bold yellow");
 
    $colors{"errorFileNameColor"} = color("bold red");
    $colors{"errorNumberColor"}   = color("bold red");
@@ -255,12 +263,28 @@
       $field2 = $2 || "";
       $field3 = $3 || "";
 
-      if ($field3 =~ m/\s+warning:.*/)
+      if ($field3 =~ m/\s+warning:\s*(.*)/)
       {
-	 # Warning
-	 print($colors{"warningFileNameColor"}, "$field1:", color("reset"));
-	 print($colors{"warningNumberColor"}, "$field2:", color("reset"));
-	 srcscan($field3, $colors{"warningMessageColor"});
+         $warning = $1 || "";
+         if($warning =~ m/^unused variable|^unused parameter|defined but not used$|is not at beginning of declaration$|missing initializer$|^.near initialization/)
+         {
+            print($colors{"infoFileNameColor"}, "$field1:", color("reset"));
+            print($colors{"infoNumberColor"}, "$field2:", color("reset"));
+            srcscan($field3, $colors{"infoMessageColor"});
+         }
+         elsif($warning =~ m/differ in signedness$|comparison between signed and unsigned$|signed and unsigned type in conditional expression$|not handled in switch$/)
+         {
+            print($colors{"pedanticFileNameColor"}, "$field1:", color("reset"));
+            print($colors{"pedanticNumberColor"}, "$field2:", color("reset"));
+            srcscan($field3, $colors{"pedanticMessageColor"});
+         }
+         else
+         {
+            # Warning
+            print($colors{"warningFileNameColor"}, "$field1:", color("reset"));
+            print($colors{"warningNumberColor"}, "$field2:", color("reset"));
+            srcscan($field3, $colors{"warningMessageColor"});
+         }
       }
       else 
       {
