analwarn.pl to HTML.

index -|- end

Generated: Tue Feb 2 17:54:21 2010 from analwarn.pl 2008/09/15 2.4 KB.

#!/perl -w
# NAME: analwarn.pl
# AIM: specialized reading of the MSVC 'warning' list, and sort them into groups
use strict;
use warnings;
require 'logfile.pl' or die "Unable to load logfile.pl ...\n";
# log file stuff
my ($LF);
my $pgmname = $0;
if ($pgmname =~ /\w{1}:\\.*/) {
   my @tmpsp = split(/\\/,$pgmname);
   $pgmname = $tmpsp[-1];
}
my $outfile = "temp.$pgmname.txt";
open_log($outfile);
my $in_file = 'C:\FG\22\tempwarn.txt';
my %cerrs = ();
my %cwarns = ();
my @warnings = ();
my $verb3 = 0;
process_file( $in_file );
close_log($outfile,1);
exit(0);
############################
sub process_file {
   my $inf = shift;
   my @lines = ();
   my @list = ();
   my @slist = ();
   my ($lncnt, $line, $num, $ecnt, $key, $val, $warn, $comp, $ind, $i);
   if (open INF, "<$inf") {
      @lines = <INF>;
      close INF;
      $lncnt = scalar @lines;
      prt( "Processing $lncnt line from $inf ...\n" );
      $ecnt = 0;
      foreach $line (@lines) {
         chomp $line;
         if ($line =~ /\s+warning C(\d\d\d\d):/) {
            $num = $1;
            $ecnt++;
            prt( "$ecnt: $num: $line\n" );
            if (defined $cerrs{$num}) {
               $cerrs{$num}++;
            } else {
               $cerrs{$num} = 1;
               $warn = "warning C$num:";
               $ind = index( $line, $warn );
               if ($ind > 0) {
                  $comp = substr( $line, ($ind + length($warn)) );
               } else {
                  $comp = "WARNING: Did NOT file [$warn] in [$line]!";
                  prtw( $comp );
               }
               $cwarns{$num} = $comp;
            }
         }
      }
      prt( "Found $ecnt warnings ...\n" );
      foreach $key (keys %cerrs) {
         $val = $cerrs{$key};
         $comp = $cwarns{$key};
         prt( "$key $val $comp\n" );
         push(@list, [$val, $key, $comp]);
      }
      @slist = sort mycmp_decend @list;
      $lncnt = scalar @slist;
      prt( "Sorted list if $lncnt items ...\n" );
      for ($i = 0; $i < $lncnt; $i++) {
         $val = $slist[$i][0];
         $num = $slist[$i][1];
         $comp = $slist[$i][2];
         prt( "$val $num $comp\n" );
      }
   } else {
      prt( "ERROR: Unable to open $inf ... $! ...\n" );
   }
}
sub prtw {
   my ($msg) = shift;
   push(@warnings,$msg);
   prt( "$msg\n" );
}
sub mycmp_decend {
   if (${$a}[0] < ${$b}[0]) {
      prt( "+[".${$a}[0]."] < [".${$b}[0]."]\n" ) if $verb3;
      return 1;
   }
   if (${$a}[0] > ${$b}[0]) {
      prt( "-[".${$a}[0]."] > [".${$b}[0]."]\n" ) if $verb3;
      return -1;
   }
   prt( "=[".${$a}[0]."] = [".${$b}[0]."]\n" ) if $verb3;
   return 0;
}
# eof

index -|- top

checked by tidy  Valid HTML 4.01 Transitional