svnno****@sourc*****
svnno****@sourc*****
2013年 4月 16日 (火) 23:15:04 JST
Revision: 5204 http://sourceforge.jp/projects/ttssh2/scm/svn/commits/5204 Author: yutakapon Date: 2013-04-16 23:15:04 +0900 (Tue, 16 Apr 2013) Log Message: ----------- Shift_JISのみ検出するようにした。 しかし、ISO8859-1 を Shift_JIS と認識してしまう模様。 Modified Paths: -------------- trunk/installer/check_sjis_code.pl -------------- next part -------------- Modified: trunk/installer/check_sjis_code.pl =================================================================== --- trunk/installer/check_sjis_code.pl 2013-04-16 13:43:22 UTC (rev 5203) +++ trunk/installer/check_sjis_code.pl 2013-04-16 14:15:04 UTC (rev 5204) @@ -7,37 +7,39 @@ # perl check_sjis_code.pl > result.txt # +use Encode::Guess qw/shift-jis 7bit-jis/; + get_file_paths('../doc/en/html'); exit(0); -sub get_file_paths { - my ($top_dir)= @_; - my @paths=(); - my @temp = (); - - #-- \x83J\x83\x8C\x83\x93\x83g\x82̈ꗗ\x82\xF0\x8E擾 --# - opendir(DIR, $top_dir); - @temp = readdir(DIR); - closedir(DIR); - foreach my $path (sort @temp) { +sub get_file_paths { + my ($top_dir)= @_; + my @paths=(); + my @temp = (); + + #-- \x83J\x83\x8C\x83\x93\x83g\x82̈ꗗ\x82\xF0\x8E擾 --# + opendir(DIR, $top_dir); + @temp = readdir(DIR); + closedir(DIR); + foreach my $path (sort @temp) { next if( $path =~ /^\.{1,2}$/ ); # '.' \x82\xC6 '..' \x82̓X\x83L\x83b\x83v next if( $path =~ /^\.svn$/ ); # '.svn' \x82̓X\x83L\x83b\x83v - + my $full_path = "$top_dir" . '/' . "$path"; next if (-B $full_path); # \x83o\x83C\x83i\x83\x8A\x83t\x83@\x83C\x83\x8B\x82̓X\x83L\x83b\x83v - -# print "$full_path\r\n"; # \x95\\x8E\xA6\x82\xBE\x82\xAF\x82Ȃ\xE7\x91S\x82Ă\xF0\x95\\x8E\xA6\x82\xB5\x82Ă\xAD\x82\xEA\x82\xE9------- - push(@paths, $full_path); # \x83f\x81[\x83^\x82Ƃ\xB5\x82Ď\xE6\x82荞\x82\xF1\x82ł\xE0\x91O\x82̎\xE6\x82荞\x82݂\xAA\x8F\x89\x8A\x{227B0B3}\x82\xEA\x82\xE9 - if( -d "$top_dir/$path" ){ #-- \x83f\x83B\x83\x8C\x83N\x83g\x83\x8A\x82̏ꍇ\x82͎\xA9\x95\xAA\x8E\xA9\x90g\x82\xF0\x8CĂяo\x82\xB7 + +# print "$full_path\r\n"; # \x95\\x8E\xA6\x82\xBE\x82\xAF\x82Ȃ\xE7\x91S\x82Ă\xF0\x95\\x8E\xA6\x82\xB5\x82Ă\xAD\x82\xEA\x82\xE9------- + push(@paths, $full_path); # \x83f\x81[\x83^\x82Ƃ\xB5\x82Ď\xE6\x82荞\x82\xF1\x82ł\xE0\x91O\x82̎\xE6\x82荞\x82݂\xAA\x8F\x89\x8A\x{227B0B3}\x82\xEA\x82\xE9 + if( -d "$top_dir/$path" ){ #-- \x83f\x83B\x83\x8C\x83N\x83g\x83\x8A\x82̏ꍇ\x82͎\xA9\x95\xAA\x8E\xA9\x90g\x82\xF0\x8CĂяo\x82\xB7 &get_file_paths("$full_path"); - + } else { check_sjis_code($full_path); - } - } - return \@paths; -} + } + } + return \@paths; +} # cf. http://charset.7jp.net/sjis.html @@ -53,10 +55,21 @@ while ($line = <FP>) { # $line = chomp($line); # print "$line\n"; - if ($line =~ /([\xA1-\xDF]|[\x81-\x9F\xE0-\xEF][\x40-\x7E\x80-\xFC])/) { - print "$filename:$no: $1\n"; - print "$line\n"; + + my $enc = guess_encoding( $line, qw/ euc-jp shiftjis 7bit-jis / ); + + if (ref $enc) { + #printf "%s\n", $enc->name; + if ($enc->name !~ /ascii/) { + #printf "%s\n", $enc->name; + print "$filename:$no: $1\n"; + print "$line\n"; + } } +# if ($line =~ /([\xA1-\xDF]|[\x81-\x9F\xE0-\xEF][\x40-\x7E\x80-\xFC])/) { +# print "$filename:$no: $1\n"; +# print "$line\n"; +# } $no++; } close(FP);