[Ttssh2-commit] [5204] Shift_JISのみ検出するようにした。

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);



Ttssh2-commit メーリングリストの案内