遅ればせながら、Movable Type 3.17にアップグレードしてみました。
特に問題はないんですが、Main Index をリビルドしているときに以下のようなWarningが出ました。
Use of uninitialized value in join or string at /home/sekimura/mt/lib/MT/Util.pm line 110.
MT::Util の substr_wref() は &とかの文字実体参照も一文字として扱いつつ substringする関数のようですが、 指定したwidthよりstrが短い時を想定していない? ともかく、以下のようなパッチでWarningは出なくなります。 (undef のときに undef を返したり、m///gをm///gsにして改行とかもマッチするようにしているのが正しいか自信ないので、そこはお好みで)
--- lib/MT/Util.pm.orig Wed May 18 18:02:19 2005
+++ lib/MT/Util.pm Tue Jun 14 12:17:20 2005
@@ -106,7 +106,9 @@
# substring treating HTML character-entity references as single characters
sub substr_wref {
my ($str, $start, $width) = @_;
- my @character_entities = $str =~ /(&[^;]*;|.)/g;
+ return undef unless defined $str;
+ my @character_entities = $str =~ /(&[^;]*;|.)/gs;
+ $width = @character_entities if $width > @character_entities;
join '', @character_entities[$start..$start+$width-1];
}
追記: 2005年7月14日
Movable Type 3.171日本語版の提供を開始 には、この "Use of uninitialized value in join or string at lib/MT/Util.pm line 110." 問題の修正が含まれますので、アップデートをお勧めします。
sub substr_wref {
my ($str, $start, $width) = @_;
my @character_entities = $str =~ /(&[^;]*;|.)/g;
return $str if ($#character_entities < $start+$width);
join '', @character_entities[$start..$start+$width-1];
}
追記情報のトラックバックによるお知らせありがとうございます。
私の方も近々時間を見つけてバージョンアップしようと思います。何度も同じ記事にトラックバックするのはどうかな、と思ったのでコメントで失礼します。
なるほど。。。
アップロードした場合の不具合は、
こういうふうにして解決するのですね☆