[Mew-dist 1522] x-face
Takashi P.KATOH
p-katoh at example.com
1997年 8月 18日 (月) 17:56:54 JST
かとぺ@東北大です。
# 帰省前の小ハック :-)
現在は ~/.xface があると常に X-Face: が入ってしまいますが、
普段は付けないけど、極一部のメールにだけ付けたかったので、
mew-draft.el を以下のように変更してみました。
# 入れないことの方が多いので、いちいち消すのはメンドウ。
New variable: mew-insert-x-face (default t)
Non-nil なら draft-buffer 作成時に X-Face: header を入れる
(つまり現在の仕様と同じ)
New function: mew-draft-insert-x-face (C-cC-x)
X-Face: header を入れる。
draft-buffer のどの場所でも有効。
prefix を付ける (C-uC-cC-x) とファイル名を聞いてくる。
# key は mew-summary-x-face と同じにしてあります。
さきほどのパッチ (まだ届いてないけど [Mew-dist:01522] かな?)
も当てて下さい。
パッチを当てた状態では、当てる前と全く同じ動作になるはずです。
ついでにちょっと質問なんですが ~/.xface というのは比較的一般
的なものなのでしょうか?
わざわざ一つのファイルにするより variable で設定する方が自然
な気がしたので...
# この辺も好みの問題なんでしょうけど。
# 私自身はどっちでもいいんですが。
--
東北大学大学院 情報科学研究科 白鳥研究室 加藤 貴司
p-katoh at example.com / Takashi P.KATOH
http://www.shiratori.riec.tohoku.ac.jp/~p-katoh/MAIL/
-------------- next part --------------
--- mew/mew-draft.el Wed Aug 6 15:10:00 1997
+++ mew-draft.el Mon Aug 18 17:23:19 1997
@@ -23,6 +23,9 @@
(defvar mew-cite-hook nil
"*If you want to use super-cite, (setq mew-cite-hook 'sc-cite-original).")
+(defvar mew-insert-x-face t
+ "*Non-nil means insert X-Face header when draft-buffer is prepared.")
+
(defvar mew-cite-prefix-function nil
"*Function called on citations. A good candidate is
'mew-cite-prefix-username")
@@ -207,6 +210,7 @@
(define-key mew-draft-mode-map "\C-c\C-l" 'mew-fib-flush-input)
(define-key mew-draft-mode-map "\C-c\C-f" 'mew-fib-fill-default)
(define-key mew-draft-mode-map "\C-c\C-k" 'mew-fib-delete-frame)
+ (define-key mew-draft-mode-map "\C-c\C-x" 'mew-draft-insert-x-face)
(if mew-temacs-p
(easy-menu-define
mew-draft-mode-menu
@@ -270,6 +274,8 @@
C-cC-a Prepare attachments region.
+C-cC-x Insert x-face.
+
*Header region key assignment:
TAB Complete field keys.
@@ -492,16 +498,8 @@
(concat "Your message of \"" in-reply-to "\"\n\t" references)
(concat "Your message of \"" in-reply-to "\""))))
(and references (mew-header-insert-here "References:" references))
- (if (and mew-x-face-file
- (file-exists-p (expand-file-name mew-x-face-file)))
- (let ((xface))
- (save-excursion
- (mew-set-buffer-tmp)
- (insert-file-contents (expand-file-name mew-x-face-file))
- (setq xface (mew-buffer-substring (point-min) (max (buffer-size) 1)))
- )
- (mew-header-insert-here "X-Face:" xface)
- ))
+ (and mew-insert-x-face
+ (mew-draft-insert-x-face))
(and mew-x-mailer (mew-header-insert-here "X-Mailer:" mew-x-mailer))
(let ((halist mew-header-alist))
(while halist
@@ -902,6 +900,27 @@
(insert-file-contents sigfile)
))
))
+
+(defun mew-draft-insert-x-face (&optional prefix)
+ (interactive "P")
+ (and (mew-header-get-value "x-face:")
+ (error "X-Face: already exists!"))
+ (let ((face-file mew-x-face-file))
+ (if prefix
+ (setq face-file (mew-input-file-name "Face file: " mew-x-face-file)))
+ (if (and face-file
+ (file-exists-p (expand-file-name face-file)))
+ (let ((xface))
+ (save-excursion
+ (mew-set-buffer-tmp)
+ (insert-file-contents (expand-file-name face-file))
+ (setq xface
+ (mew-buffer-substring (point-min) (max (buffer-size) 1))))
+ (goto-char (point-min))
+ (re-search-forward mew-eoh2)
+ (re-search-backward "x-mailer" nil t)
+ (beginning-of-line)
+ (mew-header-insert-here "X-Face:" xface)))))
;;;
;;; Draft magic functions
Mew-dist メーリングリストの案内