#!/usr/bin/perl

$tag = "ver-2-0";

@log = `cvs log 2> /dev/null`;

@output = ();

$flag = 0;

foreach (@log) 
{
    # Next file
    if (s/^RCS file: \/usr\/local\/cvsroot\/(.*),v\n$/$1/)
    {
	if ((/Attic/) || (/ex4/) || (/ex5/))
	{
	    # DO NOTHING
	}
	else
	{
	    $filename = $_;
	    $flag = 1;
	}
    }

    # Extract version number
    elsif (($flag == 1) && (s/$tag:\s1.(.*)\n/$1/)) 
    {
	s/\s(.*)/$1/;
	$revision = $_;
	$flag = 2;
    }

    # Find newer versions
    elsif (($flag >= 2) && (s/^revision\s1.(.*)\n/$1/)  && ($_ > $revision)) 
    {
	if ($flag == 2)		# First newer version
	{
	    print "\n";
	    print "Filename: $filename\n";
	    print "Revision: 1.$revision corresponds to $tag\n";
	}

	print "----------------------------\n";
	print "Revision 1.$_\n";
	$flag = 4;
    }
    elsif (($flag == 4) && (/^----/))
    {
	$flag = 3;
    }
    elsif ($flag == 4)
    {
	print $_;
    }
    elsif (($flag >= 2) && (/^====/))
    {
	if ($flag >= 3) 
	{
	    print "\n";
	    print "=======================================";
	    print "======================================\n";
	}
	$flag = 0;
    }
}

