[XEmacs] inline xbm
Katsumi Yamaoka
yamaoka @ jpl.org
1999年 11月 17日 (水) 12:54:02 JST
次のような image/x-xbm のパートを XEmacs で inline 表示できません。
-------------- next part --------------
テキスト形式以外の添付ファイルを保管しました...
ファイル名: WideFaceAse2.xbm
型: image/x-xbm
サイズ: 428 バイト
説明: 無し
URL: <http://lists.chise.org/pipermail/emacs-mime-ja/attachments/19991116/bb632cb5/attachment.bin>
-------------- next part --------------
異義が無ければ mime-image.el の関数 `mime-display-image' を添付したも
ので置き換え、(eval-when-compile (require 'static)) をファイルの先頭に
移動します。対象は emiko-1_13, wemi, semi-1_13, semi-pgpgpg です。
以下は予想される異義とその言い訳です。
O1. w3/images.el の関数 `image-normalize' を xbm に対応させた方が良い
のではないか?
O2. XEmacs の `make-glyph' (など) を未加工の xbm にも対応させた方が良
いのではないか?
O3. tempfile を作らずに、自前で xbm を加工した方が良いのではないか?
E1,2. XEmacs はファイルの xbm を扱うことができ、それ以外の使い方を想定
していないように思える。実際に inline 表示する xbm がファイル以外
である例が見当たらない。したがって `image-normalize' を改造しても
mime-image 以外の需要が無い。
E3. やればできるが、XEmacs に任せてしまう方が良いと思う。
-------------- next part --------------
(defun mime-display-image (entity situation)
(message "Decoding image...")
(let ((format (cdr (assq 'image-format situation)))
tempfile image)
(unwind-protect
(static-if (featurep 'xemacs)
(if (eq 'xbm format)
(progn
(setq tempfile (make-temp-name
(expand-file-name
"tm" temporary-file-directory)))
(with-temp-file tempfile
(mime-insert-entity-content entity))
(setq image (list (cons 'x tempfile))))
(setq image (image-normalize format
(mime-entity-content entity)))
(if (image-invalid-glyph-p image)
(progn
(setq image nil)
(message "Invalid glyph!"))))
(setq image (image-normalize format (mime-entity-content entity)))
(if (image-invalid-glyph-p image)
(progn
(setq image nil)
(message "Invalid glyph!"))))
(if image (image-insert-at-point image))
(static-when (featurep 'xemacs) (insert "\n"))
(if tempfile (delete-file tempfile))
(message "Decoding image... done"))))
-------------- next part --------------
--
Katsumi Yamaoka <yamaoka @ jpl.org>
More information about the Emacs-mime-ja
mailing list