diff options
Diffstat (limited to 'Master/texmf-dist/doc/uptex/uptex-base/samples/check_enc.pl')
-rw-r--r-- | Master/texmf-dist/doc/uptex/uptex-base/samples/check_enc.pl | 52 |
1 files changed, 52 insertions, 0 deletions
diff --git a/Master/texmf-dist/doc/uptex/uptex-base/samples/check_enc.pl b/Master/texmf-dist/doc/uptex/uptex-base/samples/check_enc.pl new file mode 100644 index 00000000000..221073f61b1 --- /dev/null +++ b/Master/texmf-dist/doc/uptex/uptex-base/samples/check_enc.pl @@ -0,0 +1,52 @@ +#!/usr/bin/perl + +# This software is public domain. + +# +# Perl 5.8.x + Encode.pm or Perl5.6.x + Jcode.pm is required. +if ($] >= 5.008) { + eval('use Encode::Guess qw/euc-jp shiftjis 7bit-jis utf8/;'); + $@ and &error_exit; + %perl_encname = + qw/euc euc-jp jis 7bit-jis sjis shiftjis utf8 utf8 uptex utf8 + e euc-jp j 7bit-jis s shiftjis u utf8/; + $Encodepm = 1; +} elsif ($] >= 5.006) { + eval('use Jcode;'); + $@ and &error_exit; + %perl_encname = + qw/euc euc jis jis sjis sjis utf8 utf8 uptex utf8 + e euc j jis s sjis u utf8/; + $Encodepm = 0; +} else { + &error_exit; +} + +$enc=shift @ARGV; +@files=@ARGV; + +foreach $file (@files) { + my $data; + + $data = undef; + open(IN,$file) or die "check_enc:: Cannot open file $file\n"; + $data .= $_ while (<IN>); + if ($Encodepm) { + my $genc = eval('guess_encoding($data);'); + ref($genc) or die "check_enc:: Cannot guess: $genc, file:$file ($perl_encname{$enc})\n"; + $perl_guess = $genc->name; + } else { + $perl_guess = eval('getcode($data);'); + } + if ($perl_guess ne $perl_encname{$enc}) { + die "check_enc:: file:$file ($perl_guess) does not seem encoded by $perl_encname{$enc}\n"; + } + print "check_enc:: OK! file:$file seems encoded by $perl_guess\n"; + +} + +sub error_exit { + print "check_enc:: Perl5.6.x + Jcode.pm or Perl5.8.x + Encode.pm is required. Cannot guess file encoding\n"; + sleep 1; + exit(0); +} |