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

[MD:1101]The way to determine coding system for process argument.



堀口です. Meadow と言うよりは Mule の話なんですが..

 今の Mule の実装では call-process/start-process で与えるプログラ
ム名とそれに与える引数の文字コード変換を両方とも 
file-name-coding-system で決定するように(しようと)していると思い
ます.

 これを変更すると言った提案はありでしょうか. もしありなら(すぐに
と言うわけには行きませんが)手許の Meadow で組み込んでみようと思う
のですが.

# だれに聞いてるんだ?

 思いついたのは3通り. 結果として可能性があるのは最初の選択肢だと
思っています.

  1) default-process-argument-coding-system, 
     process-argument-coding-system-alist でコード変換を制御する.

     (modify-coding-system-alist) を修正することに問題はないが 
     find-operation-coding-system がこれに対応することができない.

     これは仕方がないので少々汚いが(find-process-argument-coding-system)
     を新設する. 他の *-coding-system-alist を使っているところへ
     の影響はない(はず).

  2) process argument editing に統合する.
     process-argument-editing を通した場合はそのプロセスへの引数
     の文字コード変換は (process-argument-editing-function) に任
     せる.

     これは区切りは悪くなさそうですが, パラメータの文字コードを変
     換するためだけに (process-argument-editing-function) を作るの
     はなんか違うような気がします. というわけで却下.
     
  3) process-coding-system-alist の形式を
     ((PATTERN . (DECODING-SYSTEM . ENCODING-SYSTEM))...) から
     ((PATTERN . (DECODING-SYSTEM . ENCODING-SYSTEM)
               . ARGUMENT-ENCODING-SYSTEM)...)
     などに変更する.

     これは他の (file|network)-coding-system の形式も(無意味に)変
     更することを意味していて影響が大きすぎるので却下..ですね.

--
堀口恭太郎