92 lines
1.9 KiB
Perl
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
|