#!/usr/local/bin/perl
# /*======================================================================
# ======================================================================*/

   @localmod = ();
   @localadd = ();
   @conflicts = ();
   @moveaway = ();
   @errors = ();
   while(<>) {
      if ( /^U (.+)/ ) {
         $name = $1;
         print "Updating $name\n";
      } elsif (/^P (.+)/ ) {
         $name = $1;
         print "Updating $name\n";
      } elsif (/^Merging (.+)/ ) {
         while(<>) {
            if (/^M (.+)/ ) {
               $name = $1;
               print "Updating $name\n";
               last;
            } elsif (/^C (.+)/ ) {
               $name = $1;
               print "Updating $name\n";
               push @conflicts, $name;
               last;
            }
         }
      } elsif (/^M (.+)/ ) {
         $name = $1;
         push @localmod, $name;
      } elsif (/^C (.+)/ ) {
         $name = $1;
         print "Updating $name\n";
         push @conflicts, $name;
      } elsif (/^A (.+)/ ) {
         $name = $1;
         push @localadd, $name;
      } elsif (/^cvs update: move away ([^;]+);/) {
         $name = $1;
         push @moveaway, $name;
         $nextline = <>;
      } elsif (/^cvs update: ([^\s]+) is no longer in the repository/) {
         $name = $1;
         print "Deleting: $name\n";
      } elsif (/^cvs \[update aborted\]: (.+)/ ) {
         $message = $1;
         push @errors, $message;
      } elsif (/waiting for/) {
         print $_;
      }
   }
   if( $#conflicts > -1 ) {
      unshift @conflicts, "The following files had merge conflicts:";
      print join("\n --- ",@conflicts);
      print "\n";
   }
   if( $#conflicts > -1 && $#moveaway > -1) {
      print "\n";
   }
   if( $#moveaway > -1 ) {
      unshift @moveaway, "The following files are in the way:";
      print join("\n --- ",@moveaway);
      print "\n";
   }
   if( $#moveaway > -1 && $#errors > -1) {
      print "\n";
   }
   if( $#errors > -1 ) {
      unshift @errors, "The following errors occurred:";
      print join("\n --- ",@errors);
      print "\n";
   }
   if( $#errors > -1 && $#localmod > -1) {
      print "\n";
   }
   if( $#localmod > -1 ) {
      unshift @localmod, "The following files are modified in your view:";
      print join("\n --- ",@localmod);
      print "\n";
   }
   if( $#localmod > -1 && $#localadd > -1) {
      print "\n";
   }
   if( $#localadd > -1 ) {
      unshift @localadd, "The following files are added in your view:";
      print join("\n --- ",@localadd);
      print "\n";
   }

