[Mew-dist 17746] Re: replyで宛先に名前を残す方法

Shun-ichi GOTO gotoh at example.com
2001年 6月 12日 (火) 00:46:26 JST


>>>>> at Mon, 11 Jun 2001 23:57:04 +0900
>>>>> 川地 == Hiromichi Kawachi <hirom at example.com> said,

川地> 私にとっては,非常にありがたい機能で,特に職場で結構多めに Cc: 配
川地> 布されているメールですと,Cc: の宛先の人の間で,自分以外の誰に同じ
川地> メールが届いているかを知るのに,このアドレスの expand を一気に出来
川地> る機能は助かります.

1つだけexpandする機能があるのだったら、一気に行う機能もあってもいいとは
思うので、ご検討ください。>かずさん

## 返信元メールのphraseのexpandを行う1.94 用のcodeは2名の方が興味を示さ
## れていました。こちらも意外と潜在需要があるのかしら。


川地> ところで,一度 mew-expand-draft-all してしまうと,後からさらにアド
川地> レスを追加しようとか,別の field を追加 (例えば,Bcc: のない状態で
川地> expand して,思い直して Bcc: を追加) などの field 書き換えがいっさ
川地> い出来なくなってしまう  - Tab で補完しようとしても,本当に
川地> Tab Space が入力されてします - のは仕様でしょうか,私の勘違いでしょ
川地> うか?  (XEmacs でしか試してませんが.)

勘違いではございません。
最後に(mew-draft-header-keymap)する必要がありました。

これを気に単独のfileとしておきましたので、改めて添付します。
## 内容的には上記修正以外は変化しておりませんです。

--- Regards,
 Shun-ichi Goto  <gotoh at example.com>
   R&D Group, TAIYO Corp., Tokyo, JAPAN
-------------- next part --------------
;; mew-draft-expand-all.el -- Expand all addresses in To: and Cc:

;; Copyright (c) 2001 Shun-ichi Goto.

;; Author: Shun-ichi GOTO <gotoh at example.com>
;; Created: Tue Jun 12 00:09:45 2001
;; Version: $Revision: 1.2 $
;; Keywords: 

;;; Commentary:

;; The function `mew-draft-expand-all' expands all addresses in To:
;; and Cc: field with names defined in your address book.  This
;; expansion is same to `mew-draft-expand' except all addresses are
;; expanded at once.
;;

;;; Instalation:

;; Place this file in directory of load-path, put next line in ~/.mew
;;
;; (require 'mew-draft-expand-all)
;;
;; If you use this function oftenly, you may bind it to keymap like:
;;
;; (define-key mew-draft-mode-map "\C-ca" 'mew-draft-expand-all)
;; (define-key mew-draft-header-map "\C-ca" 'mew-draft-expand-all)
;; (define-key mew-draft-attach-map "\C-ca" 'mew-draft-expand-all)
;;

;;; Usage:

;; For manual use, in draft buffer, M-x mew-draft-expand-all or
;; your bounded key stroke (ex. C-c a) to expand.
;;
;; If you wanna do it automatically on your replying, put next line in
;; your ~/.mew file.
;;
;;(add-hook 'mew-draft-mode-newdraft-hook 'mew-draft-expand-all)
;;
;; Note: This function **DOESN'T** work with mew-1.94.

;;; Code:

(defun mew-addrstr-expand (addr &optional func)
  (let (name)
    (setq func (or func
		   (mew-addrbook-func mew-addrbook-for-address-expansion)))
    (if (and func (setq name (funcall func addr)))
	(format "%s <%s>" name addr)
      addr)))
      
(defun mew-draft-expand-all ()
  "Expand addresses in To: and Cc:.
Address is expanded with method given by
`mew-addrbook-for-address-expansion'. See also `mew-draft-expand'."
  (interactive)
  ;; We assume, in draft buffer
  (save-excursion
    (let ((fields (list mew-to: mew-cc:)) ; expand To: and Cc:
	  (func (mew-addrbook-func mew-addrbook-for-address-expansion))
	  value mailbox addrl wid)
      (when func
	(while fields
	  (setq addrl (mew-header-parse-address-list2 (list (car fields))))
	  (when addrl
	    ;; At first, make one address
	    (setq value (mew-addrstr-expand (car addrl) ) ;func)
		  addrl (cdr addrl)
		  wid (+ (string-width (car fields))
			 1
			 (string-width value)))
	    (while addrl
	      (setq mailbox (mew-addrstr-expand (car addrl) func))
	      (if (< (+ wid (string-width mailbox) 1)
		     mew-field-max-length)
		  ;; without folding
		  (setq value (concat value ", " mailbox)
			wid (string-width value))
		;; with foldign
		(setq value (concat value ",\n\t" mailbox)
		      wid (+ tab-width (string-width mailbox))))
	      (setq addrl (cdr addrl)))
	    (mew-header-replace-value (car fields) value))
	  (setq fields (cdr fields))))
      (mew-highlight-header)
      (mew-draft-header-keymap))))

;;;
(provide 'mew-draft-expand-all)

;;; mew-draft-expand-all.el ends here


Mew-dist メーリングリストの案内