[Mew-dist 03943] call-process
Mikio Nakajima
minakaji at example.com
1998年 2月 24日 (火) 22:51:17 JST
中島@あさひねっとです。
Gzip64 の問題を追っていて、久しぶりに Mew の Emacs Lisp ソースを
ながめていまして、少し気になる点がありました (最初は、Gzip64 の問題
は mewencode じゃなくて Emacs Lisp の方で対処できるんだろうと思って
いた)。
Mew で、call-process (及び call-process を使用した
mew-im-call-process-no-output などの関数) は、例えば、
(message "Packing %s ... " folder)
(mew-im-call-process-no-output mew-prog-impack
(format "--src=%s" folder))
(message "Packing %s ... done" folder)
のように call-process の返り値を全く見ていませんが、サブプロセスが
何らかの問題で仕事に失敗する場合もあるので、本来は、例えば、
(let (ret)
......
(message "Packing %s ... " folder)
(setq ret (mew-im-call-process-no-output mew-prog-impack
(format "--src=%s" folder)))
(if (and (numberp ret) (= ret 0))
(message "Packing %s ... done" folder)
(error "Packing %s ... failed" folder) ))
のように処理すべきだと思います。正直言ってこれが原因ですごく困った
ことはありませんが、Mew が IM を使うようになった最初の頃は、IM の設
定がおかしくて、メールが飛んで行かないのに正常処理されたように見え
たり、というようなことが (正確には覚えていませんが) あったように記
憶しています。
パッチを作ろうかと思ったのですが、
(1)マクロでも作って書くコード量を減らし、すっきりと書きたい。
(2)call-process が、数値以外のものを返した場合はそれもユーザーに
見せたい (call-process は a signal description string を返す場
合がある)。
なんてことが頭をよぎったので、手が止まりました (本当はコードを書く
時間がないんですが f(^_^;;;)
中島幹夫 <minakaji at example.com>
http://www.asahi-net.or.jp/~gy2m-nkjm/
Mew-dist メーリングリストの案内