[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 メーリングリストの案内