#!/usr/local/bin/perl
#
#	supcheck 1.0 - supplement$B$N;HMQ>u67$r%A%'%C%/$9$k6=L#K\0L$J%3%^%s%I(B
#		by endo-h@zizi.cs.uec.ac.jp
#
use Getopt::Std;

getopts('hsu:', \%opts);

if ($opts{'h'}) {
    print "Usage: supcheck [-h] [-s] [-u user]\n";
    exit(0);
}

$usr = $opts{'u'} ? $opts{'u'} : $ENV{'USER'};	# $B%f!<%6;XDj(B

$dtoa = "/usr/local/bin/Wnn4/dtoa";
$supdicdir = "/usr/local/lib/wnn/ja_JP/dic/misc";
$usrdicdir = "/usr/local/lib/wnn/ja_JP/dic/usr/$usr";
$dic = "$supdicdir/supplement.dic";

## $B%f!<%6$NIQEYCM$D$-$GFI$`(B
open(MOD, "$dtoa $dic $usrdicdir/supplement.h|");
@mods = ();
$skip = 0;
while (<MOD>) {
    if (/^\S+\t+\S+\t+\S+\t+(\d+)/) {
	push(@mods, $1);
    } else {
	$skip++;
    }
}
close(MOD);

## $B<!$K%G%U%)%k%H$NIQEYCM$GFI$`(B
$i = 0;
open(ORG, "$dtoa $dic|");
# $B%X%C%@$r%9%-%C%W$9$k(B
while (<ORG>) {
    last unless (--$skip);
}
$total_freq = 0;
$k = $j = 0;
while (<ORG>) {
    $k++;
    if ($mod_freq = $mods[$i++]) { # $B%f!<%6$N(Bfreq$B$,(B0$B0J30$N;~$N$_%A%'%C%/(B
	if (/^(\S+\t+\S+\t+\S+\t+)(\d+)/) {
	    $key = $1;
	    $freq = $2;
	    if ($mod_freq != $freq) {
		$delta = $mod_freq - $freq;
		$total_freq += $delta;
		$j++;
		print "$key$delta\n" unless($opts{'s'});
	    }
	}
    } else {
	#	    	print "[$_]\n";
    }
}
close(ORG);

if ($opts{'s'}) {
    $r = 100 * $j / $i;
    printf "%d/%d %#3.1f%\n" ,$j, $i, $r;
#    print "total = $total_freq\n";
}
