[Message Prev][Message Next][Thread Prev][Thread Next][Message Index][Thread Index]

bashにうまく渡らない日本語がある?



田中と申します。

質問させてください。

Wanderlustでsemiのmime-playを使って添付ファイルをfiberで起動させていますが、
ファイル名によっては上手く動かなかったので、調べてみたところ、
次の問題に帰結しました。

(start-process "hoge" nil "bash" "-c" "fiber -s c:/tmp/あ.doc")

は正常に動くが、

(start-process "hoge" nil "bash" "-c" "fiber -s c:/tmp/描.doc")

は動かない(なにも反応しない)。
(注:"描"です。"猫"ではありません。念のため)
返り値として#<process hoge>は返ります。
もちろん、"c:/tmp/描.doc"というファイルは存在しています。

これは一体なぜなのでしょうか。

最も簡単にはMeadowを-qオプションで起動して、*scratch*バッファで
(set-language-environment "Japanese")
のみを実行した後に試してみても、再現できています。
なお、bashのバージョンは2.05aとなっております。

ただしこれは、

(start-process "hoge" nil "bash" "-c"
               "fiber -s 'c:/tmp/描.doc'")

というように''でファイル名を括ると正常に動作します。
しかしこの場合、今度はファイル名に'を含む場合(例えば描'.docとか)は、

(start-process "hoge" nil "bash" "-c"
               "fiber -s 'c:/tmp/描'\\''.doc'")

などとしなければならず、mime-play.elを書き換えなければならないので
出来れば避けたいと思っているのですが。。。何か他の方法はありますでしょうか。

宜しくお願いします。


---
Shingo TANAKA  mailto:t_shingo@xxxxxxxx