[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 メーリングリストの案内