[Mew-dist 13924] fiber with 日本語 file (Re: mew-dir-list2)

Hideyuki SHIRAI ( 白井秀行 ) shirai at example.com
2000年 8月 26日 (土) 18:21:05 JST


白井@やっと冒険者になりました、です。

# mew-pop がちゃんと動いているから、もう冒険者にはなれないかな。

From: Kenichi Niioka (新岡賢一) <niioka at example.com> さん曰く
Subject: [Mew-dist 13923] Re: mew-dir-list2
Message-ID: <20000826.101731.74716495.niioka at example.com>
Date: Sat, 26 Aug 2000 10:18:09 +0900

新岡> とりあえず、報告だけですが、Meadow-1.13 Beta1 で fiber が動かなく
新岡> なりました。

新岡> Filename:	8-25ご回答.xls
新岡> Program:	fiber.exe

新岡> たとえば、この状態で C-cC-e しても MS-Excel が起動しなくなりました。
新岡> 起動しないのは、*.xls, *.doc, *.ppt で、*.zip, *.lzh, *.pdf などは
新岡> 問題ありません。

おそらく、起動しないのは『日本語まじりの file で MS-Word, Excel,
Powerpoint』だと思います。ascii だけの *.doc, *.xls は立ち上がり
ます。

理由は、

kazu> フォルダを作成する件で混乱していますので、パッチを投げます。まっさらな 
kazu> b54 に当てて下さい。さまざまな機能アップのパッチも含まれていますが、気
kazu> にしないで下さい。

のパッチの中の

  (defun mew-make-temp-name (&optional fname)
    (if (not (file-exists-p mew-temp-dir))
        (mew-make-directory mew-temp-dir)) ;; just in case
!   (if (and fname (string-match "^[ -~]+$" fname))
!       ;; File name of a temporary file should be ASCII only.
        (expand-file-name fname mew-temp-dir)
      (make-temp-name mew-temp-file)))

の部分で、ASCII only な file 名でなかったら

(mew-make-temp-name "白井.doc") => "c:/tmp/shirai1256_D1/mew1256sgS"
(mew-make-temp-name "shirai.doc") => "c:/tmp/shirai1256_D1/shirai.doc"

という感じでファイル名を変えるからです。

'% fiber -l' をするとわかるように、fiber は zip, lzh, pdf は指定
された file の中身で applicaion を判定しますが、MS-Word, Excel,
Powerpoint などは file の中身では判定してくれないから
'mew1256sgS' で fiber を起動しても MS-Word を起動することはでき
ません。以前は '*.doc' などの拡張子が filber に渡っていたため、
*関連付け* で起動していたのでしょう。

というわけで、解決策は、

1. (should be ASCII only の意図がわからないのだけど)
 従来の mew-make-temp-name() に戻して貰う。
  
2. ASCII only じゃないときでも、mew-make-temp-name() で *拡張子*
 は継承して貰う。

3. fiber を改造する ^^;;;

ぐらいだと思いますが、もともと、MS-Word, Excel, PowerPoint は
MicroSoft が作ったものだけあって、magic number で『それだ!!』と
判定できない(らしい)ため、1 か 2 の対処をして貰えるとありがたい
です。

-- 
白井秀行 (mailto:shirai at example.com)



Mew-dist メーリングリストの案内