[Date Prev][Date Next][Thread Prev][][Date Index][Thread Index]

ImageMagick 5.4.7 で mew-w3m.elc や w3m.elc をロードした際に "Image conversion faild" が発生する



山口と申します.
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