projects
/
lab.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
utils::get gives hashref tree from API
[lab.git]
/
misc
/
findnonsjis.pl
diff --git
a/misc/findnonsjis.pl
b/misc/findnonsjis.pl
index
7e25e48
..
71e9a0a
100755
(executable)
--- a/
misc/findnonsjis.pl
+++ b/
misc/findnonsjis.pl
@@
-3,21
+3,23
@@
use strict;
use warnings;
use utf8;
use strict;
use warnings;
use utf8;
-use encoding 'utf-8';
-use Unicode::Japanese qw(unijp);
+use Encode;
my $top = shift @ARGV || exit;
if (! -d $top) { exit; }
my $top = shift @ARGV || exit;
if (! -d $top) { exit; }
+my $utf8 = find_encoding("utf8");
+
checkdir($top);
sub match {
my $str = shift @_;
checkdir($top);
sub match {
my $str = shift @_;
- my $sjis = unijp($str)->sjis;
+ my $sjis = encode("cp932", $utf8->decode($str), Encode::FB_HTMLCREF);
if ($sjis =~ /&#\d{4,};/) {
if ($sjis =~ /&#\d{4,};/) {
- return 1;
+ Encode::from_to($sjis, "cp932", "utf8");
+ return $sjis;
}
return '';
}
return '';
@@
-26,16
+28,15
@@
sub match {
sub checkdir {
my $target = shift @_;
sub checkdir {
my $target = shift @_;
- print STDERR "checking '$target'\n";
+ print STDERR "# checking '$target'\n";
opendir(my $dir, $target) || return $target;
opendir(my $dir, $target) || return $target;
- my @entries = sort readdir($dir);
+ my @entries = sort grep { !m/^(\.|\.\.)$/g } readdir($dir);
closedir($dir);
my @dirs;
while (my $entry = shift @entries) {
closedir($dir);
my @dirs;
while (my $entry = shift @entries) {
- next if ($entry =~ /^\.+$/);
- if (match($entry)) {
- print "'$target/$entry' contains non Shift_JIS character\n";
+ if (my $convert = match($entry)) {
+ print "'$target/$entry' can be converted to '$convert'\n";
next;
}
if (-d "$target/$entry") {
next;
}
if (-d "$target/$entry") {