#!/usr/bin/perl -w -s

use POSIX qw(locale_h);
setlocale(&POSIX::LC_ALL, "pt_PT") or warn("erro $!");
use locale;

my $tmp = ".$$.tmp";
our($debug);

open(A,"|jspell -d port -e > $tmp-1");
open(B,"|jspell -d port -e > $tmp-2");

while(<>){
	if(/(.*?)\/(.*?)\/(.*)/){
        my ($u1,$u2,$u3)=($1,$2,$3);
        my %a1=();
        for(split(/\s*,\s*/,$u1)){ $a1{$_}=1 }
        for(split(/\s*,\s*/,$u3)){ 
             if($a1{$_}){ delete $a1{$_}     } 
             else       { print B "$_/$u2\n" }}
        for(keys %a1){ print A "$_/$u2\n";}
  	}
}
close(A);
close(B);

#aqui acabava o z

open(A,"$tmp-1"); open(B,">$tmp-11");
while(<A>){
	s/=.*?\)/\n/g;
	s/\s*,\s*/\n/g;
	s/ /\n/;
	print B $_
}
close A; close B;

open(A,"$tmp-2"); open(B,">$tmp-22");
while(<A>){
	s/=.*?\)/\n/g;
	s/\s*,\s*/\n/g;
	s/ /\n/;
	print B $_
}
close A; close B;
unlink "$tmp-1", "$tmp-2" unless $debug;

#aqui acabava o z2

open(PTIN,"$tmp-11"); open(PTOUT,"| sort -u > pt");
open(BRIN,"$tmp-22"); open(BROUT,"| sort -u > br");


my %hash;

while(<PTIN>){ $hash{$_}=$_; }
while(<BRIN>){
	if (defined($hash{$_})){ delete $hash{$_}; }
	else { print BROUT "- ".$_};
}

foreach(keys %hash){
	print PTOUT "+ ".$_;
}

close PTIN;
close PTOUT;
close BRIN;
close BROUT;

#qx{paste $tmp-11 $tmp-222 | sort -u | sed -e 's/\\s\\+/;/g' > hash};

unlink "$tmp-11", "$tmp-22", "$tmp-222" unless $debug;
