mime-preview-toggle-{header,content} for a default invisible part.

守岡 知彦 / MORIOKA Tomohiko tomo @ etl.go.jp
2000年 3月 16日 (木) 17:34:03 JST


>>>>> In [emacs-mime-ja : No.00481] 
>>>>>	"岡崎" = OKAZAKI Tetsurou <okazaki @ be.to> wrote:

岡崎> User-Agent な環境(ChaoはCVSの現時点での最新版です)で、
岡崎> Content-Type: multipart/mixed な message を表示させていて、
岡崎> mime-preview-toggle-{header,content} で MIME header やMIME
岡崎> content の表示を切り替える時に気になることがあります。

岡崎> MIME-View に最初から表示されている part では、C-c C-t C-f や C-c
岡崎> C-t C-cをそれぞれ一度だけ使えば header や content を非表示にでき
岡崎> るのですが、始めから非表示になっている part では、C-c C-t C-f や 
岡崎> C-c C-t C-c を二度実行しないと、表示されません。実際に M-x
岡崎> list-text-properties-atでこの part の text property:
岡崎> mime-view-situation の値を確認してみると、最初の非表示状態では、

岡崎> mime-view-situation  ((major-mode . mmelmo-original-mode))  … (1)

岡崎> になっています。ここで C-c C-t C-c を一回実行すると、part の内容
岡崎> は非表示のままで、

岡崎> mime-view-situation  ((*body . invisible)
			    (major-mode . mmelmo-original-mode))
岡崎>                                                             … (2)
岡崎> と変化します。この後、C-c C-t C-c をさらにもう一回実行すると、
岡崎> part の内容が表示されて、

岡崎> mime-view-situation  ((*body . visible)
			    (major-mode . mmelmo-original-mode))
岡崎>                                                             … (3) 
岡崎> と変わります。これ以降は (2)⇔(3) の間を行き来します。

岡崎> mime-preview-toggle-display の現在の実装では、(1) の様に
岡崎> mime-view-situation に該当する property が存在しない場合、
岡崎> (現在の状態が) visible だとみなして (2) に遷移させています。
岡崎> これがこの関数の仕様だとすると、body/header の visible/invisible
岡崎> の初期状態を mime-view-situation にあらかじめ設定しておく方が
岡崎> いいのかな、と思います。

御報告ありがとうございます。

つまり、header と body に関する default value の扱いが 
mime-display-entity と mime-preview-toggle-display で不一致になってい
る訳ですね。(^_^;;; button, header, body で
mime-preview-toggle-display を共有したい気がするので、
header と body の default value を button に合わせるか、岡崎さんがおっ
しゃっているように default value を生じないようにすれば良いんでしょう
ね。

岡崎さんの案で行く場合、mime-display-entity を

    (let ((button-is-invisible
	   (eq (cdr (or (assq '*entity-button situation)
			(assq 'entity-button situation)))
	       'invisible))
	  (header-is-visible
	   (if (eq (cdr (or (assq '*header situation)
			    (assq 'header situation)))
		   'visible)
	       t
	     (setq situation (put-alist '*header 'invisible situation))))
	  (body-is-visible
	   (if (eq (cdr (or (assq '*body situation)
			    (assq 'body situation)))
		   'visible)
	       t
	     (setq situation (put-alist '*body 'invisible situation))))
	  (children (mime-entity-children entity)))

みたいに修正すれば良いでしょうか?(未確認です)


あと、なんとなく、header と body も default では visible とする方が良
いような気もするので、この方向も試したいと思います。

-- 
===『幾千億の分子に分かれても ========================================
     決して忘れない。    
     この宇宙が終るまで』              守岡 知彦 (MORIOKA Tomohiko)
======================================== Email: <tomo @ etl.go.jp> =====




More information about the Emacs-mime-ja mailing list