#!/usr/bin/perl

use Jcode;
$correct_default = 'euc';  # 'euc' or 'sjis' or 'jis' or 'utf8'

if ($#ARGV < 2){
    die "Usage: kanjichecker.pl [euc|sjis|jis|utf8] dir path_to_file\n";
}

$current = $ARGV[0] || $current_default;
$dir     = $ARGV[1];
$file    = $ARGV[2];

# if file was removed already, check isn't need.
unless (-f $file) {
    exit 0;
}

open(FILE, "<$file")
    || die "$file: cannot open for reading.";

$count = 0;
while (<FILE>) {
    $count++;
    undef $code;
    ($code, $nmatch) = getcode(\$_);
    exit 0 if ($_ =~ /^\x89PNG\r/); # for PNG format image files.
    exit 0 if ($_ =~ /^GIF8[79]a/); # for GIF format image files.
    exit 0 if ($_ =~ /^\xFF\xD8/); # for JPEG format image files.
    exit 0 if ($_ =~ /^\x42\x4D/); # for BMP format image files.
    if ($code eq 'binary') {
        exit 0;
    } elsif ($code eq 'ascii') {
        next;
    } elsif ($code eq $current) {
        next;
    } else {
        die "$file include $code, current code is $current.\n";
    }
}

exit 0;
