[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