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

Re: mew-w3m.el



# 全然、emacs-w3m に関係ないじゃん、っていう気もしますが、Mew の
# 人が mime-w3m の動作確認するのに便利、ってこじつけて。

From:  Hideyuki SHIRAI (白井秀行) <shirai@rdmg.mgcs.mei.co.jp> 曰く
Subject: [emacs-w3m:04148] Re: mew-w3m.el
Message-ID: <20021027.132721.81231498.shirai@rdmg.mgcs.mei.co.jp>
Date: Sun, 27 Oct 2002 13:27:21 +0900 (JST)

kose> 画像が inline 表示できるのだからひとつのバッファで表示する方
kose> が見易いと思う。see (ELF:01918).

白井> あの場合は、当然上下に並んだ方がいいでしょう。って、わざわざ

kose> というかそういう見えかたを意識して書いているんだと思うけどね。

白井> このメールを書きたいがために、あっちのメールを書いたんじゃないの
白井> かという気もしますけど ^^;

白井> やっぱり、ぼくは、いつもは part ごとに表示が別れていた方がうれし
白井> い。Key 一発で SEMI を使って View するようにでもすれば完璧かしら。
白井> と思ったら、全然、mime-* の使い方がわかりませんが。

mime-* は未だに全然わかっていませんがやってみました。

(when (locate-library "mime-view")
  (add-hook 'mew-summary-mode-hook
	    (lambda ()
	      (define-key mew-summary-mode-map "\C-c\C-m" 'mew-semi-view))))

(defvar mew-semi-msgbuf " *Mew-SEMI*")
(defvar mew-semi-wcfg nil)
(defvar mew-semi-dispmsg nil)

(defun mew-semi-view ()
  (interactive)
  (mew-summary-msg-or-part
   (let* ((fld (mew-summary-folder-name))
	  (msg (mew-summary-message-number2))
	  (part (mew-syntax-nums))	;; 未実装
	  (file (mew-expand-folder fld msg))
	  (mbuf (get-buffer-create mew-semi-msgbuf))
	  obuf)
     (setq mew-semi-wcfg (current-window-configuration))
     (unless (setq mew-semi-dispmsg (mew-sinfo-get-disp-msg))
       (mew-summary-toggle-disp-msg))
     (mew-summary-goto-msg-mode)
     (setq obuf (current-buffer))
     (save-excursion
       (set-buffer mbuf)
       (mew-erase-buffer)
       (set-buffer-multibyte nil)
       (mew-frwlet
	'binary 'raw-text
	(mew-insert-message fld msg 'binary nil)))
     (or (featurep 'mime-w3m) (require 'mime-w3m))
     (or (featurep 'mime-view) (require 'mime-view))
     (mime-view-buffer mbuf "*Mew-SEMI*" obuf nil 'binary)
     (save-excursion
       (mew-elet
	(goto-char (point-min))
	(when (re-search-forward "^$")
	  (save-restriction
	    (narrow-to-region (point-min) (match-beginning 0))
	    (mew-highlight-header-region (point-min) (point-max))
	    (when (fboundp 'x-face-decode-message-header)
	      (x-face-decode-message-header (point-min) (point-max))))
	  (forward-line 1)
	  (mew-highlight-body-region (point) (point-max))
	  (set-buffer-modified-p nil))))
     (define-key (current-local-map) "h" 'mew-semi-view-quit)
     (define-key (current-local-map) "q" 'mew-semi-view-quit)
     (define-key (current-local-map) "\C-c\C-q" 'mew-semi-view-quit)
     (set-window-start (selected-window) (point)))))

(defun mew-semi-view-quit ()
  (interactive)
  (mime-preview-kill-buffer)
  (when (get-buffer mew-semi-msgbuf)
    (kill-buffer mew-semi-msgbuf))
  (when (window-configuration-p mew-semi-wcfg)
    (set-window-configuration mew-semi-wcfg))
  (when (and (or (eq major-mode 'mew-summary-mode)
		 (eq major-mode 'mew-virtual-mode))
	     (not (eq mew-semi-dispmsg (mew-sinfo-get-disp-msg))))
    (mew-summary-toggle-disp-msg)))

Mew の summary で "C-cC-m" すると、mime-* で表示します。
*Mew-SEMI* buffer から戻るときは、"h" or "q" or "C-cC-q" を使っ
てください。

# Header arrange は(不毛なので)やめた。
# けど、やっぱり(ぼくにとっては)見にくいかも。

-- 
白井秀行@ねこ三匹モードとよぼう。