#--------------------------------------------------------------------- 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 = ; 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