windows-nt/Source/XPSP1/NT/tools/postbuildscripts/unicodecheck.pm
2020-09-26 16:20:57 +08:00

92 lines
1.9 KiB
Perl

#---------------------------------------------------------------------
package UnicodeCheck;
#
# Copyright (c) Microsoft Corporation. All rights reserved.
#
# Version: 1.00 (05/15/2001) : (MikeR) Helper functions for Unicode checks
#---------------------------------------------------------------------
use strict;
use vars qw(@ISA @EXPORT $VERSION);
use Carp;
use Exporter;
use lib $ENV{ "RazzleToolPath" };
use lib $ENV{ "RazzleToolPath" } . "\\PostBuildScripts";
use Logmsg;
@ISA = qw(Exporter);
@EXPORT = qw(IsFileUnicode);
$VERSION = '1.00';
sub IsFileUnicode( $ )
{
my $ThisFile = shift;
my $ReturnCode = 0;
if ( open( THISFILE, $ThisFile ) )
{
my $FirstLine;
$FirstLine = <THISFILE>;
if ((ord(substr($FirstLine,0,1))==255) && (ord(substr($FirstLine,1,1))==254))
{
logmsg( "Unicode signature is valid for file '$ThisFile'." );
$ReturnCode = 1;
}
else
{
errmsg( "Unicode signature is invalid for '$ThisFile'!" );
$ReturnCode = 0;
}
# Close the file...
close( THISFILE );
}
else
{
# Cannot find file...
errmsg( "Cannot open file to verify Unicode signature - '$ThisFile'!" );
$ReturnCode = 0;
}
return $ReturnCode;
}
1;
__END__
=head1 NAME
UnicodeCheck - Helper functions to check Unicode cycles
=head1 SYNOPSIS
Call IsFileUnicode() with a full path to a file to determine if it's Unicode or not.
Details and errors are logged using errmsg and logmsg. Return code is 1 if the file
is Unicode (that is, it has the FFFE Unicode header), 0 otherwise.
=head1 DESCRIPTION
Used to help detect if files are Unicode or not.
=head1 AUTHOR
MikeR
=head1 COPYRIGHT
Copyright (c) Microsoft Corporation. All rights reserved.
=cut