[Namazu-win32-users-ja 1246] Re: mknmzの処理が中断する

Tadamasa Teranishi yw3t-trns @ asahi-net.or.jp
2010年 9月 17日 (金) 05:53:56 JST


寺西です。

Toru Ishizuka wrote:
> 
>  ファイルリストで指定した場合でもファイルリストの中身の
> ファイルを引数にしてfind_targetが呼ばれていますね。

呼ばれていても File::Find が避けられるかと思いましたが、

>  本当はfind_targetの先頭で if (-f )をチェックしているの
> で、ファイルリストの中身がファイルの場合は、再帰のロジッ
> クには避けられそうなのですが、なぜか if (-f) がfalseになっ
> たあげく、やはり挙動がおかしくなります。

そう、-f も日本語に対応していないので、意図と反して誤動作して
いるということのようです。残念。
 
>  根本的に長い日本語のファイル名は扱えないのでしょうかね。。

長いか短いかは関係なく、日本語のパス名に ActivePerl は対応
していません。
# 長い日本語のパス名がダメだったのはたまたま。
 
>  ちなみに、ダメなファイル名はマスクしていますが以下のよ
> うな感じです。
...
>  途中で入っている半角ブランクや全角ブランクは実際に使用
> されています。

重要な情報が伏せられているので具体的に何がまずいか解析できま
せんが、まずい文字がどこかに含まれているのでしょう。

>  find_targetよばずに、ファイルリストの中身をそのままイ
> ンデックスの作成対象(@flist)に代入した場合はうまく動きま
> した。

if (-f $target) {

を

if (util::canopen($target)) {

に変更すると回避できるかもしれません。
-- 
=====================================================================
寺西 忠勝(TADAMASA TERANISHI)  yw3t-trns @ asahi-net.or.jp
http://www.asahi-net.or.jp/~yw3t-trns/index.htm
Key fingerprint =  474E 4D93 8E97 11F6 662D  8A42 17F5 52F4 10E7 D14E


Namazu-win32-users-ja メーリングリストの案内