何故ですか?
ange-ftp をロードすると多くの関数が置き換えられますが、その中に Mule で引数の指定が変更されている write-region と insert-file-contents が 含まれています。
コマンド shell-command は write-region と insert-file-contents を Mule で追加された引数を使って呼び出していますが、ange-ftp が置き換え た write-region はこの引数を解釈できないのでエラーが発生し、 shell-command の実行が失敗しているのです。
解決法を Masayuki Kuwada <kuwada@soliton.ee.uec.ac.jp> さんは次のよ うに書いています:
ange-ftp.el の ange-ftp-write-region と ange-ftp-insert-file-contents の定義部分の引数の最後に &rest coding-system を追加し、以下の修正をすれば動作します。 (Emacs, Nemacs との共有もできます)。 [注意] 以下の修正は ange-ftp のバージョン RCS: $Header: ange-ftp.el,v 4.20 92/08/14 17:04:34 ange Exp $ に対するものです。ange-ftp のバージョンによっては引数が異なる場合 がありますから、以下の修正例を参考に修正してください。 関数 ange-ftp-write-region の内部で ange-ftp-real-write-region が2 箇所で使用されていますが、それらをそれぞれ次のように変更します。 (ange-ftp-real-write-region start end temp nil visit) ↓ (apply 'ange-ftp-real-write-region start end temp nil visit coding-system)
(ange-ftp-real-write-region start end filename append visit) ↓ (apply 'ange-ftp-real-write-region start end filename append visit coding-system)
また、関数 ange-ftp-insert-file-contents の内部で ange-ftp-real-insert-file-contents が2箇所で使用されていますが、 それらをそれぞれ次のように変更します。 (ange-ftp-real-insert-file-contents temp visit) ↓ (apply 'ange-ftp-real-insert-file-contents temp visit coding-system)
(ange-ftp-real-insert-file-contents filename visit) ↓ (apply 'ange-ftp-real-insert-file-contents filename visit coding-system)