#---------------------------------------------------------------------
#package inftest;
#
#   Copyright (c) Microsoft Corporation. All rights reserved.
#
# Version:
#  1.00 01/21/2002 DMiura: initial version
#
#---------------------------------------------------------------------
use strict;
#use warnings;

# my %exceptions = { <file> => {<lang1>=>1, <lang2>=>1, ...},
my %bad_langs = (
 cs=>1,
 el=>1,
 hu=>1,
 jpn=>1,
 pl=>1,
 ru=>1,
 tr=>1
);

my %exceptions = (
 "c_737.nls" => {el=>1},
 "c_852.nls"  => {cs=>1, hu=>1, pl=>1},
 "c_857.nls" => {tr=>1},
 "c_866.nls" => {ru=>1},
 "imjpch.dic" => {jpn=>1},
 "imjpgn.grm" => {jpn=>1},
 "imjpln.dic" => {jpn=>1},
 "imjpmig.exe" => {jpn=>1},
 "imjpnm.dic" => {jpn=>1},
 "imjpsb.dic" => {jpn=>1},
 "imjpst.dic" => {jpn=>1},
 "imjptk.dic" => {jpn=>1},
 "imjpzp.dic" => {jpn=>1},
 "kbdcz.dll"  => {cs=>1},
 "kbdcz1.dll" => {cs=>1},
 "kbdcz2.dll" => {cs=>1},
 "kbdgkl.dll" => {el=>1},
 "kbdhe.dll" => {el=>1},
 "kbdhe220.dll" => {el=>1},
 "kbdhe319.dll" => {el=>1},
 "kbdhela2.dll" => {el=>1},
 "kbdhela3.dll" => {el=>1},
 "kbdhept.dll" => {el=>1},
 "kbdhu.dll" => {hu=>1},
 "kbdhu1.dll" => {hu=>1},
 "kbdpl.dll" => {pl=>1},
 "kbdpl1.dll" => {pl=>1},
 "kbdru.dll" => {ru=>1},
 "kbdru1.dll" => {ru=>1},
 "kbdtuf.dll" => {tr=>1},
 "kbdtuq.dll" => {tr=>1},
 "vga737.fon" => {el=>1},
 "vga852.fon" => {cs=>1, hu=>1, pl=>1},
 "vga857.fon" => {tr=>1},
 "vga866.fon" => {ru=>1}
 "wkbdcz1.dll" =>{cs=>1}
 "wkbdcz2.dll" =>{cs=>1}
 "wc_852.nls" =>{cs=>1,hu=>1}
 "wkbdcz.dll" =>{cs=>1}

 "wkbdgkl.dll" =>{el=>1}
 "wkbdhe220.dll" =>{el=>1}
 "wkbdhe319.dll" =>{el=>1}
 "wkbdhept.dll" =>{el=>1}
 "wkbdhela2.dll" =>{el=>1}
 "wc_737.nls" =>{el=>1}
 "wkbdhe.dll" =>{el=>1}

 "wkbdhu.dll"=>{hu=>1}
 "wc_852.nls"=>{hu=>1,pl=>1}

 "wkbdpl1.dll"=>{pl=>1}
 "wkbdpl.dll"=>{pl=>1}

 "wkbdru1.dll"=>{ru=>1}
 "wc_866.nls"=>{ru=>1}
 "wkbdru.dll"=>{ru=>1}

 "wkbdtuf.dll" =>{tr=>1}
 "wc_857.nls" =>{tr=>1}
);


# First parameter should be the language, pull it out
my $lang = shift @ARGV;

if ( exists $bad_langs{lc$lang} ) {
    # Call inftest with passed parameters
    my @results = `inftest.exe @ARGV` ;
    exit $! if $!;

    my $exitVal = $?>>8;

    # Test for language and exception list. Print results to std out.
    foreach my $result (@results) {
        if ( $result =~ /: error \S+ :.*?(\S+)$/i ) {
            my $langs = $exceptions{lc$1};
            if ( exists $langs->{lc$lang} ) {
                $result =~ s/: error \S+ :/: WARNING :/i;
            }
        }
        print $result;
    }

    exit $exitVal;
}

# Default behavior is to pass through to EXE
system( "inftest.exe @ARGV" );
if ( $! ) { exit $! }
else { exit $?>>8 }