cleandiff.pl to HTML.

index -|- end

Generated: Tue Feb 2 17:54:25 2010 from cleandiff.pl 2008/11/02 2.3 KB.

#!perl -w
# NAME: cleandiff.pl
# AIM: To remove some things from an input diff file ...
# 1 - remove Only in blah blah ...
# 2 - remove diff of .dsp files ...
# and write results to an output file
# 11/2/2008 geoff mclane http://geoffair.net/fg
use strict;
use warnings;
my $in_file = 'tempdiff.txt';
my $out_file = 'temp2diff.txt';
parse_args(@ARGV);
process_file($in_file, $out_file);
exit(0);
sub give_help {
   prt( "Brief HELP for $0 script ...\n" );
   prt( "$0 -in:input_file -out:output_file\n" );
   ort( "Defaults: in:$in_file, out:$out_file\n" );
   exit(0);
}
sub parse_args {
   my (@av) = @_;
   my ($arg, $ch, $val);
   while(@av) {
      $arg = shift @av;
      $ch = substr($arg,0,1);
      if ($arg =~ /\?/) {
         give_help();
      } elsif (($ch eq '-')||($ch eq '/')) {
         $val = substr($arg,1);
         if ($val =~ /^in:/) {
            $in_file = substr($val,3);
            prt( "Set input file to $in_file ...\n" );
         } elsif ($val =~ /^out:/) {
            $out_file = substr($val,4);
            prt( "Set output file to $out_file ...\n" );
         } else {
            prt( "ERROR: Unknown argument [$arg]!\n" );
            give_help();
         }
      } else {
         prt( "ERROR: Unknown argument [$arg]!\n" );
         give_help();
      }
   }
}
sub prt {
   my ($txt) = shift;
   print $txt;
}
sub process_file {
   my ($fil, $out) = @_;
   my (@lines, $line, $lncnt, $i, $txt, $lnnum);
   my @nlines = ();
   my $newlns = 0;
   if (open INF, "<$fil") {
      @lines = <INF>;
      close INF;
      $lncnt = scalar @lines;
      prt( "Process $lncnt lines from $fil ...\n" );
      $lnnum = 0;
      for ($i = 0; $i < $lncnt; $i++) {
         $line = $lines[$i];
         chomp $line;
         $lnnum++;
         if ($line =~ /^Only\s+in\s+/) {
            next;
         } elsif ($line =~ /^diff\s+.+\.dsp$/i) {
            $i++;
            for (; $i < $lncnt; $i++) {
               $line = $lines[$i];
               chomp $line;
               if ($line =~ /^diff\s+.+/) {
                  if ( !($line =~ /^diff\s+.+\.dsp$/i) ) {
                     last;
                  }
               }
            }
         }
         push(@nlines,$line);
         $newlns++;
      }
      $txt = join("\n",@nlines);
      if (open OUT, ">$out") {
         print OUT $txt;
         close OUT;
         prt("Written $newlns to $out ... discarded ".($lncnt - $newlns)." lines ...\n" );
      } else {
         prt( "ERROR: Unable to CREATE/WRITE file $out ... check name, location...\n" );
      }
   } else {
      prt( "ERROR: Unable to OPEN/READ file $fil ... check name, location...\n" );
   }
}
# eof - cleandiff.pl

index -|- top

checked by tidy  Valid HTML 4.01 Transitional