山口と申します.
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 YAMAGUCHIAttachment:
ImageMagick540-MessageBuffer
Description: Binary data