山口と申します. Emacs-w3m を便利に使わせていただいています. 最近になって,ある環境の Emacs を 21.4 から 22.1 に更新し始めているの ですが, ImageMagick 5.4.7 (info にある 5.4.0-5 より新しいもの) と emacs-w3m-1.4.259 (2007/03/03) の組み合わせにおいて,"mew-w3m.elc" を ロードする際に決まって *Messages* buffer で > Image conversion failed (code `1') と言われることに気付きました. なお,このようなメッセージが出ても,Emacs-w3m の動作は(画像表示も) 問題ないように思えます. ImageMagick の convert の挙動が微妙に違うのが原因でしょうか? ImageMagick 6.3.0 だとこの症状は出ません. あるいは,Emacs の問題に躓いているのでしょうか? %%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 先ず,色々と状況確認をしてみた結果,次のことが分かっています. 細かな make 方法等は割愛していますが,Emacs はパッケージとして公開され ているものがあれば,そちらでも動作を確認しています.自分で make したも のと症状は変わりません. (1) Emacs 21.4 + emacs-w3m-1.4.4 + ImageMagick 5.4.7 on Solaris 9 SPARC Emacs : 自分でパッケージを作成 emacs-w3m : 自分で make ImageMagick : NSUG 頒布のパッケージ 特に問題はなかった筈です (Emacs 21.4 をサックリと消してしまいました...) (2) Emacs 22.1 + emacs-w3m-1.4.4 + ImageMagick 5.4.7 on Solaris 9 SPARC Emacs : SunFreeware のパッケージ emacs-w3m : 自分で make ImageMagick : NSUG 頒布のパッケージ 特に問題はなさそう (3) Emacs 22.1. + emacs-w3m-1.4.259 + ImageMagick 5.4.7 on Solaris 9 SPARC Emacs : SunFreeware のパッケージ emacs-w3m : 自分で make ImageMagick : NSUG 頒布のパッケージ w3m-mew.elc や w3m.elc をロードする時に "Image conversion failed (code `1')" が発生する (4) Emacs 22.1. + emacs-w3m-1.4.259 + ImageMagick 6.3.0 on Solaris 9 SPARC Emacs : SunFreeware のパッケージ emacs-w3m : 自分で make ImageMagick : SunFreeware のパッケージ 特に問題はなさそう (5) Meadow-3.00-dev(r4210) + emacs-w3m-1.4.48 + ImageMagick 6.3.0 on WincowsXP SP2 Meadow : NetInstall emacs-w3m : NetInstall ImageMagick : ImageMagick が頒布しているパッケージ 特に問題はなさそう %%%%%%%%%%%%%%%%%%%%%%%%%%%%%% w3m.el 等を少し追いかけてみました. w3m.el -> defcustom w3m-use-favicon ... で, Image conversion failed (code `1') が発生. (w3m-image.el の) w3m-favicon-usable-p で発生している模様. w3m-image.el -> w3m-favicon-usable-p -> w3m-imagick-convert-data -> w3m-imagick-convert-buffer で発生 ちょっと乱暴な方法かもしれませんが,w3m.el の w3m-use-favicon から (w3m-favicon-usable-p) 2箇所をコメントアウトした上で, $ /usr/local/share/emacs/site-lisp/w3m $ emacs -nw -q (load-file "w3m-load.el")^J (load-library "mew")^J (load-file "w3m.el")^J として,手動で w3m-image.el の w3m-favicon-usable-p を追いかけてみました. w3m-image.el の w3m-favicon-usable-p から (w3m-imagick-convert-data (string 0 0 1 0 1 0 2 1 0 0 1 0 24 0 52 0 0 0 22 0 0 0 40 0 0 0 2 0 0 0 2 0 0 0 1 0 24 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 255 255 255 0 0 0 0 0 0) "ico" "xpm") のみを抜粋して *scratch* buffer で実行した結果が添付ファイルの内容です. w3m-imagick-convert-buffer に細工をして,"return" の内容を常時 *Messages* buffer に表示してみました. 1回の w3m-imagick-convert-data の呼び出しから, w3m-imagick-convert-buffer で convert を呼び出す部分が2回呼び出されて しまいます.(この部分の理解が追い付いていません) 1回目の戻り値 (= return) が "1" であるため, Image conversion failed (code `1') を出力し,続けて2回目の戻り値が "0" で xpm への変換結果が得られていま す.("Image conversion faild (code `%s')" は出力されません) 更にその後で,(w3m-favicon-usable-p) を試す限りでは, "Image conversion faild (`%s')" は出ないようです. このあたりから,基本的に,w3m-mew.el/w3m.el をロードする際の "Image conversion failed (code `%s')" は無視してもよさそうな事は わかりました. bug report にもならないかもしれませんが,ちょっとスッキリしないので, こちらに報告させていただきました. -- Eisaku YAMAGUCHI
Attachment:
ImageMagick540-MessageBuffer
Description: Binary data