116 lines
2.6 KiB
Perl
116 lines
2.6 KiB
Perl
#---------------------------------------------------------------------
|
|
#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 }
|