2008年5月 2日

[Namazu-devel-ja 1737] nmzcat と %FIELD_ALIASES と変数の初期化

寺西です。

nmzcat は %FIELD_ALIASES (つまり、フィールドの別名)を考慮していない
ようです。このため、

$ nmzcat msg00000.html

では、author が取り出せていません。


$Document->get_field_info('author');

で、直接 $self->{'_field_info'}{author}; を参照しています。
多くのメディアタイプでは author に著者が入りますが、mhonarc.pl では
from に著者が入るためです。

これはこういう仕様だと考えて、nmzcat に "from:" の表示も追加すると
いう方法もありますが、$self->{'_field_info'} が %FIELD_ALIASES を
考慮した方が良いのではないかと思います。

%FIELD_ALIASES を考慮しようとすると、mknmz の
complete_field_info と clean_field_index に相当する処理を行った上で
get_field_info でエイアスの参照を行う必要があるでしょう。
# complete_field_info は必要ないかもしれませんが。

=====================================================================

ところで、development-2-1 の html.pl の htmlparser_filter では、
$fields->{'title'}, $fields->{'author'} を undef で初期化しています。

このため、init_doc で行った '_field_info' の初期化を壊すので、

$ nmzcat msg00000.html

では、$self->{'_field_info'}{author} が未定義となるため、

Use of uninitialized value in concatenation (.) or string at
/usr/local/bin/nmzcat line 82.

が発生します。
undef で初期化している部分をコメントアウトすれば、このエラーは
消えますが、htmlparser_filter 内の処理で $fields->{'title'},
$fields->{'author'} は undef で初期化していることが前提のようなので、
別の問題がでそうです。

というところまで調べて力尽きました。
--
=====================================================================
寺西 忠勝(TADAMASA TERANISHI) yw3t-trns@xxxxx
http://www.asahi-net.or.jp/~yw3t-trns/index.htm
Key fingerprint = 474E 4D93 8E97 11F6 662D 8A42 17F5 52F4 10E7 D14E

_______________________________________________
Namazu-devel-ja mailing list
Namazu-devel-ja@xxxxx
http://www.namazu.org/cgi-bin/mailman/listinfo/namazu-devel-ja

投稿者 xml-rpc : 2008年5月 2日 05:09
役に立ちました?:
過去のフィードバック 平均:(0) 総合:(0) 投票回数:(0)
本記事へのTrackback: http://hoop.euqset.org/blog/mt-tb2006.cgi/72771
トラックバック
コメント
コメントする




画像の中に見える文字を入力してください。