
$thefile = $ARGV[0];

#input record separator;
$irs = $/;
#ouput record separator;
$ors = $\;

open (COMMAVFILE, "<$thefile");

binmode COMMAVFILE;

my @linebuffer;
my %revdateline;
my $inrevs = false;
my @filedump;

while ($fileline = <COMMAVFILE>) {
#  $fileline = <COMMAVFILE>;
  push @linebuffer,$fileline;
  if ($fileline =~ /^desc$/) {last;}
  if ($fileline =~ /^date\s[\d]{2,4}(\.[\d]{2}){5};.*/) {
    pop @linebuffer;
  }
}

while ($fileline = <COMMAVFILE>) {
#  $fileline = <COMMAVFILE>;
  push @linebuffer,$fileline;
  if ($fileline =~ /^([\d]+(\.[\d]+)+)$/) {$rev = $1;}
  elsif ($fileline =~ /date\s[\d]{2,4}(\.[\d]{2}){5};.*/) {
    $revdateline{$rev} = $fileline;
    pop @linebuffer;
    if ($rev eq 1.1) {last;}
  }
}

@filedump = <COMMAVFILE>;

close COMMAVFILE;

open (TEMPFILE, "> tempfile");

binmode TEMPFILE;

while ($fileline = shift @linebuffer) {
  print TEMPFILE $fileline;
  if ($fileline =~ /^([\d]+(\.[\d]+)+)$/) {
    $rev = $1;
    print TEMPFILE $revdateline{$rev};
  }
  if ($fileline =~ /^desc$/) {last;}
}

while ($fileline = shift @linebuffer) {
  print TEMPFILE $fileline;
}

print TEMPFILE @filedump;

close TEMPFILE;

 